Πώς να κρυπτογραφήσετε και να αποκρυπτογραφήσετε αρχεία με GPG στο Linux

Προστατέψτε το απόρρητό σας με την εντολή Linux gpg. Χρησιμοποιήστε κρυπτογράφηση παγκόσμιας κλάσης για να διατηρήσετε τα μυστικά σας ασφαλή. Θα σας δείξουμε πώς να χρησιμοποιείτε το gpg για να εργάζεστε με κλειδιά, να κρυπτογραφείτε αρχεία και να τα αποκρυπτογραφείτε.

Gnu Privacy Guard (GPG) σας επιτρέπει να κρυπτογραφείτε με ασφάλεια τα αρχεία έτσι ώστε μόνο ο προοριζόμενος παραλήπτης να μπορεί να τα αποκρυπτογραφήσει. Συγκεκριμένα, το GPG συμμορφώνεται με το OpenPGP πρότυπο. Είναι διαμορφωμένο σε ένα πρόγραμμα που ονομάζεται Pretty Good Privacy (PGP). Το PGP γράφτηκε το 1991 από τον Φιλ Ζίμερμαν.

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

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

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

Υπάρχουν περισσότερα βήματα που απαιτούνται για τη ρύθμιση του GPG παρά για τη χρήση του. Ευτυχώς, συνήθως χρειάζεται να το ρυθμίσετε μόνο μία φορά.

Δημιουργία των κλειδιών σας

Η εντολή gpg εγκαταστάθηκε σε όλες τις διανομές Linux που ελέγχθηκαν, συμπεριλαμβανομένων των Ubuntu, Fedora και Manjaro.

Δεν χρειάζεται να χρησιμοποιείτε το GPG με email. Μπορείτε να κρυπτογραφήσετε αρχεία και να τα κάνετε διαθέσιμα για λήψη ή να τα μεταβιβάσετε φυσικά στον παραλήπτη. Ωστόσο, πρέπει να συσχετίσετε μια διεύθυνση email με τα κλειδιά που δημιουργείτε, επομένως επιλέξτε ποια διεύθυνση email πρόκειται να χρησιμοποιήσετε.

Εδώ είναι η εντολή για τη δημιουργία των κλειδιών σας. Η επιλογή –full-generate-key παράγει τα κλειδιά σας σε μια διαδραστική περίοδο λειτουργίας στο παράθυρο του τερματικού σας. Θα σας ζητηθεί επίσης μια φράση πρόσβασης. Βεβαιωθείτε ότι θυμάστε ποια είναι η φράση πρόσβασης. Τρεις ή τέσσερις απλές λέξεις που ενώνονται με σημεία στίξης είναι καλό και ισχυρό μοντέλο για κωδικούς πρόσβασης και φράσεις πρόσβασης.

gpg --full-generate-key

Θα σας ζητηθεί να επιλέξετε έναν τύπο κρυπτογράφησης από ένα μενού. Εκτός αν έχετε καλό λόγο να μην το κάνετε, πληκτρολογήστε 1 και πατήστε Enter.

Πρέπει να επιλέξετε ένα μήκος bit για τα κλειδιά κρυπτογράφησης. Πατήστε Enter για να αποδεχτείτε την προεπιλογή.

Πρέπει να καθορίσετε πόσο θα διαρκέσει το κλειδί. Εάν δοκιμάζετε το σύστημα, εισαγάγετε μια σύντομη διάρκεια όπως 5 για πέντε ημέρες. Εάν πρόκειται να διατηρήσετε αυτό το κλειδί, εισαγάγετε μεγαλύτερη διάρκεια όπως 1 έτος για ένα έτος. Το κλειδί θα διαρκέσει 12 μήνες και έτσι θα χρειαστεί ανανέωση μετά από ένα χρόνο. Επιβεβαιώστε την επιλογή σας με ένα Υ.

  Πώς να απενεργοποιήσετε τον λογαριασμό Root στο Linux

Πρέπει να εισαγάγετε το όνομά σας και τη διεύθυνση email σας. Μπορείτε να προσθέσετε ένα σχόλιο αν θέλετε.

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

Κάντε κλικ στο κουμπί OK όταν εισαγάγετε τη φράση πρόσβασής σας. Θα δείτε αυτό το παράθυρο καθώς εργάζεστε με το gpg, επομένως φροντίστε να θυμάστε τη φράση πρόσβασής σας.

Η δημιουργία κλειδιού θα πραγματοποιηθεί και θα επιστρέψετε στη γραμμή εντολών.

Δημιουργία Πιστοποιητικού Ανάκλησης

Εάν το ιδιωτικό σας κλειδί γίνει γνωστό σε άλλους, θα χρειαστεί να αποσυνδέσετε τα παλιά κλειδιά από την ταυτότητά σας, ώστε να μπορείτε να δημιουργήσετε νέα. Για να γίνει αυτό, θα χρειαστείτε ένα πιστοποιητικό ανάκλησης. Θα το κάνουμε τώρα και θα το αποθηκεύσουμε κάπου ασφαλές.

Η επιλογή –output πρέπει να ακολουθείται από το όνομα αρχείου του πιστοποιητικού που θέλετε να δημιουργήσετε. Η επιλογή –gen-revoke αναγκάζει το gpg να δημιουργήσει ένα πιστοποιητικό ανάκλησης. Πρέπει να δώσετε τη διεύθυνση email που χρησιμοποιήσατε κατά τη δημιουργία των κλειδιών.

gpg --output ~/revocation.crt --gen-revoke [email protected]

Θα σας ζητηθεί να επιβεβαιώσετε ότι θέλετε να δημιουργήσετε ένα πιστοποιητικό. Πατήστε Y και πατήστε Enter. Θα σας ζητηθεί ο λόγος για τον οποίο δημιουργείτε το πιστοποιητικό. Καθώς το κάνουμε αυτό εκ των προτέρων, δεν γνωρίζουμε με βεβαιότητα. Πατήστε 1 ως εύλογη εικασία και πατήστε Enter.

Μπορείτε να εισάγετε μια περιγραφή εάν θέλετε. Πατήστε Enter δύο φορές για να τερματίσετε την περιγραφή σας.

Θα σας ζητηθεί να επιβεβαιώσετε τις ρυθμίσεις σας, πατήστε Y και πατήστε Enter.

Το πιστοποιητικό θα δημιουργηθεί. Θα δείτε ένα μήνυμα που ενισχύει την ανάγκη διατήρησης αυτού του πιστοποιητικού ασφαλές.

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

Ως ελάχιστο, ας αφαιρέσουμε από το πιστοποιητικό όλα τα δικαιώματα εκτός από τα δικά μας.

chmod 600 ~/revocation.crt

Ας ελέγξουμε με το ls για να δούμε ποια είναι τα δικαιώματα τώρα:

ls -l

Αυτό είναι τέλειο. Κανείς εκτός από τον κάτοχο του αρχείου—εμάς— δεν μπορεί να κάνει οτιδήποτε με το πιστοποιητικό.

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

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

Εάν σας έχει δοθεί το κλειδί τους σε ένα αρχείο, μπορείτε να το εισαγάγετε με την ακόλουθη εντολή. Σε αυτό το παράδειγμα, το αρχείο κλειδιού ονομάζεται “mary-geek.key”.

gpg --import mary-geek.key

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

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

  Πώς να μετατρέψετε τα Έγγραφα Google σε αρχεία Libre Office στο Linux

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

Η επιλογή –keyserver πρέπει να ακολουθείται από το όνομα του διακομιστή κλειδιών που θέλετε να αναζητήσετε. Η επιλογή –search-keys πρέπει να ακολουθείται είτε από το όνομα του ατόμου που αναζητάτε είτε από τη διεύθυνση email του. Θα χρησιμοποιήσουμε τη διεύθυνση email:

gpg --keyserver pgp.mit.edu --search-keys [email protected]

Οι αγώνες παρατίθενται για εσάς και αριθμούνται. Για να εισαγάγετε έναν, πληκτρολογήστε τον αριθμό και πατήστε Enter. Σε αυτή την περίπτωση, υπάρχει ένα μόνο ταίριασμα, οπότε πληκτρολογούμε 1 και πατάμε Enter.

Το κλειδί εισάγεται και μας εμφανίζεται το όνομα και η διεύθυνση email που σχετίζονται με αυτό το κλειδί.

Επαλήθευση και υπογραφή κλειδιού

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

Η επιλογή –δακτυλικό αποτύπωμα κάνει το gpg να δημιουργήσει μια σύντομη ακολουθία δέκα συνόλων τεσσάρων δεκαεξαδικών χαρακτήρων. Μπορείτε να ζητήσετε από το άτομο να σας στείλει το δακτυλικό αποτύπωμα του κλειδιού του.

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

gpg --fingerprint [email protected]

Το δακτυλικό αποτύπωμα δημιουργείται.

Όταν είστε ικανοποιημένοι ότι το κλειδί είναι γνήσιο και ανήκει στο άτομο με το οποίο υποτίθεται ότι σχετίζεται, μπορείτε να υπογράψετε το κλειδί του.

Εάν δεν το κάνετε αυτό, μπορείτε να το χρησιμοποιήσετε για κρυπτογράφηση και αποκρυπτογράφηση μηνυμάτων από και προς αυτό το άτομο. Αλλά το gpg θα σας ρωτά κάθε φορά εάν θέλετε να συνεχίσετε επειδή το κλειδί δεν είναι υπογεγραμμένο. Θα χρησιμοποιήσουμε την κατάλληλη επιλογή –sign-key και θα παρέχουμε τη διεύθυνση email του ατόμου, έτσι ώστε το gpg να γνωρίζει ποιο κλειδί να υπογράψει.

gpg --sign-key [email protected]

Θα δείτε πληροφορίες για το κλειδί και το άτομο και θα σας ζητηθεί να επαληθεύσετε ότι θέλετε πραγματικά να υπογράψετε το κλειδί. Πατήστε Y και πατήστε Enter για να υπογράψετε το κλειδί.

Πώς να μοιραστείτε το δημόσιο κλειδί σας

Για να μοιραστείτε το κλειδί σας ως αρχείο, πρέπει να το εξαγάγουμε από τον τοπικό χώρο αποθήκευσης κλειδιών gpg. Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε την επιλογή –εξαγωγή, η οποία πρέπει να ακολουθείται από τη διεύθυνση email που χρησιμοποιήσατε για τη δημιουργία του κλειδιού. Η επιλογή –output πρέπει να ακολουθείται από το όνομα του αρχείου στο οποίο θέλετε να γίνει η εξαγωγή του κλειδιού. Η επιλογή –armor λέει στο gpg να δημιουργήσει έξοδο θωράκισης ASCII αντί για δυαδικό αρχείο.

gpg --output ~/dave-geek.key --armor --export [email protected]

Μπορούμε να ρίξουμε μια ματιά στο εσωτερικό του αρχείου κλειδιού με λιγότερα.

less dave-geek.key

Το κλειδί φαίνεται σε όλο του το μεγαλείο:

  Πώς να παίξετε το Forest στο Linux

Μπορείτε επίσης να μοιραστείτε το δημόσιο κλειδί σας σε διακομιστή δημόσιου κλειδιού. Η επιλογή –send-keys στέλνει το κλειδί στον διακομιστή κλειδιών. Η επιλογή –keyserver πρέπει να ακολουθείται από τη διεύθυνση web του διακομιστή δημόσιου κλειδιού. Για να προσδιορίσετε ποιο κλειδί θα στείλετε, το δακτυλικό αποτύπωμα για το κλειδί πρέπει να παρέχεται στη γραμμή εντολών. Σημειώστε ότι δεν υπάρχουν κενά μεταξύ των συνόλων των τεσσάρων χαρακτήρων.

(Μπορείτε να δείτε το δακτυλικό αποτύπωμα για το κλειδί σας χρησιμοποιώντας την επιλογή –δακτυλικό αποτύπωμα.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

Θα λάβετε επιβεβαίωση ότι το κλειδί έχει σταλεί.

Κρυπτογράφηση αρχείων

Είμαστε επιτέλους έτοιμοι να κρυπτογραφήσουμε ένα αρχείο και να το στείλουμε στη Mary. Το αρχείο ονομάζεται Raven.txt.

Η επιλογή –encrypt λέει στο gpg να κρυπτογραφήσει το αρχείο και η επιλογή –sign του λέει να υπογράψει το αρχείο με τα στοιχεία σας. Η επιλογή –armor λέει στο gpg να δημιουργήσει ένα αρχείο ASCII. Η επιλογή -r (παραλήπτης) πρέπει να ακολουθείται από τη διεύθυνση email του ατόμου στο οποίο στέλνετε το αρχείο.

gpg --encrypt --sign --armor -r [email protected]

Το αρχείο δημιουργείται με το ίδιο όνομα με το πρωτότυπο, αλλά με το “.asc” προσαρτημένο στο όνομα του αρχείου. Ας ρίξουμε μια ματιά μέσα του.

less Raven.txt.asc

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

Μπορούμε τώρα να στείλουμε το αρχείο στη Mary με τη βεβαιότητα ότι κανείς άλλος δεν μπορεί να το αποκρυπτογραφήσει.

Αποκρυπτογράφηση Αρχείων

Η Μαρία έστειλε μια απάντηση. Βρίσκεται σε ένα κρυπτογραφημένο αρχείο που ονομάζεται coded.asc. Μπορούμε να το αποκρυπτογραφήσουμε πολύ εύκολα χρησιμοποιώντας την επιλογή –decrypt. Θα ανακατευθύνουμε την έξοδο σε ένα άλλο αρχείο που ονομάζεται plain.txt.

Σημειώστε ότι δεν χρειάζεται να πούμε στο gpg από ποιον προέρχεται το αρχείο. Μπορεί να το λύσει αυτό από τα κρυπτογραφημένα περιεχόμενα του αρχείου.

gpg --decrypt coded.asc > plain.txt

gpg --decrypt coded.asc > plain.txt σε παράθυρο τερματικού” width=”646″ height=”212″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Ας δούμε το αρχείο plain.txt:</p>
<pre>λιγότερο plain.txt</pre > <p><img loading=

Το αρχείο αποκρυπτογραφήθηκε με επιτυχία για εμάς.

Ανανέωση των κλειδιών σας

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

Η επιλογή –refresh-keys αναγκάζει το gpg να εκτελέσει τον έλεγχο. Η επιλογή –keyserver πρέπει να ακολουθείται από τον διακομιστή κλειδιών της επιλογής σας. Αφού συγχρονιστούν τα κλειδιά μεταξύ των διακομιστών δημοσίων κλειδιών, δεν θα πρέπει να έχει σημασία ποιον θα επιλέξετε.

gpg --keyserver pgp.mit.edu --refresh-keys

Το gpg απαντά παραθέτοντας τα κλειδιά που ελέγχει και σας ενημερώνει εάν κάποια άλλαξαν και ενημερώθηκαν.

Το απόρρητο είναι ένα καυτό θέμα

Το απόρρητο δεν απέχει ποτέ από τα νέα αυτές τις μέρες. Όποιοι και αν είναι οι λόγοι για τους οποίους θέλετε να διατηρήσετε τις πληροφορίες σας ασφαλείς και ιδιωτικές, το gpg παρέχει ένα απλό μέσο για την εφαρμογή απίστευτα ισχυρής κρυπτογράφησης στα αρχεία και τις επικοινωνίες σας.

Υπάρχουν άλλοι τρόποι χρήσης του gpg. Μπορείτε να λάβετε ένα πρόσθετο για Thunderbird που ονομάζεται Enigmail. Συνδέεται απευθείας στη διαμόρφωση του gpg για να σας επιτρέπει να κρυπτογραφείτε μηνύματα email από το Thunderbird.