Как сохранить анонимность в сети
INHIDEСначала хочу отметить, что данная тема очень обширна, и как бы я не старался донести все максимально сжато, но в то же время не упуская нужных подробностей и при этом излагать как можно более понятно для рядового пользователя, эта статья все равно будет пестрить различными техническими деталями и терминами, из-за которых придется лезть в гугл. Также предполагается, что читатель знаком хотя бы с основными моментами функционирования большинства популярных служб и самой глобальной сети.
В чем вообще заключается анонимизация?
Кроме нашумевшего на всех углах интернета мнения о сокрытии IP-адреса есть
еще множество других деталей. По большому счету все методы и средства анонимности преследуют цель сокрытия провайдера. Через которого уже можно получить физически точное местоположение пользователя, обладая дополнительной информацией о нем (IP, “отпечатки” браузера, логи его активности в определенном сегменте сети и пр.).
Какие есть способы анонимизации пребывания в сети?
Если говорить про обособленные единицы анонимизации (ведь есть еще схемы в виде комбинирования того или иного средства анонимности), то можно выделить следующие:
1) Прокси-серверы – бывают разных видов, со своими особенностями.
2) VPN-сервисы – тоже работают по разным протоколам, которые предлагают провайдеры на выбор.
3) SSH-туннели, изначально создавались (и функционируют по сей день) для других целей, но также используются для анонимизации. По принципу действия довольно схожи с VPN’ами, поэтому в данной теме все разговоры о VPN будут подразумевать и их тоже.
4) Dedicated-серверы – самое основное преимущество в том, что пропадает проблема раскрытия истории запросов узла, с которого проводились действия (как это может быть в случае с VPN/SSH или прокси);
5) Великий и ужасный Tor;
6) I2P – анонимная, децентрализованная сеть, работающая поверх интернета, не использующая IP-адресацию.
7) Иные средства – анонимные сети, анонимайзеры и др. В силу пока недостаточной популярности они еще не изучены (а следовательно не имеют относительной гарантии надежности) сообществом, но достаточно перспективны.
Что стоит скрывать, или какие есть деанонимизирующие данные и методы их получения?
1) IP-адрес, или самый популярный идентификатор в интернете. Дает возможность найти провайдера юзера и узнать у него точный адрес через тот же IP;
2) IP DNS провайдера, который можно “потерять” через метод, называемый DNS leaks (утечки DNS). Важно отметить, что эта утечка может произойти при связке HTTP/SOCKS4(5 в некоторых случаях) + Tor! Поэтому тут надо быть особенно внимательными;
3) Если большая часть траффика долго выходит в интернет через один узел, например, тот же Tor, то можно провести так называемое профилирование – отнести определенную активность к определенному псевдониму, который можно сдеанонить через другие каналы;
4) Прослушивание трафика на выходном узле или Mitm-атаки (man in the middle);
5) Одновременное подключение к анонимному и открытому каналам может в некоторых ситуациях создать неприятности, например, при обрывании соединения у клиента, оба канала перестанут функционировать, и на сервере можно будет определить нужный адрес, сопоставив время отсоединения пользователей (правда, это довольно геморный и далеко неточный способ деанонимизации);
6) Деанонимизирующая активность в анонимном сеансе – пользование публичными сервисами, особенно теми, на которых уже есть информация об этом пользователе;
7) MAC-адрес, который получает WiFi точка при подключении к ней (или он может быть бэкапнут коммутаторами одной из локальных сетей, через которую был осуществлен выход в интернет);
8) Информация из браузеров:
Cookies – это текстовые файлы c какими-либо данными (как правило, уникальными для каждого пользователя), хранимые приложением (часто – браузером) для разных задач, например, аутентификации. Часто бывает, что клиент сначала посетил ресурс из открытого сеанса, браузер сохранил cookies, а потом клиент соединился из анонимного сеанса, тогда сервер может сопоставить cookies и вычислить клиента;
Flash, Java, Adobe Reader – первые три плагина вообще можно выделить, как отдельные приложения на базе браузера. Они могут обходить прокси (DNS leaks), засвечивать IP (IP leaks), создавать свои подобия долгоживущих cookies и др. Также все три (в особенности этим грешит Flash) часто служат подспорищем для эксплуатации каких-нибудь 0-day или 1-day уязвимостей, позволяющих порой проникнуть в саму систему;
JavaScript – исполняется на стороне клиента, не обладает таким широким спектром возможности в плане деанона, хотя может предоставить точную информацию об ОС, виде и версии браузера, а также имеет доступ к некоторым технологиям браузера, которые могут также, например, слить IP-адрес;
Browser fingerprint или отпечаток браузера – совокупность данных, которые браузер постоянно предоставляет серверу при работе с ним, что может сформировать достаточно уникальный “цифровой отпечаток”, по которому можно будет найти юзера даже в анонимном сеансе или позже, по выходу из него;
Какие минусы есть у VPN?
Конечно же, не такая анонимность, как у некоторых других сервисов типа Tor’a, и не только потому, что алгоритм и схема другие. Также при использовании VPN все таки в критических ситуациях придется больше полагаться на добросовестное исполнение обязанностей этого сервиса (минимальное журналирование, работа без бэкапов трафика и пр.).
Следующий момент состоит в том, что хоть VPN и скрывает IP в большинстве случаев, а также предотвращает DNS leak, но есть ситуации, при которых и этот метод анонимизации даст сбой. А именно:
1) IP leak через WebRTC – на хроме и мозилле работает гарантированно и реализовывается через обычный JavaScript;
2) Утечка IP через Flash, инициировавший соединение с сервером и передавший ему IP клиента в обход VPN (правда работает не всегда);
Хотя эти случае можно предотвратить выключив у себя в браузере JS, Flash и Java;
3) При использовании клиентских настроек по умолчанию при разрыве соединения, в отличие от прокси-серверов, серфинг в сети будет продолжаться напрямую, уже не через виртуальный канал, то есть будет полное палево;
Но этого можно избежать подкорректировав таблицу маршрутизации, где в качестве основного шлюза по умолчанию указать только шлюз VPN-сервера или перенастроить файрвол.
Как работает Tor со стороны клиента?
В сети море вариаций ответов на этот вопрос, но хочу попробовать изложить основы как можно более просто и лаконично, избавив читателя от копания в горах аналитической и сложной информации.
Tor – система маршрутизаторов, доступных только клиентам самого Tor’a, через цепочку которых клиент соединяется с нужным ему ресурсом. При дефолтных настройках количество узлов – три. Tor использует многоуровневое шифрование. Опираясь на эти особенности, можно кратко описать общую схему доставки пакета данных от клиента к запрашиваемому ресурсу через 3 узла (то есть при настройках по умолчанию): предварительно пакет последовательно шифруется тремя ключами: сначала для третьего узла, потом для второго и в конце, для первого. Когда первый узел получает пакет, он расшифровывает “верхний” слой шифра (как при очистки луковицы) и узнаёт, куда отправить пакет дальше. Второй и третий сервер поступают аналогичным образом. А передача зашифрованных данных между промежуточными маршрутизаторами осуществляется через SOCKS-интерфейсы, что обеспечивает анонимность в купе с динамичным переконфигурированием маршрутов. И в отличие от статических прокси-цепочек, конфигурации луковых маршрутизаторов может меняться чуть ли не с каждым новым запросом, что только усложняет деанон.
Какие преимущества и недостатки есть у Tor’a?
Из преимуществ стоит выделить:
1) Один из самых высоких уровней анонимности (при должной конфигурации), особенно в комбинации с другими способами типа VPN;
2) Простота в использовании – скачал, пользуйся (можно даже без особых настроек);
Недостатки:
1) Относительно низкая скорость, так как трафик идет через цепочку узлов, каждый раз происходит расшифровка и может проходить вообще через другой континент;
2) Выходной трафик может прослушиваться, а если не использовать HTTPS, то и прекрасно фильтроваться для анализа;
3) Может не спасти при включенных плагинах – Flash, Java и даже от JavaScript’a, поэтому создатели проекта рекомендуют эти дела отключать;
4) Наличие урпавляющих серверов;
Есть ли какие-то комплексные решения по обеспечению анонимности?
Кроме связок и комбинаций различных методов, вроде Tor+VPN, описанных выше можно воспользоваться дистрибутивами линукса, заточенными на эти потребности. Преимущество такого решения в том, что в них уже есть большинство этих комбинированных решений, все настройки выставлены на обеспечение максимального количества рубежей для деанонимизаторов, все потенциально опасные службы и софт вырезаны, полезные установлены, в некоторых помимо документации есть всплывающие подсказки, которые не дадут поздним вечером потерять бдительность.
По своему опыту и некоторых других знающих людей я бы выбрал дистрибутив Whonix, так как он содержит в себе самые новые техники по обеспечению анонимности и безопасности в сети, постоянно развивается и имеет очень гибкую настройку на все случаи жизни и смерти.
Есть еще какие-нибудь моменты при достижении анонимности?
Да, есть. Существует ряд правил, которых желательно придерживаться даже в анонимном сеансе (если стоит цель достичь практически полной анонимности, конечно) и мер, которые необходимо предпринять перед входом в этот сеанс. Сейчас о них будет написано подробнее.
1) При использовании VPN, Proxy и пр. всегда в настройках устанавливать использование статических DNS-серверов провайдера сервиса, дабы избежать утечек DNS. Или выставлять должные настройки в браузере или межсетевом экране;
2) Не использовать постоянные цепочки Tor, регулярно менять выходные узлы (VPN-серверы, прокси-серверы);
3) При пользовании браузером отключать по возможности все плагины (Java, Flash, еще какие-нибудь Adobe’ские поделки) и даже JavaScript (если задача полностью минимализировать риски деанона), а также отрубать использование cookies, ведение истории, долгосрочного кэширования, не разрешать отправлять HTTP-заголовки User-Agent и HTTP-Referer или подменять их (но это специальные браузеры для анонимности нужны, большинство стандартных не позволяют такую роскошь), использовать минимум браузерных расширений и тд. Вообще есть еще один ресурс, описывающий настройки для анонимности в различных браузерах, к которому тоже при желании стоит обратиться;
4) При выходе в анонимном режиме в сеть следует использовать “чистую”, полностью обновленную ОС с самыми последними стабильными версиями ПО. Чистая она должна быть – чтобы было сложнее отличить “отпечатки” ее, браузера и другого софта от среднестатистических показателей, а обновленная, чтобы понижалась вероятность подхватить какую-нибудь малварь и создать себе определенных проблем, ставящих под угрозу работу всех сосредоточенных для анонимизации средств;
5) Быть внимательным при появлении предупреждений о валидности сертификатов и ключей, для предотвращения Mitm-атак (прослушки незашифрованного трафика);
6) Не допускать никакой левой активности в анонимном сеансе. Например, если клиент из анонимного сеанса заходит на свою страницу в соц. сети, то его интернет-провайдер об этом не узнает. Но соц. сеть, несмотря на то, что не видит реальный IP-адрес клиента, точно знает, кто зашел;
7) Не допускать одновременного подключения к ресурсу по анонимному и открытому каналу;
Подытожить можно вполне очевидным утверждением: чем анонимнее/безопаснее технология или метод, тем меньше скорости/удобства будет при их использовании. Но порой бывает лучше потерять пару-тройку минут в ожидании или потратить чуть больше сил и времени на пользование сложными техниками, чем терять потом значительно большее количество времени и других ресурсов от последствий, которые могут произойти из-за решения где-то подрасслабиться.