Бортовой журнал

Сравнение TOR, i2p, FreeNet, GNUnet

Posted in IT-шное by cserpentis on Январь 13, 2012

Для начала попробую объяснить, что по своей сути и ориентированности на задачу, DarkNet’ы значительно различаются. Есть ориентированные на анонимный доступ к информации в обычном интернете, что «прикрывает» только пользователя, то есть и те, которые ориентированы на анонимизацию как посетителя, так и сервиса. Когда невозможно установить кто предоставляет информацию.

Проекты с выходом во внешнюю сеть имеют общий недостаток: сервер на границе между интернетом и внутренней сетью должен будет увидеть в открытом виде что вы там хотели передать вовне. И если злоумышленник сядет именно там, то он будет видеть что именно идёт по сети (хоть и не будет знать от кого). Эта уязвимость архитектурная и тут ничего не поделаешь, как только происходит выход в открытый интернет — шифрование заканчивается. Из сетей дающих подобную функциональность: TOR и I2P.

TOR (Tor Onion Routing Project)

Самый популярный и известный проект. Изначально разрабатывался флотом США для страдающих от избытка нефти, но недостатка демократии стран. Чтобы все недовольные могли выражать свою активную позицию не опасаясь получить по жизненно важным органам дубинкой от правительства. Потом проект сделали попенсорсным и отдали сообществу, решив, что дальше тут уже делать нечего. Проект популярен, но достаточно централизован, с наличием центральных серверов, на которых хранятся списки выходных точек (серверов, которые направляют траффик из сети TOR во внешний интернет и, соответственно наоборот), что предоставляет некий простор для прицельных атак на саму сеть.

В последнее время была добавлена функциональность создания серверов внутри самой сети с адресами .onion. В данном случае выхода из сети TOR не происходит и всё остаётся в её пределах, достаточно анонимно.

Сам проект достаточно популярен, известен и дружелюбен к конечному пользователю: имеется готовый инсталлятор полного пакета, который требуется только скачать, распаковать и запустить (можно даже с флешки), браузер заранее настроен чтобы не выдать пользователя яваскриптами и куками.

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

Скорости до 100-150 килобайт/сек.

i2p

Эта сеть ориентирована в первую очередь на доступ к внутреннему контенту, хранение данных не распределённое, каждый сервер где стоит и вполне полноценно работает.  Что уменьшает скорость загрузки и требует присутствие сервера в сети для доступа к конктенту, но зато позволяет делать полноценные сервера c динамическим контентом. Доступ реализуется посредством написанного на яве (но шустрого) прокси сервера, который поднимает нужные сервисы на локальных портах, перенаправляя их на соответствующие i2p адреса, которые являются b32 хешем.

В сети уже крутится свой IRC и почтовый сервера, торрент-трекер, уже присутствует кучка форумов и, конечно же, своя анонимная имиджборда. В теории можно приспособить любую программу для работы с i2p. Есть уже и свой распределённый мессенджер и активно пилится распределённая файловая система, которая позволит хранить файлы во всей сети сразу и нигде конкретно. Контента сейчас ещё не так густо, но активность видна и растёт. Несколько месяцев назад был резкий всплеск активности, который привёл к переписыванию клиента, чтобы он мог эффективно утилизировать ресурсы временных участников при их резком «прибытии» и «отбытии». Сеть самоорганизующаяся, центральных серверов нет, есть заранее заложенные сервера, так называемые адресные книги, которые сопоставляют коротное имя формата sever.i2p и его полноценный хеш, по которому к нему можно обратиться. Можно подписываться на самые популярные сервера адресных книг и получать готовые списки всия i2p или же искать на них при каждом обращении на сервер, полученные результаты для каждого сервера можно сохранить в постоянную адресную книгу.

Скорости где-то в районе 10-20 килобайт/сек.

Freenet

Так же представляет из себя прокси, написанный на яве. Основное назначение сети — распределённое хранение файлов, из-за этого динамический контент отсутствует. Большинство, с позволения сказать, сайтов до боли напоминают интернет в середине 90-ых. HTML с паттерном в качестве фона и кучки картинок. Из контента в основном зеркала сайтов доступных в интернете и… порно. Всех видов. Ради интереса была опробована закачка дистрибутива линукса (да, там и такое есть) и порно ролика примерно одинаковых размеров. Поскольку скорость зависит от популярности и кол-ва людей, скачавших файл (они проксируют на себе куски файлов и потом отдача происходит намного быстрее), то, думаю, объяснять что скачалось в 50 раз быстрее не надо. В качестве «+» — можно бросить интересный материал и уйти из сети. Если людям будет интересно, то он там останется. Скорости на популярный контент могут составлять порядка 50-100 килобайт/сек.

GNUnet

Сеть находится в полумёртвом состоянии, в немалой степени благодаря выходу версии 0.9, которая сломала совместимость с сетью 0.8, списки начальных серверов для версии 0.8 больше недоступны потому находящиеся во многих дистрибутивах версии 0.8.* бесполезны, версию 0.9 нужно собирать вручную, но судя по отсутствию пиров, заниматься этим желающих мало. Функционал сети в распределённом хранении файлов (и только), никаких сайтов и обмена сообщениями. На данный момент представляет интерес только академический и языком исполнения (С), что может порадовать определённую аудиторию.

Указанные выше скорости являются моим личным результатом и могут значительно отличаться в зависимости от конкретно вашей сети. Но, подозреваю, что приблизительная пропорция будет сохраняться. Так же, из-за архитектуры сетей при увеличении количества участников скорость доступа к ресурсам внутри сетей будет расти, но если при этом количество выводящих серверов останется неизменным, то скорость доступа к ресурсам в internet через эту сеть будет падать.

Tagged with:

Кратко о DarkNet-ах.

Posted in IT-шное by cserpentis on Январь 12, 2012

Как я и обещал. расскажу тут немного о своём опыте на тёмной стороне интернета.

Что вообще такое даркнеты?

Это сеть, существующая поверх обычного TCP/IP. Для функционирования всех этих сетей наличие интернета всё-таки требуется. Инфраструктура в отличии от Netsukuku не создаётся самостоятельно. Каждый клиент соединяется с другими и видит вполне реальный IP.

Как же достигается анонимность, если при подключении видны IP адреса?

Очень просто. Несмотря на то, что IP адреса тех, с кем ты соединяешься — видны, невозможно установить кто из них кем является внутри анонимной сети. В DarkNet’ах внутрисетевым идентификатором является не IP адрес, а различной длинны хеши ключей. И передаётся не напрямую и открыто а заворачиваясь в несколько слоёв шифрования.

Луковичное шифрование

Информация идёт от клиента А к клиенту Б через клиентов Зю и Кю, выбираемых случайно. При этом Зю и Кю не имеют ни малейшего понятия куда идёт пакет данных (в котором может быть ещё кучка более маленьких пакетиков) и от кого. Он только знает того, кто ему передал этот пакет и кому он его должен отдать. Получив пакет от любого соседа посредством TCP/IP и расшифровав его своим ключом получатель видит внутри или адресованные ему данные или же ещё один пакет, который зашифрован, а на нём указано только то, кому его надо бы передать. Причём указанный «адресат» вполне может быть не конечным получателем, а ещё одним «передатчиком» и получив пакет он его расшифрует, увидит следующего «адресата» и пошлёт пакет уже ему. В итоге любой узел сети знает только кто передал ему пакет и кому он его отдал. Ни содержимого, ни настоящих получателя и отправителя он не знает.

Честночное шифрование

В нём, вдобавок к вышеуказаной схеме добавляется ещё то, что в каждом пакете может быть любое кол-во пакетов перемешанных. То есть несколько пакетов от разных отправителей объединяются в один и передаются вместе, опять же в зашифрованном виде. Что затрудняет анализ траффика даже по размеру пакетов.

Вышеуказанные штучки позволяют i2p выживать даже в случае внедрения злонамеренных агентов (пока в цепочке есть хоть несколько добросоветсных передатчиков всё будет работать на ура, а у злоумышленников будут накапливаться зашифрованные пакеты, а их сетевые подключения будут использоваться во благо сети).

Зачем всё это нужно?

Затем, что законодательства в различных странах отличаются значительно. В некоторых из них выражение своего мнения вполне может караться дубинопочечными и головоотрубательными процедурами. Более либеральные страны при этом пытаются рассказывать о прелестях демократии и свободы слова. Вот для распространения настоящей свободы слова и доступа к информации и были созданы эти сети. Сети в большинстве своём обладают различной степенью самоорганизации, но стараются склоняться к отсутствию цензуры в принципе (невозможность контроля на техническом уровне, как залог свободы).

С последними подвижками в области правоторговли (SOPA и PIPA) могут составить отличный способ свободно предоставлять информацию, которую попыются отцензурить добрые медиа-магнаты, которые и до этого не гнушались злоупотреблять DMCA внаглую требуя удалить контент, на который не имели прав, надеясь, что у более мелких производителей не хватит сил и денег отстаивать в суде свою правоту.

Возможные опасности.

Основная опасность для анонимной сети — деанонимизация. Если DarkNet чуть больше, чем полностью состоит из злоумышленников, то отследить вас всё-таки можно. Но, поскольку галоперидола у меня нет, то оставим борьбу с вариантом «весь мир против меня» врачам. В некоторых сетях, предоставляющих доступ к веб-страничках есть вполне действенные методы деанонимизации (применимы они только сервером, на который вы имели неосторожность зайти): порыться в кукисах браузера, яваскриптом постучаться в открытый интернет и увидеть реальный айпишник анонима на другом конце тоннеля. Решается это очень просто: настраивается отдельный профиль браузера в котором единственным окном в мир является поднятый на локалхосте прокси. Запуск Firefox с отдельным профилем легко сделать так: firefox -p private -no-remote (прописываем это в отдельный ярлык и наслаждаемся) это позволяет не беспокоиться что каким-то образом история из одного браузера утечёт в другой, а так же выкрутить параноидальные настройки на максимум, отключив в профиле для DarkNet’ов хистори, куки, кэш и прочие мелочи, которые могут помочь вас опознать.

Обзор конкретных сетей и их сравнение ждите в следующем посте.

Tagged with: