Schlüsseltausch und Schlüsselmanagement

Leider hat die schöne Welt der Public und Private Keys einen kleinen Fehler. Wir müssen sicherstellt, dass der Public Key auch wirklich der öffentliche Schlüssel der Gegenseite ist. Schummelt uns jemand einen anderen Schlüssel als vermeintlich "öffentlich" der Gegenseite unter, dann verschlüsseln wir unsere Daten, senden Sie an den Empfänger, aber der kann damit nichts anfangen. Aber der Angreifer wird eine Kopie dieser Nachricht abfangen und kann den Inhalt mit seinem passenden privaten Schlüssel und unserem öffentlichen Schlüssel decodieren und lesen. Daher müssen wir sicherstellen, dass der öffentliche Schlüssel authentisch ist. Nun kann ein Mensch nicht lange Binärwerte vergleichen, weswegen man einen Hashwert (wieder eine mathematische Formel) bildet und den als "Fingerabdruck" veröffentlicht. nun müssen wir also nur den Hashwert des Schlüssels mit dem Original vergleichen.

Hierzu gibt es mehrere Wege, z.B.:

  • sicheren Weg für den Hashwert
    Der Anbieter eines Schlüssels kann den Hashwert über ein anderes sehr fälschungssicheres Medium  veröffentlichen, z.B. im Impressum der Zeitschrift, des Produktkatalogs, auf dem Briefpapier. Die Webseite ist kein vertrauenswürdiger Platz.
    Problem: Ich muss manuell nachsehen und prüfen.
  • Telefon
    Ich kann die Gegenseite anrufen, und den Hashwert erfragen
    Problem: Ich muss aktiv werden, ein weiterer Kommunikationsweg muss ebenso gesichert funktionieren und auf der anderen Seite jemand antworten.
  • Sichere oder vertraute Quelle für den Schlüssel
    Jemand bestätigt mir den Schlüssel, indem ich ihn von einer mir vertrauenswürdigen Stelle erhalte. Im Internet gibt es dazu Schlüsselserver, auf denen ich meinen öffentlichen Schlüssel ablegen kann und andere von dort abholen können.
    Problem: ich muss den Schlüsselserver erreichen können bzw. die Schlüssel meiner Kommunikationspartner sammeln (Keyring)
  • Zertifikat
    Mein Schlüssel wird von einer anderen Stelle "zertifiziert", d.h. Verisign, Thawte etc. Dann gebe ich meinen Schlüssel weiter und er wurde von einer anderen vertrauenswürdigen Stelle unterschrieben. (Wie die Beglaubigung auf einem Dokument). Das Zertifikat ist ohne Rückgriff auf Server akzeptiert.
    Problem: Jeder muss meinen Schlüssel erst zertifizieren lassen. Diese Leistung lassen sich die entsprechenden Dienstleister teuer bezahlen.
    Zertifikate kann ich als Absender z.B.: immer an meine Mail anhängen oder auf einer Webseite bereitstellen, da sie fälschungssicher sind. Auch für die Signierung kann ich das Zertifikat einfach mitschicken.

Am Ende des Prozess habe ich den öffentlichen Schlüssel der Gegenseite. Zertifikate werden hier das Rennen machen.

Schlüsselmanagement

Anhand der bisherigen Ausführungen ist sicher deutlich geworden, dass den Schlüsseln eine zentrale Rolle zukommt. Symmetrische Schlüssel sind aufgrund der notwendigen sicheren Austauschs nur bedingt nutzbar. Entsprechend Software zur Nutzung solcher einfacher Schlüssel ist auf nahezu jedem PC jedoch schon vorhanden. Jeder, der mit Word oder Excel Dokument erstellt oder Dateien mit Programmen wie WinZIP, ARJ und anderen Programmen komprimiert kann dabei auch ein Kennwort vergeben. Solche Dateien als Mail versandt, sind in gewissem Maße sicher. Allerdings waren gerade ältere Versionen dieser Programme nicht sonderlich gut im verschlüsseln. Die größte Schwäche ist aber der Mensch, der normalerweise nur „einfache“ Kennworte verwendet. Ein „gutes“ Kennwort besteht aus mindestens 8 Buchstaben, kommt in keinem Wörterbuch vor und verwendet auch Sonderzeichen und Zahlen. Nur dann wird es für Passwortknacker (Cracker) sehr aufwendig, alle Versionen zu testen. Offen bleibt jedoch immer noch der sichere Austausch der Schlüssel. All diese Probleme sind bei den Schlüsselpaaren nicht zu erwarten, da diese Schlüssel immer sehr lange sind, und es eine unzahl von Ihnen gibt. Der private Schlüssel ist aber nicht in Klartext auf ihrer Festplatte gespeichert, sondern mit einem Kennwort verschlüsselt. Dieses ist wieder die schwache Stelle. Benutzer müssen darauf achten, dass der Zugriff auf den privaten Schlüssel nur zugelassenen Personen möglich ist. Ideal sind hier Chipkarten etc.

Problem dieser Technik bleibt aber immer wieder das Vertrauen in den Schlüssel. Wer sichert zu, dass ein zugesandter Schlüssel wirklich „echt“ ist? Dazu gibt es mehrere Verfahren. Zum einen hat jeder Schlüssel einen „Fingerprint“. Das ist eine Folge von Zahlen, welche z.B. im Impressum einer Zeitung (z.B. c’t) stehen. Alternativ gibt es die Möglichkeit, seine Schlüssel auf einem „Keymanagementserver“ zu hinterlegen. Solche Server stehen an vielen Stellen im Internet und halten die Schlüssel von Anwendern vor. Damit kann jeder an solche Personen sicher Nachrichten senden, ohne vorab von dieser Person die Schlüssel anzufordern. Dies wird um so wichtiger, je mehr die Empfänger zunehmen.
Ein Wort zur Signatur von Schlüsseln. Bis jetzt ruhte die Funktion auf dem Vertrauen auf die zugesandten Schlüssel. Jeder kann sich seine Schlüssel aber auch signieren lassen. Dazu wird der Schlüssel von einer Firma im Internet gegen Gebühr „unterschrieben“, nachdem sich der Schlüsselinhaber gegenüber dieser Stelle ausgewiesen hat. Solche Firmen sind z.B. VeriSign, Thawte und andere.

Exchange 5.5 kann auch Schlüsselmanagementserver sein. Allerdings waren diese Key Management Server (KMS) lange Zeit nicht sonderlich hilfreich. Sie haben zwar die Nachrichten innerhalb von Exchange verschlüsselt, so dass die Nachrichten im Store und bei der internen Übertragung innerhalb der Organisation verschlüsselt waren, aber taugten kaum für den Versand nach Extern. Seit Exchange 5.5 SP1 ist der KMS quasi nur noch Relay zu einem Schlüsselserver aus dem NT4 Option Pack oder Windows 2000. 

Natürlich gehört zu einem Schlüssel auch eine Verfallszeit dazu, z.B. bis wann der Schlüssel gültig ist. Damit werden verlorene oder nicht mehr geheime Schlüssel nach einiger Zeit automatisch ungültig. Zudem hat ein Schlüsselinhaber auch die Möglichkeit, seinen Schlüssel „zurückzuziehen“ und als ungültig zu kennzeichnen.

Entsprechend gesetzlicher Regelungen und Exportbeschränkungen kann die Schlüssellänge begrenzt sein. Je länger der Schlüssel ist, desto höher ist der Aufwand zum Knacken. Meist sind 40bit Schlüssel im Einsatz, welche heute schon eine rechte hohe Sicherheit versprechen. In den uSA werden oft 128bit Schlüssel genutzt. Längere Schlüssel sind natürlich möglich, aber parallel steigt auch der Aufwand zu Ver- und Entschlüsselung.

Alle Schlüssel sind immer an die Mailadresse gebunden, welche weltweit eindeutig ist und von jedem Mailprogramm ausgewertet werden kann.