Wer entscheidet, was das Tor-Netzwerk ist: Konsens, Directory Authorities und die Bridge-Aufteilung
Jede Tor-Verbindung beginnt mit einer Art Übereinkunft. Bevor der Browser den ersten Circuit baut, braucht er eine aktuelle Antwort auf eine scheinbar einfache Frage: Welche Relays existieren, und welchen davon kann man sich in diesem Moment anschließen? Nichts im Tor-Netzwerk entscheidet ein einzelner Server. Eine kleine, feste Gruppe von Maschinen, die sogenannten Directory Authorities, legt diese Frage gemeinsam fest, nach einem festen Zeitplan und in aller Öffentlichkeit.
Ein Dokument, ein Netzwerk
Das Dokument, das sie dabei erzeugen, ist der Konsens: im Glossar des Tor Projects ein einzelnes Dokument, das einmal pro Stunde von den Directory Authorities erstellt und abgestimmt wird. Jeder Konsens führt die bekannten Relays als Router-Status-Einträge mit Spitzname, Schlüsselmaterial und Adressen auf und versieht jeden Eintrag mit Flags und Bandbreitengewichten. Das Format, inklusive des kompletten Flag-Vokabulars, ist in der Directory-Spezifikation dokumentiert. Clients erfahren diese Fakten niemals vom Netzwerk als Ganzes. Die Adressen und langfristigen Identitätsschlüssel der Authorities sind direkt im Tor-Quellcode verankert, und die Spezifikation verlangt, dass jede Authority ihren Identitätsschlüssel offline hält und ihn nur dazu nutzt, kurzlebige Signaturschlüssel zu zertifizieren. Die Wurzel des Vertrauens dieses Netzwerks ist absichtlich klein, prüfbar und langsam im Wandel.Die stündliche Abstimmung, Schritt für Schritt
Die Mechanik steht im Voting-Zeitplan der Spezifikation. Jede Authority veröffentlicht regelmäßig ihre Stimme: den Netzwerkstatus, den sie für wahr hält. Ein zeitlich begrenztes Fenster sammelt die Stimmen aller Authorities, danach sammelt ein zweites Fenster die Unterschriften für das daraus entstehende Dokument, und die Spezifikation verlangt, dass jedes dieser Fenster mindestens zwanzig Sekunden dauert. Der fertige Konsens trägt drei Zeitstempel in fester Reihenfolge: valid-after, fresh-until und valid-until, wobei die gesamte Lebensdauer mindestens doppelt so lang wie die Frische-Periode sein muss. Zu jedem Zeitpunkt sollen mindestens drei Konsense gültig sein. Directory Caches laden jedes neue Dokument zwischen valid-after und fresh-until herunter, gewöhnliche Clients holen es in dem längeren Fenster danach, und ein Konsens, der mehr als einen Tag über seinem Ablaufdatum liegt, wird vollständig verworfen."Jede Stunde stimmen diese ehrenamtlich betriebenen Directory Authorities über die Relays ab, aus denen das Tor-Netzwerk besteht, und erzielen einen Konsens."Der Satz stammt aus dem Beitrag des Tor Projects vom November 2017, der Bastet vorstellte, eine neu dazugekommene Authority, mit der das Projekt die Vielfalt und Stabilität des Directory-Authority-Systems stärken wollte. Er ist zugleich, unaufdringlich, eine Beschreibung der gesamten Konstruktion: Die Authorities werden ehrenamtlich betrieben, sie stimmen ab, und ihre Übereinkunft macht aus Tausenden einzelner Relays ein einziges Netzwerk.
Flags, Bandbreite und Microdescriptors
Worum die Authorities abstimmen, ist mehr als bloße Existenz. Ein Relay kann Flags wie Authority, Exit, Fast, Guard, Running, Stable oder V2Dir tragen, die jeweils eine geprüfte Eigenschaft behaupten, und jede Stimme hält die gemessene Bandbreite des Relays fest, aus der der Konsens die Gewichte destilliert, mit denen Clients ihre Pfade wählen. Moderne Clients rufen meist die Microdescriptor-Variante des Konsens ab, die die abgestimmten Statuszeilen mit Hashes der kompakten Deskriptor-Bestandteile kombiniert, die Clients brauchen, statt vollständiger Server-Deskriptoren.- Guard kennzeichnet ein Relay als geeignet für die Eingangsposition eines Circuits.
- Exit kennzeichnet ein Relay als bereit, Verkehr auf gängigen Ports ins übrige Internet zu tragen.
- Stable kennzeichnet ein Relay als tauglich für langlebige Verbindungen.
- HSDir lässt ein Relay an dem Ring teilhaben, der die Einführungen von Onion Services speichert.
- V2Dir kennzeichnet ein Relay als fähig, Directory-Dokumente auszuliefern.










