Mikä on kansainvälistetty verkkotunnus (IDN)?
Kansainvälisen televiestintäliiton (ITU) mukaan yli kolme miljardia ihmistä käyttää internetiä, ja yhä useammat heistä käyttävät sitä äidinkielellään. Tämä muutos johtui osittain kansainvälisten verkkotunnusten käyttöönotosta vuonna 2003. Selitämme, miten IDN-verkkotunnukset toimivat.
Mikä on kansainvälistetty verkkotunnus (IDN)?
IETF (Internet Engineering Task Force) määrittelee IDN-verkkotunnukset verkkotunnuksiksi, jotka sisältävät latinalaiseen aakkostoon kuulumattomia erikoismerkkejä, kuten umlauteja tai muiden aakkostojen merkkejä. Verkkotunnusten (URL) kääntämisestä IP-osoitteiksi vastaava verkkotunnusjärjestelmä (DNS) ei kuitenkaan tunnista näitä verkkotunnuksia. DNS perustuu rajoitettuun ASCII-merkkijärjestelmään.
Jotta IDN-nimet olisivat ymmärrettäviä sekä DNS:lle että muille internet-protokollille, vuonna 2003 luotiin internet-standardi Internationalising Domain Names in Applications (IDNA). Se määrittelee standardoidun muunnoksen Unicodesta ASCII-merkistöön, mikä mahdollistaa muiden kuin ASCII-merkkien käytön verkkotunnuksissa.
Miten IDNA toimii?
Suuri osa internetin infrastruktuurista tukee ainoastaan ASCII-merkistöä. Jotta kansainväliset verkkotunnukset voidaan käsitellä, jokainen Unicode-muodossa oleva IDN käännetään ASCII-pohjaiseksi ACE-merkkijonoksi. Tämän jälkeen URL-osoitteet, joissa on aksentti- tai umlaut-merkkejä, näytetään. Palvelin puolestaan jatkaa osoitteiden käsittelyä ASCII-yhteensopivina. Tämä menettely on määritelty IDNA2003-internetstandardissa ja vuonna 2010 hyväksytyssä IDNA2008-versiossa. Käännös Unicodesta ASCII:ksi tapahtuu asiakaspuolella (selaimessa, sähköpostiohjelmassa jne.) ja perustuu standardoituun koodausprosessiin, jota kutsutaan Punycodeksi.
Punycode
RFC 3492 -standardin mukainen Punycode kehitettiin Unicode-merkkijonojen selkeää esittämistä varten ASCII-merkeinä ilman laadun heikkenemistä. Kaikki muut kuin ASCII-merkit poistetaan verkkotunnuksesta, koodataan ja erotetaan toisistaan väliviivalla. Tämä merkkijono sisältää tietoja kyseisestä Unicode-merkistä sekä sen sijainnista verkkotunnuksessa. Lisäksi jokainen tällä tavalla luotu ACE-merkkijono merkitään etuliitteellä xn–. Tämä selventää lukijalle, että merkkijono on IDN, joka on koodattu IDNA- ja Punycode-standardien mukaisesti. Katso Punycode-artikkelistamme yksityiskohtainen selitys koodausprosessista sekä muutamia esimerkkejä.
Verkossa toimivan IDN-verkkotunnusmuuntimen avulla voit muuntaa IDN-verkkotunnukset vastaaviksi ACE-merkkijonoiksi Punycode-koodin avulla.
IDNA2003:n ja IDNA2008:n väliset erot
Alkuperäisessä, vuonna 2003 käyttöön otetussa menettelyssä kansainvälistetyt URL-osoitteet normalisoitiin ennen Punycode-koodausta nameprep-menetelmällä. Tällä menetelmällä isot kirjaimet muutettiin pieniksi, ohjausmerkit poistettiin ja vastaavat merkit muunnettiin yhtenäiseen muotoon. Nameprep poistettiin tästä prosessista, kun IDNA2008 otettiin käyttöön. Nykyään IDNA ei määrää mitään normalisointia. Sen sijaan se suosittelee algoritmia, joka muuntaa isot kirjaimet pieniksi.
Tämä muutos palvelee myös saksankielisen maailman käyttäjiä, sillä Saksassa yleisesti käytetty Unicode-merkki ”ß” määriteltiin alun perin IDNA2003-standardin mukaisesti vastaamaan merkkiä ”ss”. Tällaiset verkkotunnukset, kuten www.fußball-ergebnisse.de, normalisoitiin siten automaattisesti muotoon www.fussball-ergebnisse.de nameprep-prosessin yhteydessä. Näin ei enää tapahdu IDNA2008-standardin käyttöönoton jälkeen. Vuodesta 2010 lähtien ”ß” tulkitaan oikein ”latinalaiseksi pieneksi teräväksi s:ksi” ja se voidaan rekisteröidä osana IDN-verkkotunnusta.
Lisäksi noin 8 000 merkkiä, jotka olivat sallittuja verkkotunnuksissa IDNA2003-standardin mukaisesti, eivät enää ole tuettuja IDNA2008-standardissa. Neljää merkkiä, mukaan lukien ”ß”, tulkitaan eri tavalla standardin tarkistuksen jälkeen. Yksityiskohtainen kuvaus IDNA2003- ja IDNA2008-standardien eroista löytyy Unicode Technical Standard #46 -standardista. Seuraavassa taulukossa on yhteenveto tärkeimmistä eroista:
| IDNA2003 | IDNA2008 |
|---|---|
| Nameprep-menettely vaaditaan | Normalisointia ei määritelty |
| Voimassa Unicode 3.2:lle | Voimassa Unicode-versioissa 5.2 alkaen |
| Tiukat säännöt oikealta vasemmalle kirjoitettaville fonteille | Selkeämmät säännöt oikealta vasemmalle kirjoitettaville fonteille |
| Isot ja pienet kirjaimet katsotaan erillisiksi merkeiksi | Isot kirjaimet muunnetaan pieniksi kirjaimiksi |
| Monet symbolit ovat kiellettyjä, esim. graafiset symbolit, jotka eivät kuulu mihinkään aakkostoon, sekä jotkut välimerkit | |
| Joidenkin Unicode-merkkien ”uudelleenmäärittely” on poistettu, koska se voisi johtaa epäsäännöllisyyksiin |
Mitä ongelmia IDN-osoitteisiin liittyy?
Tällä hetkellä kaikkien yleisten internet-ohjelmien pitäisi pystyä käsittelemään IDN-nimiä. Kansainvälistettyjen verkkotunnusten kanssa ilmenee kuitenkin toisinaan ongelmia, koska siirtymistä IDNA2003-standardista IDNA2008-standardiin ei ole vielä toteutettu johdonmukaisesti. Yksi saksan kielelle ongelmallinen esimerkki on merkin ”ß” erilainen tulkinta. Koska IDNA2003 muuntaa pakollisesti merkin ”ß” merkiksi ”ss”, IDNA2008:n mukaisesti rekisteröitäviä erityisiä ß-verkkotunnuksia ei usein löydy järjestelmistä, jotka muuntavat vanhentuneen standardin mukaisesti. Sen sijaan käyttäjät ohjataan vastaavaan verkkotunnukseen, joka sisältää merkin ”ss”. Tämä ongelma voidaan kiertää siten, että verkkosivustojen ylläpitäjät rekisteröivät molemmat variantit ja ohjaavat toisen verkkotunnuksen ensisijaiselle kirjoitusasulle verkkotunnuksen uudelleenohjauksen avulla.