Андрей Погребенник
Какова цена анонимности в Сети
– А зачем тогда оно нужно? Если ты сам знаешь, что это бесполезно?
– Как тебе сказать. Потому что, кроме этого, я знаю еще много других вещей,
и одна из них вот какая – если ты оказался в темноте и видишь
хотя бы самый слабый луч света, ты должен идти к нему
вместо того чтобы рассуждать, имеет смысл это делать или нет.
Может, это действительно не имеет смысла.
Но просто сидеть в темноте не имеет смысла в любом случае.
Понимаешь, в чем разница?
Виктор Пелевин «Затворник и шестипалый»
Когда цена анонимности почтовой переписки или совершения электронных платёжных операций высока, применимы лишь самые надёжные методы. К счастью, стойкая криптография давно перестала быть внутренним делом спецслужб, а энтузиасты со всего мира поддерживают сервера анонимных сетей и ремэйлеров электронной почты, способные обеспечить искомую анонимность.
В современном обществе проблема балансирования между государственной безопасностью и индивидуальной свободой (категориями столь же необходимыми, сколь и противоречивыми) стоит как никогда остро. При всей сложности данного вопроса один факт неопровержим – те государства, в которых права и свободы гражданина становятся разменной монетой, как правило, не достигают требуемой безопасности. С ростом роли Интернета как средства массовой информации, в котором еще способна существовать свобода слова, именно он становится основным полем конфликта. Это значит, что пора раскрыть тему анонимности и приватности в Сети.
Мы будем рассматривать ПО двух типов: ПО анонимных сетей общего назначения и клиентов анонимных ремэйлеров электронной почты. Специфика систем информационной безопасности заключается в том, что разработчики вынуждены идти на компромисс между степенью защиты и лёгкостью использования системы, её «прозрачностью» для конечного пользователя.
Речь пойдёт о средствах достижения надёжной анонимности (militant grade anonymity), работающих поверх Интернета – открытой сети, к которой нет доверия, что на поверку оказывается одной из сложнейших задач информационной безопасности. Неудивительно, что за анонимность пользователь расплачивается увеличенной латентностью сети, снижением скорости, нередко – гигабайтными объёмами трафика.
Модель угрозы
Сразу следует развеять некоторые заблуждения касательно более распространённых методов достижения «анонимности» и конфиденциальности в сети, а именно VPN и анонимных прокси-серверов.
VPN-туннели по определению не являются средством анонимизации (я отнюдь не имею в виду конфиденциальность) соединения, уязвимости же наиболее распространенного их стандарта (PPTP MPPE) уже стали притчей во языцех. Анонимный прокси-сервер и вовсе не имеет ничего общего со стойкой криптографией.
Важен и аспект сохранения анонимности и конфиденциальности при условии воздействия методов социальной инженерии или какого-либо давления на оператора сервера: ведь прокси- или VPN-сервера представляют собой единую точку отказа (единая точка выхода в большую Сеть).
Многоуровневое же шифрование и распределённый характер анонимных сетей, устраняя единую точку отказа и единый вектор атак, позволяют сделать перехват трафика или даже взлом части узлов сети вовсе не фатальным для общего блага событием.
Теоретические работы, которыми руководствуются разработчики анонимных сетей, предлагают термины, которые автору следует определить моделью угрозы анонимной сети.
Итак, против анонимных сетей и сетей ремэйлеров эффективны атаки пересечения. Анонимные сети и ранние разработки в области криптографических ремэйлеров также подвержены тайминг-атакам (http://www.i2p.net/how_threatmodel).
Тайминг-атака заключается в поиске и анализе повторяющихся паттернов в частоте отправки сообщений. Методы защиты от тайминг-атаки включают внесение переменных задержек в характер информационного обмена, перемешивание и объединение сообщений, пересылку их блоками фиксированного размера.
Атакой «brute force» называют действия могущественной третьей стороны, «наблюдателя», способного прослушивать интернет-трафик в глобальных масштабах, направленные на установление соответствия между сообщением (пакетом) и его отправителем. Некто со столь широкими возможностями может наводнить сеть огромным объемом данных и изучить корреляцию входного и выходного трафика сети.
Наконец атака пересечения базируется на данных о моментах и продолжительности сеансов связи узлов сети. Для успешного проведения атаки пересечения также необходима возможность анализа трафика в глобальных масштабах.
Классифицировано большее число атак, но остальные выходят за рамки статьи.
В общем случае безопасность анонимной сети прямо пропорциональна количеству узлов-участников сети. Улучшение равномерности статистического распределения узлов также является действенной мерой против многих типов атак. Учитывая любительский характер анонимных сетей, главным катализатором их развития являются степень доверия и сотрудничество пользователей. Доверие же к системам такого класса возможно лишь при условии открытости исходного кода, основополагающих протоколов и проектной документации. Однако исследования показывают, что даже в ПО движения Open Source могут в течение долгого времени оставаться незамеченными оставленные профессионалами потайные ходы, в связи с чем чрезвычайно высока роль исследований экспертов-аналитиков и криптологов.
Ранние анонимные сети. Freedom и Freenet
Первой успешной анонимной сетью был коммерческий сервис Freedom, существовавший в период с 1998 до 2001 года. Компанией ZKS были установлены выделенные серверы, с которыми клиенты «общались» посредством криптографического протокола. Узел, на который приходили пакеты от пользователя Freedom, не мог идентифицировать настоящего отправителя. Сама сеть функционировала на уровне протокола IP.
Перед тем как перейти к «главным героям» статьи, следует сказать пару слов о проекте Freenet [1] – хронологически также один из первых, но развивающийся по сей день. Он реализовал анонимное и конфиденциальное распределённое хранилище статических данных, не связанное с конкретным узлом сети. В сети Freenet информация хранится в зашифрованном виде, при этом ни операторы узлов сети, ни её создатели не знают содержимого хранимых ими данных (т.н. система с нулевым уровнем знаний), физического местоположения данных и никак не могут влиять на процесс их пересылки.
Freenet позволяет анонимную, без цензуры, публикацию различных материалов, владелец файла и его пользователь в равной степени анонимны. Конфиденциальность данных обеспечивается строгой криптографией. Файл можно извлечь, сообщив в запросе к системе ассоциированный с ним ключ.
Роль такого ключа выполняет хэш-код файла или DSAключ, что образует также механизм проверки целостности.
В разработке находится версия 0.7 проекта Freenet, – новой масштабируемой сети, реализующей механизм «onion routing» [2], а значит – потенциально сопоставимой по функциональности с сетью Tor, к описанию которой мы и переходим. Там же будет изложена суть механизма onion routing.
Анонимная сеть Tor
Tor [3] – наиболее известная и развитая среди существующих анонимных сетей (несмотря на раннюю стадию разработки, в которой пребывает проект), создаётся в США с середины 2002 года в рамках проекта Free Haven [4]. Действия же в области разработки протоколов «onion routing» велись с середины 1996 года. Корни проекта ведут к MIT, а список спонсоров включает DARPA, Office of Naval Research и Electronic Frontier Foundation. Распределённая сеть серверов сети Tor насчитывает около 350 постоянно подключённых узлов, а количество активных пользователей превышает 100000. Сеть не является полностью децентрализованной – существуют 3 центральных сервера каталогов, хранящие подписанный актуальный список узлов сети Tor с их реальными адресами и отпечатками открытых ключей (генерируемыми заново каждые 7 дней), т.е. регистрация серверов производится централизованно. Что касается территориальной распределённости, то два из трёх серверов каталогов размещены в США, а число энтузиастских серверов в США также выше, чем в любой другой стране.
Сеть Tor называют вторым поколением сетей, построенных по принципу «onion routing». Суть его в следующем. Клиентская сторона формирует цепочку из трех произвольно выбранных узлов сети Tor. Среди них есть входной (entry node) по отношению к клиенту узел и выходной (exit node), сеть Tor при этом функционирует как шлюз между клиентом и внешней сетью (Интернетом). Каждый Tor-сервер «знает» о предшествующем ему и последующем, но не более того, а замыкающие узлы не знают, кто находится на другой стороне канала и кто инициировал соединение. Отсутствие логической связи между отправителем и сообщением и гарантирует надёжную анонимность.
На рис. 1 схематически показан процесс анонимной пересылки сообщения. В пути, проложенном по Интернету через произвольно выбранные серверы сети Tor красной линией изображены зашифрованные каналы, зелёной – незашифрованные. Узлы сети Tor выделяются зелёным цветом.
Несложно заметить, что такая схема делает бесполезным перехват трафика на стороне ISP (ваш провайдер «видит» лишь поток шифртекста, состоящий из пакетов постоянной длины).
Рисунок 1. Схематическое изображение образования сеанса связи через сеть Tor
Использование Tor как шлюза на пути к большой Сети позволяет защитить права пользователей из стран, в которых регулируется доступ во Всемирную Сеть (таких, как Китай). По крайней мере на некоторое время: ведь такой стране достаточно заблокировать доступ даже не ко всем серверам сети Tor, а лишь к трём центральным серверам каталогов. А в таком случае энтузиастам останется разве что искать пути разворачивания собственного сервера каталогов на основе разработанного в рамках Tor протокола, используя для этого разного рода туннели, или же разрабатывать иную систему обнаружения узлов и сервисов в сети Tor.
С каждым пересылаемым пакетом (включая саму команду открытия туннеля) ассоциируется симметричный ключ шифрования и идентификатор следующего узла туннеля. Эти данные зашифровываются последовательно открытыми ключами всех выбранных серверов, начиная с последнего, – образованные структуры и называются «луковицами» (onions). Для межсерверных коммуникаций использован TLS.
Образованные цепочки каждые 10 минут перестраиваются: таким образом через каждый узел сети проходит ограниченный объём данных от каждого клиента. Для каждой вновь образованной цепочки серверов генерируется новый сеансовый ключ, а для противодействия атакам анализа трафика блок данных имеет, как уже было сказано, постоянный размер – 512 байт. «Луковица» может содержать сведения, необходимые для установки обратного канала – двусторонних соединений. Функционируя на уровне TCP (и пересылая лишь легитимные потоки TCP), Tor предоставляет надежный транспорт для прикладных программ посредством протокола SOCKS (см. статью «Универсальный прокси-сервер», Системный администратор, №2, 2005 г.).
Пользователь Tor может вручную формировать цепочки входящих и исходящих серверов сети Tor (параметры EntryNodes и ExitNodes) и выбирать политику участия в сети (exit policy): сервер сети Tor может функционировать как посредник (middleman node), только передающий трафик другому узлу, так и выходной узел (exit node), трафик из которого в открытом виде выходит в большую Сеть.
Следовательно, пользователям сети для сокрытия трафика от выходного узла следует помнить о целесообразности применения SSL или подобных ему протоколов на прикладном уровне.
Оператор сервера может блокировать определенные IP-адреса или порты, предотвращая, например, использование filesharing-сервисов и рассылку спама.
Так, принятая по умолчанию политика предусматривает блокирование всех исходящих соединений на порт TCP 25 для борьбы со спамом, а также портов наиболее популярных клиентов пиринговых сетей. Поскольку выходной узел «видит» открытый текст, он становится слабым звеном в цепи Tor, и с этой точки зрения гибкость настройки политик – одно из наиболее мощных свойств сети Tor, повышающих её привлекательность для энтузиастов, желающих поддерживать свой сервер сети Tor.
Информация о статусе серверов сети Tor обновляется каждые 15 минут при работе в режиме сервера и 30 – в режиме клиента, а подписанный список всех серверов сети Tor загружается каждые 20 минут в режиме сервера и 1 час – в режиме клиента.
Естественно, администратор может управлять этими параметрами, а также назначать группы серверов (клиент избегает одновременного использования узлов одной группы; это имеет смысл, если вы оперируете более чем одним узлом Tor).
Можно даже настроить ПО на работу в режиме сервера каталогов, что позволяет развернуть самодостаточную сеть Tor в вашей локальной сети.
Что касается сетевой безопасности, то здесь, кроме атак с участием «глобального наблюдателя» и тайминг-атак (которым по определению не могут полностью противостоять анонимные сети с низкой латентностью), угрозу представляет практическая возможность корреляции анонимного и неанонимного трафика, так как все TCP-соединения мультиплексируются в один канал.
В качестве контрмеры здесь целесообразно поддерживать несколько параллельно работающих экземпляров процесса Tor. Если же пользователь поддерживает собственный сервер сети Tor, то отличить порождаемый им трафик от трафика, проходящего через его сервер от других клиентов, и вовсе невозможно. Компрометация же одного или нескольких серверов цепи к потере анонимности или конфиденциальности не ведёт. Так, если скомпрометировано c из n узлов сети Tor, то вероятность успеха компрометации случайного сеанса связи равна c2/n2.
Практические вопросы
При настройке прикладных программ не-HTTP-приложения, не обладающие поддержкой SOCKS, должны быть подвергнуты процедуре соксификации. Гораздо проще этот процесс происходит в UNIX-подобных ОС, в Windows же он сопряжён с большими трудностями.
Для этого в дистрибутив Tor включены команды tsocks и torify, использующие механизм LD_PRELOAD; можно использовать и Socat [5] – релэй для двусторонней передачи данных между независимыми каналами (в роли которых могут выступать файлы, сокеты, специальные устройства, SOCKS-клиенты и т. д.).
Для Linux существует экспериментальное решение для соксификации всех сетевых соединений на уровне ядра – Kernel Socks Bouncer .
Для прозрачного соксифицирования программой пользовательского режима Linux можно использовать TranSocks и Transproxy в связке с iptables. Впрочем, Transproxy поддерживает и FreeBSD с ipfw, но проксирует эта программа лишь HTTP-трафик.
На платформе Windows действенны программы FreeCap [9] и SocksCap [10]. Данные для настройки многих популярных приложений можно найти на странице http://wiki.noreply.org/noreply/TheOnionRouter/TorifyHOWTO.
Для анонимизации HTTP-трафика в связке с Tor обычно применяют локальный прокси-сервер Privoxy [11]. Privoxy производит подмену/удаление сведений конфиденциального характера из отправляемых клиентскими приложениями HTTP(S)-заголовков, а также удаление баннеров.
Посетив страницу [12] можно увидеть, какой объём информации с готовностью сообщает ваш браузер.
Для удобного переключения между прокси-серверами в Firefox существуют SwitchProxy, ProxyButton и SwitchProxy Tool. Наконец, разумным может быть запрет с помощью firewall всех исходящих соединений, кроме тех, что исходят от ПО Tor.
Сложную проблему представляет и сокрытие DNS-активности узла. Privoxy позволяет решить эту задачу, однако ограничение состоит в том, что лишь клиент SOCKS версии 4a может выполнить разрешение доменных имен анонимно (посредством сети Tor), и то лишь при условии грамотного программирования.
Потому рекомендуется в настройках, обладающих поддержкой SOCKS-приложений явно указывать IP-адреса вместо доменного имени. Для разрешения доменных имен в IP-адреса анонимным образом следует использовать команду tor-resolve, а в Windows – и анонимный DNS-сервер TorDNS [13].
Работой в режиме клиента или сервера управляет параметр ClientOnly. Для использования Tor в качестве клиента в общем случае не требуется ни малейших изменений в конфигурации по умолчанию, настройка же Privoxy исчерпывается внесением в файл конфигурации Privoxy (/etc/privoxy/config или /usr/local/etc/privoxy/config большинстве UNIX-подобных ОС) одной строки, задающей перенаправление HTTP-соединений в сеть Tor посредством SOCKS 4a:
forward-socks4a / localhost:9050
Есть у Privoxy и веб-интерфейс: он будет доступен по адресу: http://config.privoxy.org.
Настройка сервера Tor включает выбор nickname и порта (ORPort). Информацию о себе (включая слепки сгенерированных ключей и свой статус) сервер автоматически передаст серверам каталогов. Последующие шаги обычно включают ограничение пропускной способности (что рекомендуется в случае обладания асимметричным подключением), установку лимита трафика (иначе сервер сети Tor может потреблять сотни гигабайт трафика ежемесячно) и выбор политики участия в сети.
«Скрытые» ресурсы сети Tor
Хотя Tor используется преимущественно для анонимизации на стороне клиента, существуют и анонимные сервера, предоставляющие внутри сети Tor «скрытые» ресурсы, отличаемые с доменным суффиксом .onion. При этом гарантируется взаимная анонимность клиента и сервера.
Так устроены системы анонимных блогов, электронной почты, IRC, Jabber, USENET, форумы/BBS, Wiki, SSH, серверы PGP-ключей и пр.
Есть и шлюз p2p-сети Entropy – анонимного распределённого хранилища данных, схожего с Freenet. Пользователи имеют возможность самостоятельно открывать скрытые сервисы.
Уместно привести несколько рекомендаций для операторов Tor-узлов: веб-сервера класса Apache подобно сложному браузеру могут быть каналом утечки конфиденциальных данных (за thttpd, к примеру, «уследить» куда проще), а доверие к вашему узлу будет гораздо выше в случае полного шифрования дискового раздела (dm-crypt, luks, loop-aes, gbde, geli, cgd, svnd) и запуска использования изолированных окружений (chroot, jail).
ПО Tor доступно в портах pkgsrc, FreeBSD и OpenBSD, включено в некоторые дистрибутивы Linux (Debian, Red Hat, портежи Gentoo), доступно для MacOS X и Windows. Tor и Privoxy также входят в дистрибутив Anonym.OS, основанного на OpenBSD 3.8 LiveCD [14].
Для пользователей Windows создан готовый для записи на флэш-диск дистрибутив Torpark [15], состоящий из уже настроенной связки Tor и Mozilla Firefox. Большое количество дополнительной информации находится на страницах [16].
Анонимная сеть I2P
Сеть I2P [17] возникла в 2003 году как форк проекта Freenode. При обмене данными по I2P выполняется их многоуровневое шифрование (сквозное, туннельное, шифрование транспортного уровня) и криптографическая аутентификация конечных узлов.
Узлы сети I2P представлены идентификаторами, не имеющими логической связи с их реальными IPадресами. Клиентское программное обеспечение функционирует как I2P-маршрутизатор, записывающий в таблицу данные узлов для передачи входящего и исходящего трафика. Передаваемый пакет проходит временные односторонние цепочки: маршрутизаторы исходящего трафика, построенные на узле-отправителе, и маршрутизаторы входящего трафика, построенные узлом-адресатом. Такие туннели перестраиваются каждые 10 минут. Управляя длиной цепочки маршрутизаторов в клиентском ПО, пользователь выбирает для себя нужное соотношение между степенью анонимности, латентностью и пропускной способностью сети. Передаваемое же сообщение проходит такой путь, который отвечает моделям угрозы отправителя и получателя.
В то время как Tor служит промежуточным звеном для анонимного доступа клиента в большую Сеть I2P преследует цель анонимного доступа к внутренним ресурсам I2P в первую очередь. Внутренние ресурсы сети I2P, идентифицируемые доменным суффиксом i2p, предоставляют сервисы анонимных блогов («Syndie»), анонимного доступа в сеть IRC («ircProxy»), анонимной электронной почты («Susimail»), передачи файлов, групп новостей, шлюзы сетей Freenet и Mnet. Существуют и выходные узлы для анонимного веб-сёрфинга посредством анонимного HTTP-прокси, «eepProxy».
Список сайтов сети I2P доступен по адресу orion.i2p, для поиска в сети I2P можно использовать search.i2p или eepsites.i2p.
Сразу после запуска ПО интегрированная адресная книга (средство разрешения имен в сети I2P, простой текстовый файл) вашего узла не содержит записей для многих сайтов сети – исправить положение можно, добавив строку:
http://orion.i2p/hosts.txt
в раздел управления вашими подписками (http://localhost:7657/susidns/subscriptions.jsp).
Пользователь сети может легко создать собственный сайт, так называемый eepsite, доступный только в сети I2P через eepProxy. Впрочем, последнее не совсем верно – «входной» прокси-сервер [18] позволяет получить доступ к ресурсам сети I2P из любого узла Интернета, просто дописав tin0.de к URL ресурса сети I2P.
После запуска I2P на порту 4444 ожидает соединения прокси-сервер. Privoxy можно сконфигурировать на доступ к ресурсам Tor и I2P одновременно, добавив в файл настроек сразу после строки Tor следующее:
forward .i2p localhost:4444
Все запросы к ресурсам, доменное имя которых заканчивается на .i2p, будут идти через сеть I2P, а остальной трафик – через Tor.
Использование Tor здесь обосновано, поскольку сайты I2P могут содержать рисунки, cgiскрипты, фреймы, размещенные на серверах большой Сети, с которыми охотно установит соединение клиент I2P. А мощность и надежность выходных узлов I2P гораздо ниже, чем у Tor: повторимся, этот проект ставит перед собой несколько иные цели.
Будучи основанной на UDP (вернее его модификации Secure Semireliable UDP, SSU, имеющей функции аутентификации, управления потоком и пр.), IP2 предлагает мост TCP/I2P, т.н. I2PTunnel, обеспечивающий передачу TCP-пакетов по сети I2P, а следовательно – и средство создания защищенных туннелей к любым TCP-службам, в доступе к которым может возникнуть необходимость.
На момент написания статьи количество серверов сети оценивается цифрой порядка 300, и для достижения более высокого уровня безопасности сеть должна обрести большее количество пользователей.
Существуют и другие проблемы.
Так, каждый узел туннеля «знает», частью какого туннеля он является. К примеру, если для передачи сообщения используется туннель из 2 узлов, и Боб получает сообщение от Чарли, которое он должен переслать Алисе, очевидно, что Алиса является получателем сообщения.
К выходу первого публичного релиза разработчики планируют устранить известные слабые места. Хоть прямое сравнение I2P и Tor и не совсем корректно, нельзя не отметить более распределённый и самодостаточный характер первой, преимуществом является и применение в I2P туннелей одностороннего типа.
Принятые разработчиками решения в сумме обеспечивают лучшее сокрытие сетевой активности. Тем не менее до выхода новых релизов, большего распространения сети I2P и публикации результатов её научных исследований (без которых сложно представить проект на стыке анонимности и криптографической науки) следует признавать Tor изученным средством анонимности.
ПО сети I2P относится к категории Open Source; реализации протокола I2P и SDK выполнены на языке Java, а следовательно – кроссплатформенны.
Управление ПО сети I2P производится через веб-интерфейс и настолько просто, что не нуждается в дополнительных разъяснениях с моей стороны.
Существует и простой API с функциональностью Simple Anonymous Messaging (SAM) для языка С, в разработке находятся API для Perl и Python, что обещает проекту долгую жизнь.
JAP: Java Anon Proxy
Проект JAP, он же AN.ON [22], преследует гораздо менее глобальные цели, чем два предыдущих: JAP предназначен для анонимизации только HTTP-трафика. Хотя само ПО поддерживает и SOCKS, разработчики аргументируют поддержку своими серверами лишь HTTP с высоким риском злоупотреблений. Пересылка трафика производится в зашифрованном виде через фиксированный каскад микс-серверов: пользователь не имеет возможности составить произвольную цепочку серверов. Преимущество данного подхода в том, что так проще достичь той «критической массы» пользователей, которая гарантирует высокую степень анонимности, а также более высокой скорости серфинга (и она действительно выше, чем у полностью распределенных сетей). Кроме того, поскольку пользователь не служит в данном случае конечным звеном цепи, то он защищен от посягательств со стороны лиц, желающих завладеть данными (ведь он не служит промежуточным звеном при передаче трафика от других узлов; впрочем, exit policies сети Tor предоставляют более гибкое решение данной проблемы). Компрометация анонимности клиента невозможна без перехвата всего входящего и исходящего трафика всех узлов каскада и их содействия с целью расшифровывания пакетов.
С помощью функции forwarding существует возможность предоставлять анонимный доступ другим клиентам. С мая 2005 года JAP умеет использовать узлы сети Tor в качестве каскада для анонимизации HTTP-трафика. Это происходит автоматически в том случае, если в настройках браузера выбран SOCKS-, а не HTTP-прокси. JAP гарантирует шифрование трафика от клиента до каскада JAP-серверов, но не выполняет дополнение пакетов до постоянного размера, чего заведомо недостаточно для противостояния атакам, основанным на анализе трафика. Полная конфиденциальность передаваемых данных достигается лишь в случае дополнительного шифрования на верхних уровнях с помощью таких протоколов, как SSL. Со второй половины 2006 года в рамках JAP решено предоставлять платный премиум-сервис, так как проект лишился прежнего источника финансирования.
Реализация JAP выполнена на языке Java, ПО – свободно и кроссплатформенно. Программа разработана в Германии, каскад JAP-серверов расположен там же. Известен случай компрометации сети германским Federal Bureau of Criminal Investigation, FBCI. В реализацию JAP разработчиками был встроен потайной ход (backdoor), а пользователям настоятельно рекомендовали провести обновление ПО. Вскоре суд признал действия FBCI нелегитимными, а потайной ход из кода JAP устранен. Так или иначе, репутация JAP не безупречна, а Tor и I2P являются гораздо более привлекательными средствами обеспечения надежной анонимности и конфиденциальности.
Заключение
Безусловно, мы не открыли вам лёгкого и универсального пути достижения надёжной анонимности, но «швейцарских ножей» в данной области попросту не существует: безопасность и простота вообще слабо совместимые понятия. Я не ставил своей целью предложить вам готовое решение: в постоянно меняющемся мире информационной безопасности (а тем более в сравнительно новой и экспериментальной области анонимности) это было бы преступлением. Успеха, по моему мнению, можно достичь лишь путём грамотного и прагматичного комбинирования существующих средств анонимности и конфиденциальности, к которым нет и не может быть абсолютного доверия, таким образом, чтобы образованная система соответствовала ценности защищаемых данных и степени ущерба в случае нарушения анонимности.
Так, разумным подходом выглядит сочетание нескольких средств достижения анонимности и/или конфиденциальности в сети: анонимных сетей, прокси, туннелей OpenVPN, SSH и SLIRP [23]. Даже в области анонимной переписки следует изучить возможность комбинирования анонимной сети Tor и криптографических ремэйлеров, имеющих точку входа внутри сети Tor (таких, как Pantha Rei [24] или Bananasplit [25].
Тема анонимности в Сети побуждает великое количество вопросов правового, политического или этического характера, предвосхитить которые хочется словами Б. Франклина, произнесёнными им более 200 лет назад: «Те, кто готовы пожертвовать своими фундаментальными свободами ради временной безопасности, не заслуживают ни безопасности, ни свободы».
Приложение
Правовое регулирование использования стойкой криптографии
Разумеется, использование ПО, о котором идёт речь в статье, не регулируется законодательством специальным образом. Тем не менее, правовые аспекты использования средств криптографической защиты информации (СКЗИ, будь то клиентское ПО анонимных сетей или ремэйлеров или иное ПО, с которым вы работаете), заслуживают отдельного рассмотрения. Правовая модель, принятая в РФ, следует знакомому вам принципу: «разрешено всё, что явно не запрещено». Основная правовая база – законы «Об информации, информатизации и защите информации» и «О коммерческой тайне», Приказ ФСБ «Об утверждении положения о разработке, производстве, реализации и эксплуатации шифровальных средств защиты информации», Указ Президента РФ «О мерах по соблюдению законности в области разработки производства, реализации и эксплуатации шифровальных средств, а также предоставления услуг в области шифрования информации».
Итак, в законодательстве РФ нет ограничений на длину ключа используемых криптоалгоритмов, а депонирование криптографических ключей частных лиц и негосударственных организаций в России не проводится, хотя в случае санкции суда подследственный обязан выдать ключ или пароль для проведения расследования. В противном случае подследственному инкриминируется сокрытие вещественных доказательств и препятствование ведению следствия. Впрочем, доказать факт преднамеренного сокрытия информации, иными словами знания ключа – задача вовсе не тривиальная, а, учитывая возможность физического разделения ключа между несколькими лицами, в т.ч. нерезидентами, порой неразрешимая. Так или иначе, о подобных прецедентах в российской правовой практике автору неизвестно.
Далее, требование эксплуатации исключительно сертифицированных ФАПСИ средств криптографической защиты информации действительно лишь по отношению к информации, относящейся к государственной тайне, или конфиденциальной информации государственных органов власти. Сертификация служит гарантией качества алгоритма и свидетельством того, что он разработан под строгим государственным контролем. Следовательно, использование иностранных криптоалгоритмов и эксплуатация импортированных СКЗИ, в том числе включённых в дистрибутивы ОС с открытым исходным кодом, в любых частных и коммерческих целях, легальны.
Что касается лицензирования СКЗИ, п. 4 Указа Президента N334 от 03.04.95 запрещает деятельность юридических и физических лиц по эксплуатации СКЗИ без лицензии, выданной ФАПСИ при Президенте РФ. В соответствии с п. 1 ст. 1 Федерального закона «О лицензировании отдельных видов деятельности» от 08.08.2001, «закон регулирует отношения, возникающие между федеральными органами исполнительной власти, органами исполнительной власти субъектов Российской Федерации, юридическими лицами и индивидуальными предпринимателями в связи с осуществлением лицензирования отдельных видов деятельности в соответствии с перечнем, предусмотренным пунктом 1 статьи 17 настоящего Федерального закона». Но перечень из п. 1 ст. 17 не включает положения о лицензировании деятельности, связанной с эксплуатацией СКЗИ, следовательно, эксплуатация лицензированию не подлежит. Подводя итоги вышесказанного, следует сказать, что регулирующее сферу компьютерной безопасности законодательство в РФ весьма либерально, впрочем некоторые противоречивые моменты вполне могут сбить с толку иного IT-специалиста.
Сети криптографических ремэйлеров
Движение шифрпанков, возникшее в университете Беркли, ставило своей целью сохранить преимущества сети Интернет как средства самовыражения и среды для существования свободы слова и остро реагировало на любые попытки контроля и слежки. Один из разработанных ими механизмов анонимности, сети анонимных ремэйлеров, гарантирует анонимность электронной переписки. Их принято классифицировать по нескольким поколениям: так, сети нулевого поколения, type 0, состояли из одного промежуточного сервера, выполняющего задачу сродни анонимному прокси-серверу – удаление из сообщений электронной почты идентифицирующих отправителя заголовков. Слабость ремэйлеров нулевого поколения была обусловлена незащищенностью цепи «отправитель-ремэйлер» и их централизованностью. Однако уже в следующем, первом поколении ремэйлеров (type 1) был представлен полностью переработанный протокол анонимной переписки. Широко известная сегодня система Mixmaster относится к ремэйлерам второго поколения (type 2), разрабатываемым с 1995 года. Очень амбициозен и проект Mixminion, называемый сетью третьего поколения (type 3). Современные сети криптографических ремэйлеров включают десятки энтузиастских серверов в разных частях мира.
Принцип действия ремэйлеров лучше показать на примере первого поколения ремэйлеров шифрпанков. Отправитель сообщения волен выбрать несколько промежуточных серверов-ремэйлеров. Он шифрует письмо открытыми PGP-ключами выбранных серверов, начиная с последнего. Каждый промежуточный сервер расшифровывает сообщение своим закрытым ключом и удаляет все служебные заголовки, присоединяя новые. Таким образом скрывается логическая связь между отправителем и получателем сообщения, а сообщение обладает свойством анонимности. Компрометация небольшого числа промежуточных серверов не меняет общей картины. Ремэйлеры первого поколения (в отличие от последующих) не требуют специальных программ для формирования сообщения, зато вам понадобятся открытые ключи выбранных промежуточных серверов и их адреса. С адресами помогут многочисленные сайты статистики, ключи же можно получить на специальных страницах или же запросить у самого сервера, отправив на его почтовый адрес письмо с темой remailer-key.
Проект Mixmaster [19] представил не только средства защиты от анализа трафика, но и функциональность сервера псевдонимов, или ним-сервера. Как средство защиты от анализа трафика были реализованы: дополнение/разбивка сообщения на блоки постоянного размера в 28 Кб; внесение случайной задержки во время отправки каждого блока и «перемешивание» блоков сервером-ремэйлером. Двусторонняя же пересылка анонимных сообщений реализована благодаря связыванию псевдонима отправителя с сообщением. Фактически «обратная связь» была предусмотрена еще в ремэйлере нулевого поколения – знаменитом anon.penet.fi Йохана Хельсингьюса. Сервер anon.penet.fi ассоциировал с адресом отправителя сообщения адрес вида anXXXX@anon.penet.fi. Если получатель отправлял ответное сообщение на такой адрес, сервер пересылал ответ обратно на почтовый адрес автора первого сообщения. В 1996 году Хельсингьюс закрыл свой сервис, через год после того, как под угрозой судебного преследования был вынужден выдать адреса отправителей некоторых анонимных писем. Чтобы не допустить подобных инцидентов, ремэйлеры со времен Mixmaster хранят ассоциированные с псевдонимом адрес и открытый ключ, предварительно зашифровав их открытыми ключами серверов-ремэйлеров. На сайте проекта QuickSilver [20] можно загрузить реализацию протокола Mixmaster для платформы Windows, отличную от референсной.
Хотя проект Mixminion [21] – сеть анонимных ремэйлеров третьего поколения – все еще находится в ранней стадии разработки, представленные им идеи более чем интересны. Сторона-отправитель разбивает сообщение на пакеты постоянной длины и выбирает для каждого пакета последовательность серверов, через которую пакет будет передаваться, при этом каждый пакет содержит информацию о следующем сервере на своем пути. В рамках протокола Mixminion разработана также технология Single-Use Reply Blocks (SURBS), обеспечивающая анонимность получателя письма, и технология взаимной анонимности отправителя и получателя. Другие нововведения включают выделенные серверы каталогов, ограничение срока жизни ключа, применение TLS и другое.
Echelon
Общим свойством любых анонимных сетей или сетей криптографических ремэйлеров является уязвимость по отношению к слежке со стороны могущественного «глобального наблюдателя». В данном контексте следует помнить о факте существования автоматизированной системы контроля и слежения Echelon. Echelon был создан к 1971 году альянсом англоязычных стран UKUSA, образованным в качестве агентства перехвата и разведки информации (signal intelligence) специальными агентствами англоязычных стран во главе с National Security Agency (NSA) США. В альянс UKUSA входят и ведомства Великобритании, Канады, Австралии и Новой Зеландии, а некоторые «третьи» страны имеют на своей территории оборудование комплекса Echelon. До сих пор отсутствует исчерпывающая информация о системе Echelon, а правительство США официально не признало её существования. Источником имеющихся сведений послужили несколько отчетов о Echelon и книга «Secret Power: New Zealand’s Role in the International Spy Network», увенчавшая 12летние исследования Nicky Hager.
Известно, что система Echelon наделена функциями перехвата трафика радиоэфира и линий спутниковой, радиорелейной и сотовой связи, телефонных линий и компьютерных сетей. Мощность комплекса Echelon, по имеющимся сведениям, достаточна для перехвата миллиардов сообщений ежечасно. Работу системы обеспечивают передовые разработки в области систем анализа трафика и обработки данных, в частности – систем искусственного интеллекта. Наиболее производительная в мире система NAS, использующая твердотельные диски (solid-state disk, SSD), является частью комплекса Echelon. Внедренная как средство контроля над СССР система Echelon сегодня стала не только весомым аргументом в борьбе с международным терроризмом и наркоторговлей, но и орудием, способным утвердить превосходство стран-участников на политической арене. Существуют факты, позволяющие предположить о применении Echelon в качестве орудия промышленного шпионажа или средства внутреннего наблюдения (domestic surveillance).
Во многих других странах разработаны собственные средства глобального контроля и слежения, аналогичные Echelon. Так, в России функциональным аналогом служит СОРМ (система оперативно-разыскных мероприятий), в странах Евросоюза действует система RES, а в США помимо Echelon одно время существовала и локальная система Carnivore. Как бы то ни было, общая тенденция такова, что даже мощности Echelon недостаточно для анализа всего передаваемого в электрических и волновых каналах связи трафика, а следовательно – подобные системы вынуждены действовать выборочно и целенаправлено, в соответствии с наборами фильтров.
Проблема приватности и анонимности в Сети отнюдь не умаляется европейскими органами власти: так, Европарламент в отчете о Echelon 2001 года рекомендовал гражданам стран ЕС применять средства криптографии для защиты права на приватность, а в 2004 ЕС выделил 11 миллионов евро на развитие проекта SECOQC (Secure Communication based on Quantum Cryptography) – системы квантовой криптографии, теоретически неподверженной воздействию Echelon или подобных ей систем.
Ссылки:
- http://freenetproject.org – официальный сайт проекта Freenet.
- http://www.onion-router.net – описание концепции onion routing, архив публикаций.
- http://tor.eff.org – анонимная сеть Tor, официальный сайт.
- http://www.freehaven.net – родительский по отношению к Tor проект, в наличии архив научных исследований.
- http://www.dest-unreach.org/socat – домашняя страница проекта socat.
- http://ksb.sourceforge.net – Kernel Socks Bouncer, соксификация Linux-ядра.
- http://transocks.sourceforge.net – TranSocks, прозрачный соксификатор пользовательского режима Linux.
- http://transproxy.sourceforge.net – Transproxy, прозрачный HTTP-прокси.
- http://www.freecap.ru – домашняя страница Freecap, соксификатора для Windows.
- http://www.socks.permeo.com – SocksCap, ещё один соксификатор для Windows.
- http://www.privoxy.org – домашняя страница анонимизирующего прокси-сервера Privoxy.
- http://gemal.dk/browserspy – информация, сообщаемая вашим браузером.
- http://sandos.ath.cx/~badger/tordns.html – TorDNS, анонимный DNS-сервер для Windows.
- http://theory.kaos.to/projects.html – домашняя страница Anonym.OS.
- http://www.freehaven.net/~arrakis/torpark.html – Torpark, дистрибутив Tor + Firefox для Windows.
- http://wiki.noreply.org/noreply/TheOnionRouter – Wiki проекта Tor.
- http://www.i2p.net – официальный сайт анонимной сети I2P.
- http://inproxy.tino.i2p.tin0.de – входной прокси-сервер к сети I2P.
- http://mixmaster.sourceforge.net – Mixmaster, анонимный ремэйлер второго поколения.
- http://www.quicksilvermail.net – QuickSilver – альтернативная реализация Mixmaster для платформы Windows.
- http://www.mixminion.net – Mixminion – анонимный ремэйлер третьего поколения.
- http://anon.inf.tu-dresden.de/index_en.html – домашняя страница анонимайзера JAP.
- http://slirp.sourceforge.net – SLIRP, эмуляция PPP или SLIP через терминальную сессию.
- http://www.panta-rhei.eu.org – ним-сервер Panta Rhei.
- http://www.bananasplit.info – приватный Mixmaster-ремэйлер.