Комментарии 9
В статье подняли действительно важный вопрос - доказуемая анонимность. Описанный подход имеет право на жизнь. Единственное, как все таки спать спокойно, что бы быть уверенным, что спецслужбы обладая возможностью получить комплексно много информации от провайдеров и попытаться хотя бы по метаданным подтвердить факт похода человека туда и потом сопоставить с информацией о переданных данных.
А как подобная сеть будет работать, если добавить вводную "Государство даёт работать по белым спискам протоколов и шифров (которые само и контролирует), а остальные блокирует"?
На такой случай в HL существует концепция тайных каналов связи в композиции двух сервисов HLS+HLT. За счёт того что HL является абстрактной анонимной сетью, она может без проблем подстраиваться под любую среду, включая и централизованную систему. Тут существует несколько способов использования:
Использовать собственный VPS сервак и через него на уровне, например, HTTPS протокола (можно использовать и другие, подобия SSH, FTPS или подконтрольные из белого списка) пропускать весь трафик. В таком случае сам сервер станет обычным ретранслятором, заменив собой текущие HLT, которые работают на проде.
Использовать сторонний сервис, где связка HLS+HLT будет генерировать уже паразитный трафик. Централизованные сервисы не очень подобное любят и потому будут пытаться блокировать данные действия. Как следствие, размер сообщений ещё сильнее сократится, а период генерации сообщений увеличится с той лишь целью, чтобы паразитный трафик был менее заметен.
А как насчёт IPFS в качестве анонимного файлового обменника?
В качестве файлообменника он может вполне хорошо применяться, но он неанонимен ровно настолько, насколько неанонимен сам BitTorrent, на котором IPFS базируется. Плюс к этому, шифрования файлов в нём не предусмотрено, потому как он для этого просто не был предназначен. Но думаю IPFS вполне можно использовать поверх I2P, как это ранее делали с BitTorrent, но в таком случае уже не будет теоретически доказуемой анонимности, и как следствие, защиты от глобального наблюдателя.
fmt.Sprintf для подготовки path... К вниманию: https://pkg.go.dev/path#Join
А какая разница между i2p и hidden lake с точки зрения внешнего наблюдателя?
В обоих случаях генерируется шифрованный паразитный трафик за счет чего нельзя достоверно определить когда и что было загружено/отправлено
Что I2P, что Hidden Lake действительно имеют схожие черты, например обе являются P2P сетями, обе дают возможность создавать свои сервисы, обе предлагают свою инфраструктуру как платформу связи. Но чисто технически у них всё же больше различий, чем сходств, в том числе и в способе анонимизации трафика.
I2P базируется на основе чесночной маршрутизации, как подвида луковой. Трафик упаковывается в дольки чеснока, а сами дольки могут точно также как в сети Tor упаковываться множественным шифрованием. Каждый раз, когда сообщение достигает своего маршрутизирующего узла, последний сдирает один из слоёв шифрования и транспортирует сообщение далее. На данном моменте, (пока без учёта ложного трафика) I2P уязвима точно также к глобальному наблюдателю, как и сеть Tor. Одноранговая архитектура от данного случая никак не спасает. Она может спасать от более частных атак, например от атак по времени, где по определению должен отсутствовать глобальный наблюдатель.
Теперь, если мы добавим генерацию ложного трафика в случайные периоды времени, то сути дела это не поменяет. Если связь между двумя абонентами длительная, например это есть передача файла, то подобная связь со временем будет выделяться от ложно генерируемого трафика, и наблюдатель будет это замечать, будет отделять спам (ложный трафик) от истинных сообщений. Иными словами, в сети I2P ложный трафик - это есть накладываемый трафик на уже существующий / истинный массив данных.
В Hidden Lake ситуация иная, ложный трафик не является дополнительным или внешним действием, он вшит в сам механизм, в само ядро анонимизации. Его невозможно отделить, как бы это мы могли успешно сделать в сети I2P. Задача на базе очередей (на которой основывается HL), для успешного своего выполнения, обязана всегда генерировать ложный трафик, потому что лишь при помощи него могут распространяться истинные сообщения. В ходе этого, когда ложный трафик заменяется в той же пропорции истинным, становится невозможным определение истинности / ложности итогового трафика. В этом и есть основное отличие I2P и HL в способе анонимизации.
Также есть и другие различия. Например, у HL отсутствует такая вещь как множественное шифрование. Все сообщения шифруются единожды и единожды расшифровываются истинным получателем. Не существует в привычном смысле маршрутизирующих узлов, которые существуют в Tor, I2P, Mixminion, Crowds и т.д. Существуют лишь ретрансляторы, которые перенаправляют сообщение в таком же виде, в котором они его приняли. Из-за этого HL по умолчанию является F2F сетью, чтобы предотвращять возможность осуществления дополнительных деанонимизирующих атак. Также в ходе этого HL предполагает, что отправитель и получатель априори идентифицируют друг друга (являются друзьями друг для друга), что нельзя сказать об I2P. В I2P отправитель и получатель - также анонимны друг к другу.
Также и по способу маршрутизации существуют отличия. В I2P используется модифицированная версия DHT для быстрой и анонимной маршрутизации трафика. В HL используется слепая маршрутизация, где трафик распространяется по всем узлам в сети. Последнее свойство является точно также обязательным для удержания теоретически доказуемой анонимности, но и в ходе этого HL начинает работать лишь в малых группах, в то время как I2P может работать в больших группах.
Анонимный обмен файлами в реалиях глобального наблюдателя