Кто решает, что такое сеть Tor: консенсус, авторитеты каталога и разделение мостов
Каждое соединение Tor начинается с акта согласия. Прежде чем браузер построит свою первую цепочку, ему нужен актуальный ответ на обманчиво простой вопрос: какие узлы существуют и каким из них можно доверять прямо сейчас? В сети Tor ничего не решает единственный сервер. Вместо этого небольшой фиксированный набор машин, называемых авторитетами каталога, решает этот вопрос сообща, по расписанию и публично.
Один документ — одна сеть
Документ, который они создают, — это консенсус: по глоссарию Tor Project, единый документ, который раз в час составляют и утверждают голосованием авторитеты каталога. Каждый консенсус перечисляет известные узлы как записи статуса маршрутизаторов с псевдонимом, ключевым материалом и адресами и снабжает каждую запись флагами и весами пропускной способности. Формат, включая полный словарь флагов, задокументирован в спецификации каталога. Клиенты никогда не узнают эти сведения от сети в целом. Адреса и долгосрочные ключи идентичности авторитетов зашиты в сам исходный код Tor, а спецификация требует, чтобы каждый авторитет хранил ключ идентичности офлайн и использовал его лишь для сертификации короткоживущих ключей подписи. Корень доверия этой сети намеренно мал, проверяем и медленно меняется.Часовое голосование, шаг за шагом
Механика изложена в графике голосования спецификации. Каждый авторитет периодически публикует свой голос: статус сети, который он считает истинным. Ограниченное по времени окно собирает голоса всех авторитетов, затем второе окно собирает подписи под итоговым документом, и спецификация требует, чтобы каждое из этих окон длилось не менее двадцати секунд. Готовый консенсус несет три отметки времени в фиксированном порядке: valid-after, fresh-until и valid-until, причем полный срок жизни должен быть не меньше удвоенного «свежего» периода. В любой момент времени должны быть действительны как минимум три консенсуса. Каталожные кэши скачивают каждый новый документ между valid-after и fresh-until, обычные клиенты забирают его в следующем, более длинном окне, а консенсус, просроченный более чем на сутки, отбрасывается целиком."Каждый час эти авторитеты каталога, работающие на волонтерских началах, голосуют и приходят к консенсусу о релеях, из которых состоит сеть Tor."Эта строчка взята из записи в блоге Tor Project от ноября 2017 года, где представляли Bastet — новый авторитет, добавленный, чтобы усилить то, что проект назвал разнообразием и стабильностью системы авторитетов каталога. Она же, без пафоса, описывает всю конструкцию: авторитеты работают на волонтерских началах, они голосуют, и их согласие превращает тысячи отдельных релеев в единую сеть.
Флаги, пропускная способность и микродескрипторы
Голосуют авторитеты не только за само существование. Релей может нести флаги вроде Authority, Exit, Fast, Guard, Running, Stable или V2Dir, каждый из которых утверждает проверенное свойство, а каждый голос фиксирует измеренную пропускную способность релея, из которой консенсус извлекает веса, используемые клиентами при выборе путей. Современные клиенты чаще всего забирают консенсус в варианте микродескрипторов, где строки статуса сочетаются с хешами компактных фрагментов дескрипторов, нужных клиентам, вместо полных серверных дескрипторов.- Guard помечает релей как подходящий на входную позицию цепочки.
- Exit помечает релей как готовый нести трафик в остальной интернет через распространенные порты.
- Stable помечает релей как пригодный для долгоживущих соединений.
- HSDir допускает релей в кольцо, где хранятся представления onion-сервисов.
- V2Dir помечает релей как способный раздавать документы каталога.










