Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Дельта-синхронизация крипто-дисков

Существуют разные способы зашифровать "облако". Один из них - поместить в облако крипто-диск. В предыдущей статье мы писали, почему это не всегда удобно.

Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

DNSCrypt: прячем DNS-трафик


Денис Колисниченко (dhsilabs@gmail.com)

PDF-версия статьи

Вкратце о DNSCrypt

Используя VPN, ты думаешь, что за тобой никто не подсматривает и передаваемые данные защищены? Ты ошибаешься. Сейчас попробую объяснить почему.

При использовании HTTPS или SSL твой http-трафик зашифрован, то есть защищен. Когда ты используешь VPN, весь твой трафик шифруется (конечно, все зависит от настроек VPN, но, как правило, так оно и есть). Но иногда, даже когда используется VPN, твои DNS запросы незашифрованны, они передаются как есть, что открывает огромное пространство для "творчества".

DNSCrypt - это программа, позволяющая шифровать DNS-запросы. После установки этой программы на твой компьютер твои соединения также будут защищены и ты сможешь более безопасно бороздить просторы Интернета. Конечно, DNSCrypt - это не панацея от всех проблем, а только одно из средств обеспечения безопасности. Для шифрования всего трафика все еще нужно использовать VPN-соединение, но в паре с DNSCrypt будет безопаснее. Если тебя такое краткое объяснение устроило, можешь сразу переходить к разделу, где я буду описывать установку и использование программы.

Для настоящих параноиков

Попробуем разобраться глубже. Этот раздел предназначен для настоящих параноиков. Если ты ценишь свое время, тогда можешь сразу перейти к установке программы.

Итак, как говорится, лучше один раз увидеть, чем сто раз услышать. Посмотри на рисунок 1. Допустим клиент (ноутбук на рисунке) пытается обратиться к dkws.org.ua. Первым делом он должен разрешить символьное имя узла в IP-адрес. Если же конфигурация сети такова, что используется DNS-сервер провайдера (незашифрованное соединение, красная линия на рисунке), то разрешение символьного имя в IP-адрес происходит по незашифрованному соединению.


Рис. 1. Зашифрованное VPN-соединение (зеленая линия) и незашифрованное соединение с DNS-сервером провайдера (красная линия)

Да, какие данные ты будешь передавать на dkws.org.ua, никто не узнает. Но есть несколько очень неприятных моментов. Во-первых, провайдер, просмотрев логи DNS, сможет узнать, какие сайты ты посещал. Тебе это нужно? Во-вторых, вероятна возможность атак DNS-спуфинг и DNS-снупинг. Подробно описывать их не буду, об этом уже написано множество статей. В двух словах ситуация может быть следующей: некто между тобой и провайдером может перехватить DNS-запрос (а так как запросы не шифруются, то перехватить запрос и прочитать его содержимое не составит никакого труда) и отправить тебе "поддельный" ответ. В результате вместо того, чтобы посетить dkws.org.ua, перейдешь на сайт злоумышленника, который как две капли воды похож на тот, который тебе нужен, введешь свой пароль от форума, ну а дальше развитие ситуации, думаю, ясно.

Описанная выше ситуация называется DNS leaking ("утечка DNS"). DNS leaking происходит, когда твоя система даже после соединения с VPN-сервером или Tor продолжает запрашивать DNS-серверы провайдера для разрешения доменных имен. Каждый раз, когда ты посещаешь новый сайт, соединяешься с новым сервером или запускаешь какое-то сетевое приложение, твоя система обращается к DNS провайдера, чтобы разрешить имя в IP. В итоге твой провайдер или любой желающий, находящийся на "последней миле", то есть между тобой и провайдером, может получить все имена узлов, к которым ты обращаешься. Приведенный выше вариант с подменой IP-адреса совсем жестокий, но в любом случае есть возможность отслеживания посещенных тобой узлов и использования этой информации в собственных целях.

Если ты "боишься" своего провайдера или просто не хочешь, чтобы он "видел", какие сайты ты посещаешь, можешь (разумеется, кроме использования VPN и других средств защиты) дополнительно настроить свой компьютер на использование DNS-серверов проекта OpenDNS (https://www.opendns.com/). На данный момент это следующие серверы:

208.67.222.222
208.67.220.220

При этом тебе не нужно никакое другое дополнительное программное обеспечение. Просто настрой свою систему на использование этих DNS-серверов. Но все равно остается проблема перехвата DNS-соединений. Да, ты уже обращаешься не к DNS провайдера, а к OpenDNS, но все еще можно перехватить пакеты и посмотреть, что в них. То есть при желании можно узнать, к каким узлам ты обращался.

Вот мы и подошли к DNSCrypt. Эта программулина позволяет зашифровать твое DNS-соединение. Теперь твой провайдер (и все, кто между тобой и ним) точно не узнает, какие сайты ты посещаешь! Еще раз повторяюсь. Эта программа - не замена Tor или VPN. По прежнему, остальные передаваемые тобой данные, передаются без шифрования, если ты не используешь, ни VPN, ни Tor. Программа шифрует только DNS-трафик.

DNS Leak

Сайт https://www.dnsleaktest.com позволяет определить "утечку" DNS и объясняет, как от нее избавиться. Просто зайди на этот сайт. Нажав кнопку Check for DNS leaks now, ты получишь список DNS-серверов, через которые могут проходить твои запросы. Следовательно, ты узнаешь, кто именно может узнать, какие сайты ты посещаешь (рис. 2).


Рис. 2. Список DNS-серверов

Как показано на рис. 2, владельцы 12 DNS-серверов имеют возможность записывать все посещенные мною сайты. Но поскольку я работаю через Tor, то меня этот вопрос мало беспокоит.

На страничке https://www.dnsleaktest.com/how-to-fix-a-dns-leak.php описано, как исправить эту уязвимость (то есть, что сделать, чтобы после подключения к VPN твоя система использовала DNS-серверы VPN-провайдера, а не твоего Интернет-провайдера). Повторять все это в статье не вижу смысла, поскольку любой справится с пошаговой последовательностью действий. Проще пареной репы!

Установка и использование DNSCrypt

Самый простой способ защитить свое DNS-соединение - это использовать DNSCrypt. Можно, конечно, следовать рекомендациям от www.dnsleaktest.com, а можно пойти по пути наименьшего сопротивления и просто установить DNSCrypt.

Первым делом качаем сам DNSCrypt:

https://github.com/opendns/dnscrypt-win-client

Я сразу привел ссылку на GitHub, откуда можно скачать программу. Если хочешь получить о ней дополнительную информацию, тогда тебе сюда:

https://www.opendns.com/technology/dnscrypt/

Чтобы скачать программу с GitHub, нажми кнопку Download ZIP. Будет загружен архив с исходниками DNSCrypt. Уже откомпилированная версия находится в каталоге DNSCrypt архива. Распакуй файлы. В принципе тебе нужен только один файл - dnscrypt-proxy.exe. Он находится в том самом каталоге. Все остальное (исходники) можно удалить.

Но это еще не все. Если ты уже погуглил, то уже увидел скриншоты DNSCrypt. Запустив dnscrypt-proxy.exe, ты понял, что что-то не то. Программа запустилась в окне командной строки. Все правильно, ты скачал сам прокси, а теперь еще нужно скачать к нему оболочку. На GitHub есть еще один проект - необходимая нам оболочка:

https://github.com/Noxwizard/dnscrypt-winclient

Аналогичным образом скачай ZIP-архив, распакуй его куда-нибудь. В каталоге binaries / Release / будет программа dnscrypt-winclient.exe. Скопируй этот файл в каталог, в котором находится файл dnscrypt-proxy.exe.

Осталось только запустить dnscrypt-proxy.exe. В появившемся окне нужно выбрать сетевые адаптеры, которые нужно защитить и нажать кнопку Start. Если все нормально, тогда возле кнопки Stop (в нее превратится кнопка Start) появится надпись DNSCrypt is running (рис. 3). Кстати, обрати внимание, что интерфейс для Mac OS X выглядит несколько иначе (ссылка на клиент для Mac OS X https://github.com/opendns/dnscrypt-osx-client).


Рис. 3. DNSCrypt запущен

В качестве заключения

Статья получилась не очень большая, поскольку сама программа очень проста в использовании. Но она была бы не полной, если бы я не упомянул и об VPN. Если ты прочитал эту статью, тебя она заинтересовала, но ты еще не пользуешься услугами VPN-провайдера для шифрования своих данных. Тогда самое время это сделать. Одним из VPN-провайдеров является SecurityKISS (https://www.securitykiss.com). SecurityKISS предоставит тебе безопасный туннель для передачи твоих данных, а DNSCrypt обеспечит защиту DNS-соединений. Конечно, SecurityKISS - платный (бесплатный тарифный план можно использовать разве что ради ознакомления), но ведь за безопасность нужно платить? Можно использовать, конечно, и Tor (о котором уже писалось в одном из предыдущих выпусков), но Tor работает относительно медленно и это, как ни крути, не VPN - весь трафик "торифицировать" не получится. В любом случае (каков бы варианты ты не выбрал), теперь твои DNS-соединения защищены. Осталось только определиться со средством шифрования трафика (если ты еще этого не сделал).

Ссылки


DNS-snooping https://support.simpledns.com/KB/a153/what-is-dns-cache-snooping-and-how-do-i-prevent-it.aspx
DNS-spoofing https://en.wikipedia.org/wiki/DNS_spoofing