Как сохранить анонимность в сети? Часть 1!
BezLichВ чем вообще заключается анонимизация?
Кроме нашумевшего на всех углах интернета мнения о сокрытии IP-адреса есть еще множество других деталей. По большому счету все методы и средства анонимности преследуют цель сокрытия провайдера. Через которого уже можно получить физически точное местоположение пользователя, обладая дополнительной информацией о нем (IP, «отпечатки» браузера, логи его активности в определенном сегменте сети и пр.). А также большинство методов и средств направлены на максимальное сокрытие/нераскрытие этой косвенной информации, по которой позже можно будет спрашивать у провайдера нужного юзера.
Какие есть способы анонимизации пребывания в сети?
Если говорить про обособленные единицы анонимизации (ведь есть еще схемы в виде комбинирования того или иного средства анонимности), то можно выделить следующие:
1) Прокси-серверы — бывают разных видов, со своими особенностями;
2) VPN-сервисы — тоже работают по разным протоколам, которые предлагают провайдеры на выбор, их различия и особенности см. ниже;
3) SSH-туннели, изначально создавались (и функционируют по сей день) для других целей, но также используются для анонимизации. По принципу действия довольно схожи с VPN’ами, поэтому в данной теме все разговоры о VPN будут подразумевать и их тоже, но сравнение их все же будет позже;
4) Dedicated-серверы — самое основное преимущество в том, что пропадает проблема раскрытия истории запросов узла, с которого проводились действия (как это может быть в случае с VPN/SSH или прокси);
5) Великий и ужасный Tor;
6) I2P — анонимная, децентрализованная сеть, работающая поверх интернета, не использующая IP-адресацию (подробнее см. ниже);
7) Иные средства — анонимные сети, анонимайзеры и др. В силу пока недостаточной популярности они еще не изучены (а следовательно не имеют относительной гарантии надежности) сообществом, но достаточно перспективны, о них также см. ниже;
Что стоит скрывать, или какие есть деанонимизирующие данные и методы их получения?
Сразу отмечу, что все (основные по крайней мере) средства и методы для сокрытия данных в ниже представленном списке будут освещены в остальных вопросах этого FAQ’a;
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 отличается от прокси?
1) Трафик между клиентом и прокси передается в открытом виде, при использовании VPN уже идет шифрование;
2) Стабильность — при создании VPN соединения как правило постоянная, редко создаются разъединения, у прокси они происходят относительно чаще. Но все зависит от провайдера;
3) Кроме шифрования соединения VPN предоставляет более анонимный сервис в том плане, что используются DNS сервера VPN сервиса и не может произойти раскрытия приватных данных типа DNS leak, что ни чуть не хуже, чем раскрытие IP-адресаю Правда у SOCKS5 и SOCKS4a-прокси есть такая же возможность переложить DNS сервис на прокси-сервер;
4) VPN сервисы не ведут журналов или ведут на очень короткие сроки и неподробно (по крайней мере они так говорят), большинство прокси-серверов не дают таких обещаний;
Насколько эффективна цепочка из прокси-серверов?
Скорее она неэффективна, если ориентироваться по соотношению прироста времени деанонимизации на уменьшение скорости соединения от конечного ресурса к клиенту. К тому же, почти все недостатки деанонимизации, присущие прокси-серверам не исчезают при построении из них подобных цепочек. Поэтому можно сделать вывод, что данным методом при достижении анонимности лучше не пользоваться.
В FAQ’e про прокси-серверы не сказано о SOCKS4a, зачем он нужен?
Это промежуточная версия между 4 и 5 SOCKS’ами, в которой все функционирует аналогично 4, за исключением того, что SOCKS4a принимает только доменное имя вместо IP-адреса ресурса и сам его резолвит.
Можно поподробнее об особенностях, плюсах и минусах аренды dedicated-серверов?
Выделенный сервер предназначается далеко не для анонимизации, а для хостинга приложений, сервисов и всего другого, чегу заказчик посчитает нужным. Важно отметить, что арендатору предоставляется отдельная физическая машина, что дает ему некий гарант полного контроля этого узла и созадет важное преимущество для анонимности — уверенность в том, что история запросов никуда не утечет.
Учитывая вышесказанное и другие моменты можно выделить ряд преимуществ данного средства с точки зрения анонимизации:
1) Настройка HTTP/SOCKS-прокси или SSH/VPN-соединения на выбор;
2) Контроль истории запросов;
3) Спасает при атаке через Flash, Java, JavaScript, если использовать удаленный браузер;
Ну и недостатки тоже присутствуют:
1) Сильно дорогой метод;
2) В некоторых странах априори не может предоставлять анонимность, потому что арендатор обязан предоставить о себе данные: паспорт, кредитка и др;
3) Все соединения с выделенныем сервером логируются у его провайдера, так что тут возникает доверенность немного другого плана;
Через какие протоколы идет работа в VPN и какие у них есть особенности?
Лучше сразу рассматривать существующие сейчас варианты VPN, то есть какие связки и технологии предлагают провайдеры, если мы конечно не ставим цель поднять знания теории сетевых протоколов (хотя есть варианты с использоавнием одного единственного протокола, что мы также рассмотрим).
SSL (Secure Socket Layer) протокол защищенных сокетов — использует защиту данных с открытым ключом для подтверждения подлинности передатчика и получателя. Поддерживает надежность передачи данных за счет использования корректирующих кодов и безопасных хэш-функций. Один из наиболее простых и «низкоанонимных» протоколов для VPN-соединений, использоуется в основном прилоежниями-клиентами для VPN. Чаще является частью какой-нибудь свзяки при создении VPN-соединения.
PPTP (Point-to-Point Tunneling Protocol) — используется наиболее часто, довольно быстрый, легко настраивается, но считается наименее защищённым относительно других своих собратьев.
L2TP (Layer 2 Tunneling Protocol) + IPSec(часто IPSec опускают в названии, как вспомогательный протокол). L2TP обеспечивает транспорт, а IPSec отвечает за шифрование. Данная связка имеет более сильное шифрование, чем PPTP, устойчива к уязвимостям PPTP, обеспечивает также целостность сообщений и аутентификацию сторон. Есть VPN на основе только протокола IPSec или только L2TP, но, очевидно, что L2TP + IPSec дают больше возможностей в защите и анонимизации, чем по отдельности.
OpenVPN — безопасный, открытый, а следовательно, распространённый, позволяет обходить многие блокировки, но требует отдельного программного клиента. Технически это не протокол, а реализация технологии VPN. проводит все сетевые операции через TCP или UDPтранспорт. Также возможна работа через большую часть прокси серверов, включая HTTP, SOCKS, через NAT и сетевые фильтры. Для обеспечения безопасности управляющего канала и потока данных OpenVPN использует SSLv3/TLSv1.
SSTP — такой же безопасный, как и OpenVPN, отдельного клиента не требует, однако сильно ограничен в платформах: Vista SP1, Win7, Win8. Инкапсулирует PPP-кадры в IP-датаграммы для передачи по сети. Для управления туннелем и передачи PPP-кадров данных протокол SSTP использует TCP-подключение (порт 443). Сообщение SSTP шифруется каналом SSL протокола HTTPS.
Отдельно стоит отметить сервисы, предоставляющие такие услуги как «DoubleVPN», когда перед достижением нужного узла траффик проходит 2 разных VPN-сервера в разных регионах. Или существует еще более жесткое решение — «QuadVPN», когда используется 4 сервера, которые пользователь может выбрать сам и расположить в нужном ему порядке.
Какие минусы есть у VPN?
Конечно же, не такая анонимность, как у некоторых других сервисов типа Tor’a, и не только потому, что алгоритм и схема другие. Также при использовании VPN все таки в критических ситуациях придется больше полагаться на добросовестное исполнение обязанностей этого сервиса (минимальное журналирование, работа без бэкапов трафика и пр.).
Следующий момент состоит в том, что хоть VPN и скрывает IP в большинстве случаев, а также предотвращает DNS leak, но есть ситуации, при которых и этот метод анонимизации даст сбой. А именно:
1) IP leak через WebRTC — на хроме и мозилле работает гарантированно и реализовывается через обычный JavaScript;
2) Утечка IP через Flash, инициировавший соединение с сервером и передавший ему IP клиента в обход VPN (правда работает не всегда);
Хотя эти случае можно предотвратить выключив у себя в браузере JS, Flash и Java;
3) При использовании клиентских настроек по умолчанию при разрыве соединения, в отличие от прокси-серверов, серфинг в сети будет продолжаться напрямую, уже не через виртульный канал, то есть будет полное палево;
Но этого можно избежать подкорректировав таблицу маршрутизации, где в качестве основного шлюза по умолчанию указать только шлюз VPN-сервера или перенастроить файрвол.
В чем различие между SSH-тунелями и VPN?
SSH-туннель ни что иное, как шифруемое по протоколу SSH соединение, где данные шифруются на стороне клиента и расшифровываются у получателя (SSH-сервера). Создается для удаленного защищенного управления ОС, но как уже было написано выше, применяется еще для анонимизации. Поддерживает 2 варианта работы: посредством реализации приложением HTTP/SOCKS-прокси для направления траффика через локальный прокси-сервер в SSH-туннель. Или происходит создание практически полноценного (можно скзазать аналогичного, если брать последние версии SSH и OpenSSH) VPN-соединения.
VPN же разрабатывался в целях обеспечивать защищенный удаленный доступ к ресурсам корпоративных сетей, а следовательно компьютер, подключенный к VPN-серверу становиться частью локальной сети и может пользоваться ее сервисами.
То есть кроме технических мелких аспектов принципы функционирования схожи. А основное отличие состоим в том, что SSH-туннель — это соединение точка-точка, а VPN-соединение — это соединение устройство-сеть (хотя спецы могут и перенастроить по своему
Продолжение во второй части!
⚡️Читайте Самые интересные материалы про Безопасность на Канале Безопасность Личности⚡️