Обычно вы выполняете вход в систему с вашим Интернет-провайдером, используя указанные учетные данные пользователя. Затем вы получаете IP-адрес и получаете доступ к их внутренним серверам имен, так что вы можете запросить определенное доменное имя и получить IP-адрес в ответ.

Но как я могу быть уверен в том, что получаю нужный мне сайт? Как я могу быть уверен, что мой провайдер не использует поддельные IP-адреса или что они не перенаправляют меня на "поддельные внутренние серверы" (с одинаковым IP-адресом или без него)? Например: если я спрашиваю для example.com, получите его IP, и они покажут мне простой клон этого сайта.

Как сделать так, чтобы IP существовал только один раз? Можно изменить IP-адрес localhost на что-то другое, так что же гарантирует, что это не происходит с веб-адресами?

Конечно, если интернет-провайдер подделает пункт назначения, это повлияет и на других пользователей, если они запросят тот же результат. Но даже в этом случае: разве нельзя будет отфильтровать пользователей по их учетным данным провайдера и взломать их?

Возможно, в моем понимании есть какое-то недопонимание. Но я не понимаю, чего мне не хватает.

2 ответа2

2

Да, DNS небезопасен. Если вы действительно хотите знать, что вы говорите с сервером, который вы хотели, вы должны аутентифицировать сервер. Вот что мы делаем. Мы не доверяем DNS как безопасному, и мы реализуем необходимую нам безопасность где-то еще, например, TLS (Transport-Layer Security).

TLS (современный уровень безопасности HTTPS) делает это, заставляя сервер отправлять клиенту сертификат с указанием имени и открытого ключа сервера. Этот сертификат криптографически подписан доверенной третьей стороной, называемой центром сертификации (CA). Подпись CA подтверждает, что сертификат показывает правильный открытый ключ для указанного сервера.

Чтобы доказать, что сервер является законным владельцем сертификата (а не какого-либо самозванца, который украл действительный сертификат), подтверждение связи TLS позволяет ему доказать, что ему известен секретный закрытый ключ, который образует соответствующий набор с открытым ключом в сертификате. Конечно, это делается без раскрытия самого секретного ключа.

Существует предложение по обеспечению безопасности DNS, которое называется DNSsec, но оно существует уже много лет и, похоже, никуда не денется. Это может никогда не стать широко развернутым. Теперь есть предложение для "DNS через HTTP" (DoH, произносится «D'oh!") это может защитить DNS, делая это по HTTPS.

0

Там много вопросов. Я постараюсь заняться парой.

Но как я могу быть уверен в том, что получаю нужный мне сайт? Как я могу быть уверен, что мой провайдер не использует поддельные IP-адреса или что они не перенаправляют меня на "поддельные внутренние серверы" (с одинаковым IP-адресом или без него)? Например: если я спрашиваю для example.com, получите его IP, и они покажут мне простой клон этого сайта.

Итак, это называется атакой «человек посередине» (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, когда вы не в домашней сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .