35 лет DNS, системе доменных имён
В 1987 году произошло много событий, так или иначе повлиявших на развитие информационных технологий: CompuServe разработала GIF-изображения, Стив Возняк покинул Apple, а IBM представила персональный компьютер PS/2 с улучшенной графикой и 3,5-дюймовым дисководом. В это же время незаметно обретала форму ещё одна важная часть интернет-инфраструктуры, которая помогла создать Интернет таким, каким мы знаем его сегодня. В конце 1987 года в качестве интернет-стандартов был установлен набор протоколов системы доменных имен (DNS). Это было событием которое не только открыло Интернет для отдельных лиц и компаний во всем мире, но и предопределило возможности коммуникации, торговли и доступа к информации на поколения вперёд.
Сегодня DNS по-прежнему имеет решающее значение для работы Интернета в целом. Он имеет долгий и весомый послужной список благодаря работе пионеров Интернета и сотрудничеству различных групп по созданию стандартов.
❯ Масштабирование Интернета для всех
История этого конкретного протокола восходит к 1970-м годам. DNS следовал схеме, используемой многими другими сетевыми протоколами того времени, в том смысле, что он был открытым (не зашифрованным). Он также не устанавливал подлинность того, с кем коннектился, и клиент просто верил в любые ответы, полученные в результате запроса. В защиту того, что сегодня сочли бы очевидным недостатком, скажу, что в то время не конструировали окончательный вариант будущей глобальной коммуникационной инфраструктуры. Как выяснилось, 35 лет назад протокол DNS был доверчив до наивности, и любой решительный злоумышленник мог вторгнуться в трафик запросов DNS. Но тогда DNS был всего лишь небольшим экспериментом.
Иерархия DNS
До 1987 года Интернет в основном использовался военными, государственными учреждениями и представителями научных кругов. В то время Сетевой информационный центр, управляемый SRI International, вручную поддерживал каталог хостов и сетей. Хоть ранний Интернет и был революционным и дальновидным, не у всех был к нему доступ.
В тот же период сеть Агентства перспективных исследовательских проектов США, предтеча Интернета, который мы сейчас знаем, превратилась в быстрорастущую среду, в связи с чем предлагались новые схемы именования и адресации. Увидев тысячи заинтересованных учреждений и компаний, желавших изучить возможности сетевых вычислений, группа исследователей ARPANET поняла, что им необходим более современный автоматизированный подход к организации системы именования сети для ожидаемого быстрого роста.
Два пронумерованных информационных документа RFC 1034 и RFC 1035, были опубликованы в 1987 году неофициальной сетевой рабочей группой, которая вскоре после этого превратилась в Инженерный совет Интернета (IETF). Эти RFC, автором которых являлся специалист по информатике Пол В. Мокапетрис, стали стандартами, на основе которых была построена реализация DNS. Именно Мокапетрис, занесённый в 2012 году в Зал славы Интернета, конкретно предложил пространство имён, в котором администрирование базы данных было чётко распределено, но могло также и развиваться по мере необходимости.
Пол Мокапетрис
Помимо предоставления организациям возможности вести свои собственные базы данных, DNS упростила процесс соединения имени, которое могли запомнить пользователи, с уникальным набором чисел — IP-адресом, — который необходим веб-браузерам для перехода на веб-сайт с использованием доменного имени. Всё, что подключёно к Интернету — компьютеры, ноутбуки, планшеты, мобильные телефоны — имеет IP-адрес. Ваш любимый веб-сайт может иметь IP-адрес, например, 12.32.12.32, но его людям, очевидно, запомнить нелегко. Однако такое доменное имя, как example.com, запомнить куда проще. Благодаря тому, что не нужно было запоминать, казалось бы, случайную последовательность чисел, пользователи могли легко перейти на нужный сайт, и всё больше людей по всему миру могли получить доступ к сети.
Благодаря совместной работе этих двух аспектов — широкого распространения и сопоставления имен и адресов — DNS быстро приобрела свою конечную форму и превратилась в ту систему, которую мы знаем сегодня.
❯ Заинтересованные стороны и грубый консенсус
Тридцать пять лет развития и прогресса DNS можно отнести к сотрудничеству множества заинтересованных сторон и групп — научных кругов, технического сообщества, правительств, правоохранительных органов и гражданского общества, а также представителей коммерческой и интеллектуальной собственности, — которые и сегодня продолжают открывать важные перспективы для развития DNS и Интернета. Их точки зрения нашли своё отражение в критических изменениях в области безопасности в DNS: от обеспечения защиты прав интеллектуальной собственности до недавних совместных усилий заинтересованных сторон по борьбе со злоупотреблениями в DNS.
Экосистема DNS
Другие важные совместные достижения связаны с IETF, которая не имеет официального списка членов или требований и отвечает за технические стандарты, составляющие набор интернет-протоколов, а также с Корпорацией по управлению доменными именами и IP-адресами (ICANN), которая играет центральную координирующую роль на базовом уровне. Без конструктивного и продуктивного добровольного сотрудничества Интернет, каким мы его знаем, был бы просто невозможен.
Действительно, эти совместные усилия выстроили бренд сотрудничества, известный сегодня как «грубый консенсус» (rough consensus). Этот термин был принят IETF в первые дни создания DNS для описания формирования доминирующего мнения рабочей группы и необходимости быстрого внедрения новых технологий, что не всегда допускает длительные дискуссии и дебаты. Этот подход используется и сегодня.
Когда 35 лет назад был изобретен DNS, его целью было обеспечение роста Интернета. Вопросы безопасности и конфиденциальности не рассматривались, так как Интернетом тогда ещё почти никто не пользовался. В последующие годы DNS была расширена за счёт возможности аутентификации информации, которую она несёт, с помощью DNSSEC, но вся информация продолжала циркулировать в Интернете в текстовом виде без шифрования. Любой элемент сети, способный считывать сетевой трафик, мог считывать, какие вопросы DNS задаёт каждый человек. В принципе, можно подумать, что это не имеет большого значения, ведь DNS указывает только сайт, который вы хотите посетить, или тот, на который вы хотите отправить электронное письмо. DNS является «просто метаданными».
Со временем стало понятно, что эти метаданные предоставляют много информации для всех, кто хочет провести анализ, и люди начали говорить о том, как защитить DNS-трафик от «прослушек» в Интернете.
Первое предложение по исправлению этой ситуации было опубликовано Дэном Бернштейном под названием DNSCurve и было разработано для сокрытия информации при обмене данными между рекурсивными DNS-серверами (от провайдеров к клиентам) и авторитетными DNS-серверами (от веб-сайтов, TLD и т. д.). Он был опубликован вне IETF и широкого признания не получил, но OpenDNS реализовал связь между клиентами и их рекурсивными серверами.
С другой стороны, IETF начала работать над изменением транспортного протокола DNS (с самого начала это были UDP и TCP), путём добавления TLS для шифрования трафика, и таким образом родился DTLS (DNS поверх TLS). Все эти относительно простые модификации сохранили до сих пор известную DNS практически без изменений и скрыли информацию под защитной оболочкой.
Однако параллельно и независимо IETF начала работу над другим альтернативным вариантом. Известный как DNS поверх HTTPS (DoH), он отличается от традиционного DNS и скрывает сообщения DNS, как если бы они были данными, которые должны передаваться по HTTP с защитой TLS, как веб-данные любого сайта HTTPS. Сообщение становится не просто инкапсуляцией DNS, а новым типом сообщения через HTTPS.
Цель состоит не только в том, чтобы скрыть сообщения DNS с помощью шифрования, но и в том, чтобы скрыть сам трафик DNS вместе с остальным веб-трафиком. Таким образом можно избежать возможной блокировки доступа к DNS-серверам, которая используется правительствами по всему миру, а также труднее отличить DNS-трафик от другого HTTPS-трафика.
Технологии не бывают ни хорошими, ни плохими и зависят от того, как они используются. Для начала необходимо знать, как это влияет на конфиденциальность каждого из нас, а также на безопасность наших сетей. DoH, изменив способ обработки DNS, также может стать открытой дверью для нового этапа эволюции служб DNS в ближайшем будущем.
❯ Проблемы DNS
Но DNS находится в относительно малоизвестном спектре Интернета. В отличие от браузеров, Всемирной паутины или приложений социальных сетей, DNS не так заметен или даже не виден пользователям. Протокол работает таким образом, что сбивает с толку даже конечного клиента. На простой вопрос о том, кто может видеть вашу онлайн-активность, часто бывает очень сложно ответить. Тем не менее, несмотря на то, что его внутренняя работа не ясна, задача DNS проста: система разрешения DNS берёт доменные имена и переводит их в сетевые адреса. Всё это может показаться достаточно очевидным, но у этой функции есть несколько аспектов, которые использовались и злоупотреблялись на протяжении многих лет, что и лежит в основе большей части сегодняшних проблем с DNS.
Когда Интернет стал играть более важную роль в сфере общественных коммуникаций, DNS пришёл вместе с ним и быстро стал уязвимым местом. Например, если бы я мог видеть ваши DNS-запросы и подделывать ответы DNS, я могу бы направить вас по ложному пути. Я мог бы отравить ваш кеш ненужной информацией в ответах DNS (спуфинг), которой вы были бы готовы поверить.
Однако вмешательство в DNS — это не просто инструмент для злоумышленников. Многие национальные режимы используют свои регулирующие и судебные полномочия, чтобы заставить интернет-провайдеров активно следить за пользователями, перехватывая запросы для определённых доменных имён и синтезируя ответ DNS, чтобы скрыть результаты, или перенаправлять конечного пользователя в другую точку обслуживания. Сегодня это очень распространено. Но, возможно, более тревожным, для некоторых членов технического сообщества (RFC 7258), составляющих ядро IETF, были разоблачения Сноудена в 2013 году, которые показали, что Интернет используется рядом национальных агентств, включая некоторые агентства США, для осуществления массовой слежки. Всё, что происходит в сети, начинается с обращения к DNS. Всё. Например, если мне удастся наблюдать за потоком ваших DNS-запросов, то для меня не останется никаких секретов про вас. Я действительно узнаю всё, что вы делаете в Интернете. И с кем.
Реакцией технических специалистов на документы Сноудена стало создание нового набора средств защиты вокруг DNS. Сообщения DNS шифруются, источники информации DNS аутентифицируются, запросы DNS очищаются от всей посторонней информации, а содержимое DNS подвергается проверке. Поддельные ответы DNS могут быть распознаны и отклонены. В наши дни мы рассматриваем, пожалуй, самые полные меры с двухуровневой аутентификацией, так что ни одна сторона не может сопоставить, кто запрашивает, и имя, которое запрашивается. Дело не в том, что такая информация хорошо скрыта — она больше не существует в изначальной форме, как только покидает приложение на устройстве пользователя.
Непонятно, что это означает в долгосрочной перспективе. Остаются ли незамеченными действия злоумышленников? Теряем ли мы видимость управления сетью? Что такое «безопасная» сеть и как её защитить, используя традиционные методы проверки трафика, когда весь сетевой трафик непрозрачен? Если мы больше не можем видеть внутреннюю часть DNS, то как мы можем определить, был ли (и если да, то когда?) DNS захвачен одним или двумя цифровыми гигантами?
Уже сейчас невероятно сложно найти данные DNS-запросов. Легко говорить об обеспечении части DNS, но чрезвычайно сложно выяснить, как используется DNS. Последствия обеспечения конфиденциальности слишком велики, чтобы сделать эти данные доступными, а запутывание делает их в значительной степени бесполезными. К чему мы движемся, так это к тому, что в DNS больше ничего нельзя увидеть. И никакая политика или регулирование не могут существенно изменить эту траекторию. Здесь мы говорим о действиях и поведении приложений. Попытка применить некоторые нормативные требования к поведению протокола DNS, примерно то же самое, что и попытка регулировать детальное поведение Microsoft Word или браузера Chrome.
Во многих смыслах как мотивы крупных операторов современного Интернета (Google, Apple и т. д.), так и их восприятие предпочтений пользователей совпали в том, что существует очевидное вновь обретённое уважение к конфиденциальности. С преобладанием уровня приложений в качестве доминирующего фактора в экосистеме Интернета приложения испытывают сильное неприятие того, чтобы позволить сети или платформе получить какое-либо представление о поведении приложения или содержании транзакций приложения. Протокол QUIC — хороший пример загрузки всей функции транспортных и контентных драйверов в приложение и сокрытия абсолютно всего от платформы и сети.
DNS движется в том направлении, где с помощью таких инструментов, как HTTPS и DNSSEC, мы можем полностью удалить DNS-запросы конечного пользователя и получить сервер для предварительной подготовки DNS-информации с помощью push-сервера. Если вы думали о DNS как об общей части инфраструктуры сетевого уровня, то это представление заменяется представлением о DNS как об артефакте приложения.
Если попытаться дать ответ на вопрос о том, каких данных не хватает для разработки основанных на фактических данных политик в отношении DNS, которые защитят доверие пользователей в Интернете, то ответ не совсем обнадёживает. Сегодня у нас действительно нет общедоступных данных, которые можно было бы использовать для этой цели, а необходимость всё более тщательного обращения с такими собранными данными и переход к более эффективному шифрованию и обфускации в DNS-запросах создают более чем достаточные препятствия для её сбора и распространения.
❯ Признание вехи
Тем не менее, оглядываясь назад на то, как появилась DNS, и на процессы, обеспечивающие её надёжное функционирование, важно признать работу, проделанную организациями и отдельными лицами, составляющими это сообщество. Мы также должны помнить, что усилия по-прежнему опираются на добровольное сотрудничество.
Празднование таких годовщин, как 35-летие протокола DNS, позволяет многочисленным заинтересованным сторонам и сообществам сделать паузу и задуматься об огромной работе и ответственности, стоящей перед нами. Благодаря новаторским умам, которые задумали и построили раннюю инфраструктуру Интернета, и, в частности, фундаментальному вкладу Пола Мокапетриса в набор протоколов DNS, мир смог создать устойчивую глобальную экономику, которую мало кто мог себе представить 35 лет назад.
35-я годовщина публикации RFC 1034 и 1035 напоминает нам о вкладе DNS в рост и масштабирование того, что мы знаем сегодня как «Интернет». Это момент, который стоит отметить.