GnuPG schützt Daten durch Verschlüsselung und ermöglicht, die Identität des Absenders zu verifizieren.

GnuPG, die freie Version von PGP und OpenPGP, verschlüsselt und signiert vertrauliche Daten. GnuPG ermöglicht aber auch, Daten und – vor allem – Kommunikation, durch digitale Signaturen zu authentifizieren und deren Integrität, also Herkunft, zu sichern.

Es gibt bei GnuPG zwei Schlüssel — einen privaten und einen öffentlichen Teil – die sich gegenseitig ergänzen. Der private Schüssel muss sicher verwahrt werden und darf nie in die Hände Dritter gelangen. Der öffentliche GnuPG-Schlüssel darf für jedermann zugänglich sein, zum Beispiel auf der eigenen Webseite oder als E-Mail-Anhang.

Darüber hinaus gibt es Key-Server, die als eine Art Telefonbuch fungieren, auf die sich die öffentlichen Schlüssel hochladen lassen. Diese Server bergen aber einige Probleme, über die am Ende noch zu lesen sein wird.

Eine freie Version von Pretty Good Privacy

Das klingt jetzt mächtig gestelzt, heißt aber nichts anderes, dass Daten mit einem Verfahren verschlüsselt und mit dem gleichen Verfahren, umgekehrt angewendet, digital signiert werden können, nach dem RFC4880, auch bekannt als PGP. Ursprünglich war das Verfahren von Phil Zimmermann im Rahmen des PGP-Projekts (Pretty Good Privacy) entwickelt worden. GnuPG wurde als frei verfügbare Alternative zum proprietäre PGP geschaffen.

Mehr als nur zur E-Mail-Verschlüsselung geeignet

Irrtümlicherweise wird vielfach angenommen, GnuPG sei nur für den verschlüsselten Versand von E-Mails geeignet. Man kann sehr gute jede Form von digital vorliegenden Daten – bis hin zu Telefonaten – wunderbar vor dem Zugriff von fremden Augen und Ohren schützen. Und das für sehr lange Zeit!

GnuPG verwendet dazu verschiedene kryptographische Verfahren wie beispielsweise symmetrische Verschlüsselung, Public-Key-Verschlüsselung und Einweg-Hashing. Natürlich kann man GnuPG auch ohne tieferes Wissen um die verwendeten Methoden benutzen.

Wer mehr darüber wissen will, dem empfehle ich das Manual von GnuPG. Ich habe fest vor, in diesem Blog ebenfalls eine kleine Einführung in die Methoden und kryptographischen Verfahren zu erstellen. Aber wann das ist, kann ich noch nicht sagen.

Was ist GnuPG?

Lassen wir die Entwickler selbst sprechen:

“GnuPG (der GNU Privacy Guard) ist ein Programm zum Verschlüsseln und Signieren von digitalen Daten und arbeitet unabhängig von den jeweiligen Datenformaten (E-Mail, Textdateien, Bilddaten, Sourcecode, Datenbanken, komplette Festplatten usw.). Es entspricht der im RFC2440 festgelegten OpenPGP-Spezifikation. GnuPG verwendet dazu hauptsächlich ein hybrides Verfahren mit öffentlichem Schlüssel. Zum Verschlüsseln kann GnuPG aber ebenso ausschließlich symmetrische Verfahren einsetzen.

GnuPG ist derzeit eine der sichersten Anwendungen zum Verschlüsseln und Signieren von Daten. Bei sorgfältiger Anwendung ist eine Verschlüsselung mit GnuPG auch in absehbarer Zukunft nicht zu knacken. Im Gegensatz zu anderen Verschlüsselungsprogrammen ist GnuPG freie Software. Das bedeutet unter anderem, daß der Programm-Quellcode frei verfügbar, frei von Patenten und frei von einschränkenden Lizenzbedingungen ist.”

Kommandozeile und grafische Bedienoberfläche

GnuPG ist etwas sperrig in der Anwendung, weil es ein Kommandozeilen-Werkzeug ohne jegliche grafische Oberfläche ist. Das muss uns aber eigentlich nicht interessieren, denn es gibt eine lange Liste hervorragender grafischer Anwendungen für die verschiedensten Zwecke, die sich der Funktionen von GnuPG bedienen.

Das sind zum Beispiel GPA und GPG4win für die lokale Datenpflege, Enigmail im Mailprogramm Mozilla Thunderbird oder Evolution als Mailprogramm, Gabber, Conversations oder Gajim als Chatclient. Das ist nur ein kleiner Ausschnitt. Weil GnuPG ein Kommandozeilen-Werkzeug und eine Bibliothek ist, kann es ohne Probleme in andere Anwendungen integriert werden.

Was macht GnuPG?

Wie schon gesagt, braucht man GnuPG immer dann, wenn Daten so verschlüsselt werden sollen, dass kein unautorisierter Anderer sie lesen kann. Deshalb erzeugt man mit dem Programm ein asymmetrisches Schlüsselpaar, mit dessen Hilfe das Programm dann die Daten ver- oder entschlüsselt oder signiert.

Um diese Kernfunktionalität gruppieren sich dann noch Funktionen zur Schlüsselerstellung, Schlüsselverwaltung und -prüfung und vieles andere mehr. Selbstredend ist das alles so programmiert, dass alle Funktionen nicht korrumpiert oder angegriffen werden können.

Wie kann ich GnuPG eigentlich einsetzen?

Wie schon erwähnt, ist GnuPG nicht gerade einfach zu bedienen. Trotzdem kann man es auch ohne bunte Fenster einsetzen. Sollen zum Bespiel mehrere Dateien in einem Rutsch verschlüsselt werden, kann man dazu wunderbar ein kleines Shell-Script erstellen.

Oder man verpasst einer Datei einen digitalen Fingerabdruck in Form eines Hashwertes, bevor sie auf die Reise durch das Internet geht. So kann der Empfänger sofort feststellen, ob die Datei auch unverändert bei ihm eintrifft. All das geht mal eben mit einer Befehlzeile. Darüber hinaus wird GnuPG meistens stillschweigend mitinstalliert, wenn eine grafische Anwendung zur Datei- oder E-Mail-Verschlüsselung auf dem Rechner landet.

Alles in allem wird GnuPG aber meist von anderen Programmen eingesetzt, die ich in weiteren Blogposts vorstellen will.

Und was bringt die Zukunft?

Wie kann ich aber den öffentlichen Schlüsseln vertrauen? GnuPG funktioniert so, dass man die Schlüssel gegenseitig signieren, also sein Vertrauen aussprechen kann. Das nennt man “Web of Trust”.

Beispiel:
A hat mir seinen öffentlichem Schlüssel persönlich übergeben – ich vertraue A voll. Wir signieren beide gegenseitig unsere öffentlichen Schlüssel.
Den öffentlichem Schlüssel von B habe ich von einem Keyserver. Da A diesen Schlüssel signiert hat, und ich diese Signatur mit A überprüft habe, weiß ich, dass Bs öffentlicher Schlüssel authentisch ist. A auch meinen Schlüssel signiert. So kann B widerum der Authentizität meiner Mail vertrauen.

Vor kurzem war zu lesen (1) , dass es gelungen ist, die Keyserver des “web of trust” in einer Kernfunktion so zu missbrauchen, dass damit deren Benutzung mit GnuPG fast unmöglich gemacht wird. Das Problem entsteht dadurch, dass Schlüssel durch die Signatur (also Vertrauensbestätigung) von Dritte an Vertraulichkeit gewinnen sollen. Deshalb können diese Signaturen aus den Schlüsseln auch nicht mehr entfernt werden. Jemand hatte aber zwei Schlüssel mit hunderttausenden von Signaturen geflutet, sodass sich diese Schlüssel in vielen Programmen nicht mehr nutzen lassen.

Auch wenn die Aktion ärgerlich ist und zu einer grundlegenden Störung des Prinzips PGP führt, ist sie zu begrüßen. Denn sie legt einen Designfehler der Software offen, der früher oder später zum Missbrauch verwendet wird.

Ob und wie das Problem in Zukunft gelöst wird, wird die Entwicklergemeinde um GnuPG jetzt überdenken müssen.

 

 

  • Pro: Ausgereiftes Programm zum verschlüsseln, entschlüsseln und signieren
  • Contra: Systembedingt komplizierte Schlüsselverwaltung und -verteilung

 

Link: