Kan­sain­vä­li­sen te­le­vies­tin­tä­lii­ton (ITU) mukaan yli kolme miljardia ihmistä käyttää in­ter­ne­tiä, ja yhä useammat heistä käyttävät sitä äi­din­kie­lel­lään. Tämä muutos johtui osittain kan­sain­vä­lis­ten verk­ko­tun­nus­ten käyt­töö­no­tos­ta vuonna 2003. Selitämme, miten IDN-verk­ko­tun­nuk­set toimivat.

Mikä on kan­sain­vä­lis­tet­ty verk­ko­tun­nus (IDN)?

IETF (Internet En­gi­nee­ring Task Force) mää­rit­te­lee IDN-verk­ko­tun­nuk­set verk­ko­tun­nuk­sik­si, jotka si­säl­tä­vät la­ti­na­lai­seen aak­kos­toon kuu­lu­mat­to­mia eri­kois­merk­ke­jä, kuten umlauteja tai muiden aak­kos­to­jen merkkejä. Verk­ko­tun­nus­ten (URL) kään­tä­mi­ses­tä IP-osoit­teik­si vastaava verk­ko­tun­nus­jär­jes­tel­mä (DNS) ei kui­ten­kaan tunnista näitä verk­ko­tun­nuk­sia. DNS perustuu ra­joi­tet­tuun ASCII-merk­ki­jär­jes­tel­mään.

Jotta IDN-nimet olisivat ym­mär­ret­tä­viä sekä DNS:lle että muille internet-pro­to­kol­lil­le, vuonna 2003 luotiin internet-standardi In­ter­na­tio­na­li­sing Domain Names in Applica­tions (IDNA). Se mää­rit­te­lee stan­dar­doi­dun muun­nok­sen Unico­des­ta ASCII-mer­kis­töön, mikä mah­dol­lis­taa muiden kuin ASCII-merkkien käytön verk­ko­tun­nuk­sis­sa.

Miten IDNA toimii?

Suuri osa in­ter­ne­tin infra­struk­tuu­ris­ta tukee ai­noas­taan ASCII-merkistöä. Jotta kan­sain­vä­li­set verk­ko­tun­nuk­set voidaan käsitellä, jokainen Unicode-muodossa oleva IDN kään­ne­tään ASCII-poh­jai­sek­si ACE-merk­ki­jo­nok­si. Tämän jälkeen URL-osoitteet, joissa on aksentti- tai umlaut-merkkejä, näytetään. Palvelin puo­les­taan jatkaa osoit­tei­den kä­sit­te­lyä ASCII-yh­teen­so­pi­vi­na. Tämä menettely on mää­ri­tel­ty IDNA2003-in­ter­nets­tan­dar­dis­sa ja vuonna 2010 hy­väk­sy­tys­sä IDNA2008-versiossa. Käännös Unico­des­ta ASCII:ksi tapahtuu asia­kas­puo­lel­la (se­lai­mes­sa, säh­kö­pos­tioh­jel­mas­sa jne.) ja perustuu stan­dar­doi­tuun koo­dauspro­ses­siin, jota kutsutaan Pu­nyco­dek­si.

Punycode

RFC 3492 -stan­dar­din mukainen Punycode ke­hi­tet­tiin Unicode-merk­ki­jo­no­jen selkeää esit­tä­mis­tä varten ASCII-merkeinä ilman laadun heik­ke­ne­mis­tä. Kaikki muut kuin ASCII-merkit pois­te­taan verk­ko­tun­nuk­ses­ta, koodataan ja erotetaan toi­sis­taan vä­li­vii­val­la. Tämä merk­ki­jo­no sisältää tietoja ky­sei­ses­tä Unicode-merkistä sekä sen si­jain­nis­ta verk­ko­tun­nuk­ses­sa. Lisäksi jokainen tällä tavalla luotu ACE-merk­ki­jo­no merkitään etu­liit­teel­lä xn–. Tämä selventää lukijalle, että merk­ki­jo­no on IDN, joka on koodattu IDNA- ja Punycode-stan­dar­dien mu­kai­ses­ti. Katso Punycode-ar­tik­ke­lis­tam­me yk­si­tyis­koh­tai­nen selitys koo­dauspro­ses­sis­ta sekä muutamia esi­merk­ke­jä.

Vinkki

Verkossa toimivan IDN-verk­ko­tun­nus­muun­ti­men avulla voit muuntaa IDN-verk­ko­tun­nuk­set vas­taa­vik­si ACE-merk­ki­jo­noik­si Punycode-koodin avulla.

IDNA2003:n ja IDNA2008:n väliset erot

Al­ku­pe­räi­ses­sä, vuonna 2003 käyttöön otetussa me­net­te­lys­sä kan­sain­vä­lis­te­tyt URL-osoitteet nor­ma­li­soi­tiin ennen Punycode-koodausta nameprep-me­ne­tel­mäl­lä. Tällä me­ne­tel­mäl­lä isot kirjaimet muu­tet­tiin pieniksi, oh­jaus­mer­kit pois­tet­tiin ja vastaavat merkit muun­net­tiin yh­te­näi­seen muotoon. Nameprep pois­tet­tiin tästä pro­ses­sis­ta, kun IDNA2008 otettiin käyttöön. Nykyään IDNA ei määrää mitään nor­ma­li­soin­tia. Sen sijaan se suo­sit­te­lee al­go­rit­mia, joka muuntaa isot kirjaimet pieniksi.

Tämä muutos palvelee myös sak­san­kie­li­sen maailman käyttäjiä, sillä Saksassa yleisesti käytetty Unicode-merkki ”ß” mää­ri­tel­tiin alun perin IDNA2003-stan­dar­din mu­kai­ses­ti vas­taa­maan merkkiä ”ss”. Tällaiset verk­ko­tun­nuk­set, kuten www.fußball-ergebnisse.de, nor­ma­li­soi­tiin siten au­to­maat­ti­ses­ti muotoon www.fussball-ergebnisse.de nameprep-prosessin yh­tey­des­sä. Näin ei enää tapahdu IDNA2008-stan­dar­din käyt­töö­no­ton jälkeen. Vuodesta 2010 lähtien ”ß” tulkitaan oikein ”la­ti­na­lai­sek­si pieneksi teräväksi s:ksi” ja se voidaan re­kis­te­röi­dä osana IDN-verk­ko­tun­nus­ta.

Lisäksi noin 8 000 merkkiä, jotka olivat sal­lit­tu­ja verk­ko­tun­nuk­sis­sa IDNA2003-stan­dar­din mu­kai­ses­ti, eivät enää ole tuettuja IDNA2008-stan­dar­dis­sa. Neljää merkkiä, mukaan lukien ”ß”, tulkitaan eri tavalla stan­dar­din tar­kis­tuk­sen jälkeen. Yk­si­tyis­koh­tai­nen kuvaus IDNA2003- ja IDNA2008-stan­dar­dien eroista löytyy Unicode Technical Standard #46 -stan­dar­dis­ta. Seu­raa­vas­sa tau­lu­kos­sa on yh­teen­ve­to tär­keim­mis­tä eroista:

IDNA2003 IDNA2008
Nameprep-menettely vaaditaan Nor­ma­li­soin­tia ei mää­ri­tel­ty
Voimassa Unicode 3.2:lle Voimassa Unicode-ver­siois­sa 5.2 alkaen
Tiukat säännöt oikealta va­sem­mal­le kir­joi­tet­ta­vil­le fonteille Sel­keäm­mät säännöt oikealta va­sem­mal­le kir­joi­tet­ta­vil­le fonteille
Isot ja pienet kirjaimet katsotaan eril­li­sik­si merkeiksi Isot kirjaimet muun­ne­taan pieniksi kir­jai­mik­si
Monet symbolit ovat kiel­let­ty­jä, esim. graafiset symbolit, jotka eivät kuulu mihinkään aak­kos­toon, sekä jotkut vä­li­mer­kit
Joidenkin Unicode-merkkien ”uu­del­leen­mää­rit­te­ly” on poistettu, koska se voisi johtaa epä­sään­nöl­li­syyk­siin

Mitä ongelmia IDN-osoit­tei­siin liittyy?

Tällä hetkellä kaikkien yleisten internet-ohjelmien pitäisi pystyä kä­sit­te­le­mään IDN-nimiä. Kan­sain­vä­lis­tet­ty­jen verk­ko­tun­nus­ten kanssa ilmenee kuitenkin toisinaan ongelmia, koska siir­ty­mis­tä IDNA2003-stan­dar­dis­ta IDNA2008-stan­dar­diin ei ole vielä to­teu­tet­tu joh­don­mu­kai­ses­ti. Yksi saksan kielelle on­gel­mal­li­nen esimerkki on merkin ”ß” erilainen tulkinta. Koska IDNA2003 muuntaa pa­kol­li­ses­ti merkin ”ß” merkiksi ”ss”, IDNA2008:n mu­kai­ses­ti re­kis­te­röi­tä­viä erityisiä ß-verk­ko­tun­nuk­sia ei usein löydy jär­jes­tel­mis­tä, jotka muuntavat van­hen­tu­neen stan­dar­din mu­kai­ses­ti. Sen sijaan käyttäjät ohjataan vas­taa­vaan verk­ko­tun­nuk­seen, joka sisältää merkin ”ss”. Tämä ongelma voidaan kiertää siten, että verk­ko­si­vus­to­jen yl­lä­pi­tä­jät re­kis­te­röi­vät molemmat variantit ja ohjaavat toisen verk­ko­tun­nuk­sen en­si­si­jai­sel­le kir­joi­tusa­sul­le verk­ko­tun­nuk­sen uu­del­lee­noh­jauk­sen avulla.

Siirry pää­va­lik­koon