От ASCII к Unicode: как появились кириллические домены и адреса электронной почты и что такое универсальное принятие

Администрирование доменных именDNSЧитальный залИстория IT
«Мой адрес не дом и не улица,
Мой адрес сегодня такой:
www.leningrad.spb.ru».
В 2002 году всем было очевидно, что адрес интернет-сайта или электронной почты должен быть записан именно латиницей. Ну не бывает же не-ASCII-символов в названии домена! А сейчас возможны варианты. Уже 10 лет наряду с латинскими символами в доменах верхнего уровня используются символы национальных алфавитов: от китайских и корейских иероглифов до кириллицы и арабской вязи. Под катом — о том, как это стало возможным, как осуществляется поддержка символов Unicode в доменных именах и как обстоят дела с кириллическими адресами в интернете.

Зачем нужны доменные имена на разных языках

Сегодня интернетом пользуются более 4,5 млрд человек, и к нему подключается всё больше людей из развивающихся стран Африки, Азии, Латинской Америки. Их население сталкивается сразу с несколькими проблемами: это отсутствие доступа в интернет, нехватка контента на национальных языках и — особенно это актуально для Юго-Восточной Азии и арабских стран — незнание латинского алфавита, который необходим для поиска нужных ресурсов. При этом технические проблемы решаются быстрее социальных: так, мобильными сетями уже пользуются 5,19 млрд человек, то есть интернету есть куда расти.
Чтобы снизить порог входа во Всемирную сеть, ещё в середине 2000-х в ICANN (Корпорация по управлению доменными именами и IP-адресами, Internet Corporation for Assigned Names and Numbers) возникла идея разрешить использование национальных алфавитов в доменной адресации. С одной стороны, это должно сохранить культурное и языковое разнообразие в интернете, а с другой — дать импульс росту интернет-индустрии в развивающихся странах.

Первые шаги к Unicode

На заре интернета никто не думал о важности использования национальных языков. Необходима была система адресации, и в её основу легла таблица символов ASCII — латинский алфавит, цифры от 0 до 9 и дефис. С ростом числа пользователей интернета ещё в середине 90-х в работе Internationalization of Domain Names была впервые описана идея интернационализированных доменных имён, но тогда это предложение не было реализовано.
Для поддержки национальных алфавитов необходимо было проработать систему доменной адресации, поддерживающую нелатинские символы — IDN (Internationalized Domain Names). Для этого логично было перейти на Unicode, содержащий символы большинства языков мира. Однако система доменных имён (DNS) исторически обрабатывает только ASCII-символы. Систему DNS, а вместе с ней и всё ПО, так или иначе связанное с интернетом, невозможно в одночасье перевести на Unicode. Поэтому пришлось идти на временные компромиссы.
Чтобы на данном этапе ничего не менять кардинально, задачу решили через разработку представления ASCII compatible encoding и алгоритма кодирования Unicode-символов, описанного в RFC 3492. Алгоритм Punycode преобразует каждую из частей имени домена, записанную на национальном языке, в последовательность ASCII-символов, прибавляя к ней префикс xn--. Его работа описана в стандарте IDNA 2008.

Универсальное принятие

Глобальные нововведения — IDN, EAI (Email Address Internationalization, поддержка адресов электронной почты на национальных языках), New gTLD — требовали не только изменений в системе адресации, но и адаптации новых стандартов в интернет-ориентированных приложениях, устройствах и системах. Для продвижения этих преобразований была разработана концепция универсального принятия (Universal Acceptance, UA), в которой сформулирована и поставлена задача обеспечить корректное принятие, проверку, обработку, отображение и хранение всех допустимых доменных имён и почтовых адресов, в том числе на национальных языках, и новых доменов общего пользования. Для этого разработчикам необходимо добавить в свои интерфейсы поддержку Unicode, строк длиной до 256 символов, написания справа налево для арабских языков, а также отключить лишние проверки на соответствие введённых адресов старым стандартам.
С появлением первых стандартов началось преодоление этого технического барьера, и в 2009 году ICANN запустила ускоренную процедуру (Fast Track) регистрации национальных IDN-доменов. Так появились первые IDN-домены верхнего уровня, в том числе .РФ. А в начале 2012 года ICANN открыла первый раунд регистрации и сформулировала правила подачи заявок на New gTLD (так появились домены верхнего уровня — .MOSCOW, .МОСКВА и др.). С этого момента стало возможным зарегистрировать новый домен верхнего уровня общего назначения из трёх и более латинских или нелатинских символов.
Для достижения конечной цели — корректной работы со всеми новыми вариантами доменов и почтовых адресов — должны измениться не только стандарты, по которым строится интернет, но и ПО, разработанное на основе этих стандартов, а заодно устаревшие стереотипы о том, что нет других доменов, кроме .com, .net, .org и национальных. Если мы говорим о доменных именах, поддержка IDN и New gTLD должна быть интегрирована в браузеры, а также серверное ПО, проверяющее корректность ввода адреса, например, в поисковых запросах. С новыми правилами регистрации доменов верхнего уровня уже нет смысла проверять, что метка такого домена содержит не более трёх ASCII-символов или что она присутствует в некотором закрытом «белом» списке, как это было ранее. Список доменов верхнего уровня теперь динамичен, а в самих доменах могут присутствовать нелатинские символы.
Проблемами универсального принятия занимаются технические специалисты по всему миру, в том числе крупнейшие интернет-корпорации. Но некоторые сложности, затрудняющие развитие адресации на национальных языках, всё ещё остаются. Яркий пример — при репосте страницы с сайта с кириллическим адресом в Facebook его адрес будет преобразован в ASCII в соответствии с RFC 3492, так что многие пользователи вынуждены вставлять такие ссылки картинками (чтобы отображался оригинальный адрес на кириллице).

Группа по универсальному принятию

Сопровождением и развитием концепции UA занимается Группа управления по универсальному принятию (Universal Acceptance Steering Group), включающая более 450 участников со всего мира. Вместе с Apple, Google, Microsoft и другими гигантами в неё входят и российские организации, такие как Координационный центр доменов .RU/.РФ. Группа была создана в начале 2015 года. Её основная задача — помочь разработчикам ПО во внедрении существующих стандартов и обновлении их систем для универсального принятия IDN, EAI и New gTLD.
Поддержкой универсального принятия на «местном» уровне занимаются региональные организации и локальные инициативы. Совместными усилиями они способствуют более широкой адаптации новых стандартов. На конец 2018 года в мире было зарегистрировано уже порядка 9 млн IDN-доменов второго уровня. С 2017 года их число выросло на 20%.
Лидером среди всех IDN-доменов является Китай, и это и неудивительно — китайский язык второй по популярности в интернете, на нём говорит чуть менее 20% интернет-пользователей по всему миру. В общей сложности в Китае зарегистрировано 3,9 млн IDN-доменов, примерно 1,7 млн из них — на IDN-доменах верхнего уровня .中国 (упрощённый вариант) и .中國 (традиционный). А вот на втором месте по количеству зарегистрированных имён второго уровня — наш домен .РФ. Причём, в отличие от китайцев, у которых большинство зарегистрированных доменов лишь переадресуют пользователя на сайт с англоязычным доменом, у нас для переадресации используются лишь 10% доменов, а остальные являются самостоятельными ресурсами.

10 лет домену .РФ

Вопрос появления кириллицы в интернете начал прорабатываться ещё с 2007 года, а в 2008-м на конференции ICANN32 в Париже было принято предварительное решение о создании нового домена .РФ. На тот момент было зарегистрировано всего 22 gTLD-домена верхнего уровня (.COM, .EDU и т. п.) и около 200 национальных двухбуквенных доменов на латинице, в том числе .RU.
Приоритетная регистрация доменов второго уровня в зоне .РФ началась в 2009 году — сначала для государственных органов, а потом для обладателей товарных знаков и СМИ. Часть потенциальных доменов попала в предварительный стоп-лист, в качестве которого использовался словарь ненормативной лексики и обсценных выражений. Неожиданно запрещёнными оказались «фуфло», «хохотунчик» и другие жаргонизмы, о чём сразу стало известно на Хабре.
12 мая 2010 года первая кириллическая доменная зона .РФ появилась официально. О ее создании было объявлено практически одновременно с еще тремя зонами для стран арабского мира: Египта, ОАЭ и Саудовской Аравии.
Первыми были зарегистрированы сайты президент. рф и правительство.рф. А открытая регистрация доменов в этой зоне началась 11 ноября 2010 года. Только за первые сутки было зарегистрировано 240 тыс. доменов. Конечно, далеко не все из них действительно планировалось использовать под реальные задачи: как раз тогда начался период активного ведения бизнеса в интернете, и желающих нажиться на новом домене было немало.
За 10 лет в зоне .РФ зарегистрировано 730 тыс. доменных имён. Чуть больше четверти (26%) зарегистрированы за последний год. 0,8% из них существует с 2010 года. Для сравнения: в домене .RU за 26 лет работы зарегистрировано порядка 5 млн доменных имён, 96% из них делегированы.
Интересно, что хотя для латинских доменов верхнего уровня стандарт не запрещает регистрировать домены второго уровня на национальном языке, в российских национальных доменах принято жёсткое разделение: в .RU регистрируются только имена на латинице, а в .РФ — на кириллице. Так, среди нелатинских доменов второго уровня, зарегистрированных в .COM, лидируют имена с символами китайского (46%), корейского (12,5%) и кириллического алфавитов (4,2%).

Кириллические домены сейчас

В общей сложности сегодня существует 17 кириллических доменов верхнего уровня, четыре из них — российские (.РФ, .ДЕТИ, .РУС и. МОСКВА). Лидирует домен .РФ, а его ближайший иностранный конкурент — .БЕЛ (Беларусь), где к середине 2020-го набралось около 14 тыс. регистраций. В других странах количество зарегистрированных доменов второго уровня пока не достигает 10 тыс.
Причины разные. Например, Сербия получила кириллический домен верхнего уровня ещё в 2011 году, но в быту в стране всё активнее используется латинская письменность. На сегодняшний день в зоне .СРБ зарегистрировано чуть менее 2,5 тыс. доменов второго уровня. Это в 50 раз меньше количества доменов, зарегистрированных в зоне .RS (сербский национальный домен верхнего уровня на латинице).

Не только адрес: электронная почта на русском

Помимо поддержки адресации для сайтов на национальных языках универсальное принятие подразумевает присутствие национальных символов в адресах электронной почты.
Поддержка адресов электронной почты на национальных языках была стандартизирована ещё в 2013 году (список стандартов есть по ссылке), но масштабно эта технология пока не работает — доставка сообщений возможна только между системами, поддерживающими новый стандарт, а их пока немного.
Сложность поддержки национальных символов в адресах электронной почты заключается в том, что для двух частей адреса необходимо использовать разные подходы.
Предположим, у нас есть адрес «логин@имядомена», записанный национальными символами. Имя домена IDN преобразуется при помощи ASCII compatible encoding. Но логин пользователя на сервере записывается в Unicode, поскольку для локальной части нельзя применять те же правила преобразования, что и для доменного имени (адрес с кириллическими символами и адрес с латинскими символами, полученными алгоритмом Punycode из кириллических, — это разные адреса).
Чтобы разрешить символы Unicode в локальной части электронного адреса, необходимо было изменить формат заголовка электронного письма. Как минимум, в заголовок должны корректно включаться адреса отправителя и получателя. И если новый заголовок не поддерживается одним из почтовых серверов, использующихся для доставки письма, оно не будет доставлено.
В отличие от доменной адресации, где есть чёткая DNS-иерархия, в почтовой всё зависит от разрозненных почтовых серверов с их собственной политикой настроек. И к нестабильной доставке почты ведёт тот факт, что каждый разработчик сам определяет детали поддержки кириллических символов. В итоге полностью кириллические почтовые адреса поддерживают лишь 19% российских сайтов. Кстати, это не так мало — мы на втором месте по уровню поддержки интернационализированных почтовых адресов в мире (на первом — Германия, 28%).
Gmail поддерживает интернационализированные адреса с 2014 года. Зарегистрировать почтовый адрес с логином на кириллице там нельзя, но Gmail распознаёт адреса с диакритическими знаками и нелатинскими символами при обмене электронными сообщениями. Это значит, что с ящика на Gmail можно написать на адрес имя@домен.рф, получить ответ с этого ящика, и вы не получите сообщение об ошибке. Кстати, с 2016 года работает @Почта.рус — сервис регистратуры соответствующего домена верхнего уровня, где уже можно завести себе кириллический адрес.
С 2019 года поддержку кириллицы реализовал Microsoft в своём Exchange и Outlook. Также кириллица поддерживается в Postfix, начиная с 3-й версии, и Courier Mail Server c 2018 года. На macOS X кириллица есть в MailMate, начиная с 1.9.4. Почтовые клиенты под мобильные устройства Android и iOS также готовы к работе с национальными символами.
Для полной поддержки Unicode в доменных именах и адресах электронной почты предстоит сделать ещё очень много. И ускорить эту работу может запрос со стороны пользователей.
Для популяризации идеи UA в нашей стране в апреле 2020 года к юбилею национального кириллического домена Координационный центр доменов .RU/.РФ запустил проект для технических специалистов Поддерживаю.РФ. Цель проекта — помочь включить поддержку доменных имён и адресов электронной почты на национальных языках во всех сетевых программных продуктах и коммуникациях. На этом ресурсе уже опубликованы Методика тестирования ПО на поддержку IDN и Рекомендации по внедрению поддержки кириллицы, а также есть список ПО и сервисов с указанием их текущего статуса поддержки IDN/EAI.
Теги:PunycodeIDNICANNRFC 3492.РФ
Хабы: Администрирование доменных имен DNS Читальный зал История IT
+47
16,9k 50
Комментарии 81