Pretty-Good-Privacy unter Linux

ArticleCategory: [Choose a category for your article]

Applications

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Angel Lopez

en to de Katja Socher

AboutTheAuthor:[A small biography about the author]

Angel Lopez ist der Autor dieses Artikels.

Abstract:[Here you write a little summary]

Dieser Artikel zeigt, wie PGP mit Linux benutzt werden kann.

ArticleIllustration:[This is the title picture for your article]

ArticleBody:[The article body]

Einführung

PGP steht für Pretty Good Privacy, eine der bekanntesten Krypthographieanwendung in der Computergemeinde.

PGP ist das geeignete Werkzeug, um die Privatsphäre und Authentität von Informationen in unsicheren Kommunikationsnetzwerken, wie dem Internet zu gewährleisten.

Geheimhaltung (privacy) stellt sicher, daß nur der Empfänger der Informationen etwas damit anfangen kann. Wenn diese Informationen in die Hände von anderen Personen gelangen würden, wären sie für sie total nutzlos, da sie nicht entschlüsselt werden können.

Die Authentität stellt sicher, daß bestimmte Informationen, die von Person "A"  erzeugt wurden, wirklich von "A" kommen und nicht von irgendjemand anderem unterwegs verfälscht oder verändert wurden. 

PGP basiert auf einem krypthographischen System, das unter dem Namen öffentlicher Schlüssel (public key) bekannt ist und das für unsichere Datenkanäle benutzt werden kann. Dies macht es ideal, um die Geheimhaltung von Informationen, die über Netzwerke wie das Internet übermittelt werden, zu gewährleisten. 

Man muß nicht in eine dicke Industrieverschwörung :) verwickelt sein, um an der Geheimhaltung seiner Kommunikation interessiert zu sein und deshalb ein Bedürfnis nach einem Kryptographiewerkzeug zu haben. Etwas so einfaches wie E-mail kann ein ausreichender Grund dafür sein, anzufangen, PGP zu benutzen. Laßt uns anschauen, warum: 

Wir können E-Mail mit Postkarten vergleichen. Jeder, der sie in seine Finger kriegt, kann sie lesen, da es kein physikalisches Hindernis gibt, um dies zu verhindern. Ein Brief in einem Umschlag dagegen ist weniger öffentlich. Die Leute können den Umschlag in die Hände bekommen, können ihn aber nicht so einfach lesen. Wenn sie ihn lesen wollen, müssen sie den Briefumschlag aufreißen.
Wir können eine Analogie zu unseren Briefumschlägen und PGP machen, das als Unterstützung für unsere E-Mail dient. PGP erlaubt niemandem außer dem rechtmäßigen Empfänger, die Nachricht zu lesen. Dies ist einer von vielen Vorteilen bei der Benutzung von PGP. 

Wie Kryptographie mit dem Verfahren des öffentlischen Schlüssels funktioniert

In Systemen mit einem öffentlichen Schlüssel (Public Key Cryptography) hat jede Person zwei Schlüssel, die zueinander komplementär sind, der eine ist der öffentliche Schlüssel und der andere der private Schlüssel. 

Der öffentliche Schlüssel kann und muß frei preisgegeben werden, da es durch diesen Schlüssel für den Rest der Welt möglich ist, dir Informationen geheim/privat zuzusenden. Der öffentliche Schlüssel gefährdet nicht die Geheimhaltung des privaten Schlüssels. 

Laß uns den Fall von zwei Freunden betrachten, Juan und Pedro. Juan ist in der Lage, Pedro persönliche Informationen zu senden, wenn er Pedros öffentlichen Schlüssel kennt. Auf der anderen Seite ist Pedro durch die Benutzung seines privaten Schlüssels in der Lage, die Nachricht, die Juan gerade geschickt hat, zu entschlüsseln. Laßt uns annehmen, daß noch eine andere Person da ist, Marcos, der die Nachricht, die Juan an Pedro geschickt hat, abfängt. Marcos kann mit der Nachricht nichts anfangen, da er den privaten Schlüssel von Pedro nicht kennt. Selbst Juan, der Sender und Erschaffer der Nachricht, ist nicht in der Lage, sie zu entschlüsseln, nur Pedro kann das mit seinem privaten Schlüssel. 

Die Sicherheit eines Systems basiert darauf, daß jeder Benutzer seinen privaten Schlüssel sicher abspeichert, auch wenn der öffentliche Schlüssel weithin bekannt ist. Wenn jemand versuchen würde, das System zu knacken, ohne den privaten Schlüssel des Empfängers zu kennen, würde dies so viele Jahre dauern, daß es nutzlos wäre. 

Wie zuvor in der Einführung erwähnt, bietet PGP neben der Geheimhaltung auch die Möglichkeit der Autentifizierung der Informationen. Laßt uns anschauen, warum: 

Unser privater Schlüssel entschlüsselt nicht nur die Nachrichten, sondern kann auch die gesendetet Information "unterschreiben", ganz analog zu den Unterschriften unter Papierdokumenten. 

Ein digital unterschriebenes Dokument ohne privaten Schlüssel kann von jedem authentifiziert werden, der einen öffentlichen Schlüssel besitzt. Die Authentifizierung sorgt für eine Überprüfung, so daß das Dokument tatsächlich von der Person geschickt wurde, die vorgibt, es geschickt zu haben, und daß es zwischendurch nicht verändert oder verfälscht wurde. 

Beide Prozesse, Veschlüsseln und Unterschreiben, können benutzt werden, um zusammen Geheimhaltung und Authentifizierung zu erreichen. Zuerst wird das Dokument mit unserem privaten Schlüssel unterschrieben und dann wird es verschlüsselt, wobei der öffentliche Schlüssel des Empfängers benutzt wird.

Wenn der Empfänger die Nachricht erhält, dreht er die Schritte um, zuerst entschlüsselt er das Dokument mit dem privaten Schlüssel und dann überprüft er die Unterschrift mit unserem öffentlichen Schlüssel. 

Alle diese Prozesse können automatisiert werden, wie wir später sehen werden. 

Ein öffentlicher Schlüssel wird in einem Schlüsselzertifikat abgespeichert, dies ist einfach der öffentliche Schlüssel zusammen mit dem Namen des Eigentümers und des Erstellungsdatums. 

Der private Schlüssel ist durch ein Paßwort geschützt, das den unbefugten Gebrauch durch unautorisierte Personen verhindert. 

Beide Schlüssel werden zusammen in einer Datei namens key ring (Schlüsselring) gespeichert, die auch verschiedene Schlüsselzertifikate speichert. Normalerweise gibt es einen Ring für öffentliche Schlüssel und einen anderen für private Schlüssel. 

Intern werden die Schlüssel durch eine Schlüssel ID key ID referenziert, die durch die letzten 64 Bits des Schlüssels gegeben sind. Wenn Informationen über den Schlüssel angezeigt werden, dann werden in Wirklichkeit nur die letzten 32 Bits des Schlüssels angezeigt. Diese Schlüssel IDs werden von PGP z.B. dazu benutzt, um einen Schlüssel im Moment des Entschlüsselns einer Nachricht zu finden. 

Beim Unterschreiben eines Dokuments erzeugt PGP 128 Bits, die das Dokument charakterisieren. Diese Unterschrift ist eine Art Prüfsumme oder CRC, die es ermöglicht, Änderungen im Dokument zu erkennen. Im Gegensatz zum normalen CRC oder Prüfsumme kann kein Hochstapler diese Unterschrift erneut erzeugen, um irgendwelche gemachten Änderungen am Originaldokument zu legitmieren. Die Unterschrift entsteht durch Benutzung des privaten Schlüssels des Senders und der Hochstapler wird darauf normalerweise keinen Zugriff haben. 

PGP Versionen

Jetzt, wo du weißt, wozu PGP gut ist, möchtest du sicher sofort anfangen, es zu benutzen. 

An dieser Stelle muß darauf hingewiesen werden, daß es eine beträchtliche Verwirrung um die verschiedenen Versionen von PGP gibt. Aufgrund der in den USA existierenden Politik in Bezug auf den Export von kryptographischem Material, haben sich mehrere Versionen von PGP herausgebildet, zusammen mit einigen Gesetzen, die die Benutzung angehen. Um soviel Ordnung wie möglich in dieses ganze Durcheinander zu bringen, werde ich die verschiedenen zur Zeit für PGP verfügbaren Versionen aufzählen. 
Freeware PGP Versionen: 

Kommerzielle PGP Versionen (nur für die USA und Kanada):  In unserem Fall, wenn wir außerhalb den USA zu Hause sind, ist die richtige Version, die wir benutzen sollten, 2.6.3i, innerhalb der USA ist es 2.6.2 oder 2.6.3. 

Es muß beachtet werden, daß in einigen Ländern, wie Frankreich, Iran, Irak, Rußland und China, die Benutzung von Kryptographie reguliert oder verboten ist. 

Einige interessante Links, um Version 2.6.3i für verschiedene Linuxdistributionen zu bekommen: 

Installation von PGP

Angenommen, du hast PGP bekommen. Weiter angenommen, du hast den Quellcode für Version 2.6.3i heruntergeladen und auf deiner Festplatte befindet sich nun eine Datei namens pgp263is.tar.gz 

Der erste Schritt ist dann, ein Verzeichnis für den Quellcode anzulegen: 

mkdir pgp
Als nächstes muß die Archivdatei dekomprimiert werden: 
tar -C ./pgp -xzvf pgp263is.tar.gz
Jetzt wechsle in das neu angelegte Verzeichnis: 
cd pgp
Als nächstes mußt du die Datei pgp263ii.tar auspacken, die die Dokumentation und den Quellcode für das Programm enthält. Um dies zu erreichen, führe das folgende aus: 
tar -xvf pgp263ii.tar
An diesem Punkt bist du soweit, PGP zu kompilieren. Wenn du nicht den Quellcode, sondern eine kompilierte Version (entweder a.out oder ELF) heruntergeladen hast, kannst du diesen Schritt weglassen. Wenn du den Quellcode fertig hast, kann die Kompilierung durch Eingeben folgender Befehle ausgeführt werden: 
cd src
make linux
Wenn alles gutgegangen ist, dann hat das makefile jetzt ein pgp executable erzeugt. Im Fall einer globalen Installation kannst du es nach /usr/local/bin, /usr/bin kopieren, wo immer du es am besten findest. Ansonsten kannst du es in deinem persönlichen Verzeichnis lassen. 

Genauso kann man auch die Handbuchseite pgp.1 nach /usr/man/man1 kopieren, im Fall einer systemweiten Installation. 

Basiskonfiguration

Per default benutzt PGP das Verzeichnis ~/.pgp, um die Schlüsselringe und einige Konfigurationsdateien zu finden, deshalb laßt uns als einen ersten Schritt dieses Verzeichnis in unserem Home-Verzeichnis anlegen: 
cd
mkdir .pgp
Wenn du den Distributionsdateien etwas Aufmerksamkeit schenkst, dann findest du eine Datei namens config.txt, die dazu dient, einige Aspekte von PGP zu konfigurieren. Um eine persönliche Konfiguration vornehmen zu können, mußt du diese Datei in dein gerade erzeugtes Verzeichnis ~/.pgp kopieren. 

Optional, statt ~/.pgp/config.txt kannst du es in .pgprc umbennenen und in deinem Homeverzeichnis abspeichern, das ist ~/.pgprc 

Unter anderem kann diese Datei die Sprache, die benutzt werden soll, durch den Parameter Language spezifizieren, die Möglichkeiten sind: 

Language = en (Englisch)
Language = es (Spanisch)
Language = ja (Japanisch)
Es gibt noch andere Parameter in der Datei. Um aus dieser Option Nutzen ziehen zu können, mußt du die Datei language.txt nach ~/.pgp kopieren. 

Ein weiterer empfohlener Schritt ist, die persönliche Hilfedatei für deine Sprache nach ~/.pgp zu kopieren.  Im Fall eines Spanisch sprechenden Benutzers würde man die Datei es.hlp kopieren. 

Erzeugen des Schlüsselpaares

Um anzufangen, PGP zu benutzen, muß man sein eigenes Schlüsselpaar (Öffentlich/Privat) erzeugen. Hierfür benutzt man den Befehl: 
pgp -kg
Man wird gebeten, die maximale Größe des Schlüssels auszuwählen (512, 768 oder 1024 Bytes), je größer der Schlüssel, desto größer die Sicherheit, auf Kosten einer kleinen Geschwindigkeitseinbuße.

Nach der Auswahl der Schlüsselgröße wirst du gebeten, den Identifizierer zu dem öffentlichen Schlüssel einzugeben. Normalerweise geben die Leute hier ihren Namen oder ihre Emailadresse an. In meinem Fall habe ich folgendes geschrieben: 

Angel Lopez Gonzalez <alogo@mx2.redestb.es> 

Als nächstes kommt das Paßwort, um deinen privaten Schlüssel zu schützen. Wähle einen Satz, an den du dich leicht wieder erinnern kannst. Dies ist notwendig, um deinen privaten Schlüssel zu schützen, so daß, wenn jemand ihn stiehlt, er ohne Paßwort nicht benutzbar ist. 

Schließlich fragt dich das Programm, zufällig mehrere Tasten auf deiner Tastatur zu tippen, um eine Folge von Zufallszahlen zu erzeugen. Das Programm wird die Folge von Bits aus dem Intervall zwischen den Anschlägen auf die Tastatur erzeugen.

PGP erzeugt die Schlüssel nach ein paar Sekunden und informiert dich durch ein Nachricht. Nach richtiger Erzeugung der Schlüssel sollten sie in dem Verzeichnis ~/.pgp gespeichert werden als die folgenden Dateien: pubring.pgp und secring.pgp 

Der erste, pubring.pgp, ist der Ring mit den öffentlichen Schlüsseln. Im Moment enthält er nur unseren Schlüssel. 

Der zweite, secring.pgp ist, wie du dir denken kannst, der Ring mit den privaten Schlüsseln, der im Moment nur deinen eigenen privaten Schlüssel enthält. 

Es sollte daran erinnert werden, daß die Sicherheit der Public Key Chryptography auf der Geheimhaltung des privaten Schlüssels basiert, deshalb stell sicher, daß du ihn an einem sicheren Ort aufbewahrst und daß niemand zu dem Ring der privaten Schlüssel Zugriff haben kann. Überprüfe die Zugriffsrechte von secring.pgp und stell sicher, daß nur du darauf lesen und schreiben kannst, während andere Leute darauf überhaupt keinen Zugriff haben. 

Schließlich sollte erwähnt werden, daß sowohl die Identifikation der Schlüssel als auch die Paßwörter für die privaten Schlüssel editiert und verändert werden können, und zwar durch den Befehl: 

pgp -ke identifier [ring]

Hinzufügen von Schlüsseln zu einem Ring

In diesem Moment möchtest du wahrscheinlich damit anfangen, die öffentlichen Schlüssel deiner Freunde zu dem Ring hinzuzufügen. Hierfür mußt du die Schlüssel irgendwoher bekommen haben: von einem Schlüsselserver, direkt von der in Frage kommenden Person, durch die Anwendung des finger Befehls auf den account der Person, durch Email etc. Der öffentliche Schlüssel kann frei verteilt werden und es gibt keine Notwendigkeit, ihn durch einen sicheren Kanal zu übertragen, wie es im Fall von Kryptographiemethoden nötig ist, die nur auf einem einzigen Schlüssel basieren. 

Wenn die Datei Somekey.pgp einen Schlüssel enthält und du ihn zu einem deiner Ringe hinzufügen möchtest, dann ist die Prozedur ganz einfach, führe folgendes aus: 

pgp -ka Somekey [ring]
Per default zeigt die Endung .pgp eine Datei mit einem Schlüssel an und die Namen pubring.pgp und secring.pgp sind an die Dateien, die die Ringe der öffentlichen und privaten Schlüssel enthalten, angehängt. 

Wenn ein Schlüssel hinzugefügt wird, könnte PGP dich informieren, daß der hinzugefügte Schlüssel nicht komplett zertifiziert ist, was bedeutet, daß der besagte Schlüssel authentisch zu seinem angeblichen Eigentümer gehört oder auch nicht. 

Wenn "Sicherheit" darüber besteht, daß der Schlüssel wirklich zu dem angegebenen Eigentümer gehört, entweder, weil er oder sie ihn uns persönlich oder durch einen sicheren Kanal gegeben hat, dann kann es vom Benutzer/ der Benutzerin selbst zertifiziert werden. Dies impliziert, daß wir unsere Unterschrift auf den Schlüssel legen als Beweis für seine Zertifizierung. 

Dies erleichtert die Weiterleitung unseres Schlüssels zu einer Person, die uns traut und die die vollständige Sicherheit hat, daß wir ihr einen guten und authentischen Schlüssel übergeben. 

Es gibt für diesen Prozeß sogar einen Namen, ein web trust. In den USA gibt es sogar Treffen von PGP Benutzern, wo die öffentlichen Schlüssel untereinander ausgetauscht und unterschrieben werden :) 
 
Laßt uns ein Beispiel betrachten, um dieses Konzept klar zu machen. Betrachte wieder die zwei Freunde, Juan und Pedro. Juan gibt seinen öffentlichen Schlüssel an Pedro. Pedro ist sicher, daß der Schlüssel, den Juan ihm gegeben hat, richtig ist, da sie einander vertrauen. Wenn er zu Hause ankommt und ihn zu dem Ring öffentlicher Schlüssel hinzufügt, kann er zertifizieren, daß der Schlüssel wirklich zu Juan gehört, deshalb unterschreibt er ihn mit seinem eigenen persönlichen Schlüssel. 

Jetzt betreten zwei weitere Personen die Szene; Luis und Maria. Luis erhält von Pedro Juans Schlüssel und später schickt Luis ihn zu Maria. Maria traut Luis nicht, aber sie sieht, daß Juan's Schlüssel mit Pedros Zertifizerung kommt. Maria kann den öffentlichen Schlüssel von Juan dank Pedros Unterschrift überprüfen. Sie hat Pedros öffentlichen Schlüssel, weil er ihn ihr persönlich gegeben hat, deshalb kann sie jetzt der Echtheit von Luis' Schlüssel nach Überprüfung der Authentität von Pedros Unterschrift trauen. Hier sehen wir nun, wie Maria jetzt den, ihr von einer nicht-vertrauenswürdigen Person wie Luis gegebenen Schlüssel benutzen und trauen kann. 

Es ist etwas chaotisch :) , aber notwendig, um sich von dem einzigen schwachen Punkt bei diesem Typ von Kryptographie zu schützen: der Tatsache, daß der öffentliche Schlüssel falsch sein könnte. 

Entfernen von Schlüsseln aus einem Ring

Um unsere kleine Führung durch PGP fortzusetzen, ist der nächste Schritt, nachdem man weiß, wie man Schlüssel zu einem Ring hinzufügt, herauszufinden, wie man sie wieder entfernt. Dies kann mit dem folgenden Befehl gemacht werden: 
pgp -kr identifier [ring]
Zum Beispiel: "pgp -kr juan " entfernt jeden Schlüssel, der "juan" irgendwo im Identifizierer hat. Per default ist der durchsuchte Schlüsselring der Ring, mit den öffentlichen Schlüsseln. 

Herausfiltern eines Schlüssels

Nachdem wir einige Schlüssel von Freunden in unserem öffentlichen Ring gespeichert haben, wollen wir ihnen unseren öffentlichen Schlüssel schicken. Zuerst muß er aus dem Ring herausgefiltert werden: 
pgp -kx identifier file [ring]
Zum Beispiel: "pgp -kx angel mykey" filtert den öffentlichen Schlüssel in die Datei mykey.pgp heraus, identifiziert durch die Unterzeichenkette "angel"  

Die generierte Datei mykey.pgp ist nicht im ASCII Format (probier cat aus, um es zu sehen). Wenn jemand aber eine Schlüsseldatei im ASCII Format haben möchte, um sie z.B. als E-Mail zu verschicken oder sie als Zusatzinformation zu einer finger Datenbank hinzuzufügen, so muß man folgendes tippen: 

pgp -kxa identifies file [ring]
Zum Beispiel: "pgp -kxa angel mykey" filtert den öffentlichen Schlüssel, der durch die Unterzeichenkette "angel" in die Datei "mykey.asc" identifiziert wurde, heraus. 

Zusammen mit dem Schlüssel werden auch alle Zertifikationen herausgezogen, die ihn unterstützen. 

Inhalt eines Rings

Um die in einem Ring enthaltenen Schlüssel angezeigt zu bekommen, tipp den folgenden Befehl ein: 
pgp -kv [identifier] [ring]
Wiederum ist der default Ring der pubring.pgp, der öffentliche Ring. Wenn nicht explizit ein Identifizierer angegeben wird, werden alle Schlüssel im Ring angezeigt. 

Um alle Zertifikationen für jeden Schlüssel zu sehen, benutze: 

pgp -kvv [identifier] [ring]

Verschlüsseln einer Nachricht

Wir haben gesehen, wie die Schlüssel benutzt werden, laß sie uns jetzt für etwas Interessantes benutzen. Laß uns anschauen, wie eine Datei verschlüsselt wird: 
pgp -e file identifier
Hier ist ein Beispiel: Ein Lehrer möchte seinem College eine Klausur per E-Mail schicken und er möchte sie verschlüsseln, damit kein Student sie abfangen kann :). Laßt uns sagen, der Name des zweiten Lehreres ist Marcos und der Identifizierer seines öffentlichen Schlüssels enthält seinen Namen. Dann tippt unser erster Lehrer: 
pgp -e exam.doc marcos
Dieser Befehl erzeugt eine Datei mit dem Namen exam.pgp, die die Datei exam.doc enthält, verschlüsselt in einer Weise, daß nur Marcos mit seinem Schlüssel sie entschlüsseln kann. 

Erinnere dich, daß die erzeugte Datei, exam.pgp, keine ASCII Datei ist, deshalb ist es für E-Mail besser, eine weitere Option -a hinzuzufügen, so daß die verschlüsselte Ausgabedatei im ASCII Format ist, wie dies: 

pgp -ea exam.doc marcos
Aus Sicherheitsgründen möchten wir manchmal das Original löschen. PGP kann dies automatisch mit der Option -w tun: 
pgp -eaw exam.doc marcos

Verschlüsseln einer Nachricht für mehrere Empfänger

Stell dir nun vor, daß unser Dozent die Klausur an seine Fakultätskollegen schicken möchte. Um dies zu tun, muß er nur statt einem, mehrere Identifizierer eintippen: 
pgp -ea exam.doc marcos juan alicia
Beachte, daß der Befehl wieder die Option -a enthält, so daß die Ausgabedatei im ASCII Format ist, angemessen für E-Mail. 

Wie man eine Nachricht unterschreibt

Wie zuvor erwähnt, ist die digitale Unterschrift in einer Nachricht analog zu einer gewöhnlichen Unterschrift auf Papier. Das Unterzeichnen des Dokuments erlaubt es dem Empfänger zu verifizieren, daß die Nachricht nicht unterwegs verändert wurde und daß sie authentisch ist. 

Um ein Dokument zu unterschreiben, ist es notwendig, den privaten Schlüssel zu benutzen: 

pgp -s file [-u identifier]
Wenn wir mehrere private Schlüssel in unserem secring.pgp haben, können wir einen davon durch Benutzen des Identifizierers auswählen. 

Wenn unser Lehrer in dem Beispiel sich entscheidet, die Klausur zu unterzeichnen, damit seine Kollegen wissen, daß die Nachricht nicht von einem lustigen Studenten :) kommt, tippt er das folgende: 

pgp -s exam.doc
Dieser Befehlt erzeugt eine Datei namens exam.doc.pgp, die nicht im ASCII Format ist, weil PGP versucht, die Datei zu komprimieren. Wenn du aber ein Dokument unterschreiben und den Text mit deiner Unterschrift am Ende lesbar lassen möchtest, dann wäre die Prozedur folgendermaßen: 
pgp -sta exam.doc
Dieser letzte Befehl ist sehr nützlich, um elektronische Post zu unterschreiben, die noch für diejenigen, die kein PGP haben, lesbar ist oder von denen, die die Unterschrift nicht überprüfen wollen. 

Es ist auch möglich, ein Doukument zu unterschreiben und es dann anhand des folgenden Befehls zu verschlüsseln: 

pgp -es file recipient_identifier
[-u my_identifier]
Zum Beispiel: 
pgp -es exam.doc marcos -u angel
Es verschlüsselt und unterzeichnet die Datei exam.doc, und generiert dabei die Datei exam.pgp.  Der öffentliche Schlüssel, der benutzt wurde, um die Datei zu verschlüsseln, ist der, der durch der Zeichenkette "marcos" identifiziert wurde, deshalb kann nur der Eigentümer dieses Schlüssels sie entschlüsseln. Dann identifiziere ich meinen privaten schlüssel mit der Zeichenkette "angel", weil ich in meinem Ring mehrere Schlüssel habe. 

Selbst in diesem Fall könnte durch Benutzen der Option -a eine ASCII-Datei erzeugt werden. 

Eine andere interessante Möglichkeit wäre, eine Unterschrift für eine Datei getrennt von den Daten zu erzeugen. Um dies zu erreichen, benutzt man die -b Option: 

pgp -sb exam.doc
Dieser Befehl erzeugt eine neue Datei exam.sig, die nur die Unterschrift enthält. 

Entschlüsseln

Um eine Datei zu entschlüsseln und/oder eine Unterschrift zu überprüfen, benutzt man den Befehl: 
pgp input_file [-o output_file]
Per default wird angenommen, daß die Eingabedatei die Endung .pgp besitzt.  Die Ausgabedatei ist nur optional und enthält die entschlüsselte Datei. Wenn keine Ausgabedatei spezifiziert ist, wird die entschlüsselte Datei in der Eingabedatei gespeichert, wobei die Endung .pgp entfernt wird. 

Nach dem Entschlüsseln einer Datei können wir jedoch auch die Standardausgabe für die entschlüsselte Datei spezifizieren. Dies wird durch Benutzen der -m Option erreicht: 

pgp -m file
Es gibt noch eine andere Möglichkeit: Benutzen von Eingabe- und Ausgabe-Pipes, dank der Option -f
pgp -fs identifier < input_file >
output_file
Ein weiteres interessantes Szenario ist, daß wir die unterzeichnete Nachricht entschlüsseln möchten, die jemand uns geschickt hat, aber die Unterschrift behalten wollen, weil wir sie wieder verschlüsseln wollen, um sie an eine dritte Partei zu schicken. Um dies zu tun, benutzt man die Option -d
pgp -d exam
Dies würde die Datei exam.pgp nehmen und sie entschlüsseln, aber die Originalunterschrift in der Datei lassen. Jetzt können wir fortfahren, sie mit dem öffentlichen Schlüssel einer dritten Person zu verschlüsseln, die, sobald sie sie empfangen hat, die Authentizität der Originalunterschrift überprüfen könnte. 

Umgang mit Textdateien

Häufig wird PGP benutzt, um E-Mails zu verschlüsseln, die meistens nur aus Text bestehen. Ein Problem mit Textdateien ist, daß sie auf verschiedenen Maschinen verschieden dargestellt werden, z.B. enden unter MSDOS alle Zeilen mit carriage returns und line feeds; unter Linux nur mit line feeds, beim Macintosh dagegen nur mit carriage returns...etc.  Um Probleme von Plattforminkompatibilitäten zu vermeiden, können wir PGP erklären, daß wir eine Textdatei verschlüsseln wollen statt einer binär Datei, so daß es beim Dekomprimieren an die Besonderheiten der Zielumgebung angepaßt werden kann. Zum Verschlüsseln einer Textdatei für E-Mail mit dieser Option benutzt man -t.  Zum Beispiel: 
pgp -sta text_file identifier

"Fingerabdrücke"

Ein Fingerabdruck ist eine Folge von 16 Bytes, die allein einen einzigen Schlüssel identifizieren. Man kann durch Testen dieser 16 Bytes überprüfen, ob man den richtigen Schlüssel einer Person hat, anstatt alle 1024 Bytes, die ein Schlüssel haben kann, einen nach dem anderen zu überprüfen.

Um den Fingerabdruck eines Schlüssels anzuzeigen, benutzt man den Befehl: 

pgp -kvc identifier [ring]

Benutzen von PGP in Shells

PGP hat Optionen, die besonders nützlich sind, wenn man PGP aus Shells in automatisierten Skripten benutzt. 

+batchmode 

Mit dieser Option wird PGP nichts fragen, was nicht strikt notwendig ist. Benutz diese Option, um eine Unterschrift automatisch zu überprüfen. Wenn die Datei keine Unterschrift hat, wird der Fehlercode 1 zurückgegeben; wenn die Datei eine Unterschrift hat und sie korrekt war, wird 0 zurückgegeben. 

pgp +batchmode file
force 

Diese Option zwingt jede Operation, eine Datei zu überschreiben oder einen Schlüssel zu löschen. 

pgp +force +kr marcos
Innerhalb einer Shell ist es sinnvoll, zu vermeiden, daß PGP nach Paßwörtern fragt, wenn es eine Datei verschlüsselt. Um zum Beispiel nicht interaktiv während der Verschlüsselung gefragt zu werden, können wir dies einfach mit der Umgebungsvariablen PGPPASS umgehen. 

Hier ein Beispiel: 

PGPPASS="password"
export PGPPASS
pgp -s file.txt marcos
Ein anderer Weg, das Paßwort zu PGP zu umgehen, in einem sich nicht-wiederholenden Weg, ist das Benutzen der Option -z 

Wie hier: 

pgp -sta exams.txt angel -z "password"
Eine andere nützliche Operation unter der Shell ist, PGP in einem wortreichen Mode durch +verbose.  laufen zu lassen. Dies erreicht einen ruhigen mode -- , was heißt, keine informativen Nachrichten, nur Fehlermeldungen: 
pgp file.pgp +verbose=0

Integration mit Mailprogrammen

Die Integration von PGP mit Mailprogrammen zum automatisierten Verschlüsseln, Entschlüsseln und Unterschreiben von Mail, ist einfach, und dabei kaum von dem benutzten Mailleser abhängig. 

Als ein Beispiel werde ich die Integration von PGP mit Pine diskutieren. Hoffentlich ist das der vom Leser benutzte Mailleser. 

Obwohl ich beschreibe, wie es mit PGP für Pine funktioniert, können die Prinzipien hinter diesen Schritten auch auf andere Mailleser angewendet werden. Die Konfigurationsoptionen werden aber natürlich für verschiedenen Mailprogramme unterschiedlich sein. 

Um Mail automatisch vor dem Lesen zu entschlüsseln, braucht man einen Filter, der die Nachricht weiterverarbeitet, um sie auf dem Bildschirm anzuzeigen. Eine andere Möglichkeit wäre, ein Macro zu schreiben, das Entschlüsseln und Bildschirmanzeige kombiniert. 

Im Fall von Pine gibt es eine Option, um Filter zu definieren, die vor dem Anzeigen der Nachricht ausgeführt werden. Diese Option heißt 'display-filters' und findet sich in Pines Konfigurationsmenu. In dieser Option fügen wir einen neuen Filter hinzu, der so aussieht: 

_BEGINNING("-----BEGIN PGP MESSAGE-----")
_ /usr/local/bin/pgp
Jede in PGP verschlüsselte Nachricht ist von zwei spezifischen line-bars umschlossen, "-----BEGIN PGP MESSAGE-----" und "-----END PGP MESSAGE-----", so daß es, wenn du wissen willst, ob eine Nachricht verschlüsselten Text in ihrem Rumpf hat, ausreicht, nach einer der beiden obigen Zeilen zu suchen. Der in Pine definierte Filter macht genau dies. Bevor er die tatsächliche Nachricht anzeigt, inspiziert es den Rumpf und sucht nach der Zeichenkette "-----BEGIN PGP MESSAGE-----", mit der Einschränkung, daß sie zu Beginn einer Zeile erscheinen muß. Wenn er sie findet, dann führt er das Programm: /usr/local/bin/pgp aus. 

Wenn es tatsächlich eine verschlüsselte Nachricht im Rumpf gibt, wird PGP ausgeführt. Es fragt dich nach dem Paßwort und dann kannst du die Nachricht lesen. Wenn du den Prozeß noch mehr automatisieren möchtst, durch Sparen von Zeit, die nötig ist, um jedes Mal dein Paßwort einzugeben, dann kannst du die Umgebungsvariable PGPPASS definieren oder die Option -z benutzen,  wie oben beschrieben.

Jetzt müssen wir nur noch einen Filter definieren, der unsere Nachrichten mit den öffentlichen Schlüsseln der Empfänger, die in unserem öffentlichen Ring verfügbar sind, verschlüsselt, bevor die Nachricht tatsächlich abgeschickt wird. Pine hilft uns wiederum mit der Konfigurationsoption 'sending-filters.'  Hier ist ein Filter, um diese Option einzuschließen:

/usr/local/bin/pgp -etaf _RECIPIENTS_
Nach dem Schreiben der Nachricht und Tippen von CTRL-X, um sie zu senden, fragt Pine dich, ob du sie direkt senden willst, ohne durch die definierten Filter zu gehen. Um die Nachricht entschlüsselt zu senden, bestätige einfach, aber wenn du die Nachricht verschlüsselt senden willst, dann drück CTRL-N oder CTRL-P, was dich durch eine Liste mit allen definierten Filtern führt. In unserem Fall ist das gerade der oben geschriebene PGP Filter. 

Dies ist ein sehr einfaches und grundlegendes Setup, das dir erlaubt, PGP unter Pine zu benutzen, mit nur zwei Filtern. Um mehr Informationen darüber zu erhalten, wie PGP weiter mit Pine oder anderen Systemen integriert werden kann, schau diese Links an:

elm | GNU Emacs | tin | mailx | MH | Pine | sendmail | vi | zmail 

Für weiter Informationen: