OpenSSL er død, længe leve LibreSSL

OK, OpenSSL er ikke helt død - rygterne svirrer bare

Vi har allesammen hørt om Heartbleed formoder jeg, der kom efter annonceringen på http://heartbleed.com/ og mit blogindlæg http://www.version2.dk/blog/opdater-openssl-og-dit-os-nu-57202 en sand tsunami af artikler og indlæg på diverse fora omkring SSL, OpenSSL og CA (Certificate Authority) vanvid.

Faktisk holdt jeg i fredags en lille brainstorm over lidt morgenmad med min ven Martin, og vi har identificeret nok konklusioner til at fylde de første 10-15 blogindlæg. Nedenstående er blandt andet baseret på vores snak, Tak Martin Clausen.

En af konklusionerne, eller et par skal man måske sige, er relateret til OpenSSL og Open Source. Kort forklaret.

  • OpenSSL er noget crap, det bliver aldrig godt - slå dyret ihjel bag laden. Det synspunkt deler vores egen PHK med artiklen OpenSSL must die, for it will never get any better.
  • OpenSSL er en vital del af vores infrastruktur, og underfunded i ekstrem grad
  • Open Source er ikke automatisk sikkert. Det er som sådan ikke en ny konklusion og er udtalt af Spaf flere gange
  • OpenSSL vægter speed fremfor korrekthed, dette var en stor WTF for mig, tak til Martin som kender OpenSSL og endda har resultater hvor et rent C SSL bibliotek er hurtigere end OpenSSL assemblerkode!
  • Lette bugs opdages, svære bugs opdages eventually - og fixes derefter ret hurtigt. Jeg er meget pro-open source, men firmaer som Coverity der scanner software for sikkerhedsfejl har erfaring for at dette er rigtigt. Find eksempelvis deres Open Source Integrity Report 2013 siger "Open Source Code Quality Surpasses Proprietary Code Quality In C/C++ Projects"

Nå, men for at starte bagfra Coverity siger i deres "Coverity Scan: 2013 Open Source Report":

In 2013, for the first time, we saw open source quality for the projects in the Scan service surpass that of proprietary projects at all code base sizes. The 2012 Coverity Scan Report looked at a sample analysis of more than 250 proprietary code bases totaling more than 380 million lines of code, with an average codebase of nearly 1.5 million lines of code, and we found that open source code had lower defect density levels up to 1 million lines of code. For the 2013 report, we analyzed approximately 500 million lines of code across almost 500 proprietary C/C++ projects.

Så hvorfor er OpenSSL så "elendig"? Bemærk gåseøjne, der er formentlig kun få personer der ville kunne programmere, endsige styre et projekt af den størrelse gennem så mange år med så skiftende forhold og krav. Specielt når vi taler om OpenSSL så er det noget alle bruger (de fleste Unix systemer har OpenSSL og bruger det), så burde det ikke have en masse funding? Nej, det lader til at der ikke er nok funding til at der er bestilt et regulært audit af koden.

Audit, hvad er det? Audit er når en gruppe dedikeret sætter sig og gennemlæser koden, prøver at afdække fejl og sikkerhedsproblemer i design, algoritmer, kode, funktioner osv. Det er noget som er begyndt at spire i højere grad og for nyligt er der kommet nogle gode rapporter omkring audit af flere værktøjer, herunder: Truecrypt audit og Cryptocat audit

Så hvad skal vi gøre? Funde Open Source er 100% nødvendigt, bruger du det og har det værdi så smid penge efter det! Jeg betaler gladeligt penge til OpenBSD og OpenSSH fordi jeg bruger det dagligt. Det er derfor med stor fornøjelse jeg læste om LibreSSL

LibreSSL

Hvad er LibreSSL? Det er OpenSSL efter en tur i grønthakkeren. OpenBSD folkene har påtaget sig opgaven med at skrælle OpenSSL ned til en størrelse der kan håndteres. De startede med at annoncere det OpenBSD has started a massive strip-down and cleanup of OpenSSL
og efter en uges tid kom der en statusrapport One week of OpenSSL cleanup . De smider ligeledes twitter updates med skræmmende humor og referencer til skrald de finder når de vender de gamle sten.

Nu er der så også kommet en hjemmeside - som dog er meget kortfattet - fordi de er i fuld gang med arbejdet. Den er dog i Comic Sans, så det borger for kvaliteten ...
http://www.libressl.org/

Jeg støttede kort efter at heartbleed blev annonceret penge til OpenBSD foundation både privat og fra firmaet, og kan varmt anbefale at I også hiver kortet frem.

OpenBSD er et projekt som uden tvivl har gjort meget for internetsikkerhed og uden OpenBSD havde vi ikke OpenSSH som alle Linux distributioner bruger (jeg er aldrig stødt på en Linux uden OpenSSH, men prove me wrong ). Det er bevist med OpenBSD at man kan lave et operativsystem med ekstrem fokus på sikkerhed, som samtidig KAN bruges - selvom det er langsommere end Linux og de andre BSD'er.

Jeg kan sagtens se at OpenBSD vil kunne lave samme process med OpenSSL/LibreSSL som de har gjort med OpenSSH-OpenBSD og OpenSSH-portable til andre Unix varianter. De har erfaringen, sikkerhedsviden, programmerer sikkert - med fokus på korrekthed fremfor hastighed! De mangler formentlig blot flere resourcer til at gøre det.

Bemærk dog at mange ikke er enige med Theo de Raadt som er OpenBSDs hårde diktator. Jeg har nok vænnet mig til det, og jeg ved og stoler på hvordan han er. Nogle vil sige konsekvent en idiot, men jeg vil fokusere på de gode ting som konsekvent med hensyn til rettigheder, licenser, erfaring med at styre sikkerhed, proven track record med OpenBSD/OpenSSH osv. Så ja, det her er et fundraiserindlæg og kom nu igang.

Hvis du af en eller anden grund stadig ikke synes Theo og OpenBSD foundation skal have dine penge, så find andre lignende projekter som CryptoCat, Sudo eller dit eget ynglingsprojekt og støt det - så der kan betales et audit af projektet.

Kommentarer (7)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Søren Hilmer

OpenSSL vægter speed fremfor korrekthed, dette var en stor WTF for mig, tak til Martin som kender OpenSSL og endda har resultater hvor et rent C SSL bibliotek er hurtigere end OpenSSL assemblerkode!

Ja, det er ikke så mærkeligt man kan opnå det, for et bibliotek som OpenSSL er det jo netop vigtigt, at operationer tager samme tid uafhængigt af, hvad fx din nøgle er.
Da det ellers åbner mulighed for timing-attacks.
Jeg synes derfor ikke ubetinget, at dette LibreSSL er en god ide, det har taget mange år at få OpenSSL til at være imun overfor forskellige kryptografiske angreb. Så man skal virkelig passe på når man refaktorer i den kodebase

Cristian Ambæk

Hvad skal man sige til sådan en artikel?

OpenSSL er som sådan en fint nok produkt, ellers havde firmaer i større og mindre grad ikke brugt det. Men det har været et projekt som du også selv siger, der har fået for lidt støtte. Selvom at alle grundende til at støtte det var der.

Folkene bag projektet er som sådan sikkert også dygtige nok, så det er godt nok at gnubbe folk lidt den forkerte vej. Når man støtter humor der gør grin med deres arbejde, som jeg formoder "skræmmende humor" er. Samtidig med ord som elendig, dyr, dø mm finder vej frem i artiklen.

Hvis du underbetaler medarbejdere så får du en kvalitet derefter, sjovt nok har udviklere også selv regninger der skal betales. Der kommer ikke en enhjørning flyvende ud af røven på en sky med et stempel i hånden der siger "paid by the good guys".

Så vidt jeg forstod på artiklen støttede du som sådan heller ikke OpenSSL men støtter nu LibreSSL. Hvad med man bare havde støttet det første projekt så de selv havde haft midlerne til det OpenBSD folkene nu gør?

Så er det ikke lidt sådan bob bob at du skriver

og kan varmt anbefale at I også hiver kortet frem

Da det virker som om den eneste grund til du selv gør det, er at et firma du i forvejen støtter nu tilføjer et ekstra projekt til deres portfolio.

Jeg siger ikke at man ikke skal støtte det, men din opfordring til hvorfor man skal støtte det er lige lovlig ude i tågerne.

Martin Poulsen
Martin Clausen

Ja, det er ikke så mærkeligt man kan opnå det, for et bibliotek som OpenSSL er det jo netop vigtigt, at operationer tager samme tid uafhængigt af, hvad fx din nøgle er.
Da det ellers åbner mulighed for timing-attacks.

Tiderne er skam helt sammenlignelige, som fx en RSA-SHA1-PKCS1 signatur med en 2048 bit nøgle m/u CRT af en 1024 byte buffer m/u blinding. Kommentaren går på, at man i visse dele af OpenSSL har fokuseret mere på asm optimeringer end algoritmiske. Compilerne har jo også udviklet sig siden 1998 og er blevet væsentlig bedre til at generere kode. Dermed selvfølgelig ikke sagt, at man ikke kan hente noget med asm. Men det skal ses i sammenhæng med mange andre faktorer. Your mileage may vary.

Henrik Kramshøj Blogger

Da det virker som om den eneste grund til du selv gør det, er at et firma du i forvejen støtter nu tilføjer et ekstra projekt til deres portfolio.

Jeg siger ikke at man ikke skal støtte det, men din opfordring til hvorfor man skal støtte det er lige lovlig ude i tågerne.

OpenBSD er ikke et firma, men lad det nu ligge. Du har helt ret i at jeg nok burde have sendt penge til OpenSSL projektet, og nu da valget står mellem OpenSSL og OpenBSD er det klart for mig. OpenBSD som jeg kender i forvejen har jeg tiltro til, OpenSSL - not so much. Så jeg støtter der hvor jeg mener mine penge gør størst gavn/glæde.

Når jeg støtter (hvad jeg forøvrigt gør både med egne private penge og firmapenge) så prøver jeg at udvælge forskellige projekter og små projekter. Eksempelvis er FreeBSD mere populært end OpenBSD, så de får generelt mere eksponering.

Jeg har således doneret til eksempelvis Sudo - som jeg tror de fleste kender, men har I set eller brugt Donate knappen på bunden af http://www.sudo.ws/ Så om jeg tåger rundt er vel din definition, men det giver mening for mig og hovedpointen er at der er mange projekter som trænger - så igen Donate!

Mht. "elendig" er det netop sat i gåseøjne og tilknyttet en kommentar om at det ikke er alle der overhovedet ville (burde) give sig i kast med den slags projekter. Når mange projekter og firmaer har accepteret at bruge OpenSSL er det blandt andet fordi det er en gigantisk sindsyg opgave at give sig i kast med. Selv de andre SSL biblioteker der henvises til hist og her bliver hurtigt skudt ned fordi de reelt måske ikke evner at understøtte missionen eller de krav folk har.

Henrik Kramshøj Blogger

Da det ellers åbner mulighed for timing-attacks.
Jeg synes derfor ikke ubetinget, at dette LibreSSL er en god ide, det har taget mange år at få OpenSSL til at være imun overfor forskellige kryptografiske angreb. Så man skal virkelig passe på når man refaktorer i den kodebase

Martin har svaret lidt, men det er helt reelle kommentarer du kommer med, og et naivt SSL bibliotek som ikke tager hensyn til timing er helt ubrugeligt. Problemet med OpenSSL måden er at den er write-once-read-never og gamle gamle gamle ting opdateres aldrig. Der er fundet MANGE eksempler på klamme ting, ting jeg ikke selv har fundet frem, men som OpenBSD folkene har hevet frem i lyset.

Så ja, først fjerner de åbenlyst ubrugelige ting, VMS og OS/2 anyone? Dernæst bliver resten gået igennem med tættekam og jeg glæder mig sindsygt til version 5.6 af OpenBSD hvor de siger det kommer med. Jeg vil også glædes over at Linux varianter tager den med, og andre Unix systemer, vi lever i en Open Source verden og OpenBSD kan ikke alt! (men næsten :-P )

Log ind eller Opret konto for at kommentere