Het was na Snowden in 2013 dat het de wereld langzaam begon te dagen dat misschien niet alle communicatie geheel prive zou blijven. In een van de gelekte documenten waarin de CIA het congres inlicht over de kosten van hun programma’s is sprake van: 'investing in groundbreaking cryptanalytic capabilities and exploit internet traffic'. Velen hebben zich afgevraagd wat dat zou kunnen betekenen.
Https wordt mogelijk gemaakt door het protocol TLS (Transport Layer Security). TLS bestaat uit een combinatie van technieken die vanaf in de jaren 1970 ontstaan zijn en tot nu toe gebruikt worden. Een van de technieken is RSA. Het wordt voor certificaten gebruikt. Daarnaast wordt de techniek ‘Diffie-Hellman’ voor de uitwisseling van sleutels gebruikt. Ook is er het veel nieuwere encryptie algoritme AES. AES is de meest gebruikte en ook een van de sterkste methoden om iets te versleutelen.
Https wordt gebruikt om zeker te stellen dat ‘jouw bank’ ook echt jouw bank is en dat niemand die verbinding mee kan lezen. Hiervoor wordt er gebruik gemaakt van RSA maar juist ook van Diffie-Hellman als RSA niet mogelijk is. Wat er werkelijk wordt gebruikt tussen de twee partijen, browser en server, wordt elektronisch onderhandeld in de eerste milliseconden van het opzetten van een verbinding. Veel voorkomende combinaties[1] zijn eerst RSA en dan AES of eerst Diffie-Hellman voor het uitwisselen van sleutels en dan AES. We zullen zien dat deze flexibiliteit in het kiezen van de juiste versleuteling ook juist de zwakte is.
Eerdere aanvallen
Uiteraard hebben velen zitten broeden op methoden om op de een of andere manier https-verkeer mee te kunnen lezen. Hiermee zou je het hele Internet open kunnen leggen. Wat dat betreft waren 2014 en 2015 top jaren voor hackers en security analisten, want er werden veel kwetsbaarheden ontdekt in de TLS protocollen. In deze jaren hebben we de volgende aanvallen gezien:
- Heartbleed (2014): extractie van private key;
- Poodle (2014): downgrade to ssl;
- Logjam (2015): Diffie-Hellman downgrade;
- Freak (2015): downgrade;
- Drown (2016): downgrade.
Als ik Heardbleed uitsluit komt de rest heel grof samengevat op een downgrade attack neer. Het gaat hier om die milliseconde die ik boven noemde waarin onderhandeld wordt over welk protocol en cipher suite te kiezen is. Een hacker vangt de communicatie op tussen twee partijen nog voor de verbinding versleuteld is, precies in de onderhandeling van de te gebruiken cipher suite. Dan beïnvloedt de hacker de onderhandeling en laat een oudere en slechtere cipher kiezen. De verbinding die dan tot stand komt is dan een minder goed beveiligde verbinding die gemakkelijk gekraakt kan worden. Het gaat dus om twee verschillende dingen: Een fout in het protocol en het wiskundige probleem dat je nog steeds moet oplossen om de sleutel te vinden.
Zerodays
Hoewel de laatste berichten misschien anders doen geloven, hebben veiligheidsdiensten niet zo veel op met fouten in de code. Deze niet opgeloste fouten worden Zerodays genoemd. Het is misschien wel makkelijk dat een Zeroday toegang geeft tot het kunnen meelezen van berichten. Maar als fouten in de code worden opgelost dan werkt het niet meer. Als veiligheidsdienst wil je continuïteit en niet dat na het dichten van een lek een hele gegevensstroom weg is. Als er investeringen gedaan worden dan moeten die ook gedurende langere tijd nut hebben.
De Logjam-attack liet zien dat een cipher downgrade mogelijk was maar dat er nog steeds een wiskundig probleem op te lossen is om de verbinding te kraken. Er zijn gegronde redenen om aan te nemen dat de NSA, en waarschijnlijk ook de rest van de inlichtingendiensten, voldoende rekenkracht hebben om precies dat te doen.
Een aantal wetenschappers van het Inria-instituut in Parijs heeft dit in 2015 onderzocht en publiceerden dit in: ‘Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice”’[2]. Zij stellen dat er een algoritme is om Diffie-Hellman sleutels te vinden. Dit algoritme heet: ‘number field sieve discrete log algorithm of NFS ‘. Er moet nadrukkelijk gezegd worden dat dit eigenlijk geen ‘breken’ is. Breken zou zijn als met alleen de cipher tekst de originele tekst terug te vinden is. Dat is niet het geval. Diffie-Hellman is nog steeds een hele sterke encryptie. Wat men doet voorafgaande aan de aanval is een aantal mogelijke uitkomsten uitrekenen (zeef). Dit duurt ongeveer een week. Daarna kan men in zeventig seconden een aanval uitvoeren door verkeer terug te rekenen en de 512 bit key te vinden. De waarden in de zeef hoeft men maar een keer uit te rekenen zodat elke volgende aanval ook maar zeventig seconden kost.
Wat het allemaal nog erger maakt is dat 92 procent van de top sites gebruik maakt van maar twee zeer bekende priemgetallen. Dit maakt het inzetten van NFS aanzienlijk makkelijker. De schrijvers van het artikel doen een schatting dat het opzoeken van een 1024 bit key dertig core-dagen zou duren. Dat betekent dus 1 dag als 30 processoren gebruikt worden. Dit ligt zeer zeker binnen het bereik van de NSA. Een verdere wetenswaardigheid uit het INRIA artikel is dat het terug rekenen van een RSA key zelfs nog veel makkelijkere is.
Privacy in handen van de staat
We zitten dus in een race van encryptie algoritmen. De huidige stand (2017) is dat men standaard Diffie-Hellman weer aan het verlaten is en dat nu Elliptic Curve Cryptografie met Diffie-Hellman en tijdelijke sleutels (ECDHE) de nieuwe standaard is. Middelen als NFS zijn echter altijd binnen handbereik van een staat. Dat komt er ongeveer op neer dat e-commerce en bankverkeer veilig is voor hackers met normale middelen maar dat staten wel alles kunnen meelezen. Dit zou voor velen een acceptabele status quo zijn. Over een aantal jaar is dat misschien wel anders. Er wordt namelijk een doorbraak in computer rekenkracht verwacht door de quantum computer. Deze werkt niet als een normale computer met nullen en enen. Een quantum computer zou bestaande cryptografie makkelijk kunnen kraken. Als deze techniek ook nog eens betaalbaar zou zijn dan is het hek helemaal van de dam. Dan kraken criminelen net zo makkelijk codes als de NSA dat doet. Er staat ons dus nog een omslag te wachten. De quantum computer wordt pas rond 2030 verwacht dus we hebben nog even de tijd om na te denken hoe we dat oplossen. En dat is dus wat ze doen, wiskundigen en crypto-analisten, ze rekenen er op los. Er is een nieuwe techniek: Ring Learning With Errors, RLWE (met Nederlandse bijdragen) waar in ieder geval van verwacht wordt dat hij quantum bestendig is. Of dat werkelijk waar is weten we over dertig jaar.
Post-Quantum cryptografie
Onze eigen AIVD stelt dat we dan maar 256 bits AES sleutels moeten gebruiken[3]. Deze zouden dan nog veilig zijn. De rest is dan ingehaald door de quantum computer.
AES met een keylengte van 256 is inderdaad quantum-proof maar de ‘kwetsbaarheid’ van AES zit ook niet in het kraken maar in het overdragen van de sleutel. Als het gelukt is het RSA/DH gedeelte te kraken en het lukt om de AES sleutel op te vangen, dan kan je het bericht gewoon meelezen ongeacht AES versleuteling.
Iets wat we bij het opschalen van de keylengte van bestaande technieken ook niet moeten vergeten is dat eenvoudige apparaten zoals IoT-devices misschien niet in staat zijn om de extra rekenkracht te leveren die nodig is voor een veilige versleuteling[4]. Daarom denk ik dat alleen het vergroten van de key space geen oplossing is. Over de vraag hoe post-quantum cryptografie er uit zou moeten zien bestaan zeer veel en vooral verschillende ideeën. Iedereen benadert het vanuit zijn eigen optiek wat betekent dat wiskundigen een moeilijk oplosbaar probleem als grondslag nemen en fysici zoeken naar een magisch overgedragen bit. We zullen zien wie het laatste lacht. Tot nu toe is al onze cryptografie gebaseerd op verwarring (AES) of een moeilijk wiskundig probleem (RSA, Diffie-Hellman) maar dat is nu net waar computers goed in zijn. Er zijn verschillende andere initiatieven voor post-quantum cryptografie gebaseerd op andere concepten. Dit is onder andere error-correctie, oneindige randomness, het verdelen van berichten zodat er geen totaal bericht is en variaties op Diffie-Hellman met een elliptische curve.
Botnet revolutie
Botnetten hebben ook voor een revolutie gezorgd. Wij doen ons best om alles zo goed mogelijk te beveiligen en doen het voor de hand liggende. Meer kunnen we niet doen. Een botnet kijkt echter in mijn browser mee wat ik aan het doen ben. Hoe sterk de beveiliging tussen mij en de server is, is totaal irrelevant geworden. Alle goede encryptie ten spijt, er geen sprake meer van kraken en men kan alles zo meelezen. In het nadenken over beveiligingen is dit een stap die echt veel mensen nog niet gezet hebben. Het is helaas niet zo dat een virusscanner een botnet altijd kan vinden en ook is het niet zo dat een botnet zich zelf verraadt door berichten naar een vreemd adres te sturen. Dit is ook precies wat men met ‘Security in depth’ bedoeld. Een dikke voordeur heeft geen nut als men ook niet aan de achterdeur, ramen en ook schoorsteen gedacht heeft.
Newitera en client certificaten
Newitera is bezig met de ontwikkeling van technologie die reguliere RSA client certificaten overbodig maakt. Wij noemen dit HRO-AUTH (Hacker Resillient Operational Authentication). Wij hopen deze techniek de komende jaren op de markt te kunnen brengen.
Lastig te lezen stuk en dan ken ik de materie redelijk goed en ben ik een groot fan van Diffie-Hellman! Ook de paper [2] is lastig te doorgronden en het kost me al moeite om uit te vinden wanneer die paper gepubliceerd is.
Wat ik me dan ook afvraag: Voor wie is dit stuk geschreven en met welk doel?
Onze omgevingen krijgen een A+ waardering van SSLabs ( https://www.ssllabs.com/ ) er is niet veel meer wat ik kan uitvoeren om de sterkte van HTTPS (incl. HSTS) te vergroten. Daarnaast lijkt dit stuk vooral de boodschap te geven dat vooral overheden niet te vertrouwen zijn en je verkeer mogelijk kunnen meelezen.
Maar als ik eerlijk ben lijkt het stuk mee meer geschreven als een soort vanity post. Of om de boodschap af te geven “kijk eens hoeveel wij van security weten”
Een toelichting zou welkom zijn 🙂 Want zo’n stuk schrijven is natuurlijk wel weer heel knap!
Oh wacht, ik lees natuurlijk weer over het laatste paragraaf heen met die blauwe lijn ervoor (ik heb een soort van ingebouwde ad-blocker). Het is een reclame!
Interesant verhaal dat idd niet voor de leek bedoeld is.
Fijn om ook zo’n artikel eens tegen te komen.
Er is niets wat je als bedrijf kunt doen om TLS/SSL security te vergroten. Met het artikel wil ik aangeven dat zowel RSA als Diffie-Hellman inzichtelijk zijn geworden voor overheden door “The Number Field Sieve”. Hoe het precies werkt kun je lezen in link [2]. Kraken zou niet het juiste woord zijn. Het is een hele elegante manier om de wiskunde te doen. Het komt er op neer dat het op te lossen probleem parallelliseerbaar is. Daarmee komt TLS meelezen in handen van staten met super computers. Het zal niet lang op zich laten wachten dat NFS ook in handen komt van anderen met misschien net geen super computer maar wel de wens hebben bepaalde berichten mee te lezen.
TLS heeft de wereld echt verbeterd. Goedkope privacy en authenticatie voor iedereen. Dat TLS inzichtelijk is geworden is een serieus probleem en niet alleen wij maar vele anderen zijn op zoek naar een oplossing. Denk bijvoorbeeld aan financiële voorkennis op beurzen.
Ik ben zelf ook een fan van Diffie-Hellman. Veel meer dan RSA. Er zijn verbeteringen op Diffie-Hellman gedaan die redelijk het verschil maken. (Ephemeral DH en Elliptic Curve DH). Maar als ik eerlijk ben denk ik dat dit maar tijdelijk een oplossing zal zijn. We hebben binnen een paar jaar iets nieuws nodig. De klok tikt.
Thanks voor je reactie Mark! Ik ga me nog inlezen op Ephemeral. Over Elliptic Curve had ik tijdje terug nog wat gelezen op Medium : https://hackernoon.com/eliptic-curve-crypto-the-basics-e8eb1e934dc5