English version Anderes - Kryptographie

Sicherheit durch Verschlüsselung

Ich interessiere mich sehr für Kryptographie und besonders für die Verschlüsselung und Signierung von Daten im alltäglich Leben. Daher will ich versuchen, im Folgenden ein bißchen das grundlegende Konzept und den politischen Hintergrund zu diesem Thema zu beleuchten.

Inhalt

Theoretischer Hintergrund

Dies soll keine erschöpfende mathematische Behandlung der Theorie der Kryptographie darstellen (dazu gibt es in Internet viel bessere Quellen), sondern lediglich die Grundzüge darstellen...
Für die meisten aktuellen Anwendungen werden sogenannte asymmetrische Verfahren zur Verschlüsselung eingesetzt. Dabei besteht jeder Schlüssel aus einem privaten und einem öffentlichen Schlüssel. Dazu bestehen beide Schlüssel im Allgemeinen aus zwei großen Primzahlen (Ich meine wirklich groß, wenn man beide miteinander multipliziert, bekommt man eine Zahl, die mehr als 200 Stellen besitzt!), mit deren Hilfe eine dritte Zahl über ein bestimmtes Verfahren berechnet wird. Diese dritte Zahl und das Produkt der beiden Ausgangszahlen wird dann bekannt gegeben. Die ganze Sicherheit des Verfahrens beruht jetzt darauf, dass es mit sehr viel Rechenaufwand verbunden ist, aus den beiden Zahlen des öffentlichen Schlüssels wieder die beiden Ausgangszahlen zu berechnen. Es ist nicht unmöglich, jedoch würden aktuelle Computer für diese Aufgabe mehrere Jahrzehnte benötigen und danach wäre auch nur dieser eine Schlüssel bekannt.

Verschlüsselung in der Anwendung

Der private Schlüssel ist (wie der Name schon andeutet) vor anderen unzugänglich aufzubewahren, wohingegen der öffentliche Gegenpart öffentlich verfügbar sein sollte. Angenommen, Alice hat jetzt ein solches Paar erstellt und Bob den öffentlichen Schlüssel zukommen lassen, dann kann Bob eine Nachricht mit dem öffentlichen Schlüssel so verschlüsseln, dass sie nur noch von Alice dechiffriert werden kann - daher auch der Name: Asymmetrisches Verfahren. Also kann jeder, der in Besitz des öffentlichen Schlüssels ist, eine Nachricht für Alice verschlüsseln.
Jedoch kann Alice noch nicht feststellen, ob die Nachricht auch wirklich von Bob kam, der Nachricht fehlt noch die "Unterschrift". Dazu kann jetzt auch Bob ein eigenes Schlüsselpaar erzeugen, von dem er den öffentlichen Schlüssel an Alice gibt. Jetzt kann Bob mit seinem privaten Schlüssel die Nachricht signieren. Diese Signatur gibt Aufschluss darüber, dass auch wirklich Bob die Nachricht signiert hat (denn nur er hat ja seinen privaten Schlüssel), und dass der Text der Nachricht während der Übertragung an Alice nicht durch Dritte verändert wurde. Die Gültigkeit dieser Unterschrift kann von Alice durch Bob's öffentlichen Schlüssel überprüft werden.
Also noch einmal zusammenfassend: Der öffentliche Teil des Schlüssels dient dazu, Nachrichten so zu verschlüsseln, dass nur der Besitzer des privaten Gegenstücks den Text lesen kann. Mit dem privaten Schlüssel kann sein Besitzer eine digitale Signatur unter ein Dokument setzen, welches danach aber noch im Klartext für alle leserlich vorliegt. Deshalb lassen sich beide Verfahren nach Bedarf kombinieren, d.h. hintereinander Anwenden.

Das große Problem bei dieser Methode ist das sichere Austauschen der öffentlichen Schlüssel. Wenn Alice aus dem Internet den öffentlichen Schlüssel eines Bob holt kann sie sich ja noch nicht sicher sein, dass mit Bob auch wirklich ihr Bob gemeint ist, sich also nicht ein anderer, nennen wir ihn Eve, einfach nur als Bob ausgibt und somit alle vermeintlich nur für Bob verschlüsselte Dokumente plötzlich von Eve gelesen werden können. Dazu kann man von den Schlüsseln sog. Prüfsummen bilden, die dann über sichere Kanäle, z.B. ein persönliches Treffen oder per Telefon, von beiden Seiten abgeglichen werden müssen.

Das Web of Trust

Da die im letzten Abschnitt angesprochene Überprüfung der öffentlichen Schlüssel auf ihre Authentizität in der Praxis ziemlich umständlich werden kann, sehen aktuelle Ansätze weitere Möglichkeiten vor: Das Web of Trust.
Es können nicht nur allgemeine Nachrichten signiert werden, sondern auch öffentliche Schlüssel. Somit könnte Alice, nachdem sie sich zweifelsfrei davon überzeugt hat, dass der Bob auf dem Schlüssel auch wirklich der richtige Bob ist, seinen öffentlichen Schlüssel mit ihrem eigenen Schlüssel signieren. Diesen signierten Schlüssel von Bob kann sie dann an einen sog. Keyserver weitergeben. Dies ist eine Sammelstelle im Internet, an dem viele öffentliche Schlüssel zentral gesammelt werden und jeder dort nach Schlüsseln suchen kann. Wenn ich jetzt also Bob's öffentlichen Schlüssel brauche, kann ich den Keyserver befragen und die Version mit der Unterschrift von Alice finden. Wenn ich jetzt Alice kenne und weiß, dass ich ihrer Unterschrift vertrauen kann, dann kann ich auch Bob's Schlüssel ohne weitere Überprüfung vertrauen.
Für diesen Zweck gibt es auch offizielle Certification Authorities (CA), die öffentliche Schlüssel mit ihrem Schlüssel professionell beglaubigen. Diese Unternehmen unterliegen sehr strengen Sicherheitsauflagen und müssen sich wirklich ganz sicher sein, dass Bob's Schlüssel auch Bob ist, bevor sie ihre eigene Unterschrift unter den Schlüssel setzen.

Rechtliche Grundlagen

In Deutschland gibt es seit 1997 ein Signaturgesetz (SigG), welches den rechtlichen Rahmen für die digitale Signatur festlegt. Es wurde Ende 2000 durch das "Gesetz über Rahmenbedingungen für elektronische Signaturen (Signaturgesetz - SigG)" novelliert, welches europäische Richtlinien zu diesem Thema in nationales Recht umsetzte. Es schafft die Grundlage dafür, dass diese Form der Signatur zwar nicht der handschriftlichen gleich gesetzt wird (Bits und Bytes sind halt keine Tinte), jedoch vor Gericht genauso anerkannt werden kann. Somit bietet die digitale Signatur faktisch für den Privatmann und die Geschäftswelt eine rechtlich gesichterte Alternative zur herkömmlichen Unterschrift. Dazu noch ein Auszug aus dem Vorwort zum Gesetzentwurf:

... Die im Gesetzentwurf vorgesehene Sicherheitsinfrastruktur für qualifizierte elektronische Signaturen ermöglicht es, im elektronischen Rechts- und Geschäftsverkehr den Urheber und die Integrität von Daten zuverlässig festzustellen. Dies ist die notwendige Voraussetzung dafür, dass die elektronische Signatur ein Substitut zur handschriftlichen Unterschrift darstellen und hierdurch eine entsprechende Rechtswirkung entfalten kann. ...

Den gesamten Gesetzentwurf, der dann später mit nur geringen Abänderungen in geltendes Recht umgesetzt wurde, gibt es hier (238 kB).

Soft- und Hardware

Software

Auf der Softwareseite gibt es praktisch nur zwei Programme, die für den Privatmann interessant sind: GnuPG (GNU Privacy Guard) und PGP (Pretty Good Privacy). Dabei ist GnuPG der freie Partner (Stichwort Open Source) des altbekannten, aber mit Patenten versehenen PGP. Diese Programme (zumindest GnuPG) gibt es für die meisten Computerplattformen und Betriebssysteme und sind für die Erstellung von Schlüsselpaaren, die Verwaltung aller privaten und der gesammelten öffentlichen Schlüssel, des damit zusammenhängenden Web of Trusts und natürlich für die Ver- und Entschlüsselung und für das Erstellen und Überprüfen von Signaturen verantwortlich.

Am Beispiel von GnuPG werde ich kurz erläutern, wie dies in der Praxis funktionieren kann (ich beziehe mich hier auf die Linux Kommandozeilen-Version). Natürlich gibt es noch viel mehr Varianten und Optionen, doch das hier sollte eine erste Vorstellung davon liefern:

Hierbei bezieht sich Datei immer auf die Datei, welche die zu bearbeitende Nachricht enthält. Als Schlüssel-ID kann man wahlweise die Nummer des Schlüssels (bei mir z.B. D8B53A85) oder einfach nur den Namen, bzw. die enthaltene eMail-Adresse angeben. Zu beachten ist jedoch jeweils, dass die Zuordnung zum Schlüssel auch eindeutig ist. Alternativ gibt es natürlich auch noch Frontends, die das alles hinter einer grafischen Oberfläche "verstecken". Für Windows kann man hier WinPT und für Linux GPA empfehlen, jedoch bieten auch viele Mailprogramme bereits integrierte Frontends an.

Hardware

Zur Speicherung des privaten Schlüssels gibt es prinzipiell zwei Möglichkeiten: Entweder wird der Schlüssel lokal auf der eigenen Festplatte, oder einer Diskette gespeichert (dies ist die von GnuPG und PGP standardmäßig unterstützte Variante), was allerdings nur einen mäßigen Schutz vor einem möglichen Ausspionieren des Schlüssels bietet. Alternativ kann der Schlüssel aber auch auf einer sog. Signaturkarte, wie sie von mehreren Stellen ausgegeben wird, gespeichert werden. Diese wird dann über ein spezielles Lesegerät vom Computer ausgelesen und bietet einen optimalen Schutz des privaten Schlüssels.
Egal für welche Variante man sich entscheidet ist der Schlüssel jeweils noch einmal über ein Passwort bzw. eine PIN-Nummer vor unfebugter Benutzung geschützt.

Mein Schlüssel

Zu guter letzt folgt natürlich noch mein eigener öffentlicher Schlüssel. Er wurde leider (noch) nicht von einer "offiziellen" Seite her signiert, sondern "nur" von Privatleuten. Wenn Du also ganz sicher gehen willst, dass ich auch ich bin, kannst Du Dich gerne bei mir per mail melden, dann kann man das per Telefon o.ä. regeln.

Meinen Schlüssel kannst Du über einen öffentlichen Keyserver hier bekommen. Als einen ersten Anhaltspunkt kann man die Daten des Schlüssels mit diesen hier vergleichen:

pub 1024D/D8B53A85 2000-09-05 Florian Schaefer <florian@!well, remove this!netego.de>
Key fingerprint = A6BB 9504 7EE2 6582 F3A0 ECDF FB69 71A1 D8B5 3A85

Na dann bleibt nur noch zu hoffen, dass sich diese Form der elektronischen Signatur, die meiner Meinung nach richtig angewandt mehr Sicherheit als die handschriftlich gesetzte und unter Umständen sogar noch durch die Gegend gefaxte Unterschrift bietet, sich in nächster Zeit auch wirklich durchsetzen kann.

Kontakt
Letzte Änderung dieser Seite: Dec 4, 2004