GNU PG

To GNU Privacy Guard (GnuPG ή GPG) δίνεται με Γενική Άδεια Δημόσιας Χρήσης GNU και είναι εναλλακτικό πρόγραμμα του PGP, προγράμματος κρυπτογράφησης/υπογραφής e-mail. Το GnuPG είναι ευθυγραμμισμένο με το RFC 4880, το οποίο αποτελεί το σύγχρονο standard της IETF για το OpenPGP.
To GPG είναι έργο του GNU software project του Ιδρύματος Ελεύθερου Λογισμικού (Free Software Foundation, FSF) και έχει λάβει χρηματοδότηση από την Γερμανική κυβέρνηση.

Ιστορία 
Το GnuPG αρχικά αναπτύχθηκε από τον Βέρνερ Κοχ (Werner Koch) . Η έκδοση 1.0.0.0 κυκλοφόρησε στις 7 Σεπτεμβρίου 1999, δύο χρόνια μετά την αρχική έκδοση 0.0.0. Το 2000, το Γερμανικό υπουργείο Οικονομικών και Τεχνολογίας χρηματοδότησε την εκδοχή του GPG για Windows καθώς και την συγγραφή οδηγιών. Το GPG ακολουθεί το πρότυπο του OPEN PGP το οποίο με την σειρά του βασίστηκε στο PGP του Phil Zimmerman. Τον Φεβρουάριο του 2014 το GPG χρηματοδοτήθηκε με το ποσό των 36,732 ευρώ για την κατασκευή της νέας ιστοσελίδας και για δομικές βελτιώσεις του συστήματος.

Πλατφόρμες

Linux 
Στο λειτουργικό σύστημα των GNU/Linux, πολλές από τις διανομές έρχονται με προεγκατεστημένο το GNU Privacy Guard. Εναλλακτικά, μπορεί να βρεθεί στα αντίστοιχα εξωτερικά software repositories και να εγκατασταθεί μέσω του package manager που η κάθε διανομή χρησιμοποιεί.

Mac 
Στο λειτουργικό σύστημα του OS X, υπάρχουν δύο κύριες εναλλακτικές εγκατάστασης του GPG:
 GPG tools    Παρέχει ενσωμάτωση με το Mail.app. Παράλληλα, παρέχεται το GPG Keychain για διαχείριση κλειδιών, ενώ χρησιμοποιεί το MacGPG στο εσωτερικό του.
 GnuPG for OS X

Windows 
Στο λειτουργικό σύστημα των Windows, το GPG μπορεί να εγκατασταθεί μέσω του GPG4win.

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

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

Η δεύτερη έκδοση του GPG, 2.x, χρησιμοποιεί την Libgcrypt, ως βιβλιοθήκη κρυπτογράφησης, ενώ η πρώτη έκδοση, GPG 1.x, δεν την χρησιμοποιεί.

Το GPG κρυπτογραφεί χρησιμοποιώντας μη συμμετρικά ζεύγη κλειδιών, τα οποία οι χρήστες του δημιουργούν ξεχωριστά. Τα δημόσια κλειδιά που παράγονται από τη διαδικασία μπορούν να ανταλλαχθούν με ποικίλους τρόπους, μεταξύ των οποίων είναι και οι Internet key servers. Πρέπει πάντοτε να ανταλλάσσονται με προσοχή, για να αποφευχθεί η αλλοίωση ταυτότητας αλλοιώνοντας την αντιστοιχία δημοσίου κλειδιού και κατόχου. Επίσης, παρέχεται η δυνατότητα να προστεθεί μία Ψηφιακή Υπογραφή στο μήνυμα, ώστε ο έλεγχος της ακεραιότητας του μηνύματος να δυνατός.

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

Για αρκετό καιρό, το GPG δεν υποστήριζε τον  αλγόριθμο IDEA, που χρησιμοποιούταν στον PGP. Η συγκεκριμένη δυνατότητα μπορούσε να επιτευχθεί μόνο μέσα από πρόσθετο εργαλείο. Ωστόσο, μπορεί να απαιτούσε άδεια, σε χώρες στις οποίες ο εν λόγω αλγόριθμος ήταν πατενταρισμένος. Από την έκδοση 1.3.13/2.0.20 και μετά, ο GPG υποστηρίζει τον IDEA, καθώς έληξε η πατέντα του το 2012.

Στις εκδόσεις 2.0.26 και 1.4.18, το GPG υποστηρίζει τους εξής αλγορίθμους:
 Δημοσίου κλειδιού: RSA, ElGamal, DSA
 Cipher: IDEA, 3DES, CAST5, Blowfish, AES-128, AES-192, AES-256, Twofish, Camellia-128, Camellia-192, Camellia-256
 Κατακερματιμού: MD5, SHA-1, RIPEMD-160, SHA-256, SHA-384, SHA-512, SHA-224
 Συμπίεσης: Zip, ZLIB, BZIP2
Η έκδοση 2.1.x υποστηρίζει κρυπτογραφία ελλειπτικών καμπυλών.

Αδυναμίες 
Το πρότυπο του OpenPGP επιρέπει την χρήση αρκετών μεθόδων για την ψηφιακή υπογραφή μηνυμάτων. Το 2003, στην προσπάθεια να γίνει μία από αυτές τις μεθόδους πιο αποδοτικές, παρουσιάστηκε μία ευπάθεια στην ασφάλεια του συστήματος. Η ευπάθεια αυτή επηρέαζε μόνο μία μέθοδο ψηφιαικής υπογραφής και μόνο για συγκεκριμένες εκδόσεις του GnuPG (1.0.2 μέχρι 1.2.3). Υπολογίζεται πως υπήρχαν λιγότερο από 1000 κλειδιά που επηρέαστηκαν στον server, καθώς οι περισσότεροι χρήστες δεν χρησιμοποιούσαν την μέθοδο αυτή, και συνεπώς η ζημιά περιορίστηκε αρκετά. Μετά την αποκάλυψη της ευπάθειας αυτής, η υποστήριξη της μεθόδου σταμάτησε (εκδόσεις GnuPG 1.2.4 και έπειτα).

Δύο ακόμα τέτοιες ευπάθειες ανακαλύψθηκαν στις αρχές του 2006. Στην πρώτη απ’αυτές, παρατηρήθηκε πως κάποιες χρήσεις του GnuPG για verification υπογραφών κατέληγαν σε ένα false positive αποτέλεσμα. Η δεύτερη αφορούσε τα non-MIME μηνύματα, που ήταν ευπαθή σε επιθέσεις όπου εισάγονταν δεδομένα μετά την ψηφιακή υπογραφή του μηνύματος, χωρίς αυτό να σημαίνε την αποτυχία της μεθόδου επιβεβαίωσης. Και στις δύο περιπτώσεις οι ευπάθειες αυτές καλύφθηκαν με μελλοντικές εκδόσεις του GnuPG.

Υποστήριξη σε εφαρμογές 
Το GnuPG χρησιμοποιείται από αρκετές εφαρμογές, front-end συστήματα καθώς και browsers plugin, όπως είναι τα ακόλουθα:
 Claws mail – mail client με GPG plugin
 Enigform – επέκταση Firefox
 Enigmail – επέκταση Thunderbird
 FireGPG[30] – επέκταση Thunderbird (εγκαταλήφθηκε)
 Gpg4win – πακέτο εργαλειών για κρυπτογράφηση email και αρχείων σε Windows
 GPGMail – επέκταση του OS X Mail.app
 GPGServices – επέκταση του OS X Services Menu 
 GPGTools – πακέτο εργαλειών για το OS X, γιια κρυπτογράφηση email και αρχείων.
 KGPG – ένα front-end KDE σύστημα για το GnuPG
 MCabber – μία Jabber client εφαρμογή
 Mutt – email client με εγγενή υποστήριξη PGP/GPG
 Psi - client για ανταλλαγή άμεσων μηνυμάτων
 WinPT – ένα front-end για το GPG σε Windows

Στο διεθνή τύπο 
Τον Μάιο 2014, δημοσιεύθηκε στην Washington Post ένα 12-λεπτο video με τίτλο “GPG for Journalists” που είχε δημοσιευθεί τον Ιανουάριο του 2013 στην υπηρεσία Vimeo από τον χρήστη anon108. Σύμφωνα με την εφημερίδα ο χρήστης αυτός δεν ήταν άλλος παρά ο γνωστός Edward Snowden, ο οποίος αναφέρει στο video του με παραμορφωμένη φωνή, πως έκανε το video αυτό για να διδάξει στον Glenn Greenwald την έννοια της κρυπτογράφησης σε mail.

Αναφορές

Εξωτερικοί σύνδεσμοι 
  

GNU
Λογισμικό κρυπτογράφησης