Классический DNS, который специфицирован в rfc1034 не пинает только ленивый. При весьма высокой эффективности работы, он действительно никак не защищён, что позволяет злоумышленникам переводить трафик на подставные сайты, путём подмены DNS-ответов для промежуточных кеширующий серверов (отравление кэша). Как-то с этой напастью борется https с его SSL-сертфикатами, которые позволяют обнаружить подмену сайта. Но пользователи обычно ничего не понимают в SSL, и на предупреждения о несоответствии сертификата автоматически кликают «продолжить», вследствие чего время от времени страдают материально.
Чтобы хоть как-то прекратить безобразие с отравлением DNS-кэшей и перехватом трафика, был придуман DNSSEC , который является надстройкой безопасности на классический DNS и в настоящее время внедряется в интернет, контролируемый ICANN. Процесс внедрения, честно признаемся, идёт ни шатко ни валко: Подавляющее большинство коммерческих компаний и прочих организаций откровенно игнорируют вызовы нового времени, даже такие гранды IT как Google и Яндекс не имеют цифровых подписей своих доменных зон. Да и наши компетентные товарищи, которым дело до всего, тоже не торопятся себя обезопасить с этой стороны. И только у компетентных господ, которым действительно до всего есть дело, тут всё в порядке. Ну и ещё у организаций, которые собственно и занимаются внедрением DNSSEC, например, verteiltesysteme.net. Да что говорить о каких-то организациях, если до сих пор ~10% доменов верхнего уровня (TLDs) не имеют подписей DNSSEC!
Почему же случилась ситуация, которую впору назвать массовым саботажем? Ведь технологии DNSSEC бесплатны и массово доступны уже много лет! На то мы видим ряд причин:
- Security is strong. Тема сложна для среднего сисадмина, и он предпочитает с этим просто не связываться. Ведь доменную зону DNSSEC надо не только создать, но и регулярно поддерживать – обновлять ключи, и тп.
- Человеческий оптимизм: Уж с нами-то ничего не случится, и всё будет хорошо. Беды происходят не с нами. А значит, ничего предпринимать не надо. Не верите? Тогда вопрос на засыпку: А у Вас дома есть огнетушитель?
- Весьма неплохую альтернативную защиту обеспечивает https/ssl, которые хорошо диагностируют перевод пользователя на фальшивый сайт. Другое дело, пользователь обычно игнорирует соответствующие предупреждения.
- DNSSEC защищает только от отравления кэша «посторонним». Он никак не защищает от компрометации злоумышленником сервера провайдера, где содержится кэш, сервера доменной зоны, или же доменного регистратора. Кстати, именно последнее привело к захвату домена blockchain.info.
- Использование 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 сведены в таблицу:
Система EmerDNS существует и стабильно работает с 2014 года. Подробная инструкция по работе с ней приведена на wiki проекта Emercoin.
Высокие параметры отказоустойчивости и безопасности системы привели к тому, что в доменные зоны EmerDNS владельцами были перенесены сайты, заблокированные РосКомНадзором. Подробнее об этом – в статье.
Русскоязычные инструкции для клиентов, как подключиться к системе через OpenNIC, предоставляют сайты Maxima и Pornolab. Также доступ для клиентов обеспечивают браузерные плагины от Peername и Fri-Gate.
Понятно, что при использовании OpenNIC или других внешних серверов запросы пользователей всё-таки могу быть перехвачены и подменены. Также, теоретически, могут возникнуть и проблемы при компрометации самих DNS-шлюзов OpenNIC. Поэтому наиболее безопасным является вариант, когда шлюз в EmerDNS разворачивается в доверенной сети (локальной, домовой, корпоративной), и он только и держит блокчейн, а все пользователи обращаются к нему обычным образом, легковесными DNS-запросами. При такой архитектуре пользователи получаю высокую надёжность и безопасность, и отсутствие необходимости держать блокчейн на каждом компьютере. В вики-статье приведены примеры, как настроить такой сервер с самыми популярными проксирующими DNS-серверами – BIND и DNSMASQ.
Дополнительную информацию об EmerDNS можно прочесть в этой статье.
А узнать больше об Emercoin можно в нашем блоге, или на Крипторе.
Автор: olegarch