Wie funktioniert PGP ? Public und Private Key PGP 5 Wie in der Einleitung schon besprochen setzt sich die Verschlüsselung bzw. Entschlüsselung von PGP aus zwei Keys zusammen, dem Public- und dem Private Key.Was ist darunter zu verstehen und wie arbeiten diese beiden Schlüssel zusammen? Jeder Anwender erzeugt ein Schlüsselpaar, das zur Verschlüsselung und Entschlüsselung von Nachrichten dient. Jeder Anwender legt einen der beiden Schlüssel in ein für alle zugängliches Depot oder verteilt ihn z.B. im Anhang seiner eMails. Dies ist der öffentliche Schlüssel oder Public Key. Der dazugehörige private Schlüssel (Private Key) wird beim Anwender verschlossen verwahrt. Wenn Fred eine private Nachricht an Barney schicken möchte, verschlüsselt Fred die Nachricht mit Public Key von Barney, den er vorher von ihm bekommen hat. Wenn Barney die Nachricht erhält, entschlüsselt er sie mit seinem persönlichen Schlüssel. Kein anderer Empfänger kann diese Nachricht entschlüsseln, weil nur Barney seinen persönlichen Code kennt. -------------------------------------------------------------------------------- Wie erstelle ich mein Schlüsselpaar ? Sie haben PGP installiert und die entsprechenden Angaben in die AUTOEXEC.BAT eingetragen. Geben Sie nun in der DOS-Box oder in der Ausführen-Aufforderung folgendes ein: pgp -kg Daraufhin erscheint ein Menü bei dem Sie zwischen 3 Schlüsselgrößen wählen können: 512bit, 768bit und dem "militärischen" 1024bit Key. Je größer der Key gewählt wird, desto langsamer arbeitet allerdings auch die Verschlüsselung, was allerdings auf heutigen 133 MHz aufwärts CPUs kein wirkliches Problem darstellt. Wir wählen z.B. die 3 Nachdem Sie die gewünschte Auswahl getroffen haben und mit Return bestätigten, werden Sie nach dem gewüschten ID gefragt, also dem Namen Ihres Keys. Für unser Beispiel oben, wäre das z.B. BARNEY. Sinnvoll wäre es auch gleich die eMail Adresse mit einzubinden, was dann wie folgt aussehen würde: BARNEY barney@steintal.de Jetzt müssen Sie ein persönliche Passwort eingeben. Besser ist allerdings ein Satz oder einfach eine Zeichenkette, die aus allen druckbaren Zeichen bestehen kann und auch sollte. Wir wählen für unser Beispiel: Wilma, was gibt's heute auf den Tisch? PS: Die Passworteingabe wird nicht angezeigt!!! Ist also kein Fehler! Jetzt müssen Sie noch einige beliebige Wörter schreiben. Durch die Pausen zwischen den Anschlägen, wird nochmals eine Sicherheit geschaffen, indem diese gemessen und in den PGP-Key mit eingebaut werden. So, hiermit ist das Schlüsselpaar für Barney erstellt und es sind jetzt zwei Dateien im Verzeichnis C:\PGP vorhanden: secring.pgp und pupring.pgp. Die secring.pgp sollte immer an sicherer Stelle aufbewahrt und bei z.B. längerer Abwesenheit aus der PGP-Datei gelöscht und auf eine Diskette kopiert werden. Der Public Key zur Weitergabe für Barney ist in der pubring.pgp Datei enthalten und muß jetzt erst noch aus dem Schlüsselbund (Pubring) ausgelesen werden, dazu folgendes Kommando: pgp -kxa publickey Dies bewirkt, daß der Publickey aus dem Schlüsselbund in die Datei publickey.asc im ASCII Format extrahiert wird (natürlich kann die Datei auch jeden anderen Namen tragen!). Die Datei liegt wieder im PGP-Verzeichnis vor. Mit einem Texteditor geöffnet sieht diese Datei dann ungefähr so aus: Type Bits/KeyID Date User ID pub 512/88C7BBA1 1997/06/06 BARNEY barney@steintal.de -----BEGIN PGP PUBLIC KEY BLOCK----- Version: 2.6.3i mQBNAzOYEPwAAAECALQLtDvS6Ev7yqddtRMGtYfNCOv4dHOuIJzel+iyJcpGileO fcmpe6TAkgDWqTQ0sm5ciz21IA3Sjf4dnIjHu6EABRG0BHRlc3SJAFUDBRAzmBD8 jf4dnIjHu6EBAVpsAf4gmYoksmyQBoPT0mMLnWyJsG4A21eUlISTGNBya4VWlQn3 t5DPfPDCHi0AR1hfv6/6v8P6+QYjYpltvGxQTnRG =Oo28 -----END PGP PUBLIC KEY BLOCK----- Jetzt kann diese Datei - der Public Key - als solche (publickey.asc) als Anhang oder einfach der enthaltene Text als Signatur in eMails weitergegeben werden. -------------------------------------------------------------------------------- Wie wird nun verschlüsselt und entschlüsselt ? Um eine Datei z.B. test.txt zu verschlüsseln muß folgender Befehl benutzt werden: pgp -ea test.txt Danach werden Sie nach dem ID (Public Key) gefragt, mit dem Sie verschlüsseln wollen, in unserem Beispiel BARNEY . Die Datei ist jetzt wieder im PGP Verzeichnis mit dem Namen test.asc zu finden und ist korrekt verschlüsselt. Um diese Datei wieder zu entschlüsseln wird dieser Befehl genutzt: pgp -pd text.asc Danach wird nach dem Passwort gefragt, in unserem Falle das von Barney: Wilma, was gibt's heute auf den Tisch? Nach korrekter Eingabe wird die Datei wieder entschlüsselt und im PGP Verzeichnis als TEST.TXT abgelegt. -------------------------------------------------------------------------------- Ich habe einen Public Key bekommen, wie füge ich ihn an meinen PUBRING (Schlüsselbund) ? Jemand hat Ihnen seinen Public Key zukommen lassen, wie fügen Sie ihn in Ihren Schlüsselbund ein? Dazu muß der Public Key in einer Datei vorliegen, d.h. Sie haben entweder eine Datei wie z.B. publickey.asc geschickt bekommen, dann bleibt alles wie es ist. Wenn Sie aber den Public Key aus z.B. der Signatur einer eMail haben, müssen Sie erst den Teil zwischen -----BEGIN PGP PUBLIC KEY BLOCK----- und -----END PGP PUBLIC KEY BLOCK---- in eine Text-Datei, die Sie als z.B. newkey.asc abspeichern. Jetzt geben Sie folgende Zeile ein pgp -ka newkey.asc pubring.asc Jetzt werden die Informationen aus der newkey.asc Datei in Ihren Schlüsselbund (pubring.asc) eingefügt und stehen Ihnen zu Verfügung. -------------------------------------------------------------------------------- Wie entferne ich einen Public Key aus meinem Schlüsselbund ? Sie benötigen einen Public Key von einer bestimmten Person nicht mehr und möchten diesen darum entfernen, wie funktioniert das? Hierzu folgenden Befehl eingeben: pgp -kr BARNEY pubring.asc Danach erfolgen einige Sicherheitsabfragen, die Sie nach Bedarf bestätigen. Daraufhin wird der entsprechende Public Key aus dem Schlüsselbund entfernt. -------------------------------------------------------------------------------- So, das waren mal die grundlegenden Befehle zum Umgang mit PGP! Leichter geht alles mit einem PGP-Interface sog. Frontend's für Windows, denn da müssen keine kryptischen Befehlszeilen eingegeben werden und alles geht viel einfacher und komfortabler. Wer aber weitere Befehle kennenlernen möchte der sollte sich die nächste Seite ansehen, hier werden weitere Befehle beschrieben! Hier eine Kurzübersicht über die Befehle von PGP 2.6.3(i): Zum Verschlüsseln eines Klartextes mit dem öffentlichen Schlüssel des Empfängers: pgp -e {Textdatei} {seine Benutzer-ID} Zum Unterschreiben eines Klartextes mit Deinem privaten Schlüssel:pgp -s {Textdatei} [-u {Deine Benutzer-ID}] Zum Unterschreiben eines Klartextes mit Deinem privaten Schlüssel und anschließendem Verschlüsseln des Klartextes mit dem öffentlichen Schlüssel des Empfängers: pgp -es {Textdatei} {seine Benutzer-ID} [-u {Deine Benutzer-ID}] Zum Verschlüsseln eines Klartextes nur mit herkömmlicher Verschlüsselung (keine Verwendung öffentlicher Schlüssel, sondern gleicher Schlüssel zum Ver- und Entschlüsseln): pgp -c {Textdatei} Zum Entschlüsseln einer verschlüsselten Datei oder um die Echtheit einer Unterschrift einer unterschriebenen Datei zu prüfen: pgp {verschlüsselte Datei} [-o {Klartextdatei}] Um eine Nachricht für beliebig viele Empfänger zu verschlüsseln: pgp -e {Textdatei} {Benutzer-ID1} {Benutzer-ID2} {Benutzer-ID3} ... Um weitere Empfänger-IDs für eine Nachricht aus einer Datei einzulesen (z.B. für Mailinglisten etc.), die Option -@ benutzen: pgp -e {Textdatei} [{Benutzer-ID1} ... ] -@ {Datei mit weiteren IDs} Kommandos zur Schlüsselverwaltung: ---------------------------------- Um Dein eigenes, einzigartiges Schlüsselpaar aus öffentlichem und privatem Schlüssel herzustellen: pgp -kg Zum Hinzufügen eines öffentlichen oder privaten Schlüssels in Deinen öffentlichen oder privaten Schlüsselbund: pgp -ka {Datei mit neuen Schlüsseln} [{Schlüsselbund}] Zum Herauskopieren eines Schlüssels aus Deinem öffentlichen oder privaten Schlüsselbund: pgp -kx {Benutzer-ID} {Datei mit Schlüssel} [{Schlüsselbund}] bzw. pgp -kxa {Benutzer-ID} {Datei mit ASCII-Schlüssel} [{Schlüsselbund}] Zum Anzeigen des Inhalts Deines öffentlichen Schlüsselbunds: pgp -kv[v] [{Benutzer-ID}] [{Schlüsselbund}] Zum Anzeigen des "Fingerabdrucks" eines öffentlichen Schlüssels, um ihn z.B. über Telefon mit seinem Besitzer besser vergleichen zu können: pgp -kvc [{Benutzer-ID}] [{Schlüsselbund}] Zum Anzeigen des Inhalts und zur Überprüfung der Beglaubigungsunterschriften Deines öffentlichen Schlüsselbunds: pgp -kc [{Benutzer-ID}] [{Schlüsselbund}] Zum Bearbeiten der Benutzer-ID oder des Mantras für Deinen privaten Schlüssel: pgp -ke {Deine Benutzer-ID} [{privater Schlüsselbund}] Zum Bearbeiten der "Vertrauensparameter" eines öffentlichen Schlüssels: pgp -ke {Benutzer-ID} [{Schlüsselbund}] Zum Entfernen eines Schlüssels oder nur einer Benutzer-ID aus Deinem öffentlichen Schlüsselbund: pgp -kr {Benutzer-ID} [{Schlüsselbund}] Zum Unterschreiben und Beglaubigen des öffentlichen Schlüssels von jemand anderem in Deinem öffentlichen Schlüsselbund: pgp -ks {seine Benutzer-ID} [-u {Deine Benutzer-ID}] [{Schlüsselbund}] Zum Entfernen ausgewählter Unterschriften einer Benutzer-ID aus einem Schlüsselbund: pgp -krs {Benutzer-ID} [{Schlüsselbund}] Zum dauerhaften Zurückziehen Deines eigenen Schlüssels durch Veröffentlichung einer "Schlüssel-Widerrufs-Urkunde": pgp -kd {Deine Benutzer-ID} Zum Sperren oder Freigeben eines öffentlichen Schlüssels in Deinem eigenen öffentlichen Schlüsselbund: pgp -kd {Benutzer-ID} Esoterische Kommandos: ---------------------- Zum Entschlüsseln einer Nachricht, ihre Unterschrift bleibt intakt: pgp -d {verschlüsselte Datei} Zum Erstellen einer Unterschriftsbescheinigung, die vom unterschriebenen Dokument getrennt ist: pgp -sb {Textdatei} [-u {Deine Benutzer-ID}] Zum Trennen einer Unterschriftsbescheinigung vom unterschriebenen Dokument: pgp -b {verschlüsselte Datei} Kommandooptionen, die in Verbindung mit anderen Kommandooptionen benutzt werden können (manchmal ergeben sich recht interessante englische Worte!): -------------------------------------------------------------------------- Zur Herstellung eines verschlüsselten Textes im ASCII-radix-64-Format einfach den Schalter -a anhängen, wenn ein Dokument verschlüsselt oder unterschrieben bzw. wenn ein Schlüssel entnommen wird: pgp -sea {Textdatei} {seine Benutzer-ID} D} {Datei mit Schlüssel} [{Schlüsselbund}] Zum Löschen durch Überschreiben der Klartextdatei ("wipe out") nach der Herstellung der verschlüsselten Datei oder dem Unterschreiben die Option -w benutzen: pgp -sew {klartext.txt} {seine Benutzer-ID} Um festzulegen, daß eine Klartextdatei ASCII-Text und keine Binärdaten enthält, und daß sie beim Empfänger gemäß seiner Textdarstellungskonven- tionen angezeigt werden soll, die Option -t (Text) an andere Optionen anfügen: pgp -seat {klartext.txt} {seine Benutzer-ID} Zum Anzeigen des entschlüsselten Klartextes auf Deinem Monitor, ohne ihn in eine Datei zu schreiben, die Option -m (More) benutzen: pgp -m {verschlüsselte Datei} Um festzulegen, daß der entschlüsselte Klartext dem Empfänger *NUR* auf seinem Bildschirm angezeigt wird und nicht auf Diskette gesichert werden kann, die Option -m anhängen: pgp -steam {klartext.txt} {seine Benutzer-ID} Zum Wiederherstellen des Original-Dateinamens beim Entschlüsseln die Option -p verwenden: pgp -p {verschlüsselte Datei} Um den Unix-ähnlichen Filterbetrieb zu benutzen (Lesen von der Standard- eingabe und Schreiben auf die Standardausgabe) die Option -f anfügen: pgp -feast {seine Benutzer-ID} < {Eingabedatei} > {Ausgabedatei}