Συνεχίζοντας τα μαθήματα κρυπτογραφίας με Hardware Wallet (Trezor), στο σημερινό θα μάθεις να κρυπτογραφείς μηνύματα για να τα στέλνεις με όποιο μέσο θες.

Γνωρίζεις φαντάζομαι ότι η πιο διαδεδομένη μορφή επικοινωνίας, είναι το χειρότερο μέσο, όσον αφορά την προστασία της ιδιωτικότητας ;

Το email λοιπόν που στέλνει όλος ο κόσμος, είναι τόσο «ανοιχτό» που είναι σα να γράφεις ένα γράμμα σε κάποιον… και αντί να το γράψεις σε μια κόλλα χαρτί και να το σφραγίσεις σε φάκελο, το γράφεις όλο σε ένα postcard και το στέλνεις… Οπότε καταλαβαίνεις πως, ό,τι έγραψες το έχει διαβάσει όλο το προσωπικό του ταχυδρομείου.

Θα μου πεις :

«Μα γιαυτό δεν έχουμε τα telegram, viber, messenger, whatsup … που έχουν αυτό το … End to end encryption;»

Οκ… Απάντησε μου τότε, ποιος έχει τα κλειδιά της κρυπτογράφησης σε αυτές τις εφαρμογές; Αν δεν τα έχεις, τότε πάμε παρακάτω σε παρακαλώ να μην χάνουμε χρόνο. (Εξαιρείται μέχρι στιγμής το Signal, του οποίου τα κλειδιά δημιουργούνται και μένουν στην συσκευή του χρήστη)

Πέρα από την σημασία της κρυπτογραφημένης συνομιλίας, έχει σημασία όπως θα δεις και το :

«Δείξε μου το αποτύπωμά σου, να σου πω ποιος είσαι»

Η σειρά άρθρων θα είναι διαθέσιμη στο tag: trezor-cryptography

Advertisements

Τι αλλάζει από την κρυπτογράφηση αρχείων ;

Αυτό που αλλάζει στην επικοινωνία μας με email είναι :

  • θα δημοσιεύσουμε τα δημόσια κλειδιά μας για να μας στέλνουν κρυπτογραφημένα email
  • θα χρησιμοποιούμε το public key του παραλήπτη και την υπογραφή μας για κρυπτογράφηση

Προεργασία κρυπτογράφησης των email

Αν θέλεις να κρυπτογραφήσεις τα email σου υπάρχουν αρκετοί τρόποι για να το κάνεις με χρήση τωv GPG κλειδιών. Ο ένας είναι να το κάνεις μέσω Thunderbird, αλλά δεν χρησιμοποιούν όλοι το Thunderbird οπότε θα σου δείξω έναν τρόπο… συμβατό με όλο το σύμπαν…

  • Manual email encryption / decryption: όπου θα γράφεις το μήνυμα σου σε ένα απλό αρχείο και θα το κρυπτογραφείς για να το στείλεις με όποιο μέσο θες.

Για να δουλέψει όλο αυτό, θα πρέπει να έχεις όπως είπαμε, το δημόσιο κλειδί του παραλήπτη των μηνυμάτων σου. Τα έχουμε πει στο Πώς να κρυπτογραφήσετε και να αποκρυπτογραφήσετε αρχεία με GPG σε Linux. Μέσω του τερματικού ή μέσω της εφαρμογής GPA που είδαμε στον οδηγό Trezor και GPA – GnuPG assistant GUI [Μέρος 2].

Για παράδειγμα στην παρακάτω εικόνα έχω δύο public keys των παραληπτών με τους οποίους επικοινωνώ κρυπτογραφημένα αφού έχω εισάγει τα public key τους (Το πρώτο με τα διπλά κλειδιά είναι τα δικά μου).

trezor email public keys

Αυτό το κάνεις είτε εισάγοντας το αρχείο public key τους (από το μενού Keys -> Import) που σου έχουν στείλει επισυναπτόμενο σε κάποιο email, είτε το κατεβάζεις μέσω κάποιου keyserver στο οποίο το έχουν ανεβάσει και ξέρεις να ψάξεις το ID / email που σου έχουν πει να βρεις (Τα έχουμε πει στο Πώς να κρυπτογραφήσετε και να αποκρυπτογραφήσετε αρχεία με GPG σε Linux. )

ΠΡΟΣΟΧΗ: Δείξε μου το αποτύπωμά σου, να σου πω ποιος είσαι :

Αν κατεβάσεις από κάποιο keyserver διασταύρωσε με τον παραλήπτη, ότι το fingerprint του δημόσιου κλειδιού είναι αυτό που αντιστοιχεί σε αυτό που θα σου πει:

gpg --fingerprint Paraliptis@email

pub 4096R/ED8745R7 
Key fingerprint = EC24 91F2 EAE7 4888 660D A3CI 5F2B 4756 ED87 45R7
uid Filos Paraliptis <Paraliptis@email>
sub 4096R/ED8745R7

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

Εξαγωγή δημόσιου κλειδιού του trezor

Για να λαμβάνεις κρυπτογραφημένο email, όπως είπα ο αποστολέας πρέπει να το κρυπτογραφεί με το public Key του Trezor σου.

Μπορείς να εξάγεις το δημόσιο κλειδί, μέσω του GPA (μενού Keys –> Export Keys) ή μέσω τερματικού

gpg --export --armor --output ~/pubkey.asc <Key ID>

όπου <Key ID> είναι το ID του κλειδιού του trezor σας. Αυτό το αρχείο μπορείς να το στείλεις σε όσους θες για να σου στέλνουν κρυπτογραφημένα μηνύματα. Εναλακτικά για να μην στέλνεις κάθε φορά ε´να αρχείο, μπορείς να δημοσιεύσεις το κλειδί, σε κάποιο keyserver.

Δημοσιοποίηση του public key σας

Οι διακομιστές κλειδιών GPG έχουν έρχονται και παρέρχονται με τα χρόνια. Κάποια εξακολουθούν να βασίζονται στην ίδια υποδομή όπως πριν από 20 χρόνια και δεν λειτουργούν τόσο ομαλά.

  • Ο διακομιστής MIT εξακολουθεί να θεωρείται αξιόπιστος και πολλοί βασικοί διακομιστές συγχρονίζονται με αυτό.
  • Οι διακομιστές Ubuntu και OpenPGP είναι από τους πιο γνωστούς και προτείνονται επίσης.

Οι διευθύνσεις τους είναι:

  • pgp.mit.edu
  • keys.openpgp.org
  • keyserver.ubuntu.com

Σε όποιο και να το στείλεις, συνήθως μετά από μερικά λεπτά θα εμφανιστεί και στα άλλα οπότε, αυτός που χρειάζεται το public key σας μπορεί να το κατεβάσει από όπου θέλει. Ας στείλουμε το public key του trezor:

gpg --keyserver keyserver.ubuntu.com --send-key 0608F9DA
gpg: sending key 0608F9DA to hkp://keyserver.ubuntu.com

Μπορείς να ελέγξεις πώς φαίνεται η μεταφόρτωση απευθείας από τον διακομιστή, για παράδειγμα με το Ubuntu στη διεύθυνση https://keyserver.ubuntu.com/. Απλώς κάνεις αναζήτηση την διεύθυνση email που σχετίζεται με το ζεύγος κλειδιών σου. Μάλιστα μπορείς να προσθέσεις όσα email θέλεις στο ίδιο κλειδί, αλλά αυτό ξεφεύγει από τους σκοπούς του παρόντος οδηγού.

Πως στέλνω κρυπτογραφημένο email;

Όπως είπα στην αρχή θα δούμε έναν τρόπο συμβατό με όλους τους τρόπους που μπορεί κάποιος παραλήπτης να λαμβάνει τα κρυπτογραφημένα email του. Εδώ θα χρησιμοποιήσουμε την λειτουργία armor που έχει το gpg. Πάμε βήμα βήμα να το δούμε:

Γράφω το email και το κρυπτογραφώ

Άνοιξε έναν απλό κειμενογράφο και γράψτε το κείμενο σου. Αφού τελειώσεις, το αποθηκεύεις π.χ. ως «ένα_αρχείο.txt» και το κρυπτογραφείς χρησιμοποιώντας όμως το public key του παραλήπτη:

gpg --encrypt --armor -r paraliptis@email ένα_αρχείο.txt

Αυτό θα παράξει ένα αρχείο ένα_αρχείο.txt.asc .

Αποστολή του κρυπτογραφημένου αρχείου η περιεχομένου

Αυτό το αρχείο το στέλνεις στο παραλήπτη του για να το αποκρυπτογραφήσει με το ιδιωτικό κλειδί που αντιστοιχεί στο public key με το οποίο το κρυπτογράφησες.

Advertisements

Προσωπικά, επειδή οι παραλήπτες που έχω, έχουν σετάρει το email client τους να αποκρυπτογραφεί αυτόματα, αντί να τους στέλνω το αρχείο ως επισυναπτόμενο, τους κάνω επικόλληση το περιεχόμενο του ένα_αρχείο.txt.asc. Εδώ είναι και ο λόγος που βάλαμε αυτό το --armor.

Ανοίγω λοιπόν αυτό το αρχείο και αφού επιλέξω τα πάντα, κάνω επικόλληση στο email που θα στείλω.

trezor mail gpg armor

Με αυτό τον τρόπο, ο παραλήπτης που έχει σετάρει το δικό του email client με τα κλειδιά του, θα λάβει αυτό το ---BEGIN PGP MESSAGE--- .... μέχρι και το .... ---END PGP MESSAGE--- και το λογισμικό θα το αποκρυπτογραφήσει αυτόματα.

Αν δεν έχει κάποιο λογισμικό, μπορεί απλά να το αποκρυπτογραφήσει με την εντολή --decrypt που είχαμε δει στα προηγούμενα άρθρα.

Tο επόμενο άρθρο όπως και τα προηγούμενα θα είναι διαθέσιμο στο tag: trezor-cryptography

Παραπομπές: