GnuPG und PGP 5.0 erwarten die gesamte kurze ID, die gesamte lange ID
oder den gesamten Fingerabdruck des Schlüssels. Beginnt der
Parameter mit einem Buchstaben, muß eine 0 vorangestellt
werden, PGP 5.0 erwartet auf jeden Fall ein 0x:
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. Die Auswahl eines Schlüssels über seinen Fingerprint ist wohl ausschließlich für den automatisierten Ablauf interessant.
Beispiel:
Hier wird eine Datei brief.sig bzw. brief.txt.sig
erzeugt, die nur die Unterschrift enthält. Der Inhalt der Datei
brief.txt wird nicht in brief.sig gespeichert
(und kann aus dieser Datei auch nicht berechnet werden). Wenn die
Unterschrift in einer eigenen Datei (brief.sig in obigem
Beispiel) erzeugt wurde, müssen beide Dateien (im Beispiel
brief.sig und brief.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:
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, beispielsweise
PGP 2.6.x kann bei einer Datei, in der Unterschrift und Text in einer
Datei stehen, die Unterschrift auch nachträglich vom Text trennen.
Dies geschieht mit der Option -b bei der Entschlüsselung:
Hier wird brief.pgp entschlüsselt. Falls eine Unterschrift
vorhanden ist, wird sie geprüft und in einer eigenen Datei
brief.sig gespeichert.
Diese Option fehlt leider bei PGP 5.0 und GnuPG.
Dies ist beispielsweise dann sinnvoll, wenn Sie die Kopie einer unterschriebenen Nachricht an eine dritte Person weiterleiten möchten, gegebenenfalls erneut verschlüsselt.
Angenommen, es kommt eine Nachricht, die Charlie unterschrieben hat,
verschlüsselt mit dem öffentlichen Schüssel des Empfängers. Die
Nachricht soll entschlüsselt und zusammen mit Charlies Unterschrift an
Alice weitergeleitet werden, gegebenenfalls mit ihrem öffentlichen
Schlüssel verschlüsselt. Mit PGP ist das kein Problem. Mit folgendem
Kommando wird eine Nachricht entschlüsselt, ohne daß die
Unterschriften abgetrennt werden:
Hier wird die Datei brief.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. PGP 5.0 scheint keine derartige Option zu bieten.
Mit PGP kann jede Art von Klartext verschlüsselt werden, irgendwelche Binärdaten ebenso wie Text. Wahrscheinlich wird PGP am häufigsten für die Verschlüsselung von E-Mail benutzt, so daß der Klartext aus Text-Daten besteht.
Text wird auf verschiedenen Computern leicht unterschiedlich dargestellt. Beispielsweise endet eine Zeile bei MS-DOS/Microsoft Windows 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. Umlaute einer MS-DOS-Textdatei werden unter Windows und Unix nicht korrekt angezeigt. Traurig, aber wahr.
Nicht verschlüsselte Textdaten werden bei E-Mail-Systemen in eine kanonische Form gebracht, wenn sie zwischen zwei Computern ausgetauscht werden. Bei kanonischer Textdarstellung besteht ein Zeilenende aus den Zeichen Wagenrücklauf und Zeilenvorschub. Beispielsweise E-Mail-Nachrichten werden beim Versand im Internet so kodiert. Außerdem werden die verwendeten Umlaute in eine allgemeinverständliche Form gebracht und das verwendete Format im "Header" der Nachricht, wo die Steuerinformationen stehen, vermerkt. 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 Text angesehen werden soll. In letzterem Fall wird der Klartext vor der Verschlüsselung in eine 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 bzw. -textmode 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.
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 Zeichen enthält, die nicht im ASCII-Standard enthalten sind (Umlaute o.ä.), 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, vgl. Abschnitt 14. Latin1 ist eine Obermenge von ASCII, mit diakritischen Zeichen (ä, ö, ü, , ð, ...) für viele westeuropäische Sprachen.
Um den Klartext nach der Verschlüsselung von der Festplatte zu
löschen, wird die Option w verwendet:
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 - damit gelöschte Dateien sind verloren, auch wenn sie nur versehentlich gelöscht wurden.
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. Weiterhin funktioniert dieses Überschreiben nicht immer garantiert, beispielsweise bei Verwendung einer komprimierten Festplatte kann es sehr leicht fehlschlagen. PGP 5.0 und GnuPG bieten leider keine derartige Option.
AutoServerFetch=1 HTTPKeyServerHost=pgpkeys.mit.edu HTTPKeyServerPort=11371geschehen (was aber die Standardeinstellungen sind). GnuPG verwendet immer den Standardport 11371, hier lautet die analoge Zeile in der Datei options
keyserver pgpkeys.mit.edu
Dieser Befehl zeigt den entschlüsselten Klartext am Bildschirm an. Im Abschnitt 14 erfahren Sie, wie Sie ein externes Anzeigeprogramm einbinden, das das Lesen komfortabler macht.
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 15.8 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, leider kann sie es aber nicht verhindern, sondern entspricht mehr einem Warnschild. GnuPG bietet leider keine derartige Option; PGP 5.0 beachtet sie zwar bei mit 2.6.x verschlüsselten Dateien, bietet aber selbst keine Möglichkeit, eine Datei in dieser Weise zu verschlüsseln.
Wenn Sie Nachrichten versenden wollen, ohne daß Unbeteiligte (Mafia,
Geheimdienste, Systemadministratoren, ...) erfahren, an wen
Sie die Nachrichten verschlüsseln, ist einer der Schritte, Systeme wie
Remailer und Mixmaster zu verwenden (siehe Kapitel 5.9 auf Seite ). Soll nicht bekannt
werden, daß der Empfänger eine verschlüsselte Nachricht erhalten hat,
können Sie die entsprechenden Nachrichten beispielsweise in die Newsgroup
alt.anonymous.messages posten. Das reicht aber nicht aus, da
normalerweise in einer verschlüsselten Nachricht vermerkt wird, wer
sie entschlüsseln kann. Im OpenPGP-Standard ist deshalb vorgesehen,
daß an der entsprechenden Stelle auch die Schlüssel-ID 0
eingetragen werden darf, was "keine Angabe" bedeutet. GnuPG bietet
hierfür die Option -throw-keyid.
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 zu erhalten, kann die
Option -p bzw. -use-embedded-filename verwendet
werden. Um beim Verschlüsseln einen anderen Namen als Originalnamen
einzutragen, bietet GnuPG die Option -set-filename.
Ab und zu kann es erforderlich sein, das Mantra zu ändern, beispielsweise dann, wenn jemand beim Eintippen des Mantras zugeschaut hat. Oder die Benutzer-ID muß geändert werden, sei es wegen einer Heirat oder wegen einer geänderten E-Mail-Adresse. Oder es soll dem Schlüssel eine zweite oder dritte Benutzer-ID hinzugefügt werden, um mehrere E-Mail-Adressen oder eine Berufsbezeichnung einzutragen.
Mit PGP können einem Schlüssel mehrere Benutzer-IDs hinzugefügt
werden, und jede dieser IDs kann für die Auswahl des Schlüssel aus dem
Bund mit öffentlichen Schlüsseln verwendet werden. Die eigene
Benutzer-ID und das Mantra können mit folgendem Kommando geändert
werden:
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.
GnuPG bietet bei diesem Aufruf ein Menü, in dem Sie u.a. die Befehle adduid, deluid, addkey, delkey und passwd finden können. adduid und deluid dienen hierbei dem Hinzufügen und Löschen einzelner User-Kennungen. Mit addkey und delkey können Sie Ihre Teilschlüssel verwalten, also beispielsweise die alle sechs Monate gewechselten Schlüssel für privaten E-Mail-Verkehr. passwd schließlich dient dazu, das Mantra zu ändern.
Wenn der optionale Parameter Schlüsselbund angegeben wird, so muß es ein Bund mit öffentlichen Schlüsseln sein, nicht mit geheimen Schlüsseln.
Mit folgendem Befehl prüft PGP die Unterschriften für einen
bestimmten öffentlichen Schlüssel:
Weitere Informationen darüber, wie der eigene Schlüssel mit einer Sicherheitskopie verglichen wird, stehen bei der Beschreibung des Parameters BAKRING im Abschnitt 14.
Eine komplette Überprüfung des Schlüsselbunds kann auch mit dem Befehl pgp -km durchgeführt werden, hierbei zeigt PGP auch die Vertrauensketten an.
Wenn man die Person kennt, der der öffentliche Schlüssel
gehört, und wenn man auch ihre Stimme am Telephon erkennt,
besteht eine einfache und bequeme Lösung des Problems darin, sie
anzurufen, und den Schlüssel im Gespräch zu kontrollieren. Hierzu
braucht man sich nicht mühsam den ganzen ASCII-dargestellten Schlüssel
vorzulesen. Es reicht, den verhältnismäßig kurzen Fingerabdruck des
Schlüssels zu vergleichen. Den Fingerabdruck eines Schlüssel gibt PGP
mit der Option -kvc aus:
PGP zeigt die Benutzer-ID zusammen mit dem 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.
Übrigens bietet sich der Fingerabdruck des eigenen Schlüssels geradezu dazu an, auf die Visitenkarte gedruckt zu werden.
Vielleicht möchten Sie einen riesigen "importierten" Schlüsselbund Ihrem eigenen hinzufügen, obwohl Sie eigentlich nur an ein paar Dutzend Schlüsseln interessiert sind. Wenn das alles ist, was Sie mit so einem riesigen Schlüsselbund anstellen möchten, gibt es einen effizienteren Weg: Extrahieren Sie die wenigen für Sie interessanten Schlüssel aus dem großen Bund und fügen Sie diese Schlüssel Ihrem eigenen Bund hinzu.
GnuPG können Sie anweisen, einen Schlüsselbund mit richtigen Datenbankmethoden zu verwalten, indem Sie ihn in der config-Datei mit gnupg-gdbm: vor dem eigentlichen Dateinamen angeben, also beispielsweise
keyring gnupg-gdbm:bigring
Falls Ihnen schleierhaft ist, was obiges zu bedeuten hat, werden Sie diese Möglichkeit wahrscheinlich auch nicht brauchen, so daß Sie diesen Abschnitt überspringen können.
Wenn die Option -f verwendet wird, arbeitet PGP als Filter.
Beispiel:
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-Skript 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.
Wird in der PGP-Befehlszeile +batchmode angegeben, stellt PGP
während des Programmablaufes keinerlei unnötige Fragen. Bei PGP 5.0
heißt die entsprechende Option -z, bei GnuPG
-batch. Beispiel:
Dies ist sinnvoll, wenn PGP aus Unix-Shell-Skripten oder aus einer MS-DOS-Batchdatei aufgerufen wird. Manche PGP-Befehle, insbesondere für die Schlüsselverwaltung, benötigen in jedem Fall Eingaben durch die Benutzerin. Sie sollten deshalb in Shell-Skripten 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. Bei GnuPG ist hierfür kein gesonderter Parameter notwendig, gpg -verify liefert bereits 1 oder 0 als Rückgabewert.
FORCE veranlaßt PGP, "ja" als Standardantwort
anzunehmen, wenn es danach fragt, ob eine bereits existierende Datei
überschrieben werden soll, oder ob ein öffentlicher Schlüssel aus
einem Schlüsselbund mit -kr entfernt werden soll. GnuPG
bietet als analoge Option -yes und komplementär
-no. PGP 5.0 hat keine entsprechende Option. Beispiel:
oder:
FORCE kann praktisch sein, wenn PGP aus einem Skript (MS-DOS: Batchdatei) aufgerufen wird.
pgp -seat $mailfile $empfaenger if [ $? -eq 0 ]; then mail -s 'encrypted file' $empfaenger <$mailfile.asc else ... fiEine Liste der möglichen Fehlercodes, wie sie PGP 2.6.3i liefert, finden Sie in der folgenden Tabelle:
Unter MS-DOS könnte das Mantra so gesetzt werden:
SET PGPPASS=Zaphod Beeblebrox wird Bundespräsident
Die Eingabe eines Mantra während des Laufs von PGP ist dann nicht mehr erforderlich, vorausgesetzt, daß "Zaphod Beeblebrox wird Bundespräsident" wirklich das richtige Mantra ist.
Nein, das wäre kein gutes Mantra, insbesondere, wenn Sie Douglas Adams-Fan sind. Nicht einmal, wenn wir es nicht abgedruckt hätten. "Am gelben Auto ein 25er Diamant." oder so etwas ist schon etwas besser. Was wirklich gut ist, hängt davon ab, wie gut Sie es sich merken können -- Ihr Mantra sollte so kompliziert und so wenig zu Ihnen passend sein, daß Sie es gerade noch behalten und schnell tippen können, ohne daß Sie es aufschreiben müssen. Wenn Sie sich etwas wie tte/RU66WcgIa.F0};6DeAy??zu@7dzc-iIsP+ merken können und bereit sind, es täglich mehrmals zu tippen, wäre das natürlich toll und sehr, sehr sicher. Außerdem hätten Sie dann meine Hochachtung - ich könnte mir das nie merken.
Die Verwendung von PGPPASS ist einerseits riskant, 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 hat Philip Zimmermann 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 Rechners 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.
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. Jemand könnte 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:
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.
GnuPG bietet etwas ähnliches, hier muß aber ein "file descriptor" angegeben werden. Die Details sind eher unwichtig und meistens wird die Funktionalität vermutlich verwendet, wenn GnuPG von einem anderen Programm aus gestartet wird. Wenn Sie die bash verwenden, funktioniert z.B. so ein Aufruf:
Bedenken Sie bei allen diesen "Vereinfachungen", daß Systemadministratoren auf praktisch allen Systemen problemlos alle Dateien und Umgebungsvariablen lesen können. Es ist natürlich richtig, daß sie auch laufenden Prozessen "über die Schulter schauen" können, aber das ist wesentlich aufwendiger und bedarf eines sehr viel genaueren Timings. Sie sollten auch nicht vergessen, daß die eigentlichen Systemadministratoren oft überrascht wären, wer alles Administrator-Rechte auf ihrem System hat. Außerdem hat der Aufruf mit der Option -z den Nachteil, daß Ihr Mantra dann auf der Kommandozeile steht. Zum Einen gelangt es so in die "history" Ihrer Shell (unter MS-DOS reicht sie im Original nur eine Zeile weit, aber mit 4DOS sieht das schon wieder anders aus...), zum anderen ist die Kommandozeile eines laufenden Prozesses auch für andere Benutzer sichtbar. PGP überschreibt den entsprechenden Teil zwar mit Leerzeichen, aber in der Zeit bis dahin ist Ihr Mantra für jeden eingeloggten Benutzer lesbar.