Tor verwendet eine Vielzahl von verschiedenen Schlüsseln, die drei Ziele verfolgen: 1) Verschlüsselung, um die Vertraulichkeit der Daten innerhalb des Tor-Netzwerks zu gewährleisten, 2) Authentifizierung, damit die Clients wissen, dass sie mit den Relays sprechen, mit denen sie sprechen sollen, und 3) Signaturen, um sicherzustellen, dass alle Clients die gleiche Gruppe von Relays kennen.
Verschlüsselung: Erstens verwenden alle Verbindungen in Tor TLS-Link-Verschlüsselung, sodass Beobachter nicht sehen können, für welchen Kanal eine bestimmte Zelle bestimmt ist.
Außerdem erstellt der Tor-Client einen einmaligen Schlüssel mit jedem Relay im Kanal; diese zusätzlichen Verschlüsselungsebenen bedeuten, dass nur das Exit-Relay die Zellen lesen kann.
Beide Seiten verwerfen den Kanal-Schlüssel, wenn der Kanal endet, so dass es nicht möglich ist, den Datenverkehr aufzuzeichnen und dann in das Relay einzubrechen, um den Schlüssel zu finden.
Authentifizierung: Jedes Tor-Relay hat einen öffentlichen Entschlüsselungsschlüssel, den „Onion Key“.
Jedes Relay wechselt seinen Onion Key alle vier Wochen.
Wenn der Tor-Client Kanäle aufbaut, verlangt er bei jedem Schritt, dass das Tor-Relay seine Kenntnis des Onion Keys nachweist.
Auf diese Weise kann der erste Knoten im Pfad nicht einfach den Rest des Pfades fälschen.
Da der Tor-Client den Pfad auswählt, kann er sicherstellen, dass er die Eigenschaft des „verteilten Vertrauens“ von Tor erhält: kein einzelnes Relay im Pfad kann sowohl über den Client als auch über das, was der Client tut, Bescheid wissen.
Koordination: Woher wissen die Clients, welche Relays es gibt, und woher wissen sie, dass sie die richtigen Schlüssel für sie haben?
Jedes Relay hat einen langfristigen öffentlichen Signierschlüssel, den so genannten "Identitätsschlüssel".
Jede Verzeichnisbehörde verfügt zusätzlich über einen "Verzeichnis-Signierschlüssel".
Die Verzeichnisbehörden stellen eine signierte Liste aller bekannten Relays zur Verfügung, und diese Liste enthält eine Reihe von Zertifikaten von jedem Relay (selbstsigniert durch ihren Identitätsschlüssel), die ihre Schlüssel, Standorte, Exit-Richtlinien usw. angeben.
Wenn der Gegner also nicht die Mehrheit der Directory-Verzeichnisse kontrolliert (Stand 2022: 8 Verzeichnisse), kann er den Tor-Client nicht dazu verleiten, andere Tor-Relays zu benutzen.
Woher wissen die Clients, welches die Verzeichnisbehörden sind?
Die Tor-Software kommt mit einer eingebauten Liste von Standorten und öffentlichen Schlüsseln für jede Verzeichnisbehörde.
Die einzige Möglichkeit, Benutzer zur Nutzung eines gefälschten Tor-Netzwerks zu verleiten, besteht also darin, ihnen eine speziell modifizierte Version der Software zu geben.
Woher wissen die Nutzer, dass sie die richtige Software haben?
Wenn wir den Quellcode oder ein Paket weitergeben, signieren wir es digital mit GNU Privacy Guard.
Siehe die Anleitung zur Überprüfung der Signatur des Tor Browser.
Um sicher zu sein, dass sie wirklich von uns signiert ist, musst du uns persönlich getroffen und eine Kopie unseres GPG-Schlüssel-Fingerabdrucks erhalten haben, oder du musst jemanden kennen, der das getan hat.
Wenn du dir Sorgen über einen Angriff dieser Art machst, empfehlen wir dir, dich in der Sicherheits-Community zu engagieren und damit zu beginnen, Leute zu treffen.