Μία πρακτική Εισαγωγή στο
Φρουρό Απορρήτου του GNU
(GNU Privacy Guard)
για Windows

Μπρένταν Κίντγουελ (Brendan Kidwell)
<brendan@glump.net>

20 Οκτωβρίου 2003

Μία πρακτική Εισαγωγή στο Φρουρό Απορρήτου του GNU (GNU Privacy Guard) για Windows

Copyright © 2003 Brendan Kidwell. Παραχωρείται η άδεια αντιγραφής, διανομής και / ή τροποποιήσεως του παρόντος κειμένου υπό τους όρους της Αδείας Ελευθέρας Τεκμηριώσεως του GNU, Εκδόσεως 1.1 ή μεταγενεστέρας, εκδοθείσης υπό του Ιδρύματος Ελευθέρου Λογισμικού· άνευ Αμεταβλήτων Τμημάτων, άνευ Κειμένων Εξωφύλλου, και άνευ Κειμένων Οπισθοφύλλου. Ένα αντίγραφο αυτής της αδείας είναι διαθέσιμο στο Διαδίκτυο, στη διεύθυνση
http: //www.gnu.org /copyleft /fdl.html .

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

Παρατηρήσεις / σχόλια και κριτική είναι ευπρόσδεκτα. Παρακαλώ δείτε τη σελίδα αυτού του κειμένου, στο δικτυακό μου σταθμό (web site), στη διεύθυνση http: //www .glump .net /content /gpg_intro/ .

Ιστορικό του Κειμένου

20 Οκτωβρίου 2003

23 Αυγούστου 2003

31 Μαρτίου 2003

Περιεχόμενα

1 Εισαγωγή 4
2 Εγκατάσταση του GPG 5
  2.1 Εγκατάσταση στο Windows 5
    2.1.1 Εγκατάσταση του GPG σε κάποιον εναλλακτικό Φάκελο 6
  2.2 Εγκατάσταση σε άλλα Λειτουργικά Συστήματα 6
  2.3 Πιστοποίηση Γνησιότητας του Πακέτου Εγκαταστάσεως του GPG 6
3 Δημιουργία του προσωπικού σας Ζεύγους Κλειδιών 8
  3.1 Περί Ασφαλείας Κλειδιών 8
  3.2 Diceware (Κυβολογισμικό ή Κυβισμικό ή Κυβοεξοπλισμός ή Κυβολοΐδια :-) ) 8
  3.3 Χρήση της Εντολής gen-key 9
  3.4 Δημοσίευση του δημοσίου Κλειδιού σας 9
  3.5 Τήρηση εφεδρικών Αντιγράφων των Κλειδιών σας 11
4 Κρυπτογράφηση και Αποκρυπτογράφηση Αρχείων 12
  4.1 Χρήση της Εντολής encrypt 12
  4.2 Χρήση της Εντολής decrypt-files 12
  4.3 Αποστολή ενός κρυπτογραφημένου Αρχείου με e-Mail 13
    4.3.1 Εισδοχή του Κλειδιού 13
    4.3.2 Κρυπτογράφηση του Μηνύματος 14
  4.4 Αποκρυπτογράφηση Αρχείων αποσταλέντων με e-Mail 14
    4.4.1 Τα κρυπτογραφημένα Στοιχεία είναι στο Σώμα του Μηνύματος 14
    4.4.2 Τα κρυπτογραφημένα Στοιχεία είναι σε συνημμένο Αρχείο 15
  4.5 Κρυπτογράφηση για πολλούς Παραλήπτες 15
5 Υπογραφή Αρχείων 17
  5.1 Χρήση της Εντολής clearsign 17
  5.2 Πιστοποίηση Γνησιότητας ενός υπογεγραμμένου Μηνύματος 18
  5.3 Υπογραφή και Πιστοποίηση Γνησιότητας δυαδικών Αρχείων 18
  5.4 Ταυτόχρονη Κρυπτογράφηση και Υπογραφή 19
6 Ενσωμάτωση του GPG στην Εφαρμογή σας 20
  6.1 Προετοιμασία ενός ελαχίστου Αντιγράφου του GPG 20
  6.2 Κλήση του GPG από την Εφαρμογή σας 21
  6.3 Κλήση της Εντολής FTP από την Εφαρμογή σας 21
  6.4 Παράδειγμα Εφαρμογής 22
  6.5 Αυτόματη Αποκρυπτογράφηση Αρχείων 22
Α “Σκονάκι” για το GPG (Συνοπτικός Πίνακας Εντολών) 24
  Α.1 Εντολές του GPG 24
  Α.2 Η Γραμμή Εντολής του Windows 25
Β Περαιτέρω Μελέτη και Έρευνα 26

Κεφάλαιο 1

Εισαγωγή

Αυτό το εγχειρίδιο θα σας δείξει τον τρόπο χρήσεως του ελευθέρου συστήματος κρυπτογραφίας δημοσίου κλειδιού (public key cryptography - PKI), του Φρουρού Απορρήτου του GNU (GNU Privacy Guard - GPG). Το GPG παρέχει λειτουργίες για κρυπτογράφηση και αποκρυπτογράφηση στοιχείων, και για τη δημιουργία και πιστοποίηση γνησιότητας υπογραφών, με τη χρήση κρυπτογραφίας δημοσίου κλειδιού.

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

Ξεκινάω με την παραδοχή ότι θα χρησιμοποιείτε το GPG χωρίς οποιεσδήποτε πρόσθετες επεκτάσεις, όπως το WinPT1.1 ή το GPGShell1.2, δύο γραφικά περιβάλλοντα προγράμματα (front-ends). Τα περιβάλλοντα προγράμματα του GPG είναι όμορφα, και σας απαλλάσσουν από την υποχρέωση να θυμάστε την ακριβή σύνταξη της κάθε εντολής, αλλά ορισμένες φορές δεν είναι διαθέσιμα, και είναι σημαντικό να έχετε μία λειτουργική γνώση του συστήματος το οποίο λειτουργεί στο παρασκήνιο. Χρήστες οι οποίοι θα αποστέλλουν και θα λαμβάνουν κρυπτογραφημένο e-mail σε καθημερινή βάση, θα προτιμήσουν να βρουν κάποιο πρόγραμμα e-mail το οποίο λειτουργεί σε στενή συνεργασία με το GPG, ή έχει ένα άμεσο πρόσφυμα (plugin) το οποίο παρέχει πρόσβαση στο GPG.

Σε αυτό το εγχειρίδιο, θα σας δείξω τον τρόπο χρήσεως των περισσότερο σημαντικών εντολών του GPG. Το GPG έχει πολλές εντολές και κάθε εντολή έχει αρκετές παραλλαγές. Οι περισσότερες εντολές και επιλογές του GPG, έχουν μονογράμματες συντομεύσεις. Χάριν σαφηνείας, αυτές οι σύντομες εκδοχές δε θα χρησιμοποιηθούν σε αυτό το εγχειρίδιο. Για λεπτομερείς πληροφορίες σχετικά με όλες τις διαθέσιμες εντολές και επιλογές, δείτε το εγχειρίδιο του GPG, διαθέσιμο στο δικτυακό σταθμό του GPG, ή στο αρχείο gpg.man, το οποίο περιλαμβάνεται στο λογισμικό.

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

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

Η πλέον πρόσφατη έκδοση αυτού του κειμένου, και μία σελίδα με σχόλια, είναι διαθέσιμα στη διεύθυνση http: //www .glump .net /content /gpg_intro/ . Παρακαλώ αποστείλετε οποιαδήποτε σχόλιά σας εκεί.

Κεφάλαιο 2

Εγκατάσταση του GPG

Ο Φρουρός Απορρήτου του GNU είναι ελεύθερα διαθέσιμος στη διεύθυνση http://www.gnupg.org/, για μία ποικιλία λειτουργικών συστημάτων, συμπεριλαμβανομένων του Windows, του Linux, πολλών εκδόσεων του Unix, και του Mac OS X.

2.1 Εγκατάσταση στο Windows

Έχετε υπ’ όψιν σας ότι εάν έχετε το Cygwin (ένα περιβάλλον λογισμικού το οποίο παρέχει σε ένα σύστημα Windows μεγάλο ποσοστό της λειτουργικότητας ενός συστήματος Linux) πιθανώς να έχετε ήδη εγκατεστημένο το GPG. Προσπαθήστε να εκτελέσετε την εντολή “gpg --version” στη γραμμή εντολής.

Για να εγκαταστήσετε το GPG στον υπολογιστή σας, πρώτα επισκεφθείτε το δικτυακό σταθμό του GPG2.1 και μεταφέρετε (“κατεβάστε”) το πακέτο (αρχείο εγκαταστάσεως) για Windows, από τη σελίδα των μεταφορών (Downloads). Αναζητήστε τις παραπομπές (links) που αναφέρουν “GPG [some version number] compiled for Microsoft Windows” (GPG [κάποιος αριθμός εκδόσεως] μεταγλωττισμένο για Microsoft Windows). Θα χρειασθείτε μία εφαρμογή ικανή να διαβάζει αρχεία Zip ώστε να αποσυμπιέσετε το συμπιεσμένο αρχείο. Αποσυμπιέστε τα περιεχόμενα του συμπιεσμένου αρχείου σε ένα νέο φάκελο με όνομα gnupg στο δίσκο C: του υπολογιστή σας (c:\gnupg).

Τέλος, ενημερώστε τη μεταβλητή περιβάλλοντος PATH, ούτως ώστε το Windows να γνωρίζει πού θα βρει την εφαρμογή. Στα Windows NT/2000/XP, θα βρείτε τη ρύθμιση της μεταβλητής περιβάλλοντος PATH ως εξής: Πίνακας Ελέγχου → Ιδιότητες Συστήματος → σελιδοδείκτης για έμπειρους χρήστες (“για Προχωρημένους”) → Μεταβλητές Περιβάλλοντος → Μεταβλητές Συστήματος (Control Panel → System Properties → the Advanced tab → Environment Variables → System variables). Στα Windows 95/98/ME, θα τη βρείτε στο αρχείο c:\autoexec.bat. Οι τιμές αυτής της μεταβλητής χωρίζονται με (λατινικές) άνω τελείες, επομένως προσθέστε “;c:\gnupg” στο τέλος της μεταβλητής. Για παράδειγμα, εάν η μεταβλητή PATH στο δικό σας περιβάλλον έχει ως

c:\windows;c:\utils

αλλάξτε την σε

c:\windows;c:\utils;c:\gnupg

Τώρα, εάν χρησιμοποιείτε Windows 95/98/ME, επανεκκινήστε το σύστημά σας· εάν χρησιμοποιείτε Windows NT/2000/XP, απλώς ανοίξτε ένα νέο παράθυρο γραμμής εντολής, και κλείστε όποια παράθυρα γραμμής εντολής είχατε ανοικτά. Τώρα θα πρέπει να είναι όλα έτοιμα.

Δοκιμάστε το. Στη γραμμή εντολής, πληκτρολογήστε

gpg --version

και θα πρέπει να δείτε κάτι παρόμοιο με την ακόλουθη απόκριση (output):

gpg (GnuPG) 1.2.1
Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Home: c:/gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA, ELG
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160
Compress: Uncompressed, ZIP, ZLIB

2.1.1 Εγκατάσταση του GPG σε κάποιον εναλλακτικό Φάκελο

Είναι δυνατόν να εγκαταστήσετε το GPG σε κάποιο φάκελο διαφορετικό από τον c:\gnupg. Πιθανόν να αντιληφθήκατε ένα αρχείο κειμένου, στο πακέτο του GPG, με όνομα gnupg-w32.reg. Αυτό περιέχει ένα σύνολο εγγραφών του Μητρώου του Windows (Registry Keys), τις οποίες μπορείτε να εισάγετε, και οι οποίες θα πληροφορούν το GPG για την τοποθεσία των συνοδευτικών του αρχείων. Αποσυμπιέστε ολόκληρο το συμπιεσμένο αρχείο στο φάκελο όπου επιθυμείτε να το εγκαταστήσετε αντί του c:\gnupg. Ανοίξτε το gnupg-w32.reg με έναν επεξεργαστή απλού κειμένου όπως το Σημειωματάριο (Notepad), ώστε να αλλάξετε τις τρεις αναφορές στο φάκελο c:\\GnuPG σε οτιδήποτε επιθυμείτε (παρατηρήστε τη διπλή ανάποδη κάθετο που χρησιμοποιείται ως διαχωριστικό μεταξύ φακέλων, αντί της απλής ανάποδης καθέτου). Τώρα δώστε την εντολή στο Windows να εισάγει το gnupg-w32.reg, είτε με διπλό κλικ πάνω του, στον Explorer, είτε με την εντολή start, στη γραμμή εντολής.

Για παράδειγμα, έστω ότι επιθυμείτε να εγκαταστήσετε το GPG στο c:\utils\gpg. Θα ενημερώνατε το gnupg-w32.reg, ως εξής:

REGEDIT4

[HKEY_CURRENT_USER\Software\GNU\GNUPG]
"HomeDir"="C:\\utils\\gpg"
"gpgProgram"="C:\\utils\\gpg\\gpg.exe"

[HKEY_CURRENT_USER\Control Panel\Mingw32\NLS]
"MODir"="C:\\utils\\gpg\\Locale"
και έπειτα θα εκτελούσατε

start c:\utils\gpg\gnupg-w32.reg

Μετά από αυτά, ενημερώστε αναλόγως τη μεταβλητή περιβάλλοντος PATH (όπως εξηγείται στο προηγούμενο τμήμα).

2.2 Εγκατάσταση σε άλλα Λειτουργικά Συστήματα

Η εγκατάσταση σε λειτουργικά συστήματα παρόμοια με το Unix καλύπτεται επαρκώς στο δικτυακό σταθμό του GPG – στην πραγματικότητα, οι περισσότερες διανομές Linux συμπεριλαμβάνουν το GPG, ούτως ώστε δε θα πρέπει να σας απασχολεί η εγκατάστασή του. Δείτε “Περαιτέρω Μελέτη” για περισσότερες πληροφορίες.

2.3 Πιστοποίηση Γνησιότητας του Πακέτου Εγκαταστάσεως του GPG

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

Ναι, αυτό είναι δυνατόν να γίνει, αλλά συνιστώ αυτό το βήμα μόνο στους αναγνώστες οι οποίοι έχουν ιδιαιτέρως έντονη τη συναίσθηση της ασφαλείας. Κατ’ αρχήν, χρειάζεται να βρείτε κάποια εφαρμογή η οποία ελέγχει τιμές md5sum (βλ. Κεφ. 5, υποσημ. 1). Μία σύντομη αναζήτηση με το Google, με οδήγησε σε μία τέτοια εφαρμογή, στο σταθμό ActiveState: http: //downloads.activestate.com /contrib /md5sum /Windows /md5sum.exe . Μεταφέρετε αυτό το αρχείο και αποθηκεύστε το όπου σας εξυπηρετεί. Μπορείτε να το αποθηκεύσετε στο φάκελο system32, μέσα στο φάκελο του Windows· εγώ προτιμώ να αποθηκεύω τέτοιου είδους βοηθητικές εφαρμογές (utilities) σε δικό τους ξεχωριστό φάκελο, με όνομα c:\utils, και έπειτα να ενημερώνω τη μεταβλητή περιβάλλοντος PATH ώστε να περιλαμβάνει και αυτόν το φάκελο (όπως εξηγήθηκε ανωτέρω).

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

md5sum gnupg-w32cli-1.2.3.zip

(Βεβαιωθείτε ότι πληκτρολογείτε το πραγματικό όνομα του πακέτου εγκαταστάσεως, το οποίο μεταφέρατε. Εάν έχει κυκλοφορήσει μία νέα έκδοση, το πακέτο θα έχει διαφορετικό όνομα). Το md5sum θα υπολογίσει ένα ψηφιακό αποτύπωμα για το πακέτο, παρόμοιο με αυτό:

208f98809a6e533fed08846723795477 *gnupg-w32cli-1.2.3.zip

Σημειώστε αυτόν τον αριθμό.

Έπειτα, επισκεφθείτε πάλι το δικτυακό σταθμό του GPG και βρείτε τη σελίδα με τίτλο “Έλεγχος Ακεραιότητας” (“Integrity Check”), στο τμήμα “Μεταφορές”. Στο κάτω μέρος της σελίδας, θα πρέπει να βρείτε τη “Σύνοψη MD5 Sum”, στην οποία θα πρέπει να υπάρχει ένας αριθμός για το πακέτο εγκαταστάσεως το οποίο μόλις ελέγξατε με τη χρήση της εφαρμογής md5sum. Εάν ο αριθμός ταιριάζει με το ψηφιακό αποτύπωμα το οποίο σημειώσατε προηγουμένως, τότε όλα έχουν καλώς – έχετε ένα γνήσιο, ακέραιο αντίγραφο του GPG.

Κεφάλαιο 3

Δημιουργήστε το προσωπικό σας Ζεύγος Κλειδιών

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

3.1 Σχετικά με την Ασφάλεια των Κλειδιών

Όταν δημιουργείτε ένα ζεύγος κλειδιών, αμφότερα το δημόσιο και το προσωπικό πρέπει να αποθηκευθούν στον υπολογιστή σας. Αυτό αποτελεί έναν κίνδυνο για την ασφάλεια, διότι οποιοσδήποτε μπορεί να αποκτήσει πρόσβαση στο προσωπικό σας κλειδί μπορεί να αποκρυπτογραφήσει τα μηνύματά σας, και να παρουσιάσει τον εαυτό του ως εσάς (πλαστοπροσωπία). Δεν είναι δυνατόν να απομνημονεύσετε το προσωπικό σας κλειδί και να το διαγράψετε από τον υπολογιστή σας – είναι πάρα πολύ μεγάλο (συνήθως τουλάχιστον 1.024 bit – είναι σαν να απομνημονεύετε έναν 300ψήφιο αριθμό τηλεφώνου!). Εκτός αυτού, ακόμα και αν μπορούσατε να το απομνημονεύσετε, θα απαιτούσε πάρα πολύ χρόνο για να το πληκτρολογήσετε κάθε φορά που επιθυμείτε να το χρησιμοποιήσετε.

Η πρακτική λύση σε αυτό το πρόβλημα είναι να προχωρήσετε ένα βήμα παραπέρα και να κρυπτογραφήσετε το προσωπικό σας κλειδί με τη χρήση μίας ευλόγως σύντομης συνθηματικής φράσεως ως κλειδί για το κλειδί· αυτός είναι ο τρόπος με τον οποίο λειτουργεί το GPG. Κάθε φορά που ακολουθείτε μία διαδικασία η οποία χρησιμοποιεί το προσωπικό σας κλειδί, το GPG διαβάζει το κρυπτογραφημένο κλειδί από το δίσκο, σας ζητεί τη συνθηματική σας φράση, αποκρυπτογραφεί το κλειδί στη μνήμη, και τελικά το χρησιμοποιεί. Για να λειτουργήσει το σύστημα αυτό, θα πρέπει να έχετε μία από κρυπτογραφικής απόψεως ισχυρή συνθηματική φράση – τέτοια ώστε να μην είναι δυνατόν κάποιος να τη μαντέψει ή να αποκαλυφθεί μέσω μίας επιθέσεως με ωμή βία3.1. Για παράδειγμα, η λέξη “πορτοκάλι” είναι τόσο μικρή ώστε μία επίθεση λεξικού3.2 θα την αποκαλύψει σε δευτερόλεπτα, και το πλήρες όνομα της φιλενάδας σας είναι κακή επιλογή διότι οποιοσδήποτε σας γνωρίζει θα μπορούσε να μαντέψει ότι το χρησιμοποιήσατε ως συνθηματική σας φράση.

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

3.2 Diceware (Κυβολογισμικό ή Κυβισμικό ή Κυβοεξοπλισμός ή Κυβολοΐδια :-) )

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

Η διαδικασία είναι αρκετά απλή. Ο δημιουργός του καταλόγου Diceware συνέθεσε ένα κείμενο, το οποίο περιέχει περίπου 8.000 μικρές λέξεις, ταξινομημένες με οδηγό έναν πενταψήφιο με βάση 6 αριθμό, με ψηφία από 1 έως 6 αντί από 0 έως 5 – τέλειο για την αναζήτηση αριθμών τυχαίως παραχθέντων με τη ρίψη κύβων.

Μεταφέρετε (“κατεβάστε”) τον κατάλογο από τη διεύθυνση http://www.diceware.com/ και ανοίξτε τον σε έναν επεξεργαστή (απλού) κειμένου (όπως το Σημειωματάριο – Notepad). Τώρα, ρίξτε έναν κύβο πέντε φορές και καταγράψτε τα αποτελέσματα. Αναζητήστε αυτόν τον αριθμό στον κατάλογο και σημειώστε τη λέξη η οποία αντιστοιχεί σε αυτόν. Για παράδειγμα, έστω ότι φέρατε 3, 5, 6, 2, 3. Θα αναζητούσατε τη λέξη υπ’ αριθμόν 35623 στον κατάλογο λέξεων, τη λέξη “ladle”, και θα τη σημειώνατε. Ως έναν εύλογο συμβιβασμό μεταξύ ευκολίας απομνημονεύσεως και ασφαλείας, ο δημιουργός του Diceware συνιστά την επανάληψη της όλης διαδικασίας πέντε φορές, ώστε να παραχθεί μία συνθηματική φράση αποτελούμενη από πέντε λέξεις.

3.3 Χρήση της Εντολής gen-key

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

gpg --gen-key

Το GPG αποκρίνεται με έναν κατάλογο επιλογών, ρωτώντας τι είδους ζεύγος κλειδιών επιθυμείτε να δημιουργήσετε. Επιλέξτε την αρχικώς προσφερόμενη επιλογή, “DSA and ElGamal”.

Έπειτα, σας ζητεί το μέγεθος του κλειδιού. Και πάλι, επιλέξτε την αρχικώς προσφερόμενη επιλογή, “1024”. Εάν το κλειδί σας είναι πολύ μικρό, είναι ευκολότερο να αποκαλυφθεί· εάν είναι πολύ μεγάλο, τότε κάθε εργασία η οποία το χρησιμοποιεί μπορεί να εκτελείται πολύ αργά.

Η επομένη προτροπή σας ζητεί πότε (εάν) η ισχύς του κλειδιού θα πρέπει να λήξει. Ο ορισμός μίας ημερομηνίας λήξεως, μετά από κάποιο χρονικό διάστημα, προσθέτει κάτι παραπάνω από απόψεως ασφαλείας, διότι αρχεία τα οποία κρυπτογραφούνται μετά από αυτήν την ημερομηνία δε συνδέονται, καθ’ οιονδήποτε τρόπο, με το παλαιό κλειδί. Το μειονέκτημα, φυσικά, είναι ότι οποιοσδήποτε με τον οποίον αλληλογραφείτε πρέπει να αποκτήσει το νέο σας κλειδί όταν το παλαιό λήξει. Στην προτροπή, επιλέξτε μία εύλογη χρονική περίοδο ως χρόνο ζωής του κλειδιού σας, ή επιλέξτε “key does not expire” (“το κλειδί δε λήγει”).

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

Τέλος, πληκτρολογήστε τη συνθηματική φράση την οποία συνθέσατε με τη χρήση του Diceware. Το GPG δε θα σας δώσει κάποια ένδειξη καθώς πληκτρολογείτε τη συνθηματική σας φράση – δε θα εμφανίσει αστερίσκους ή κενά όπως συμβαίνει στις περισσότερες περιπτώσεις εισαγωγής συνθηματικών. Αυτό είναι ένα ακόμα μέτρο ασφαλείας3.3. Αφού πληκτρολογήσετε και επιβεβαιώσετε (με επαναπληκτρολόγηση) τη συνθηματική σας φράση, το GPG θα αρχίσει να “αλέθει” αριθμούς, για να παράξει όλα τα τυχαία ψηφία τα οποία χρειάζεται για το ζεύγος των κλειδιών σας. Χρησιμοποιεί κάθε είδους πηγή εντός του υπολογιστή σας για να εξομοιώσει τυχαίες συνθήκες, συμπεριλαμβανομένης της εισαγωγής στοιχείων από το πληκτρολόγιο – επομένως εάν επιθυμείτε να συντομεύσετε τη διαδικασία, πληκτρολογήστε κάποιους τυχαίους χαρακτήρες στο πληκτρολόγιο.

3.4 Δημοσίευση του δημοσίου Κλειδιού σας

Ο ευκολότερος τρόπος για να δημοσιευθεί το δημόσιο κλειδί σας είναι απλώς η απ’ ευθείας αποστολή του σε ανθρώπους οι οποίοι το χρειάζονται. Φυσικά, αυτός είναι επίσης ένας από τους λιγότερο ασφαλείς τρόπους για να το κάνετε – e-mail και ιστοσελίδες με τη μορφή απλού κειμένου είναι δυνατόν (θεωρητικά, τουλάχιστον) να γίνουν το αντικείμενο επιθέσεως από παρεμβαλλόμενο3.4. Περισσότερο ασφαλείς μέθοδοι ανταλλαγής κλειδιών χρησιμοποιούν συστήματα όπως δίκτυα εμπιστοσύνης και διακομιστές κλειδιών (key servers), τα οποία είναι πέρα από το αντικείμενο αυτού του εγχειριδίου. Εάν δεν πιστεύετε συγκεκριμένα ότι κάποιος θα προσπαθήσει να σας επιτεθεί, μπορείτε να αισθάνεσθε άνετα με τη μέθοδο η οποία περιγράφεται εδώ.

Έχετε προειδοποιηθεί. Η ανταλλαγή δημοσίων κλειδιών χωρίς κάποιο έμπιστο μέσο μπορεί να γίνει αντικείμενο επιθέσεως από παρεμβαλλόμενο.

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

gpg --armor --output "key.txt" --export "ΤΟ-ΟΝΟΜΑ-ΣΑΣ"

Μπορείτε να αλλάξετε το key.txt σε κάποιο άλλο όνομα εάν επιθυμείτε. ΤΟ-ΟΝΟΜΑ-ΣΑΣ μπορεί να είναι το Πραγματικό Όνομά σας ή η Διεύθυνση E-Mail σας· Το GPG θα βρει το κλειδί σε κάθε περίπτωση. Η επιλογή “--armor” καθοδηγεί το GPG ώστε να μορφοποιήσει τα εξαγόμενα στοιχεία σε “τεθωρακισμένη” μορφή, για διαβίβασή τους σε μορφή απλού κειμένου. Αυτό καθιστά εύκολη την αντιγραφή και προσάρτηση (cut and paste) του κλειδιού σε και από ιστοσελίδες και μηνύματα e-mail. Η επιλογή “--armor” έχει εφαρμογή στις περισσότερες εντολές του GPG οι οποίες παράγουν κάθε είδους στοιχεία (output).

Ανοίξτε το αρχείο που δημιουργήθηκε, το key.txt. Θα πρέπει να δείτε κάτι παρόμοιο με αυτό:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.1 (MingW32)

mQGiBD+M33cRBACZdhrbgAAeJopftRT639udlrQJLH3jmiT/XD+n0/S+dPJztXkw
V2/N+hCfmObz9h3p9cOAnSLbaqOeRY7f4G6XP+a4V0LbKqiLhnDf+7upq/VHop5M
6UQHYc370iU5cZs4HdRMfvxtwngCiCMuTZmKkl3aedewd8bttxvvZKKkAwCg2j76
N3LHqWOuCjKys5Ely5ApHcMD/R0PAZRAs5XRNop9zGsYq7PVvlkiR7ZpnY3lfeQT
ZDxjsh3l9UMfM0yEmjYYTzSzPoQxp3IA9UcqjVK17FFrzEwegQMpofFx4FDepsuN
cWJevD2bXRnc7fnjB/hVTyFlueMPFJOHDyAHuxF6fDgXSSij0XoUbSaNiPzL5QHQ
ZmcnA/sG8+jFtIq5x1xDw57Xpk19BB3ds/dOp6X9YbFFgPqzNDMbDRj17TVAlnd9
DH6zxeMgP59L/3A6O2rnIqHmkJeaUlBKofdxth5Uz292kNPXgQafTDKA1Jg5mbGx
NGPRoNDa96RxO2XbEcOqn0aRdj0AnOFQRlhz2XbL9YjTFvRfi7QkQWNoaWxsZXVz
ICgwKSA8YWNoaWxsZXVzQG1haWxib3guZ3I+iFkEExECABkFAj+M33cECwcDAgMV
AgMDFgIBAh4BAheAAAoJEKfLnnF+aerXzssAoMyW9T8PBumLX5l2agua2/tk4dRF
AJ4ojg9KjdtnFxlDMeVD7Wnbx5FGKLkBDQQ/jN95EAQAhEd83491Jo+19ADa5+k4
PayXy8rm3Fbue9fvniZyP6051Tb2ZWZT016A5OarjQWVuyUGn4JxgWWMyWavv5V3
TqP213CkmTxwKi5CTveFUCiq2j9E/cJZFmD1OBKJtxhaRmqxvuSOBiTISKvM1Dwd
F1JpCMkyyZU3LzSSxNh7SssAAwUD/jX6JSzb6IhnfIPUxZjtBLu6HuUfx0Fa2HA7
jeUu1d3F938Y6UIfAlMIjf2CB4fxmDcawma2Mm+45d27CmqkpTNOZBvvp4TZKyzA
6dOtZBYoSJcaMt2tZhm4HBXsli2LXA8jQ2kGRMLNliidqjV/h4arYnB7vO0bt6a1
VYLU3v7uiEYEGBECAAYFAj+M33kACgkQp8uecX5p6tcSOQCfUO0myJaXGBQ16n6v
rAEwHkiBHx4AnRkFF+gCi8uv6WjE+UxaEDOBUD1y
=ssVm
-----END PGP PUBLIC KEY BLOCK-----

Αντιγράψτε ολόκληρο το περιεχόμενο αυτού του αρχείου, μαζί με τις γραμμές οι οποίες ξεκινούν με “-----”, και προσαρτήστε το (paste) σε μία ιστοσελίδα ή σε ένα μήνυμα e-mail προς κάποιον άλλο. Αυτή είναι όλη η διαδικασία που χρειάζεται για την εξαγωγή του δημοσίου κλειδιού σας.

Σημείωση: είναι δυνατόν να εξάγετε το προσωπικό σας κλειδί κατά τον ίδιον τρόπο, με την εντολή “--export-secret-keys” αντί της “--export”. Αυτό είναι χρήσιμο για την τήρηση εφεδρικών αντιγράφων ή για τη μεταφορά του σε κάποιον άλλον υπολογιστή, εφ’ όσον γνωρίζετε τι κάνετε και μπορείτε να είστε βέβαιος / α ότι το νέο αντίγραφο θα είναι ασφαλές. Βεβαιωθείτε ότι ποτέ δε δημοσιεύετε κατά λάθος το προσωπικό σας κλειδί! Πριν δημοσιεύσετε ένα κλειδί σε μορφή κειμένου ASCII, ελέγξτε ότι η πρώτη γραμμή περιέχει τη λέξη “PUBLIC”, όχι “PRIVATE”.

3.5 Τήρηση εφεδρικών Αντιγράφων των Κλειδιών σας

Η ασφαλής φύλαξη των αρχείων σας, τα οποία περιέχουν τα κλειδιά που δημιουργήσατε με το GPG, είναι το ίδιο σημαντική όσο και η απομνημόνευση της συνθηματικής σας φράσεως – η συνθηματική φράση σας δεν ωφελεί εάν δεν έχετε ένα αντίγραφο του πλήρους προσωπικού σας κλειδιού στον υπολογιστή σας. Εάν το αρχείο το οποίο περιέχει το κλειδί σας καταστραφεί, δεν υπάρχει κανείς απολύτως τρόπος να το αναδημιουργήσετε, εκτός από τη διενέργηση κρυπταναλύσεως επί των ιδίων των αρχείων σας. Για να δημιουργήσετε εφεδρικά αντίγραφα (αντίγραφα ασφαλείας) των κλειδιών τα οποία δημιουργήσατε με το GPG, συμπεριλαμβανομένων και των προσωπικών σας κλειδιών, εντοπίστε τα αρχεία pubring.gpg, secring.gpg, και trustdb.gpg στο φάκελο όπου έχετε εγκαταστήσει το GPG, και αντιγράψτε τα σε κάποιο ασφαλές μέσο, όπως ένας δίσκος CD-R. Αποθηκεύστε αυτόν το δίσκο σε κάποιο ασφαλές μέρος, όπου πιθανοί κακόβουλοι δε θα είναι πιθανόν να τον βρουν. (Φυσικά, τα κλειδιά σας είναι ασφαλή για το χρόνο κατά τον οποίον αυτός ο οποίος τα έχει, δε γνωρίζει τη συνθηματική σας φράση).

Τώρα, είστε τελικά έτοιμος / η να κρυπτογραφήσετε κάτι στην πράξη.

Κεφάλαιο 4

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

Η βασική διαδικασία κρυπτογραφήσεως και αποκρυπτογραφήσεως με το GPG είναι η εξής:

Ο αποστολέας καθορίζει τον παραλήπτη ενός αρχείου, αποκτά το δημόσιο κλειδί του παραλήπτη εάν δεν το έχει ήδη, και έπειτα επεξεργάζεται το αρχικό αρχείο με το GPG, μαζί με αυτό το κλειδί, ώστε να τα μετατρέψει στο κρυπτόγραμμα (το κρυπτογραφημένο αρχείο)4.1. Όταν ο παραλήπτης επιθυμεί να αποκρυπτογραφήσει το αρχείο, εφαρμόζει το προσωπικό του κλειδί στο κρυπτόγραμμα, και το αποτέλεσμα είναι το αρχικό αρχείο.

Στην πραγματικότητα, ο αποστολέας και ο παραλήπτης δεν είναι πάντοτε διαφορετικά πρόσωπα. Μία σημαντική χρήση του GPG είναι η κρυπτογράφηση προσωπικών στοιχείων, και η αποθήκευση των κρυπτογραμμάτων με καταστροφή των αρχικών. Αυτή είναι μία εξαιρετική άμυνα εναντίον φυσικών επιθέσεων κατά κάποιου υπολογιστή ή κάποιου τοπικού διακομιστή αρχείων (file server).

4.1 Χρήση της Εντολής encrypt

Επιλέξτε ένα αρχείο το οποίο επιθυμείτε να κρυπτογραφήσετε. Για παράδειγμα, ας υποθέσουμε ότι έχετε ένα ημερολόγιο, όπου κάθε μήνας είναι ένα νέο αρχείο, και έχετε τελειώσει με το Φεβρουάριο του 2003, το αρχείο του οποίου έχει όνομα “diary 2003-02.txt”. Έστω ότι επιθυμείτε να κρυπτογραφήσετε αυτό το αρχείο και έπειτα να το αποθηκεύσετε σε ένα φάκελο αρχειοθετήσεως ή σε ένα δίσκο CD-R. Στη γραμμή εντολής, πληκτρολογήστε (σε μία γραμμή)

gpg --recipient "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --output "diary 2003-02.txt.gpg" --encrypt "diary 2003-02.txt"

Μην ξεχάσετε να χρησιμοποιήσετε το όνομα με το οποίο σημάνατε το κλειδί σας, αντί του ΤΟ-ΟΝΟΜΑ-ΣΑΣ. Πάντοτε να θυμάστε την επιλογή “--output” όταν χρησιμοποιείτε μία εντολή κρυπτογραφήσεως του GPG· εάν παραλείψετε αυτήν την επιλογή, το αποτέλεσμα της εντολής θα εμφανισθεί στο παράθυρο της γραμμής εντολής, αντί να αποθηκευθεί σε κάποιο αρχείο. Τέλος, παρατηρήστε ότι η εντολή (συνήθως ένα ρήμα ενεργείας) πάντοτε δίδεται στην τελευταία θέση, στη γραμμή εντολής του GPG, μετά από οποιεσδήποτε επιλογές. Τώρα το “diary 2003-02.txt.gpg” θα περιέχει μία φαινομενικά τυχαία ακολουθία χαρακτήρων (bytes). Μπορείτε να το επιθεωρήσετε με το Σημειωματάριο εάν το επιθυμήσετε.

Υπάρχει μία παρόμοια εντολή, η “--encrypt-files”, η οποία θα επιλέξει και θα ονομάσει αυτομάτως το κρυπτογραφημένο αρχείο· αλλά το όνομα το οποίο επιλέγει, δεν περιέχει την επέκταση του ονόματος του αρχικού αρχείου (.txt, .jpg, .zip, κτλ.), γι’ αυτό μην τη χρησιμοποιείτε.

4.2 Χρήση της Εντολής decrypt-files

Τώρα, ας υποθέσουμε ότι μετά από ένα χρόνο από σήμερα αισθάνεσθε νοσταλγία και επιθυμείτε να διαβάσετε το ημερολόγιο του Φεβρουαρίου του 2003. Θα αντιγράψετε το κρυπτόγραμμα πάλι στο χώρο εργασίας σας στον υπολογιστή σας, και θα πληκτρολογήσετε στη γραμμή εντολής:

gpg --decrypt-files "diary 2003-02.txt.gpg"

Το GPG θα αναζητήσει το προσωπικό σας κλειδί και θα σας προτρέψει για τη συνθηματική σας φράση. Με την προϋπόθεση ότι το προσωπικό σας κλειδί είναι ακόμα εγκατεστημένο στον υπολογιστή σας, και θυμάστε ακόμα τη συνθηματική σας φράση (δεν τη γράψατε σε κάποιο Post-It το οποίο κολλήσατε στην οθόνη σας, έτσι δεν είναι;) θα ανακτήσετε το αρχικό αρχείο ακριβώς όπως αυτό ήταν πριν το κρυπτογραφήσετε. Εάν επιθυμείτε να αποκρυπτογραφήσετε ένα μικρό αρχείο και να το εμφανίσετε αμέσως στην οθόνη, μπορείτε να χρησιμοποιήσετε την εντολή “--decrypt” αντί της “--decrypt-files”.

4.3 Αποστολή ενός κρυπτογραφημένου Αρχείου με e-Mail

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

4.3.1 Εισδοχή του Κλειδιού

Όπως ανέφερα προηγουμένως, δύο εξυπηρετικοί τρόποι οι οποίοι προσφέρουν πρόσβαση στο δημόσιο κλειδί κάποιου, είναι το e-mail και οι προσωπικές ιστοσελίδες. Ως παράδειγμα, μπορείτε να μεταφέρετε το δημόσιο κλειδί μου από το δικτυακό μου διακομιστή· δοκιμάστε το τώρα. Επισκεφθείτε τη διεύθυνση http: //www.glump.net /signature/ . Σε αυτήν τη σελίδα, θα δείτε ένα γνώριμο κομμάτι κειμένου, το οποίο αντιπροσωπεύει το δημόσιο κλειδί μου. Αποθηκεύστε ολόκληρη τη σελίδα ως αρχείο κειμένου. (Με τον Internet Explorer, επιλέξτε τύπο “Αρχείο Κειμένου” (“Text File”) στο πλαίσιο διαλόγου “Αποθήκευση Ως” (“Save As”). Ας υποθέσουμε ότι ονομάσατε το αποθηκευμένο αρχείο “brendan.txt”. Στη γραμμή εντολής, πληκτρολογήστε

gpg --import "brendan.txt"

Το GPG θα πρέπει να αποκριθεί ως εξής:

gpg: key A3CA0378: public key "Brendan Kidwell <brendan@glump.net>" imported
gpg: Total number processed: 1
gpg:               imported: 1
Παρατηρήστε ότι το GPG δεν ενοχλήθηκε από όλο το υπόλοιπο κείμενο της σελίδας. Αναζητεί τη γραμμή η οποία περιέχει τη χαρακτηριστική ακολουθία λέξεων “BEGIN PGP PUBLIC KEY BLOCK”, και αγνοεί οτιδήποτε εκτός από αυτό το συγκεκριμένο κομμάτι κειμένου.

Ένα ακόμα βήμα, το οποίο πρέπει να γίνει μετά την εισαγωγή ενός κλειδιού από κάποια εξωτερική πηγή, είναι o ορισμός του βαθμού εμπιστοσύνης σε αυτό. Το GPG είναι παρανοϊκό, και εάν χρησιμοποιήσετε το κλειδί αμέσως, ως έχει, θα σας αποκριθεί με ένα προειδοποιητικό μήνυμα, λέγοντας ότι δεν έχετε πιστοποιήσει τη γνησιότητα του κλειδιού. Για να απαλλαγείτε από αυτό το προειδοποιητικό μήνυμα, χρησιμοποιήστε την εντολή “--edit-key” του GPG, ώστε να ορίσετε το βαθμό εμπιστοσύνης:

gpg --edit-key "Brendan Kidwell"

Το GPG θα ξεκινήσει την αμφίδρομη (interactive) διαδικασία της επεξεργασίας κλειδιών. Εισάγετε την εντολή “trust” (“εμπιστοσύνη”) και επιλέξτε βαθμό “5) I trust ultimately” (“5) Εμπιστεύομαι απολύτως”). Έπειτα πληκτρολογήστε “quit” (“έξοδος”) για να αποθηκευθεί η αλλαγή σας.

4.3.2 Κρυπτογράφηση του Μηνύματος

Τώρα είστε έτοιμος / η να κρυπτογραφήσετε το αρχείο. Ας υποθέσουμε ότι έχετε κάποιο αρχείο το οποίο επιθυμείτε να μου αποστείλετε, με το όνομα “message to brendan.txt”. Στη γραμμή εντολής, πληκτρολογήστε

gpg --armor --recipient "Brendan Kidwell" --output "message to brendan.txt.asc" --encrypt "message to brendan.txt"

Το GPG θα δημιουργήσει ένα αρχείο με το όνομα “message to brendan.txt.asc”, το περιεχόμενο του οποίου μπορείτε να αντιγράψετε και να προσαρτήσετε σε ένα e-mail.

Εναλλακτικά, εάν χρειάζεται να αποστείλετε ένα ιδιαίτερα μεγάλο αρχείο, θα πρέπει να χρησιμοποιήσετε την εντολή encrypt χωρίς την επιλογή “--armor”:

gpg --recipient "ΠΑΡΑΛΗΠΤΗΣ" --output "FILE.gpg" --encrypt-files "FILE"

και αντί να προσαρτήσετε το FILE.gpg στο σώμα του e-mail, το επισυνάπτετε σε αυτό. Βεβαιωθείτε ότι το όνομα του αρχείου δεν αποκαλύπτει οτιδήποτε το οποίο θα έπρεπε να είναι μυστικό.

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

4.4 Αποκρυπτογράφηση Αρχείων αποσταλέντων με e-Mail

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

-----BEGIN PGP MESSAGE-----
ακολουθούμενο από μία ακολουθία φαινομενικά τυχαίων χαρακτήρων. Ή, το μήνυμα μπορεί απλώς να έχει κάποιο συνημμένο αρχείο, του οποίου το όνομα λήγει σε “.gpg” ή “.pgp”.

4.4.1 Τα κρυπτογραφημένα Στοιχεία είναι στο Σώμα του Μηνύματος

Εάν τα κρυπτογραφημένα στοιχεία είναι στο σώμα του μηνύματος, αποθηκεύστε ολόκληρο το μήνυμα σε ένα αρχείο με την επέκταση “.asc”. Εάν γνωρίζετε ότι τα κρυπτογραφημένα στοιχεία είναι σε κάποια δυαδική μορφή, συμπεριλάβετε την αντίστοιχη επέκταση στο όνομα, πριν από την τελική “.asc”. Για παράδειγμα, εάν γνωρίζετε ότι το μήνυμα περιέχει ένα κρυπτογραφημένο αρχείο του Microsoft Word, ονομάστε το αρχείο “message.doc.asc”. Στη γραμμή εντολής, πληκτρολογήστε

gpg --decrypt-files "FILE.asc"

όπου “FILE.asc” είναι το όνομα το οποίο δώσατε στο αρχείο όταν το αποθηκεύσατε. Το GPG θα σας πληροφορήσει για ποιον κρυπτογραφήθηκε το αρχείο και θα σας προτρέψει για τη συνθηματική φράση. Εάν το αρχείο δεν κρυπτογραφήθηκε με τη χρήση του δικού σας δημοσίου κλειδιού, το GPG παραιτείται και σας πληροφορεί ότι δεν έχει το απαραίτητο προσωπικό κλειδί ώστε να αποκρυπτογραφήσει αυτό το αρχείο. Εάν η αποκρυπτογράφηση είναι επιτυχής, το αποτέλεσμα θα πρέπει να είναι το αρχικό αρχείο, με το όνομα το οποίο του δώσατε, χωρίς την επέκταση “.asc”.

Θυμηθείτε, εάν γνωρίζετε ότι τα κρυπτογραφημένα στοιχεία είναι απλώς ένα μήνυμα με κάποιο σύντομο κείμενο, μπορείτε να το εμφανίσετε στην οθόνη αντί να το αποθηκεύσετε σε ένα αρχείο, με την εντολή “--decrypt”:

gpg --decrypt "FILE.asc"

4.4.2 Τα κρυπτογραφημένα Στοιχεία είναι σε συνημμένο Αρχείο

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

gpg --decrypt-files "FILE.gpg"

όπου “FILE.gpg” είναι το όνομα του αρχείου το οποίο αποθηκεύσατε. (Εάν το μήνυμα δημιουργήθηκε με τη χρήση PGP4.2, το όνομα του συνημμένου αρχείου θα έχει πιθανώς την επέκταση “.pgp”). Όπως και πριν, το GPG θα λειτουργήσει μόνο εάν έχετε το απαραίτητο προσωπικό κλειδί για την αποκρυπτογράφηση του αρχείου.

4.5 Κρυπτογράφηση για πολλούς Παραλήπτες

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

Υπάρχει ένας καλύτερος τρόπος: το GPG σας επιτρέπει να ορίσετε έναν κατάλογο προσώπων, τα οποία μπορούν να αποκρυπτογραφήσουν ένα αρχείο. Το GPG, σε αυτήν την περίπτωση, θα χρησιμοποιήσει τα δημόσια κλειδιά όλων αυτών των προσώπων για να κρυπτογραφήσει τα στοιχεία, κατά τρόπον ώστε οποιοδήποτε από τα προσωπικά τους κλειδιά (και κανενός άλλου) θα μπορεί να αποκρυπτογραφήσει τα στοιχεία.

Η σύνταξη της εντολής είναι απλή. Απλώς χρησιμοποιήστε πρόσθετες εντολές “--recipient” στη γραμμή εντολής. Έστω ότι επιθυμείτε να κρυπτογραφήσετε το ίδιο μήνυμα με το αναφερόμενο στο τμήμα 4.3.2 ανωτέρω, αλλά επιθυμείτε να το αποστείλετε κατά τρόπον ώστε να μπορούμε και οι δύο να το αποκρυπτογραφήσουμε. Θα πληκτρολογούσατε τα ακόλουθα στη γραμμή εντολής:

gpg --armor --recipient "Brendan Kidwell" --recipient "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --output "message to brendan.txt.asc" --encrypt "message to brendan.txt"

και θα προσαρτούσατε το κρυπτόγραμμα σε ένα μήνυμα e-mail όπως προηγουμένως.

Η αποστολή κρυπτογραφημένου e-mail κατ’ αυτόν τον τρόπο μπορεί να ευκολύνει τη διαχείριση της αποθηκευμένης αλληλογραφίας σας. Κανονικά, όταν αποστέλλετε μη κρυπτογραφημένο e-mail, ένα αντίγραφο του απεσταλμένου μηνύματος αποθηκεύεται κάπου από την εφαρμογή e-mail που χρησιμοποιείτε (εκτός εάν έχετε ορίσει ότι δεν επιθυμείτε να αποθηκεύετε αντίγραφα). Μπορείτε οποτεδήποτε να επιθεωρήσετε τα απεσταλμένα σας μηνύματα, ώστε να θυμηθείτε αυτά τα οποία ειπώθηκαν. Εάν ορίσετε τον παραλήπτη και τον εαυτό σας ως αποδέκτες, όταν ετοιμάζετε ένα κρυπτογραφημένο μήνυμα, τότε μπορείτε να το ανασκοπήσετε, στη συλλογή των αποθηκευμένων μηνυμάτων σας, οποτεδήποτε χρειάζεσθε, με μόνο πρόσθετο βήμα την ανάγκη αποκρυπτογραφήσεώς του προ της ανασκοπήσεως. Δε χρειάζεται να αποθηκεύσετε ένα ξεχωριστό, μη κρυπτογραφημένο αντίγραφο του μηνύματος, ούτε να δημιουργήσετε ένα άλλο αντίγραφο, κρυπτογραφημένο για τον εαυτό σας.

Ο ορισμός πολλών παραληπτών δεν επηρεάζει δυσμενώς το μέγεθος του κρυπτογράμματος. Δοκίμασα να κρυπτογραφήσω ένα μεγάλο (~8MB) συμπιεσμένο δυαδικό αρχείο για έναν, και έπειτα για δύο παραλήπτες. Η διαφορά στο μέγεθος του κρυπτογράμματος ήταν μόνο μερικές εκατοντάδες byte.

Κεφάλαιο 5

Υπογραφή Αρχείων

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

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

Οι ψηφιακές υπογραφές λειτουργούν με τον αντίστροφο τρόπο· τα στοιχεία κρυπτογραφούνται με τη χρήση του προσωπικού κλειδιού του υπογράφοντος. Εάν κάποιος λάβει το αρχείο και επιτύχει να αποκρυπτογραφήσει τα στοιχεία με το δημόσιο κλειδί του υπογράφοντος, τότε, συμπερασματικά, τα στοιχεία θα πρέπει να έχουν κρυπτογραφηθεί από αυτόν τον υπογράφοντα. Επομένως, ο υπογράφων θα πρέπει να δημιούργησε τα στοιχεία ο ίδιος, ή τουλάχιστον να αποδέχεται τα περιεχόμενά τους κατά κάποιον τρόπο (εξαρτάται από τη φύση των ιδίων των στοιχείων). Μία ψηφιακή υπογραφή είναι εξ ίσου χρήσιμη με μία φυσική υπογραφή γραμμένη με μελάνη, και εύκολα αποδεικνύεται ότι είναι και ασφαλέστερη.

Όταν το GPG δημιουργεί μία ψηφιακή υπογραφή, δεν κρυπτογραφεί ολόκληρο το αρχείο με το προσωπικό κλειδί του υπογράφοντος. Αντί αυτού, υπολογίζει μία συνοπτική τιμή5.1, κρυπτογραφεί αυτήν την τιμή, και την προσαρτά στα αρχικά στοιχεία ως υπογραφή. Κατ’ αυτόν τον τρόπο, παρέχει τη δυνατότητα δημιουργίας υπογεγραμμένων αρχείων, τα οποία είναι αναγνώσιμα χωρίς κάποιο λογισμικό κρυπτογραφίας, και τα οποία δεν είναι σημαντικά μεγαλύτερα· το GPG χρειάζεται μόνο για την πιστοποίηση της γνησιότητας του αρχείου.

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

5.1 Χρήση της Εντολής clearsign

Έστω ότι επιθυμείτε να αποστείλετε ένα μήνυμα σε κάποιον, κατά τρόπον ώστε να μπορεί να αποδείξει ότι εσείς είστε ο δημιουργός του μηνύματος. Πρώτα, συνθέστε το μήνυμα σε κάποιον επεξεργαστή (απλού) κειμένου και αποθηκεύστε το ως “message.txt” σε κάποιο φάκελο όπου σας εξυπηρετεί. Έπειτα, στη γραμμή εντολής, πληκτρολογήστε

gpg --local-user "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --clearsign "message.txt"

Εφ’ όσον αυτή η εργασία χρειάζεται το προσωπικό σας κλειδί, το GPG θα σας προτρέψει για τη συνθηματική σας φράση. Έπειτα, το GPG θα υπολογίσει μία υπογραφή και θα δημιουργήσει ένα νέο αρχείο με όνομα “message.txt.asc”, το οποίο θα περιέχει το αρχικά στοιχεία και την υπογραφή. Τα περιεχόμενα αυτού του αρχείου είναι δυνατόν να αντιγραφούν σε ένα μήνυμα e-mail και να αποσταλούν στον παραλήπτη τους.

Ως παράδειγμα, ακολουθεί ένα μήνυμα το οποίο έχω υπογράψει:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is a test message signed by Brendan Kidwell.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)

iD8DBQE+fnwc4lxlBKPKA3gRAq13AJ4557Md6xF15OoEDyIIB+UvDQKwmwCfcrCY
na12Ng9W4K5mP1ZWEueNjCo=
=73hB
-----END PGP SIGNATURE-----

5.2 Πιστοποίηση Γνησιότητας ενός υπογεγραμμένου Μηνύματος

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

Εάν το προς πιστοποίηση μήνυμα περιέχεται σε κάποιο μήνυμα e-mail, εξάγετέ το σε μορφή αρχείου απλού κειμένου. Εάν το μήνυμα εμφανίζεται σε κάποια ιστοσελίδα ή σε κάποιο άλλο διαδικτυακό μέσο, αποθηκεύστε το ως αρχείο απλού κειμένου (με όνομα, για παράδειγμα, “message.txt”). Έπειτα, πληκτρολογήστε τα ακόλουθα σε μία γραμμή εντολής:

gpg --verify "message.txt.asc"

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

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

5.3 Υπογραφή και Πιστοποίηση Γνησιότητας δυαδικών Αρχείων

Μηνύματα απλού κειμένου είναι δυνατόν να φέρουν υπογραφές προσαρτημένες σε αυτά, χωρίς να μεταβάλλεται κατά πολύ το περιεχόμενό τους, αλλά τα δυαδικά αρχεία, όπως τα κείμενα του Microsoft Word και τα συμπιεσμένα αρχεία Zip, δεν είναι δυνατόν να έχουν αυθαίρετα στοιχεία προσαρτημένα σε αυτά. Για να υπογραφούν δυαδικά αρχεία, συνηθίζεται να χρησιμοποιείται το GPG για τη δημιουργία ενός ξεχωριστού αρχείου υπογραφής. Έστω ότι έχετε ένα συμπιεσμένο αρχείο Zip, το οποίο επιθυμείτε να υπογράψετε, με όνομα “monthly report.zip”. Πληκτρολογήστε τα ακόλουθα στη γραμμή εντολής:

gpg --local-user "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --output "monthly report.zip.sig" --detach-sign "monthly report.zip"

Όπως και προηγουμένως, το GPG θα σας προτρέψει για τη συνθηματική σας φράση και έπειτα θα δημιουργήσει ένα αρχείο υπογραφής, το “monthly report.zip.sig”. Εάν σκοπεύετε να αποστείλετε το συμπιεσμένο αρχείο σε κάποιον, θα πρέπει να επισυνάψετε και τα δύο αρχεία στο μήνυμα e-mail.

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

gpg --verify "monthly report.zip.sig"

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

Λογισμικό το οποίο διανέμεται μέσω του Διαδικτύου, συχνά υπογράφεται κατ’ αυτόν τον τρόπο – ιδιαιτέρως λογισμικό το οποίο σχετίζεται με την ασφάλεια. Ένας χρήστης μπορεί να μεταφέρει ένα μεγάλο πακέτο εγκαταστάσεως σε σύντομο χρονικό διάστημα από κάποιον τοπικό σταθμό, ο οποίος δεν είναι απαραίτητο να θεωρείται έμπιστος. Αφού η μεταφορά ολοκληρωθεί, ο χρήστης μπορεί να επιστρέψει στο δικτυακό σταθμό του δημιουργού και να μεταφέρει ένα δημόσιο κλειδί και την υπογραφή για το πακέτο εγκαταστάσεως, και να τα χρησιμοποιήσει για να πιστοποιήσει τη γνησιότητα του πακέτου.

5.4 Ταυτόχρονη Κρυπτογράφηση και Υπογραφή

Ένα αρχείο είναι δυνατόν να κρυπτογραφηθεί και να υπογραφεί ταυτοχρόνως. Χρησιμοποιήστε αυτήν την εντολή για να κρυπτογραφήσετε και να υπογράψετε ένα αρχείο:

gpg --local-user "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --recipient "ΠΑΡΑΛΗΠΤΗΣ" --armor --sign --output "FILENAME.asc" --encrypt "FILENAME"

Αυτή η εντολή δημιουργεί ένα αρχείο με όνομα “FILENAME.asc”.

Για να αποκρυπτογραφήσετε ένα τέτοιο αρχείο, απλώς εκτελέστε

gpg --decrypt-files "FILENAME.asc"

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

Και, όπως πάντα, εάν προτιμάτε απλώς τη δημιουργία δυαδικού αρχείου, παραλείψτε την επιλογή “--armor”.

Κεφάλαιο 6

Ενσωμάτωση του GPG στην Εφαρμογή σας

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

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

6.1 Προετοιμασία ενός ελαχίστου Αντιγράφου του GPG

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

Οποτεδήποτε εκτελείται το GPG, προϋποθέτει ότι όλα τα κλειδιά του βρίσκονται στον Αρχικό Φάκελο (Home Directory). Σε ένα σύστημα Windows, αυτός είναι ο φάκελος όπου βρίσκεται η πλήρης εγκατάσταση του GPG· σε ένα σύστημα Unix, (ή ένα σύστημα Windows με το GPG εγκατεστημένο σε περιβάλλον Cygwin), αυτός ο φάκελος είναι κρυφός, με όνομα “.gnupg”, και είναι ένας υποφάκελος του αρχικού φακέλου του τρέχοντος χρήστη. Όταν η εφαρμογή σας καλεί το δικό της, ξεχωριστό αντίγραφο του GPG, θα πρέπει να πληροφορήσετε το GPG να χρησιμοποιήσει ένα διαφορετικό φάκελο ως αρχικό – σε αυτήν την περίπτωση, το φάκελο όπου βρίσκεται αυτό και η εφαρμογή σας.

Για να προετοιμάσετε το ξεχωριστό αντίγραφο του GPG στην εφαρμογή σας, θα πρέπει να εγκαταστήσετε τα απαραίτητα δημόσια και προσωπικά κλειδιά σε αυτό. Ποια κλειδιά θα εγκαταστήσετε, θα εξαρτηθεί από τις λειτουργίες του GPG τις οποίες θα χρησιμοποιεί η εφαρμογή σας. Έστω ότι επιθυμείτε η εφαρμογή σας να μπορεί να αποστέλλει κρυπτογραφημένα αρχεία σε κάποιο χρήστη με το όνομα Administrator (Επόπτης). Εξάγετε το δημόσιο κλειδί του Administrator σε ένα αρχείο απλού κειμένου με όνομα “administrator.txt” και αντιγράψτε αυτό το αρχείο κειμένου στο φάκελο της εφαρμογής σας. Στη γραμμή εντολής, στο φάκελο της εφαρμογής σας, πληκτρολογήστε

gpg --homedir . --import "administrator.txt"

Η επιλογή “--homedir .” πληροφορεί το GPG να χρησιμοποιήσει τον τρέχοντα φάκελο ως Αρχικό του Φάκελο.

Μην ξεχάσετε να ορίσετε το βαθμό εμπιστοσύνης για το κλειδί το οποίο μόλις εισάγατε. Στη γραμμή εντολής, πληκτρολογήστε

gpg --homedir . --edit-key "Administrator"

Πληκτρολογήστε “trust”, έπειτα “5”, έπειτα “quit”.

6.2 Κλήση του GPG από την Εφαρμογή σας

Όταν η εφαρμογή σας είναι έτοιμη να αποστείλει στοιχεία, θα έπρεπε να τα συσκευάσει, με κάποιον εξυπηρετικό τρόπο, σε ένα και μοναδικό αρχείο. Εάν θα υπάρχουν περισσότεροι από ένας χρήστες, οι οποίοι θα σας αποστέλλουν στοιχεία, θα έπρεπε να βεβαιωθείτε ότι κάθε ένας από αυτούς χρησιμοποιεί ένα μοναδικό όνομα αρχείου, ώστε να αποφευχθούν διενέξεις μεταξύ τους, στο διακομιστή FTP. Έστω ότι η εφαρμογή σας εξήγαγε τα στοιχεία της σε κάποιο αρχείο με όνομα “update_user001.dat”. Θα χρησιμοποιούσε τότε το λειτουργικό σύστημα για να καλέσει το GPG με την ακόλουθη εντολή (ώστε να είναι βέβαιο ότι θα εκτελεσθεί στο φάκελο της εφαρμογής):

gpg --homedir . --recipient "Administrator" --output "update_user001.dat.gpg" --encrypt "update_user001.dat"

6.3 Κλήση της Εντολής FTP από την Εφαρμογή σας

Σε αυτό το σημείο, θα έχετε ένα κρυπτογραφημένο αρχείο με όνομα “update_user001.dat.gpg” και θα επιθυμείτε να το αποστείλετε στο διακομιστή FTP. Το Windows έχει μία εξυπηρετική εντολή FTP (χωρίς γραφικό περιβάλλον), η οποία υποστηρίζει στοιχειώδη προγραμματισμό. Στη γραμμή εντολής, μπορείτε να πληκτρολογήσετε “ftp” και θα βρεθείτε στην προτροπή “ftp> _”. Οι βασικές εντολές του FTP έχουν ως ακολούθως:

open [hostname]
user [username]
ls
cd [folder name]
bin
get [filename]
put [filename]
quit
   
Έναρξη συνδέσεως με [ΌνομαΚόμβου]
Έναρξη διαδικασίας διαπιστεύσεως (login)
Εμφάνιση περιεχομένων του τρέχοντος φακέλου
Μετάβαση σε κάποιον άλλο φάκελο
Ορισμός τρόπου μεταφοράς αρχείων ως δυαδικών
Μεταφορά αρχείου στο τοπικό σύστημα (download)
Αποστολή αρχείου στο μεμακρυσμένο σύστημα (upload)
Έξοδος από το FTP

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

open [ΌνομαΚόμβου]
user [ΌνομαΧρήστη]
[συνθηματικό]
cd /[Φάκελος-Προορισμού]
bin
put update_user001.dat.gpg
quit

Εξυπακούεται ότι θα πρέπει να αντικαταστήσετε τις λέξεις εντός των αγκυλών με αυτές οι οποίες αρμόζουν κατά περίπτωση. Έστω ότι το αρχείο το οποίο περιέχει αυτές τις εντολές έχει όνομα “ftp.script”. Θα ήταν καλό, όταν εκτελείται αυτό το αρχείο, να τηρείται κάποιο αρχείο καταγραφής δραστηριότητας (log), ούτως ώστε η εφαρμογή σας να μπορεί να το εξετάζει, ώστε να ενημερώνεται εάν η μεταφορά του αρχείου ήταν επιτυχής. Για να πραγματοποιηθεί αυτό, η εφαρμογή σας θα πρέπει να εκτελεί την ακόλουθη εντολή:

ftp -s:ftp.script >ftp.log

Έπειτα, η εφαρμογή σας θα πρέπει να εξετάζει τα περιεχόμενα του αρχείου “ftp.log” για σημεία επιτυχίας ή αποτυχίας. Ο τρόπος τον οποίον εγώ χρησιμοποιώ, είναι να εισάγω ολόκληρο το αρχείο σε μία μεταβλητή ακολουθίας χαρακτήρων (string variable), και έπειτα να αναζητήσω σε αυτήν την ακολουθία χαρακτήρων τις λέξεις

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

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

6.4 Παράδειγμα Εφαρμογής

Έχω δημιουργήσει μία εφαρμογή της Microsoft Access, η οποία επιδεικνύει την ασφαλή μέθοδο μεταφοράς στοιχείων η οποία περιεγράφη ανωτέρω. Εάν έχετε τη Microsoft Access, επισκεφθείτε το δικτυακό μου σταθμό και μεταφέρετε την εφαρμογή αυτή και δοκιμάστε την: http: //www.glump.net /content /accessgpgdemo/ .

Ακόμα και αν δεν έχετε ποτέ πριν προγραμματίσει τη Microsoft Access, μη διστάσετε να μεταφέρετε αυτήν την εφαρμογή και να ρίξετε μια ματιά. Ο προγραμματισμός της Microsoft Access γίνεται στη γλώσσα Visual Basic, και ο αρχικός κώδικας (source code) είναι ενσωματωμένος στο αρχείο της βάσεως δεδομένων, ελεύθερα προσπελάσιμος από οποιονδήποτε. Ακριβείς λεπτομέρειες για τη θέση του σχετικού κώδικα μέσα στο παράδειγμα, υπάρχουν στο αρχείο readme της εφαρμογής.

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

Αρκετοί αναγνώστες με ρώτησαν σχετικά με τη δυνατότητα υπάρξεως ενός αρχείου εντολών (script) το οποίο θα αποκρυπτογραφεί αρχεία αυτομάτως. Το πρόβλημα, φυσικά, είναι ότι οποτεδήποτε εκτελείται μία εντολή η οποία χρησιμοποιεί ένα προσωπικό κλειδί (αποκρυπτογράφηση ή υπογραφή) το GPG σας προτρέπει για τη συνθηματική φράση αυτού του κλειδιού – με την προϋπόθεση ότι το κλειδί είναι σωστά εγκατεστημένο. Δεν υπάρχει εντελώς ασφαλής τρόπος ώστε να παρακαμφθεί αυτή η προτροπή, και να εκτελεσθεί το script χωρίς την παρέμβαση κάποιου χρήστη.

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

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

Υπάρχει μία επιλογή του GPG, η οποία ορίζει ότι η απαιτούμενη συνθηματική φράση μπορεί να διαβάζεται μέσω κάποιας συγκεκριμένης ταυτότητας αρχείου (file handle), αντί από το πληκτρολόγιο. Η επιλογή είναι η “--passphrase-fd”, και ακολουθείται από τον αριθμό ταυτότητας του αρχείου. Είναι πιθανώς ασφαλέστερη (σε όρους σταθερότητας) η χρήση της ταυτότητας 0, η οποία προσδιορίζει πάντοτε την κανονική είσοδο (standard input).

Έστω ότι έχετε προετοιμάσει ένα αρχείο με το όνομα passphrase, το οποίο περιέχει την απαιτούμενη συνθηματική φράση για μία συγκεκριμένη εργασία. Γράψτε την ακόλουθη γραμμή στο script σας:

type passphrase | gpg --passphrase-fd 0 ΕΠΙΛΟΓΕΣ ΕΝΤΟΛΗ

(Φυσικά, θα αντικαταστήσετε το ΕΠΙΛΟΓΕΣ και το ΕΝΤΟΛΗ με κανονικές εντολές του GPG). Το σύμβολο της διοχετεύσεως (pipe), |, ορίζει ότι το Windows θα πρέπει να λάβει την κανονική έξοδο (standard output, η οποία κανονικά κατευθύνεται προς την οθόνη) της πρώτης εντολής, και να τη διοχετεύσει στην κανονική είσοδο (κανονικά, το πληκτρολόγιο) της δεύτερης εντολής.

(Χρήστες UNIX ή Linux: χρησιμοποιήστε την εντολή cat αντί της type).

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε την εντολή echo για να στείλετε τη συνθηματική φράση στο GPG, χωρίς να την αποθηκεύσετε σε κάποιο αρχείο στο δίσκο:

echo PASSPHRASE| gpg --passphrase-fd 0 ΕΠΙΛΟΓΕΣ ΕΝΤΟΛΗ

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

Έχετε υπ’ όψιν σας ότι αυτό στην πραγματικότητα δεν είναι καθόλου ασφαλέστερο από την αποθήκευση της συνθηματικής φράσεως σε ένα αρχείο στο δίσκο. Κάποιος θα μπορούσε να ανακτήσει τη συνθηματική φράση μέσω οποιουδήποτε τμήματος του προγράμματός σας, το οποίο πραγματοποιεί την ανωτέρω κλήση συστήματος. Πολλές άλλες επιθέσεις είναι επίσης δυνατές· θα μπορούσε να υπάρχει ένας τρόπος παρακολουθήσεως των στοιχείων καθώς αυτά περνούν από το πρόγραμμά σας, μέσω της echo, στο GPG.

Παράρτημα Α

“Σκονάκι” για το GPG (Συνοπτικός Πίνακας Εντολών)

Α.1 Εντολές του GPG

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

gpg --version
Η έκδοση του GPG, την οποία έχετε εγκαταστήσει (2)

gpg --gen-key
Δημιουργία ενός νέου ζεύγους κλειδιών (3)

gpg --armor --output "KEY.txt" --export "ΤΟ-ΟΝΟΜΑ-ΣΑΣ"
Εξαγωγή του δημοσίου κλειδιού σας σε ένα αρχείο κειμένου, το “KEY.txt(3)

gpg --import "KEY.txt"
Εισδοχή των κλειδιών τα οποία περιέχονται στο “KEY.txt(4)

gpg --edit-key "ΟΝΟΜΑ"
Επεξεργασία του κλειδιού του χρήστη ΟΝΟΜΑ. Κατά την επεξεργασία, χρησιμοποιήστε την εντολή “trust” για να ορίσετε το βαθμό εμπιστοσύνης (4)

gpg --recipient "ΠΑΡΑΛΗΠΤΗΣ" --output "FILENAME.gpg" --encrypt "FILENAME"
Κρυπτογράφηση του FILENAME με τη χρήση του δημοσίου κλειδιού του ΠΑΡΑΛΗΠΤΗ (4)

gpg --armor --recipient "ΠΑΡΑΛΗΠΤΗΣ" --output "FILENAME.gpg" --encrypt "FILENAME"
Κρυπτογράφηση ενός αρχείου και δημιουργία κειμένου καταλλήλου για αποστολή μέσω e-mail (4)

gpg --decrypt-files "FILENAME.asc" ή
gpg --decrypt-files "FILENAME.gpg"
Αποκρυπτογράφηση του FILENAME.asc ή του FILENAME.gpg, πιστοποίηση της ψηφιακής υπογραφής, εάν υπάρχει, και δημιουργία του (αποκρυπτογραφημένου) FILENAME (4)

gpg --local-user "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --clearsign "FILENAME"
Δημιουργία ψηφιακής υπογραφής και απλού κειμένου, με την υπογραφή προσαρτημένη στο αρχείο FILENAME.asc (5)

gpg --local-user "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --output "FILENAME.sig" --detach-sign "FILENAME"
Δημιουργία ξεχωριστού αρχείου ψηφιακής υπογραφής για το FILENAME (5)

gpg --verify "FILENAME.asc"
Πιστοποίηση της γνησιότητας της ψηφιακής υπογραφής, της προσαρτημένης στο αρχείο FILENAME.asc (5)

gpg --verify "FILENAME.sig"
Πιστοποίηση της γνησιότητας της ψηφιακής υπογραφής του FILENAME, η οποία περιέχεται στο (συνοδευτικό) FILENAME.sig (5)

gpg --armor --local-user "ΤΟ-ΟΝΟΜΑ-ΣΑΣ" --recipient "ΠΑΡΑΛΗΠΤΗΣ" --sign --output "FILENAME.asc" --encrypt "FILENAME"
Κρυπτογράφηση και υπογραφή του FILENAME, με δημιουργία αρχείου απλού κειμένου FILENAME.asc (5)

gpg --homedir . ΚΑΠΟΙΑ-ΕΝΤΟΛΗ
Χρήση του τρέχοντος φακέλου ως αρχικού φακέλου, χρήσιμη κατά την κλήση του GPG από κάποια εφαρμογή (6)

Α.2 Η Γραμμή Εντολής του Windows

X:
Μετάβαση στο δίσκο X

cd ΟΝΟΜΑ-ΦΑΚΕΛΟΥ
Μετάβαση στο φάκελο “ΟΝΟΜΑ-ΦΑΚΕΛΟΥ

cd \
Μετάβαση στο ριζικό φάκελο του τρέχοντος δίσκου

cd ..
Μετάβαση στο μητρικό φάκελο του τρέχοντος φακέλου

dir
Εμφάνιση των περιεχομένων του τρέχοντος φακέλου

exit
Έξοδος και κλείσιμο του ενεργού παραθύρου γραμμής εντολής

Παράρτημα Β

Περαιτέρω Μελέτη και Έρευνα

Εάν διαβάζετε αυτό το κείμενο τυπωμένο, μην ξεχάσετε να ρίξετε μια ματιά στη διαδικτυακή του εκδοχή, η οποία περιλαμβάνει μία σελίδα με σχόλια:
http: //www.glump.net /content /gpg_intro/

Το παράδειγμά μου, η εφαρμογή της Microsoft Access η οποία επιδεικνύει τον τρόπο με τον οποίο καλείται το GPG μέσα από ένα άλλο πρόγραμμα, βρίσκεται στη διεύθυνση:
http: //www.glump.net /content /accessgpgdemo/

Ο κύριος διαδικτυακός σταθμός του Φρουρού Απορρήτου του GNU βρίσκεται στη διεύθυνση http://www.gnupg.org/ . Στο τμήμα με τίτλο “Documentation”, αυτού του σταθμού, θα βρείτε ορισμένα χρήσιμα κείμενα, συμπεριλαμβανομένου του “Μικρός Οδηγός για το GNUPG” (“The GNUPG Mini-Howto”), και του “Το Εγχειρίδιο Απορρήτου του GNU”.

Στο διαδικτυακό σταθμό Diceware, στη διεύθυνση http: //www .diceware .com/ , βρίσκεται ο κατάλογος λέξεων για επιλογή πραγματικά τυχαίων συνθηματικών φράσεων, όπως αναφέρεται στο Κεφάλαιο 3, με τίτλο “Δημιουργία του προσωπικού σας Ζεύγους Κλειδιών”. Συνιστώ, επίσης, να ρίξετε μια ματιά στις Συχνές Ερωτήσεις αυτής της ιστοσελίδας. Παρέχει πολλές πληροφορίες όσον αφορά στο αντικείμενο της ασφαλείας των κλειδιών.

Ο σταθμός http://www.keyserver.net/ είναι μία καλή, δωρεάν υπηρεσία δημοσίου καταλόγου, την οποία μου υπέδειξε ένας αναγνώστης.

Βρήκα έναν καλό οδηγό για τη γραμμή εντολής του Windows, με τίτλο “Πώς χρησιμοποιείται ένα παράθυρο εντολής MS-DOS”, στη διεύθυνση http: //www.c3scripts.com /tutorials /msdos/ .

Το κυριώτερο, μην ξεχνάτε ότι η σύνταξη όλων των εντολών του GPG δίδεται με λεπτομέρειες στο αρχείο gpg.man, το οποίο συμπεριλαμβάνεται στο GPG.

Σχετικά με αυτό το Κείμενο...

Μία πρακτική Εισαγωγή στο
Φρουρό Απορρήτου του GNU (GNU Privacy Guard) για Windows

Η έκδοση HTML αυτού του κειμένου δημιουργήθηκε με τη χρήση του μετατροπέα LaTeX2HTML Έκδοση 2002 (1.62)

Copyright © 1993, 1994, 1995, 1996, Νίκος Δράκος, Μονάδα Διδασκαλίας βασισμένης σε Υπολογιστή, Πανεπιστήμιο του Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Τμήμα Μαθηματικών, Πανεπιστήμιο Macquarie, Sydney.

Οι επιλογές στη γραμμή εντολής ήταν:

latex2html -long_titles 4 -local_icons -no_footnode -split 0 -show_section_numbers -link 0 -no_navigation gpg_intro.tex

Η μετατροπή ξεκίνησε από τον Brendan Kidwell την 2003/08/23



Brendan Kidwell 2003/08/23




1.1 http://winpt.sourceforge.net/
1.2 http://www.jumaros.de/rsoft/



2.1 http://www.gnupg.org/


3.1, 3.2 (ΣτΜ.) Brute-force Attack, Dictionary Attack: Μέθοδοι κατά τις οποίες μία εφαρμογή δοκιμάζει – αυτομάτως, δηλ. χωρίς την ανάγκη ανθρώπινης επεμβάσεως, άρα με ταχύτατο ρυθμό – όλες τις λέξεις ενός λεξικού (ή / και συνδυασμούς αυτών) με τη σειρά, ούτως ώστε εάν η συνθηματική φράση (μία λέξη ή συνδυασμός λέξεων) περιέχεται στο λεξικό, η εύρεση του κλειδιού (και, συνεπώς, η αποκρυπτογράφηση των κρυπτογραφημένων αρχείων) είναι απλώς ζήτημα χρόνου· με τα σύγχρονα υπολογιστικά συστήματα, ο χρόνος αυτός δεν είναι δυνατόν να υπερβεί κάποιο ολιγοήμερο διάστημα. Διάφορα λεξικά υπάρχουν, και γράφονται, ώστε να καλύπτουν ένα ευρύ φάσμα λέξεων και συνδυασμών αυτών.

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

3.4 Man-in-the-Middle Attack: Μία επίθεση από παρεμβαλλόμενο θα αποτελούσε η αντικατάσταση, από κάποιον τρίτο, του δημοσίου κλειδιού, πριν το πρόσωπο το οποίο το επιθυμεί, προσπαθήσει να το ανακτήσει. Για παράδειγμα, ας υποθέσουμε ότι η Εύα επιθυμεί να αποκτήσει πρόσβαση σε ένα μήνυμα το οποίο η Αλίκη θα στείλει στον Μπομπ. Ο Μπομπ δημοσιεύει το γνήσιο δημόσιο κλειδί του στο δικτυακό του σταθμό και η Εύα αμέσως αποκτά λαθραία πρόσβαση στο διακομιστή και αντικαθιστά αυτό το κλειδί με το δικό της, πλαστό δημόσιο κλειδί του Μπομπ. Η Αλίκη μεταφέρει (“κατεβάζει”) αυτό το οποίο πιστεύει ότι είναι το δημόσιο κλειδί του Μπομπ, αλλά στην πραγματικότητα είναι το κλειδί με το οποίο η Εύα αντικατέστησε το γνήσιο. Η Αλίκη χρησιμοποιεί αυτό το κλειδί για να κρυπτογραφήσει και να στείλει ένα μήνυμα στον Μπομπ, το οποίο παραλαμβάνεται από την Εύα, αποκρυπτογραφείται με τη χρήση του αντιστοίχου προσωπικού κλειδιού της και διαβάζεται από αυτήν, επανακρυπτογραφείται με τη χρήση του γνησίου δημοσίου κλειδιού του Μπομπ, και τελικά αποστέλεται στον Μπομπ – χωρίς κανείς να γνωρίζει ούτε για τη λαθραία πρόσβαση της Εύας στο διακομιστή, ούτε για την υποκλοπή.

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

3.5 (ΣτΜ.) ASCII (American Standard Code for Information Interchange): Αμερικανικός Πρότυπος Κώδικας για την Ανταλλαγή Πληροφοριών· σύμφωνα με την αρχική μορφή αυτού του κώδικα, κάθε γράμμα της Λατινικής Αλφαβήτου, καθώς και χαρακτήρες απαραίτητοι για τη γραφή κειμένων σε όλες τις δυτικοευρωπαϊκές γλώσσες, αριθμοί, διάφορα σημεία στίξεως, τονισμού, και άλλα σύμβολα, αναπαριστώνται από μία ακολουθία επτά (7) δυαδικών ψηφίων (7-bit ASCII), ούτως ώστε να καθίσταται δυνατή η επεξεργασία, αποθήκευση και διαβίβαση κειμένων σε μορφή κατανοητή από τους ηλεκτρονικούς υπολογιστές (δηλ. σε ψηφιακή μορφή / κώδικα), καθώς και από άλλες παρομοίου τύπου συσκευές.

Ο όρος “κείμενο ASCII” (“ASCII text”) έχει επικρατήσει να σημαίνει το απλό, χωρίς μορφοποίηση (στοίχιση, διάστιχα, έντονους ή πλάγιους χαρακτήρες, κτλ.) κείμενο, το οποίο μοιάζει πολύ στην όψη με το κείμενο το οποίο παραγόταν (και συνεχίζει να παράγεται) με τη χρήση γραφομηχανής, ταμειακής μηχανής, τηλεγράφου, εκτυπωτή μήτρας ακίδων (dot-matrix), και άλλων, παρομοίων συσκευών, καθώς επίσης και με τη χρήση προγραμμάτων εφαρμογών όπως το Σημειωματάριο (Notepad) του Microsoft Windows, ή του επεξεργαστή κειμένου vi, ο οποίος δημιουργήθηκε και χρησιμοποιείται κυρίως σε συστήματα UNIX, αν και υπάρχει έκδοσή του και για συστήματα Microsoft Windows [απλό κείμενο: plain text (πλαίιν τεξτ)].

Βλ. (στην Αγγλική γλώσσα)

  1. Karen's Power Tools Newsletter, 2000/10/17, Early Codes, κ.επ.,
  2. Karen's Power Tools Newsletter, 2000/10/23, EBCDIC
    στη διεύθυνση
    http: //content.techweb.com /winmag /columns /powertools /default.htm
  3. FOLDOC (Free On-Line Dictionary Of Computing): Ελεύθερο Διαδικτυακό Λεξικό Πληροφορικής (διαθέσιμο και για μεταφορά και τοπική αποθήκευση), στη διεύθυνση http: //foldoc.doc.ic.ac.uk /foldoc/ (αναζητήστε το λήμμα ASCII). Το FOLDOC βρίσκεται και σε άλλες διευθύνσεις (Mirrors) στο Διαδίκτυο· εάν η ανωτέρω δε λειτουργεί, αναζητήστε τη λέξη “FOLDOC” μέσω της μηχανής αναζητήσεως του Google (http://www.google.com/ ή http://www.google.com.gr/).

Δυαδικά αρχεία (binary files), κατ’ αντιδιαστολή, είναι τα αρχεία, τα περιεχόμενα των οποίων δεν είναι δυνατόν να αναγνωσθούν αμέσως, χωρίς τη χρήση κάποιας εξειδικευμένης εφαρμογής – σε πολλές περιπτώσεις, μόνο η συγκεκριμένη εφαρμογή η οποία τα δημιούργησε είναι και ικανή να τα χειρισθεί. Παραδείγματα τέτοιων αρχείων είναι τα αρχεία μορφοποιημένου κειμένου, τα οποία δημιουργούν διάφορες εφαρμογές επεξεργασίας κειμένου. Εάν κάποιος προσπαθήσει να τα ανοίξει – για να τα διαβάσει – με την εντολή “type” ή “more”, στη γραμμή εντολής, η οθόνη θα γεμίσει με ακατανόητους χαρακτήρες. Αντιθέτως, τα αρχεία HTML, για παράδειγμα, είναι μεν μορφοποιημένα, είναι όμως δυνατόν να ανοιχθούν, επιθεωρηθούν και τροποποιηθούν με οποιαδήποτε εφαρμογή επεξεργασίας απλού κειμένου (όπως, για παράδειγμα, το Σημειωματάριο του Windows).


4.1 Αρχικό Αρχείο: οποιοδήποτε αρχείο (κείμενο, εικόνα, ήχος, κινούμενη εικόνα, ... ), στη μη κρυπτογραφημένη μορφή του
Κρυπτόγραμμα: το αρχείο το οποίο παράγεται ως αποτέλεσμα της κρυπτογραφήσεως (το κρυπτογραφημένο αρχείο – τα κρυπτογραφημένα στοιχεία)

4.2 Το PGP (Pretty Good Privacy: Αρκετά Καλό Απόρρητο) είναι εμπορικό λογισμικό, το οποίο εφαρμόζει τους ίδιους αλγορίθμους και πρωτόκολα με αυτά τα οποία χρησιμοποιούνται στο GPG. Στην πραγματικότητα, το GPG προέρχεται από το PGP.


5.1 Hash Value: Μία τιμή κατακερματισμού [ή: τιμή (ψηφιακού) αποτυπώματος, τιμή συνόψεως, συνοπτική τιμή] είναι μία σχετικά μικρή ακολουθία στοιχείων, η οποία αντιπροσωπεύει (αναπαριστά) μία μακρά ακολουθία στοιχείων. Μία συνάρτηση [αλγόριθμος] κατακερματισμού υπολογίζει την τιμή κατακερματισμού μίας ακολουθίας στοιχείων. Μία ιδανική συνάρτηση κατακερματισμού λειτουργεί μόνο προς τη μία κατεύθυνση (είναι μη αντιστρέψιμη)· είναι εύκολο να υπολογισθεί η τιμή κατακερματισμού ενός δεδομένου συνόλου στοιχείων, αλλά είναι απίστευτα δύσκολο να βρεθεί ένα σύνολο στοιχείων το οποίο θα παράξει μία δεδομένη τιμή κατακερματισμού. Επίσης, συναρτήσεις κατακερματισμού χρησιμοποιούμενες στην κρυπτολογία, θα πρέπει να είναι πολύ ευαίσθητες σε μικρές μεταβολές στα στοιχεία, ούτως ώστε να παρέχουν τη βεβαιότητα ότι εάν κάποιος αλλάξει τα στοιχεία, η τιμή κατακερματισμού θα είναι διαφορετική. Για περισσότερες πληροφορίες, βλ. http: //www .wikipedia .org /wiki /Hash_function/ (στην Αγγλική γλώσσα).




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

Ο μεταφραστής αποποιείται πάσης ευθύνης για ζημίες προερχόμενες από τη χρήση του παρόντος κειμένου. Πειραματισθείτε τόσο, όσο να αισθάνεσθε άνετα όταν χρησιμοποιείτε το gpg, πριν από οποιαδήποτε χρήση του, η οποία ενδεχομένως θα είχε καταστροφικές συνέπειες εάν δε γινόταν σωστά. Χρησιμοποιήστε κοινή λογική. Ο μοναδικός υπεύθυνος για οποιαδήποτε σφάλματα / παροράματα / ατέλειες στην Ελληνική μετάφραση, είναι ο μεταφραστής. Παρακαλώ αποστείλετε σχετικά σχόλια στη διεύθυνση e-mail <achilleus_at_*όχι-UCE-παρακαλώ!*_mailbox_dot_gr>.

Εκτυπωση: Εάν επιθυμείτε να εκτυπώσετε το κείμενο, παρακαλώ κάνετε πρώτα οπωσδήποτε μία προεπισκόπηση (όπως – άλλωστε – συνιστάται σε κάθε περίπτωση, πριν από οποιαδήποτε εκτύπωση)! Το κείμενο έχει σελιδοποιηθεί για τον Microsoft Internet Explorer (v6), για σελίδα A4, με συγκεκριμένα περιθώρια και διάστιχα, επομένως προτείνεται η ρύθμιση των περιθωρίων όσο πιο κοντά στο 0 γίνεται, πριν από την εκτύπωση (συμβουλευθείτε και τον πίνακα περιεχομένων, στην αρχή του κειμένου). Επειδή η εμφάνιση και η εκτύπωση ενός κειμένου HTML εξαρτώνται από πλήθος παραγόντων, οι οποίοι είναι αδύνατον να ελεγχθούν κατά τη δημιουργία του, είναι πολύ πιθανόν (μάλλον αναπόφευκτο) να παρουσιασθούν μικρο-ατέλειες στο εκτυπωμένο κείμενο, οι οποίες είναι πολύ δύσκολο ή αδύνατο να διορθωθούν.