Vertrauenskette

Vertrauenskette
Schematische Darstellung eines Web of Trust

Netz des Vertrauens bzw. Web of Trust (WOT) ist in der Kryptologie die Idee, die Echtheit von digitalen Schlüsseln durch ein Netz von gegenseitigen Bestätigungen (Signaturen) zu sichern. Es stellt eine dezentrale Alternative zum hierarchischen PKI-System dar.

Inhaltsverzeichnis

Funktionsprinzip (stark vereinfacht)

Transitive Vertrauensbeziehungen:

                Alice signiert den Schlüssel von Bob
                Bob   signiert den Schlüssel von Carl
                somit vertraut Alice dem Schlüssel von Carl.

Anders ausgedrückt: Ich vertraue jedem, dem jemand vertraut, dem ich vertraue.
Und umgekehrt: Jeder, der jemandem vertraut, der mir vertraut, vertraut auch mir.

In der Sprache der Objektorientierung: Jedes Objekt O, das eine Vertrauensassoziation zu anderen Objekten hat, vererbt diese Assoziation an alle Objekte, die eine ebensolche Assoziation zum Objekt O haben.

Problemstellung

Die Verschlüsselung mit öffentlichen Schlüsseln bietet (gegenüber der symmetrischen Verschlüsselung) den Vorteil, dass der auszutauschende Schlüssel nicht über einen sicheren Kanal übertragen werden muss, sondern öffentlich ist. Zur Übertragung des Schlüssels kann man sich daher eines Verbunds von Schlüsselservern bedienen, auf die jeder seine öffentlichen Schlüssel hochladen kann und von denen jeder den Schlüssel der Person abrufen kann, mit der er kommunizieren möchte. Dadurch ergibt sich aber ein anderes Problem: Eine Person könnte einen Schlüssel veröffentlichen, mit welchem sie sich als jemand anderes ausgibt. Es muss also eine Möglichkeit zur Verfügung stehen, die Authentizität eines Schlüssels zu prüfen.

Die Lösung für dieses Problem besteht darin, die Echtheit eines öffentlichen Schlüssels von einer vertrauenswürdigen Instanz durch ein digitales Zertifikat bestätigen zu lassen. Bei Public-Key-Infrastrukturen ist dies eine Zertifizierungsstelle; im Web of Trust hingegen übernehmen alle Teilnehmer diese Funktion.

Zertifikate beim Web of Trust

Beim Web of Trust besteht ein Zertifikat aus der digitalen Signatur, die eine andere Person, die auch am Web of Trust teilnimmt, auf einen Schlüssel abgibt, nachdem sie sich der Identität des Schlüsselinhabers versichert hat (typischerweise bei einer persönlichen Begegnung).

RFC 2440[1] beschreibt ein Verfahren, wie diese Zertifikate mit dem Schlüssel verbunden und mit einer Wertung versehen werden. Das Zertifikat wird mit dem Schlüssel auf einen weltweiten Verbund von Schlüsselservern hochgeladen und kann so von jedermann abgerufen werden.

Von diesen Signaturen sammelt der Schlüsselinhaber möglichst viele an. Personen, die den Schlüsselinhaber nicht kennen und auch keinen persönlichen Kontakt zu ihm haben, können durch die Zertifikate eine hohe Legitimität der Identität ersehen und darin vertrauen.

Beispiel

In einem Web of Trust funktioniert das so:

  1. Alice erzeugt für sich ein Schlüsselpaar und signiert es. Außerdem schickt sie den öffentlichen Teil an einen Schlüsselserver (key server), damit andere Teilnehmer leichten Zugriff darauf haben.
  2. Bob möchte mit Alice verschlüsselt kommunizieren. Dazu besorgt er sich Alices Schlüssel von einem Schlüsselserver, muss aber noch sicherstellen, dass er wirklich den richtigen Schlüssel bekommen hat: ein Angreifer könnte sich für Alice ausgeben und einen von ihm erzeugten Schlüssel an den Schlüsselserver schicken. Jeder, der meint, eine Nachricht nur für Alice zu verschlüsseln, würde sie in Wirklichkeit für den Angreifer verschlüsseln.
  3. Bob fragt Alice (z. B. bei einem Telefonanruf oder einem persönlichen Treffen) nach den Details ihres öffentlichen Schlüssels. Dies sind die ID, die Länge und der Typ, das Erzeugungsdatum und insbesondere der Fingerprint des öffentlichen Schlüssels (eine kurze Hash-Funktion des Schlüssels, mit der man ihn eindeutig identifizieren kann). All diese Daten vergleicht er mit denen des Schlüssels, den er vom Schlüsselserver erhalten hat.
  4. Stimmen alle diese Daten und vor allem beide Fingerprints überein, signiert er den öffentlichen Schlüssel von Alice mit seinem privaten und schickt diese Signatur wieder an den Schlüsselserver.
  5. Möchte jetzt Carl mit Alice verschlüsselt kommunizieren, besorgt er sich genau wie Bob Alices öffentlichen Schlüssel vom Schlüsselserver. Dann stellt er fest, dass Bob Alices Schlüssel bereits überprüft hat. Wenn Carl Bobs Schlüssel schon kennt und Bob vertraut, dass er vor der Signatur fremder Schlüssel eine gründliche Überprüfung durchführt, dann muss er nicht erst Alice treffen und diese Prüfung wiederholen. Er vertraut dem Schlüssel von Alice.

Formalisierung

Die Schlüsselverwaltung in einem Web of Trust erfolgt mit Hilfe von Schlüsselbunden. Im öffentlichen Schlüsselbund (public keyring) eines Benutzers werden eigene und fremde öffentliche Schlüssel und zugehörige Zertifikate gespeichert, der private Schlüsselbund (private keyring) enthält eigene private Schlüssel. Den öffentlichen Schlüsseln ordnet jeder Benutzer Vertrauen in dessen Besitzer zu („Owner Trust“). Daraus wird der Grad des Vertrauens in die Authentizität anderer Schlüssel („Key Legitimacy“) und in die Signaturen anderer Benutzer („Signatory Trust“) abgeleitet. Vertrauen in die Echtheit fremder Schlüssel wird entweder über Direct Trust (also die persönliche Überprüfung der Authentizität des öffentlichen Schlüssels eines anderen Benutzers) oder über den Owner Trust der Signierer der fremden Schlüssel etabliert.

Owner Trust

Den Wert für Owner Trust legt jeder Benutzer für alle Schlüssel einzeln in seinem öffentlichen Schlüsselbund selbst fest; zur Wahl stehen die Werte

  • unbekannt („unknown“) für Benutzer, über die man keine weiteren Informationen hat
  • kein Vertrauen („not trusted“) für Benutzer, denen nicht vertraut wird, vor der Signierung anderer Schlüssel eine ordentliche Prüfung der Authentizität durchzuführen
  • geringes Vertrauen („marginal“) für Benutzer, denen nicht voll vertraut wird
  • volles Vertrauen („complete“) für Benutzer, denen voll vertraut wird
  • absolutes Vertrauen („ultimate“) für Benutzer, deren privater Schlüssel sich im privaten Schlüsselbund befindet

Signatory Trust

Signiert Alice den öffentlichen Schlüssel von Bob und überträgt diese Signatur anschließend an einen Schlüsselserver, so kann diese Signatur von Carl zur Beurteilung der Authentizität des öffentlichen Schlüssels von Bob benutzt werden. Dazu überprüft Carl, ob er den öffentlichen Schlüssel von Alice selbst signiert hat und er ihr als Owner Trust „marginal“ oder „complete“ zugeordnet hat. Ist das der Fall, so erhält Alice' Signatur genau diesen Wert. Hat Carl den Schlüssel von Bob selbst signiert, so erhält diese Signatur ebenfalls den Signatory Trust „complete“; in allen anderen Fällen wird der Signatur der Wert „not trusted“ zugeordnet. Im Gegensatz zum Owner Trust gehört der Signatory Trust also zu einer Signatur und nicht zu einer Person.

Key Legitimacy

Das Vertrauen in die Authentizität eines öffentlichen Schlüssels wird durch den „Key-Legitimacy“-Wert ausgedrückt. Er wird aus dem Signatory Trust der signierenden Schlüssel wie folgt berechnet:

  • sei x die Anzahl von Signaturen, deren Signatory Trust „marginal“ ist
  • sei X die Anzahl von Signaturen mit einem Signatory Trust „marginal“, die erforderlich ist, damit ein Schlüssel als authentisch eingestuft wird
  • sei y die Anzahl von Signaturen, deren Signatory Trust „complete“ ist
  • sei Y die Anzahl von Signaturen mit einem Signatory Trust „complete“, die erforderlich ist, damit ein Schlüssel als authentisch eingestuft wird

Dann sei L = \frac{x}{X} + \frac{y}{Y}

Ist L = 0, so gilt der überprüfte Schlüssel als nicht authentisch. Bei 0 < L < 1 wird er als „teilweise authentisch“ angesehen und bei L \ge 1 als „vollkommen authentisch“. In Regelfall wählt man X = 2 und Y = 1, es sind also zwei Signaturen von teilweise vertrauenswürdigen Personen oder eine Signatur einer voll vertrauenswürdigen Person erforderlich, damit ein Schlüssel als authentisch eingestuft wird. Prinzipiell kann aber jeder die Werte für X und Y je nach persönlichem Paranoia-Grad frei wählen.

Bewertung

Das Web of Trust ermöglicht seinen Teilnehmern einerseits die individuelle Kontrolle darüber, wen sie als vertrauenswürdig einstufen. Zudem gibt es kostenlose Software zur Realisierung des Konzepts des Web of Trust. Auf der anderen Seite erfordert es aber einen hohen Grad an Vorwissen vom Benutzer, es ist nicht juristisch bindend (wie z. B. eine Qualifizierte elektronische Signatur), der Widerruf eines Zertifikats wird nicht sofort allgemein bekannt, wie er es in einer PKI wird, und er ist auch nicht vergleichbar verwirklicht.

Probleme mit dem Datenschutz

Ein grundsätzliches Problem besteht darin, dass der Inhaber eines Schlüssels bei den derzeit gebräuchlichen Implementierungen technisch keinen Einfluss darauf nehmen kann,

  • wer seinen öffentlichen Schlüssel signiert und
  • ob jemand seinen öffentlichen Schlüssel auf einen öffentlichen Schlüsselserver hochlädt (oder mit neuen Signaturen erneut hochlädt).

Dem Schlüssel haften jedoch personenbezogene Daten an, die mitveröffentlicht werden: Durch die Signaturen anderer Personen, dem wichtigsten Element des Web of Trust, beinhaltet der Schlüssel eine Liste der Personen, mit denen der Schlüsselinhaber Umgang hatte und wann. Auf einem Schlüsselserver sind diese Daten öffentlich einsehbar und automatisiert abrufbar, und können so leicht analysiert und somit die Beteiligung des Schlüsselinhabers an sozialen Netzwerken ermittelt werden.

Außerdem sammelt sich mit der Zeit eine öffentliche Liste aller früheren E-Mail-Adressen des Schlüsselinhabers an.

Nicht jedem ist von Anfang an bewusst, dass er durch die Teilnahme am Web of Trust Daten freigibt, die er vielleicht nicht für öffentlich erklären wollte und dass es keine Möglichkeit gibt, sie jemals wieder entfernen zu lassen.

Einmal auf Schlüsselserver exportierte öffentliche Schlüssel können nicht mehr gelöscht werden[2]. Die Schlüsselserver synchronisieren sich ständig untereinander, sodass ein neuer oder ergänzter Schlüssel einschließlich aller Signaturen und Kommentare innerhalb von kürzester Zeit nach dem (erneuten) Hochladen auf allen Schlüsselservern der Welt abrufbar ist, ganz gleich wer den Schlüssel hochgeladen hat und ob der Schlüssel ihm auch gehört.

Die Möglichkeit des Schlüsselwiderrufs (englisch key revokation) besteht bei den gebräuchlichen Implementierungen nur aus dem Erstellen eines Schlüsselwiderrufszertifikats, das dann ebenfalls auf den Schlüsselserver hochgeladen werden muss, dort aber praktisch nichts weiter bewirkt, als den vorhandenen Schlüssel mit dem Hinweis zu versehen, der Schlüssel solle nicht mehr benutzt werden. Software kann, aber muss nicht, solche Schlüssel zum Verschlüsseln verweigern. Mit einer Löschung von Schlüsseln, Signaturen oder Kommentaren hat der Schlüsselwiderruf aber nichts zu tun.

Dem Schlüsselinhaber sind somit jegliche Möglichkeiten verwehrt, Einfluss auf die Verbreitung seiner Daten zu nehmen. Dies steht im Widerspruch zu dem inhärenten Zweck von Verschlüsselungsprogrammen, persönliche Daten zu schützen.

Software

Die bekanntesten Umsetzungen der Idee des Web of Trust in der Praxis sind wohl das kommerzielle Programm Pretty Good Privacy (PGP) und das freie Programm GNU Privacy Guard (GnuPG), das die RFC 2440 umsetzt.

Siehe auch

  • Die CAcert-Zertifizierungsstelle vergibt kostenlose X.509-Zertifikate (statt OpenPGP-Zertifikate). Eine Möglichkeit der dabei zugelassenen Identitätsüberprüfung ist durch ein Web of Trust.
  • Auch Thawte betreibt ein Web of Trust, welches die Identität der Mitglieder validiert, allerdings werden nur persönliche (E-Mail)-Zertifikate bescheinigt.

Einzelnachweise

  1. RFC 2440
  2. FAQ des Schlüsselservers des Massachusetts Institute of Technology

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”