Comments 23
При всём уважении к i2p, он совершенно не готов к борьбе с гэбнёй. Почему? Потому что "запутанный клубок" работает хорошо против пассивного наблюдателя, но не работает против СОРМа с шейпером.
Рассказываю, как за несколько замеров поймать сервер в I2P.
Определить список пользователей i2p. Это делается легко, т.к. трафик i2p легко найти по сигнатурам.
Установить соединение с атакуемым сайтом.
Выключить у 50% подозрительных пользователей i2p трафик на короткое время (дропнуть пакеты на 10-30с)
Если скорость активного соединения с сайтом не упала, исключить оставшиеся 50% из подозреваемых. Если упала - подождать 10-20 минут и перейти к п.2.
Подождать 10-20 минут (перестроение туннелей).
Если число оставшихся подозреваемых больше 1, перейти к п.3
Через 10-20-30 итераций у вас есть подозреваемый, и несколько контрольных изменений скорости i2p канала доказывают прямую корреляцию с между замедлением канала подозреваемого и замедлением доступа к сайту.
Аналогично можно искать и пользователя i2p, хотя наличие i2p трафика уже можно считать достаточным для привлечения к процессуальным действиям в связи с подозрением в участии в деятельности экстремистского сообщества (любого, у хотя бы одного члена которого найдено i2p).
Хорошее зерно истины в ваших словах есть, но слишком уж пессимистично. Для статических сайтов есть простое решение - мультихоуминг. Впрочем, данное решение при наличии желания и навыков применимо к ресурсам со сложной логикой, где I2P будет выступать в роли внешнего распределенного фасада центрального сервера (в самом простом случае с реверс-веб-серверами, нечто вроде "тонких клиентов").
После того, как определены финальные шлюзы, смотрится их трафик, и с помощью того же троттлинга обнаруживается финальный сервер. На самом деле, владельцы узлов, участвующие в мультихоуминге, уже могут привлекаться к процессуальным действиям, а они уже или сами укажут на заказчика, либо сошлются на 51, после чего поменяют процессуальный статус.
Я бы очень хотел иметь хорошо защищённую приватную сеть, но i2p совершенно не готов к борьбе с репрессивным государством.
После того, как определены финальные шлюзы, смотрится их трафик, и с
помощью того же троттлинга обнаруживается финальный сервер.
Если сервер один, ваш первый комментарий состоятелен. Если используется мультихоуминг с серверами в разных юрисдикциях, а тем более, если серверов в мультхоуминге больше двух, заявленный вами способ выявления, как я считаю, практически сходит на нет.
Суть мультихоуминга в том, что для наблюдателя несколько серверов сети I2P воспринимаются как один. При отключении одного из серверов в связке мультихоуминга путем шейпинга или реальным отключением питания сервера, видимых изменений не произойдет: скрытый ресурс останется онлайн благодаря другим своим серверам из связки мультихоуминга.
Это для новых клиентов видимых изменений не произойдёт, потому что они построят туннели к тем серверам что онлайн.
А у тех клиентов, у которых туннели уже построены, эти самые тоннели отвалятся, что довольно легко заметить даже не прибегая к анализу внутренностей i2p. В конце концов, построение нового туннеля занимает от 2 до 5 минут.
Шейпинг - не "выключение" трафика, а его замедление. Замедление не приводит к перестроению маршрута клиента, но статистически обнаруживается.
Вы назвали главный метод защиты i2p от гэбни - размещать сервера вне юрисдикции РФ. Да, в таком режиме у вас даже и без мультихоуминга всё сработает - сервер хостите вне РФ и всех делов-то.
Мне ещё приходит в голову мультихоуминг с двумя типами тоннелей: 1) HTTP тоннели с бо́льшим числом хопов для клиентов и 2) SAM тоннели с меньшим числом хопов для синхронизации серверов. По-вашему, это перспективное решение?
В целом вы правы, было же дело, когда посадили\пытались посадить человека с Tor-шлюзом. На счет i2p, а разве трафик не проходит через нескольких участников и точка выхода вне юрисдикции СОРМа, то вроде бы все ок?
Тут ситуация лучше, чем в случае с Tor-шлюзом, потому что весь трафик остаётся в сети i2p, а не выходит в открытый интернет от чьего-то имени.
Однако, это не означает невозможность атаки описанной выше. На самом деле вы никогда не знаете где находится тот конец тоннеля, есть там СОРМ или нет. Вот зашли вы на сайт, гуляете по нему, смотрите ссылки — а сервер с сайтом давно уже под присмотром "гебни".
В I2P нет выхода в обычный интернет (в отличие от ТОРа, где владельца выходного узла хотели посадить). Сеть I2P замкнута внутри себя, поэтому для выхода в обычный интернет или другие сети через нее необходимо использовать специально настроенный прокси-сервер (пример), который принимает подключения из I2P и отправляет их в интернет от своего имени.
Расследовать обычную активность I2P-узлов, чтобы сопоставить кто в момент времени составил транзитный туннель, практически бессмысленно. Архитектура построена так, что транзитные узлы не знают чью информацию они передают, длину туннеля, в котором состоят, и где пункт назначения передаваемых зашифрованных пакетов.
Даже если запретить I2P законодательно, толку будет мало. TOR в России заблокирован, но я успешно им пользуюсь по сей день. С I2P похожая история: транспортные протоколы обновляются и всё более и более становятся неуловимыми для DPI-систем, которые в случае блокировки будут ответственны за выявление и блокировку запрещенного трафика. Если принять во внимание нынешнее геополитическое положение России и импортозамещение, не работающее без импорта, тема каких-либо больших успехов России в IT уходит с горизонтов обозримого будущего: сейчас нужно имеющуюся инфраструктуру как-то поддерживать, а не про апгрейды мечтать.
Понятно, спасибо за развернутый ответ. Про сеть в сеть я знал, но в контексте разговора, мне показалось что уже сделали шлюзы выхода.
Тенденция к распределению на лицо и РФ будет с этим бороться, не сомневайтесь. Но это уже вопрос политики и не будем обсуждать.
К чему эта мантра про "замкнута на саму себя" и "не смогут запретить"?
Если у гэбни есть информация об "интересном" на i2p-сервере, то они во-первых это проверят (подключиться к i2p - не велика работа), а во-вторых, в рамках вычисления источника "интересного" выполнят этот алгоритм. Без всякого "законодательного запрета".
В конечном счете мы сходимся на том, что сервера надо хостить вне юрисдикции. И в этом плане я с вашими доводами согласен - лучшее решение.
Однако, для пользователя транзит по описанным в статье причинам остается полезным. Именно транзит предотвратит большинство тайминг-атак против него, а шейпинг (т.е. частичное урезание пропускной способности канала со стороны провайдера) пользователю не большая помеха, так как суть транзита на его стороне в том, чтобы таймстамп какого-либо сообщения в скрытой сети не был сопоставлен с его абонентской сетевой активностью. Транзит является гарантом того самого постоянного "шума", а шейпинг лишь пропорционально убавит этот шум, не дав сделать какие-либо конкретные выводы при наблюдении со стороны.
Транзит совершенно не помогает от шейпинг-атаки. Майор устанавливает соединение с i2p ресурсом, фиксирует скорость. Делает шейпинг-атаку с существенным снижением (в разы ниже зафиксированной скорости). Дальше проверяет скорость с ресурсом. Если она не изменилась, то узел не участвует в цепочке. Если изменилась, то либо транзит, либо случайность, либо искомый сервер. Повторяете 10-20-30 раз и получаете статистическое доказательство.
Возможно, вы не поняли, что именно шейпится. Шейпится весь канал пользователя на оборудовании провайдера, а изменения фиксируются в "контрольном запросе" внутри i2p. В модели угроз i2p нет активного избирательного шейпинга, хотя учитывать его всё равно надо.
Мой предыдущий комментарий не про внутрисетевые ресурсы (серверы), а про пользователей, которые к ним обращаются в произвольное время.
А какая цель? Доказать, что кто-то пользуется i2p? Видим трафик - он.
Доказать, что кто-то пользуется конкретными ресурсами i2p? Изъять компьютер да посмотреть.
Будем реалистами, https://xkcd.com/538/ применимо в этой ситуации в куда более драматичном масштабе.
Пользователь использует скрытую сеть, чтобы остаться анонимным. Суть транзитного трафика для пользователя в том, чтобы пост в чате или на форуме нельзя было сопоставить с реальной сетевой активностью конкретного юзера.
Популярный аргумент о том, что можно к десятку тысяч людей завалиться с грубой силой для анализа их ПК в поисках автора "того самого поста" лишь по факту наличия I2P-трафика на их роутере (который еще нужно детектировать, что не всегда легко и возможно) и для этого не нужна никакая наука, мне кажется в большей части наивным.
В конечном счете нет абсолютной безопасности и абсолютной анонимности. Вопрос в том, чтобы максимально усложнить своё вычисление третьей стороной. В идеале до той степени, когда цель перестанет оправдывать средства.
Найти крамолу в i2p
Объявить крамолу экстремистской организацией (это не оговорка)
Объявить i2p пособником экстремисткой организации (и для этого не нужно иметь юрлицо - достаточно доказательства того, что это конспирологическая сеть, оказывающая помощь экстремистам).
Предложить добровольно прекратить участие в деятельности.
Всем, кто не прекратил, приходить как к пособникам.
Не верите? Кто большие экстремисты - i2p или Свидетели Иеговы?
Кажется, что это проблема не только i2p, а вообще всех сетевых сервисов. Завтра скажут, что через этот ваш интернет инагенты общаются, поэтому было принято решение оставить 2.5 гос-сайта, а за использование других введено наказание. Надеюсь я не понимаю как работает интернет и то, что я написал невозможно, но пока у меня в голове картина такая)))
Транзитный трафик I2P: дыхание сети и важное требование анонимности