EmerDNS – альтернатива DNSSEC

в 9:13, , рубрики: blockchain, DNS, DNSSEC, rfc, security, Администрирование доменных имен, безопасность, Блог компании Emercoin, блокчейн технологии, децентрализованные сети, криптовалюта, Сетевые технологии

image

Классический DNS, который специфицирован в rfc1034 не пинает только ленивый. При весьма высокой эффективности работы, он действительно никак не защищён, что позволяет злоумышленникам переводить трафик на подставные сайты, путём подмены DNS-ответов для промежуточных кеширующий серверов (отравление кэша). Как-то с этой напастью борется https с его SSL-сертфикатами, которые позволяют обнаружить подмену сайта. Но пользователи обычно ничего не понимают в SSL, и на предупреждения о несоответствии сертификата автоматически кликают «продолжить», вследствие чего время от времени страдают материально.

Чтобы хоть как-то прекратить безобразие с отравлением DNS-кэшей и перехватом трафика, был придуман DNSSEC , который является надстройкой безопасности на классический DNS и в настоящее время внедряется в интернет, контролируемый ICANN. Процесс внедрения, честно признаемся, идёт ни шатко ни валко: Подавляющее большинство коммерческих компаний и прочих организаций откровенно игнорируют вызовы нового времени, даже такие гранды IT как Google и Яндекс не имеют цифровых подписей своих доменных зон. Да и наши компетентные товарищи, которым дело до всего, тоже не торопятся себя обезопасить с этой стороны. И только у компетентных господ, которым действительно до всего есть дело, тут всё в порядке. Ну и ещё у организаций, которые собственно и занимаются внедрением DNSSEC, например, verteiltesysteme.net. Да что говорить о каких-то организациях, если до сих пор ~10% доменов верхнего уровня (TLDs) не имеют подписей DNSSEC!

Почему же случилась ситуация, которую впору назвать массовым саботажем? Ведь технологии DNSSEC бесплатны и массово доступны уже много лет! На то мы видим ряд причин:

  1. Security is strong. Тема сложна для среднего сисадмина, и он предпочитает с этим просто не связываться. Ведь доменную зону DNSSEC надо не только создать, но и регулярно поддерживать – обновлять ключи, и тп.
  2. Человеческий оптимизм: Уж с нами-то ничего не случится, и всё будет хорошо. Беды происходят не с нами. А значит, ничего предпринимать не надо. Не верите? Тогда вопрос на засыпку: А у Вас дома есть огнетушитель?
  3. Весьма неплохую альтернативную защиту обеспечивает https/ssl, которые хорошо диагностируют перевод пользователя на фальшивый сайт. Другое дело, пользователь обычно игнорирует соответствующие предупреждения.
  4. DNSSEC защищает только от отравления кэша «посторонним». Он никак не защищает от компрометации злоумышленником сервера провайдера, где содержится кэш, сервера доменной зоны, или же доменного регистратора. Кстати, именно последнее привело к захвату домена blockchain.info.
  5. Использование DNSSEC снижает производительность подсистемы DNS примерно впятеро, и требует больших сетевых и вычислительных ресурсов, чем классический DNS.

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

Ещё обратим внимание на тот факт, что поиск домена в распределённом классическом DNS и его наследнике DNSSEC происходит в момент запроса пользователя. То есть как раз тогда, когда пользователю максимально нужен вычислительный и сетевой ресурс для передачи данных, а не для выяснения кто есть ху, и проверки соответствующих подписей. Соответственно, обновления кэшей и прочая DNS-работа как раз производится в самое «дорогое» время, когда пользователю нужна его страничка, а не внутренняя работа «под капотом». Ну и понятно, что для успешной работы сети необходимо, чтобы все причастные DNS-сервера были «в полном здравии» и работали как надо. При выходе из строя какого-то промежуточного сервера – «отваливается» целый сегмент сети, что мы время от времени и наблюдаем.

Рассматриваемой здесь альтернативой как классическому DNS, так и DNSSEC является EmerDNS, который построен на технологии блокчейн. В отличие от иерархических DNS/DNSSEC, EmerDNS является одноранговой «плоской» сетью, из которой исключены доменные регистраторы, держатели доменных зон и промежуточное кэши. А раз их нет – то и компрометировать нечего и некого. В этой системе каждый узел EmerDNS держит полный блокчейн, то есть всю базу имён и прочих транзакций. А достоверность данных (то, что они у всех одинаковы) обеспечивает сама технология блокчейна и публичный консенсус майнеров POS+POW. Последнее обеспечивает отсутствие «режима бога» у кого бы то ни было, включая разработчиков системы. Ни мы, ни кто-либо другой не может волюнтаристски отменить или изменить какие-то произвольные записи. Записи могу быть обновлены только их владельцами, и никем другим. В каком-то смысле, EmerDNS подобен файлу hosts, где присутствуют записи обо всех известных сайтах. Но в отличие от hosts:

  • Каждую строчку в EmerDNS может модифицировать только её владелец, и никто иной.
  • Невозможность «вмешательства бога (супер-админа)» обеспечивается консенсусом майнеров.
  • Этот файл у всех одинаков, что обеспечивается механизмом репликации блокчейна.
  • К файлу приложен быстрый поисковик.

Обновления этой базы происходят асинхронно к запросам пользователя, в момент появления новых блоков, по push-технологии. То есть в тот момент, когда пользователю вздумалось пойти на какой-то сайт, все актуальные и проверенные DNS-записи уже лежат локально в заранее проиндексированной базе данных, и трансляция доменных имён в адреса делается локально, без запросов (особенно рекурсивных) к каким-либо внешним ресурсам. Этот подход делает скорость работы EmerDNS исключительно высокой. Кроме того, понятно, в момент разрешения доменного имени совершенно не требуется, чтобы какие-то DNS-сервера где-то в интернете были «в полном здравии».

Такой архитектурный подход делает EmerDNS системой исключительно быстрой, безопасной и отказоустойчивой. Недостаток этой архитектуры – необходимость держать копию блокчейна на каждом узле. А там не только информация о доменах, но и транзакции, и вообще всё, что в эту базу внесли все другие. Но при текущей цене и ёмкости дисковых накопителей, когда даже сотни гигабайт не выглядят чем-то дорогим для рядовых пользователей – это вполне разумная цена за скорость и безопасность. Тем более, что блокчейн Emer весит не многим более 300 мб.

Ещё одним недостатком такой системы является необходимость платить системе какое-то количество Эмеркоинов за каждое обновление информации о доменных записях. Но при текущих ценах (порядка $0.1 за создание записи и $0.01 за обновление) это всё равно во много раз дешевле, чем держать имена у доменных регистраторов (примерно $10 в год). Действительно, за те же $10 можно покупать по три обновления в день в течение года по текущим расценкам.

Отличия различных систем DNS сведены в таблицу:

image

Система EmerDNS существует и стабильно работает с 2014 года. Подробная инструкция по работе с ней приведена на wiki проекта Emercoin.

Высокие параметры отказоустойчивости и безопасности системы привели к тому, что в доменные зоны EmerDNS владельцами были перенесены сайты, заблокированные РосКомНадзором. Подробнее об этом – в статье.

Русскоязычные инструкции для клиентов, как подключиться к системе через OpenNIC, предоставляют сайты Maxima и Pornolab. Также доступ для клиентов обеспечивают браузерные плагины от Peername и Fri-Gate.

Понятно, что при использовании OpenNIC или других внешних серверов запросы пользователей всё-таки могу быть перехвачены и подменены. Также, теоретически, могут возникнуть и проблемы при компрометации самих DNS-шлюзов OpenNIC. Поэтому наиболее безопасным является вариант, когда шлюз в EmerDNS разворачивается в доверенной сети (локальной, домовой, корпоративной), и он только и держит блокчейн, а все пользователи обращаются к нему обычным образом, легковесными DNS-запросами. При такой архитектуре пользователи получаю высокую надёжность и безопасность, и отсутствие необходимости держать блокчейн на каждом компьютере. В вики-статье приведены примеры, как настроить такой сервер с самыми популярными проксирующими DNS-серверами – BIND и DNSMASQ.

Дополнительную информацию об EmerDNS можно прочесть в этой статье.

А узнать больше об Emercoin можно в нашем блоге, или на Крипторе.

Автор: olegarch

Источник

Поделиться

* - обязательные к заполнению поля