Tor использует множества различных ключей для трех целей: 1) шифрование трафика внутри сети Tor, 2) удостоверение подлинности (аутентификация), чтобы приложения понимали, что они общаются с реальными узлами Tor и 3) цифровые подписи, что бы все приложения имели доступ к одному и тому же набору узлов.
Шифрование: все соединения в сети Tor шифруются с помощью протокола TLS, поэтому атакующий не может расшифровать кому конкретно направляется трафик.
Далее клиент Tor устанавливает эфемерный ключ шифрования с каждым узлом в цепи; эти дополнительные уровни шифрования означают, что только выходной узел может считывать ячейки.
Обе стороны сбрасывают ключ цепи, когда цепь заканчивается, поэтому регистрация трафика, а затем взлом узла, чтобы обнаружить ключ, не будет работать.
Аутентификация: Каждый узел Tor имеет открытый ключ расшифровки, называемый "onion ключ".
Каждый узел меняет свой onion-ключ раз в четыре недели.
Когда клиент Tor устанавливает схемы, на каждом этапе он требует, чтобы узел Tor доказал знание своего onion-ключа.
Таким образом, первый узел в пути не может просто подделать остальную часть пути.
Поскольку клиент Tor выбирает путь, он может убедиться, что получает свойство Tor "распределенное доверие": ни один узел в пути не может знать как о клиенте, так и о том, что клиент делает.
Координация: Как клиенты узнают, что такие узлы существуют, и как они узнают, что у них есть правильные ключи для них?
Каждый узел имеет долгосрочный открытый ключ подписи, называемый "идентифицирующий ключ".
Каждый управляющий сервер дополнительно имеет "ключ подписи каталога".
The directory authorities provide a signed list of all the known relays, and in that list are a set of certificates from each relay (self-signed by their identity key) specifying their keys, locations, exit policies, and so on.
So unless the adversary can control a majority of the directory authorities (as of 2022 there are 8 directory authorities), they can't trick the Tor client into using other Tor relays.
Как клиенты узнают о действующих управляющих серверах?
Программное обеспечение Tor поставляется со встроенным списком местоположения и открытым ключом для каждого управляющего сервера.
Таким образом, единственный способ обмануть пользователей в использовании поддельной сети Tor - это дать им специально модифицированную версию программного обеспечения.
Как пользователи узнают, что у них есть необходимое программное обеспечение?
Когда мы распространяем исходный код или пакет, мы подписываем его цифровой подписью с помощью GNU Privacy Guard.
См. инструкции по проверке подписи Tor Browser.
Чтобы быть уверенным, что он действительно подписан нами, вам нужно встретиться с нами лично и получить копию отпечатка нашего ключа GPG, или вам нужно знать кого-то, у кого он имеется.
Если вы обеспокоены атакой такого уровня, мы рекомендуем вам связаться с сообществом безопасности и найти возможность личной встречи.