GNU PG

GNU PG
Παράδειγμα δημιουργίας κλειδιών PGP.
Γενικά
ΔημιουργοίWerner Koch[1]
Ημερ. Δημιουργίας20 Δεκέμβριος 1997
Είδοςλογισμικό κρυπτογράφησης, λογισμικό για προστασία της ιδιωτικότητας, ελεύθερο λογισμικό, εφαρμογή τερματικού, βιβλιοθήκη
Διανομή
Έκδοση2.4.7 (25 Νοέμβριος 2024)[2]
ΛειτουργικάGNU/Linux, BSD, Microsoft Windows, macOS
Διαθέσιμο σεπολλαπλές γλώσσες
Ανάπτυξη
Υπευθ. ανάπτυξηςΕγχείρημα GNU
Γραμμένο σεC
ΚατάστασηΕνεργή
Άδεια χρήσηςGPLv2
Σύνδεσμοι
Επίσημος ιστότοπος
https://gnupg.org/
Αποθετήριο κώδικα
https://dev.gnupg.org/source/gnupg.git

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)[3][4] . Η έκδοση 1.0.0.0 κυκλοφόρησε στις 7 Σεπτεμβρίου 1999, δύο χρόνια μετά την αρχική έκδοση 0.0.0. Το 2000, το Γερμανικό υπουργείο Οικονομικών και Τεχνολογίας χρηματοδότησε την εκδοχή του GPG για Windows καθώς και την συγγραφή οδηγιών. Το GPG ακολουθεί το πρότυπο του OPEN PGP το οποίο με την σειρά του βασίστηκε στο PGP του Phil Zimmerman[5][6]. Τον Φεβρουάριο του 2014 το GPG χρηματοδοτήθηκε με το ποσό των 36,732 ευρώ για την κατασκευή της νέας ιστοσελίδας και για δομικές βελτιώσεις του συστήματος.

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

Στο λειτουργικό σύστημα του OS X, υπάρχουν δύο κύριες εναλλακτικές εγκατάστασης του GPG:

  • GPG tools [1] Παρέχει ενσωμάτωση με το Mail.app. Παράλληλα, παρέχεται το GPG Keychain για διαχείριση κλειδιών, ενώ χρησιμοποιεί το MacGPG στο εσωτερικό του.
  • GnuPG for OS X [2]

Στο λειτουργικό σύστημα των 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.

  1. Free Software Directory, Free Software Directory entry gnupg, Wikidata Q2470288, https://directory.fsf.org, ανακτήθηκε στις 17 Ιουλίου 2020 
  2. Werner Koch (28 Νοέμβριος 2024). «GnuPG 2.4.7 and Gpg4win 4.4.0 released» (στα Αγγλικά). Ανακτήθηκε στις 28 Νοέμβριος 2024. 
  3. Angwin, Julia (5 Φεβρουαρίου 2015). «The World's Email Encryption Software Relies on One Guy, Who is Going Broke». ProPublica. Ανακτήθηκε στις 6 Φεβρουαρίου 2015. 
  4. Wayner, Peter (19 November 1999). «Germany Awards Grant for Encryption». The New York Times. http://partners.nytimes.com/library/tech/99/11/cyber/articles/19encrypt.html. Ανακτήθηκε στις 2014-08-08. 
  5. «Gnu Privacy Guard». OpenPGP.org. Αρχειοθετήθηκε από το πρωτότυπο στις 27 Φεβρουαρίου 2014. Ανακτήθηκε στις 26 Φεβρουαρίου 2014. 
  6. «Where to Get PGP». Philzimmermann.com. Ανακτήθηκε στις 26 Φεβρουαρίου 2014. 

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

[Επεξεργασία | επεξεργασία κώδικα]