GnuPG ein Programm, das primär der Verschlüsselung des Klartexts von E-Mails, Instant Messaging Chats und Kurznachrichten in Ciphertexte dient, so dass nur Sender und Empfänger einer Nachricht, die im Besitz der passenden Schlüssel sind, den Ciphertext wieder in lesbaren Klartext entschlüsseln können. Neben der Nachrichtenverschlüsselung wird GnuPG auch zur Verschlüsselung von Dateien verwendet, die zum Beispiel lokal auf der eigenen Festplatte gespeichert sind.
Darüber hinaus kann man mit GnuPG Klartexte, Dateien oder Programme mit einer digitalen Signatur versehen, um auch im elektronischen Bereich, in dem eine handschriftliche Unterschrift nicht möglich ist, die Überprüfung der Authentizität elektronisch vorliegender Texte und Daten zu ermöglichen.
Sowohl zur Verschlüsselung als auch zur Signierung setzt GnuPG mathematische Verschlüsselungsfunktionen ein - kryptografische Algorithmen, die in der Welt der Kryptografie als anerkannt sicher vor Entschlüsselung, bzw. Errechnen der originalen Daten (z. B. des Klartexts einer E-Mail) aus der verschlüsselten Form durch nicht autorisierte, dritte Parteien eingestuft werden.
Ein kurzer Blick auf die Struktur und Funktionsweise des Internets reicht aus, um sich die Notwendigkeit der Verschlüsselung und Signierung vor Augen zu führen.
Wenn eine E-Mail versendet wird, werden die Datenpakete der E-Mail zum Mailserver des Providers übertragen, von dort versendet der Mailserver die Mail an den Ziel-Mailserver des Empfängers. Dabei wird die E-Mail meistens mehrere Rechner im Internet passieren, bis sie am Zielserver ankommt. Der Mailserver des Empfängers überträgt schliesslich die E-Mail auf den Rechner des Empfängers. Während des ganzen Transportweges werden die Datenpakete stets in lesbarem Klartext übertragen.
D. h. an verschiedenen Stationen des Weges kann die E-Mail abgefangen und auch verändert werden: Auf dem Weg vom eigenen Rechner zum Mailserver, zwischen den einzelnen Rechnern während des Transportes und vom Ziel-Mailserver zum Empfänger. Verschafft sich eine Person einen illegalen Zugang zu einem der beteiligten Rechner, kann auch dort direkt die E-Mail abgefangen werden. Zu diesem Zweck gibt es spezielle Programme wie die Paket-Sniffer, mit denen Datenpakete abgefangen werden können. Die abgefangenen Pakete können auch in ihrem Inhalt verändert und wieder in den Datenstrom eingespeist werden.
Zusätzlich können Geheimdienste und Polizeibehörden aufgrund gesetzlicher Befugnisse und mit richterlicher Erlaubnis E-Mails von dem Provider, der den Mailaccount zur Verfügung stellt, zu Überwachungszwecken anfordern.
GnuPG ist wie PGP (Pretty Good Privacy) ein Verschlüsselungsprogramm, das die Spezifikationen für Pretty Good Privacy (OpenPGP) nach RFC 4880 des Internet Standardisierungsgremiums IETF (Internet Engineering Task Force) implementiert.
GnuPG bedient sich dazu wie PGP eines hybriden Verschlüsselungsverfahrens, das aus der Weitergabe eines öffentlichen Schlüssels zur Verschlüsselung und eines privaten Schlüssels zur Entschlüsselung besteht. Zur Verschlüsselung wird eine ganze Reihe symmetrischer Kryptoalgorithmen mit zwei asymmetrischen Public-Key Kryptoalgorithmen kombiniert. Zur Authentifizierung können Daten digital signiert werden. Dazu kann eine Reihe von Hashalgorithmen benutzt werden, die Prüfsummen erzeugen. Hinzu kommt die rein symmetrische Verschlüsselung.
Eine genauere Beschreibung des Konzepts und der Funktionsweise folgt auf der nächsten Seite Kryptografische Verfahren bei GnuPG, im Verlauf der GnuPG Anleitung wird aber auch darauf eingegangen.
Damit stellt GnuPG nicht nur eine der sichersten Verschlüsselungslösungen dar, sondern auch einen vollwertigen Ersatz für PGP, der sich strenger am OpenPGP Standard orientiert, aber gleichzeitig zu PGP kompatibel ist. Mit GnuPG2 können in Verbindung mit E-Mail Programmen, die GnuPG2 unterstützen, zusätzlich Verschlüsselungsfunktionen mit S/MIME / X.509 Zertifikaten genutzt werden.
GnuPG wurde Mitte der 90er Jahre von Werner Koch in Deutschland entwickelt und 1997 zum ersten Mal veröffentlicht. In der Anfangszeit trugen Keith Ray (Nullify) und der leider im Jahr 2002 bei einem Bergsteigerunglück verstorbene Janis Jagars (Disastry) mit eigenen GnuPG Versionen zur Verbreitung von GnuPG unter Windows bei.
Mittlerweile wird die Weiterentwicklung von GnuPG neben Werner Koch von einem Programmierer Team betreut, die sich für Krytografie interessieren und von einer großen Anwendergemeinde benutzt und begleitet, die auch über Entwickler- und Anwender-Mailinglisten im ständigen Austausch stehen.
Ein Grund für die Entwicklung von GnuPG dürfte in den Vorgängen rund um PGP und dessen Erfinder Phil Zimmermann liegen, die sich Mitte der 90er jahre in den USA ereigneten.
PGP wurde von dem amerikanischen Programmierer Phil Zimmermann geschrieben und im Jahr 1991 als Freeware veröffentlicht. Weil es kurz darauf von unbekannten Personen aus den USA nach Europa gelangte, wurde ab 1993 drei Jahre lang gegen Zimmermann wegen Verstosses gegen die amerikanischen Exportkontrollgesetze ermittelt, denn PGP wurde wegen seiner starken Verschlüsselung in den USA als "Waffe" eingestuft, die nicht in andere Staaten exportiert werden durfte.
Gleichzeitig gab es Mitte der 90er Jahre starke Bestrebungen seitens der U. S. Regierung und des Geheimdienstes National Security Agency (NSA), Kryptografie zu verbieten, zu reglementieren, ihre Verbreitung durch den Internetboom zu verhinden oder nur in verkrüppelter Form zu erlauben, die es Geheimdiensten ermöglicht hätte, jedes verschlüsselte Datum im Nachhinein zu entschlüsseln. So war z. B. ein Bestandteil des amerikanischen "Capstone" Programms der Clipper-Chip, mit dem die NSA Verschlüsselung mit einer Hintertür ("Backdoors") für Geheimdienste durchsetzen wollte.
Eine weitere Gefahr ging Mitte der 90er Jahre von der Key Recovery Idee aus, als deren Urheber das den US-Geheimdiensten nahestehende Unternehmen Trusted Information Systems (TIS) gilt und die von amerikanischen und japanischen IT-Konzernen als vorbeugende Antwort auf die staatlichen Versuche der Kryptoregulierung verfolgt wurde.
Zu diesem Zweck hatten sich die Unternehmen im Oktober 1996 im Key Recovery Alliance (KRA) Verband organisiert. Der Verband, zu dem u. a. AOL, Compaq, Apple, DSI, Entrust, Fujitsu, Hewlett-Packard, IBM, Mitsubishi, Motorola, NEC, Novell und VeriSign gehörten, hatte sich zum Ziel gesetzt, die Entwicklung, Implementation und den Aufbau einer globalen Infrastruktur von Technologien zu fördern, die es dritten Parteien ermöglicht, über Key Recovery (Möglichkeit einer dritten Partei den geheimen Schlüssel wiederherzustellen) und Key Escrow (Hinterlegung des geheimen Schlüssels an zentraler Stelle) verschlüsselte Daten zu rekonstruieren.
Die KRA stimmte damit mit der Politik der US-Regierung überein, den Export starker Kryptografie zu verbieten oder zu verhindern, es sei denn, sie beinhaltet Vorkehrungen (Backdoors), die es amerikanischen Geheimdiensten ermöglicht hätte, die verschlüsselten Daten wiederherzustellen. Gleichzeitig versucht sie, einem staatlich vorgeschriebenen, zwingendem Key Recovery ("mandatory key recovery") durch ein marktwirtschaftlich begründetes Key Recovery zuvorzukommen.
Neben den technischen stellte die KRA auch politische Überlegungen zu einem staatlichen Key Recovery Szenario an. Die KRA meinte, dass die Politik Key Recovery Gesetze verfassen muss, die festgelegt hätten:
Als PGP.inc im Dezember 1997 an Network Associates (NAI) verkauft und PGP Security wurde, war NAI bereits Mitglied der KRA, verkündete aber ein paar Tage nach dem Kauf von PGP.inc den Austritt aus der KRA. Drei Monate später kaufte NAI das aktive Gründungsmitglied der KRA TIS und trat im November 1998 der KRA wieder bei. Danach wurde die Mitgliedschaft nicht mehr verlängert.
Die Umsetzung der Absichten der Geheimdienste in internationale Vereinbarungen und Standards zur staatlichen Reglementierung und Durchsetzung von Kryptografie, die den Geheimdiensten genehm ist, konnte aufgrund einer internationalen Gegenbewegung und der offensichtlichen Bedeutung der Kryptografie für den beginnenden "E-Commerce" Ende der 90er Jahre gestoppt werden.
Das Resultat der Gegenbewegung bestand in Deutschland aus der Veröffentlichung der Eckpunkte der deutschen Kryptopolitik des Bundesministeriums des Innern und des Bundesministeriums für Wirtschaft und Technologie.
Die Exportrestriktionen, die es auch nicht erlaubten, die PGP Version 5.0 in elektronischer Form ohne Lizensierung seitens der amerikanischen Regierung aus den USA zu exportieren, führten zur Gründung des PGP International Projektes, an dem u. a. Stale Schumacher beteiligt ist, das den Quelltext von PGP 5.0 in Buchform - was legal war - aus den USA exportierte und von 1997 bis 1999 aus dem eingescannten Quellcode die internationalen Versionen von PGP kompilieren musste und den Quellcode zur Verfügung stellte. Ein Jahr zuvor hatte Stale Schumacher bereits PGP 2.6.3i veröffentlicht, das auf PGP 2.6.2 basierte. Noch heute ist die International PGP Home Page eine der bekanntesten Anlaufstellen für PGP Interessierte.

Mit PGP hat GnuPG gemeinsam, dass der Quellcode des Programms frei verfügbar und deshalb für jeden zu kontrollieren ist, im Gegensatz zu PGP wird er aber, wie oben beschrieben, durch eine offene Entwicklergemeinde gepflegt und unterliegt der GPL (GNU General Public License), d. h. GnuPG wird immer frei von patentrechtlich geschützten Verfahren und Algorithmen sein und jeder kann den Quelltext ohne einschränkende, kommerzielle Lizenzbestimmungen, aber nach den Prinzipien der GPL, frei verwenden.
In Bezug zum Verkauf von PGP an NAI, dem Stop der Veröffentlichung des PGP Quellcodes nach PGP 6.5.8 bis PGP 8.0 und der Einstellung von PGP durch NAI merkte P. Zimmermann 2002 in dem Salon Artikel "Pretty geeky privacy" an:
Im Rahmen des Projektes zur Weiterentwicklung und Vermarktung des GNU Privacy Guards (GnuPG) wurde im November 1999 der Entwicklergruppe, bestehend aus dem German Unix User Group (GUUG) e.V., der G-N-U GmbH, LinuxLand International, dem DFN-PCA-Projekt und Werner Koch Softwaresysteme durch das Bundesministerium für Wirtschaft und Technologie eine Förderung in Höhe von 318.000 DM zuerkannt.
Die Unterstützung sollte der Förderung von Open Source in Deutschland dienen, aber auch, um GnuPG mit einer grafischen Benutzeroberfläche auszustatten, so dass langfristig gesehen ein vollwertiger Ersatz zum kommerziellen PGP bestehen würde. Aus dieser Förderung war das GnuPP (GNU Privacy) Projekt und Paket hervorgegangen.
Mittlerweile wurde die Förderung seitens des Ministeriums eingestellt und daraufhin die weitere Pflege des GnuPP Pakets beendet.
Ab 2005 wurde die Arbeit am Gpg4win Projekt aufgenommen, auf dessen Installationspaket ebenfalls in dieser Anleitung eingegangen wird.
Ein Anwender, der GnuPG auch grafisch bedienen und mit grafischen Anwendungen für Internetdienste einsetzen möchte, benötigt:
Der GNU Privacy Guard, abgekürzt GnuPG oder GPG, an sich ist ein eigenständiges Kommandozeilenprogramm, das man in der Konsole ausführt und über Kommandos, Kommandoargumente und Optionen, die man in der Konsole eintippt, manuell bedient. Die Optionen können auch in der GnuPG Konfigurationsdatei gpg.conf hinterlegt werden, um Grundlagen, Präferenzen und Funktionen dauerhaft festzulegen.
Für Anwender, die eine grafische Bedienung und Nutzung von GnuPG bevorzugen, existieren verschiedene GUIs (grafische Benutzer-Interfaces) und grafische Internetapplikationen, die GnuPG direkt oder indirekt über Plugins einbinden - dazu mehr im Verlauf der Anleitung. Trotz der Existenz der GUIs kann es vorkommen, dass man GnuPG in der Konsole bedienen muss. Dafür stellt die Anleitung eine Übersicht der wichtigsten Kommandos bereit.
GnuPG steht als Quellcode, den man selbst kompiliert oder als vorkompiliertes Programm für verschiedene Plattformen ("Binaries") wie Linux, Windows, Mac OS oder RISC OS zum Download zur Verfügung.
Momentan gibt es diese GnuPG Linien:
Diese Anleitung geht von GnuPG Version 1.X aus.
Für Entwickler, speziell von E-Mail Applikationen, wird die GPGME Bibliothek bereit gestellt.
Die Bibliothek liefert eine High-Level Crypto API für Verschlüsselung, Entschlüsselung, Signierung, Signaturprüfung und Schlüsselmanagement.
Anwender von GnuPG müssen die GPGME Bibliothek installieren, wenn sie eine Applikation zum Schlüsselmanagement oder einen E-Mail Client einsetzen, der GnuPG über die GPGME Schnittstelle einbindet. Das ist z. B. beim E-Mail Client Sylpheed und bei den GnuPG GUIs GPA und Seahorse der Fall.
Da die Hauptanwendung von GnuPG wie bei PGP die Verschlüsselung von Nachrichten ist, ein paar Worte zu E-Mail Clients. Je nach verwendetem Betriebssystem und eingesetztem E-Mail Client kann der E-Mail Client GPGME nutzen, die Unterstützung von GnuPG kann auch direkt in den E-Mail Client eingebaut oder über ein eigenes Plugin System der E-Mail Client Programmierer realisiert sein oder es gibt Plugins von Drittanbietern. Oder aber es gibt gar keine Unterstützung von GnuPG, wo in diesem Fall der Anwender z. B. die E-Mails extern in einer GnuPG Applikation verschlüsseln und per Copy & Paste in den Nachrichteneditor seines Clients einfügen lässt.
Es kann also keine allgemeine Aussage getroffen werden, welchen E-Mail Client ein Anwender auf welcher Plattform nutzen sollte.
Es gibt aber die Seite sichere E-Mail-Clients mit PGP/MIME, auf der in einer Tabelle ersichtlich ist, welche E-Mail Clients auf welchem Wege GnuPG unterstützen. Eine kleine Zusammenfassung für einige E-Mail Clients steht auch unter Anhang 5: Populäre E-Mail Clients mit GnuPG Unterstützung.
Wenn man das Management seiner Schlüsselringe und der Schlüssel nicht manuell über die Kommandozeile durchführen möchte, kann man verschiedene grafische Shells verwenden, die teilweise ein installiertes GnuPG voraussetzen. Möchte man die Funktionsweise von GnuPG über die Standardeinstellungen hinaus beeinflussen, ist auch die Kenntnis der wichtigsten GnuPG Optionen notwendig, die man in der GnuPG Konfigurationsdatei gpg.conf setzen kann, da die Shells diese Konfigurationsdatei auswerten. Die meisten Shells bieten neben der Schlüsselverwaltung weitere Funktionen, über die man Dateien und Texte von GnuPG signieren, ver- und entschlüsseln lassen kann.
Hier ein paar Beispiele für Linux und Windows:

Einige Anwendungen des WinPT Trays von oben nach unten:
Im Hintergrund der WinPT Schlüsselmanager, ein Text im Notepad, der signiert im WinPT Zwischenablageeditor zu sehen ist, davor der WinPT Dateimanager, mit dem gerade eine Datei verschlüsselt wurde. Im Vordergrund das WinPT Systrayicon mit Kontextmenü.
Weitere Information zu WinPT in Der WinPT Tray des WinPT Pakets.

Einige Anwendungen der GPGshell von oben nach unten:
Im Hintergrund der GPGkeys Schlüsselmanager, davor der GPGtray Zwischenablageeditor, darunter die GPGtools Leiste, über die man lokale Dateien mit GnuPG bearbeitet, daneben das Kontextmenü des GPGtray Systrayicons.
Weitere Information zur GPGshell in Die GPGshell und ihre Komponenten.
Der GNU Privacy Assistant (GPA) ist ein GUI, das auf den unter Linux gebräuchlichen GTK (The Gimp Toolkit) Grafikbibliotheken und GPGME basiert. Die Windowsversion ist im Gpg4Win Paket enthalten.


Seahorse ist ein GTK / Gnome Manager für den GnuPG Schlüsselring.
Benötigt GPGME 1.X.


Ein weiteres GUI für Linux ist der GnuPG Manager Kgpg, für die Desktopumgebung KDE entwickelt und in jeder KDE Version fester Bestandteil. Wie beim GPA können neben der Schlüsselverwaltung auch GnuPG Aktionen mit Dateien und Texten durchgeführt werden.

Weitere GUIs für Linux, Windows und Mac OS X finden sich auf der Frontends Seite, auf der auch Internet Applikationen aufgelistet sind, die GnuPG direkt, per Script, per Plugin oder GUI unterstützen.
Neben GnuPG gibt es eine Reihe weiterer Anwendungen und Methoden, die mittels Kryptografie zum Schutz lokaler Daten oder zum Schutz von Daten und Informationen, die über das Internet transportiert werden, beitragen.
Unter Windows ist für die Verschlüsselung lokaler Daten das Open Source Programm TrueCrypt zu nennen, das unter den Bedingungen der TrueCrypt Lizenz frei verfügbar ist. Mit TrueCrypt kann man verschlüsselte Containerdateien, Festplattenpartitionen, USB-Sticks und Disketten erstellen. Eine Containerdatei ist im Gegensatz zu einer Partition eine Datei, in der andere Dateien verschlüsselt abgelegt werden. Die Containerdatei wird von TrueCrypt nach der Entschlüsselung als virtuelles Laufwerk eingebunden. TrueCrypt verwendet wahlweise die symmetrischen Algorithmen Twofish, AES-256, Serpent, Blowfish-448, CAST5 oder Triple-DES. Als Hash-Algorithmen stehen Whirlpool, RIPE-MD/160 oder SHA-1 zur Verfügung.
| Siehe auch F!XMBR / Chris - TrueCrypt-Anleitung (mit Partition) F!XMBR / Chris - TrueCrypt-Anleitung (mit verstecktem Container in TC-Containerdatei) F!XMBR / Chris - TrueCrypt-Anleitung (Verwenden von Schlüsseldateien) |
Unter Unix / Linux ist für die Verschlüsselung lokaler Daten dm-crypt zu nennen. Mit den dm-crypt Tools, der bestehenden Kernel CryptoAPI ab 2.6 und device-mapper werden bestehende Block Devices oder das Loop Device auf ein virtuelles dm-crypt Device gemappt und darüber verschlüsselt. Zur Verfügung stehen alle symmetrischen Algorithmen und Hashalgorithmen, die Bestandteil der CryptoAPI sind. Bei einigen Distributionen ist die Verschlüsselung per dm-crypt automatisch integriert.
Für die Verschlüsselung von "Telefonaten" per IP-Telefonie (VoIP) hat Phil Zimmermann, der Erfinder von PGP, in Zusammenarbeit mit Alan Johnston und Jon Callas das Zfone / ZRTP Verschlüsselungsprogramm und -protokoll für VoIP Softphones und Hardware-Telefone entwickelt.
Das ZRTP (Extensions to RTP for Diffie-Hellman Key Agreement for SRTP) Protokoll basiert auf dem offenen SIP (Session Initiation Protocol) und RTP (Real-Time Transport Protocol) Standard.
Mit ZRTP wird per RTP und Diffie-Hellmann Schlüsselaustausch (mit 3072- / 4096-bit Schlüsseln) ein gemeinsamer Sitzungsschlüssel (mit AES-128 / -256) zwischen den Kommunikationspartnern ausgehandelt. Anschließend wird mit dem Schlüssel eine verschlüsselte SRTP (Secure Real-time Transport Protocol) Verbindung aufgebaut. Im Gegensatz zum geschlossenen und propietären Verschlüsselungsverfahren bei Skype und anderen VoIP Angeboten ist ZRTP Protokoll quelloffen und wurde bei der IETF als Standard vorgeschlagen.
| Siehe auch rabenhorst - Spielen mit Gizmo und Zfone. |