Hlavní navigace

IDN druhé generace

 Autor: 29
Pavel Satrapa 7. 10. 2010

Internationalized Domain Names (IDN) je princip, který umožňuje používat v doménových jménech znaky národních abeced. Jeho první specifikace vyšla v roce 2003 a rychle se dočkala nasazení v řadě domén nejvyšší úrovně – z našich sousedů například v Polsku, Německu a Rakousku. Jako obvykle se postupem času ukázaly některé slabiny původního návrhu, který se letos o prázdninách dočkal své druhé verze. Podívejme se, co se změnilo.

Nebudu zde rozepisovat, co a jak IDN dělá. Pokud vám tato oblast nic neříká, dovolím si vás odkázat na svůj zdejší starší článek, který vás uvede do problematiky původní verze, která je dnes označována jako IDNA2003 podle roku vydání RFC 3490 a spol. (Závěrečné „A“ ve zkratce pochází z „IDN for Applications“.)

Jaké byly důvody pro její změnu? Asi nejvýznamnější byla nepružnost původního návrhu, který se snažil definovat vše pod jednou střechou. Měnící se prostředí, zejména nové verze Unicode s postupně se rozšiřujícím sortimentem definovaných znaků, vedly k tomu, že postupně rostla skupina znaků stojících mimo původní IDN. Kromě toho – přestože se o nich oficiální důvody nezmiňují – svou roli nepochybně sehrála i rizika způsobená záměnou podobných znaků, s nimiž se původní návrh nedokázal důsledně vypořádat.

Práce na nové generaci IDN byly zahájeny v roce 2008, proto bývá označována jako IDNA2008. Do podoby RFC dospěla letos v srpnu. Tvoří ji následující rodinka dokumentů:

  • RFC 5890 – celkový přehled a definice základních pojmů
  • RFC 5891 – protokol
  • RFC 5892 – znaky a pravidla jejich použitelnosti
  • RFC 5893 – speciální pravidla pro jazyky psané zprava doleva
  • RFC 5894 – zdůvodnění a komentáře k jednotlivým rozhodnutím
  • RFC 5895 – doporučení pro mapování znaků v aplikacích před vstupem do IDN, formálně není součástí protokolu

IDNA2003 zahrnovalo kompletní zpracování doménového jména – výchozí Unicode řetězec byl rozdělen na jednotlivé jmenovky, znaky byly mapovány podle pravidel Nameprep, následně byly jmenovky zakódovány funkcí toASCII využívající algoritmus Punycode do podoby, která splňuje omezení pro doménová jména a lze ji uložit a poptávat ve stávajícím DNS. Při prezentaci doménového jména uživateli pak následoval zhruba opačný proces.

IDNA2008 mění především počáteční fáze celého postupu. Rozdělení výchozího řetězce znaků na jednotlivé jmenovky a případné mapování znaků vysunuje zcela mimo IDN. To na svém vstupu očekává sekvenci jmenovek, které mohou obsahovat znaky mimo základní ASCII. V oficiální terminologii se pro ně používá pojem U-jmenovky (U jako Unicode).

Přípravné práce má vykonat aplikace, pravděpodobně s podporou nějakých systémových funkcí. RFC 5895 poskytuje pouze doporučení, jak by zhruba mapování mělo probíhat (ve stručnosti: převést velká písmena na malá, provést dekompozici znaků podle databáze Unicode, mapovat znaky podle pravidel normalizovaného tvaru C Unicode).

Exkomunikace mapování z jádra IDN je dvousečná zbraň. Na jedné straně umožňuje se přizpůsobovat vývoji a respektovat specifika jednotlivých jazyků, na straně druhé hrozí nekonzistence jeho výsledků. Autoři jsou nicméně přesvědčeni, že toto je ta správná cesta.

Vlastní IDN na vstupu pouze zkontroluje jeho výsledky – zda jmenovky obsahují přípustné znaky. Tuto část má na starosti RFC 5892 a je definována nepochybně lépe. Uplatněním sady pravidel je každému znaku přiřazena jedna ze čtyř vlastností:

  • Platný (PVALID) je znak, který lze používat v U-jmenovkách. (Mohou se na něj vztahovat ale případná další pravidla, která omezí jeho použití.) Typickým příkladem znaků s touto vlastností jsou malá písmena (včetně těch s diakritickými znaménky) a číslice.

  • Kontextově závislý (CONTEXTJ nebo CONTEXTO) je znak, jehož přípustnost závisí na okolí – smí se vyskytovat jen v určitém kontextu. Ten musí být popsán pomocí omezujících pravidel, jejichž splnění IDNA kontroluje. Jen hrstka znaků je kontextově závislých, například znaky řídící spojování či nespojování okolních znaků.

  • Nepřípustný (DISALLOWED) je znak, který v U-jmenovkách nemá co dělat. Patří sem nepísmenné znaky jako interpunkční znaménka, oddělovače, „obrázkové“ znaky (srdíčka, šipky), ale i velká písmena nebo slitky.

  • Nepřiřazený (UNASSIGNED) je takový kód, kterému v dané verzi Unicode není přiřazen žádný význam.

RFC 5892 normativně popisuje pravidla, která jednotlivým znakům na základě jejich Unicode vlastností přiřadí čtyři výše uvedené vlastnosti. V příloze obsahuje výsledky jejich uplatnění na Unicode verze 5.2. Až vyjde nová verze Unicode, určený expert provede totéž a výsledky uplatnění pravidel budou zveřejněny na stránce s IDNA parametry. Jelikož jsou pravidla obecná, IDNA2008 se snadno vyrovná s rozrůstáním znakové sady.

Zatímco IDNA2003 bylo na vstupu liberální a zpracování řetězce si vyřešilo samo, nové IDNA2008 je velmi vybíravé a řadu problémů řeší kontrolou vstupu. Obsahuje-li jmenovka nepřípustné znaky, nepřiřazené znaky nebo kontextové znaky, u nichž nebylo splněno pravidlo, odmítne ji.

Tento přístup řeší několik problémů v jednom. Zákaz velkých písmen například usnadňuje vzájemné porovnávání jmenovek. To musí provádět servery a podle pravidel DNS nemají rozlišovat malá písmena od velkých (Lupa.cz je totéž co lupa.cz). Pro znaky národních abeced by ovšem takové porovnání vyžadovalo od serveru znalosti nad rámec původního DNS. Proto IDNA2008 velká písmena jednoduše vyloučilo ze hry, IDN jmenovky smí obsahovat jen malá a díky tomu je lze porovnávat velmi snadno.

Vstupním omezením se zároveň minimalizují potíže se záměnou znaků. Většina těch, které způsobovaly problémy (zejména ty vážné, jako znaky podobné tečce nebo lomítku) je dnes nepřípustných a do IDN se vůbec nedostane. Nemůžete si samozřejmě registrovat doménu s nepřípustným znakem ve jméně.

Záměna přesto není zcela vyloučena, protože zůstaly některé podobné znaky národních abeced. Například řecké „omikrón“ se dost podobá latinkovému „o“ (ο versus o). Tento problém mohou omezit registrační pravidla jednotlivých domén, která omezí znakovou sadu podle potřeb daného jazyka. Například není důvod, aby doména pl či de povolovala ve jménech poddomén řecké znaky. V gr už tak snadno neuniknou. Kromě toho nová generace IDN požaduje, aby klienti při zobrazování doménových jmen vizuálně upozornili (například barvou) na případné mísení znaků z různých skriptů a varovali tak uživatele před hrozící záměnou.

Po vstupní prohlídce už v IDNA2008 běží vše velmi podobně jako v jeho předchůdci. Opět přijde ke slovu algoritmus Punycode, který U-jmenovku zakóduje do ASCII podoby označované jako A-jmenovka (v IDNA2003 se jmenovala ACE). V té s ní pak pracuje DNS zcela standardním způsobem, protože splňuje veškerá jeho omezení. Punycode je jediným prvkem IDNA2003 převzatým beze změny do nové generace.

Změna přístupu ke vstupnímu textu vede ke dvěma nekompatibilitám mezi oběma verzemi IDN. Německé „ostré s“ (ß) se v IDNA2003 mapovalo na dvojici obyčejných „s“, zatímco v IDNA2008 je přípustným znakem. Naštěstí je německojazyčné domény nepřipouštějí. Je docela paradoxní, že si můžete registrovat doménu ořech.de, nikoli však nuß.de, ale teď se to velmi hodí.

Druhý problém je s řečtinou, kde se koncové sigma (ς) původně mapovalo na obyčejné sigma (σ), zatímco nově se opět jedná o přípustný znak. Řekové je v doménových jménech připouštějí, takže teď hrozí, že příslušná jména budou jinak zakódována podle IDNA2003 a jinak podle IDNA2008. Nicméně tento problém jistě půjde vyřešit nasazením vhodných aliasů (CNAME) do domény gr. Konsorcium Unicode kromě toho připravilo UTS #46, které definuje mapování znaků před vstupem do IDNA tak, aby se během přechodné fáze od IDNA2003 k IDNA2008 odstranily problémy s kompatibilitou obou verzí.

Nová generace IDN se samozřejmě zabývá technickými aspekty a nijak neřeší politické otázky kolem něj. (Aneb má mít držitel domény lupa.cz přednostní právo na doménu lupá.cz, a případně za jakých podmínek?) Ovšem už jenom díky tomu, že omezuje možnosti jeho zneužití, by bylo záhodno, aby co nejdříve nahradilo svého předchůdce.

Anketa

Zaregistrovali byste si doménu s některým z nově povolených znaků?

Našli jste v článku chybu?

7. 10. 2010 14:25

Ostatne moji japonsti a cinsti kamaradi maji vizitky oboustranne. Na jedne strane clovek neprecte ani jmeno ;-)

Druha je v aglictine.

7. 10. 2010 10:02

Kdyby to tak bylo od začátku, asi bych se nevzpíral. Ale když už se podařilo zavést (i do těch zemí bez latinky) internet s doménami v ASCII podobě, pak to byl velký úspěch jednoduchého standardu, od kterého je škoda ustupovat. Problémy s tím podle mého budou asi tyto:
- bezpečnostní riziko - záměny podobných znaků, různá přesměrování (neznalý jazyka nemůže rozpoznat např. na jakou čínskou stránku odkaz vlastně vede)
- nedostupnost - ze spousty míst budou ty domény nedostupné - např. číňan v evr…

Měšec.cz: Vklad na cizí účet je draze zpoplatněn (přehled)

Vklad na cizí účet je draze zpoplatněn (přehled)

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Digi CZ výrazně zlevnila balíček HBO

Digi CZ výrazně zlevnila balíček HBO

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Root.cz: Chytré hodinky Pebble úplně končí

Chytré hodinky Pebble úplně končí

Měšec.cz: Platby do zahraničí: pozor na tučné poplatky

Platby do zahraničí: pozor na tučné poplatky

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

DigiZone.cz: HD programy ČT i v UPC Horizon

HD programy ČT i v UPC Horizon

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

Root.cz: Telegram spustil anonymní blog Telegraph

Telegram spustil anonymní blog Telegraph

Vitalia.cz: Nahradí sluch, ale zvuk je zcela jiný

Nahradí sluch, ale zvuk je zcela jiný

Měšec.cz: Banky mlží o nákladech na předčasnou splátku hypotéky

Banky mlží o nákladech na předčasnou splátku hypotéky

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Podnikatel.cz: 3, 2, 1..EET startuje. Na co nezapomenout?

3, 2, 1..EET startuje. Na co nezapomenout?

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Měšec.cz: Europlatby: někde bez poplatku, jinde i 350 Kč

Europlatby: někde bez poplatku, jinde i 350 Kč

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání