zur Startseitezur Info-Startseite

Kryptografie-Grundfunktionen

Verschlüsselung

Aus dem Mailtext

Hallo, meine Liebe,

heute abend geht klar, ich bin gegen acht da. [...]

wird

-----BEGIN PGP MESSAGE-----
Version: GnuPG v2.0.19 (GNU/Linux)

hQEMA3ZDEfKB8GFpAQf/Xd2m0P6lKaomzhyhLTPyhuNM7g7yXI3sXX8sdL1W4C99
JkOb9R693op/mk30ZWEiy+YBctTouNFDZwWTmChqt+Vq0SYDBTmRZeXnzhW++qxC
p4m2CP6gfpcHBcLHdHioBQrYMCGc8lmZHu7yh+j/27R31LS5eOS/ef3zOhCkcb9n
E694IxrYbkJlF72ktfCWPcEiotAB684WzaHvqb8lAK19m/BuvqL8dzsRhkkzeIb0
lnUftDQh32xBbG7KpGq999NVoopEx/Zi0oXpVv3RqK3/bbnE3ksUnLJL59RL4mwI
M0AEncGYNNfMM+aTZyCC/NzsdHzAqhZcNEBGNJYM6dJ0Af3+UxO1xPFl9+utRjOj
s+HCMEsgCJCCw9GFcwpj0kpIPHY01iZSY+lRfMEETv+U6xjuCclghNK2stBeYhh8
yufIKiQTvFgxZPbdGuWU/zKw92r7zNhJ+kZjvlOOGcQXZGHdrT68qomVm+2Od/Kc
bj63Y+Q=
=+ejr
-----END PGP MESSAGE-----

Die verwendeten Schlüssel kann man dabei problemlos so lang machen, dass auch ein Geheimdienst daran scheitern würde, die Nachricht zu entschlüsseln (wenn er dafür nur die verschlüsselte Nachricht zur Verfügung hätte, sich also den Schlüssel nicht einfach klauen könnte). OpenPGP (genauso S/MIME) sichert aber nur den Inhalt der Mail, nicht aber den Betreff. Wenn der also Date heute abend ist, hat man mit der Verschlüsselung nicht viel gewonnen.

Signatur (digitale Unterschrift)

Aus dem Mailtext

Sehr geehrter Herr Müller,

entsprechend Ihrem Angebot (siehe Anhang) bestelle ich hiermit die Waschmaschine.


Mit freundlichen Grüßen

Hauke Laging

wird (zum Beispiel, es gibt da mehrere Varianten)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Sehr geehrter Herr Müller,

entsprechend Ihrem Angebot (siehe Anhang) bestelle ich hiermit die Waschmaschine.


Mit freundlichen Grüßen

Hauke Laging
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)

iQGgBAEBCACKBQJQ12QHRxSAAAAAAB4AIHNpZ25hdHVyZS1pbmZvQGhhdWtlLWxh
Z2luZy5kZURpZXMgaXN0IG51ciBlaW5lIERlbW8tU2lnbmF0dXIuOxpodHRwOi8v
d3d3LmhhdWtlLWxhZ2luZy5kZS9vcGVucGdwL3BvbGljeV9fMHgxYTU3MWRmNS5o
dG1sAAoJEEhrF6s/lq2OJ6QH/A62ShITGpSrrhDqISPTaCiTyuKE7T8D9hM+smZK
cJTHTOEqEgW3BfxeOPmeud2bnh1qRkNLPjX//q6K80e6JAn8jH9xh3GSQQH+geel
XNZ9sjJUsM/Ux3KlzY7MRYXkrcC8mHqOY8/c717E/0UfQ2nYZ9oXizQSmObTCM/N
USP+1csFhtEAEnhscLJQlHjwZr3+AWofH7Zu+TY6VuYaGtZGFrLZA6LSuohqiexl
9yWIBi2pXGOFuNo6NPPEanrPo7419wOhFwGI8zCqw7CyfRjfkCw3ImBXkcYzOukj
HiCS2FILpF+VTRs92VtSqhSt1DE677FIzY+WN65i5RZVpLk=
=HbWQ
-----END PGP SIGNATURE-----

Auch hier gilt: Da die für die Unterschrift verwendeten Schlüssel so lang sind (entspricht im Standardfall einer Dezimalzahl mit 34 Stellen), kann man auch mit einem irren Aufwand so eine Unterschrift nicht fälschen (und auch hier gilt: vergleichsweise leicht kann man den Schlüssel klauen...). Man kann also mit kryptografischen Signaturen belegen, dass eine Nachricht von einem selber stammt. Die Gründe dafür können ganz unterschiedlich sein:

asymmetrische Kryptografie / Schlüsselpaare

Es gibt zwei grundsätzlich verschiedene Arten von Verschlüsselung. Die klassische nennt man symmetrische Verschlüsselung: Dasselbe Geheimnis (Passwort) wird zur Verschlüsselung und Entschlüsselung der Daten verwendet. Diese Technik gibt es viel länger als Computer.

Die andere, die kompliziertere Variante, die heute die dominante Rolle spielt, ist asymmetrische Verschlüsselung (dieselbe Technik erlaubt das Unterschreiben von Daten). Nach einem komplizierten mathematischen Verfahren werden zwei (meist sehr lange) Zahlen generiert, die so zusammenhängen,

Dies ist intuitiv kaum zu verstehen; man sollte das einfach so hinnehmen. Beim Umgang mit symmetrischer verschluesselung muss man darauf achten, dass die Übermittlung des gemeinsamen Geheimnisses nicht abgehört wird. Bei asymmetrischer Verschlüsselung muss man darauf achten, dass man nicht den falschen öffentlichen Schlüssel verwendet (der einem womöglich gezielt untergeschoben wird). Die Organisation asymmetrischer Kryptosysteme dreht sich ganz überwiegend darum, die richtige Zuordnung von öffentlichen Schlüsseln zu Personen oder Organisationen sicherzustellen.

Zertifikate / öffentliche Schlüssel

Man braucht aber nicht nur die großen Zahlen, um Verschlüsselungen und Signaturen zu sichern. Damit das System praktikabel wird, muss man diese Zahlen (die eigentlichen Schlüssel) an Identitäten binden, also zum Beispiel an Namen und / oder E-Mail-Adressen (oder im Fall von SSL/TLS eben an DNS-Namen wie www.openpgp-schulungen.de oder gleich an die IP-Adresse des Rechners). OpenPGP-Zertifikate enthalten neben dem öffentlichen Hauptschlüssel (und eventuell öffentlichen Unterschlüsseln) mindestens ein Textfeld, das üblicherweise einen Namen und / oder eine E-Mailadresse enthält. Dieses Feld nennt man User-ID (UID). Im einfachsten Fall sieht ein OpenPGP-Zertifikat etwa so aus:

pub   4096R/0x1A571DF5 2012-11-04 [verfällt: 2013-11-04]
uid         [ uneing.] Hauke Laging (Standardadresse) <hauke@laging.de>

Die Anzeige beschreibt die Länge, den Typ und die (short) ID des Hauptschlüssels. Das Textfeld besteht aus Name, Kommentar und E-Mailadresse. In der Praxis haben Zertifikate meist noch mindestens einen Unterschlüssel und weitere User-IDs:

pub   4096R/0x1A571DF5 2012-11-04 [verfällt: 2013-11-04]
uid         [ uneing.] Hauke Laging (Standardschlüssel: siehe policy URL und signature notations)
uid         [ uneing.] Hauke Laging (Standardadresse) <hauke@laging.de>
uid         [ uneing.] Hauke Laging (nur für Mailinglisten) <mailinglisten@hauke-laging.de>
sub   2048R/0x3F96AD8E 2012-11-04 [verfällt: 2013-11-04]
sub   2048R/0x81F06169 2012-11-04 [verfällt: 2013-11-04]
sub   2048R/0x34288BDC 2012-11-04 [verfällt: 2013-11-04]

Man kann also für mehrere E-Mail-Adressen wahlweise mehrere Schlüssel oder auch denselben Schlüssel verwenden. Was sinnvoller ist, hängt von der Art der Adressen (privat, beruflich), den persönlichen Vorlieben und Möglichkeiten sowie den organisatorischen Umständen ab.

Damit man den Schlüssel einer Person, Organisation oder E-Mail-Adresse nach einer geeigneten Überprüfung sicher zuordnen kann, muss man ihn eindeutig identifizieren können. Es ist nicht praktikabel, eine ganze Datei oder auch nur eine Zahl von mehreren tausend Bit Länge zu vergleichen. Man behilft sich deshalb mit einem zwar komprimierten, aber immer noch so langen Wert, dass er eindeutig ist und auf Grund seiner Länge und Konstruktion vor "Nachbauversuchen" (man sucht eine Schlüsselzahl, die zu diesem Wert passt) sicher ist. Man nennt diesen Wert einen Hashwert oder Fingerabdruck (Fingerprint). Das ist bei OpenPGP standardisiert aktuell eine 160-Bit-Zahl (SHA-1). Für den Beispielschlüssel sieht dieser Wert so aus:

7D82 FB9F D25A 2CE4 5241  6C37 BF4B 8EEF 1A57 1DF5

Wenn man sich diesen Wert aus einer sicheren Quelle besorgt (persönliches Treffen mit dem Schlüsselbesitzer; zur Not Vorlesen am Telefon; Abdruck in einer Zeitschrift) und ihn mit dem von irgendwo heruntergeladenen Schlüssel erfolgreich vergleicht, hat man die Gewissheit, dass man nicht nur für irgendwen verschlüsselt, sondern für den beabsichtigten Adressaten bzw. dass man nicht bloß irgendeine digitale Unterschrift hat, sondern eine von demjenigen, dessen Unterschrift man gern hätte.

Diese technische Sicherheit ist nicht mit rechtlicher Sicherheit (als gäbe es so etwas...) zu verwechseln. Für Rechtssicherheit muss man einem Dritten gegenüber (typischerweise dem Gericht) beweisen, dass der Schlüssel der fraglichen Person gehört und (das dürfte oftmals schwieriger sein) dass er im Moment der Erzeugung der digitalen Unterschrift nicht kompromittiert war. Ersteres kann man erreichen, indem man den Schlüsselbesitzer eine Erklärung unterschreiben lässt, dass der Schlüssel mit dem genannten Fingerprint ihm gehört und er sich daran gebunden fühlt (was bei unsicheren Schlüsseln berechtigtermaßen kaum der Fall wäre). Der zweite Aspekt ist in der OpenPGP-Welt schwierig umzusetzen. Für beide Probleme gibt es klare Regelungen für Qualifizierte Signaturen; das ist dann aber nicht mehr OpenPGP, sondern X.509 (S/MIME). Besser als alles, was man in der digitalen Welt sonst so hat, sind OpenPGP-Signaturen (das Signaturgesetz nennt sie fortgeschrittene Signaturen) allemal.

weiterführende Informationen