Tor використовує різноманітні ключі для трьох цілей: 1) шифрування для забезпечення конфіденційності даних у мережі Tor, 2) автентифікація, щоб клієнти знали, що вони обмінюються інформацією з тим ретранслятором, з яким вони мали намір це робити, та 3) підписи, щоб переконатися, що всі клієнти мають доступ до того ж самого набору ретрансляторів.
Шифрування: по-перше, усі з'єднання в Tor використовують шифрування протоколу TLS, тому спостерігачі не можуть зазирнути всередину, щоб побачити, до якої схеми направляється інформація.
Далі, клієнт Tor встановлює недовговічний ключ шифрування для кожного ретранслятора у схемі; ці додаткові шари шифрування означають, що тільки вихідний ретранслятор може зчитувати дані.
Обидві сторони скидають ключ схеми, коли схема закінчується, тому відстежування трафіку, а потім зламування ретранслятора для виявлення ключа, не працюватимуть.
Автентифікація: кожний ретранслятор Tor має відкритий ключ розшифровки, який називається «ключ onion».
Кожен ретранслятор змінює свій ключ кожні чотири тижні.
Коли клієнт Tor встановлює схеми, на кожному кроці він вимагає, щоб ретранслятор Tor підтвердив знання свого ключа onion.
Таким чином, перший вузол шляху не може просто підробити решту шляху.
Оскільки клієнт Tor вибирає шлях, він може переконатися, що отримує властивість Tor «розподілена довіра»: жоден ретранслятор на шляху не може знати ані про клієнта, ані про те, що клієнт робить.
Координація: як клієнти знають, що такий ретранслятор існує, і як вони знають, що у них є відповідні ключі?
Кожен ретранслятор має довгостроковий відкритий ключ цифрового підпису, який називається «ключ ідентифікації».
Кожен керівний сервер додатково має «керівний ключ цифрового підпису».
Керівний сервер надає підписаний список усіх відомих ретрансляторів, і в цьому списку є набір сертифікатів для кожного ретранслятора (самостійно підписані їхнім ключем ідентичності) з зазначенням їхніх ключів, локацій, політики виходу тощо.
Таким чином, якщо рекламодавець може контролювати більшість керівних серверів (станом на 2022 рік існує 8 керівних серверів), він зможе обманом змусити клієнт Tor використовувати інші ретранслятори Tor.
Звідки клієнти знають що таке керівний сервер?
Програмне забезпечення Tor постачається з вбудованим списком розташування та відкритим ключем для кожного керівного сервера.
Таким чином, єдиний спосіб обдурити користувачів, щоб ті використовували підставну мережу Tor – це надати їм спеціально модифіковану версію програмного забезпечення.
Як користувачі дізнаються, що мають правильне програмне забезпечення?
Коли ми поширюємо вихідний код або пакунок, ми підписуємо його цифровим підписом з допомогою GNU Privacy Guard.
Дивіться інструкції щодо перевірки підпису Tor Browser.
Щоб бути впевненим, що він дійсно підписаний нами, ви повинні зустрітися з нами особисто та отримати копію нашого відбитка ключа GPG, або вам потрібно знати когось, хто точно володіє таким відбитком.
Якщо вас турбує атака на цьому рівні, ми рекомендуємо вам приєднатися до спільноти безпеки та почати обговорювати ці питання.