Защита от редиректов (в том числе фишинга, от которого не спасает httpS) на сторонние сайты.

Пост вдохновлён историей.
https://pikabu.ru/story/kak_megafon_podpisyivaet_na_platnyiy...


Сразу напишу, что на смартфонах красивого решения нет. Нельзя так просто взять и поменять DNS. Но более сложные способы есть, и проблема не только на смартфонах.


Вкратце описание проблемы: проблема в том, что когда браузер идёт по ссылке содержащей ИМЯ сайта, а не его IP адрес, то совершенно не факт, что вы попадёте на целевой адрес. HTTPS от этого не спасает. HTTPS лишь укажет вам правильное имя сайта, куда вы попали. Но не каждый же проверяет имя сайта куда он по факту попал, а не куда шёл. Тем более, что они могут быть похожи на человеческий взгляд.

Проблема в том, что технически браузер идёт на сайт по IP адресу, а не по его имени.
И чтобы узнать IP адрес, он спрашивает его у DNS сервера. А что вам вернёт DNS сервер, одному владельцу этого сервера известно.

Чтобы защититься от этого:

1)Укажите в качестве DNS сервера которому вы доверяете. Желательно с поддержкой DNSSEC. Можете это сделать как на роутере, так и на компьютере. Я больше всего доверяю гугловкому 8.8.8.8

2)Скорее всего уже работает, но на всякий случай проверьте что включен DNSSEC. Есть сайт для проверки http://dnssec.dxdt.ru/ Если DNSSEC не работает, то провайдер может подменять (и как минимум некоторые это делают!) ответ DNS сервера. DNSSEC (с вашей стороны) работает по умолчанию на windows 10. На windows 7+ должен работать, но я не проверял. На более старых не знаю. Про поддержку DNSSEC DNS серверами знаю только, что на 8.8.8.8 она работает.


Для теста провёл следующий эксперимент с домашним провайдером БЕЗ VPN.

DNS 8.8.8.8 без DNSSEC. Вместо заблокированного роскомнадзором открывается страница-заглушка. Технически это точно такая-же атака как и у автора истории, на которую я оставил ссылку вначале. Точнее точно такая-же она была, если бы я использовал DNS провайдера, но результат точно такой-же.

DNS 8.8.8.8 c DNSSEC. http-открывается ДРУГАЯ страница заглушка(т.е. явно блокируется другой технологией.) HttpS сайт открывается.


Варианты для смартфонов:


для wi-fi можно менять настройки каждой сети.
можно поставить программу для android dnsset. Но технически это VPN. некрасивое решение.
Остальные способы требуют root доступ.


P.S. Это не метод обхода блокировок. Если сайт заблокирован по IP а не по имени, то он не поможет. Но с некоторой вероятностью на сайт вы попадёте если сайт крупный, а провайдер мелкий и не все его(сайта) IP заблокированы. Или IP сменился после блокировки.

P.P.S. DHCP (автоматическое получение IP адреса) и статический DNS работают одновременно. А то некоторые считают что это не так.