Skåne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg
 

Open Source og sikkerhed

af Bruce Schneier <schneier@counterpane.com>

oversat til dansk af SSLUG

Bruce Schneier har venligst givet SSLUG tilladelse til at distribuere hans artikel om Open Source og sikkerhed.
Originalversionen kan findes på http://www.counterpane.com/crypto-gram-9909.html.


Som kryptografi- og computersikkerhedsekspert har jeg aldrig forstået al den snak der for tiden er om Open Source-bevægelsen. I krypteringsverdenen betragter vi Open Source som en nødvendighed for god sikkerned; og det har vi gjort i årtier. Offentlig kendt sikkerhed er altid mere sikker end proprietær sikkerhed. Dette gælder for krypteringsalgoritmer, sikkerhedsprotokoller og programtekst til sikkerhed. For os er Open Source ikke blot en forretningsmodel, det er en intelligent udviklingspraksis.

Open Source kryptering

Kryptering har levet op til Open Source idealerne i årtier, selvom vi kalder det "at bruge offentlige algoritmer og protokoller". Ideen er simpel: Kryptering er svært at gøre fejlfrit, og den eneste måde at vide om noget er gjort fejlfrit er at være i stand til at undersøge det.

Dette er vitalt i kryptering fordi sikkerhed intet har at gøre med funktionalitet. Du kan have to algoritmer, én sikker og én usikker, og de virker begge perfekt. De kan kryptere og dekryptere, de kan være effektive og have en pæn brugergrænseflade, og måske går de aldrig ned. Den eneste måde at kende forskel på god og dårlig kryptering er ved at få krypteringen undersøgt.

Værre endnu: Det hjælper ikke at få tilfældige folk til at undersøge programteksten; den eneste måde at kende forskel på god og dårlig kryptering er at have programteksten undersøgt af eksperter. At analysere kryptografi er svært, og der er kun få mennesker i verden, der er kompetente til at gøre det. Før en algoritme kan blive betragtet som virkelig sikker må den undersøges af flere eksperter over en årrække.

Dette taler meget stærkt for krypteringsalgoritmer i Open Source. Da den eneste måde at have tillid til en algoritmes sikkerhed er at få eksperter til at undersøge den, og den eneste grund til eksperter gider bruge den nødvendige tid på at undersøge den er for at offentliggøre videnskabelige artiker om algoritmen, derfor må algoritmen nødvendigvis være offentlig. En prorietær og hemmelig algoritme er, ligemeget hvem, der har designet den og hvem der blevet betalt for at undersøge den, meget mere risikabel at benytte end en offentlig kendt algoritme.

Modargumentet som du nogen gange hører er, at kryptering med en hemmelig algoritme er meget sikrere netop fordi algoritmen er hemmelig, og at offentlige algoritmer er mere usikre fordi de er offentlige. Umiddelbart lyder det fornuftigt, men prøv at tænke nærmere efter. Offentlige algoritmer er designet så de er sikre selvom de er blevet offentliggjorte; de er netop lavet til dette. Så der er ingen risiko ved at offentliggøre dem. Hvis en algoritme kun er sikker hvis den forbliver hemmelig, så vil den kun være sikker indtil nogen efterligner algoritmen og publicerer efterligningen. Der har været en mængde hemmelige algoritmer til mobiltelefoner på markedet, men disse er kort efter blevet brudt, hvilket netop illustrerer pointen.

I stedet for at benytte offentlige algoritmer besluttede de amerikanske mobiltelefoniselskaber at lave deres egen proprietære kryptering. Gennem de seneste år er forskellige algoritmer blevet offentliggjorte. (Og nej: det var ikke mobiltelefoniindustrien, der ønskede dem offentliggjort. Det der generelt sker er at en kryptografiekspert modtager en fortrolig specifikation i en brun konvolut.) Og efter de er blevet offentliggjorte, er de blevet brudt. Nu overvejer mobiltelefoniindustrien at benytte offentlige algoritmer i stedet for deres brudte proprietære.

På den anden side har det populære emailkrypteringsprogram PGP altid brugt offentlige algoritmer. Og ingen af disse algoritmer er nogensinde blevet brudt. Det samme gælder for en række krypteringsprotokoller på Internettet: SSL, S/MIME, IPSec, SSH og så videre.

Den bedste undersøgelse, der ikke kan købes for penge

Netop nu er den amerikanske regering ved at vælge en krypteringsalgoritme der skal erstatte DES, kaldet AES (Advanced Encryption Standard). Der er fem kandidater til standarden og før den endelige er valgt vil verdens bedste kryptografieksperter bruge tunsindvis af timer på at undersøge dem. Intet firma, hvor rigt det end måtte være, har råd til den slags undersøgelse. Og siden AES frit kan bruges til alt, er der ingen grund til at noget firma skulle spilde tid på at lave deres egen standard. Offentlig kryptografi er ikke blot bedre - det er også billigere.

Den samme grund, der får intelligente virksomheder til at bruge offentliggjort kryptering, for dem også til at bruge offentliggjorte sikkerhedsprotokoller: Alle, der laver sin egen sikkerhedsprotokol, er enten et geni eller en nar. Da der er flere af sidstnævnte end af førstnævnte, er det simpelthen blot mere intelligent at bruge offentliggjorte protokoller.

Tag for eksempel IPsec, internetprotokollen for kryptering over IP. Med begyndelse i 1992 var den fra start designet i fuld offentlighed af en komite og blev udsat for en grundig, offentlig gennemgang. Alle vidste, det var en vigtig protokol og folk brugte meget tid på at gøre den fejlfri. Forskellige sikkerhedsteknoligier blev foreslået, brudt og efterfølgende ændret. Versioner blev implementerede og analyserede. Det første udkast til en standard blev offentliggjort i 1995. Man debatterede de forskellige aspekter ved IPsecs sikkerhedsniveau, effektivitet, om hvor nemt det var at indføre og opgradere samt brugen.

I november 1998 offentliggjorte komiteen en række RFC'er - et af de skridt, der skal til for at gøre IPsec til en standard på Internettet. Og IPsec bliver stadig studeret. Kryptoeksperter ved Naval Research Laboratory opdagede for nyligt en mindre implementeringsfejl. Arbejdet fortsætter i fuld offentlighed af alle, der er interesserede. Resultatet baseret på flere års offentlig analyse er en stærk protokol, som mange stoler på.

På den anden side udviklede Microsoft sit eget alternativ Point-to-Point Tunneling Protocol (PPTP). De opfandt deres egen authentificeringsprotokol, deres egne hash-funktioner, og deres egne nøglegenereringsfunktioner. Hver eneste én af disse havde store fejl. De brugte en kendt krypteringsalgoritme, men de brugte den på en sådan måde, så den ikke gav yderligere sikkerhed. De lavede implementations fejl som svækkede systemet endnu mere. Men da de lavede alt arbejdet internt, var ingen klar over, at PPTP var svag.

Microsoft gik på markedet med PPTP i Windows NT og 95 og brugte det i deres VPN-produkter (Virtual Private Network). De offentligjorde til sidste deres protokoller. I sommeren 1998 publicerede mit firma (Counterpane) en rapport, der beskrev de fejl, vi havde fundet. Igen betalte offentlig undersøgelse sig. Microsoft udsendte hurtigt en række fejlrettelser, som vi undersøgte i sommers. Rettelserne var bedre men stadig behæftede med fejl.

Ligesom med algoritmer er den eneste måde at kende en god sikkerhedsprotokol fra en dårlig på ved at have eksperter til at undersøge den. Så hvis du har brug for en sikkerhedsprotokol, er det klogeste at tage én, der allerede har været undersøgt. Du kan lave din egen, men hvad er chancen for at den skulle være lige så sikker som én der hav været undersøgt af eksperter gennem flere år?

Sikring af din programtekst

Det er præcis den samme begrundelse som får enhver intelligent udvikler til at kræve Open Source programmer til alt relateret til sikkerhed. Lad os lige opsummere: Sikkerhed har intet at gøre med funktionalitet. Derfor kan testning af programmet aldrig vise en brist i sikkerheden. Den eneste måde man kan finde sikkerhedsfejl i en programtekst - så som en kryptografisk algoritme eller sikkerhedsprotokol - er derfor at undersøge den. Dette gælder for alle programmer, hvadenten de er Open Source eller proprietære. Og det er ikke ligemeget hvem du får til at undersøge programteksten: Det skal være eksperter i sikkerhedssoftware. De skal undersøge programmet flere gange og fra forskellige vinkler gennem flere år. Det er muligt at hyre den slags ekspertise, men det er meget billigere og mere effektivt at lade samfundet som sådant gøre dette. Og den bedste måde at gøre det på er at offentliggøre programteksten.

Men hvis du virkelig ønsker din programtekst skal være sikker, kræver det mere end blot at offentliggøre den under Open Source. Det er to åbenlyse fælder, som du skal være klar over.

For det første: bare fordi du offentliggør programteksten betyder det ikke automatisk, at folk vil undersøge den for sikkerhedsfejl. Sikkerhedsfolk er travle. De har ikke tiden til at undersøge enhver programkode, der er offentliggjort. Så selvom offentliggørelsen er en god ting, så garanterer det ikke sikkerhed. Jeg kunne nævne et dusin sikkerhedsbiblioteker under Open Source, som ingen nogensinde har hørt om, og som ingen nogenside har undersøgt. På den anden side er sikkerhedssoftwaren i Linux blevet undersøgt på kryds og tværs af mange dygtige sikkerhedsfolk.

For det andet: Du skal være sikker på, at sikkerhedsfejl bliver rettet så snart de er fundet. Folk finder sikkerhedsfejl i Open Souce programtekster og det er en god ting. Der er ingen grund til at tro, at Open Source programmer på det tidspunkt de først er skrevet skulle være mere sikre end proprietære programmer. Pointen i at gøre programmet Open Source er, at så utroligt mange folk gennemgår programteksten for sikkerhedsfejl og finder dem. Hurtigt. Disse fejl skal så rettes. Så et to-år gammelt Open Source program har sandsynligvis færre sikkerhedsfejl end et proprietært program - simpelthen fordi så mange af fejlene er fundet gennem tiden. Sikkerhedsfejl bliver også fundet i proprietært software, men meget langsommere.

At sammenligne sikkerheden i Linux med sikkerheden i Microsoft Windows er ikke noget godt eksempel. Microsoft har gjort et utroligt dårligt stykke arbejde på sikkerhedssiden og det er derfor ikke en rimelig sammenligning. Men at sammenligne Linux med Solaris er et meget bedre eksempel. Folk finder sikkerhedsfejl i Linux hurtigere og de bliver samtidigt rettet hurtigere. Resultatet er et operativsystem der - selvom det endnu kun er få år gammelt - allerede er meget bedre end Solaris var i samme alder.

Sikker PR

En af de store fordele ved Open Source-bevægelsen er den positive feedback man får ved offentliggørelse. Gå ind i en vilkårlig større computerforretning og du vil se en hel hylde med Linux-baserede produkter. Folk køber dem fordi Linux' appeal ikke længere er begrænset til nørder; det er et brugbart værktøj til visse opgaver. Den samme feedback gælder inden for sikkerhed: offentlige algoritmer og protokoller vinder troværdighed fordi mange folk kender og bruger dem og de bliver et buzzword. Marketingsfolk kalder dette "mindshare". Det er ikke en perfekt model, men hey, det er bedre end alternativet.

 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2004-03-07, klokken 21:25 .
 

This page is maintained by Ole Tange(<tange@sslug.dk>)