Sobald Sie den vorigen Tutorial-Schritt "Installation von PGP bzw. GnuPG" durchgeführt haben, ist Ihr PGP bzw. GnuPG einsatzbereit. Damit wir nun auch wirklich Nachrichten verschlüsselt senden und empfangen können, erzeugen wir als erstes ein Schlüsselpaar für uns selbst.
Bevor wir auf dem jeweiligen Betriebssystem (Linux, DOS, Windows 9x/NT) unser Schlüsselpaar erzeugen, vorab einige Informationen:
Ein Schlüsselpaar (privat/öffentlich) hat mehrere Aspekte:
Schlüsseltyp: Hier gibt es die beiden Typen "RSA" und "DSS/Diffie-Hellmann".
RSA-Schlüssel (benannt nach den Initialen von Ron Rivest, Adi Shamir und Leonard Adleman, den Erfindern dieses Verfahrens) sind patentgeschützt und erfordern ein ebenfalls patentgeschütztes Zusatzverfahren namens IDEA (= International Data Encryption Algorithm), das trotz seines Namens kein internationaler Standard, sondern ein patentgeschütztes Verfahren der Schweizer Firma Ascom Systec AG ist.
Wegen der Belastung der RSA-Schlüssel durch 2 kommerzielle Patente weicht PGP seit der Version 5.0 auf freie Techniken aus. Dazu gehören die sog. "DSS/Diffie-Hellmann"-Schlüssel. (Whitfield Diffie und Martin Hellmann sind die beiden "Väter" der asymmetrischen Verschlüsselung überhaupt. "DSS" steht für den amerikanischen "Digital Signature Standard".)
Da die DSS/Diffie-Hellmann-Schlüssel nicht nur frei von Patenten sind, sondern auch eine größere Schlüssellänge (und damit eine höhere Sicherheit) als RSA-Schlüssel ermöglichen, sollten RSA-Schlüssel heute nur noch verwendet werden, wenn mit "alten" PGP-Versionen (= 2.x) Nachrichten ausgetauscht werden müssen.
Dem Verschlüsselungsprojekt des Städtetags Baden-Württemberg liegt der OpenPGP-Standard und somit mindestens die PGP-Version 5.0 zugrunde. Daher empfiehlt sich als Schlüsseltyp der zukunftsträchtige Typ "DSS/Diffie-Hellmann".
Schlüssellänge: Soll die asymmetrische Verschlüsselung auch von einem Gegner mit hohen Rechnerressourcen (z. B. einem Geheimdienst) nicht zu knacken sein, so gilt eine Schlüssellänge von 1024 Bits heute nur noch als "knapp ausreichend". Daher empfiehlt sich als Sicherheitspuffer eine Schlüssellänge von 2048 Bits. (Phil Zimmermann, der "Vater" von PGP, verwendet heute für sich selbst einen 2048-Bit-DSS-Schlüssel - wir können also nicht allzu falsch liegen, wenn wir seinem Beispiel folgen.)
User-ID: Zu einem Schlüssel gehört (mindestens) eine User-ID, die in der Regel aus einem Namen und einer E-Mail-Adresse besteht. (Bsp: "Wolfgang Redtenbacher <wolfgang@redtenbacher.de>")
Diese User-ID ist noch keine Garantie dafür, daß der Schlüssel auch wirklich zu diesem User gehört. Sie ist jedoch eine Art Kommentar, der eine einfache Schlüsselbenennung ermöglicht.
Passphrase/Mantra: Das ist eine Art "Paßworttext", mit dem der Zugriff auf den eigenen/privaten Schlüssel geschützt wird. Dieser Zusatzschutz sorgt dafür, daß jemand, der die PGP-Schlüsseldateien stiehlt/kopiert, trotzdem nicht auf den privaten Schlüssel des Bestohlenen zugreifen kann, wenn er nicht auch das Mantra (= den Paßworttext) kennt. (Das Mantra wirkt also ähnlich wie die PIN zu einer Geldkarte.)
Für die Schritte 3 (Ver-/Entschlüsseln einer Nachricht) und 4 (Signieren einer Nachricht) unseres Tutorials brauchen wir bereits ein Schlüsselpaar. Um möglichst schnell zu den praktischen Übungen zu kommen, behandeln wir aber die Details des Schlüsselmanagements und seiner Tücken erst in den Schritten 5 und 6 (Validieren von Schlüsseln, Schlüsselmanagement).
Daher erzeugen wir nun zuerst nur einen Übungsschlüssel von beschränkter Gültigkeitsdauer, mit dem wir die Schritte 3 und 4 durchführen können, ohne Angst vor Fehlern im Schlüsselmanagement (und daraus entstehenden Sicherheitsrisiken) haben zu müssen. Wenn wir dann Erfahrung im Umgang mit PGP bzw. GnuPG haben, machen wir im Schritt 5 den "echten" Schlüssel für uns (bzw. die Poststelle unserer Firma/Stadtverwaltung) und führen dann natürlich saubere Validierungen und Schlüssel-Signierungen durch.
Hier sind nun die Schritte zur Erzeugung unseres Schlüsselpaars für die nächsten Übungen:
Starten Sie die Schlüsselgenerierung mit folgendem Befehl:
pgpk -g
("pgpk" ist das PGP-Key-Modul, und "-g" steht für "generate key"), und beantworten Sie dann die angezeigten Fragen wie folgt:
"Choose the type of your public key:"
Geben Sie hier "1" (= DSS/Diffie-Hellmann) ein.
"Pick your public/private keypair key size:"
Geben Sie hier "3" (= 2048/1024 bits = military grade) ein.
"Enter a user ID for your public key:"
Geben Sie hier "MailTest <test@IhreFirma.de>" ein.
("IhreFirma.de" ist dabei natürlich durch Ihren
wirklichen Domainnamen zu ersetzen. Der User-Name
"MailTest" soll verhindern, daß dieser Schlüssel
je "ernst genommen" wird, wenn er aus Versehen in Umlauf geraten
sollte.)
"Enter the validity period of your key in days:"
Geben Sie hier "30" ein. Dadurch wird die
Gültigkeitsdauer des Übungsschlüssels automatisch auf 1
Monat begrenzt.
"Enter passphrase:"
Geben Sie hier einen Paßworttext ein, an den Sie sich bestimmt
stets erinnern können. Falls Ihnen gerade nichts Passendes
einfällt, wählen Sie als Paßworttext das Wort
"MailTest". (Wenn Sie später den "echten"
Schlüssel für Ihre Firma/Stadtverwaltung erzeugen, dürfen
Sie natürlich kein Trivial-Paßwort verwenden, das mit
dem User-Namen identisch ist. Aber das behandeln wir dann im Schritt 5 des Tutorials.)
"Keypair created successfully. If you wish to send ... If not,
enter nothing."
Drücken Sie hier nur die Return-Taste, ohne etwas einzugeben. (Wir
wollen unser Übungspaßwort natürlich nicht an
einen offiziellen PGP-Schlüsselserver senden!)
Damit ist die Schlüsselgenerierung fertig. Exportieren Sie zum Abschluß den neuen Schlüssel mit folgendem Befehl:
pgpk -x MailTest -o mailtest.asc
("-x MailTest" steht hier für den "Export" des Schlüssels zur User-ID "MailTest", "-o mailtest.asc" gibt die Ausgabedatei [engl. "outfile"] an.)
Der öffentliche Teil Ihres Übungsschlüssels befindet sich nun in der Datei "mailtest.asc".
Starten Sie die Schlüsselgenerierung mit folgendem Befehl:
pgpk -g
("pgpk" ist das PGP-Key-Modul, und "-g" steht für "generate key"), und beantworten Sie dann die angezeigten Fragen wie folgt:
"Choose the type of your public key:"
Geben Sie hier "1" (= DSS/Diffie-Hellmann) ein.
"Pick your public/private keypair key size:"
Geben Sie hier "3" (= 2048/1024 bits = military grade) ein.
"Enter a user ID for your public key:"
Geben Sie hier "MailTest <test@IhreFirma.de>" ein.
("IhreFirma.de" ist dabei natürlich durch Ihren
wirklichen Domainnamen zu ersetzen. Der User-Name
"MailTest" soll verhindern, daß dieser Schlüssel
je "ernst genommen" wird, wenn er aus Versehen in Umlauf geraten
sollte.)
"Enter the validity period of your key in days:"
Geben Sie hier "30" ein. Dadurch wird die
Gültigkeitsdauer des Übungsschlüssels automatisch auf 1
Monat begrenzt.
"Enter passphrase:"
Geben Sie hier einen Paßworttext ein, an den Sie sich bestimmt
stets erinnern können. Falls Ihnen gerade nichts Passendes
einfällt, wählen Sie als Paßworttext das Wort
"MailTest". (Wenn Sie später den "echten"
Schlüssel für Ihre Firma/Stadtverwaltung erzeugen, dürfen
Sie natürlich kein Trivial-Paßwort verwenden, das mit
dem User-Namen identisch ist. Aber das behandeln wir dann im Schritt 5 des Tutorials.)
Da DOS über keinen eingebauten echten Zufallsgenerator verfügt, werden Sie anschließend aufgefordert, einen zufälligen Text über die Tastatur einzugeben:
"Please enter some random text on your keyboard until you hear the beep:"
Anhand der Zeitabstände zwischen Ihren Tastenbetätigungen werden Zufallszahlen generiert, bis die Prüfroutinen von PGP die erforderliche "Zufälligkeit" verifiziert haben. Dann erscheint der Hinweis:
"Enough, thank you."
und kurz darauf:
"Keypair created successfully."
Damit ist die Schlüsselgenerierung fertig. Exportieren Sie zum Abschluß den neuen Schlüssel mit folgendem Befehl:
pgpk -x MailTest -o mailtest.asc
("-x MailTest" steht hier für den "Export" des Schlüssels zur User-ID "MailTest", "-o mailtest.asc" gibt die Ausgabedatei [engl. "outfile"] an.)
Der öffentliche Teil Ihres Übungsschlüssels befindet sich nun in der Datei "mailtest.asc".
Starten Sie das Programm "PGPkeys" (z. B. über die Menüfolge "Start" -> "Programme" -> "PGP" -> "PGPkeys").
Wählen Sie dort die Menüfolge "Keys" -> "New Key ...", um den "Key Generation Wizard" zu starten.
Klicken Sie dort auf "Weiter", und tragen Sie im nächsten Bildschirm als "Full name" den Übungsnamen "MailTest" und als "Email address" die Übungsadresse "test@IhreFirma.de" ein. ("IhreFirma.de" ist dabei natürlich durch Ihren wirklichen Domainnamen zu ersetzen. Der User-Name "MailTest" soll verhindern, daß dieser Schlüssel je "ernst genommen" wird, wenn er aus Versehen in Umlauf geraten sollte.)
Klicken Sie dann auf die Schaltfläche "Weiter", und wählen Sie im nächsten Bildschirm als "Key Pair Type" den Wert "Diffie-Hellman/DSS" aus.
Klicken Sie danach auf die Schaltfläche "Weiter", und wählen Sie im nächsten Bildschirm als "Key Pair Size" den Wert "2048 bits" aus.
Klicken Sie erneut auf die Schaltfläche "Weiter", wählen Sie im nächsten Bildschirm bei "Key Expiration" die Option "Key Pair expires on ..." aus, und geben Sie ein Ablaufdatum ein, das 1 Monat in der Zukunft liegt. Dadurch wird die Gültigkeitsdauer des Übungsschlüssels automatisch auf 1 Monat begrenzt.
Ein Klick auf die Schaltfläche "Weiter" bringt Sie zur Festlegung der "Passphrase". Geben Sie hier einen Paßworttext ein, an den Sie sich bestimmt stets erinnern können. Falls Ihnen gerade nichts Passendes einfällt, wählen Sie als Paßworttext das Wort "MailTest". (Wenn Sie später den "echten" Schlüssel für Ihre Firma/Stadtverwaltung erzeugen, dürfen Sie natürlich kein Trivial-Paßwort verwenden, das mit dem User-Namen identisch ist. Aber das behandeln wir dann im Schritt 5 des Tutorials.)
Nach Doppeleingabe der "Passphrase" und Klicken auf "Weiter" erzeugt PGP Ihr Schlüsselpaar. (Dabei kann es sein, daß Sie vom Programm noch zu zufälligen Tastatureingaben aufgefordert werden - ähnlich wie oben beim Betriebssystem DOS.)
Sobald der Hinweis "Complete" erscheint, klicken Sie auf "Weiter". Stellen Sie im nächsten Bildschirm sicher, daß das Kästchen neben "Send my key to the root server now" nicht angekreuzt ist (denn wir wollen unser Übungspaßwort natürlich nicht an einen offiziellen PGP-Schlüsselserver senden!), und klicken Sie erneut auf "Weiter" und im nächsten Bildschirm auf "Fertigstellen".
Damit ist die Schlüsselgenerierung abgeschlossen, und Ihr neues Schlüsselpaar erscheint auf Ihrem "Schlüsselbund".
Um den Übungsschlüssel zu exportieren, markieren Sie den Schlüssel "MailTest" und wählen dann die Menüfolge "Keys" -> "Export ...". In der daraufhin angezeigten Dialogbox ist als Dateiname für die Exportdatei bereits der Name "mailtest.asc" eingetragen. Stellen Sie sicher, daß die beiden Optionen "Include Private Key(s)" und "Include 6.0 Extensions" nicht angekreuzt sind, und klicken Sie dann auf die Schaltfläche "Speichern".
Der öffentliche Teil Ihres Übungsschlüssels befindet sich nun in der Datei "mailtest.asc".
Starten Sie die Schlüsselgenerierung mit folgendem Befehl:
pgp -kg
("-kg" steht hier für "key generate"), und beantworten Sie dann die angezeigten Fragen wie folgt:
"Choose the public-key algorithm to use with your new
key:"
Geben Sie hier "1" (= DSS/DH) ein.
"Choose the type of key you want to generate:"
Geben Sie hier "1" (= Generate a new signing key) ein.
"Pick your DSS ``master key'' size:"
Geben Sie hier "1" (= 1024 bits = maximum size) ein.
"Enter a user ID for your public key:"
Geben Sie hier "MailTest <test@IhreFirma.de>" ein.
("IhreFirma.de" ist dabei natürlich durch Ihren
wirklichen Domainnamen zu ersetzen. Der User-Name
"MailTest" soll verhindern, daß dieser Schlüssel
je "ernst genommen" wird, wenn er aus Versehen in Umlauf geraten
sollte.)
"Enter the validity period of your signing key in
days:"
Geben Sie hier "30" ein. Dadurch wird die
Gültigkeitsdauer des Übungsschlüssels automatisch auf 1
Monat begrenzt.
"Enter pass phrase:"
Geben Sie hier einen Paßworttext ein, an den Sie sich bestimmt
stets erinnern können. Falls Ihnen gerade nichts Passendes
einfällt, wählen Sie als Paßworttext das Wort
"MailTest". (Wenn Sie später den "echten"
Schlüssel für Ihre Firma/Stadtverwaltung erzeugen, dürfen
Sie natürlich kein Trivial-Paßwort verwenden, das mit
dem User-Namen identisch ist. Aber das behandeln wir dann im Schritt 5 des Tutorials.)
"PGP will generate a signing key. Do you also require an
encryption key? (Y/n)"
Geben Sie hier "y" (= yes) ein.
"Pick your DH key size:"
Geben Sie hier "2" (= 2048 bits = military grade) ein.
"Enter the validity period of your encryption key in
days:"
Geben Sie hier "30" (= denselben Wert wie für den
DSS-"Hauptschlüssel") ein.
Anschließend werden Sie aufgefordert, einen zufälligen Text über die Tastatur einzugeben:
"Please enter some random text on your keyboard until the indicator reaches 100%:"
Anhand der Zeitabstände zwischen Ihren Tastenbetätigungen werden Zufallszahlen generiert, bis die Prüfroutinen von PGP die erforderliche "Zufälligkeit" verifiziert haben. Dann erscheint der Hinweis:
"Enough, thank you."
und kurz darauf:
"Make this the default signing key? (Y/n)"
Geben Sie hier "y" (= yes) ein.
Daraufhin erscheint die Abschlußmeldung:
"Key generation completed."
Damit ist die Schlüsselgenerierung fertig. Exportieren Sie zum Abschluß den neuen Schlüssel mit folgendem Befehl:
pgp -kx MailTest mailtest.asc
("-kx MailTest" steht hier für "key export" des Schlüssels zur User-ID "MailTest", "mailtest.asc" gibt die Ausgabedatei an.)
Der öffentliche Teil Ihres Übungsschlüssels befindet sich nun in der Datei "mailtest.asc".
Starten Sie die Schlüsselgenerierung mit folgendem Befehl:
gpg --gen-key
("--gen-key" steht für "generate key"), und beantworten Sie dann die angezeigten Fragen wie folgt:
"Bitte wählen Sie, welche Art von Schlüssel Sie
möchten:"
Geben Sie hier "1" (= "DSA/ElGamal", was dem PGP-Typ
"DSS/Diffie-Hellman" entspricht) ein.
"Welche Schlüssellänge wünschen Sie?"
Geben Sie hier "2048" ein, und beantworten Sie die
Sicherheitsabfrage "Brauchen Sie wirklich einen derartig langen
Schlüssel?" mit "j" für "ja".
"Der Schlüssel bleibt wie lange gültig?"
Geben Sie hier "30" ein, und beantworten Sie die
Sicherheitsabfrage "Der Schlüssel verfällt am ... Ist
dies richtig? (j/n)" mit "j" für "ja". Dadurch
wird die Gültigkeitsdauer des Übungsschlüssels
automatisch auf 1 Monat begrenzt.
Als nächstes werden die Bestandteile der User-ID in 3 Schritten erfragt:
"Ihr Name ("Vorname Nachname"):"
Geben Sie hier "MailTest" ein.
(Der User-Name "MailTest" soll verhindern, daß der
Übungsschlüssel je "ernst genommen" wird, wenn er aus Versehen
in Umlauf geraten sollte.)
"E-Mail-Adresse:"
Geben Sie hier "test@IhreFirma.de" ein.
("IhreFirma.de" ist dabei natürlich durch Ihren
wirklichen Domainnamen zu ersetzen.)
"Kommentar:"
Drücken Sie hier die Return-Taste, ohne etwas einzugeben, und
bestätigen Sie die Sicherheitsabfrage "Sie haben diese
User-ID gewählt: ..." mit "F" für
"Fertig".
"Geben Sie das Mantra ein:"
Geben Sie hier einen Paßworttext ein, an den Sie sich bestimmt
stets erinnern können. Falls Ihnen gerade nichts Passendes
einfällt, wählen Sie als Paßworttext das Wort
"MailTest". (Wenn Sie später den "echten"
Schlüssel für Ihre Firma/Stadtverwaltung erzeugen, dürfen
Sie natürlich kein Trivial-Paßwort verwenden, das mit
dem User-Namen identisch ist. Aber das behandeln wir dann im Schritt 5 des Tutorials.)
Anschließend errechnet GnuPG das Schlüsselpaar. Da dazu u. a. viele Zufallswerte errechnet werden müssen, können Sie diesen Vorgang beschleunigen, indem Sie entweder mit den Tasten [Strg], [Alt], [Shift] oder der Maus herumspielen oder in einem anderen Fenster ein beliebiges Programm aufrufen und benutzen.
Anhand der Zeitabstände zwischen Ihren Tastenbetätigungen werden Zufallszahlen generiert, bis die Prüfroutinen von GnuPG die erforderliche "Zufälligkeit" verifiziert haben. (GnuPG nimmt diese Prüfung sehr genau und arbeitet im Unterschied zu PGP nicht mit teilweise vorausberechneten Werten. Daher kann dieser Rechenschritt auch auf einem schnellen PC einige Minuten lang dauern.)
Schließlich erscheint dann die Erfolgsmeldung:
"Öffentlichen und geheimen Schlüssel erzeugt und signiert."
Damit ist die Schlüsselgenerierung fertig. Exportieren Sie zum Abschluß den neuen Schlüssel mit folgendem Befehl:
gpg -a -o mailtest.asc --export MailTest
("-a" steht hier für das ASCII-Transportformat [statt binär], "-o mailtest.asc" gibt die Ausgabedatei [engl. "output"] an, und "--export MailTest" bewirkt den Export des Schlüssels zur User-ID "MailTest".)
Der öffentliche Teil Ihres Übungsschlüssels befindet sich nun in der Datei "mailtest.asc".
Sobald Sie Ihren Übungsschlüssel für den User "MailTest" fertiggestellt und exportiert haben, können Sie diesen Schlüssel (einschließlich der Begrenzungszeilen mit "BEGIN PGP PUBLIC KEY BLOCK" und "END PGP PUBLIC KEY BLOCK") in eine E-Mail kopieren und in dieser Form einem Übungspartner zusenden. (Um die Tutorial-Schritte 3 und 4 wirklichkeitsnah durchzuführen, sollten Sie dafür einen Übungspartner haben.)
Im nächsten Tutorial-Schritt werden wir nun unseren frisch erzeugten Schlüssel benutzen, um mit PGP bzw. GnuPG Nachrichten zu verschlüsseln und zu entschlüsseln.
[Zurück zur Hauptseite des Verschlüsselungsprojekts] [Zum vorigen Tutorial-Schritt] [Zum nächsten Tutorial-Schritt]