Aufgabe 16.2.1: Das Netz des Vertrauens
Eine Gruppe von Personen ist mit der Erfaßbarkeit
ihres elektronischen Kommunikationsverhaltens durch die globalen Provider
unzufrieden und möchte ein diskreteres privates Nachrichtensystem
gründen. Nachrichten sollen in verschlüsselter Form über
Ketten von Personen von Absender zu Empfänger weitergegeben werden.
Die Weitergabe von Person zu Person erfolgt wie bisher über die globalen
Provider. Basis der Teilnahme an diesem System soll das Vertrauen (Trust)
sein, daß stets alle Personen der Kette:
-
nicht versuchen, Nachrichten zu entschlüsseln,
-
keine Kopien von Nachrichten zurückbehalten oder an
nichtadressierte Personen weitergeben,
-
Nachrichten unverändert weitergeben,
-
Nachrichten so zügig wie möglich weitergeben.
Vertrauenskette: Eine Person kann einer anderen Person
eine Nachricht nur dann zusenden, wenn sie ihr vertraut; oder wenn sie
einer Person vertraut, die ihrerseits einer weiteren Person vertraut, usw.
bis zur adressierten Person.
Vertrauen schenken: Wer am Netz des Vertrauens
teilnehmen möchte, braucht ein unbenutztes RAND, um sich damit bei
einem zentralen TrustServer anzumelden. RANDs sind im Netz jeweils nur
einmal vorkommende, sehr große Zufallszahlen, die vom TrustServer
hergestellt und registriert werden. Ein unbenutztes RAND erhält man
von einer bereits im Netz befindlichen anderen Person, die einem dadurch
Vertrauen schenkt. Das Verschenken eines RAND ist nur auf dem Weg über
den zentralen TrustServer sinnvoll, der diesen Vorgang registrieren muß.
Wachsendes Vertrauen: Der TrustServer verschenkt
selbst von Zeit zu Zeit an dafür qualifizierte Personen im Netz neue
unbenutzte RANDs. Jede Person im Netz kann nicht nur neuen Personen ein
RAND schenken und ihnen damit die Teilnahme ermöglichen, sondern auch
bereits im Netz befindlichen Personen – wenn sie das Bedürfnis dazu
und ein unbenutztes RAND übrig hat. Jedes Verschenken eines RAND erzeugt
beim TrustServer eine neue Kante im Netz der registrierten Vertrauensbeziehungen
und damit neue Möglichkeiten, Vertrauensketten zu bilden.
Befristetes Vertrauen: Jedes RAND ist einheitlich
in seiner Gültigkeit befristet. Die Frist beginnt mit der Benutzung
des RAND zur Anmeldung beim TrustServer. Verfällt ein RAND, muß
sich die betreffende Person mit einem anderen unbenutzten RAND beim TrustServer
zurückmelden; ihre Vertrauensbeziehungen zu anderen Personen im Netz
bleiben dabei erhalten. Wenn eine Person sich nicht zurückmeldet,
fällt sie aus dem Netz. Jede Vertrauensbeziehung ist einheitlich befristet,
nach Ablauf der Frist löscht der TrustServer die Kante aus dem Netz.
Sie kann aber durch Verschenken eines RAND erneuert werden.
Kommunikation: Jede Person kann Nachrichten nur
entlang einer Vertrauenskette weitergeben. Vertrauensketten funktionieren
auch in ihrer Gegenrichtung. Aktuell funktionierende Vertrauensketten zu
einem Empfänger kann der Absender vom TrustServer erfragen. Es gibt
drei Arten von Vertrauensketten:
-
zufällig ausgewählte,
-
kürzeste (minimale Anzahl von Zwischenpersonen),
-
verläßliche (die Zwischenpersonen haben relativ
viele unbenutzte RANDs und die Vertrauensbeziehungen zwischen ihnen sind
noch relativ neu).
Öffentlicher und privater Schlüssel: Der
TrustServer erzeugt ein besonderes Paar von Zufallszahlen für jede
teilnehmende Person. Die beiden Zufallszahlen werden "öffentlicher
Schlüssel" und "privater Schlüssel" genannt und haben folgende
Eigenschaften:
-
Jeder Schlüssel kommt nur einmal im Netz vor.
-
Den privaten Schlüssel kennt nur die teilnehmende Person,
selbst der TrustServer darf keine Kopie aufbewahren.
-
Der öffentliche Schlüssel einer teilnehmenden Person
kann beim TrustServer erfragt werden.
-
Aus der Kenntnis des öffentlichen Schlüssels kann
nichts über den dazu passenden privaten Schlüssel abgeleitet
werden.
-
Es gibt einen allgemein verfügbaren Algorithmus, der,
mit dem öffentlichen Schlüssel als Parameter, eine Nachricht
so verschlüsselt, daß sie nur mit dem privaten Schlüssel
als Parameter wieder entschlüsselt werden kann.
Digitale Umschläge: Ein digitaler Umschlag besteht
aus der unverschlüsselten Adresse des Empfängers und der mit
dessen öffentlichem Schlüssel verschlüsselten Nachricht.
Wird ein digitaler Umschlag über eine Zwischenperson weitergegeben,
dann erzeugt der Absender für diese Person einen digitalen Umschlag
mit dem digitalen Umschlag des Empfängers als Nachricht. Bei einer
längeren Vertrauenskette stecken entsprechend viele digitale Umschläge
ineinander. Keine Zwischenperson erfährt, von wem die Nachricht ursprünglich
kommt und an wen sie letztendlich geht; nur der Empfänger kann die
Nachricht selbst lesen.
Vertrauen entziehen: Wer einer Person Vertrauen
entziehen will, teilt dies dem TrustServer mit und gibt keine Nachrichten
mehr an diese Person weiter.
Das geht auch, wenn man zu dieser Person keine Vertrauensbeziehung
hat, sondern nur indirekt von ihrer Existenz im Netz weiß. Der TrustServer
bildet in jedem Fall keine Vertrauensketten mehr, in denen man gemeinsam
mit dieser Person vorkommt. Man kann einer Person, der man das Vertrauen
entzogen hat, später wieder mit einem RAND Vertrauen schenken.
Dynamisches Netz: Es ist möglich, daß
sich mit der Zeit, bis auf den für alle zentralen TrustServer, disjunkte
Netze herausbilden. Es ist möglich, daß disjunkte Netze wieder
zusammenwachsen. Neue Teilnetze beginnen mit einer Person, der vom TrustServer
Vertrauen geschenkt wird.
Aufgabe:
-
Implementieren Sie einen "TrustServer"
-
mit den erforderlichen Datenstrukturen und Methoden für
die Registrierung der Teilnehmer, ihrer Schlüssel, ihrer RANDs und
Vertrauensbeziehungen und deren Fristen;
-
mit den erforderlichen Methoden für die Suche nach Vertrauensketten;
-
mit einem Zeittakt für das Altern von RANDs und Vertrauensbeziehungen.
B Implementieren Sie einen
"Digitalen Umschlag"
-
mit der erforderlichen Datenstruktur und allen notwendigen
Methoden.
-
Deuten Sie die Verfahren der Erzeugung von Schlüsselpaaren,
der Verschlüsselung und der Entschlüsselung nur an – Ihre Algorithmen
müssen nicht kryptographisch sicher sein, dies würde den Rahmen
der Aufgabe sprengen.
C Implementieren Sie einen
"Simulator für Netze des Vertrauens"
-
mit möglichst vielen sinnvollen Parametern, die
Anzahl und Verhalten von Personen, Befristungen, sowie das Verhalten des
TrustServer betreffen.
-
Gehen Sie davon aus, daß Nachrichten, die von einer
Zwischenperson im Takt T empfangen werden, von ihr frühestens im Takt
T+1 weitergesendet werden, also frühestens im Takt T+2 bei der nächsten
Person eintreffen können.
-
Führen Sie 10 Simulationen mit interessanten Parameterwerten
durch und verdichten Sie die Protokolle auf das Wesentliche (Simulationszweck,
Begründung der Parameterwerte, wenige aussagefähige Grafiken,
kurzer beschreibender Text dazu).
Achten Sie bei allen Implementierungen darauf, daß
die folgende Informationsethik immer gilt:
-
Der TrustServer und jede Person wissen von anderen Personen
nur, was sie für das Funktionieren des Netzes unbedingt wissen müssen
("need-to-know principle").
-
Jede Person weiß stets, was der TrustServer und die
anderen Personen von ihm wissen ("open-profile principle").
Weiter (Aufgabe 2: Roboterweg)
Zurück (Allgemeine Hinweise)
Übersicht 2. Runde
BWINF Homepage