<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book [
 <!ENTITY Gnupg "[gnupg]">
 <!ENTITY rdquo "[rdquo]">
 <!ENTITY ldquo "[ldquo]">
 <!ENTITY gnupg "[gnupg]">
 <!ENTITY eg "[eg]">
]>


<!-- intro.sgml - The German version of the GNU Privacy Handbook
       Copyright (C) 2000 Free Software Foundation

  This file is part of the GPH.

  GPH is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  GPH is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->


<chapter id="intro" xreflabel="2">
<docinfo>
<date>
$Id: intro.sgml,v 1.3 2000/08/28 21:54:39 rgoretzki Exp $
</date>
</docinfo>
<title>
Grundlagen
</title>

<para>
Dieses Kapitel führt in die wesentlichen Funktionen des GNU Privacy
Guard ein. Hier lernen Sie, wie man Schlüsselpaare erzeugt, Schlüssel
austauscht und überprüft, Dokumente verschlüsselt, entschlüsselt und
durch digitale Unterschriften authentifiziert.
</para>

<para>
Wie bereits in Kapitel <xref linkend="concepts"/> erwähnt, bedient sich
&Gnupg; eines Public-Key-Verfahrens, um eine sichere Kommunikation zu
gewährleisten. In einem solchen System hat jeder Benutzer ein
Schlüsselpaar, bestehend aus einem geheimen Schlüssel und einem
öffentlichen Schlüssel. Der geheime Schlüssel darf unter keinen
Umständen jemand anderem zugänglich sein. Den öffentlichen Schlüssel
sollte man für jeden, mit dem man kommunizieren möchte, zugänglich
machen.
</para>

<para>
&Gnupg; benutzt ein erweitertes Schema, bei dem jeder Benutzer
jeweils ein primäres Schlüsselpaar hat und optional weitere
untergeordnete Schlüsselpaare haben kann. Das primäre und das
untergeordnete Schlüsselpaar werden gebündelt, um die
Schlüsselverwaltung zu erleichtern; das Bündel kann vereinfacht
als ein Schlüsselpaar betrachtet werden.
</para>

<sect1>
<title>
Erzeugen eines neuen Schlüsselpaares
</title>

<para>
Damit Sie GnuPG zum Verschlüsseln, Entschlüsseln oder Signieren
einsetzen können, benötigen Sie ein Schlüsselpaar, das aus einem
geheimen und einem öffentlichen Schlüssel besteht.
Mit der Kommandozeilen-Option
<link linkend="gen-key"><option>--gen-key</option></link>
können Sie ein neues primäres Schlüsselpaar erzeugen:

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --gen-key</userinput>
gpg (GnuPG) 1.0.1; Copyright (C) 1999 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) DSA und ElGamal (voreingestellt)
   (2) DSA (nur signieren/beglaubigen)
   (4) ElGamal (signieren/beglaubigen und verschlüsseln)
Ihre Auswahl?
</screen>

<!--
REWRITE
From Thomas Zander (zander@microweb.nl):
In GPG you can create 3 type of keypairs. A keypair is the combination
of a public key and a private key, see chapter X. A DSA keypair can
only be used to sign a message. A ElGamal subordinate keypair can be
used for encryption as well as s igning, but is not as compatible with
former standards.

Option 1 creates 2 keypairs; a DSA (signing) and a ElGamal (Encryption).
Option 2 creates a DSA keypair (Signing)
Option 4 creates a ElGemal keypair (Signing & Encryption).

note: option 3 xxxx

This doesn't quite work, but I agree the following paragraph is rough.
-->

Mit &Gnupg; können Sie verschiedene Typen von Schlüsselpaaren
erzeugen, doch muß der primäre Schlüssel Unterschriften liefern
können. Es gibt daher nur drei Optionen. Option 1 erzeugt wirklich
zwei Schlüsselpaare, nämlich ein DSA-Schlüsselpaar, das nur zum Unterschreiben
geeignet ist, und außerdem noch ein untergeordnetes ElGamal-Schlüsselpaar für
die Verschlüsselung. Option 2 erzeugt nur das DSA-Schlüsselpaar.
Option 4<footnote><para>Mit der Option 3 läßt sich ein
ElGamal-Schlüsselpaar erzeugen, mit dem Sie keine Unterschriften
leisten können.</para></footnote> erzeugt ein einzelnes
ElGamal-Schlüsselpaar, das sowohl zum Unterzeichnen als auch zum
Verschlüsseln verwendbar ist. In allen Fällen ist es möglich, später
noch weitere Unterschlüssel für die Verschlüsselung und Unterzeichnung
hinzuzufügen. In der Regel sollten Sie hier die Standardoption
auswählen.
</para>

<para>
Als nächstes wählen Sie die Schlüsselgröße. Bei einem
DSA-Schlüssel muß diese zwischen 512 und 1024 Bits liegen, ein
ElGamal-Schlüssel dagegen kann - zumindest theoretisch - eine beliebige
Größe haben. Der &Gnupg; erfordert es allerdings, daß die Schlüssel
nicht kleiner als 768 Bits sind. Wenn Option 1 mit einer
Schlüsselgröße von mehr als 1024 Bit gewählt wurde, hat der ElGamal-Schlüssel
die verlangte Größe, doch der DSA-Schlüssel wird maximal 1024 Bits
haben.

<screen width="80">
Der DSA Schlüssel wird 1024 Bits haben.
Es wird ein neues ELG-E Schlüsselpaar erzeugt.
              kleinste Schlüssellänge ist  768 Bit
              standard Schlüssellänge ist 1024 Bit
      größte sinnvolle Schlüssellänge ist 2048 Bit
Welche Schlüssellänge wünschen Sie? (1024) 
</screen>

Je größer der Schlüssel ist, desto sicherer ist er gegen
Brute-Force-Angriffe, doch sollte für die meisten Zwecke die
Standard-Schlüsselgröße ausreichend sein, da es einfacher wäre, die
Verschlüsselung zu umgehen, als sie zu knacken. Außerdem wird mit
zunehmender Schlüsselgröße die Ver- und Entschlüsselung langsamer, und
auch die Unterschrift wird länger. Einmal festgelegt, kann die
Schlüsselgröße nicht nachträglich geändert werden.
</para>

<para>
Schließlich müssen Sie noch ein Verfallsdatum wählen.
Wenn Option 1 gewählt wurde, gilt dieses Verfallsdatum sowohl
für die ElGamal- als auch die DSA-Schlüsselpaare.

<screen width="80">
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
      &lt;n&gt;  = Schlüssel verfällt nach n Tagen
      &lt;n&gt;w = Schlüssel verfällt nach n Wochen
      &lt;n&gt;m = Schlüssel verfällt nach n Monaten
      &lt;n&gt;y = Schlüssel verfällt nach n Jahren
Der Schlüssel bleibt wie lange gültig? (0)
</screen>

Für die meisten Fälle reicht ein Schlüssel ohne Verfallsdatum
völlig aus. Allerdings sollte man das Verfallsdatum immer sorgfältig
auswählen; denn, obwohl es sich auch noch nachträglich ändern läßt,
kann es umständlich sein, das geänderte Verfallsdatum allen Ihren
Kommunikationspartnern mitzuteilen.
</para>

<para>
Im nächsten Schritt müssen Sie eine Benutzer-ID
(Benutzer-Kennung) angeben. Das dient dazu, den soeben erzeugten
Schlüssel einer realen Person zuzuordnen.

<screen width="80">
Sie benötigen eine User-ID, um Ihren Schlüssel eindeutig zu machen; das
Programm baut diese User-ID aus Ihrem echten Namen, einem Kommentar und
Ihrer E-Mail-Adresse in dieser Form auf:
    &ldquo;Heinrich Heine (Der Dichter) &lt;heinrichh@duesseldorf.de&gt;&rdquo;

Ihr Name (&ldquo;Vorname Nachname&rdquo;):
</screen>

Es wird zunächst nur eine Benutzer-ID erzeugt, doch können Sie
später weitere Benutzer-IDs hinzufügen, wenn Sie den Schlüssel in
verschiedenen Situationen benutzen wollen, also beispielsweise bei der Arbeit
in Ihrer Firma oder für Ihre politische Arbeit.
<emphasis>Die Benutzer-ID sollten Sie mit aller Sorgfalt wählen,
da Sie sie später nicht mehr ändern können.</emphasis>
</para>

<para>
Damit Ihr geheimer Schlüssel nicht von anderen mißbraucht werden
kann, wird er von GnuPG mit einem symmetrischen Verfahren
verschlüsselt. Dazu geben Sie ein sogenanntes &ldquo;Mantra&rdquo;
(einen Paßwort-Satz) ein, das Sie wiederum jedesmal benötigen, wenn
Sie auf Ihren geheimen Schlüssel zugreifen.

<screen width="80">
Sie benötigen ein Mantra, um den geheimen Schlüssel zu schützen.

Geben Sie das Mantra ein:
</screen>

Die Länge des Mantra ist theoretisch unbegrenzt. Sie sollten es
mit Sorgfalt auswählen. Unter dem Gesichtspunkt der Sicherheit
ist das Mantra einer der schwächsten Punkte im &Gnupg; (wie auch in
anderen Verschlüsselungssystemen mit öffentlichen Schlüsseln), da es
Ihr einziger Schutz ist, falls jemand in den Besitz Ihres privaten
Schlüssels kommt.
</para>

<para>
Man sollte für das Mantra keine Wörter aus einem Wörterbuch oder Lexikon
nehmen und nicht nur die Buchstaben des Alphabets, sondern auch 
Sonderzeichen verwenden. Je länger das Mantra ist, desto sicherer
ist es, aber andererseits sollten Sie sich das Mantra
auch gut merken können; nichts ist fataler als das Mantra auf einem
Zettel oder in einer Datei zu notieren. Ein gut gewähltes Mantra ist
entscheidend für Ihre Datensicherheit.
</para>

<para>
Es ist beispielsweise keine gute Idee, einen bekannten Ausspruch oder
ein Zitat einer bekannten Persönlichkeit als Mantra zu nehmen. Das
würde die Chance erhöhen, das Mantra zu erraten: ein Angreifer könnte
einfach den Computer eine Zitatenliste durchprobieren lassen. Am
besten denkt man sich einen unsinnigen Satz wie z.B: &ldquo;Die Currywurst
schmeckt nach Zimt und Zucker&rdquo; oder &ldquo;Helmut Kohl ist bekanntermaßen
Vegetarier&rdquo; aus. Ihrer Phantasie sind hierbei keine Grenzen
gesetzt. Wenn Sie auch noch ein paar Rechtschreibfehler und
Sonderzeichen einbauen, ist ein Wörterbuchangriff praktisch unmöglich:
&ldquo;Dat Körriwurst schmöckt nach #imt und #ucker&rdquo;. <emphasis>Benutzen Sie
auch auf keinen Fall eines der soeben aufgeführten Beispiele!!</emphasis>.
</para>

<sect2 id="revocation">
<title>
Erzeugen einer Widerrufurkunde
</title>

<para>
Nach dem Erzeugen Ihres Schlüsselpaars sollten Sie sofort mit der
Option <link linkend="gen-revoke"><option>--gen-revoke</option></link>
eine Widerrufurkunde für Ihre Schlüssel erzeugen.
Wenn Sie Ihr Mantra vergessen oder wenn Ihr privater Schlüssel
kompromittiert oder verloren gegangen ist, können Sie mit dieser
<!-- (goretzki) Mit "kompromittiert" kann ich mich in diesem 
     Zusammenhang überhaupt nicht anfreunden. Warum sollen wir nicht
     "gefährdet" stehen lassen?
 -->
Widerrufurkunde andere davon in Kenntnis setzen, daß der
dazugehörige öffentliche Schlüssel nicht mehr benutzt werden sollte. Ein
zurückgerufener öffentlicher Schlüssel kann noch benutzt werden, um
Unterschriften zu prüfen, die Sie vor dem Widerruf
abgegeben haben, er kann jedoch nicht benutzt werden, um künftige
Mitteilungen an Sie zu verschlüsseln. Vorausgesetzt, Sie haben noch
Zugang zu Ihrem widerrufenen geheimen Schlüssel, so können Sie
selbstverständlich noch Daten entschlüsseln, die vor dem Widerruf für
Sie verschlüsselt worden sind.

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --output revoke.asc --gen-revoke mykey</userinput>
[...]
</screen>

<!--             Woran knüpft das folgende Wort an?               -->
wobei <userinput>mykey</userinput> entweder die Schlüssel-ID Ihres
ersten Schlüsselpaares oder irgendein Teil einer dazugehörigen Benutzer-ID ist.
Die erzeugte Widerrufurkunde wird in die Datei
<parameter>revoke.asc</parameter>, bzw., wenn man die Option
<link linkend="output"><option>--output</option></link> wegläßt, auf
die Standard-Ausgabe geschrieben. Da die Widerrufurkunde kurz ist, ist
es kein Problem, eine ausgedruckte Kopie der Widerrufurkunde irgendwo
sicher aufzubewahren, z.B. in Ihrem Bankschließfach. Die
Widerrufurkunde sollten Sie aber auf keinen Fall an Stellen
aufbewahren, zu denen andere Personen Zugang haben, da im Prinzip jeder
die Widerrufurkunde veröffentlichen und so den entsprechenden
Schlüssel nutzlos machen könnte.
</para>
</sect2>
</sect1>

<sect1>
<title>
Austauschen von Schlüsseln
</title>

<para>
Um mit anderen zu kommunizieren, müssen Sie untereinander Ihre
öffentlichen Schlüssel austauschen. Zum Auflisten der Schlüssel
in Ihrem öffentlichen Schlüsselbund verwenden Sie die
Befehlszeilen-Option
<link linkend="list-keys"><option>--list-keys</option></link>.
</para>

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --list-keys</userinput>
/users/alice/.gnupg/pubring.gpg
---------------------------------------
pub  1024D/FB5797A9 2000-06-06 Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;
sub  1024g/C8B3998F 2000-06-06
</screen>

<sect2>
<title>
Exportieren eines öffentlichen Schlüssels
</title>

<para>
Um jemandem Ihren öffentlichen Schlüssel zu schicken, müssen Sie
diesen zunächst exportieren. Hierzu benutzt man die Kommandozeilen-Option
<link linkend="export"><option>--export</option></link>.
Zur Indentifikation des zu exportierenden öffentlichen Schlüssels dient
entweder die Schlüssel-ID oder irgendein Teil der Benutzer-ID.
</para>

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --output alice.gpg --export alice@cyb.org</userinput>
</screen>

<para>
Der Schlüssel wird in einem binären Format exportiert, doch kann dies
unerwünscht sein, wenn Sie den Schlüssel per E-Mail verschicken oder auf
einer WWW-Seite veröffentlichen wollen. GnuPG unterstützt daher
die Kommandozeilen-Option <link
linkend="armor"><option>--armor</option></link><footnote><para>Viele
Kommandozeilen-Optionen, die häufig benutzt werden, können auch in
einer <link linkend="optionsfile">Konfigurationsdatei</link> definiert
<!--  Dieser Link scheint nicht zu greifen, beim Betrachten mit Netscape
      erscheint in dieser Fußnote das Wort "Konfigurationsdatei" 
      überhaupt nicht. Das sieht merkwürdig aus:
      "... können auch in einer definiert werden."
 -->
werden.</para></footnote> die bewirkt, daß der Output im ASCII-Format
ausgegeben wird. (Im Allgemeinen kann jeder Output von GnuPG -
beispielsweise Schlüssel, verschlüsselte Dokumente oder Unterschriften
- im ASCII-Format dargestellt werden, indem man die
<option>--armor</option>-Option hinzufügt.)
</para>

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --armor --export alice@cyb.org</userinput>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

[...]
-----END PGP PUBLIC KEY BLOCK-----
</screen>
</sect2>

<sect2>
<title>
Importieren eines öffentlichen Schlüssels
</title>

<para>
Ein öffentlicher Schlüssel kann zu Ihrem öffentlichen Schlüsselbund
hinzugefügt werden, und zwar mit folgender Option:
<link linkend="import"><option>--import</option></link>
</para>

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --import blake.gpg</userinput>
gpg: Schlüssel B2690E6F: Öffentlicher Schlüssel importiert
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg:            importiert: 1
<prompt>alice$ </prompt> <userinput>gpg --list-keys</userinput>
/users/alice/.gnupg/pubring.gpg
---------------------------------------
pub  1024D/FB5797A9 2000-06-06 Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;
sub  1024g/C8B3998F 2000-06-06

pub  1024D/B2690E6F 2000-06-06 Blake (Staatsanwalt) &lt;blake@cyb.org&gt;
sub  1024g/F251B862 2000-06-06
</screen>

<para><!-- muss noch überarbeitet werden -->
Wenn ein Schlüssel einmal importiert ist, sollte er auf Authentizität
überprüft werden. &Gnupg; arbeitet mit einem wirksamen und flexiblen
Vertrauensmodell, bei dem Sie nicht jeden Schlüssel persönlich zu
authentifizieren brauchen, den Sie importieren. Einige Schlüssel
können dies jedoch erfordern. Ein Schlüssel wird dadurch
authentifiziert, daß Sie den Fingerabdruck des Schlüssels überpüfen
und dann den Schlüssel unterschreiben, um seine Gültigkeit zu
bestätigen. Der Fingerabdruck eines Schlüssels kann schnell mit der
Befehlszeilen-Option
<link linkend="fingerprint"><option>--fingerprint</option></link>
geprüft werden, um aber den Schlüssel zu bestätigen, müssen Sie ihn
editieren.

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --edit-key blake@cyb.org</userinput>

pub  1024D/B2690E6F  created: 2000-06-06 expires: never      trust: -/q
sub  1024g/F251B862  created: 2000-06-06 expires: never     
(1)  Blake (Staatsanwalt) &lt;blake@cyb.org&gt;

<prompt>Befehl></prompt> <userinput>fpr</userinput>
pub  1024D/B2690E6F 2000-06-06 Blake (Staatsanwalt) &lt;blake@cyb.org&gt;
             Fingerprint: 6A51 852C 7491 95B5 C5F0  731C 141F C008 B269 0E6F

</screen>

Um den Fingerabdruck zu überprüfen, müssen Sie den Eigentümer des
Schlüssels kontaktieren und die Fingerabdrücke vergleichen. Sie können
persönlich oder per Telefon mit ihm sprechen oder auf beliebigem
anderen Wege kommunizieren, solange nur garantiert ist, daß es sich um
den rechtmäßigen Eigentümer handelt. Stimmen beide Fingerabdrücke
überein, dann können Sie sicher sein, daß Sie eine echte Kopie des
öffentlichen Schlüssels haben.
</para>

<para>
Nach dem Prüfen des Fingerabdrucks können Sie den Schlüssel
unterschreiben, um ihn zu authentifizieren. Da die Schlüsselüberprüfung
ein Schwachpunkt in der Kryptographie mit öffentlichem Schlüssel ist,
sollten Sie <emphasis>äußerste Sorgfalt</emphasis> walten lassen und
den Fingerabdruck eines Schlüssels <emphasis>immer</emphasis>
gemeinsam mit dem Eigentümer prüfen, bevor Sie den Schlüssel
unterschreiben.
</para>

<screen width="80">
<prompt>Befehl></prompt> <userinput>sign</userinput>

pub  1024D/B2690E6F  created: 2000-06-06 expires: never      trust: -/q
             Fingerprint: 6A51 852C 7491 95B5 C5F0  731C 141F C008 B269 0E6F

     Blake (Staatsanwalt) &lt;blake@cyb.org&gt;

Sind Sie wirklich sicher, daß Sie vorstehenden Schlüssel mit Ihrem
Schlüssel beglaubigen wollen: &ldquo;Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;&rdquo;

Wirklich unterschreiben?
</screen>

<para>
Sie können sich jederzeit vergewissern, welche Unterschrift Sie
hinzugefügt haben. Jede Benutzer-ID auf dem Schlüssel hat dann sowohl
eine oder mehrere Eigenbeglaubigungen als auch eine Unterschrift von
jedem Benutzer, der den Schlüssel authentifiziert hat.
</para>

<screen width="80">
<prompt>Befehl></prompt> <userinput>check</userinput>
uid  Blake (Staatsanwalt) &lt;blake@cyb.org&gt;
sig!       B2690E6F 2000-06-06   [Eigenbeglaubigung]
sig!       FB5797A9 2000-06-06   Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;

</screen>
</sect2>
</sect1>

<sect1>
<title>
Ver- und Entschlüsseln von Dokumenten
</title>

<para>
Der öffentliche und der geheime Schlüssel haben jeweils eine spezifische
Aufgabe beim Ver- und Entschlüsseln von Dokumenten. Das Public-Key-Verfahren
kann man sich wie einen offenen Safe vorstellen. Wenn jemand
ein Dokument unter Benutzung eines öffentlichen Schlüssels
verschlüsselt, wird dieses Dokument in den Safe gelegt, der Safe
geschlossen und das Kombinationsschloß mehrmals verdreht. Der
entsprechende geheime Schlüssel ist die Kombination, mit der man den
Safe wieder öffnen und das Dokument wieder herausholen kann. Mit
anderen Worten, es kann nur die Person, die den geheimen Schlüssel
hat, auf ein Dokument zugreifen, das unter Benutzung des dazugehörigen
öffentlichen Schlüssels verschlüsselt worden ist.
</para>

<para>
Das Verfahren für das Ver- und Entschlüsseln von Dokumenten ist bei
diesem Modell einfach: eine Nachricht an Alice verschlüsseln
Sie unter Verwendung von Alices öffentlichem Schlüssel, und diese
entschlüsselt sie mit ihrem geheimen Schlüssel. Umgekehrt geht es
genauso: Alice verschlüsselt eine Nachricht an Sie mit Ihrem
öffentlichen Schlüssel, welche Sie dann mit Ihrem geheimen Schlüssel
entschlüsseln können.
</para>

<para>
Um ein Dokument zu verschlüsseln, benutzt man die Option
<link linkend="encrypt"><option>--encrypt</option></link>.
Dazu müssen Sie die öffentlichen Schlüssel der vorgesehenen Empfänger
haben. Sollten Sie auf der Kommandozeile den Namen der zu
verschlüsselnden Datei nicht angeben, werden die zu verschlüsselnden
Daten von der Standard-Eingabe gelesen. Das verschlüsselte Resultat
wird auf die Standard-Ausgabe oder in die Datei, die durch die Option
<option>--output</option> spezifiziert ist, geschrieben. Das Dokument
wird darüberhinaus auch noch komprimiert.

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --output doc.gpg --encrypt --recipient blake@cyb.org doc</userinput>
</screen>

Mit der Option <link linkend="recipient"><option>--recipient</option>
</link> wird der öffentliche Schlüssel spezifiziert, mit dem das
Dokument verschlüsselt werden soll. Entschlüsseln läßt sich das so
verschlüsselte Dokument jedoch nur von jemandem mit dem dazugehörigen
geheimen Schlüssel. Das bedeutet konsequenterweise aber auch, daß Sie
selbst ein so verschlüsseltes Dokument nur wieder entschlüsseln
können, wenn Sie Ihren eigenen öffentlichen Schlüssel in die
<!-- (goretzki)      Ist das richtig? Mir jedenfalls unverständlich!     -->
Empfängerliste aufgenommen haben.
</para>

<para>
Zum Entschlüsseln einer Nachricht wird die Option
<link linkend="decrypt"><option>--decrypt</option></link> benutzt.
Sie benötigen dazu den geheimen Schlüssel, für den die Nachricht
verschlüsselt wurde und das Mantra, mit dem der geheime Schlüssel
geschützt ist.
</para>

<screen width="80">
<prompt>blake$ </prompt> <userinput>gpg --output doc --decrypt doc.gpg</userinput>
Sie benötigen ein Mantra, um den geheimen Schlüssel zu entsperren.
Benutzer: &ldquo;Blake (Staatsanwalt) &lt;blake@cyb.org&gt;&rdquo;
1024-Bit ELG-E Schlüssel, ID F251B862, erzeugt 2000-06-06 (Hauptschlüssel-ID B2690E6F)

Geben Sie das Mantra ein:
</screen>

<para>
Mit GnuPG können Sie aber auch ohne Anwendung eines 
Public-Key-Verfahrens Dokumente
verschlüsseln und stattdessen ein symmetrisches Verfahren benutzen. Der
Schlüssel für die symmetrische Verschlüsselung wird aus einem
Paßwort - besser noch, einem Paßwort-Satz -
generiert, das <emphasis>auf gar keinen Fall</emphasis> dem Mantra zum
Schutz Ihres privaten Schlüssels entsprechen sollte. Je länger das
gewählte Paßwort ist, desto sicherer ist der Schlüssel. Wenn Sie
diesen symmetrischen Schlüssel an jemanden weitergeben, sollten Sie
dazu einen sicheren Weg wählen. Ein Dokument läßt sich so durch
Benutzung der Option<link
linkend="symmetric"><option>--symmetric</option></link>verschlüsseln. 
</para>

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --output doc.gpg --symmetric doc</userinput>
Geben Sie das Mantra ein:
</screen>

<para>
Symmetrische Verfahren empfehlen sich beispielsweise, wenn Sie die
verschlüsselten Daten nicht weiter geben möchten, das Problem der
Paßwortübergabe also entfällt. Ein mögliches Anwendungsbeispiel wäre,
daß Sie alte E-Mails oder alte Datensätze aus Ihrer Umsatzstatisk auf
ihrer Festplatte oder einer CDROM archivieren und vor fremden
Zugriffen schützen möchten. Oder Sie können auch ganze Verzeichnisse
oder Festplatten verschlüsseln.
<!-- (goretzki) den Klammersatz: "(auch unter WinDOS?)"
                hier in den Kommentar geholt
 -->
</para>
</sect1>

<sect1>
<title>
Digitale Signaturen
</title>

<para>
Eine digitale Unterschrift oder Signatur ist am ehesten mit einem Siegel zu
vergleichen. Mit dem Siegel wird die Integrität eines Dokumentes
bestätigt, das sich in einem Umschlag befindet, und ermöglicht, daß
sich eine nachträgliche Manipulation feststellen läßt. Wenn das
Dokument nachfolgend in irgendeiner Weise verändert wird, ergibt die
Prüfung der Signatur ein negatives Ergebnis. Außerdem ermöglicht die
Signatur eine zweifelsfreie Zuordnung des Absenders.
Eine digitale Unterschrift kann so demselben Zweck wie eine handgeschriebene
Unterschrift dienen mit dem zusätzlichen Vorteil, eine Handhabe gegen
Verfälschung zu bieten. Die &gnupg;-Quelltextdistribution ist &eg; so
unterschrieben, daß die Benutzer nachprüfen können, daß der Quelltext
nachträglich nicht verändert worden ist und auch wirklich
vom GnuPG-Team stammt.
</para>

<para>
Die rechtliche Verbindlichkeit von digitalen Unterschriften ist von
Land zu Land verschieden. In Deutschland ist das Signaturgesetz
augenblicklich einer Novellierung unterworfen. Weitere Informationen
und Quellenverweise finden Sie in Kapitel 4.
</para>

<para>
Bei der Erzeugung und Prüfung von Unterschriften benutzt man das
öffentlich/geheime Schlüsselpaar anders als bei der Ver- und
Entschlüsselung. Die Unterschrift wird hier mit dem geheimen Schlüssel
des Unterzeichnenden erzeugt und dann jeweils mit dem entsprechenden
öffentlichen Schlüssel geprüft. So würde beispielsweise Alice ihren geheimen
Schlüssel benutzen, um ihren letzten Beitrag für eine Zeitschrift
zu signieren. Der Redakteur, der Alices Artikel bearbeitet,
benutzt dann ihren öffentlichen Schlüssel, um die Unterschrift zu
prüfen und so sicherzustellen, daß der Beitrag wirklich von Alice selbst
stammt und auch nicht nachträglich verändert worden ist.
</para>

<para>
Als Konsequenz aus der Verwendung digitaler Signaturen ergibt sich,
daß sich kaum abstreiten läßt, daß man eine digitale Unterschrift
geleistet hat, da dies ja bedeuten würde, daß der geheime Schlüssel
kompromittiert wurde.
<!-- (goretzki) Mir fällt zwar auch noch nichts besseres ein, aber
     diesen Satz halte ich hinsichtlich der Formulierung für noch
     sehr verbesserungswürdig.
 -->
</para>

<para>
Die Kommandozeilen-Option
<link linkend="sign-doc"><option>--sign</option></link> wird zum
Erzeugen einer digitalen Unterschrift verwendet. Mit der Option
<option>--output</option> legen Sie fest, in welche Datei das
signierte Dokument geschrieben wird.

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --output doc.sig --sign doc</userinput>

Sie benötigen ein Mantra, um den geheimen Schlüssel zu entsperren.
Benutzer: &ldquo;Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;&rdquo;
1024-bit DSA Schlüssel, 1024D/FB5797A9, erzeugt 2000-06-06

Geben Sie das Mantra ein:
</screen>

Das Dokument wird vor dem Unterschreiben komprimiert und die Ausgabe
erfolgt im binären Format.
</para>

<para>
Haben Sie ein unterschriebenes Dokument erhalten, können Sie
die Unterschrift prüfen, und zwar optional ohne oder mit Entnahme
des unterschriebenen Originaldokumentes.
Zur bloßen Überprüfung der Unterschrift
benutzen Sie die Option
<link linkend="verify"><option>--verify</option></link>.
Wenn Sie außerdem das unterzeichnete Dokument entnehmen
wollen, verwenden Sie die Option <option>--decrypt</option>.
</para>

<screen width="80">
<prompt>blake$ </prompt> <userinput>gpg --output doc --decrypt doc.sig</userinput>

gpg: Unterschrift vom Die 06 Jun 2000 17:19:52 CEST, DSA Schlüssel ID FB5797A9
gpg: Korrekte Unterschrift von &ldquo;Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;&rdquo;
</screen>

<sect2>
<title>
Dokumente mit Klartextsignatur
</title>

<para>
In Fällen, in denen es unerwünscht ist, das Dokument beim Unterschreiben zu
komprimieren, benutzt man die Option
<link linkend="clearsign"><option>--clearsign</option></link>. Das
bewirkt, daß eine in ASCII dargestellte Signatur das Dokument
wie ein Briefumschlag umgibt, das Dokument an sich aber
nicht verändert wird. Der Vorteil dieses Verfahrens ist, daß der
Empfänger das Dokument auch ohne Prüfung der Signatur lesen kann.
</para>

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --clearsign doc</userinput>

Sie benötigen ein Mantra, um den geheimen Schlüssel zu entsperren.
Benutzer: &ldquo;Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;&rdquo;
1024-Bit DSA Schlüssel, ID FB5797A9, erzeugt 2000-06-06

Geben Sie das Mantra ein:
</screen>

<para>
GnuPG markiert dann im Klartext den Anfang des signierten Dokuments und hängt am Ende einen Block mit der eigentlichen OpenPGP-Signatur an.
</para>

<screen width="80">
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hier steht irgend ein
von GnuPG signierter Text 
[...]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE5Pf40WyoKbftXl6kRAsWJAJ4hj7FzPX8M9MWZav9u6yjbHXWGKwCfSiKA
wTaJ/lfY1ETv3R/uJrtGTbI=
=BDOH
-----END PGP SIGNATURE-----
</screen>
</sect2>

<sect2>
<title>
Abgetrennte Signatur
</title>

<para>
Der Nachteil bei signierten Dokumenten ist, daß der Empfänger das
Originaldokument aus der unterschriebenen Version erst
wiederherstellen muß bzw. bei einem im Klartext unterschriebenen
Dokument dieses gegebenenfalls noch editieren muß. Deshalb gibt
es als Drittes noch die Möglichkeit, Dokumente mit abgetrennter
Unterschrift zu signieren. Dazu verwendet man die Option 
<link linkend="detach-signature"><option>--detach-sig</option></link>.
Die Signatur wird dann in einer separaten Datei abgelegt. Das
eigentliche Dokument bleibt unverändert.
</para>

<screen width="80">
<prompt>alice$ </prompt> <userinput>gpg --output doc.sig --detach-sig doc</userinput>

Sie benötigen ein Mantra, um den geheimen Schlüssel zu entsperren.
Benutzer: &ldquo;Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;&rdquo;
1024-Bit DSA Schlüssel, ID FB5797A9, erzeugt 2000-06-06

Geben Sie das Mantra ein:
</screen>

<para>
Um die Signatur zu prüfen, benötigen Sie sowohl das eigentliche
Dokument als auch die abgetrennte Unterschrift. Die Option
<option>--verify</option> kann zum Prüfen der Signatur benutzt
werden.
</para>

<screen width="80">
<prompt>blake$ </prompt> <userinput>gpg --verify doc.sig doc</userinput>
gpg: Unterschrift vom Die 06 Jun 2000 17:34:43 CEST, DSA Schlüssel ID FB5797A9
gpg: Korrekte Unterschrift von &ldquo;Alice (Rechtsanwältin) &lt;alice@cyb.org&gt;&rdquo;
</screen>
</sect2>
</sect1>
</chapter>

<!--
In the "Getting Started" chapter, it would be interesting to provide
a checklist of assumptions that the reader can consult to determine
whether or not she fits the "most users" profile.  Perhaps put this
at the end of the chapter (perhaps w/ forward pointer?).  You could
include cross references for each item on the list.  For example:

    23.  Your use of public key encryption has property X with attribute Y.
	 (see Section 3.4.1 for a more detailed discussion of other
	  attributes of property X)

What prompted this was wondering, as I read through the generating keypair
section, "under what circumstances would these defaults be inappropriate?"

The notion of using the same key with different user IDs "as an employee at
work and a political activist on the side" is interesting.  Knowing one,
could you be traced to the other?  (Are they separate numeric ids, and is
that enough?)  (seems someone could just match the public keys)

It's a very nice touch that you don't cover every single prompt that the
system throws at you, but instead treat them functionally.  For example,
I can imagine other books going through the "Comment:" and "Email Address:"
prompts.
-->

<!--
"Key verification is a weak point in public-key cryptography ..."
Saying "weak point" makes it sound like a slam on public key stuff.
Although we've talked about weaknesses of the trust model, I'm guessing
the point here is that communication is only secure if you verify the
identity of the key's owner.

Key verification can be done through any means "as long as you can
guarantee that you are communicating with the key's true owner".
I suspect we'd also like to prevent leaking information that an
interceptor could use to pose as us in a key verification step with
another party.	I suppose the notion of bootstrapping may not be widely
appreciated as an analogy.

I'm almost inclined to want to see a section in the Getting Started
guide called "Why you should read the rest of this book".  Failing
that, or perhaps better yet, maybe it would work to have some margin
notes that point to other sections of the book for more information
("a discussion of trust models begins on p. 95").
-->

