Heartbleed, NSA, FRA, lösenord och terrorister

Många har vid det här laget läst varningarna om att man bör byta sitt lösenord på stora sajter. Jag håller helt med. Byt lösenord friskt! Byt för allt du bryr dig om, oavsett om sajten finns med på listor över ställen där det ska bytas eller inte.

Heartbleed är inte en bugg som i första hand handlar om lösenord för webbsajter, även om jag helt och hållet håller med om att lösenorden ska bytas. Det är en bugg som handlar om att en av grundstenarna för hur information på internet skyddas från obehöriga har varit trasig på en mycket stor andel av hela internet.

När trafik skickas mellan din dator och en server på internet hoppar den mellan ett stort antal routrar på vägen. Vid var och varannan landsgräns finns stora anordningar för avlyssning, där t.ex. FRA spelar in trafik och lagrar för framtiden. Utöver underrättelsetjänster finns det fler aktörer och fler sätt att spara en kopia av trafiken.

Därför är kryptering nödvändigt. Med hjälp av en hemlig kryptonyckel krypteras informationen, så att bara den som är behörig kan läsa. Heartbleedbuggen innebär att nycklarna för att kryptera upp den lagrade informationen plötsligt gjorts tillgänglig för den som har sparad trafik. Ibland är det ”snälla” underrättelsetjänster, som FRA. Men långt ifrån bara. Det är även underrättelsetjänster i länder som förföljer och dödar sina medborgare som fått nycklar i sina händer. Och terrorister. Och bedragare, skojare och fifflare av alla de slag. Kort och gott väldigt många obehagliga grupper.

När den här buggen blev känd tror jag att all världens skuggiga grupperingar kastade sig till tangentbordet med målet att få nycklar. Så många som möjligt! Vilka nycklar och vad de går att använda till kommer vi tyvärr nog aldrig fullt ut få veta omfattningen av. Däremot tror jag vi kommer möta en ny form av bedrägerier framöver, där bedragaren har tillgång till nycklar de inte borde ha och därför kan utge sig för att vara sajter de inte är.

Det är inte bara webbtrafik som skyddats av OpenSSL, utan OpenSSL används på alla möjliga ställen. Även om en sajt inte haft den sårbara versionen av OpenSSL på webben finns en risk att sårbarheten funnits på något långt mindre uppenbart ställe, som gör systemet vidöppet ändå. Bara för att ett ställe inte finns med i listan över kända ställen där lösenordet ska bytas betyder det inte att de klarat sig. Den som gjort listan behöver bara inte vara medveten om hur de var sårbara.

Vid första anblicken verkade uppemot två tredjedelar av internet drabbat. Senare siffror ligger på runt 17%. Buggen är två år gammal, men tack och lov visade det sig att många av de stora myndigheterna och institutionerna kör med konservativa uppgraderingscheman och därför stod kvar på en version av OpenSSL som var äldre än så. Stora delar av svenska staten, med myndigheter med webbtjänster med mer, hade för gamla versioner för att vara sårbara. Det ska vi vara väldigt glada över.

En viktig fråga är hur det här kunde hända. Hur kunde en så stor andel av internet exponeras för en så allvarlig sårbarhet så länge? En annan viktig fråga är vilka som känt till det.

OpenSSL är beryktat besvärlig kod. Själva syftet med OpenSSL är komplicerat i sig – krypto vansinnigt komplex matematik. OpenSSL är också skrivet i ett programmeringsspråk som heter C. C är ett väldigt gammalt programmeringsspråk, som är oerhört komplicerat att jobba med. Programmeraren behöver hålla reda på hur datorn ska hantera sitt minne och alltid veta exakt hur mycket minne som får användas till varje sak hon gör, vilket är en övning där det gäller att hålla tungan väldigt rätt i munnen. Och även om man är riktigt duktig och har bra koll på vad man gör blir det fel, för sånt är C. När det blir fel så är resultatet allt ifrån att datorn kraschar till väldigt allvarliga säkerhetsbrister. Därför är C ett väldigt farligt programmeringsspråk. Mycket av all grundläggande infrastruktur på internet är skrivet i C, vilket innebär en stor risk. Slutligen är OpenSSL ökänt trassligt även för att vara krypto och skrivet i C, vilket gör att det är väldigt jobbigt för utomstående att förstå koden.

Eftersom OpenSSL är svåra grejer, gratis och inte direkt något som är så lätt att göra om är det välanvänt. En styrka är att källkoden är öppen och möjlig att läsa och granska, för den som är rädd för planterade buggar från någon som inte vill en väl. Men den styrkan blir inte riktigt en så stor styrka som man skulle önska, när koden är så komplicerad att nästan ingen förstår. Och eftersom OpenSSL är gratis är det ingen som betalar de summor vi borde betala för att internet ska fungera och vara säkert.

Jag tror inte NSA känt till det här eller gjort det med flit. Det här var för farligt. För potentiellt katastrofalt för samhället och ekonomin. Däremot finns en stor risk att buggen var känd för någon som haft tiden och energin att gräva. Tyvärr går det inte veta vem denna någon i så fall var, för buggen lämnar inga spår. Och det går inte att veta konsekvenserna.

Jag tror fortfarande på öppen källkod, även för komplicerade saker som krypto. Däremot kan jag tänka att samhället kanske mer aktivt borde ta en del i att säkerställa att produkterna är bra och säkra nog. Det är billigt med öppen källkod, även om man får låta några anställda med kompetensen och intresset hacka lite på koden på betald arbetstid.

Annonser

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s