Referat zu Pretty Good Privacy

Eine Einführung von Grischa Brockhaus

Einleitung

Was vielleicht nicht jeder weiß: Das Internet besteht nicht nur aus dem World Wide Web, also der bekannten "weltumspannende Click Fläche", sondern auch aus Mailtransfer. So gibt es News Bretter, die allgemein zugänglich und lesbar sind, und privaten Mailverkehr.

Wenn wir den privaten Mailverkehr mit herkömmlicher Mail vergleichen wollen, ist der Vergleich zur Postkarte allerdings leider treffender als der zum Brief im Umschlag. Private Mails können theoretisch von allen Systemen gelesen werden, durch deren Hände die private Mail geht. Und das können einige sein ! Wenn wir also Mails mit geheimen Inhalt versenden oder einfach nur unsere Privatsphäre gesichert wissen wollen (Stichwort: Datenschutz), so müssen wir "die Postkarte" in einen Umschlag stecken und erst danach verschicken.

Bei Mails haben wir nun die Möglichkeit einen "Umschlag" zu erstellen, der sogar noch besser ist, als der herkömmliche Umschlag. Es ist ein Umschlag, der von jedem beliebigen Absender kostenlos erstellt aber wirklich nur vom Addressaten geöffnet werden kann. Ein Postamt (Internet-Server), über das dieser Brief verschickt wird, hat keine Chance, diesen Brief zu öffnen.

Dieser sichere Umschlag, auf den ich hier anspiele, ist bekannt geworden unter dem Begriff "Pretty Good Privacy" (dtsch: "Recht gute Privatsphäre") oder unter der Abkürzung PGP.


Was ist PGP ?

Pretty Good Privacy (PGP) stellt ein besonders sicheres Verschlüsselungs- und Verifikations-System für Mails, Texte und Dateien zur Verfügung, das von Philip Zimmermann (meines Wissens 1990) entwickelt wurde. Es ist kostenlos für jedermann einsetzbar und wurde auf viele Plattformen portiert. PGP ist verfügbar für MSDOS, OS/2, Unix, VAX/VMS und auf vielen anderen Computern. Ein gesicherter Austausch von Mails auf verschiedenen Computer Typen ist also kein Problem.


Warum sollte ich PGP benutzen ?

"...Leute, die ihre Mails verschlüsseln, müssen irgendwie illegale Ziele verfolgen..."

Wenn Du auch dieser Meinung bist, dann ist PGP wahrscheinlich nichts für Dich. Wenn Du aber Deine Steuererklärung ungerne auf einer Postkarte verschicken oder Deinen letzten AIDS Test an ein schwarzes Brett hängen würdest, wenn Du also Datenschutz, Briefgeheimnis und Privatsphäre groß schreibst, dann dürfte PGP Dich sehr interessieren.

Denn Deine private Mail ist von vielen Leuten lesbar und nicht nur von der Person, an die Du diese private Mail geschrieben hast. Um das zu verhindern wurde PGP entwickelt. Es kostet Dich nichts und gibt Dir eine maximale Sicherheit, wenn Du es mit Bedacht einsetzt.

Anmerkung: Alleine schon, um die obige Meinung auszumerzen, solltest Du Deine privaten Mails wo es nur geht mit PGP verschlüsseln. Im normalen Briefverkehr ist das Briefgeheimnis eine Selbstverständlichkeit. Stelle Dir vor, es gäbe die Meinung, jeder der keine Postkarte schreibt, würde illegale Geheimnisse verbergen wollen... Ein ähnliches Image haben leider oft immer noch PGP verschlüsselte Mails.


Herkömmliche Verschlüsselung mit einem Key

Stelle Dir vor, Du willst einen Mailaustausch mit einer anderen Person aufnehmen, der vor den Augen dritter geschützt sein soll. Du verschlüsselst also Deine Mail für den Empfänger mit einem beliebigen Code (Privater Key, zum Beispiel der Schlüssel einer XOR Verschlüsselung). Der Empfänger dieser Mail benötigt nun diesen privaten Key, den Du schon zum Verschlüsseln benutzt hast, um die Mail wieder entschlüsseln und lesen zu können. Im speziellen heißt das, daß jede Drittperson, die in den Besitz dieses Keys kommt, sowohl verschlüsseln wie auch entschlüsseln kann.

Verschlüsseln mit einem (privatem) Key, symmetrische Chiffrierung:
(Sowohl Absender wie auch Empfänger können ver- und entschlüsseln)
Sender 
(Benutzt einen Key zum Verschlüsseln)
Empfänger 
(Benutzt den gleichen Key zum Entschlüsseln)
 

Dazu muß der Sender mit dem Empfänger vor dem Mailverkehr direkt oder auf einem sonstigen gesicherten Weg Kontakt aufnehmen, um ihm mindestens den privaten Key zu geben. Dies wäre also machbar in einem Mail Verkehr, der sich nur auf 2 Personen bezieht. Allerdings stellt sich bereits dort die Frage, warum man die Mails noch verschlüsseln muss, wenn sowieso schon ein gesicherter Weg zwischen den beiden Personen verfügbar ist.


Mails mit PGP verschlüsseln

Will man allerdings einen verschlüsselten Mailverkehr mit vielen verschiedenen und normaler Weise sogar unbekannten Personen einrichten, so ist es unmöglich mit einem einzigen privaten Key zu arbeiten. Aus diesem Grunde arbeitet PGP mit einem Keypaar:

Es wird ein geheimer privater Key und ein öffentlicher Key erstellt. Verschlüsselungen mit diesem Keypaar sind so realisiert, daß eine Datei oder Mail, die mit dem einen Key erstellt wurde nur mit dem anderen Key wieder entschlüsselt werden kann. Das heißt, alle Mails, die mit dem öffentlichen Key erstellt wurden können nur mit dem privaten Key wieder entschlüsselt werden. Selbst mit dem öffenltlichen Key kann die Mail nicht wieder entschlüsselt werden.

Verschlüsseln mit einem Keypaar, asymmetrische Chiffrierung:
(Nur der Empfänger kann entschlüsseln)
Absender 
(Benutzt den öffentlichen Key des Empfängers zur Verschlüsselung)
Empfänger 
(Eigner des Keypaares)
 

Daraus ergeben sich die gewünschten Konsequenzen:

Man erstellt sich das Keypaar aus privatem und öffentlichen Key. Den öffentlichen Key verbreitet man möglichst weit (Es gibt extra Keyserver, auf denen öffentliche PGP Schlüssel abgelegt werden können). Man benötigt für die Verbreitung des öffentlichen Keys keine gesicherten Kanäle mehr, da man mit dem öffenltichen Key nicht auf den privaten Key schließen kann (diesen nicht reproduzieren kann). Den privaten Key hält man bei sich unter Verschluß.

Wenn Dir jetzt jemand eine verschlüsselte Mail schicken will, so besorgt er sich Deinen öffentlichen Key (z.B. von einem Keyserver) und verschlüsselt die Mail mit diesem Key. Der einzige, der diese Mail nun entschlüsseln kann ist der, der den zweiten Key des Paares -also den privaten- hat. Das bist aber (hoffentlich) nur Du selber, wenn Du Deinen privaten Key gut unter Verschluß hälst.


Mails mit PGP unterschreiben

Eine weiter Möglichkeit, die man mit PGP hat, ist das untschreiben seiner Mail. (Signaturen)

Wenn ich eine Mail bekomme, dann ordne ich sie einer Person zu, die der Absender vermuten läßt. Ich kann aber nicht 100% sicher sein, daß diese Mail tatsächlich von der vermuteten Person kommt. So ist es gerade in den öffentlichen News Brettern leicht möglich, unter falschem Namen Nachrichten zu verfassen, die den Ruf des vermuteten (aber falschen) Absenders schnell schädigen könnten.

Aus diesem Grund kann man mit PGP seine Mail auch unterschreiben. Für diesen Zweck wird das Keypaar nun umgekehrt eingesetzt.

Wir erinnern uns: Was der eine Key verschlüsselt kann nur der andere wieder entschlüssen. Außerdem kann ein Key des Paares nur Verschlüsselungen seines Partnerkeys entschlüsseln.

Der Absender erstellt nun also aus der zu unterschreibenden Mail einen Code mit seinen privatem Key. Dieser Code wird für jede Mail anders sein, da er abhängig vom Inhalt der Mail ist. Er kann aber von allen Besitzern des öffentlichen Keys wieder entschlüsselt werden. Da es sich aber um ein Keypaar handelt, kann der öffentliche Key auch nur Unterschriften entschlüsseln, die mit dem passenden privaten Key erstellt wurden. Unterschriften, die mit einem anderen Key erstellt wurden, wird der öffentliche Key also leicht als falsch identifizieren können. Ebenso erkennt er, ob die Mail nachträglich verändert wurde, weil die Unterschrift nicht nur Key- sondern eben auch Mailinhaltsabhängig ist

Absender 
(Unterschreibt mit seinem privaten Key)
Empfänger 
(Überprüft mit dem öffentlichen Key des Absenders)
Diese Möglichkeit der Unterschrift mittels PGP ist sogar noch erheblich sicherer als die herkömmliche Unterschrift unter Briefen, die ja leicht gefälscht werden kann. Eine PGP Unterschrift kann man jedoch nicht reproduzieren, wenn man nicht in Besitz des privaten Keys gelangt.


Dateien mit PGP unterschreiben

Eine weitere interessante Möglichkeit der PGP Unterschrift ist das "unterschreiben" von Dateien. Der einzige Unterschied hierbei ist, daß die Unterschrift nicht unter die Mail (also in die Datei selber) gesetzt wird, sondern in einer seperate Datei gespeichert wird.

Dies wird z.B. gerne von Herstellern von Antiviren Software benutzt, die öffentlich (z.B. über das Internet) verbreitet wird. Diese Software ist sehr Veränderungs-sensitiv. Da die Software öffentlich verbreitet wird, könnte ein Angreifer sie sich nehmen, so verändern, daß sie seinen Virus nicht mehr findet und dann weiter verteilen. Der gutgläubige Anwender kann diese Veränderung nicht erkennen und verläßt sich fälschlicher Weise auf die Sicherheit der Software.

Hat er sich jedoch einmal einen öffentlichen Key besorgt, der gesichert von dem Autor der Software kommt, so hat er eine Möglichkeit 100%ig festzustellen, ob die Software noch in dem Zustand ist, in der der Hersteller sie ausgeliefert hat. Der Hersteller muß zu diesem Zweck dann natürlich immer so eine separate Unterschrift zu jeder Datei dem Distributions Archiv hinzufügen.


Wie sicher ist PGP ?

Ich werde hier nicht auf Details der Verschlüsselungsroutinen eingehen, sondern nur versuchen einen Eindruck der Sicherheit von PGP zu vermitteln.

PGP ist ein hybrides Verschlüsselungssystem, daß aus 4 Verschlüsselungselementen besteht: Einer symmetrischen Chiffrierung (IDEA), einer asymmetrischen Chiffrierung (RSA), einem Hashtable (MD5) und einem Zufallsgenerator.

Es gibt keine bekannte Methode, den IDEA Algorythmus zu umgehen. Man könnte ihn therotisch durch ausprobieren aller möglichen Schlüssel herausfinden. Dafür würde man allerdings mit einer Billion von Chips von einer Power, die heutzutage nicht vorstellbar ist (er müsste 1 Billion Keys in einer Sekunde ausprobieren können), länger brauchen, als es dauerte, das Universum entstehen zu lassen (10,000,000,000,000 Jahre).

Die Unbekannte Konstante in der Sicherheit von PGP ist die RSA Verschlüsselung. Die RSA Verschlüsselung stellt das Keypaar aus einer Berechnung mit sehr großen Primzahlen her, auf die ich nicht genauer eingehen werde. Die Unsicherheit besteht darin, daß man nicht nicht weiß, ob es einen effizienten Weg geben wird, sehr große Teiler zu berechnen, oder ob RSA selber eine Hintertür im Algorythmus hat, die es möglich macht, das Berechnen der großen Teiler zu umgehen. Selbst wenn es diesen Algorythmus nicht gibt, wird davon ausgegangen, daß RSA der schwächste Teil des PGP Systems ist. (Anm.: Da die PGP bzw. RSA Quelltexte öffentlich zugänglich sind und von vielen versierten Informatikern schon überprüft wurden, ist die Wahrscheinlichkeit der unbekannten Hintertür im Code sehr unwahrscheinlich)
 

Das "RSA-129" Projekt

Als RSA 1977 vorgestellt wurde, wurde ein kleiner Text mit einem 129 Zahlen Key verschlüsselt. Der Text und der private Schlüssel, der zum Verschlüsseln benutzt wurde, wurden veröffentlicht mit dem Angebot, demjenigen 100$ auszuhändigen, der den Text unverschlüsselt abliefern würde. Dieser Wettbewerb wurde "RSA-129" bezeichnet.

Vor kurzem stellte ein internationales Team den dazu gehörenden öffentlichen Key her und entschlüsselten damit die Mitteilung von damals ("THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE"). Dazu wurden allerdings eine riesige Menge an Freiwilligen, die über das Internet koordiniert wurden, herangezogen, um Teilaufgaben des Problems zu lösen. Es waren ca. 1600 Computer beteiligt, die in Ihrer Leistung von der normalen FAX Maschine bis hin zu Cray Supercomputern lagen. Dieses Projekt dauerte ca. 8 Monate.

Was hat dies mit PGP zu tun ? Dieser RSA-129 Key entspricht ca. einem 426 Bit PGP Key. Ein minimaler PGP Key ist aber 512 bit lang, meistens wird ein doppelt so langer Key benutzt (was die Berechnungszeit nicht etwa nur verdoppelt!). Und die Berechnung dieses einen Keys brachte keine Rückschlüsse über irgendwelche anderen RSA Keys, die Berechnung würde für einen leicht modifizierten Key komplett neu gemacht werden müssen. 


Sicherheits Risiken

Wie schon dargestellt, ist PGP selber extrem sicher. Sicherheitslücken können aber beim unüberlegten oder unerfahrenen Einsatz von PGP auftreten:
 

Zweifelhafte Herkunft von öffentlichen Keys

Das ganze PGP Verfahren beruht darauf, daß die Allgemeinheit einen korrekten öffentlichen Key besitzt, der sicher einer bestimmten Person zugeordnet wurde. Genau hier sind die besten Ansatzmöglichkeiten für einen Angreifer, einen PGP gesicherten Kanal auszuhebeln.

Bei jedem öffentlichen Key, den Du bekommst mußt Du daran denken, daß er evtl. nicht von der Person erstellt wurde, von der er zu kommen scheint. Jeder kann PGP Keys auf beliebige Namen ausstellen. Wenn Du also einen öffentlichen Key einfach aus eine Mailbox oder dem Internet (Keyserver) holst, so kannst Du erstmal überhaupt nicht sicher sein, daß er wirklich von der Person erstellt wurde, die der Key als Besitzer ausgibt.

Eine (und gleichzeitig die beste) Möglichkeit, den Ursprung eines öffentlichen Keys zu sichern, ist natürlich, den Key persönlich bei seinem Eigner abzuholen. Da dies nicht immer möglich ist, könnte man auch eine dritte Person, der man vollkommen vertraut, mit der Abholung des Keys beauftragen.

Für letzteren Vorgang bietet PGP einen Automatismus. Man kann öffentliche Keys unterschreiben. Man unterschreibt Keys, von denen man (mindestens!) 100%ig überzeugt ist, daß sie vom Urheber stammen. Man sollte also z.B. seinen eigenen öffentlichen Key auf jeden Fall unterschreiben.

Außerdem kannst Du PGP sagen, welche Personen Du als vertrauenswürdig einstufst. Findet PGP einen neuen öffentlichen Key, der von einer vertrauenswürdigen Person unterschrieben wurde, so sieht PGP den Key dann automatisch als okay an. Außerdem kann man PGP noch sagen, von wievielen "relativ" vertrauenswürdigen Personen ein Key unterschrieben worden sein muß, damit er automatisch als okay angesehen wird.

Auf diesem Wege lassen sich so genannte "Vertrauensketten" aufbauen. Je mehr vertrauenswürdige Unterschriften unter einem öffentlichen Key sind, um so besser einsetzbar ist er später von der Öffentlichkeit.



Die Links zu diesem Referat passe ich ab und an noch an, z.B. habe ich gerade wieder ein paar nicht mehr existente Links ausgetauscht und neue für PGP 5.x hinzugefügt.

News

[28.04.97] CCC Presseerklaerung zu Kanthers Vorschlag zum Cryptoverbot

Interessante PGP Links

Allgemein zu PGP:
Dieses Referat als HTML + GIF's downloaden
(neu) Dieses Referat im MobiPocket Format für den Palm downloaden
Untersuchung von eMailer auf PGP Unterstützung
PGP User's Guide Volume I (englisch)
PGP User's Guide Volume II (englisch)
Undokumentierte PGP Kommandos

Keyserver zum veröffentlichen Deines Keys und zum besorgen anderer:
PGP-Public-Keyserver: UniGH Paderborn
PGP Public Key Server DFN

Trustcenter (Unterschriften für Deinen PGP Key):
c't Kryptokampagne
PGP Trustcenter
PGP Trustcenter Infos

Steganography:
STEALTH:PGP-Head Remover/Tarner
STEGO:BIN->TXT Krypter
EZSTEGO:Java-Proggi ( BIN->GIF )
StegoDOS ...
MandelSTEG ...
Stegography-Tools, Pretty Good Envelope, Mandelsteg, Hide and Seek
 

PGP 2.6.3in saugen (mein Bevorzugter!)

DOS Real Mode Version
DOS Protected Mode Version
OS/2 Version

PGP neueste Version saugen

PGP internationale Version saugen
PGPi Versionen auf der TU Berlin
PGP 5.x für OS/2 saugen (nicht offizielle Site!)
©1996-99 by Grischa Brockhaus.
seit 20.Nov.96