Cellar Door

13 января 2006

Tor

Этот пост имеет особое значение для меня. Его тема в некотором роде сходна с моей заметкой о CipherSaber и отражает текущий статус моих взлядов и интересов. Дело в том, что Tor - децентрализованная анонимная сеть, созданная в ответ на контроль за электронными коммуникациями со стороны правительств, силовых структур и т.д., а это родственно тем целям, что преследовал Arnold G. Reinhold, представив на суд общественности CipherSaber. Так что, если Вы найдете заметку интересной, feel free сообщить о ней свим друзьям и коллегам :)

В последнее время я достаточно много узнал о сетях, основанных на P2P-технологии, и, как и большинство подобных разработок, Tor носит научно-исследовательский характер и преследует цель засекретности и анонимности электронных коммуникаций. Сразу стоит отметить, что P2P-технологии, о которых идет речь, не имеют ничего общего с пересылкой музыкальных и видеофайлов с помощью KaZaa, BitTorrent и других пиринговых систем, или тем более распространением почтового спама. Проект, о котором пойдет речь, предоставляет технологии для анонимного web-броузинга, IM, IRC, SSH-доступа и пр.

Сеть Tor можно представить как распределённую по планете систему из нескольких сотен открытых VPN-серверов, называемых "onion routers" и доступных любому пользователю Сети. Список всех серверов сети Tor вместе со слепками их ключей хранится на трех серверах каталогов (впрочем, они зеркалирутся и на других серверах сети), сами ключи меняются каждые 7 дней. То есть только регистрация серверов и ключей производится централизованно.

Протокол можно описать следующим образом. Клиентское приложение формирует цепочку передачи с тремя (по умолчанию) произвольно выбранными узлами. При этом команда на открытие цепи (а после установки соединения - и весь трафик) последовательно шифруется открытыми ключами этих узлов, начиная с последнего. Таким образом, первый узел не знает, какой узел будет замыкать цепочку (и сколько до него ещё звеньев), а последний не знает, кто открывал канал, т.е. ему неизвестна личность клиента. Собственно, название сети и протокола (TOR: The Onion Router) указывает на применение "луковичных" слоев шифрования. Межсерверные коммуникации защищены с помощью TLS. Образованные цепочки периодически перестраиваются, так что каждый узел сети в итоге пропускает очень незначительный объём данных от каждого клиента. Сессионные симметричные ключи шифрования после каждого изменения топологии удаляются как на узле-сервере, так и на узле-клиенте.

Оператор каждого Tor-узла волен выбирать собственную политику участия в сети, выполняя функции как посредника (middleman node), только передающего трафик другому узлу, так и выходного узла (exit node), трафик из которого выходит в большую Сеть, при этом можно выбирать, какие порты и сервисы оставлять открытыми для выхода.

В сети Tor есть определенное число ресурсов с доменным суфиксом .onion. Они используются для анонимных двусторонних соединений, и доступ к таковым ресурсам можно получить, только являясь узлом сети Tor. Собственно Вы можете сами анонимно публиковать информацию таким образом, организуя т.н. скрытые сервисы.

Тот факт, что проект снонсировался DARPA и Office of Naval Research, а "пилотная" сеть была впервые запущена в U.S. Naval Research Laboratory зачастую наталкивает на определенные мысли, озвученные, в частности, на форуме "PGP в России". Впрочем, учитывая открытость протокола, исходных текстов реализации и криптоалгоритмов, а также здоровую консервативность последних, я не намерен развивать тему подобных угроз. Замечу лишь, что некая могущественная третья сторона, способная производить пассивное или активное вмешательство в передачу данных в глобальных масштабах, безусловно способна установить соответствие между входящим в Tor трафиком и покидающим его сеть на любом из узлов.

Одна достаточно характерная цитата: "В приципе Tor действительно может быть чисто исследовательской игрушкой, несовершенной против очень продвинутого противника. Но это пока лучшее из всего что есть"... Оставлю её без комментариев.

Установка и настройка программного обеспечения, включающего собственно Tor и локальный прокси-сервер, для меня оказались делом считанных минут - всё исключительно просто и хорошо документировано. ПО может работать под управлением Windows, MacOS X, Linux, BSD. Репозиторий Debian GNU/Linux в моём случае содержит всё необходимое, присутствует Tor и в портежах Gentoo, портах Free/OpenBSD и pkgsrc. Наконец, все аспекты использования Tor (соксификация, скрытие DNS-запросов) досконально изучены и не составит труда получить помощь по любым возникающим вопросам.

Кроме того, IRC-сеть Freenode имеет канал #p2p-hackers, где Вы сможете адресовать интересующие Вас вопросы самим разработчикам сети, в частности, создателю Tor :)

"За кадром" остались такие интересные темы, как сети i2p, freenet, cebola, сети криптографических ремейлеров (Cipherpunk->Mixmaster->Mixminion) и многое другое. Постараюсь в будущем восполнить этот пробел. Тем более что данная статья, насколько мне известно, первая в русскоязычном блоге сколько-нибудь подробно описывает Tor и анонимные сети. А "если с чем-то бесполезно бороться (криптография, анонимность), то лучше это возглавить" :)

Ссылки:
Tor: An anonymous Internet communication system
Tor: Overview
TheOnionRouter/TorFAQ
PGP в России
"A Formal Treatment of Onion Routing", Jan Camenisch (IBM Research. Zurich research LAB) and Anna Lysyanskaya (Computer Science Department. Brown University) with respect of Ron Rivest
SATtva. Персональная страница
Анонимность: хорошая невостребованная технология
Tor: распределенная система анонимного серфинга

Если Вы еще сомневаетесь в потенциале P2P-технологий, надеюсь, что Вам будет интересно ознакомиться с целями проекта Randpeer человека по имени David Göthberg. Здесь можно посмотреть слайды, представленными им на 22-ом Chaos Communication Congress, - они дают довольное сильное представление о том, насколько солидную научную основу имеют P2P-технологии.

В статье были изложены и высказывания некоторых завсегдатаев форума "PGP в России", на котором я провел много времени. Склонен считать это данью профессионализму этих людей. Их высказывания здесь употреблены исключительно ради успеха непростого дела обеспечения приватности цифровых коммуникаций. Аспекты анонимных коммуникаций, в которых нуждается современное общество, являются малоисследованной областью криптографической науки, а информированность и того хуже. Так что, чем больше информированных пользователей сильной криптографии и продуктов open source, тем лучше станет мир :)