Domännamn: att få Å, Ä och Ö på rätt ställe Johan Ihrén Översikt av IDN-problemet Är detta så viktigt? Extremt kort historik. Var är vi nu? Exempel på problematiken Sammanfattning av status för aktuell IDN design 21/10 2000 Johan Ihrén 2 1
Varför är detta viktigt? Kollisioner i namnrymden: www.habo.se eller www.håbo.se? Betydelseändringar: www.ölyckeby.se eller www.olyckeby.se? Namn är alltid viktiga saker: johani@ihrén.se, www.söderkåkar.se Dessutom alltfler kommersiella aspekter... 21/10 2000 Johan Ihrén 3 Kort historik och aktuell situation DNS är en (av flera) grundpelare för dagens Internet. Definierades medan Internet fortfarande var mest USA (roten till dagens problem ;-) Kritiskt för det mesta--får inte gå sönder! Norrmännen har en poäng i "Internett"! 21/10 2000 Johan Ihrén 4 2
Vad är DNS? DNS är sannolikt världens största distribuerade databas DNS är ett protokoll för frågor till och svar från denna databas ofta blandas dessa saker ihop Filformatet för DNS-data är ett standardiserat, enkelt redigerbart textformat 21/10 2000 Johan Ihrén 5 Vad är Unicode? en tabell över glyfer från olika skriftspråk samt regler för normalisering, konverteringar, etc inte en teckenkod UTF8 är en teckenkod som representerar glyferna i Unicode med en eller flera oktetter Det finns även teckenkoder med konstant antal oktetter/glyf Glyfer kan identifieras som (t ex) U+0131 ("i") 21/10 2000 Johan Ihrén 6 3
Gällande krav på domännamn Ett domännamn består av en eller flera delar, åtskiljda av ". " Varje del i ett s.k. "hostname" får endast innehålla tecknen [a-za-z0-9] samt "-" Inskränkningen gäller tillåtna namn, protokollet kan transportera alla bytevärden t.o.m. 255 Vid jämförelse skall versaler och gemener anses vara lika, dvs www.bolag.se = www.bolag.se 21/10 2000 Johan Ihrén 7 Målet med IETF IDNwg är att kunna använda internationella tecken i de applikationer som använder domännamn som del i sin addressering t ex SMTP och HTTP inte att kunna använda internationella tecken i protokollet det skulle gå, eftersom protokollet är "åttabitarsrent", men det är fel problem 21/10 2000 Johan Ihrén 8 4
Problem: normalisering En teckensträng kan vara skapad ur olika sekvenser av tecken. Trivialt exempel: det svenska ordet kök : k + ö + k k + o + + k combining diaresis, U+0308 Det kan bli betydligt mer komplicerat... 21/10 2000 Johan Ihrén 9 Problem: in- och utmatning Hur matar man in en koreansk URL på ett svenskt tangentbord? Hur skall en glyf från ett främmande skriftspråk presenteras? Extra problem: samma glyf finns ibland på olika position i flera olika teckenuppsättningar Om detta tillåts: hur veta vilken som avses vid inmatning? 21/10 2000 Johan Ihrén 10 5
Problem: konvertering mellan versaler och gemener Ihrén.se och ihrén.se måste vara samma sak Olika språk gör detta olika Exempel: Turkiskt stort I med prick i (litet i med prick) Turkiskt stort I utan prick i (litet i utan prick) Svenskt stort I utan prick i (litet i med prick) Dessutom finns det tecken som är så trassliga att de inte kan tillåtas (skiljetecken, osynliga, lika,...) 21/10 2000 Johan Ihrén 11 Problem: omöjligt att separera DNS från annat Alla frågor måste kunna styras rätt från roten Alltså måste alla root-nameservrar alltid ha samma regler Andra protokoll använder domännamn Exempel: SMTP är beroende av domännamn med ett tecken per oktett Exempel: HTTP tillåter diverse tecken i en URL, vilket direkt påverkar tillåtna tecken i IDN 21/10 2000 Johan Ihrén 12 6
Lokala lösningar? Varför kan man inte införa en temporär lösning för Sverige och byta sedan? Samma regler för alla root-nameservrar Nameservrar för www.bolag.se kan vara varsomhelst Inga flaggdagar--patienten sprattlar och kan ej ens lokalbedövas Fragmentering i olika DNS-öar uteslutet 21/10 2000 Johan Ihrén 13 Omkodning? Genom att koda en internationell sträng som ASCII slipper man förändra protokollet Cachande DNS-servrar fortsätter fungera Applikationsprotokoll som SMTP märker inget Om protokollet inte ändras, vad återstår då? Allt det svåra... Normalisering, konvertering, etc... Uppdatering av applikationer 21/10 2000 Johan Ihrén 14 7
Var skall man stoppa in IDN? Klientapplikation, resolver, nameserver,...? applikation DNS-server DNS-server resolver resolver cachande server resolver auktoritativ server 21/10 2000 Johan Ihrén 15 Vilka krav bör man ställa på IDN? Teknisk infrastruktur kontra funktionskrav I grunden är det ointressant för slutanvändare hur lösningen fungerar, bara det ser ut som internationella tecken i URLar, mailaddresser, etc Viktigt att tänka på att domännamn förekommer i fler protokoll än DNS 21/10 2000 Johan Ihrén 16 8
IDN Requirements Draft Genomgång av de krav som ställs på IDNproblemets tekniska lösning för att den skall accepteras av IETF Draft i princip färdig, de svåra nötterna är knäckta 21/10 2000 Johan Ihrén 17 Krav på IDN #1 (allmänt) Inte skada nuvarande DNS En enda, global, konsistent namnrymd Fungera ihop med DNSSEC, IPv4, IPv6 DNS-data skall förbli enkelt redigerbart Unicode rekommenderas ASCII-tecken skall inte förändras 21/10 2000 Johan Ihrén 18 9
Krav på IDN #2 (serverstruktur) En namnuppslagning måste alltid ge samma svar oavsett inställningar i resolver, master server, slav server och cachande server Cachande servrar skall inte behöva begripa IDN Cachande servrar får inte ge respons som inte en auktoritativ server skulle ha gett till samma fråga 21/10 2000 Johan Ihrén 19 Krav på IDN #3 (normalisering) Konvertering mellan versaler och gemener måste vara exakt Konvertering skall ske på en entydig plats i namnuppslagningskedjan Konvertering får inte vara localeberoende Konvertering från det användaren matar in till det som slås upp i DNS måste alltid ske på identiskt vis 21/10 2000 Johan Ihrén 20 10
IDN NamePrep Draft "name preparation" (inför uppslagning): Kontroll av förbjudna tecken Konvertering till gemener Normalisering Skicka vidare för namnuppslagning Draft inte färdig, men på god väg 21/10 2000 Johan Ihrén 21 IDN RACE Draft "Row-based ASCII Compatible Encoding" Egenskaper: Exakt ett sätt att konvertera en internationell namndel till och från RACE Namndelar utan internationella delar förändras inte RACE-strängar uppfyller kraven på namndelar i DNS Identifieras via ett unikt prefix, t ex bq-- : www.bq--abuwq4xjny.com (aka www.ihrén.se) 21/10 2000 Johan Ihrén 22 11
Andra försök att införa internationaliserade domännamn.nu, NU-BIND i-dns.net (+ Network Solutions) diverse asiatiska projekt 21/10 2000 Johan Ihrén 23 Sammanfattning Trassligare än vad man kan tro Hela Internet måste välja samma lösning De tekniska detaljerna är nu kända (om än ej alltid implementerade) Det viktigaste är att fokusera på applikationerna, DNS-protokollet är bara transport... 21/10 2000 Johan Ihrén 24 12
Referenser RFC2825: A Tangled Web: Issues of I18N, Domainnames and... IDN Requirements draft-ietf-idn-requirements-nn.txt IDN Nameprep draft-ietf-idn-nameprep-nn.txt IDN RACE draft-ietf-idn-race-nn.txt 21/10 2000 Johan Ihrén 25 Min emailaddress: johani@cafax.se Denna presentation: Kontaktinfo http://www.cafax.se/~johani/talks/id2000-idn/ (fr o m imorgon) 21/10 2000 Johan Ihrén 26 13