PKI: Drømmen som brast? ======================= Sverre H. Huseby shh@thathost.com 2001-03-23 "Vil du kjøre denne ActiveX-komponent som er signert av Microsoft Corporation?" Det riktige svaret er heretter trolig "nei". Akk og ve! Slottet har rast! Alle visste at det var bygget på leirgrunn, men vi trodde av en eller annen grunn at leiren for en gangs skyld ville bli liggende. Det dreier seg om PKI, eller Public Key Infrastructure som det egentlig heter. Systemet som skulle gjøre e-handel sikkert. Måtte det nå få hvile i fred til noen finner opp en ordentlig løsning. 29. og 30. januar 2001 laget sertifikatutstederen VeriSign to nye sertifikater til Microsoft Corporation. Problemet var at Microsoft aldri hadde bedt om å få disse sertifikatene. En eller annen utga seg for å være en representant for Microsoft, og klarte på uforklarlig vis å overbevise VeriSigns saksbehandler. Social engineering deluxe. De to sertifikatene er beregnet på kodesignering. Kodesignering er en mekanisme som skal gjøre det trygt å kjøre programmer som er hentet ned fra Nettet. Mekanismen fungerer ved at programkoden er "undertegnet" med et sertifikat som eies av opphavsmennene til programmet. Dette sertifikatet er igjen undertegnet av sertifikatutstederen, eller "CA'en" som utstedte sertifikatet. Browseren din kjenner "underskriften" til en rekke sertifikatutstedere. Når det dukker opp et signert program, kan browseren sjekke at CA'ens signatur stemmer. Hvis den stemmer, betyr det igjen at opphavsmennenes signatur stemmer. Browseren kan dermed fortelle deg at: "Dette programmet er laget av XYZ. Vil du kjøre det?". Hvis XYZ er et velrenommert firma, vil det trolig være liten risiko forbundet med å kjøre programmet. Hvordan kan denne mekanismen gjøre det trygt å kjøre det signerte programmet? Jeg er veldig glad for at du stiller nettopp det spørsmålet. Sertifikatutstederen er tenkt å skulle være en autoritet som garanterer identiteten til programmets opphavsmann. En autoritet som vi velger å stole på. Her ligger selve problemet. Hvordan kan sertifikatutstederen garanterer identiteten? Alle sertifikatutstedere skal ha et dokument som beskriver på hvilken måte de kontrollerer at sertifikater utstedes til rett person eller organisasjon. Forhåpentligvis har de som laget browseren din lest disse dokumentene før de puttet CA'enes sertifikater inn i browseren. Browserprodusenten har på sett og vis bestemt at du skal stole på de innebygde sertifikatutstederne fordi de antas å være brukbare garantister. Nå har vi altså fått demonstrert at vi ikke bør stole på CA'ene allikevel. Og CA'en som fikk oss til å innse det, var selveste VeriSign, trolig den eldste, mest kjente og mest brukte av alle sertifikatutstedere i sitt slag. Hva er så den praktiske betydningen av alt dette teknopratet? Jo, de falske sertifikatene lar personen som har dem signere et hvilket som helst program med Microsoft sin signatur. De vil kunne lage all verdens virus og trojanske hester, og få brukere til å tro at disse ødeleggende programmene kommer fra selveste Microsoft. De fleste trykker gjerne "ja" på spørsmål om de vil kjøre et program fra verdens største programprodusent. For å unngå å bli lurt, må du klikke deg fram til detaljene i signaturen og sjekke utstedelsesdatoen på sertifikatet. Er det utstedt 29. eller 30. januar 2001, er det falskt. Det er imidlertid naturlig å lure på om dette er første gangen VeriSign eller andre CA'er har latt seg lure. Finnes det andre falske sertifikater? Hvordan beskytter vi oss isåfall mot dem? Alle som har jobbet med PKI vet at PKI er mer enn sertifikater. Det innebærer også sertifikathåndtering. Håndteringen inkluderer tilbakekalling av ugyldige sertifikater. Sånn sett skulle det ikke være noe problem, det er jo bare å kalle tilbake de falske sertifikatene. Jada. De falske sertifikatene er allerede tilbakekalt. Problemet er at det i praksis ikke finnes et eneste program som faktisk sjekker om sertifikater er tilbakekalt eller ikke. Microsoft jobber nå på spreng med å putte denslags funksjonalitet inn i Internet Explorer. Men det er selvsagt for sent. Det er lite som tyder på at allverdens databrukende mennesker nå vil oppgradere sin programvare til siste versjon i løpet av de neste ukene. Selv om lettlurte CA'er slår beina under hele nøkkelinfrastrukturen, er de langt fra det eneste problemet med PKI. Vi har sett flere tilfeller av programmeringsfeil som får browsere til å være utsatt for ulike typer lureri. Vi har sett at DNS, som mapper mellom IP-adresser og maskinnavn, kan bli utsatt for forfalskning. DNS spiller en viktig rolle når browsere autentiserer "sikre" websteder. Og hvor mange brukere er det egentlig som forstår mekanismene godt nok til å kunne bruke PKI på en trygg måte? Undertegnede innrømmer gjerne at han flere ganger har trykket "fortsett" til tross for advarsler om sertifikater som ikke matcher nettstedet, eller som har løpt ut på tid. Trykker jeg "avbryt" får jeg jo ikke gjort det jeg skal, det skjønner vel alle! Det er trolig overoptimistisk å innbille seg at det vil skje store forandringer som følge av generaltabben til VeriSign. La oss imidlertid håpe at i hvert fall noen forstår at bilder av små, søte hengelåser, eller offisielt utseende segl med "VeriSign Secure Site", eller fagre løfter om sikker handel på grunn av kryptering og sertifikater, eller forsikring om at "dette programmet er signert med Microsoft sitt sertifikat" ikke nødvendigvis betyr så mye som man skulle ønske. Noen ganger betyr det faktisk ingen ting i det hele tatt.