Ch.
B.
Meyer
Kryptoseite
Zitate
"Der Einsatz kryptographischer Verfahren ist von außerordentlicher Bedeutung [...]. Dies gilt sowohl für die Gewährleistung der Authentizität und Integrität des Datenverkehrs, wie auch für den Schutz der Vertraulichkeit."
(Bundesregierung 1999/vgl. 2001)
Auch wenn Du nicht paranoid bist, heißt das noch lange nicht, dass sie
nicht hinter Dir her sind.
frei nach Terry Pratchett
Phil Zimmermann, Erfinder von PGP
"If privacy is outlawed, only outlaws will have privacy."
"Wenn Privatsphäre verboten wird, haben nur Gesetzlose Privatsphäre."
Phil Zimmermann
"Privacy is a right like any other. You have to exercise it or risk losing it."
"Privatsphäre ist ein Recht wie jedes andere. Man muss es in Anspruch nehmen oder man riskiert, es zu verlieren."
Phil Zimmermann
Hauptziele der Kryptographie:
- Vertraulichkeit wird durch moderne Verschlüsselung erreicht. Das ist noch nicht einmal anrüchig, denn das Internet ist ein öffentlicher Raum und auch wenn ich keine großen Geheimnisse habe, geht nicht jeden meine gesamte Privatsphäre etwas an. Das ist auch der Grund, warum viele Internetverbindungen ebenfalls (vom Nutzer unbemerkt) verschlüsselt sind. Das gleiche wünsche ich mir auch für meine e-Mails, doch hier fehlt der vorinstallierte Schutz und alle Mails (z.B. die von meiner Bank), Rechnungen, Verträge, Bestellbestätigungen usw. sind für Angreifer leicht zugänglich.
Außerdem wird das Medium e-Mail auch im beruflichen Umfeld eingesetzt, auch dort, wo Datenschutz und Vertrauen eine große Rolle spielen. Denken Sie bitte nur einmal an die Wirtschaft, öffentliche Verwaltungen, den polizeilichen Bereich, Banken, Ärzte, Journalisten, Rechtsanwälte, Steuerberater, Pfarrer und so weiter. Kaum auszumalen, wenn dort Informationen in die falschen Hände fielen.
- Integrität und Autentizität gewährleisten, dass ich als Empfänger der Nachricht sicher sein kann, von wem die Nachricht stammt und dass sie nicht "unterwegs" verändert wurde. Dies kann durch eine digitale Signatur erreicht werden. Technisch gesehen wird dabei zunächst eine Prüfsumme (Hash-Wert) der Nachricht berechnet und dann mit dem privaten Schlüssel verschlüsselt. Der Empfänger entschlüsselt die Prüfsumme (mit dem öffentlichen Schlüssel des Absenders) und vergleicht diese mit der selbst errechneten Prüfsumme der empfangenen Nachricht. Ist die Signatur gebrochen, so ist die empfangene Nachricht nicht mit der gesendeten identisch.
Aber Vorsicht: Wenn beispielsweise ein Mailprogramm (des Sender oder des Empfängers) automatisch einen Zeilenumbruch einfügt, um die Nachricht auf den Bildschirm einzupassen, oder Leerzeichen am Zeilenende verwirft, geschieht genau das: Die signierte Nachricht wird verändert, die Signatur ist gebrochen.
Um dem Vorzubeugen, empfiehlt es sich, die Zeilen vor dem Signieren (von Hand) nach 65-72 Zeichen umbrechen. Außerdem sollte man nur Mails im Text-Format (also keine HTML-Mails) versenden, aber dafür gibt es auch noch andere Gründe.
Programme zur Kryptographie:
Es gibt mehrere Programme, die den OpenPGP-Standard unterstützen. Das bekannteste (freie) davon ist GnuPG, welches auch von verschiedenen deutschen Ministerien gefördert wurde, um eine "herstellerneutrale, sichere und internationalen Standards entsprechende Kryptografie-Infrastruktur" aufzubauen. Da GnuPG "nur" ein Kommandozeilenprogramm ist, gibt es verschiedene Frontends und Softwarepakete dazu (die ihrerseits GnuPG wieder integriert haben):
- Für Windows kann ich z.Zt. (2009) Pgp4win empfehlen, da es aktuelle Programmversionen beinhaltet und aktiv gepflegt wird. Auch existiert ein hilfreiches Kompendium dazu.
- Ebenfalls aktuelle Programmversionen enthält GnuPG-Pack. Dieses Programmpaket (das übrigens von einem Diplom Theologen zusammengestellt wurde und aktiv weiter gepflegt wird) enthält auch GPGrelay (einen lokalen eMail-Relayserver, der im Hintergrund E-Mails verschlüsselt).
- Für GNU/Linux (und andere freie Betriebssysteme) ist es leichter, da hier die entsprechende Software bereits in der Standardinstallation enthalten ist (z.B. Seahorse bei Gnome).
Für Kryptographie-Interessierte gibt es auch noch ein paar nette Einstiege und Lernangebote:
- http://www.cryptool-online.org/ (deutschsprachig) ist eine leichtverständliche Einführung in verschiedene Verschlüsselungsverfahren, die gleich im Browser ausprobiert werden können.
- The Code Book on CD-ROM (englisch) ist eine nette und kostenlose multimediale CD-ROM von Simon Singh mit kurzweiligen Hintergrundinformationen und vielfältigen Beispielen.
- CrypTool (deutschsprachig) ist ein Lernprogramm zur Kryptographie, welches das Ausprobieren verschiedener Verfahren ermöglicht und viele Animationen sowie ein Skript und eine Präsentation mitbringt.
Wie funktioniert das?
Bei asymmetrischen Verfahren werden immer zwei Schlüssel erzeugt: ein öffentlicher Schlüssel und ein privater (geheimer) Schlüssel.
- Verschlüsseln kann der Sender einer Nachricht mit dem öffentlicher Schlüssel des Empfängers. Das heisst, wer verschlüsselte Nachrichten erhalten möchte, muss seinen öffentlichen Schlüssel für andere zugänglich machen. Dieser kann sinnvollerweise (muss aber nicht) auf einem sogenannten Schlüssel- bzw. Keyserver veröffentlicht werden (z.B. http://pgp.mit.edu/, doch das erledigt Gpg4win auf Wunsch), damit er, ähnlich der Telefonnummer im Telefonbuch, weltweit leicht gefunden werden kann. (Auch das Suchen eines öffentlichen Schlüssels auf einem Keyserver macht Gpg4win auf Knopfdruck.)
- Entschlüsseln kann nur der Empfänger einer Nachricht mit seinem geheimen Schlüssel und niemand anderes. Auch der Sender der Nachricht kann den Geheimtext nicht mehr entschlüsseln. Vergisst der Empfänger sein Passwort oder löscht versehentlich seinen geheimen Schlüssel, so kann auch er die Nachricht nicht mehr lesen. Auf der anderen Seite: gelingt es jemandem an einen privaten Schlüssel samt Passwort zu kommen, so kann er alle Nachrichte, die an den Schlüsselbesitzer geschickt werden ebenfalls zu entschlüsseln.
- Das Signieren verläuft im Prinzip genau umgekehrt. Eine Nachricht kann nur mit dem eigenen geheimen Schlüssel signiert werden. Die Signatur wird aus dem Inhalt der Nachricht zusammen mit dem geheimen Schlüssel berechnet. Überprüfen kann diese Signatur jeder, der den öffentlichen Schlüssel des Absenders kennt.
Vertrauensproblem
Soweit, sogut. Aber es gibt noch ein weiteres Problem: Ist der Schlüsselbesitzer auch der, der er zu sein vorgibt? Ist "Bill Clinton" wirklich DER "Bill Clinton", oder ist "Barack Obama" in Wirklichkeit vielleicht "Kim Jong Il"? Es ist kein Problem einen solchen "gefälschten" Schlüssel zu erzeugen, denn woher soll GnuPG (oder der Key-Server) wissen, dass ich nicht "Julius Caesar" bin?
Deshalb ist es IMMER nötig, sich von der Echtheit des Schlüssels zu überzeugen, d.h. sicherzustellen, das der Schlüsselinhaber wirklich der ist, für den ich ihn halte. Das geht prinzipiell auf drei Arten, die jeweils ihre eigenen Stärken uns Schwächen haben:
- Ein Schlüssel kann anhand seines Fingerabdrucks (der eine Prüfsumme ist) überprüft werden. Hierzu treffen sich die Komunikationspartner einmalig und vergleichen die Fingerabdrücke der Schlüssel. Stimmt er überein, so kann der Schlüssel sicher verwendet werden. Kennt man den betreffenden Partner persönlich, geht das auch telefonisch, aber nicht per Mail, denn hier gibt es ein reales Manipulationsrisiko.
- Bei Personen, die man nicht persönlich kennt ist das schwieriger. Von Zeit zu Zeit werden Key-Signing Parties veranstaltet. Die Teilnehmer weisen sich gegenseitig anhand eines amtlichen Ausweises aus und lesen sich jeweils den Fingerabdruck ihres Schlüssels vor. Der besseren Durchführbarkeit wegen werden im Vorfeld dazu Listen erstellt und ausgeteilt, so dass der einzelne Teilnehmer die Einträge nur abhaken braucht. Wieder zu Hause signieren dann die Teilnehmer die öffentlichen Schlüssel der anderen (überprüften) Teilnehmer mit ihrem eigenen privaten Schlüssel. Diese signierten Schlüssel der anderen Teilnehmer werden nun wieder an die öffentlichen Keyserver übermittelt. Da die Signatur überprüfbar ist, "bürgt" der Unterzeichner quasi dafür, das er die Identitüt des Schlüsselinhabers überprüft hat. Das sogenannte "Web-of-Trust", das Netz des gegenseitigen Vertrauens, entsteht. Wichtig ist hierbei, dass man sich nicht zu einem Signieren ohne Überprüfung der Identität hinreißen lassen darf. Wer nun innerhalb diese Web-of-Trust wem vertraut liegt im Ermessen und in der Verantwortung des Einzelnen.
- Eine andere Möglichkeit bietet der ISO X.509-Standard mit S/MIME (, der von GnuPG und auch Gpg4win ab Version 2 unterstützt wird.). Hier ist das "Vertrauen" hierarchisch organisiert. Hierzu sind Zertifizierungsstellen (auch Certificate Authority, oder kurz CA) nötig, die die Identität der Nutzer (ebenfalls anhand eines Ausweises) überprüfen. Dies ist im Allgemeinen kostenpflichtig. Die oberste Zertifizierungsstelle ("Root-CA") gibt allerdings nicht nur Zertifikate an Nutzer aus, sondern auch gleichzeitig an weitere (untergeordnete) Zertifizierungsstellen, welche wiederum ... und so fort. Vertraut man der Root-CA, so vertraut man automatisch dem gesamten Hierarchiebaum. Dieses Verfahren wird auch bei verschlüsselten Internetseiten (z.B.: Online-Shopping) angewandt, die Zertifikate einiger Root-CA's (z.B. VeriSign, Inc.) sind bereits in den verschiedenen Browsern vorinstalliert. Aber auch hier liegt die Verantwortung, welchem Kommunikationspartner man vertraut und welche Zertifikate man installiert, beim Einzelnen. Beispiele für kompromittierte Zertifizierungsstellen und gestohlene Zertifikate gibt es jedenfalls genug.
Weitere Links:
Mein öffentlicher Schüssel:
Damit mir also jeder Interessierte eine verschlüsselte Nachrich zukommen lassen, bzw. von mir signierte Nachrichten überprüfen kann, ist es nötig, meinen öffentlichen Schlüssel zu verbreiten. Er ist auf verschiedenen Key-Servern (z.B. http://pgp.mit.edu/) unter Angabe der Mailadresse oder der Key ID abrufbar, oder eben hier herunterzuladen oder nachzu"lesen".
Wer ein Verschlüsselungsprogramm installiert hat, benutzt dort normalerweise die bequeme Funktion "Schlüssel vom Keyserver importieren" und spart sich die Mühe, die Daten von Hand eingeben zu müssen. ;-)
Mailadresse: c2h5oh@web.de
Die Key ID lautet EB5DF245
Der Fingerabdruck ist:
EDFE 8CAD F961 AAE2 AA1A
56CC 8514 66E6 EB5D F245
Für die Eiligen gibt es hier auch den kompletten PGP Public Key als QR-Code und auch als Text:
Viel Vergnügen damit ;)
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (GNU/Linux)
mQGiBEq93IkRBAC2c38XBU+/1LPY1iM8kHdosryo3FrER/TXTRoN3GIkp0MuYTrY
6OOnhJfQzRQ11by5GcvfRDbwyZnmtRGwr5pePet57ApC8ixzRm39glt7ivU4zi98
ZkaipG51WXaeQ2nnsIw0WA8VHfxavNteLdXZz3qth7Bxm2PKbZLTLt6CzwCgvcYW
BmjiohjzSnzJAkMd4IVlecUD/0uT+DldHKkped5eew14CITOwPGlNEbqgPnzpq9P
N0/oIHBULlNjZrO6hYE3KcZJalZBVFPBX6jY9NxpU8XzH57DYL8fLMDNvMFKq8+k
bS5rtfSSBQuZEHm9dWHKGqcmtuJbVCpDuN3B3N1RmY9lPbXGjOLuW011jD/7G2do
l3TZA/92ULk+tH3+zIbqpUNDGu38xCFv6jRzzhsGuAUwLgLC1SViXVPSA8lWJwin
gmX+6iwAx39dLVnMDq2Hc96JRiEtTV2sKE48N+ruktRX5GnEQk9EyJegjPUY+z1K
nqbX8as9FLnN1hlabOt8KRzbOKUI7aJ73CLV5r3RMTNro/KER7QiQ2hyaXN0aWFu
IEIuIE1leWVyIDxjMmg1b2hAd2ViLmRlPohmBBMRAgAmBQJKvdyJAhsjBQkLxoVn
BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQhRRm5utd8kVT0QCfbYylFchYLWK/
/nfC31fdaKZh3dAAn0AaLNDWAJVppkd8lZt7sRvCIrx7tCdDaHJpc3RpYW4gQi4g
TWV5ZXIgPGNocmlzdGlhbkBjb21kbS5kZT6IZgQTEQIAJgUCSr3foAIbIwUJC8aF
ZwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIUUZubrXfJF1fUAoJ+tXKmGNZyS
2DnG4xhVAtaBZGacAKC4QcWseI4R1arN5nAFTdc7QiajT7kCDQRKvdyJEAgA+OSf
pv82CdyNxsgjYVZ3/j98byZ35sBqUyqqmuCPDlQxEXm+kOkZ9+3UrkVHAgFO2RV0
1SfMIeAQcZvCqHo13AnGUdaijvJTvL7p9a4dH7qVjCnvIlQQH9uoO4iQ/x9DJRbf
DvxDPyPgEiocQwCuWnedPv6K7kfzNWmY8u9jV3b9p1MUq2g+culouNw7nmgWCtDv
UiQonWUsDiDZTihbpwKfYOOHU/9uBtku3gesbcUfzE8Wozg7K7u8/8+DHOuRDj43
/yqdrIPhrJxrRAXyBLXbaTD8lst/lEl8kWvi0zKEj1t8wea8cgugcepn+CIP0FNO
T9thry0DRzAq5m/P+wADBQgA53por6PoltQpfueZKPVKiuPuJCRQSlq3Qk/DLeaP
tmKJmPhsmSJ0ByvL6CCR462Oi2ZFVa5oLCaZz1/BlITZ5Lvz4Vd60FjJrodWOYOx
l20VNrBQPTdHX1TpvLFtNfVVR5m9LtCicTjqPRQx73ZAFf6UowSrFCNuqBPV+9mR
Ge32+s5Mz8x+Qc0/aG9gYcvEpctHA4no/L36FxmOAG5FDuCf2bMgVEYRKM1QJmU1
GM+6fEn/MTDk6bP5EkOBxAIdHQEYtl11y0tqYG+M02YmO4vd5j3XPI+FGPxTJ4Jk
pSOR7p6qKRQL4ds2a+RKpXZNsMFT7Ww6Hn5WKsqvZCOHCYhPBBgRAgAPBQJKvdyJ
AhsMBQkLxoVnAAoJEIUUZubrXfJFuEwAoIbSzqT194zcl0Ah/iqlC4ppSPXwAJ9I
UTpKKYO3SuismP2iZs65F7lxfA==
=ejLP
-----END PGP PUBLIC KEY BLOCK-----