Dieser zweite Teil des Handbuchs beinhaltet spezielle Themen, die nicht im ersten Teil "Grundlagen" enthalten sind. Das Lesen dieses Teils ohne Kenntnis des ersten ist nicht sehr sinnvoll. Andererseits ist die Kenntnis dieses zweiten Teils für die Benutzung von PGP nicht unbedingt erforderlich.
pgp -kv 0x67F7
listet alle Schlüssel, in denen 67F7 ein Teil der Schlüssel-ID ist. Diese Option ist vor allem dann praktisch, wenn es von einer Person zwei verschiedene Schlüssel mit ein und derselben Benutzer-ID gibt. In diesem Fall läßt sich mit Hilfe der Schlüssel-ID einer der beiden Schlüssel eindeutig auswählen.
Beispiel:
pgp -sb letter.txt
Hier wird eine Datei letter.sig erzeugt, die nur die Unterschrift enthält. Der Inhalt der Datei letter.txt wird nicht in letter.sig gespeichert. Wenn die Unterschrift in einer eigenen Datei (letter.sig in obigem Beispiel) erzeugt wurde, müssen beide Dateien (im Beispiel letter.sig und letter.txt) an die Empfängerin geschickt werden. Sie benötigt beide Dateien, um die Echtheit der Unterschrift zu prüfen. Wenn sie die Datei mit der Unterschrift durch PGP bearbeiten läßt, stellt das Programm fest, daß diese Datei keinen Text enthält, und fragt die Benutzerin nach dem Namen der Textdatei. Erst danach kann PGP die Unterschrift prüfen. Wenn der Empfänger bereits weiß, daß Text und Unterschrift in getrennten Dateien gespeichert sind, kann er auch beide Dateinamen in der Kommandozeile angeben:
pgp letter.sig letter.txt
oder
pgp letter letter.txt
In diesem Fall fragt PGP nicht nach dem Namen der Textdatei. Die Unterschrift in einer eigenen Datei zu speichern, ist dann sinnvoll, wenn die Unterschriften unabhängig vom Text protokolliert werden sollen. Die abgetrennte Unterschrift ist auch für die Dateien mit ausführbaren Programmen (bei MS-DOS: .EXE und .COM) sinnvoll, um eine Virusprüfung durchzuführen. Sie ist auch dann sinnvoll, wenn mehrere Personen ein Dokument (beispielsweise einen Vertrag) unterschreiben sollen, ohne daß die Unterschriften "verschachtelt" werden. Die Unterschrift jeder einzelnen Person wird unabhängig von den anderen gespeichert. Wenn man eine verschlüsselte Nachricht erhält, bei der Unterschrift und Text in einer Datei stehen, kann die Unterschrift auch nachträglich vom Text getrennt werden. Dies geschieht mit der Option -b bei der Entschlüsselung:
pgp -b letter
Hier wird letter.pgp entschlüsselt. Falls eine Unterschrift vorhanden ist, wird sie geprüft und in einer eigenen Datei letter.sig gespeichert.
pgp -d letter
Hier wird die Datei letter.pgp entschlüsselt, und Unterschriften werden, falls vorhanden, zusammen mit dem entschlüsselten Klartext in der Ausgabedatei gespeichert.
Die Ausgabedatei kann archiviert oder - gegebenenfalls wieder verschlüsselt - an eine andere Person weitergeleitet werden.
ASCII-Text wird auf verschiedenen Computern leicht unterschiedlich dargestellt. Beispielsweise endet eine Zeile bei MS-DOS mit den beiden Zeichen für Wagenrücklauf und Zeilenvorschub. Bei Unix endet eine Zeile nur mit dem Zeichen für Zeilenvorschub. Beim Macintosh endet eine Zeile mit dem Zeichen für Wagenrücklauf, ohne Zeilenvorschub. Traurig, aber wahr.
Nicht verschlüsselte ASCII-Daten werden bei E-Mail-Systemen normalerweise in eine kanonische, maschinenunabhängige Form gebracht, wenn sie zwischen zwei Computern ausgetauscht werden. Bei kanonischer Textdarstellung besteht ein Zeilenende aus den Zeichen Wagenrücklauf und Zeilenvorschub. Beispielsweise konvertiert das weit verbreitete KERMIT den ASCII-Text in diese kanonische Form, bevor der Text an einen anderen Computer gesendet wird, und das KERMIT auf dem Computer, der den Text empfängt, konvertiert ihn wieder in diejenige Form, die sein Betriebssystem braucht. Dadurch ist es einfach, Texte zwischen verschiedenen Computern auszutauschen.
Diese automatische Anpassung der Textdarstellung an das jeweilige Betriebssystem ist bei verschlüsselten Nachrichten nicht möglich, weil der Klartext durch die Verschlüsselung dem Übertragungsprogramm verborgen bleibt. Diese Aufgabe muß das Verschlüsselungsprogramm übernehmen. Deshalb kann man bei PGP angeben, ob der Klartext als Binärdaten oder als ASCII-Text angesehen werden soll. In letzterem Fall wird der Klartext vor der Verschlüsselung in kanonische Form gebracht. Bei der Entschlüsselung wird er dann in die Form gebracht, die für das Betriebssystem des Computers, auf dem entschlüsselt wird, geeignet ist.
Wenn die Option t beim Verschlüsseln und / oder Unterschreiben einer Nachricht mit angegeben wird, konvertiert PGP den Text vor der Verschlüsselung bzw. dem Unterschreiben in die kanonische Form:
pgp -et message.txt Empfänger-ID
Diese Option schaltet PGP automatisch ab, sobald es in der zu verschlüsselnden Datei Daten findet, die es nicht als Text betrachtet. Falls der Klartext aus einem 8-Bit-Zeichensatz besteht, falls er also mehr Zeichen enthält als der ASCII-Standard für den englischen Zeichensatz, verwendet PGP bei der Konvertierung in die kanonische Form den Zeichensatz LATIN1 (ISO 8859-1 Latin Alphabet 1). Die Konvertierung hängt davon ab, was als Parameter CHARSET in der PGP-Konfigurationsdatei eingetragen ist. LATIN1 ist eine Obermenge von ASCII, mit diakritischen Zeichen für viele europäische Sprachen.
Um den Klartext nach der Verschlüsselung und / oder dem Unterschreiben von der Festplatte zu löschen, wird die Option w verwendet:
pgp -esw message.txt Empfänger-ID
Hier wird eine verschlüsselte, unterschriebene Datei message.pgp erzeugt, und die Klartext-Datei message.txt wird danach überschrieben und gelöscht. Diese Option sollte mit Vorsicht benutzt werden. Zudem muß betont werden, daß hierdurch keinerlei Fragmente des Klartextes gelöscht werden, die ein Textverarbeitungsprogramm häufig auf der Festplatte ablegt, wenn man einen Text eintippt und bearbeitet. Die meisten Textverarbeitungsprogramme erzeugen Backup- und temporäre Dateien. Außerdem wird die Klartext-Datei nur einmal überschrieben. Das ist zwar ausreichend, um ein Lesen des Klartextes mit den üblichen Werkzeugen der Datenwiederherstellung zu verhindern, reicht aber nicht aus, um einen gezielten und ausgefeilten Leseversuch abzuwehren, bei dem eine schwache Restmagnetisierung der überschriebenen Daten mittels spezieller Hardware ausgewertet wird.(*)
pgp -m letter.pgp
Dieser Befehl zeigt den entschlüsselten Klartext am Bildschirm an.(*)
pgp -sem message.txt Empfänger-ID
Wenn die Empfängerin eine so verschlüsselte Nachricht mit ihrem privaten Schlüssel und ihrem Mantra entschlüsselt, wird der Klartext nur auf ihrem Bildschirm angezeigt, aber nicht auf der Festplatte gespeichert. Die Textanzeige erfolgt auf dem Bildschirm so, wie zuvor im Abschnitt Anzeige des entschlüsselten Klartextes am Bildschirm beschrieben. Wenn der Empfänger die Nachricht ein zweites Mal lesen will, muß er die Nachricht erneut entschlüsseln.
Diese Option ist der sicherste Weg, um zu verhindern, daß vertrauliche Nachrichten versehentlich als Klartext auf der Festplatte des Empfängers liegenbleiben. Diese Option wurde in PGP auf Anfrage eines Benutzers eingebaut, der seiner Liebsten intime Nachrichten schicken wollte, aber befürchtete, daß sie unabsichtlich eine entschlüsselte Nachricht auf dem Computer ihres Ehemanns liegen lassen könnte.(*)
Wenn PGP eine Klartext-Datei verschlüsselt, fügt es den originalen Dateinamen dem Klartext vor der Komprimierung bei. Normalerweise verwendet PGP diesen originalen Dateinamen bei der Entschlüsselung nicht, aber bei Bedarf kann PGP angewiesen werden, der entschlüsselten Klartext-Datei diesen Namen zu geben. Das ist sinnvoll, wenn PGP dazu benutzt wird, Dateien zu ver- und entschlüsseln, deren Name von Bedeutung ist.
Um den originalen Namen der Klartext-Datei bei der Entschlüsselung zu erhalten, kann die Option -p verwendet werden:
pgp -p verschlüsselte-datei
Ich benutze diese Option normalerweise nicht, weil andernfalls ungefähr die Hälfte der an mich gerichteten E-Mail-Nachrichten den gleichen Dateinamen wie an_phil.txt oder prz.txt hätten.
pgp -ke Benutzer-ID [Schlüsselbund]
PGP fragt dann nach der neuen Benutzer-ID und dem neuen Mantra. Wenn der optionale Parameter Schlüsselbund angegeben wird, muß es sich um einen Bund mit öffentlichen Schlüsseln handeln, nicht mit geheimen. Der Parameter Benutzer-ID muß die eigene ID sein. PGP erkennt dies daran, daß diese ID sowohl im Bund mit öffentlichen Schlüsseln als auch im Bund mit geheimen Schlüsseln auftaucht. Beide Dateien werden geändert, auch wenn ein Bund mit öffentlichen Schlüsseln als Parameter angegeben wurde.
pgp -ke Benutzer-ID [Schlüsselbund]
Wenn der optionale Parameter Schlüsselbund angegeben wird, muß es ein Bund mit öffentlichen Schlüsseln sein, nicht mit geheimen Schlüsseln.
pgp -kc
Mit folgendem Befehl prüft PGP die Unterschriften für einen bestimmten öffentlichen Schlüssel:
pgp -kc Benutzer-ID [schlüsselbund]
Weitere Informationen darüber, wie der eigene Schlüssel mit einer Sicherheitskopie verglichen wird, stehen bei der Beschreibung des Parameters BAKRING im Abschnitt Die Konfigurationsdatei.
Eine komplette Überprüfung des Schlüsselbunds kann auch mit dem Befehl pgp -km durchgeführt werden, hierbei zeigt PGP auch die Vertrauensketten an.
pgp -kvc Benutzer-ID [schlüsselbund]
PGP zeigt die Benutzer-ID zusammen mit dem 16 Byte langen Fingerabdruck an. Wenn beide Gesprächspartnerinnen diesen PGP-Befehl ausführen, können sie den Schlüssel anhand des Fingerabdruck kontrollieren.
Wenn die Echtheit sowohl des eigenen öffentlichen Schlüssels als auch des öffentlichen Schlüssels des Gesprächspartners überprüft ist, kann die Echtheit der Schlüssel wechselseitig durch eine Unterschrift bestätigt werden. Dies ist ein sicherer und komfortabler Weg, um mit dem Aufbau eines Netzes vertrauenswürdiger Schlüssel innerhalb eines Kreises von Freunden und Freundinnen zu beginnen.
Die richtige Lösung wäre natürlich, PGP so zu verbessern, daß es geeignete Datenbanktechniken für die Handhabung großer Schlüsselbunde verwendet. Doch solange dies nicht geschehen ist, müssen Sie entweder kleinere Dateien verwenden oder sich mit Geduld wappnen.
pgp -feast Benutzer-ID <inputfile >outputfile
Diese Option kann die Verwendung von PGP zusammen mit E-Mail-Programmen vereinfachen.
Wenn man PGP als Unix-Filter verwendet, möglicherweise in einem Unix-Script oder in einer MS-DOS-Batchdatei, kann es sinnvoll sein, die Umgebungsvariable PGPPASS zu verwenden, um zu verhindern, daß PGP bei jedem Aufruf das Mantra abfragt. PGPPASS ist weiter unten beschrieben.
pgp +batchmode verschlüsselte_datei
Dies ist sinnvoll, wenn PGP aus Unix Shell-Scripts oder aus einer MS-DOS-Batchdatei aufgerufen wird. Manche PGP-Befehle für die Schlüsselverwaltung brauchen in jedem Fall Eingaben durch die Benutzerin. Sie sollten deshalb in Shell-Scripts vermieden werden.
BATCHMODE kann auch bei der Prüfung der Echtheit einer Unterschrift verwendet werden. Ist die Unterschrift nicht in Ordnung, wird als Beendigungscode 1 zurückgegeben. Bei einer intakten Unterschrift gibt PGP den Wert 0 zurück.
pgp +force verschlüsselte_datei
oder:
pgp -kr +force smith
FORCE kann praktisch sein, wenn PGP aus einer MS-DOS-Batchdatei bzw. einem Unix-Script aufgerufen wird.
Unter MS-DOS könnte das Mantra so gesetzt werden:
SET PGPPASS=Zaphod Beeblebrox wird Bundespräsident
Die Eingabe eines Mantra während des Laufes von PGP ist dann nicht mehr erforderlich, vorausgesetzt, daß "Zaphod Beeblebrox wird Bundespräsident" wirklich das richtige Mantra ist.
Die Verwendung von PGPPASS ist einerseits gefährlich, macht aber andererseits die Arbeit mit PGP wesentlich einfacher, wenn man regelmäßig größere Mengen verschlüsselter Nachrichten erhält.
Die Auswertung der Umgebungsvariablen PGPPASS habe ich auf vielfachen Wunsch hin in PGP aufgenommen. Die Verwendung von PGPPASS ist aber gefährlich, weil das Mantra dann nicht nur in Ihrem Gedächtnis, sondern auch irgendwo im Speicher Ihres Rechner steht. Leichtsinnig wäre es, das Mantra in einer Datei auf demselben Rechner zu speichern, auf dem auch Ihre Datei secring.pgp steht. Nicht nur sehr leichtsinnig, sondern einfach dumm wäre es, das Mantra in einer Batchdatei, am Ende gar in autoexec.bat, zu speichern. Jedermann könnte sich in der Mittagspause an Ihren Rechner setzen, und sowohl Ihr Mantra als auch Ihren geheimen Schlüsselbund mitgehen lassen.
Die Gefährlichkeit von PGPPASS kann nicht stark genug betont werden. Bevor Sie sich überlegen, ob Sie PGPPASS trotzdem verwenden, sollten Sie auf jeden Fall die Abschnitte Probleme bei Mehrplatzcomputern, und Öffentliche Schlüssel vor Manipulation schützen, genau lesen.
Falls Sie PGPPASS unbedingt brauchen, ist es am sichersten, das Kommando zum Setzen von PGPPASS unmittelbar vor der Benutzung von PGP einzutippen und unmittelbar nach der Benutzung von PGP PGPPASS wieder zu löschen oder den Computer auszuschalten. Sie sollten PGPPASS auf keinen Fall verwenden, wenn andere Personen Zugang zu Ihrem Computer haben. Es könnte jemand vorbeikommen und Ihr Mantra ganz einfach durch Abfragen der Umgebungsvariablen herausfinden.
PGP stellt noch weitere, weniger bedenkliche Methoden zur Verfügung, mit denen die Eingabe des Mantras automatisiert werden kann. Auch diese sind Sicherheitsrisiken, aber kleinere.
Das Mantra kann mit der Option -z in der Befehlszeile übergeben werden:
pgp -m "-zZaphod Beeblebrox wird Bundespräsident"geheim.pgp
Oder es wird in eine (vor anderen Benutzern geschützte) Datei geschrieben und der Pfad und der Dateiname dieser Datei in der Umgebungsvariablen PGPPASSFD gespeichert.