Το προφίλ μας στο Google Plus
0

Κρυπτογραφία δημοσίου κλειδιού: Το πρόβλημα της εμπιστοσύνης και μια έξυπνη λύση

Στα τόσα καλά που μας προσφέρουν τα μαθηματικά της κρυπτογραφίας δημοσίου κλειδιού, υπάρχει και κάτι που πολύ θα το θέλαμε αλλά δεν είναι εύκολο να το έχουμε. Πώς μπορούμε να είμαστε βέβαιοι για την πραγματική ταυτότητα των κατόχων δημοσίων κλειδιών; Λύσεις υπάρχουν, καμία όμως δεν είναι τέλεια. Τον τελευταίο καιρό πάντως δοκιμάζεται μία νέα, έξυπνη και πολλά υποσχόμενη προσέγγιση στο όλο θέμα.

Στο παρόν άρθρο σκοπεύουμε να κεντρίσουμε το ενδιαφέρον σας περί της κρυπτογραφίας δημοσίου κλειδιού. Ακόμη κι αν έχετε ήδη ασχοληθεί αλλά βρίσκετε ότι η εφαρμογή των τεχνικών κρυπτογράφησης κι επαλήθευσης ταυτότητας είναι αρκετά φασαριόζικες για ν’ αξίζουν τον κόπο, πιστεύουμε ότι έχουμε καλές πιθανότητες ώστε ν’ αναθερμάνουμε το ενδιαφέρον σας.

Θα ξεκινήσουμε με μια γρήγορη εισαγωγή στην κρυπτογραφία γενικότερα και στην κρυπτογραφία δημοσίου κλειδιού ειδικότερα. Αμέσως μετά θα συζητήσουμε για ένα σημαντικό πρόβλημα, το οποίο αφορά στην επαλήθευση της πραγματικής ταυτότητας των κατόχων δημοσίων κλειδιών. Σκεφτείτε το: Δεν έχει και πολύ αξία να στέλνουμε ισχυρά κρυπτογραφημένα μηνύματα σε κάποιον, όταν αυτός ο κάποιος *δεν* είναι εκείνος που νομίζουμε. Μια πολλά υποσχόμενη λύση στο συγκεκριμένο πρόβλημα αποτελεί το Keybase: Είναι μια νέα, πολλά υποσχόμενη υπηρεσία, η οποία επιτίθεται στο πρόβλημα της ταυτοποίησης με τις λεγόμενες αποδείξεις (proofs). Πολλά περισσότερα θα πούμε σε λίγο, αλλά προς το παρόν ας ξεκινήσουμε βάζοντας τα πράγματα σε μία σειρά.

Τι είναι η κρυπτογραφία;
Πρόκειται για τη μελέτη τεχνικών απόκρυψης του περιεχομένου μηνυμάτων, τα οποία διακινούνται με όχι κατ’ ανάγκη ασφαλείς τρόπους ή μέσω επισφαλών καναλιών επικοινωνίας. Το περιεχόμενο των κρυπτογραφημένων μηνυμάτων πρέπει να είναι διαθέσιμο μόνο στους επιθυμητούς παραλήπτες. Μόνον εκείνοι, δηλαδή, πρέπει να ‘ναι σε θέση να τα αποκρυπτογραφούν. Σημειώστε εδώ ότι η υποκλοπή των κρυπτογραφημένων μηνυμάτων είναι γενικά εφικτή — και συχνά εύκολη υπόθεση. Όταν όμως η μέθοδος της κρυπτογράφησης δουλεύει, μ’ άλλα λόγια όταν είναι ισχυρή, τότε οι υποκλοπείς αδυνατούν ν’ αποκαλύπτουν το περιεχόμενο των μηνυμάτων.

Ιστορικά έχουν χρησιμοποιηθεί αρκετές μέθοδοι για την κρυπτογράφηση μηνυμάτων. Για παράδειγμα, σε κάθε εισαγωγικό κείμενο είναι μάλλον απίθανο να μη διαβάσετε για τη μέθοδο της αντικατάστασης του Καίσαρα (Ceasar’s Cipher), κατά την οποία κάθε γράμμα του αρχικού κειμένου αντικαθίσταται από ένα γράμμα που βρίσκεται σταθερό αριθμό θέσεων πιο κάτω στο αλφάβητο. (Όταν φτάνουμε προς το τέλος του αλφαβήτου η αντικατάσταση “υπερχειλίζει” προς την αρχή, κυκλικά.)

Στο παρόν άρθρο δεν θα κάνουμε ιστορική αναδρομή στις τεχνικές κρυπτογράφησης. Όποιος βέβαια ενδιαφέρεται να μάθει περισσότερα, δεν θα δυσκολευτεί να βρει απειραριθμήσιμο πλήθος εισαγωγικών άρθρων στο web. Για τη συνέχεια, ας σημειώσουμε μόνο ότι το αρχικό κείμενο, πριν την κρυπτογράφησή του, ονομάζεται plaintext, ενώ η κρυπτογραφημένη του εκδοχή, δηλαδή το αρχικό κείμενο *μετά* την κρυπτογράφησή του, ονομάζεται ciphertext.

Συμμετρική κρυπτογραφία
Από την προηγούμενη ενότητα φαίνεται ότι η κρυπτογραφία αφορά στη μετατροπή του plaintext σε ciphertext. Ειδικά από το παράδειγμα του Ceasar’s Cipher, καταλαβαίνουμε ότι η επαναφορά του plaintext από το ciphertext γίνεται με συγκεκριμένο, γνωστό τρόπο. Αλλά τον τρόπο αυτό δεν μπορεί κάποιος να τον εφαρμόσει — εκτός αν γνωρίζει ένα καλά κρυμμένο μυστικό. Είναι σημαντικό να υπογραμμίσουμε ότι, ειδικά στο πλαίσιο της σύγχρονης κρυπτογραφίας, ο τρόπος κατά τον οποίο το plaintext γίνεται ciphertext *δεν* είναι μυστικός. Ο αλγόριθμος της κρυπτογράφησης, μ’ άλλα λόγια, είναι γνωστός σε όλους. Απλά, προκειμένου να εφαρμόσει κάποιος τον αλγόριθμο αντίστροφα, ώστε να πάρει το plaintext από το ciphertext, πρέπει να διαθέτει κι ένα κατάλληλο κλειδί (key): αυτό είναι το καλά κρυμμένο μυστικό.

Στο παράδειγμα του Ceasar’s Cipher, ο αλγόριθμος της κρυπτογράφησης είναι η “ολίσθηση” κατά ένα σταθερό πλήθος θέσεων πιο κάτω στο αλφάβητο. Τον αλγόριθμο τον γνωρίζουν όλοι: αποστολείς, παραλήπτες, κακόβουλοι χρήστες, αμέριμνοι διαβάτες, καστανάδες, φωνακλάδες τουρίστες, οι ιθαγενείς στην Παπούα Νέα Γουινέα, η κεντρική επιτροπή του Σύριζα — όλοι, μα όοοοολοι ανεξαιρέτως. Αυτό όμως που δεν γνωρίζουν όλοι, παρά μόνον ο αποστολέας και οι επιθυμητοί παραλήπτες, είναι το κλειδί που χρησιμοποιείται ανά περίπτωση. Στο απλό παράδειγμά μας, το κλειδί δεν είναι παρά το *ακριβές* πλήθος των θέσεων μετατόπισης στο αλφάβητο. Από τη στιγμή που ο παραλήπτης γνωρίζει τον αλγόριθμο κρυπτογράφησης αλλά *και* το κλειδί, είναι εύκολο να εφαρμόσει τον αντίστροφο αλγόριθμο πάνω στο ciphertext –αντί να πηγαίνει k θέσεις μπροστά θα πηγαίνει k θέσεις πίσω– και πολύ εύκολα θα αποκτήσει το plaintext.

Το κλειδί, λοιπόν, πρέπει πάντοτε να προστατεύεται και να το γνωρίζουν μόνον όσοι χρειάζεται να το γνωρίζουν. Μάλιστα για λόγους ασφαλείας, από καιρού εις καιρόν το κλειδί καλό είναι ν’ αλλάζει, οπότε και οι παραλήπτες θα πρέπει, με κάποιον τρόπο, να ενημερώνονται σχετικά. Πάντως η προστασία του κλειδιού δεν είναι πανάκεια. Ειδικά σήμερα που η υπολογιστική ισχύς περισσεύει και είναι διαθέσιμη σε όλους, ορισμένοι αλγόριθμοι κρυπτογράφησης είναι παντελώς αδύναμοι — κι ας μη διαρρέουν ποτέ τα κλειδιά κρυπτογράφησης. Ας δούμε ξανά το παράδειγμα του Ceasar’s Cipher. Γνωρίζοντας κάποιος ότι έχει χρησιμοποιηθεί για την κρυπτογράφηση ενός μηνύματος, με μια επίθεση brute force είναι πολύ εύκολο να πάρει το αρχικό μήνυμα. Στη συγκεκριμένη περίπτωση, μάλιστα, επιθέσεις πολύ πιο αποδοτικές από τις “χοντροκομμένες” brute force είναι εφικτές. Ακόμη κι αν δεν έχουμε καν γνώση του αλγορίθμου κρυπτογράφησης, εφαρμόζοντας τεχνικές στατιστικής ανάλυσης που βασίζονται στη συχνότητα εμφάνισης των γραμμάτων σε κανονικά (μη-κρυπτογραφημένα) κείμενα μιας γλώσσας, εύκολα ξεκινάμε από το ciphertext και καταλήγουμε στο plaintext.

Οι σύγχρονοι, ισχυροί αλγόριθμοι κρυπτογράφησης, παραμένουν γνωστοί αλλά *δεν* είναι ευάλωτοι σε επιθέσεις όπως, π.χ., εκείνη της στατιστικής ανάλυσης. Μόνη ελπίδα για έναν επιτιθέμενο είναι να βρει το κλειδί της κρυπτογράφησης. Όμως τα κλειδιά έχουν το κατάλληλο μήκος (σε bits) και η όποια εξαντλητική επίθεση brute force απαιτεί τόσο πολύ χρόνο, ώστε στην πράξη να είναι παντελώς άχρηστη.

Στην έως τώρα συζήτησή μας, θα παρατηρήσατε ότι το κλειδί της κρυπτογράφησης είναι ίδιο με εκείνο της αποκρυπτογράφησης. Ακριβώς για το λόγο αυτό, μιλάμε για κρυπτογραφία συμμετρικού κλειδιού (symmetric key cryptography). Ασχέτως της “ποιότητας” του αλγορίθμου κρυπτογράφησης ή του μήκους του κλειδιού, η συμμετρική κρυπτογραφία έχει ένα σοβαρό πρόβλημα: με κάποιον τρόπο, οι παραλήπτες των κρυπτογραφημένων μηνυμάτων πρέπει να γνωρίζουν το κλειδί. Πώς επιτυγχάνεται κάτι τέτοιο; Μία συνάντηση είναι ένας καλός κι ασφαλής τρόπος, όμως δεν είναι πάντοτε εφικτός. Είναι και το άλλο: Αν πρόκειται να συναντήσουμε κάποιον για να του δώσουμε το κλειδί για ένα κρυπτογραφημένο μήνυμα που θέλουμε να του στείλουμε, ε, μπορούμε τότε να του μεταφέρουμε και το ίδιο το μήνυμα. Για να έχει λοιπόν η κρυπτογραφία συμμετρικού κλειδιού πρακτική αξία, τα εμπλεκόμενα κλειδιά πρέπει να αποστέλλονται στους παραλήπτες, π.χ., μέσω Internet. Φυσικά, η αποστολή πρέπει να γίνεται με τέτοιον τρόπο ώστε η υποκλοπή να είναι αδύνατη. Στο σημείο αυτό θα μπορούσε κάποιος να προτείνει ότι η αποστολή θα πρέπει να λαμβάνει χώρα πάντοτε μέσω ενός κρυπτογραφημένου καναλιού, όμως τότε το πρόβλημα απλά μετατίθεται λίγο πιο κάτω: πώς προστατεύουμε το κλειδί για την κρυπτογράφηση του ίδιου του καναλιού μετάδοσης;

Κρυπτογραφία δημοσίου κλειδιού
Το πρόβλημα της ασφαλούς μετάδοσης του κλειδιού έρχεται να αντιμετωπίσει η κρυπτογραφία δημοσίου κλειδιού (public key cryptography), η οποία βασίζεται σε μαθηματικά προβλήματα τα οποία δεν επιδέχονται αποδοτικές λύσεις. Παράδειγμα: Για το πρόβλημα της παραγοντοποίησης των ακεραίων αριθμών ή για εκείνο του υπολογισμού του διακριτού λογαρίθμου σε πεπερασμένες ομάδες, μέχρι σήμερα δεν έχει βρεθεί λύση που να ολοκληρώνεται σε πρακτικό για τα ανθρώπινα δεδομένα χρόνο — και δεν έχει καν σημασία η ισχύς των υπολογιστών που θα μπορούσαν να επιστρατευτούν για την εύρεση μιας λύσης.

Αναλυτικότερα, στο πλαίσιο της κρυπτογραφίας δημοσίου κλειδιού αντί για ένα έχουμε δύο, μαθηματικά συσχετιζόμενα, κλειδιά. Το ένα εξ αυτών ονομάζεται ιδιωτικό (private key) και το άλλο δημόσιο (public key). Το ιδιωτικό κλειδί φυλάσσεται ως κόρη οφθαλμού, ενώ το δημόσιο διανέμεται ελεύθερα σε κάθε ενδιαφερόμενο. Προσέξτε εδώ ότι αν και τα δύο κλειδιά συσχετίζονται μαθηματικά, ο υπολογισμός του ιδιωτικού ξεκινώντας από το δημόσιο είναι πρακτικά αδύνατος.

Σε κάθε ζεύγος ιδιωτικού/δημοσίου κλειδιού, το δημόσιο το χρησιμοποιούν όσοι θέλουν να μας στέλνουν κρυπτογραφημένα μηνύματα. Αυτά, αποκρυπτογραφούνται από το αντίστοιχο ιδιωτικό κλειδί και μόνον από αυτό. Από τη στιγμή που μόνον εμείς έχουμε το ιδιωτικό κλειδί, ο αποστολέας του κρυπτογραφημένου μηνύματος δικαιούται να είναι ήσυχος με τη γνώση ότι μόνον εμείς θα μπορέσουμε να το αποκρυπτογραφήσουμε. Προσέξτε: Ένα σωρό χρήστες είναι πιθανό να αποκτήσουν το κρυπτογραφημένο μήνυμα. Ακόμη κι αν γνωρίζουν καλά τον αλγόριθμο που χρησιμοποιήθηκε για την παραγωγή του ciphertext, από τη στιγμή που *δεν* διαθέτουν το αντίστοιχο ιδιωτικό κλειδί δεν μπορούν να κάνουν κάτι.

Μια άλλη χρήση του ιδιωτικού κλειδιού εκτός της αποκρυπτογράφησης, είναι για την παραγωγή των λεγόμενων ψηφιακών υπογραφών (digital signatures). Πριν στείλουμε ή δημοσιεύσουμε ένα μήνυμα, παράγουμε μια σύνοψή του (message digest) την οποία και κρυπτογραφούμε με χρήση του ιδιωτικού μας κλειδιού. Με άλλα λόγια, αυτό που κάνουμε είναι να υπογράψουμε ψηφιακά το μήνυμα. Γιατί μιλάμε για ψηφιακή υπογραφή; Πολύ απλά, διότι η κρυπτογραφημένη σύνοψη αποκρυπτογραφείται *μόνο* με χρήση του αντίστοιχου δημόσιου κλειδιού. Έτσι, όποιος ενδιαφέρεται για το γνήσιο της υπογραφής, απλά επιχειρεί να αποκρυπτογραφήσει τη σύνοψη με το δημόσιο κλειδί μας. Αν τα καταφέρει –κι επειδή υποτίθεται ότι μόνον εμείς κατέχουμε το αντίστοιχο ιδιωτικό κλειδί–, δικαιούται να είναι σίγουρος για το γνήσιο της υπογραφής. Επιπρόσθετα, αν η σύνοψη αποτελεί το αποτέλεσμα μιας συνάρτησης κατακερματισμού (hash function) επί του αρχικού κειμένου, τότε εκτός από το γνήσιο της υπογραφής κάθε ενδιαφερόμενος επαληθεύει και την ακεραιότητα (integrity) του μηνύματος που μόλις έλαβε. Βεβαιώνεται, δηλαδή, ότι το μήνυμα δεν τροποποιήθηκε κατά την αποστολή του.

Για το πώς δουλεύει η κρυπτογραφία δημοσίου κλειδιού στην πράξη και, ειδικότερα, για το πώς εκμεταλλευόμαστε τις σχετικές τεχνικές προκειμένου να στέλνουμε και να λαμβάνουμε κρυπτογραφημένη ή/και ψηφιακά υπογεγραμμένη ηλεκτρονική αλληλογραφία, παρακολουθήστε τα δύο εκτενή video tutorials.

Ζήτημα εμπιστοσύνης
Κάθε φορά που αποφασίζουμε ότι θέλουμε να έχουμε την επιλογή για αποστολή κρυπτογραφημένων email ή/και αρχείων σε κάποιον, τότε το πρώτο πράγμα που χρειαζόμαστε είναι το λεγόμενο δημόσιο πιστοποιητικό (public certificate) του “κάποιου”. Πρόκειται για ένα αρχείο απλού κειμένου με συγκεκριμένη δομή, το οποίο μεταξύ άλλων περιλαμβάνει μία ή περισσότερες διευθύνσεις email και ονόματα, ένα δημόσιο κλειδί, μία ή περισσότερες ψηφιακές υπογραφές από άλλους χρήστες κ.ά. Για παράδειγμα, το δημόσιο πιστοποιητικό του γράφοντα είναι στο https://keybase.io/christos_varelas/key.asc (περισσότερα για το Keybase σε λίγο). Όποιος θέλει να του στέλνει κρυπτογραφημένα email ή/και αρχεία, ελεύθερα μπορεί να πάρει το εν λόγω πιστοποιητικό και να το εισάγει στο δημόσιο keyring του. Με χρήση του ίδιου πιστοποιητικού, εκτός από την αποστολή κρυπτογραφημένων μηνυμάτων ή/και αρχείων θα μπορεί να επαληθεύει και τις ψηφιακές υπογραφές του γράφοντα.

Το θέμα με τα δημόσια πιστοποιητικά δεν είναι η ποσότητα των πληροφοριών που περιέχουν. Αντίθετα, το πρόβλημα είναι ότι κανείς δεν είναι σε θέση να μας διασφαλίσει ότι ο κάτοχος ενός πιστοποιητικού είναι πράγματι αυτός που νομίζουμε ότι είναι. Ακούγεται λίγο παράξενα αυτή η πρόταση; Είναι παράξενη! Αν όμως το σκεφτούμε λίγο, θα συνειδητοποιήσουμε ότι ο ισχυρισμός για την κατοχή ενός πιστοποιητικού είναι ένα πράγμα, η απόδειξη όμως για την κατοχή ενός πιστοποιητικού από ένα συγκεκριμένο φυσικό πρόσωπο είναι εντελώς διαφορετικό πράγμα.

Ας πούμε, π.χ., ότι λαμβάνετε το δικό μου δημόσιο πιστοποιητικό. Παρακολουθήσατε αυτά τα δύο video tutorials, πωρωθήκατε με την κρυπτογραφία δημοσίου κλειδιού, φτιάξατε το δικό σας ζεύγος ιδιωτικού/δημοσίου κλειδιού κι αυτή τη στιγμή σκέφτεστε ότι δεν βλάπτει αν εισάγετε στο δημόσιο keyring σας το πιστοποιητικό μου. Εξετάζοντάς το, θα δείτε ότι περιλαμβάνει μια πληθώρα διευθύνσεων email. Κάποιες εξ αυτών, όπως εκείνες στο defiant.gr και στο colder.xyz, είναι λίγο παράξενες και δεν σας λένε πολλά. Κάποιες άλλες, όπως εκείνη στο deltahacker.gr, κάτι σας λένε. Αλλά υπάρχει ένα πρόβλημα. Όποιος θέλει, πολύ εύκολα μπορεί να δημιουργήσει ένα δημόσιο πιστοποιητικό που θα περιλαμβάνει ένα σωρό διευθύνσεις email — μεταξύ αυτών κι εκείνες που εμπεριέχονται στο δικό μου πιστοποιητικό. Η ελευθερία συμπερίληψης διευθύνσεων email στα πιστοποιητικά ισχύει *και* για τα ονόματα. Ξαφνικά, λοιπόν, είναι πολύ πιθανό να υπάρχουν περισσότερα από ένα δημόσια πιστοποιητικά στα email των οποίων περιλαμβάνονται κοινές διευθύνσεις, ενώ και το όνομα του κατόχου σε κάθε πιστοποιητικό είναι “Χρήστος Βαρελάς”. Πώς στην ευχή, λοιπόν, βεβαιώνεται κάποιος για τον πραγματικό κάτοχο του πιστοποιητικού που τώρα εξετάζει; Ένας τρόπος είναι να συναντήσει τον υποτιθέμενο κάτοχο ή έστω να του τηλεφωνήσει. Κάπως έτσι, θα μπορέσει να βγάλει ασφαλή συμπεράσματα. Καταλαβαίνετε φυσικά ότι, πλην ελαχίστων εξαιρέσεων, η λύση της συνάντησης ή του τηλεφώνου δεν είναι πρακτική. Για την ακρίβεια, στη συντριπτική πλειονότητα των περιπτώσεων δεν υφίσταται καν ως επιλογή. Το πρόβλημα, λοιπόν, παραμένει: Πώς διασφαλίζουμε ότι ένα συγκεκριμένο φυσικό πρόσωπο είναι πράγματι ο ιδιοκτήτης του δημόσιου πιστοποιητικού που τώρα εξετάζουμε και σπαζοκεφαλιάζουμε;

Υποδομές δημοσίων κλειδιών και ιστός της εμπιστοσύνης
Υπάρχουν διάφοροι τρόποι για την αντιμετώπιση του προβλήματος της εμπιστοσύνης, εννοείται στο πλαίσιο συστημάτων όπου γίνεται χρήση τεχνικών κρυπτογραφίας δημοσίου κλειδιού. Ένας εξ αυτών είναι με την εγκαθίδρυση μιας Υποδομής Δημοσίου Κλειδιού (Public Key Infrastructure ή απλά PKI). Κάθε PKI εμπεριέχει ένα σύνολο πολιτικών και διαδικασιών, οι οποίες ακολουθούνται για τη δημιουργία, την αποθήκευση, τη διαχείριση, τη χρήση αλλά και την ακύρωση δημόσιων πιστοποιητικών. Οι εν λόγω πολιτικές και διαδικασίες υλοποιούνται από το κατάλληλο hardware και software, αλλά και με τη συμμετοχή διαχειριστών και απλών χρηστών. Βασικός λόγος ύπαρξης μιας PKI είναι η αντιστοίχιση δημοσίων πιστοποιητικών σε οντότητες (entities). Η συγκεκριμένη, κρίσιμη εργασία, είναι ευθύνη μιας Αρχής Πιστοποίησης (Certification Authority ή απλά CA). Στο πλαίσιο λοιπόν μιας συγκεκριμένης PKI, εμπιστευόμαστε την CA και δεχόμαστε ότι έχει κάνει όλους τους απαραίτητους ελέγχους ώστε να μην υπάρχουν αμφιβολίες για τις αντιστοιχίσεις πιστοποιητικών σε οντότητες. (Ο λόγος που αντί να μιλάμε για χρήστες προτιμάμε το γενικότερο όρο “οντότητα”, είναι διότι τα δημόσια πιστοποιητικά δεν αντιστοιχίζονται μόνο σε φυσικά πρόσωπα αλλά και σε δικτυακούς τόπους ή σε δικτυακές υπηρεσίες γενικότερα.)

Οι Αρχές Πιστοποίησης χρησιμοποιούνται κατά κόρον για την έκδοση δημοσίων πιστοποιητικών για web sites ή για άλλες δικτυακές υπηρεσίες, όπου έχουμε εγκαθιδρύσεις κρυπτογραφημένων καναλιών επικοινωνίας, π.χ., μέσω του πρωτοκόλλου TLS (Transport Layer Security). Οι Υποδομές Δημοσίου Κλειδιού λειτουργούν ιεραρχικά, υπό την έννοια ότι υπάρχει μια Αρχή Πιστοποίησης που όλοι εμπιστευόμαστε ή ενδιάμεσες Αρχές Πιστοποίησης τις οποίες εμπιστεύονται άλλες, ανώτερες Αρχές Πιστοποίησης κ.ο.κ. Και κάπου εδώ αποκαλύπτεται ένα σοβαρό πρόβλημα με τις CA: Το μεγάλο τους πλήθος σημαίνει ότι δεν μπορούμε να εμπιστευόμαστε καθεμία εξ αυτών, ενώ και κατά καιρούς έχουν εκδοθεί ψευδεπίγραφα πιστοποιητικά για web sites.

Τώρα, ειδικά στον κόσμο των PGP, GnuPG και άλλων συστημάτων κρυπτογραφίας δημοσίου κλειδιού που συμμορφώνονται με τις προδιαγραφές του OpenPGP, η σχέση δημοσίου πιστοποιητικού και ιδιοκτήτη επικυρώνεται με βάση το μοντέλο του Web of Trust. Σε αντίθεση με το ιεραρχικό μοντέλο που ακολουθεί κάθε Υποδομή Δημοσίου Κλειδιού, στο Web of Trust δεν υπάρχουν Αρχές Πιστοποίησης. Η ιδιοκτησία των δημοσίων κλειδιών επαληθεύεται από τους ίδιους τους χρήστες του συστήματος, χωρίς να υπάρχει κάποια Αρχή την οποία εμπιστευόμαστε εκ προοιμίου. Αναλυτικότερα, οι χρήστες έχουν τη δυνατότητα –χωρίς όμως να είναι υποχρεωμένοι– να υπογράφουν όσα πιστοποιητικά θεωρούν έγκυρα. Ένα πιστοποιητικό με πολλές υπογραφές μπορούμε να το εμπιστευόμαστε περισσότερο, σε σχέση με ένα άλλο που δεν έχει υπογράψει κανείς.

Το πώς δουλεύει το μοντέλο του Web Of Trust φαίνεται μέσα από ένα απλό παράδειγμα. Ας υποθέσουμε ότι ένας φίλος μου ή έστω γνωστός μου, έχει πάρει το δημόσιο πιστοποιητικό μου. Αν δεν του το έχω δώσει ο ίδιος, επικοινωνώντας μαζί μου βεβαιώνεται ότι εγώ το παρήγαγα κι αν θέλει το υπογράφει κιόλας. Κατ’ αυτόν τον τρόπο δηλώνει δημόσια ότι εγγυάται πως το εν λόγω πιστοποιητικό είναι πράγματι δικό μου. Στη συνέχεια, ένας φίλος του φίλου μου, ο οποίος δεν είναι υποχρεωτικά και δικός μου φίλος, επειδή εμπιστεύεται τον κοινό μας φίλο είναι πιθανό να υπογράψει κι εκείνος το πιστοποιητικό μου. Αμέσως αμέσως, υπάρχουν δύο χρήστες που εγγυώνται για την εγκυρότητα του πιστοποιητικού. Λίγο να το επιδιώξω και οι δύο υπογράφοντες θα γίνουν τρεις ή περισσότεροι.

Μαζικές υπογραφές δημοσίων πιστοποιητικών λαμβάνουν χώρα στα λεγόμενα key-signing parties, όπου οι παρευρισκόμενοι έχουν μαζί τους ψηφιακά πιστοποιητικά αλλά και τα απαραίτητα αποδεικτικά της ταυτότητάς τους (π.χ., αστυνομικές ταυτότητες), οπότε άλλοι χρήστες μπορούν, αν το επιθυμούν, να υπογράφουν ψηφιακά πιστοποιητικά χωρίς την παραμικρή αμφιβολία για τους κατόχους τους.

Σε σύγκριση με μια Υποδομή Δημοσίου Κλειδιού, το Web of Trust είναι πολύ πιο ανθεκτικό ως μοντέλο. Η επικύρωση της ιδιοκτησίας των δημόσιων πιστοποιητικών είναι μια ευθύνη που δεν εναποτίθεται σε προνομιακούς παίκτες με συγκεντρωμένη δύναμη, αλλά σε όλους όσοι επιθυμούν να την αναλαμβάνουν. Και το Web of Trust όμως έχει τα προβλήματά του. Η συμπεριφορά –ακριβέστερα η απροθυμία ή/και η αμέλεια– των χρηστών, είναι το πιο σημαντικό. Αν κάποιος χάσει το ιδιωτικό του κλειδί και το αντίστοιχο δημόσιο κλειδί αργεί να λήξει ή δεν έχει καν ημερομηνία λήξης, είναι τότε πιθανό να λαμβάνει κρυπτογραφημένα μηνύματα τα οποία δεν θα μπορεί να αποκρυπτογραφεί. Επιπλέον, αν ένας χρήστης δεν έχει φροντίσει για τη δημιουργία πιστοποιητικού ανάκλησης (revocation certificate) και χάσει το ιδιωτικό του κλειδί, τότε ποτέ δεν θα είναι σε θέση ν’ ανακαλέσει (ακυρώσει) το δημόσιο κλειδί που κυκλοφορεί Εκεί Έξω (TM). Ειδικά αν το δημόσιο κλειδί δεν λήγει και ο αρχικός του δημιουργός κάποια στιγμή κυκλοφορήσει νέο πιστοποιητικό, καταλαβαίνετε ότι είναι εύκολο να δημιουργούνται παρεξηγήσεις και το όλο σύστημα της κρυπτογραφίας δημοσίου κλειδιού να δυσφημίζεται άδικα. Τελικά, για να δουλεύει το μοντέλο του Web of Trust οι ίδιοι οι χρήστες του οφείλουν να γνωρίζουν τι κάνουν, βεβαίως και να είναι πρόθυμοι να ελέγχουν λεπτομερώς την ιδιοκτησία των δημοσίων πιστοποιητικών. Αυτό εύκολα λέγεται ή γράφεται, πολύ πιο δύσκολα όμως εφαρμόζεται στην πράξη.

Enter Keybase, όπως θα γράφαμε αν το περιοδικό ήταν στην Αγγλική.

Η αξιοπρόσεκτη προσέγγιση του Keybase
Το Keybase είναι ένα σχετικά νέο εγχείρημα που φιλοδοξεί αφενός να αντιμετωπίσει αποτελεσματικά το πρόβλημα της εμπιστοσύνης στις σχέσεις ιδιοκτησίας φυσικών προσώπων και δημόσιων πιστοποιητικών, αφετέρου να διευκολύνει σημαντικά την καθημερινή χρήση της κρυπτογραφίας δημοσίου κλειδιού.

Ο Chris Coyne, ένας εκ των ιδρυτών του Keybase, όταν αποφάσισε να κατεβάσει τον πηγαίο κώδικα του Bitcoin για να τον εξετάσει, θέλησε να ελέγξει και την εγκυρότητα της διανομής. Αυτό θα γινόταν λαμβάνοντας το δημόσιο κλειδί του Gavin Andresen, του ανθρώπου που εμπιστεύεται ο Satoshi Nakamoto, ο ψευδώνυμος δημιουργός του Bitcoin. Προσπαθώντας όμως ο Coyne να κατεβάσει το δημόσιο κλειδί του Andresen από τους keyservers, βρήκε εκατοντάδες κλειδιά που έδειχναν να τον αφορούν. Ποιο θα έπρεπε να επιλέξει;

Το Keybase επιτίθεται στο πρόβλημα της εμπιστοσύνης όχι με τη δημιουργία ενός κλειστού, ιδιόκτητου συστήματος ελέγχου, αλλά με βάση τις online παρουσίες των συμμετεχόντων. Όταν μιλάμε για “online παρουσίες” εννοούμε λογαριασμούς σε κοινωνικά δίκτυα, web sites, διευθύνσεις Bitcoin κ.ο.κ. Κάθε χρήστης του Keybase αποδεικνύει τη σχέση του, π.χ., με έναν λογαριασμό στο Twitter ή με έναν δικτυακό τόπο, καταφεύγοντας σε τεχνικές κρυπτογραφίας δημοσίου κλειδιού. Προκειμένου οι υπό συζήτηση αποδείξεις να είναι δυνατές, ο χρήστης είτε πρέπει να διαθέτει ήδη ένα ζεύγος ιδιωτικού/δημοσίου κλειδιού, είτε να δημιουργήσει ένα τέτοιο ζεύγος μέσα από το περιβάλλον του Keybase. Το δημόσιο κλειδί του χρήστη ανεβαίνει στο https://keybase.io –αυτή είναι η διεύθυνση του πρότζεκτ– κι από εκεί και πέρα χρησιμοποιείται, μεταξύ άλλων, ώστε να αποδεικνύεται η σχέση του χρήστη με άλλους online χώρους ή με άλλες ψηφιακές οντότητες (π.χ., διευθύνσεις Bitcoin).

Δείτε τώρα τι γίνεται: Άλλοι χρήστες του Keybase είναι πολύ εύκολο να λαμβάνουν το δημόσιο κλειδί μας, ενώ το σημαντικότερο είναι ότι βεβαιώνονται για την ταυτότητά μας από τις αποδείξεις που έχουμε φέρει εις πέρας. Σε ένα πιο συγκεκριμένο παράδειγμα, κοιτάζοντας κάποιος το προφίλ του γράφοντα στη διεύθυνση https://keybase.io/christos_varelas, βλέπει μεταξύ άλλων μια απόδειξη για το https://twitter.com/subZraw αλλά και αποδείξεις για τα https://colder.xyz, https://parabing.com και http://deltahacker.gr. Δικαιούται, λοιπόν, να είναι σίγουρος για την ταυτότητα του κατόχου του αντίστοιχου δημοσίου κλειδιού, οπότε μπορεί να το πάρει και ν’ αρχίσει να μου στέλνει κρυπτογραφημένα email ή αρχεία, βεβαίως και να επαληθεύει το γνήσιο των όποιων υπογραφών μου.

Στο σημείο αυτό θα ισχυριζόταν κάποιος ότι τίποτε δεν εμποδίζει κακόβουλους χρήστες από το να δημιουργούν ψευδεπίγραφα προφίλ στο Keybase. Πράγματι, αν ένας χάκερ έχει αποκτήσει πρόσβαση στο λογαριασμό μου στο Twitter, σίγουρα θα είναι σε θέση να φτιάξει ένα προφίλ με *το δικό μου* ονοματεπώνυμο, *το δικό του* δημόσιο κλειδί και μια απόδειξη για το Twitter (μου). Αν όμως σε ένα προφίλ του Keybase υπάρχουν περισσότερες από μία αποδείξεις, καταλαβαίνουμε ότι η πιθανότητα για έναν χάκερ να έχει αποκτήσει πρόσβαση *σε όλους* τους αντίστοιχους χώρους είναι μηδαμινή. Για παράδειγμα, προκειμένου το προφίλ στο https://keybase.io/christos_varelas να μην έχει δημιουργηθεί από τον γράφοντα, ένας κακόβουλος χάκερ θα έπρεπε να ‘χει πρόσβαση σε έναν λογαριασμό στο Twitter, σε άλλον έναν στο Coinbase, καθώς και στους domain name servers τριών διαφορετικών δικτυακών τόπων (colder.xyz, parabing.com και deltahacker.gr).

Προς το παρόν το Keybase λειτουργεί δοκιμαστικά και για να γραφτεί κάποιος στην υπηρεσία χρειάζεται πρόσκληση (invitation) από άλλον, ήδη εγγεγραμμένο χρήστη. Αν ενδιαφέρεστε, μπορούμε να σας εγγυηθούμε ότι δεν θα δυσκολευτείτε να βρείτε μία πρόσκληση. Εμείς, π.χ., στείλαμε ένα απόγευμα email σε χρήστη της υπηρεσίας και την άλλη μέρα είχαμε την πρόσκλησή μας. Αφού γραφτήκαμε στο site και δημιουργήσαμε το προφίλ μας, σε λίγες ώρες μάς είχαν σταλεί άλλες οκτώ προσκλήσεις. Αυτές, εννοείται ότι μπορούμε να τις στείλουμε σε άλλους ενδιαφερόμενους. Δείτε στα screenshots που ακολουθούν μερικά στιγμιότυπα από την ενασχόλησή μας με την υπηρεσία, διαβάστε και τις αντίστοιχες περιγραφές.

Προς το παρόν το Keybase δεν είναι καν σε φάση beta και για να γραφτείτε στο site θα χρειαστείτε πρόσκληση από ήδη εγγεγραμμένο χρήστη.

Προς το παρόν το Keybase δεν είναι καν σε φάση beta και για να γραφτείτε στο site θα χρειαστείτε πρόσκληση από ήδη εγγεγραμμένο χρήστη. Δεν δυσκολευτήκαμε να βρούμε πρόσκληση και δεν θα δυσκολευτείτε ούτε κι εσείς. Απλά, ξεκινήστε από το https://keybase.io κι επισκεφτείτε το προφίλ κάποιου χρήστη. Αν διαθέτει προσκλήσεις, το γεγονός αυτό θα αναφέρεται ευκρινώς σε ένα πράσινο πλαίσιο. Κατεβάστε το δημόσιο κλειδί του χρήστη και στείλτε του ένα κρυπτογραφημένο email, στο οποίο ευγενικά θα του ζητάτε να σας στείλει μια πρόσκληση. Πιθανότατα θα έχετε κι άλλες δυνατότητες για επικοινωνία, π.χ., μέσω Twitter, πιστεύουμε όμως ότι με την αποστολή κρυπτογραφημένου email θα τραβήξετε την προσοχή του και θα συμπεράνει ότι λαμβάνετε σοβαρά υπόψη την κρυπτογραφία δημοσίου κλειδιού. Έτσι, θα είναι πιο δύσκολο για εκείνον να σας αρνηθεί μια πρόσκληση.

Μετά το login στην υπηρεσία το προφίλ μας είναι άδειο και φυσικά δεν υπάρχει καμία απόδειξη για τις online παρουσίες μας. Η πρώτη μας ενέργεια θα πρέπει να είναι η προσθήκη ενός εκ των δημοσίων κλειδιών που διαθέτουμε. Αν δεν έχουμε κάποιο ζεύγος ιδιωτικού/δημοσίου κλειδιού, μπορούμε να δημιουργήσουμε ένα μέσα από το web interface του Keybase.

Μετά το login στην υπηρεσία το προφίλ μας είναι άδειο και φυσικά δεν υπάρχει καμία απόδειξη για τις online παρουσίες μας. Η πρώτη μας ενέργεια θα πρέπει να είναι η προσθήκη ενός εκ των δημοσίων κλειδιών που διαθέτουμε. Αν δεν έχουμε κάποιο ζεύγος ιδιωτικού/δημοσίου κλειδιού, μπορούμε να δημιουργήσουμε ένα μέσα από το web interface του Keybase.

Διαθέταμε ήδη ζεύγος ιδιωτικού/δημοσίου κλειδιού, δεν είχαμε λόγο να δημιουργήσουμε νέο, συνεπώς επιλέξαμε να ανεβάσουμε το δημόσιο κλειδί μας στο Keybase. Παρατηρήστε ότι μας παρέχονται και οδηγίες για το πώς μπορούμε να εξάγουμε το δημόσιο κλειδί μας από τη γραμμή εντολών σε μορφή ASCII. Αφού το εξάγουμε --όχι κατ' ανάγκη με τον υποδεικνυόμενο τρόπο--, επιλέγουμε όλο το κείμενο, το μεταφέρουμε στο πλαίσιο My public key και πατάμε στο κουμπί Upload.

Διαθέταμε ήδη ζεύγος ιδιωτικού/δημοσίου κλειδιού, δεν είχαμε λόγο να δημιουργήσουμε νέο, συνεπώς επιλέξαμε να ανεβάσουμε το δημόσιο κλειδί μας στο Keybase. Παρατηρήστε ότι μας παρέχονται και οδηγίες για το πώς μπορούμε να εξάγουμε το δημόσιο κλειδί μας από τη γραμμή εντολών σε μορφή ASCII. Αφού το εξάγουμε –όχι κατ’ ανάγκη με τον υποδεικνυόμενο τρόπο–, επιλέγουμε όλο το κείμενο, το μεταφέρουμε στο πλαίσιο My public key και πατάμε στο κουμπί Upload.

Μετά το ανέβασμα του δημοσίου κλειδιού οφείλουμε να το υπογράψουμε με χρήση του ιδιωτικού μας κλειδιού. Επιλέγουμε να το πράξουμε ακολουθώντας την 3η από τις τρεις διαθέσιμες μεθόδους, δηλαδή από τη γραμμή εντολών του BASH shell και με τη βοήθεια των εργαλείων gpg και curl.

Μετά το ανέβασμα του δημοσίου κλειδιού οφείλουμε να το υπογράψουμε με χρήση του ιδιωτικού μας κλειδιού. Επιλέγουμε να το πράξουμε ακολουθώντας την 3η από τις τρεις διαθέσιμες μεθόδους, δηλαδή από τη γραμμή εντολών του BASH shell και με τη βοήθεια των εργαλείων gpg και curl. Σε συστήματα Linux/BSD/OS X, όλα όσα χρειαζόμαστε μάλλον θα είναι ήδη εγκατεστημένα. Αν κάτι απουσιάζει, εύκολα θα μπορέσουμε να το προσθέσουμε. Σε περίπτωση που δουλεύουμε σε περιβάλλον Windows, το gpg διατίθεται μέσω του πακέτου Gpg4win ενώ το curl περιλαμβάνεται στο Cygwin. Μια εναλλακτική είναι να εγκαταστήσουμε τον επίσημο client του Keybase για Windows και για την υπογραφή του δημοσίου κλειδιού να χρησιμοποιήσουμε τη 2η από τις τρεις διαθέσιμες μεθόδους.

Στο τερματικό μας θα αντιγράψουμε όλο το περιεχόμενο του πλαισίου που μας έχει παρουσιαστεί. Αρκεί ένα κλικ μέσα στο πλαίσιο κι όλο το περιεχόμενο θα επιλεχθεί, οπότε είναι εύκολο να το αντιγράψουμε στο clipboard (copy) και μετά να το μεταφέρουμε σε ένα παράθυρο τερματικού (paste).

Στο τερματικό μας θα αντιγράψουμε όλο το περιεχόμενο του πλαισίου που μας έχει παρουσιαστεί. Αρκεί ένα κλικ μέσα στο πλαίσιο κι όλο το περιεχόμενο θα επιλεχθεί, οπότε είναι εύκολο να το αντιγράψουμε στο clipboard (copy) και μετά να το μεταφέρουμε σε ένα παράθυρο τερματικού (paste). Όλο αυτό το κείμενο δείχνει τρομακτικό. Αν όμως προσέξουμε λίγο, βλέπουμε ότι με τη βοήθεια του curl και μέσω του API που παρέχει το Keybase, αυτό που κάνουμε είναι ότι υπογράφουμε τοπικά το δημόσιο κλειδί μας και την υπογραφή την ανεβάζουμε στο Keybase.

Έχουμε μεταφέρει το κείμενο στο τερματικό κι έχουμε εκτελέσει τη σχετική εντολή. Πριν δημιουργηθεί η υπογραφή καλούμαστε να πληκτρολογήσουμε το passphrase που προστατεύει το ιδιωτικό μας κλειδί.

Έχουμε μεταφέρει το κείμενο στο τερματικό κι έχουμε εκτελέσει τη σχετική εντολή. Πριν δημιουργηθεί η υπογραφή καλούμαστε να πληκτρολογήσουμε το passphrase που προστατεύει το ιδιωτικό μας κλειδί.

Ωραία! Δημιουργήθηκε η υπογραφή, ανέβηκε και στο Keybase. Από το τερματικό, παροτρυνόμαστε να κοιτάξουμε στον web browser.

Ωραία! Δημιουργήθηκε η υπογραφή, ανέβηκε και στο Keybase. Από το τερματικό, παροτρυνόμαστε να κοιτάξουμε στον web browser.

Το μήνυμα στον browser δεν αφήνει καμία αμφιβολία: Μόλις αποδείξαμε ότι έχουμε στην κατοχή μας το ιδιωτικό κλειδί που αντιστοιχεί στο δημόσιο, το οποίο πριν λίγο ανεβάσαμε στο Keybase.

Το μήνυμα στον browser δεν αφήνει καμία αμφιβολία: Μόλις αποδείξαμε ότι έχουμε στην κατοχή μας το ιδιωτικό κλειδί που αντιστοιχεί στο δημόσιο, το οποίο πριν λίγο ανεβάσαμε στο Keybase.

Αναφορικά με τις παρουσίες μας online, η πρώτη που θελήσαμε να αποδείξουμε ότι είναι πράγματι δική μας αφορούσε στο Twitter. Η διαδικασία ξεκινά πληκτρολογώντας το Twitter handle μας.

Αναφορικά με τις παρουσίες μας online, η πρώτη που θελήσαμε να αποδείξουμε ότι είναι πράγματι δική μας αφορούσε στο Twitter. Η διαδικασία ξεκινά πληκτρολογώντας το Twitter handle μας.

Για άλλη μια φορά επιλέξαμε να κάνουμε την απόδειξη από το τερματικό και με τα εργαλεία curl και gpg. Το Keybase παρέθεσε τον σχετικό κώδικα, τον μεταφέραμε σε ένα τερματικό και πριν υπογράψουμε ένα επιθυμητό κείμενο (tweet) που δημιουργεί το Keybase, απλά πληκτρολογήσαμε το passphrase του ιδιωτικού μας κλειδιού.

Για άλλη μια φορά επιλέξαμε να κάνουμε την απόδειξη από το τερματικό και με τα εργαλεία curl και gpg. Το Keybase παρέθεσε τον σχετικό κώδικα, τον μεταφέραμε σε ένα τερματικό και πριν υπογράψουμε ένα επιθυμητό κείμενο (tweet) που δημιουργεί το Keybase, απλά πληκτρολογήσαμε το passphrase του ιδιωτικού μας κλειδιού.

Στη συνέχεια κάνουμε ένα tweet, ακριβώς με το περιεχόμενο που μας δίνεται από το Keybase. Μετά το tweet λέμε στο Keybase να το ελέγξει.

Στη συνέχεια κάνουμε ένα tweet, ακριβώς με το περιεχόμενο που μας δίνεται από το Keybase. Μετά το tweet λέμε στο Keybase να το ελέγξει.

Με χρήση του δημοσίου μας κλειδιού, το keybase αποκρυπτογραφεί την ψηφιακή υπογραφή που ανεβάσαμε. Το plaintext που παίρνει ως αποτέλεσμα το συγκρίνει με το tweet που μόλις κάναμε. Αν τα δύο κείμενα ταυτίζονται, τότε αποδεικνύεται ότι πράγματι ελέγχουμε τον αντίστοιχο λογαριασμό στο Twitter.

Με χρήση του δημοσίου μας κλειδιού, το keybase αποκρυπτογραφεί την ψηφιακή υπογραφή που ανεβάσαμε. Το plaintext που παίρνει ως αποτέλεσμα το συγκρίνει με το tweet που μόλις κάναμε. Αν τα δύο κείμενα ταυτίζονται, τότε αποδεικνύεται ότι πράγματι ελέγχουμε τον αντίστοιχο λογαριασμό στο Twitter. Προσέξτε: Παροτρυνόμαστε να μη διαγράψουμε το tweet, αφού άλλοι χρήστες θα θέλουν να ελέγχουν από μόνοι τους (με τη βοήθεια ενός εργαλείου σαν το keybase) ότι είμαστε οι κάτοχοι του αντίστοιχου λογαριασμού. Όταν λέμε “από μόνοι τους”, εννοούμε ότι ο έλεγχος γίνεται χωρίς ο ενδιαφερόμενος να εμπιστεύεται τι λέει ο Keybase server.

Έχουμε τρία διαφορετικά sites υπό τον έλεγχό μας, οπότε σκεφτήκαμε ότι καλό είναι να παραθέσουμε ισάριθμες αποδείξεις, μία για κάθε site. Η επαλήθευση της ιδιοκτησίας ενός site γίνεται με δύο τρόπους: είτε με το ανέβασμα ενός αρχείου στον κατάλληλο κατάλογο του web server, είτε με την προσθήκη ενός TXT record στον name server που είναι υπεύθυνος για το domain του site. Μιας κι έχουμε πρόσβαση στους name servers των sites, αποφασίσαμε να ακολουθήσουμε τη δεύτερη μέθοδο.

Έχουμε τρία διαφορετικά sites υπό τον έλεγχό μας, οπότε σκεφτήκαμε ότι καλό είναι να παραθέσουμε ισάριθμες αποδείξεις, μία για κάθε site. Η επαλήθευση της ιδιοκτησίας ενός site γίνεται με δύο τρόπους: είτε με το ανέβασμα ενός αρχείου στον κατάλληλο κατάλογο του web server, είτε με την προσθήκη ενός TXT record στον name server που είναι υπεύθυνος για το domain του site. Μιας κι έχουμε πρόσβαση στους name servers των sites, αποφασίσαμε να ακολουθήσουμε τη δεύτερη μέθοδο.

Στο αμέσως επόμενο βήμα παρέχουμε το domain name του site. Ξεκινήσαμε με την επαλήθευση για το colder.xyz.

Στο αμέσως επόμενο βήμα παρέχουμε το domain name του site. Ξεκινήσαμε με την επαλήθευση για το colder.xyz.

Το περιεχόμενο του TXT record που πρόκειται να μας δοθεί θα το υπογράψουμε και την ψηφιακή υπογραφή θα την ανεβάσουμε στο Keybase. Για άλλη μια φορά επιλέγουμε τη μέθοδο των BASH, gpg και curl.

Το περιεχόμενο του TXT record που πρόκειται να μας δοθεί θα το υπογράψουμε και την ψηφιακή υπογραφή θα την ανεβάσουμε στο Keybase. Για άλλη μια φορά επιλέγουμε τη μέθοδο των BASH, gpg και curl.

Η συνέχεια είναι η αναμενόμενη: αντιγράφουμε τον κώδικα που μας παρέχει το Keybase...

Η συνέχεια είναι η αναμενόμενη: αντιγράφουμε τον κώδικα που μας παρέχει το Keybase…

...τον μεταφέρουμε σε ένα τερματικό και τον εκτελούμε. Όπως βλέπετε, η ψηφιακή υπογραφή μπήκε κι ανέβηκε επιτυχώς στο Keybase.

…τον μεταφέρουμε σε ένα τερματικό και τον εκτελούμε. Όπως βλέπετε, η ψηφιακή υπογραφή μπήκε κι ανέβηκε επιτυχώς στο Keybase.

Αντιγράφουμε ως έχει το περιεχόμενο που το Keybase παραθέτει στο σχετικό πλαίσιο. Αυτό είναι το περιεχόμενο του νέου TXT record που θα φτιάξουμε.

Αντιγράφουμε ως έχει το περιεχόμενο που το Keybase παραθέτει στο σχετικό πλαίσιο. Αυτό είναι το περιεχόμενο του νέου TXT record που θα φτιάξουμε.

Ο name server του colder.xyz είναι εκείνος του Mail-in-a-Box και η διαχείρισή του πραγματοποιείται μέσα από ένα λιτό κι εύχρηστο web panel. Στο στιγμιότυπο βλέπουμε τη δημιουργία ενός νέου record τύπoυ TXT [Type = TXT (text record)] για το colder.xyz (Name = colder.xyz). Το περιεχόμενο του νέου record είναι αυτό που μας έδωσε το Keybase. Ευλαβικά, το παραθέτουμε στη θυρίδα Value.

Ο name server του colder.xyz είναι εκείνος του Mail-in-a-Box και η διαχείρισή του πραγματοποιείται μέσα από ένα λιτό κι εύχρηστο web panel. Στο στιγμιότυπο βλέπουμε τη δημιουργία ενός νέου record τύπoυ TXT [Type = TXT (text record)] για το colder.xyz (Name = colder.xyz). Το περιεχόμενο του νέου record είναι αυτό που μας έδωσε το Keybase. Ευλαβικά, το παραθέτουμε στη θυρίδα Value.

Μετά από λίγο το Keybase θα είναι σε θέση να διαβάσει το νέο TXT record από τον name server του colder.xyz, επομένως θα επαληθεύσει την ιδιοκτησία του domain από μέρους μας. Όπως και με την περίπτωση του Twitter, έτσι και τώρα παροτρυνόμαστε να μη διαγράψουμε το TXT record.

Μετά από λίγο το Keybase θα είναι σε θέση να διαβάσει το νέο TXT record από τον name server του colder.xyz, επομένως θα επαληθεύσει την ιδιοκτησία του domain από μέρους μας. Όπως και με την περίπτωση του Twitter, έτσι και τώρα παροτρυνόμαστε να μη διαγράψουμε το TXT record.

Στα web panel κάποιων name servers, όταν ορίζουμε ένα νέο TXT record τότε ως όνομα του δίνουμε το '@' (χωρίς το εισαγωγικά). Το Keybase φροντίζει και μας πληροφορεί σχετικά και τη συμβουλή του την ακολουθήσαμε κατά την επαλήθευση της ιδιοκτησίας του deltahacker.gr, όπου ο name server του domain παρέχεται από τη Digital Ocean.

Στα web panel κάποιων name servers, όταν ορίζουμε ένα νέο TXT record τότε ως όνομα του δίνουμε το “@” (χωρίς το εισαγωγικά). Το Keybase φροντίζει και μας πληροφορεί σχετικά και τη συμβουλή του την ακολουθήσαμε κατά την επαλήθευση της ιδιοκτησίας του deltahacker.gr, όπου ο name server του domain παρέχεται από τη Digital Ocean.

Ιδού το προφίλ του γράφοντα, με όλες τις αποδείξεις που έχει πραγματοποιήσει.

Ιδού το προφίλ του γράφοντα, με όλες τις αποδείξεις που έχει πραγματοποιήσει. Ένας γρήγορος τρόπος προκειμένου να εισάγετε το δημόσιο κλειδί του στο keyring σας, είναι ν’ ανοίξετε ένα τερματικό και να πληκτρολογήσετε

curl https://keybase.io/christos_varelas/key.asc | gpg --import

Διαχείριση των δημοσίων κλειδιών του keyring μας, μέσα από το περιβάλλον του GPG Keychain manager (για OS X). Τα περισσότερα κλειδιά ανήκουν σε αναγνώστες του περιοδικού αλλά κάποια τα έχουμε πάρει από το Keybase. Ελέγχοντας τις αποδείξεις ορισμένων χρηστών με τη βοήθεια του εργαλείου ονόματι keybase, είναι πιθανό να διαπιστώσετε ότι κάποιες αποτυγχάνουν. Αυτό μάς συνέβη με το προφίλ του Leo Laporte. Αν γνωρίζετε τον υπό έλεγχο χρήστη, δεν είναι καθόλου κακή ιδέα να τον ενημερώσετε αφού οι όποιες αποτυχίες είναι πιθανό να οφείλονται σε δικές του ενέργειες.

Διαχείριση των δημοσίων κλειδιών του keyring μας, μέσα από το περιβάλλον του GPG Keychain manager (για OS X). Τα περισσότερα κλειδιά ανήκουν σε αναγνώστες του περιοδικού αλλά κάποια τα έχουμε πάρει από το Keybase. Ελέγχοντας τις αποδείξεις ορισμένων χρηστών με τη βοήθεια του εργαλείου ονόματι keybase (π.χ., “keybase id leolaporte”), είναι πιθανό να διαπιστώσετε ότι κάποιες αποτυγχάνουν. Αυτό μάς συνέβη με το προφίλ του Leo Laporte. Αν γνωρίζετε τον υπό έλεγχο χρήστη, δεν είναι καθόλου κακή ιδέα να τον ενημερώσετε αφού οι όποιες αποτυχίες είναι πιθανό να οφείλονται σε δικές του ενέργειες (ίσως, π.χ., να αφαίρεσε ένα tweet ή κάποιο TXT record).

Ενδιαφέρουσες δυνατότητες
Στην παρούσα μορφή του, το Keybase μοιάζει με ένα directory χρηστών και αντίστοιχων δημοσίων κλειδιών, το οποίο μπορούμε να εμπιστευόμαστε. Αν μη τι άλλο, λοιπόν, από το keybase.io έχουμε τη δυνατότητα λήψης δημοσίων κλειδιών άλλων χρηστών, με τους οποίους θα έχουμε την επιλογή για ισχυρά κρυπτογραφημένη επικοινωνία. Από το δικτυακό τόπο του πρότζεκτ διατίθεται και το keybase, ένα εργαλείο για τη γραμμή εντολών που διευκολύνει την πραγματοποίηση των αποδείξεων, μας επιτρέπει ν’ αναζητάμε άλλους χρήστες, να τους ακολουθούμε (track), να κρυπτογραφούμε/αποκρυπτογραφούμε μηνύματα κ.ο.κ.

Δεν σας κρύβουμε ότι αναμένουμε με ιδιαίτερο ενδιαφέρον τις αντιδράσεις προγραμματιστών και χρηστών, ειδικά μετά το αναμενόμενο άνοιγα του Keybase στο ευρύ κοινό. Το ομώνυμο εργαλείο για τη γραμμή εντολών αλλά και το ίδιο το web site, αποτελούν δύο παραδείγματα clients για την υπηρεσία. Οι developers έχουν τη δυνατότητα να την παντρέψουν με υπάρχουσες εφαρμογές, καθιστώντας έτσι την κρυπτογραφία δημοσίου κλειδιού προσβάσιμη σε όλους. Κι αν όχι σε όλους, έστω σε μεγάλο ποσοστό χρηστών που δεν υπάρχει περίπτωση να κάνουν κτήμα τους το μαθηματικό ή/και το τεχνικό υπόβαθρο για την ορθή, καθημερινή χρήση της κρυπτογραφίας δημοσίου κλειδιού. Πιστεύουμε ότι ένα τεράστιο βήμα προς αυτή την κατεύθυνση θα ήταν η ενσωμάτωση των λειτουργιών του Keybase σε δημοφιλείς email ή/και chat clients. Μπορεί να κάνουμε λάθος — αλλά αυτή τη φορά ειλικρινά θα μας πειράξει αν κάνουμε.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων