Обычно вы выполняете вход в систему к своему Интернет-провайдеру, используя указанные учетные данные пользователя. Затем вы получаете IP-адрес и получаете доступ к их внутренним серверам имен, так что вы можете запросить определенное доменное имя и получить IP-адрес в ответ.
Но как я могу быть уверен, что я получу нужный мне сайт? Как я могу быть уверен, что мой провайдер не использует поддельные IP-адреса или что они не перенаправляют меня на «поддельные внутренние серверы» (с одинаковым IP-адресом или без него)? Например: если я спрашиваю для example.com, получите его IP, и они покажут мне простой клон этого сайта.
Как сделать так, чтобы IP существовал только один раз? Можно изменить IP-адрес localhost на что-то другое, так что же происходит с веб-адресами?
Конечно, если интернет-провайдер подделает пункт назначения, это повлияет и на других пользователей, если они запросят тот же результат. Но даже в этом случае: разве нельзя будет отфильтровать пользователей по их учетным данным провайдера и взломать их?
Возможно, в моем понимании есть какое-то недопонимание. Но я не понимаю, чего мне не хватает.
Ответы:
Да, DNS небезопасен. Если вы действительно хотите знать, что вы разговариваете с нужным вам сервером, вы должны аутентифицировать сервер. Вот что мы делаем. Мы не доверяем DNS как безопасному, и мы реализуем необходимую нам безопасность где-то еще, например, TLS (Transport-Layer Security).
TLS (современный уровень безопасности HTTPS) делает это, заставляя сервер отправлять клиенту сертификат с указанием имени и открытого ключа сервера. Этот сертификат криптографически подписан доверенной третьей стороной, называемой центром сертификации (CA). Подпись CA подтверждает, что сертификат показывает правильный открытый ключ для указанного сервера.
Чтобы доказать, что сервер является законным владельцем сертификата (а не какого-либо самозванца, который украл действительный сертификат), подтверждение связи TLS позволяет ему доказать, что ему известен секретный закрытый ключ, который образует соответствующий набор с открытым ключом в сертификате. Конечно, это делается без раскрытия самого секретного ключа.
Существует предложение по обеспечению безопасности DNS, которое называется DNSsec, но оно существует уже много лет и, похоже, никуда не денется. Это может никогда не стать широко развернутым. В настоящее время существует предложение для «DNS через HTTP» (DoH, произносится «D'oh!»), Которое могло бы защитить DNS, делая это по HTTPS.
источник
Там много вопросов. Я постараюсь заняться парой.
Итак, это называется атакой «человек посередине» ( https://en.wikipedia.org/wiki/Man-in-the-middle_attack ). Плохая новость заключается в том, что они довольно распространены (по крайней мере, в отелях и других местах с открытым Wi-Fi, хотя это также трудно доказать, - https://www.theregister.co.uk/2016/06/01/teamviewer_mass_breach_report/ ). Но один из способов защиты от этого - не использовать DNS-сервер отеля (или, в вашем случае, вашего интернет-провайдера). Есть несколько хороших: https://www.howtogeek.com/122845/htg-explains-what-is-dns/
Я был бы удивлен, если бы авторитетный провайдер сделал это (и был пойман), но хорошей идеей является использование вашего собственного DNS (опять же, вы все еще доверяете кому-то) и / или VPN, когда вы не в домашней сети.
источник