Как серверы имен гарантируют, что сервер, утверждающий, что он является хостом для домена, на самом деле управляется этим доменом?

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

При следовании руководству linodes по настройке веб-сайта: https://www.linode.com/docs/websites/hosting-a-website

Их инструкции говорят вам установить DNS-серверы как:

ns1.linode.com ns2.linode.com ns3.linode.com ...

Но я хочу сказать, что ЛЮБОЙ может открыть учетную запись на linode и заполнить те же настройки DNS! Так что теперь любой, кто пытается получить доступ к вашему сайту, может быть перенаправлен на кого-то другого, кто хочет притвориться вашим сайтом!

Я правильно понимаю, как работает DNS? Я знаю, что единственный способ убедиться (с точки зрения посетителя), что посещаемый сайт действительно является доменом, для которого он предназначен, — это установить сертификат (https) и т. д. Но, основываясь на приведенных выше инструкциях, кажется почти тривиальным притворяться кем-то иначе, если они также используют линод.


person Rahul Iyer    schedule 07.12.2014    source источник


Ответы (2)


Я не эксперт по DNS, поэтому мой ответ может быть ошибочным, но у меня был тот же вопрос, поэтому я изучил это.

Я думаю, что вы правильно поняли, и это кажется проблемой, но, видимо, на практике это случается редко, поэтому хостинг-провайдеры (включая Linode) ничего не делают с этим.

Здесь Райан Куинн из DigitalOcean (еще одна хостинговая компания, у которой есть эта проблема) отвечает на аналогичный вопрос:

Домен может существовать только в одной учетной записи, поэтому любой пользователь, пытающийся добавить его, не сможет этого сделать. Случаи, когда домен уже существует или взломан, крайне редки (я видел 3 случая за 2+ года, и в каждом случае это был бывший владелец домена, у которого все еще были записи). В этих редких случаях пользователь может отправить заявку в службу поддержки, где мы сверим информацию whois домена с его платежными данными, чтобы подтвердить право собственности.

Вот вопрос на Stack Exchange по информационной безопасности, который задает то же самое.

В случае с DigitalOcean я обнаружил файл post (Обсуждение HackerNews) человека, описывающего, как они захватили около 20 000 неактивных доменных имен, указывающих на серверы имен DigitalOcean. Я не нашел ничего подобного для Linode, хотя я предполагаю, что в основном такая же атака возможна (обновление 2020 года: это недавно произошло с кем-то, кого я знаю, когда их веб-сайт был захвачен спамером после того, как они удалили свой Linode без изменения настройки DNS, чтобы перестать указывать на Linode).

Amazon Route 53, похоже, использует серверы имен, сгенерированные случайным образом (а не константу Linode/DigitalOcean ns1.linode.com и т. д.) чтобы сделать эту атаку маловероятной.

Очевидно некоторые другие службы (Google Apps?) «подтверждают право собственности на домен, требуя, чтобы владелец домена добавил запись TXT в свой домен со специальным кодом».

person riceissa    schedule 29.06.2018

И что? Кто-то может использовать одни и те же DNS-серверы. Но они не могут зарегистрировать один и тот же домен. Как только вы зарегистрируетесь на example.org, вы станете владельцем этого домена, и никто другой не сможет его зарегистрировать.


Вы зарегистрировались на example.org и используете следующую конфигурацию DNS на Linode:

Domain             | Nameserver
-------------------+---------------------
example.org        | ns1.linode.com
example.org        | ns2.linode.com
...                | ...

«Злой хакер» мог зарегистрировать evil-hacker.com и использовать эту конфигурацию:

Domain             | Nameserver
-------------------+----------------------
evil-hacker.com    | ns1.linode.com
evil-hacker.com    | ns2.linode.com
...                | ...
example.org        | ns1.linode.com  << Those are the lines that bug you, right?
example.org        | ns2.linode.com

Для простоты предположим, что IP-адрес вашего сайта — 1.1.1.1, а IP-адрес сайта злого хакера — 2.2.2.2. Вы обеспокоены тем, что из-за того, что «хакер» использовал ту же конфигурацию DNS, ваш сайт example.org может преобразоваться в 2.2.2.2, верно?

Вот что происходит, когда я пытаюсь разрешить example.org:

  1. Я подключаюсь к корневым серверам DNS, чтобы узнать, какой сервер имен отвечает за домен верхнего уровня org.
  2. Я подключаюсь к серверу имен домена верхнего уровня org и запрашиваю у него IP-адрес example.org. Сервер имен org управляется регистратором вашего домена. Он проверит информацию, введенную вами, и предложит мне взглянуть на один из серверов имен linode.
  3. Я подключаюсь к ns1.linode.com и запрашиваю у него IP-адрес example.org. Linode знает, какой IP у вашего сайта, и отвечает мне 1.1.1.1.

В описанном выше процессе я никогда не увижу evil-hacker.com или 2.2.2.2. Поскольку наш злой хакер (будем надеяться) не может контролировать корневые серверы DNS, сервер имен домена верхнего уровня org или серверы имен Linode, на все запросы DNS для вашего сайта будут отвечать «доверенные» серверы имен.

Однако хакер может перехватить DNS-трафик с моего конкретного компьютера. Он может установить вредоносное ПО, которое всегда преобразует example.org в его IP-адрес 2.2.2.2 (например, /etc/hosts) или взломать мой сетевой маршрутизатор. Так что использование SSL-сертификата для вашего сайта по-прежнему является хорошей идеей :).

person PoByBolek    schedule 09.12.2014
comment
Как вы думаете, почему ns1.linode.com ответит 1.1.1.1 вместо 2.2.2.2? Linode не делает ничего, чтобы даже проверить, являетесь ли вы тем же человеком, который зарегистрировал домен, и не может узнать, являетесь ли вы хакером или владельцем. Ваш пример иллюстрирует мою проблему! :) - person Rahul Iyer; 10.12.2014
comment
@John Потому что Линод знает, что example.org младше 1.1.1.1. По крайней мере, так и должно быть... Оглядываясь назад на учебник по хостингу, похоже, вам также необходимо зарегистрировать свой домен в Linode (первое изображение в разделе «Добавление записей DNS»). Я предполагаю (и надеюсь), что они не примут вторую регистрацию для example.org и, таким образом, смогут сопоставить example.org с вашей учетной записью, которая, известно, имеет адрес 1.1.1.1. - person PoByBolek; 10.12.2014
comment
Это неправильно - вы не регистрируете домены с linode. Я не думаю, что вы внимательно читали учебник, это изображение не имеет ничего общего с регистрацией домена. :) Весь смысл моего вопроса в том, что они не проверяют, действительно ли лицо, утверждающее, что оно размещает сервер, предназначенный для домена, является зарегистрированным владельцем этого домена! Я предполагаю, что именно так устроен DNS, и единственный способ предотвратить спуфинг — использовать сертификаты. Это довольно жалко. XD Попробуйте создать две учетные записи linode и подменить один из доменов. - person Rahul Iyer; 10.12.2014