Ведь с получением глобального статуса Интернет наполнился информацией на множестве других языков. Свое весьма существенное место в наполнении Сети заняли, например, русский, китайский, испанский, французский и многие другие языки мира. В национальных сегментах Интернета, предоставляющих своим пользователям контент на привычном, национальном языке, наличие адресной системы, строго привязанной к латинскому алфавиту английского языка, уже не выглядит обосно ванным.
Надо заметить, что одна из базовых идей «философии» системы DNS состоит в использовании для обозначения адресов легко запоминающихся, символьных строк, лучше всего«словарных» слов. То есть, конечно, система доменных имен позволяет применять и ничего не значащие абракадабры вроде f1h1y212rfa1.com. Однако систему DNS вводили как раз для того, чтобы вместо абракадабр
(которыми для основной массы пользователей являются и числовые IP-адреса) использовать «человеческие» имена: скажем, example.comдомен, служащий для указания в качестве примера доменов (на английском языке example означает «пример»). Именно поэтому латинский алфавит в именах доменов применяется прежде всего для записи осмысленных слов, аббревиатур и словосочетаний.
На начальном этапе развития Сети, когда основная масса ее пользователей состояла из ученых физико-математических специальностей, инженеров из высокотехнологичных отраслей, технических специалистов, использование латиницы и английского для решения задач адресации казалось само собой разумеющимся, ведь эти категории пользователей постоянно применяют английский язык в своей работе, даже если родились и работают в странах, где английский не является официальным языком.
Но как только Интернет, превратившийся в общедоступную, массовую сеть, стали заполнять «домохозяйки», у них возник резонный вопрос: почему же адрес набирается непонятной латиницей? Особенно рельефно проблема выглядела в странах, национальные языки которых не используют латинский алфавит в своей письменности (например, в кириллическом сегменте Интернета). Впрочем, во многих европейских странах национальное письмо хоть и базируется на латинской графике, но алфавиты все равно включают дополнительные буквы, отсутствующие в английской письменности. Такова ситуация во всех скандинавских странах, во Франции, в Германии. То есть ограничения, накладываемые 26-буквенным английским алфавитом (а кроме него разрешены только 10 цифр и знак дефиса), ощущаются и в близкородственных с английским языках.
Впервые идея о «расширении алфавита» возникла применительно к «традиционным» доменам первого уровня, а точнее, к национальным доменам. Администраторы некоторых национальных доменов, опережая события, еще в 90-х годах прошлого века решили самостоятельно пойти навстречу своим пользователям, разрешив регистрацию имен с символами национальных алфавитов, позволив тем самым использовать в качестве доменов привычные слова национальных языков. Впрочем, первые многоязычные домены работали с проблемами, требовали установки дополнительного программного обеспечения на компьютеры пользователей и проведения дополнительных настроек операционной системы. Тем не менее интерес к доменным именам на национальных языках был достаточно велик, чтобы в итоге сподвигнуть ICANN на запуск «официальных процедур» регистрации таких доменов. Произошло это в 2003 году.
Начался процесс с «официального разрешения» на регистрацию доменов второго уровня с национальными символами в тех национальных доменах, в которых администраторы проявили интерес к «многоязычию». В итоге домены с символами национальных алфавитов появились в национальных доменах Китая (CN) и Японии (JP). Также стала возможна регистрация «многоязычных» имен в доменах общего пользованияCOM, NET, ORG, BIZ, INFO. Сейчас (2014 год) регистрация «внелатинских» доменов разрешена в нескольких десятках национальных доменов и во многих доменах общего назначения, среди которых INFO, TEL и др.
Технические трудности
Введение многоязычных доменов связано с целым рядом технических трудностей. Основная из них состоит в том, что система DNS может работать только с символами из набора ASCII.
Что такое ASCII? Это стандартный набор символов, включающий в том числе и буквы латинского алфавита, введенный еще до появления Интернета и DNS. Символы ASCII представлены в виде числовых кодов, а таблицы соответствия кодов и символов как раз и являются предметом этого стандарта.
На страницах этой книги я стараюсь избегать излишне техничных моментов, свойственных работе DNS, и опускаю многие подробности преобразования данных, которые осуществляются в Сети при обработке адресов. Однако в случае с многоязычными доменными именами нам придется взглянуть на эти преобразования чуть подробнее, чтобы понять основные свойства новых алфавитов DNS. Впрочем, ничего сложного в нужных для понимания алгоритмах нет.
Итак, когда создавалась DNS, использование ASCII представлялось очень логичным, ведь этот стандарт тогда лежал в основе компьютерной обработки символов, позволяя разным компьютерам и разному программному обеспечению одинаковым образом представлять символьную информацию. Надо заметить, что DNS использует далеко не все символы таблиц ASCII. Напротив, к использованию разрешены только 26 букв алфавита, 10 цифр и знак дефиса. То есть и так достаточно узкий набор ASCII, не включавший, например, букв кириллицы, сузили еще больше, выбрав небольшое подмножество символов.
Итак, стандартная современная система DNS использует «урезанный» набор ASCII-символов. Из чего состоит DNS? Из множества компьютеров-серверов, на которых работает специальное программное обеспечение, реализующее всю функциональность преобразования имен (преобразование, напомним, происходит между символьными строками и числовыми IP-адресами). Количество важных серверов DNS, работающих в Интернете, исчисляется десятками тысяч. А управляют этими серверами самые разные компании и администраторы, не имеющие «центрального начальства» и вообще находящиеся в разных странах мира.
Введение в таблицы преобразований новых символов и изменение алгоритмов преобразованияэто самые радикальные изменения в программном обеспечении DNS, какие только можно представить. Понятно, что осуществить подобное на практике в глобальном масштабе просто невозможно. Дело в том, что любая попытка произвести «апгрейд» распределенной компьютерной системы мирового масштаба, включающей тысячи разных компьютеров и не оснащенной центральным управлением, имеет один наиболее вероятный исходкрах глобальной системы адресации Интернета.
Нужно уточнить, что сперва для реализации многоязычных доменов было предложено несколько разных технологий. Некоторые из них подразумевали использование «альтернативной» системы доменных имен или предлагали другие подобные решения сомнительной ценности. После изучения вариантов и возможностей их реализации ICANN рекомендовала применить технологию, которая позволит с минимальными рисками поэтапно ввести в употребление доменные имена, допускающие максимально широкий набор символов самых разных алфавитов.
Подобный результат вряд ли нужен пользователям Сетиим требуются лишь многоязычные домены разных уровней. Именно поэтому для введения многоязычия в систему адресации разработали технологию, позволяющую реализовать новую функциональность поверх действующей и отлаженной годами системы DNS.
Суть технологии доменного многоязычия, рекомендованной ICANN, заключается в дополнительном преобразовании имен (например, на компьютере пользователя) до отправки запроса в DNS. В результате доменное имя с символами национального алфавита «перекодируется» в формат, допустимый для обычной обработки в DNS. То есть имя оказывается состоящим только из символов ASCII, разрешенных в «классической» DNS (а именно из букв латиницы, цифр и дефисов).
Другими словами, в рамках технологии многоязычных доменов старая и проверенная глобальная DNS остается нетронутойона как бы и не «видит» новых алфавитных символов. Это освобождает интернет-сообщество от крайне рискованных усилий по «апгрейду» DNS.
Как же работают многоязычные имена? Введенное пользователем доменное имя на национальном языке преобразуется браузером по стандартному алгоритму в последовательность допустимых к использованию в DNS ASCII-символов. Эта последовательность начинается со специального префикса, позволяющего программам отличать многоязычные адреса. При этом с точки зрения старых программ, работающих с доменными именами, и с точки зрения DNS, строка символов, полученная в результате преобразования, будет являться обычным именем домена. То есть старые программы, созданные до появления «технологий многоязычия», также сумеют обрабатывать новые адреса, правда, при этом они не смогут правильно отобразить представление имени в национальном алфавите.
Простой пример: русскоязычный адрес руцентр. рф будет преобразован в ASCII-строку xn-e1aqhcjdv.xn-p1ai, где xn-префикс, обозначающий, в данном случае, «нелатинское» доменное имя, а e1aqhcjdv (вполне себе абракадабра) представляет собой закодированную особенным образом последовательность букв кириллицы руцентр, p1ai.рф.
Итак, самое важное, что нужно понимать: технически многоязычные доменные имена вводятся на другом «уровне абстракции», поверх DNS. При этом необходимые преобразования символов осуществляются не в DNS, а на компьютере пользователя Интернета (или на сервере, не участвующем в DNS, если такое преобразование требуется серверу) специальным программным обеспечением, а DNS передается результат преобразования, состоящий только из ASCII-символов.
Префикс xn-, обозначающий многоязычные доменные имена, согласно предложению ICANN, администраторы доменов верхнего уровня могут зарезервировать, если они пока не хотят допускать регистрацию и использование многоязычных доменов в своих «зонах ответственности». Дело в том, что регистрация имени, начинающегося с префикса xn-, может оказаться технически эквивалентной регистрации того или иного доменного имени в многоязычном представлении.
Преобразование символов в описанной технологии, которая называется Punycode, происходит с использованием наиболее прогрессивной и универсальной современной кодировки символовUnicode. Таблицы Unicode включают все мыслимые символы самых разнообразных алфавитов и используемых «при письме» знаковых систем, сколько-нибудь распространенных в мире.
Punycode для преобразования имен доменов полностью поддерживается современными браузерами. То есть пользователям этих браузеров (подавляющему большинству пользователей Сети) не нужно прибегать к помощи дополнительных плагинов, чтобы получить поддержку многоязычных доменных имен. А если вспомнить, что технология многоязычия устроена не требующим перенастройки DNS образом, то окажется, что у администраторов существующих доменов нет технических препятствий для введения многоязычных доменных имен.
Предположим, администратор домена test.ru решил ввести внутри своей «зоны ответственности» доменные имена на русском языке. Оказывается, что для добавления в DNS доменного имени привет. test.ru администратору достаточно внести в управляющие таблицы сервера имен домен xn-b1agh1afp.test. ru. Это доменное имя состоит только из допустимых в DNS символов и поэтому будет доступно и для современных, и для старых программных систем. Отличие лишь в том, что пользователи современных интернет-браузеров смогут обращаться к ресурсу под именем привет. test.ru. При этом администратору домена test. ru не придется получать разрешение на введение кириллических имен в своем домене у «вышестоящих» организаций.
Такая особенность управления доменным пространством вместе с появлением в 2010 году многоязычных доменов верхнего уровня дала неожиданный эффект в плане безопасности, позволяя фишерам (мошенникам, выманивающим различные пользовательские конфиденциальные и персональные данные) конструировать адреса, имитирующие многоязычные домены. Подробнее об этомв разделе, посвященном безопасности DNS.
На высшем уровне
В мае 2010 года технология Punycode обрела воплощение в самых верхних доменных рядах. Появились первые многоязычные «официальные» домены верхнего уровня (арабские и кириллические).
Перед этим Punycode, по заданию ICANN, тщательно испытали в лабораториях и выяснили, что нет препятствий для использования этой технологии на корневых серверах DNS. В рамках этих испытаний в 2007 году ICANN создала специальный проект, позволяющий пользователям Интернета протестировать многоязычные имена «по полной программе». Для этого в «корневой системе» DNS Интернета были зарегистрированы специальные тестовые домены верхнего уровня, записанные символами различных национальных алфавитов. Так, для кириллических имен был предназначен адрес http://пример. испытание/, под которым размещены веб-страницы, позволяющие пользователям не только проверить доступность адреса из того или иного браузера, но и оставить свои замечания, касающиеся использования технологии. Позже, после глобального распространения многоязычия DNS, тестовые домены удалили, сейчас они недоступны.
Раздвоение личности
Удобная технология работы многоязычных имен все же привела к возникновению некоторых организационных трудностей. Первая и, наверное, главная из этих трудностей связана с тем, что с формально-юридической точки зрения всякое доменное имя, включающее символы национальных алфавитов, оказывается совокупностью двух имен. Точнее, двух представлений одного имени. Одно из этих именсобственно имя домена, записанное с использованием «многоязычия». Второе имясоответствующая комбинация ASCII-символов, используемая на уровне DNS. Связывает эти имена между собой только стандарт преобразования символов. «Расщепление» имени домена на два имени приводит к возникновению «войны доменных терминов»: какое имя считать первичным и самым главным?
В базе данных технического центра, управляющего доменом, очевидно, более важное значение приобретает «внутренний» вариант имени, то есть записанное ASCII-символами имя с префиксом xn-. Ведь именно это имя размещено в базе данных, и именно с ним фактически работает система DNS.
С точки зрения администратора домена, зарегистрировавшего доменное имя на национальном языке, очевидно, главную роль играет представление домена символами национального алфавита. Ведь именно это имя заинтересовало пользователя, и именно это имя он планировал зарегистрировать. Абракадабра из латинских букв и арабских цифр, начинающаяся префиксом xn-, обладателя прав на домен привет. рф вряд ли интересует.
Сложностей в ситуацию добавляет и тот факт, что связь между двумя именами устанавливается не законами или юридическими процедурами, а лишь существующим алгоритмом преобразования. Если этот алгоритм изменится или кто-то предложит использовать другой алгоритм, то связь между именами в реестре доменов (внутри DNS) и именами, которые регистрировали пользователи, может прерваться.
В самом трудном положении оказываются компании-регистраторы. Дело в том, что техническая служба, осуществляющая администрирование домена, может легко избежать всех проблем, дистанцировавшись от многоязычия и занимаясь лишь регистрацией доменных имен с префиксом xn-. Для этого даже не понадобится вносить какие-то серьезные изменения в существующую систему приема заявок.
Нужно отметить, что, по различным причинам, возможно введение технических ограничений на использование тех или иных символов и последовательностей символов в именах xn-. И для того чтобы реализовать эти ограничения, технической службе, обеспечивающей функционирование DNS домена, придется доработать свои программные системы, используемые для приема регистраций.
Для регистратора же доменов, как несложно догадаться, самым важным является представление доменного имени на национальном языке. Ведь именно возможность регистрации имен, записанных привычными для глаза пользователя символами национального алфавита, и является главной привлекательной для рядового пользователя Сети чертой введения многоязычия в системе адресации Интернета. А регистратор доменов ориентируется как раз на рядового пользователя.
В итоге регистратор попадает в зависимость от действующих стандартов преобразования символов. Более того, он вынужден лавировать между собственными интересами, интересами своих клиентов и интересами технического центра, обеспечивающего функционирование домена.
Если регистрацию доменов для конечного пользователя производит та же организация, которой подчиняется технический центр домена, ситуация с национальными алфавитами несколько упрощается. Однако на практике подобное монопольное положение регистратора встречается далеко не во всех доменах первого уровня.
«Раздвоение» именне единственная организационная проблема с многоязычными доменами.
Так, еще на раннем этапе обсуждения доменного многоязычия в 1990-х годах стало ясно, что расширение алфавита может сыграть на руку фишерам (злоумышленникам).