PGP - Pretty Good Privacy

von Herbert Stappler (Ausgabe 97/2, Juni 1997)

 

PGP ist das derzeit populärste und leistungsfähigste Programmpaket zur Verschlüsselung von Daten. Auch wenn es in diesem Bereich nie vollständige Gewißheit gibt, so ist es doch sehr wahrscheinlich, daß die mit PGP verschlüsselten Daten von niemandem - auch nicht von den großen Nachrichtendiensten - geknackt werden können. Der Autor von PGP, Phil Zimmermann, gilt für viele, denen ein effektiver Schutz der Privatsphäre ein Anliegen ist, als eine Art "Robin Hood der Datennetze".

PGP bietet:

  • Ver- und Entschlüsselung von Dateien und Nachrichten
  • Unterstützung von digitalen Unterschriften
  • Erstellung und Verwaltung von Schlüsseln

PGP läuft unter MS-DOS, Windows 95, Windows NT, MacOs und den wichtigsten Unix-Systemen. Für den Benutzer erscheint PGP als reines Public Key-Programm. Tatsächlich verwendet es aber zur Verschlüsselung sowohl asymmetrische (RSA) als auch symmetrische Verfahren (IDEA). Der Grund: Die Public Key-Verschlüsselung ist um einiges aufwendiger als symmetrische Verfahren; sie wird daher nur zur Verschlüsselung eines vom Programm generierten Session Key eingesetzt. Die eigentliche Nachricht wird unter Verwendung dieses Session Key mit dem (symmetrischen) IDEA-Algorithmus verschlüsselt.

Von der aktuellen Version 2.6.3 gibt es aus export- und patentrechtlichen Gründen zwei Varianten - eine für die USA und eine internationale Version, die zur Umgehung der amerikanischen Exportverbote in Norwegen zusammengestellt und gewartet wird. Für den Benutzer unterscheiden sich die beiden Versionen kaum. Sie haben denselben Funktionsumfang, sind kryptographisch gleich stark und können von der jeweiligen anderen Version erstellte Dateien verarbeiten. Die internationalen Versionen von PGP findet man am FTP-Server der Uni Wien (ftp.univie.ac.at) im Verzeichnis /security/crypt/cryptography/pgp-local/.

Für die Verwendung des Programmes PGP selbst ist keine Lizenz erforderlich. Dies gilt jedoch nicht für den in PGP verwendeten IDEA-Algorithmus, der auch in Österreich durch ein europäisches Patent geschützt ist. Dieser Algorithmus kann für private Zwecke frei verwendet werden; für den professionellen Einsatz ist aber eine Lizenz erforderlich, die von der Schweizer Firma Ascom Systec Ltd vergeben wird. Nähere Informationen kann man über deren WWW-Server erhalten (http://www.ascom.ch/Web/systec/).

PGP wird üblicherweise auf dem Arbeitsplatzrechner des Benutzers verwendet. Der Einsatz von PGP auf größeren Maschinen mit vielen Benutzern bringt so viele sicherheitstechnische Schwachstellen mit sich, daß man davon abraten muß.

Wie das Beispiel im Kasten zeigt, ist PGP ein befehlsorientiertes Programm mit einer sehr schlichten Benutzerschnittstelle. Wer grafische Benutzeroberflächen liebt, kann am WWW-Server der Universität Wien im Tucows-Archiv einige Programme finden, welche die Bedienung von PGP unter Windows ermöglichen (siehe auch Abbildung unten).

Da PGP sehr häufig zur Verschlüsselung von Nachrichten eingesetzt wird, sind für viele wichtige Mailprogramme (Pegasus Mail, Eudora, mailx, elm) Versionen oder Zusätze entwickelt worden, welche die Ver- und Entschlüsselung der Nachricht in das Mailprogramm integrieren. So kann man etwa im an der Universität Wien weit verbreiteten Mailprogramm Pegasus Mail für Windows den kryptographisch schwachen Verschlüsselungsmodus von Pegasus Mail durch PGP ersetzen. Sie finden das entsprechende Programm ebenfalls im Tucows-Archiv als "PGP Encryptor Interface for Pegasus Mail" .

Wie schon im Artikel Kryptisches: Datenverschlüsselung und ihre Einsatzgebiete erwähnt, setzt PGP auf einen informellen Austausch der öffentlichen Schlüssel. Es unterstützt keine zentralistisch organisierte Schlüsselverwaltung. Es gibt zwar Public Key-Server, wo man seine öffentlichen Schlüssel für jeden Interessenten zugreifbar speichern kann. Das Problem, daß man nicht wissen kann, ob man einem auf diesem Weg erhaltenen Schlüssel auch wirklich trauen kann, bleibt jedoch bestehen.

So funktioniert PGP

Frau Helga Maier möchte gerne PGP verwenden. Bevor man ihr Daten verschlüsselt schicken kann, muß sie zuerst einen geheimen und einen öffentlichen Schlüssel erzeugen. Sie ruft PGP mit der Option kg (generate a key) auf und muß nun einige Fragen des Programms beantworten (die Eingaben des Benutzers sind im folgenden Beispiel fett und kursiv gedruckt).

Zuerst muß sie die gewünschte Schlüssellänge und ihre PGP-UserID angeben. Als PGP-UserID kann jede beliebige Zeichenkette gewählt werden. Es hat sich aber eingebürgert, daß man seinen Vor- und Nachnamen wählt und danach, als zusätzliche Information, in spitzen Klammern die eMail-Adresse angibt. Die eMail-Adresse ist nicht mehr Teil der PGP-UserID.

Das Paßwort, das als nächstes einzugeben ist, wird in Zukunft für jeden Entschlüsselungsvorgang benötigt. So kann man verhindern, daß andere Personen, die Zugang zu dem Rechner haben, Dateien entschlüsseln können. Selbst wenn es jemandem gelingt, die Datei mit dem geheimen Schlüssel zu kopieren, so ist deren Besitz wertlos, wenn man das Paßwort nicht kennt. Wenn man seine Daten durch Verschlüsselung schützen möchte, sollte man demgemäß bei der Länge des Paßwortes nicht sparen. Im Gegensatz zu vielen Betriebssystemen, bei denen das Paßwort auf acht Zeichen beschränkt ist, existiert dieses Limit in PGP nicht. Man sollte sogar eher kurze Sätze anstelle eines einzigen Wortes gebrauchen (daher verwendet PGP auch den Begriff "pass phrase" statt "password").

Zum Abschluß des Dialogs wird man aufgefordert, eine größere Menge von beliebigen Zeichen einzutippen. PGP mißt die Zeit zwischen den einzelnen Eingaben und erzeugt daraus ein zufälliges Bitmuster, das für die Generierung der Schlüssel verwendet wird.

C:\PGP\HELGA>pgp -kgPretty Good Privacy(tm) 2.6.3i - Public-key encryption for the masses.(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-01-18International version - not for use in the USA. Does not use RSAREF.Current time: 1997/03/05 13:35 GMT

Pick your RSA key size:
1) 512 bits- Low commercial grade, fast but less secure
2) 768 bits- High commercial grade, medium speed, good security
3) 1024 bits- "Military" grade, slow, highest security
Choose 1, 2, or 3, or enter desired number of bits: 3

Generating an RSA key with a 1024-bit modulus.

You need a user ID for your public key. The desired form for this
user ID is your name, followed by your E-mail address enclosed in
<angle brackets>, if you have an E-mail address.
For example: John Q. Smith <12345.6789@compuserve.com>
Enter a user ID for your public key:
Helga Maier <helga.maier@univie.ac.at>

You need a pass phrase to protect your RSA secret key.
Your pass phrase can be any sentence or phrase and may have many
words, spaces, punctuation, or any other printable characters.

Enter pass phrase:
Enter same pass phrase again:
Note that key generation is a lengthy process.

We need to generate 888 random bits. This is done by measuring the
time intervals between your keystrokes. Please enter some random text
on your keyboard until you hear the beep:
0 * -Enough, thank you.

.......................................**** ....................................

****
Pass phrase is good. Just a moment....
Key signature certificate added.

Es entstehen 4 Dateien, darunter pubring.pgp und secring.pgp, die den öffentlichen und den geheimen Schlüssel enthalten. (Die Datei pubring.pgp enthält letztendlich nicht nur die Schlüssel von Frau Maier - hier wird sie auch die öffentlichen Schlüssel anderer Personen speichern.) Nun will Frau Maier ihren öffentlichen Schlüssel an ihre Kollegen verteilen. Mit der Option kx (extract key) kann man einen Schlüssel aus der Datei pubring.pgp holen und in einer anderen Datei - in unserem Beispiel mykey.asc - speichern. Die Option a gibt an, daß die Datei im ASCII-Format erzeugt werden soll. Man kann meistens wählen, ob PGP Dateien im ASCII-Format (es werden nur lesbare ASCII-Zeichen verwendet; die Datei ist für das Verschicken mit eMail geeignet) oder binär (Datei nicht lesbar; braucht aber weniger Speicherplatz) erstellen soll.

C:\PGP\HELGA>pgp -kxa "Helga Maier" mykey.asc

Die so im ASCII-Format erzeugte Datei mykey.asc hat das folgende Aussehen:

C:\PGP\HELGA>type mykey.asc

Type

Bits/KeyID

Date

User ID

pub

1024/FDBABF45

1997/03/05

Helga Maier <helga.maier@univie.ac.at>

---BEGIN PGP PUBLIC KEY BLOCK---

Version: 2.6.3i

mQCNAzMddzwAAAEEAMGK7F6eZcWXDJhHCGkv4LX9Z1S9uC3az1dVcoeNVL7peuKV
O1fFBzNaaAvvjBM3tj6X3JiCjtLi9jIgWVgYuKW2Yz8m6cN305lClcTpCrOOJ96R
9p/FLKW+xv8P8O6OeaUFRGq4KPLWVUberGolBs52r2QoTfVysQpj0Nz9ur9FAAUR
tCZIZWxnYSBNYWllciA8SGVsZ2EuTWFpZXJAdW5pdmllLmFjLmF0PokAlQMFEDMd
dzwKY9Dc/bq/RQEBMr8D/ibsJniPH1PO3kcSe+3Klk6RZTLwVSAaESrXemLx/MX9
K5isHjSJlusYiYtjpwX7VHelFc2MVAo/zmwMiGcz2YNm/FSWTgPLLqSDaNrcFJIQ
vVElVrt4nlXOkO1YFk301ny5cua9q/iT2iM0YqI6kZNM4LVQeOFa5HGtKz6q08eR
=e1te

---END PGP PUBLIC KEY BLOCK---

Herr Müller erhält per eMail oder Diskette die Datei mit dem öffentlichen Schlüssel von Frau Maier. Mit der Option ka (add key) kann er diesen zu seiner Sammlung von öffentlichen Schlüsseln hinzufügen. Dabei wird er von PGP darauf aufmerksam gemacht, daß die Echtheit des Schlüssels von Frau Maier noch von keiner vertrauenswürdigen Person bestätigt wurde. Er kann dies nun selbst tun oder - wie in diesem Beispiel - darauf verzichten:

D:\PGP\HERMANN>pgp -ka mykey.asc
Pretty Good Privacy(tm) 2.6.3i - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phil?s Pretty Good Software. 1996-01-18
International version - not for use in the USA. Does not use RSAREF.
Current time: 1997/03/05 14:51 GMT

Looking for new keys...
pub 1024/FDBABF45 1997/03/05 Helga Maier <helga.maier@univie.ac.at>

Checking signatures...
pub 1024/FDBABF45 1997/03/05 Helga Maier helga.maier@univie.ac.at
sig! FDBABF45 1997/03/05 Helga Maier <helga.maier@univie.ac.at>

Keyfile contains:
1 new key(s)
One or more of the new keys are not fully certified.
Do you want to certify any of these keys yourself (y/N)? N

Nun kann Herr Müller Dateien so verschlüsseln, daß diese nur Frau Maier wieder entschlüsseln kann. Herr Müller probiert das auch gleich aus. Er nimmt die aus nur wenigen Zeilen bestehende Datei crypto.txt und verschlüsselt sie mit der Option e (encrypt). Natürlich muß er dabei angeben, wer der Empfänger dieser Datei sein soll, damit für die Verschlüsselung der richtige öffentliche Schlüssel verwendet wird.

D:\PGP\HERMANN>type crypto.txt
Die Europaeische Kommission bereitet einen Vorschlag ueber eine europaweite Kryptographieregelung vor, die den einzelnen Regierungen den Zugriff auf die verschluesselten Daten gewaehrleisten soll (Nature, 28.9.1995, S. 275). Das Clipper-aehnliche Royal Holloway TTP-Based Key Escrow Scheme der britischen Information Security Group wurde im September 1995 von Ansgar Heuser (BSI) auf der Konferenz 'Trust Center' in Siegen vorgestellt.

D:\PGP\HERMANN>pgp -ea crypto.txt "Helga Maier"

Da bei der Verschlüsselung auch noch die Option a angegeben wurde, wurde die Datei crypto.asc im ASCII-Format erzeugt. Sie hat folgendes Aussehen:

D:\PGP\HERMANN>type crypto.asc
---BEGIN PGP MESSAGE---
Version: 2.6.3i

hIwDCmPQ3P26v0UBA/0QLJJO+tC3SxhqzC+IDSrM+ChVB0b1FPmEp8Rf1DzNcp03
L3/7pg1qoyH78jhjqhtfT+Gih5+zE+jjQSfBLpBLpVXfSOOl+AKg4cOWD6W4JyNf
swKpdegHgiQ8cQgSdImYMwiFoqvTwIPVrkdTDj+jCH5826tTeQQcSH4eaLYgCKYA
AAFVX4eXVyXxIoFhoc96ia3NJTKt66hnGCO6jW/BFGWYW8xiZmA6igdTrhk8Ced3
i5HoNzaHFBBn5nHuHsvy3/WnliGePih+fzn6BGQs/ahkpW3vj7D5b2phflFgIurb
cpNiJEyZWfDd2ItjrVGI9iijeFDEWUkC2NyQTaJzWHvOmNBxk2XDSnKI9qF/fbfG
/1p5Gypo88pKLQOK7ed8nD/9DYl6EUWh0dMcO8ToOIeoJPeQUe45bfxH2p4MULMd
5Ojs6elDP7RxPCc23Ymud7IkkuYrQCtNgFw6AM6uzaldgF6d9yqz7jN7VWbGv9vo
OLxtL9ZFBtjRbv9POqfIky6a/iPKFLVY+XTAuPxroGsI80Ue8iIGi2wUKwkYbef7
gvkgCrWL3tW3u9mEOdgjsUZx7z+V2T7sWagPlyfitFcL3DWf9Z2Rf6jxN7m6OzV1
cwVN9IP+TWg=

=RF18
---END PGP MESSAGE---

Frau Maier kann diese Datei unter Angabe ihres Paßwortes entschlüsseln. Sie muß dazu nur den Dateinamen angeben. Weitere Optionen sind nicht erforderlich.

C:\PGP\HELGA>pgp crypto.asc
Pretty Good Privacy(tm) 2.6.3i - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-01-18
International version - not for use in the USA. Does not use RSAREF.
Current time: 1997/03/05 15:34 GMT

File is encrypted. Secret key is required to read it.
Key for user ID: Helga Maier <helga.maier@univie.ac.at>
1024-bit key, key ID FDBABF45, created 1997/03/05

You need a pass phrase to unlock your RSA secret key.

Enter pass phrase: Pass phrase is good. Just a moment..

Herr Müller möchte jetzt noch einen Test machen. Er will einen kurzen Brief, der als Datei letter.txt vorliegt, durch seine digitale Unterschrift vor Verfälschung sichern.

D:\PGP\HERMANN>type letter.txt
Liebe Helga!
Meine neue Telefonnummer ist 471100-3478.
Hermann

Durch den Aufruf von PGP mit den Optionen s (sign file), t (use textmode for output) und a (ASCII-Format) wird eine Datei letter.asc erstellt, die die digitale Unterschrift von Herrn Müller trägt. Da zur Erstellung der digitalen Unterschrift der geheime Schlüssel von Herrn Müller verwendet wird, muß dieser zur Sicherheit sein Paßwort eingeben.

D:\PGP\HERMANN>pgp -sta letter.txt
Pretty Good Privacy(tm) 2.6.3i - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-01-18
International version - not for use in the USA. Does not use RSAREF.
Current time: 1997/03/05 15:42 GMT

A secret key is required to make a signature. You specified no user ID to select your secret key, so the default user ID and key will be the most recently added key on your secret keyring.

You need a pass phrase to unlock your RSA secret key. Key for user ID: Hermann Mueller <hermann.mueller@univie.ac.at> 1024-bit key, key ID B3EB7B29, created 1997/03/05

Enter pass phrase: Pass phrase is good. Just a moment...

Ohne die Verwendung der Option t würde der Brief auch noch verschlüsselt werden. So liegt er in Klarschrift als Datei letter.asc vor und ist durch die digitale Unterschrift gegen Veränderungen gesichert.

D:\PGP\HERMANN>type letter.asc
---BEGIN PGP SIGNED MESSAGE---

Liebe Helga!
Meine neue Telefonnummer ist 471100-3478.
Hermann

---BEGIN PGP SIGNATURE---
Version: 2.6.3i
Charset: cp850

iQCVAwUBMx2UR6bgnUyz63spAQELggQAwhcT0FmpMfYJVHs0FsvdMP8Ha37UdoRF
f+zsyFmyH/ET6pR7MgdNYG0d1H+QfCki1WITQnt8D5Z3cToKsM5ALEqepNZz6+v7
EaDIRoFZtMr8gCTQ44D3GUy3K0Ctd2j91LBcuFH83sSJxHoTG166OAEEASUu2R6+
XHzthpnGUCA=

=rtmT
---END PGP SIGNATURE---

Frau Maier hat in der Zwischenzeit den öffentlichen Schlüssel von Herrn Müller erhalten und kann so die Nachricht durch den Aufruf von PGP ohne Angabe einer Option überprüfen.

C:\PGP\HELGA>pgp letter.asc
C:\PGP\HELGA>

Ist die digitale Unterschrift in Ordnung, so erscheint - wie oben - keine weitere Meldung. Ist die Nachricht jedoch verfälscht worden oder stammt sie nicht von Herrn Müller, dann liefert PGP folgende Warnungen:

C:\PGP\HELGA>pgp letter.asc Pretty Good Privacy(tm) 2.6.3i - Public-key encryption for the masses. (c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-01-18 International version - not for use in the USA. Does not use RSAREF. Current time: 1997/03/05 15:52 GMT

File has signature. Public key is required to check signature.
..
WARNING: Bad signature, doesn't match file contents!

Bad signature from user "Hermann Mueller <hermann.mueller@univie.ac.at>". Signature made 1997/03/05 15:42 GMT using 1024-bit key, key ID B3EB7B29