Денис Колисниченко - Анонимность и безопасность в Интернете. От «чайника» к пользователю
3.1.3. Шифрование информации в I2P
Весь трафик в сети I2P, в отличие от Tor, шифруется от отправителя к получателю. В общей сложности используются четыре уровня шифрования (сквозное, "чесночное", туннельное и шифрование транспортного уровня). Перед шифрованием I2P добавляет в отправляемый пакет случайное количество произвольных байтов, чтобы еще больше затруднить попытки анализа содержимого пакета и его блокировки.
В качестве адресов сети применяются криптографические идентификаторы (открытые криптографические ключи), не имеющие никакой логической связи с реальным компьютером. В сети I2P нигде не используются IP-адреса, поэтому определить настоящий IP-адрес узла, и, следовательно, установить его местонахождение, невозможно.
Каждое сетевое приложение, работающее через I2P, строит для себя анонимные зашифрованные туннели – обычно одностороннего типа, когда исходящий трафик идет через одни туннели, а входящий – через другие. Выяснить, какое приложение создало тот или иной туннель, – тоже невозможно (точнее, очень сложно, поэтому будем считать, что таки практически невозможно).
Все пакеты, передаваемые по сети, могут расходиться по разным туннелям, что делает бессмысленной попытку перехвата (прослушки) данных. И в самом деле – поскольку данные передаются по разным туннелям, проанализировать поток данных даже с помощью сниффера[3] не получится. Каждые 10 минут происходит смена уже созданных туннелей на новые с новыми цифровыми подписями и ключами шифрования (у каждого туннеля свой ключ шифрования и своя цифровая подпись).
Вам не нужно беспокоиться, чтобы прикладные программы обеспечивали шифрование трафика. Если существует недоверие к программам, имеющим закрытый исходный код (взять тот же Skype), можно или попытаться заставить эти программы работать через I2P, или поискать альтернативные программы с открытым кодом. Так, вместо Skype можно использовать Ekiga – простую программу для IP-телефонии. Правда, она не умеет шифровать данные (они передаются в открытом виде), но о шифровании позаботится I2P. Конечно, ваш собеседник тоже должен использовать I2P, иначе толку от всех этих мероприятий (настройки Skype для работы через I2P или установки и использования Ekiga) не будет.
Шифрование и дешифрование пакетов осуществляются соответственно на стороне отправителя (шифрование) и на стороне получателя (расшифровка). В отличие от Tor, никто из промежуточных участников обмена не может перехватить зашифрованные данные, и никто из участников не знает, кто на самом деле является отправителем, а кто получателем, поскольку передающий пакеты узел может быть как отправителем, так и промежуточным узлом.
Промежуточный узел не может узнать конечные точки (кто отправил пакеты, и куда они следуют), так же он не может определить, что случилось с только что переданным следующему узлу пакетом: принял его себе (то есть следующий узел является получателем) или передал следующему узлу.
В I2P используются следующие методы (алгоритмы) шифрования:
✓ AES (256 битов);
✓ схема Эль-Гамаля (2048 битов);
✓ алгоритм Диффи – Хеллмана (2048 битов);
✓ DSA (1024 бита);
✓ HMAC (256 битов);
✓ SHA256 (256 битов).
3.1.4. Как работать с I2P?
Все очень и очень просто. Принцип работы I2P с точки зрения неискушенного пользователя такой же, как и в случае с Tor. Вы устанавливаете I2P на свой компьютер, изменяете, если сочтете нужным, настройки по умолчанию (хотя в 99 % случаев этого делать не придется, поскольку I2P – это программа, работающая "из коробки", то есть не требующая настройки) и настраиваете свои сетевые программы – в их настройках следует указать использование прокси-сервера с IP-адресом 127.0.0.1 (порт 4444). Аналогичные действия мы проделывали при настройке сетевых программ на использование прокси-сервера Tor (только номер порта был другим).
После этого вы можете заходить на I2P-сайты сети, например, на http://i2p2.i2p – это официальный сайт проекта I2P.
По трафику, отправляемому вашим компьютером в Интернет, очень сложно понять, что от вас исходит – то ли это ваш трафик, то ли это транзитный трафик других клиентов I2P-сети. Другими словами, доказать причастность кого-либо к конкретной сетевой активности весьма тяжело.
3.1.5. Tor или I2P?
В главе 2 мы познакомились с распределенной сетью Tor. Здесь рассматривается подобный проект – I2P. Так что же лучше: Tor или I2P? Такой вопрос рано или поздно задаст любой пользователь, поработавший хотя бы раз с Tor или I2P. Спешу вас разочаровать, сравнивать I2P и Tor нельзя – это все равно, что сравнивать апельсины с яблоками. Кому-то нравятся апельсины, а кому-то – яблоки. Из яблок не получится апельсиновый сок, и наоборот. Каждая из сетей призвана решать свои задачи, поэтому выбирать между I2P и Tor нужно, исходя из поставленных задач.
Сеть I2P – это изолированная, закрытая сеть без выхода во "внешний" Интернет. И пусть в I2P имеется "прокси", позволяющий выйти в Интернет, но это особо не влияет на функционирование сети I2P в целом. I2P не предназначена для обычного серфинга в открытом Интернете. I2P идеальна для анонимного и безопасного обмена файлами, анонимного общения, анонимного хостинга сайтов внутри I2P-сети.
Концепция Tor несколько иная. Изначально Tor разрабатывалась для работы с открытым Интернетом. С ее помощью, как было показано в главе 2, можно легко посещать заблокированные сайты, анонимно посещать обычные сайты и т. п.
Давайте подытожим:
✓ вам нужно анонимное общение (например, по Skype или ICQ)? Тогда лучше воспользоваться I2P. При этом человек, с которым вы собираетесь общаться, тоже должен использовать I2P;
✓ если же вам нужно анонимно посетить тот или иной сайт или же посетить сайт, заблокированный "злым" администратором, тогда следует воспользоваться Tor. Использование Tor можно сравнить с маскировкой, а вот I2P является своеобразным подпольем мировой Сети.
Что же касается преимуществ и недостатков, то они есть у каждой сети, но перечислять мы их не будем, поскольку эти недостатки незначительны, и при использовании той или иной сети по назначению вы о них даже и не вспомните.
3.2. Установка ПО I2P
3.2.1. Установка Java-машины
Программное обеспечение для работы с I2P написано на Java, а поэтому, если на вашем компьютере не установлена виртуальная машина Java, самое время ее установить.
Просмотрите список установленных программ, если вы не найдете среди них Java(TM) 6 Update NN (NN – версия обновления), вам следует загрузить и установить Java самостоятельно.
Примечание
На моем компьютере виртуальная машина Java уже была установлена, что легко проверить с помощью панели управления (рис. 3.1).
Для загрузки виртуальной машины Java перейдите по адресу http://java.com/ru/ и нажмите большую красную кнопку Скачать Java бесплатно. Далее следуйте инструкциям загруженного инсталлятора – ничего сложного в установке Java-машины нет. После установки не забудьте перезагрузить компьютер – это особенность любой версии Windows (когда вместо перезагрузки одного какого-то компонента системы нужно перезагружать весь компьютер).
Рис. 3.1. Виртуальная машина Java установлена
3.2.2. Установка I2P
После установки Java-машины перейдите на сайт http://www.i2p2.de/download_ru и скачайте графический инсталлятор – программу i2pinstall_x.x.x.exe (x.x.x – номер версии, на момент написания этих строк – 0.8.8).
В процессе установки I2P нет ничего сложного. Первым делом надо выбрать язык (рис. 3.2), а затем нажать кнопку Далее (рис. 3.3).
Рис. 3.2. Выбор языка I2P
Рис. 3.3. Нажмите кнопку Далее
Вы можете запускать I2P вручную, а можете установить как службу Windows. В этом случае шлюз I2P будет запускаться автоматически при запуске системы. Для установки шлюза I2P как Windows-сервиса не снимайте флажок Windows Service (рис. 3.4).
Рис. 3.4. Установка I2P как службы Windows
Теперь нужно указать каталог установки (рис. 3.5), после чего начнется установка программы (рис. 3.6). Во время установки и после нее ваш брандмауэр должен пожаловаться, что приложение java.exe (виртуальная машина Java) пытается принять входящее соединение. Разрешите работу java.exe – все нормально, сервис I2P начинает свою работу.
Рис. 3.5. Каталог для установки I2P
После установки программы запустите программу services.msc и убедитесь, что служба I2P Service установлена и работает (рис. 3.7).
Рис. 3.6. Установка программы
Рис. 3.7. Служба I2P Service установлена и работает
3.2.3. Настройка браузера и других сетевых программ
Установив I2P, займемся настройкой браузера и других сетевых программ на использование шлюза I2P. Делается это аналогично указанию анонимного прокси-сервера – весь этот процесс для каждого браузера был подробно описан в главе 1. В качестве имени прокси-сервера следует указать localhost, номер порта – 4444.