URL'ens historie: Punycode gav os blåbærsyltetøy.no - men også et betydeligt sikkerhedsproblem

Illustration: Jirkaejc/Bigstock
Læs anden del i serien om, hvordan de forskellige dele af URL’en blev skabt.

I den første artikel i denne serie om URL’ens historie og de komponenter, den består af, var det stort set kun host- og domænenavnene, vi omtalte. I denne anden artikel i serien ser vi nærmere på blandt andet topdomæner og internationaliserede domænenavne.

Der, hvor vi sluttede sidste artikel, i 1982, var domænenavne blevet taget i brug, men der fandtes fortsat ikke noget centralt domænenavnssystem, som kunne oversætte (resolve) mellem domænenavne og IP-adresser.

Domain Name System

Selv om ideerne om et sådant system selvfølgelig var blevet luftet længe, var det først i november 1983, at specifikationen til det, vi i dag kender som DNS (Domain Name System), blev præsenteret. Specifikationen er skrevet af Paul Mockapetris, som sammen med Jon Postel opfandt DNS.

DNS er opsat som et hierarkisk system med 13 root servers. For brugere i Norge er den nærmeste Netnod i Sverige. Men som digi.no for nylig skrev, er der en kopi af både denne og mindst to andre i Oslo.

I denne artikel vil vi undersøge, hvordan DNS fungerer, samt fortælle om en detalje, der muligvis ikke er så kendt.

Nedenfor kan du se DNS-informationerne for www.digi.no og digi.no, hentet med værktøjet dig.

dig www.digi.no:
;; ANSWER SECTION:
www.digi.no. 2566 IN CNAME digi.no.
digi.no. 2030 IN A 87.238.60.136
digi.no. 2030 IN A 87.238.60.135 

I alle de tre linjer ovenfor er der en kolonne med teksten IN. I denne kolonne skal DNS-klassen vises. IN står for ‘Internet’. I henhold til specifikationen er mindst CH og HS også gyldige værdier. CH står for Chaosnet, som vi nævnte i den forrige artikel. Dette findes ikke længere. HS er en forkortelse for Hesiod, som var navnet på katalogtjenesten på Project Athena, som var et internt netværk hos MIT.

Topdomæner

Den sidste del af domænenavne som www.digi.no, dvs. .no, er det, der kaldes topdomæne eller topniveau-domæner - på engelsk ‘top level domains’ (TLD).

De mere konkrete ideer om at indføre et sådant topniveau synes også at stamme fra november 1983. Og igen præsenterede Jon Postel, som vi nævnte i den første artikel i denne serie, ideen. I en RFC (Request for Comments) skriver han blandt andet, at de første hosts på internettet vil være i domænet ‘ARPA’.

Han nævner også, at det næste topdomæne vil være DDN. I 1983 oprettede det amerikanske forsvarsministerium et nyt netværk, Defense Data Network (DDN), der var baseret på Arpanet-teknologi og blev opdelt i fire globale ‘undernet’ til forskellige niveauer af klassificeret information. Et af disse undernet var MILNET, der var til uklassificeret information.

I oktober 1984 præsenterede Postel og kollega Joyce Kathleen Reynolds det, der omtales som det første sæt topdomæner. Dette omfattede generiske topniveau-domæner som GOV, EDU, COM, MIL og ORG, de nationale topniveau-domæner, såsom NO, DK og USA, samt hvad der blev kaldt multi-organisatoriske domæner. Dette kan for eksempel være et fællesskab af organisationer, såsom universiteter, der er beliggende i forskellige lande.

I et notat som Postel skrev i marts 1994, var de generiske topdomæner blevet flere. NET og INT var blevet tilføjet. Ideen om multiorganisatoriske domæner ser ud til at være forladt, og Postel ser ud til at være klar over, at der ikke er behov for flere topdomæner.

Men der skulle gå lang tid, før der kom ideer frem til nye generiske domæner. Digi.no omtalte dette i 1997. De fleste af disse blev oprindeligt afvist, så kun BIZ, INFO og NAME blev tilgængelige den 1. oktober 2001.

Siden da har der imidlertid været mange flere godkendelser, og listen over Internet Assigned Numbers Authority (IANA), som Mr. Postel engang var chef for, består nu af mere end 1.500 domæner på topniveau, inklusive de nationale og infrastrukturer på topniveau-domæner såsom ARPA.

Internationalisering af domænenavne

Arpanet-teknologien, som internettet er baseret på, blev udviklet i USA for at imødekomme amerikanske behov. Dette betød, at domænenavne kun kunne indeholde tegn fra ASCII-tegnsættet (American Standard Code for Information Interchange). F.eks. kunne de særlige norske bogstaver æ, ø ikke bruges i domænenavne.

Nogle af de samme problemer gjaldt også selve webindholdet. Op til og med HTML 3.2 var det kun tegn, der var inkluderet i ISO-8859-1/Latin-1-tegnsættet, der var tilladt i HTML. Dette blev løst med HTML 4, som havde understøttelse af det universelle kodede tegnsæt (UCS), også kendt som ISO/IEC 10646. Dette er også kompatibelt med tegn med Unicode-standarden, der definerer UTF-8 - det tegnsæt, som i mange år klart har været det mest anvendte på nettet.

Fordi det er lettere at opdatere software såsom browsere og HTTP-servere end at erstatte alt gammelt netværksudstyr, der vedrører domænenavne, har det ikke været muligt at gøre noget lignende med hensyn til domænenavne. Ikke desto mindre er det nu muligt at bruge Unicode-tegnene i domænenavne.

Punycode

Før for eksempel Norid kunne begynde at godkende domænenavne med blandt andet norske bogstaver i februar 2004, som en del af det, der kaldes for IDN (Internationalized Domain Names), skulle en løsning findes. For domænenavne skal fortsat kunne gengives som ASCII-tegnene A-Z, 0-9 og - (bindestreg). Desuden er længden på domænenavnet fortsat begrænset til 63 tegn.

Løsningen blev noget, som fik det pudsige navn Punycode, som kan kode talværdierne, som Unicode-tegnene har, på en temmelig kompakt måde. Selv om browseren viser domænenavnet med Unicode-tegnene, så kodes der i baggrunden til Punycode. For at markere, at et domænenavn er gengivet i Punycode, bruges præfikset ‘xn--’.

Domenenavnet bøker.no bliver da til xn--bker-gra.no.

Også emojis er defineret som selvstændige Unicode-tegn og kan dermed bruges i domænenavne. Linket nedenfor fører brugeren til forsiden af digi.no via tjenesten Linkmoji.

http://🎉🌽🐯💯🍈♣🏳🦈.🍕💩.ws

Hvis du ser på denne artikels kildekode, kan du se, at adressen i linket herover er gengivet, akkurat som den vises. Men holder du cursoren over linket, kan du formentlig se, at adressen er ændret til: http://xn--e6h1669n7a4tlsfl03a07z.xn--vi8hiv.ws/

Homografisk sikkerhedsfælde

Der er et alvorligt sikkerhedsproblem knyttet til internationaliserede domænenavne, nemlig at en række tegn i forskellige alfabeter ligner hinanden til forveksling. Specielt de kyrilliske og latinske alfabeter. Ja, i nogle skrifttyper kan det være vanskeligt nok at se forskel på l og 1, og O og 0. Men i Source Sans Pro-fonten, som f.eks. bruges i brødteksten i digi.no-artiklerne for tiden, bør ikke det være et problem.

Værre er det at se forskel på de to links nedenfor:

www.wikipediа.org / www.wikipedia.org

Holder du cursoren over disse, kan du se, at den første oversættes til Punycode, mens den anden fører til Wikipedia. Forskellen på disse to er, at a’et i Wikipedia-domænet er byttet ud med en lille version af det første bogstav i det kyrilliske alfabet, а.

Det, at det er vanskeligt at se forskel på sådanne tegn, bliver ofte udnyttet af svindlere, ikke mindst via e-mail. Dette kaldes for homografiske eller homoglyfiske angreb. Hvis brugeren ikke kontrollerer, at linket ikke er i Punycode, ved at holde cursoren over det, er det vanskeligt at opdage, at man lokkes til et falskt website. På mobiltelefoner og tablets er det ofte endnu vanskeligere.

Dermed er vi færdige med domænenavnene. I næste artikel skal vi se på protokoller, og hvor // stammer fra. Et stikord for sidstnævnte er ‘Apollo’.

Denne artikelserie er inspireret af et blogindlæg, som Cloudflare publicerede i begyndelsen af marts.

Artiklen er fra digi.no.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (10)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#2 Henrik Dalsager

Chrome Version 81.0.4044.122 (Officiel version) (32-bit)

viser ikke Punicode ved mouse-over på URL'erne, den render emojis og lign. fuldstændig ens med linket i artiklen.

den Punicode på URL linjen -- men det er altså først, når man har fulgt linket.

  • 2
  • 0
#6 Axel Nielsen

Min Firefox i Catalina (FF 75) viser det rigtige link nederst til venstre I Fedora (FF 75) vises det samme sted...

Men temmeligt upraktisk at det ikke vises når man peger med cursoren, det må kunne programmeres om i indstillingerne...

  • 0
  • 0
#10 Leif Neland

Jeg mener at have læst at dk-hostmaster ikke tillader homogryffer, at man ikke kan få lov at registrere et navn med unødvendig kodning.

Jeg mener slet ikke man kan registrere xn-- navne, man registrerer æøå, og får så punikoden at vide.

Men jeg kan ikke lige finde kilden.

  • 0
  • 0
Log ind eller Opret konto for at kommentere