Tor menggunakan beberapa variasi kunci berbeda, dengan tiga tujuan di pikiran: 1) enkripsi untuk memastikan privasi data dalam jaringan Tor, 2) autentikasi sehingga klien tahu mereka berbicara dengan relay yang mereka ingin ajak bicara, dan 3) signature untuk memastikan semua klien mengetahui set relay yang sama.

Enkripsi: pertama, semua koneksi dalam Tor menggunakan enkripsi tautan TLS, sehingga pengawas tidak bisa melihat ke dalam untuk melihat sirkuit mana dimaksudkan untuk sebuah sel. Lebih jauh lagi, klien Tor mendirikan sebuah kunci enkripsi tidak kekal dengan setiap relay dalam sirkuit; lapisan enkripsi extra ini artinya hanya relay keluar yang bisa membaca sel. Kedua sisi membuang kunci sirkuit saat sirkuit berakhir, jadi mencatat lalu-lintas dan lalu merusak masuk ke dalam relay untuk mencari tahu kuncinya tidak akan bekerja.

Autentikasi: Setiap relai Tor memiliki kunci dekripsi publik yang disebut "kunci onion". Setiap relay merotasi kunci onion setiap empat minggu. Ketika klien Tor membuat sirkuit, pada setiap langkah ia menuntut agar relai Tor membuktikan pengetahuan terhadap kunci onion-nya. Dengan cara tersebut node pertama di jalur tidak akan bisa menspoof jalur lainnya. Karena klien Tor yang memilih jalur, sehingga dapat dipastikan akan mendapatkan properti "kepercayaan distribusi": tidak ada satupun relay di dalam jalur bisa mengetahui tentang klien dan apa yang klien lakukan.

Koordinasi: Bagaimana klien mengetahui apa itu relai, dan bagaimana mereka tahu bahwa mereka memiliki kunci yang tepat untuk mereka? Setiap relai memiliki kunci penandatanganan publik jangka panjang yang disebut "kunci identitas". Setiap otoritas direktori juga memiliki "kunci penandatanganan direktori". Otoritas direktori menyediakan daftar yang ditandatangani dari semua relai yang dikenal, dan dalam daftar itu ada satu set sertifikat dari setiap relai (ditandatangani sendiri oleh kunci identitas mereka) menentukan kunci mereka, lokasi, kebijakan keluar, dan sebagainya. Jadi, kecuali jika musuh dapat mengontrol sebagian besar otoritas direktori (mulai tahun 2021 ada 10 otoritas direktori), mereka tidak dapat menipu klien Tor untuk menggunakan relai Tor lainnya.

Bagaimana klien mengetahui apa itu otoritas direktori?

Perangkat lunak Tor dilengkapi dengan daftar lokasi dan kunci publik bawaan untuk setiap otoritas direktori. Jadi satu-satunya cara untuk mengelabui pengguna agar menggunakan jaringan Tor palsu adalah dengan memberi mereka versi perangkat lunak yang dimodifikasi secara khusus.

Bagaimana pengguna tahu bahwa mereka memiliki perangkat lunak yang tepat?

Saat kami mendistribusikan kode sumber atau paket, kami menandatanganinya secara digital dengan GNU Privacy Guard. Lihat instruksi tentang bagaimana cara mengecek signature Tor Browser.

Untuk memastikan bahwa hal tersebut benar-benar ditanda tangani oleh kami, Anda harus bertemu dengan kami secara langsung dan mendapatkan salinan sidik jari kunci GPG kami, atau Anda harus mengetahui seseorang yang tahu. Jika Anda khawatir mengenai serangan pada level ini, kami merekomendasikan Anda untuk ikut terlibat dengan komunitas keamanan dan mulai bertemu dengan orang-orang.