een paar gedachten over cryptografische Engineering

een paar weken geleden schreef ik een lang artikel over het NSA ‘s’ BULLRUN ‘ project om moderne encryptie standaarden te ondermijnen. Ik was van plan om hier op een gegeven moment op terug te komen, omdat ik geen tijd had om de kwesties in detail te bespreken. Maar toen stond het in de weg. Een heleboel dingen, eigenlijk. Sommige daarvan hoop ik in de nabije toekomst te schrijven.

maar voordat ik er ben, en met het risico jullie allemaal tot tranen toe te vervelen, wilde ik nog een keer terugkomen op dit onderwerp, al was het maar om een beetje te pontificeren over een vraag die me dwars zit.

zie je, de NSA BULLRUN briefing sheet vermeldt dat NSA nogal wat encryptietechnologieën heeft gebroken, waarvan sommige interessanter zijn dan andere. Een van die technologieën is bijzonder verrassend voor mij, omdat ik gewoon niet kan begrijpen hoe NSA het zou kunnen doen. In deze extreem lange post ga ik proberen om een beetje dieper in de belangrijkste vraag geconfronteerd met het Internet van vandaag graven.

specifiek: hoe breekt NSA in godsnaam SSL?

sectie van de BULLRUN briefing sheet. Bron: New York Times.

om het doel te bereiken ga ik een paar basisregels maken.

Ten eerste ben ik me er goed van bewust dat NSA malware op uw computer kan installeren en elke cryptografie die u kiest kan pwn. Dat interesseert me helemaal niet, om de simpele reden dat het niet goed schaalt. NSA kan je dit aandoen, maar niet voor een hele bevolking. En dat is waar ik me zorgen over maak over de recente lekken: de mogelijkheid dat NSA encryptie breekt voor massasurveillance.

om dezelfde reden zullen we ons geen zorgen maken over man-in-the-middle (MITM) aanvallen. Hoewel we weten dat de NSA deze beheert, zijn ze ook een zeer gerichte aanval. MITM ‘ s zijn niet alleen detecteerbaar als je ze op grote schaal doet, ze zijn niet compatibel met wat we weten over hoe NSA grootschalige interceptie doet-meestal via straalsplitters en kranen. Met andere woorden: we zijn echt bezorgd over passieve surveillance.

de bovenstaande regels zijn natuurlijk niet absoluut. We zullen beperkte gerichte aanvallen op servers overwegen, op voorwaarde dat ze later passieve decryptie van grote hoeveelheden verkeer mogelijk maken; bijvoorbeeld decryptie van verkeer naar belangrijke websites. We zullen ook willekeurige wijzigingen aan software en hardware overwegen-iets waarvan we weten dat NSA al aan het doen is.

een laatste punt: om te voorkomen dat dingen ontsporen, heb ik deze post handig opgedeeld in twee secties. De eerste zal betrekking hebben op aanvallen die alleen bekende technieken gebruiken. Alles in deze sectie kan worden geïmplementeerd door een TAO medewerker met voldoende verbruik en toegang tot software. De tweede sectie, die ik heb getiteld De ‘Tinfoil Hat Spectrum’ behandelt de leuke en speculatieve dingen-variërend van nieuwe side channel aanvallen helemaal naar die enorme quantum computer de NSA houdt naast BWI.

we beginnen met de ‘praktische’.

aanvallen die gebruik maken van bekende technieken

diefstal van RSA-sleutels. De meest voor de hand liggende manier om SSL te ‘kraken’ houdt niet echt iets te kraken in. Waarom tijd en geld verspillen aan cryptanalyse als je gewoon de sleutels kunt stelen? Dit probleem is van bijzonder belang in servers geconfigureerd voor de TLS RSA handshake, waar een enkele 128-byte server sleutel is alles wat je nodig hebt om elke verleden en toekomstige verbinding gemaakt van het apparaat te decoderen.

in feite is deze techniek zo voor de hand liggend dat het moeilijk voor te stellen is dat NSA veel middelen uitgeeft aan geavanceerde cryptanalytische aanvallen. We weten dat GCHQ en NSA zijn perfect comfortabel suborning zelfs Amerikaanse providers in het buitenland. En binnen onze grenzen, hebben ze de bereidheid getoond om TLS/SSL sleutels te verkrijgen met behulp van dagvaarding bevoegdheden en gag orders. Als u een RSA-verbinding met een belangrijke website gebruikt, kan het verstandig zijn om aan te nemen dat de sleutel al bekend is.

natuurlijk, zelfs wanneer NSA niet zijn toevlucht neemt tot directe maatregelen, is er altijd de mogelijkheid om sleutels te verkrijgen via een remote software exploit. Het mooie is dat deze aanvallen niet eens remote code uitvoering vereisen. Gezien de juiste kwetsbaarheid, het kan gewoon een handvol misvormde SSL Verzoeken nodig om de volledige inhoud van de OpenSSL/SChannel heap in kaart te brengen.

bron: New York Times

suborning hardware encryption chips. Een aanzienlijk deel van het SSL-verkeer op het Internet wordt geproduceerd door hardwareapparaten zoals SSL-terminators en VPN-enabled routers. Gelukkig hoeven we niet te speculeren over de veiligheid van deze apparaten — we weten al dat NSA/GCHQ hebben samengewerkt met hardwarefabrikanten om decryptie op verschillende grote VPN-encryptie-chips ‘mogelijk te maken’.

de NSA-documenten zijn niet duidelijk over hoe deze mogelijkheid werkt of of er zelfs SSL bij betrokken is. Als dat zo is, is de voor de hand liggende gok dat elke chip stukjes van de sessiesleutel versleutelt en exflitreert via ‘willekeurige’ velden zoals IVs en handshake nonces. Dit is namelijk relatief eenvoudig te implementeren op een ondoorzichtig hardwareapparaat. De interessante vraag is hoe je ervoor zorgt dat deze achterdeuren alleen door NSA kunnen worden uitgebuit — en niet door rivaliserende inlichtingendiensten. (Enkele gedachten daarover hier.)

Zijkanaalaanvallen. Traditioneel wanneer we cryptografische algoritmen analyseren houden we ons bezig met de verwachte In-en uitgangen van het systeem. Maar echte systemen lekken allerlei extra informatie. Deze’ zijkanalen ‘ — die gebruikstijd, hulpbronnenverbruik, cache timing en RF — emissies omvatten-kunnen vaak worden gebruikt om geheime sleutelmateriaal te extraheren.

het goede nieuws is dat de meeste van deze kanalen alleen exploiteerbaar zijn wanneer de aanvaller zich in fysieke nabijheid van een TLS-server bevindt. Het slechte nieuws is dat er omstandigheden zijn waarin de aanvaller dichtbij kan komen. Het meest voor de hand liggende voorbeeld gaat gevirtualiseerde TLS-servers in de cloud-instelling, waar een slimme aanvaller fysieke middelen kan delen met het doelapparaat.

een tweede aanvalsklasse gebruikt tijdsinformatie op afstand om een RSA-sleutel langzaam te herstellen. Deze aanvallen kunnen worden uitgeschakeld via tegenmaatregelen zoals RSA blinding, hoewel amusant, sommige ‘secure’ hardware co-processors kunnen eigenlijk deze tegenmaatregelen uitschakelen standaard! Op zijn minst, dit maakt de hardware kwetsbaar voor aanvallen door een lokale gebruiker, en kan zelfs remote herstel van RSA sleutels vergemakkelijken.

generatoren voor zwakke willekeurige getallen. Zelfs als u gebruik maakt van strong Perfect Forward Secrecy ciphersuites, hangt de beveiliging van TLS fundamenteel af van de beschikbaarheid van onvoorspelbare willekeurige getallen. Niet toevallig, knoeien met random number generator standaarden lijkt een bijzondere focus van NSA ‘ s inspanningen te zijn geweest.

willekeurige getallen zijn kritisch voor een aantal elementen in TLS, maar ze zijn vooral belangrijk op drie plaatsen:

  1. aan de kant van de klant, tijdens de RSA handshake. De RNG wordt gebruikt om de RSA pre-master secret en encryption padding te genereren. Als de aanvaller de uitvoer van deze generator kan voorspellen, kan ze vervolgens de hele sessie decoderen. Ironisch genoeg is een storing van de server RNG veel minder verwoestend voor de RSA handshake.*
  2. op de client of server, tijdens de Diffie-Hellman handshake (s). Aangezien Diffie-Hellman een bijdrage van elke kant van de verbinding vereist, maakt een voorspelbare RNG aan beide kanten de sessie volledig transparant.
  3. tijdens het genereren van sleutels op lange termijn, in het bijzonder van RSA-sleutels. Als dit gebeurt, ben je de lul.
en je hoeft niet zo verfijnd te zijn om een willekeurige nummergenerator te verzwakken. Deze generatoren zijn al verrassend kwetsbaar, en het is erg moeilijk om te detecteren wanneer er een kapot is. De beheerders van Debian maakten dit punt prachtig terug in 2008 toen een dwalende code cleanup verminderde de effectieve entropie van OpenSSL tot slechts 16 bits. In feite, RNG ‘ s zijn zo kwetsbaar dat de uitdaging hier is niet de verzwakking van de RNG — elke idioot met een toetsenbord kan dat doen — het doet dit zonder het maken van de implementatie trivially kwetsbaar voor iedereen anders.

het goede nieuws is dat het relatief eenvoudig is om te knoeien met een SSL-implementatie om het te versleutelen en exfiltreren van de huidige RNG-seed. Dit vereist nog steeds dat iemand de bibliotheek fysiek wijzigt, of een permanente exploit installeert, maar het kan slim worden gedaan zonder zelfs maar veel nieuwe code toe te voegen aan de bestaande OpenSSL code. (OpenSSL ‘ s liefde voor functie pointers maakt het bijzonder gemakkelijk om te knoeien met dit spul.)

als knoeien niet uw stijl is, waarom niet de achterdeur in het zicht? Dat is de aanpak die NSA gebruikte met de Dual_EC RNG, gestandaardiseerd door NIST in speciale publicatie 800-90. Er is overtuigend bewijs dat NSA opzettelijk ontworpen deze generator met een achterdeur — een die hen in staat stelt om elke TLS/SSL-verbinding gemaakt met behulp van het te breken. Aangezien de generator is (was) de standaard in RSA ‘ s BSAFE bibliotheek, je moet verwachten dat elke TLS-verbinding gemaakt met behulp van die software mogelijk worden aangetast.

en ik heb niet eens gezegd Intel ‘ s plannen om de Linux kernel RNG te vervangen door zijn eigen hardware RNG.

esoterische zwakke punten in PFS-systemen. Veel webservers, waaronder Google en Facebook, gebruiken nu Perfect Forward Secrecy versleutelsuites zoals ephemeral Diffie-Hellman (DHE en ECDHE). In theorie bieden deze cijfers de beste van alle mogelijke werelden: sleutels blijven bestaan voor een sessie en verdwijnen dan zodra de verbinding voorbij is. Hoewel dit niet bespaart u van RNG problemen, het maakt diefstal van sleutels een heel stuk moeilijker.

PFS-versleutelsuites zijn een goede zaak, maar een verscheidenheid aan subtiele problemen kunnen hun stijl belemmeren. Ten eerste kan het mechanisme voor de hervatting van de sessie kieskeurig zijn: sessiesleutels moeten lokaal worden opgeslagen of versleuteld en aan gebruikers worden gegeven in de vorm van sessietickets. Helaas vermindert het gebruik van sessietickets de ‘perfectheid’ van PFS-systemen enigszins, omdat de sleutels die worden gebruikt voor het versleutelen van de tickets nu een grote zwakte in het systeem vormen. Bovendien kun je ze niet eens intern houden op één server, omdat ze moeten worden gedeeld tussen alle front-end servers van een site! Kortom, ze lijken een soort nachtmerrie.

een laatste punt van zorg is de validatie van Diffie-Hellman-parameters. Het huidige SSL-ontwerp gaat ervan uit dat DH-groepen altijd eerlijk worden gegenereerd door de server. Maar een kwaadaardige implementatie kan deze aanname schenden en slechte parameters gebruiken, die derden afluisteren mogelijk maken. Dit lijkt een vrij onwaarschijnlijke weg voor het inschakelen van surveillance, maar het gaat om te laten zien hoe delicaat deze systemen zijn.

het Tinfoil Hat Spectrum

ik ga naar de volgende groep aanvallen verwijzen als ’tinfoil hat’ kwetsbaarheden. Waar de vorige kwesties Alle hefboomwerking bekende technieken, elk van de volgende voorstellen vereisen volledig nieuwe cryptanalytische technieken. Dit alles is een manier om te zeggen dat het volgende deel pure speculatie is. Het is leuk om te speculeren, natuurlijk. Maar het vereist dat we feiten aannemen die niet in bewijs zijn. Bovendien moeten we een beetje voorzichtig zijn met waar we stoppen.

dus vanaf nu voeren we in wezen een gedachte-experiment uit. Laten we ons voorstellen dat de NSA een passieve SSL-breaking mogelijkheid heeft; en verder, dat het niet afhankelijk is van de trucs van de vorige sectie. Wat blijft er over?

de volgende lijst begint met de meest’ waarschijnlijke ‘ theorieën en werkt in de richting van de echt krankzinnige.

RSA-sleutels breken. Er is een hardnekkig gerucht in ons vakgebied dat NSA 1024-bit RSA sleutels aan het kraken is. Het is twijfelachtig dat dit gerucht voortkomt uit enige echte kennis van NSA operaties. Meer waarschijnlijk is het gedreven door het feit dat het kraken van 1024-bit sleutels is zeer haalbaar voor een organisatie met NSA middelen.

hoe haalbaar? Verschillende geloofwaardige onderzoekers hebben geprobeerd om deze vraag te beantwoorden, en het blijkt dat de kosten lager zijn dan je denkt. Lang geleden in 2003, Shamir en Tromer geschat $10 miljoen voor een speciaal gebouwde machine die een factor 1024-bit sleutel per jaar. In 2013, Tromer verlaagd die nummers tot ongeveer $1 miljoen, rekening houdend met hardware vooruitgang. En het kan aanzienlijk lager zijn. Dit is kleingeld voor NSA.In dezelfde lijn onderzochten Bernstein, Heninger en Lange de haalbaarheid van het kraken van RSA met behulp van gedistribueerde netwerken van standaard pc ‘ s. Hun resultaten zijn vrij verontrustend: in principe, een cluster over de grootte van de real-life Conficker botnet zou kunnen doen ernstig geweld om 1024-bit sleutels.

gezien dit alles zou je je kunnen afvragen waarom deze mogelijkheid zelfs in de categorie ‘aluminiumfoliehoed’ valt. Het simpele antwoord is: omdat niemand het echt gedaan heeft. Dat betekent dat het in ieder geval denkbaar is dat de bovenstaande schattingen dramatisch te hoog of zelfs te laag zijn. Bovendien, RSA-1024 sleutels worden snel uitgefaseerd. Het kraken van 2048 bit toetsen zou significante wiskundige vooruitgang vereisen, die ons veel dieper in de aluminiumfolie hoed brengt.**

kraken van RC4. Op papier ondersteunt TLS een verscheidenheid aan sterke encryptie-algoritmen. In de praktijk is ongeveer de helft van al het TLS-verkeer beveiligd met de krakende oude RC4 cipher. En dit zou je zorgen moeten maken — want RC4 begint zijn leeftijd te laten zien. In feite, zoals gebruikt in TLS is het al kwetsbaar voor (borderline) praktische aanvallen. Dus het lijkt een aardige kandidaat voor een echte cryptanalytische vooruitgang van NSA ‘ s kant.

helaas is het probleem met deze theorie dat we eenvoudigweg geen enkele aanval kennen die de NSA in staat zou stellen om RC4 op nuttige wijze te kraken! De bekende technieken vereisen dat een aanvaller duizenden of miljoenen cijfers verzamelt die ofwel (a) versleuteld zijn met verwante sleutels (zoals in WEP) of (b) dezelfde platte tekst bevatten. De bekendste aanval tegen TLS neemt de laatste vorm aan-het vereist dat het slachtoffer miljarden sessies vaststelt, en zelfs dan herstelt het alleen vaste plaintext-elementen zoals cookies of wachtwoorden.

het tegenargument is dat de publieke onderzoeksgemeenschap de afgelopen tien jaar niet erg hard heeft nagedacht over RC4 — deels omdat we dachten dat het zo gebroken was dat mensen ermee waren gestopt (Oeps!) Als we al onze aandacht erop hadden gericht (of beter, de aandacht van de NSA), wie weet wat we vandaag zouden hebben.

als je me vertelde dat de NSA een echt nieuwe cryptanalytische mogelijkheid had, zou ik het met Jake eens zijn en met de vinger wijzen naar RC4. Vooral omdat de alternatieven veel enger zijn.

nieuwe zijkanaalaanvallen. Voor het grootste deel, remote timing aanvallen lijken te zijn gedood door de implementatie van tegenmaatregelen zoals RSA blinding, die de timing verstoren door het vermenigvuldigen van een willekeurige verblindende factor in elke versleuteling voorafgaand aan decryptie. In theorie zou dit timing informatie in wezen waardeloos moeten maken. In de praktijk implementeren veel TLS-implementaties compromissen in de verblindende code die deze aanvallen zou kunnen doen herleven, dingen zoals het kwadrateren van een verblindende factor tussen decryptie operaties, in plaats van het genereren van een nieuwe elke keer. Het is onwaarschijnlijk dat er hier aanvallen zijn, maar wie weet.

Goofy stuff. Misschien heeft NSA wel iets geweldigs in haar mouw. Het probleem met het openen van de doos van deze Pandora is dat het echt moeilijk om het weer gesloten. Heeft Jerry Solinas echt koken de NIST P-curves om een aantal verbazingwekkende nieuwe aanval te ondersteunen (die NSA wist over weg terug in de late jaren 1990, maar we hebben nog niet ontdekt)? Heeft de NSA een gigantische supercomputer genaamd TRANSTR die elk cryptosysteem kan forceren? Is er een gigantische kwantumcomputer in het BWI Friendship annex? Voor antwoorden op deze vragen kun je net zo goed de magische 8-bal schudden, want Ik heb geen idee.

conclusie

we weten en kunnen het antwoord op deze dingen niet weten, en eerlijk gezegd zal het je gek maken als je erover begint na te denken. Het enige wat we echt kunnen doen is NSA/GCHQ op hun woord geloven als ze ons vertellen dat deze capaciteiten ‘extreem fragiel’zijn. Dat zou ons tenminste hoop moeten geven.

de vraag is nu of we goed genoeg kunnen raden om die kwetsbaarheid van een waarschuwing in een belofte te veranderen.
opmerkingen:

* een storing van de RNG van de server kan resulteren in voorspelbare waarden zoals de Serverrandom-en session-ID ‘ s. Een aanvaller die deze waarden kan voorspellen kan in staat zijn om actieve aanvallen uit te voeren tegen het protocol, maar — in de RSA ciphersuite, althans — ze niet passief compromis toe te laten.

* * hoewel 1024-bit RSA-sleutels worden geëlimineerd, gebruiken veel servers nog steeds 1024-bit voor Diffie-Hellman (meestal om redenen van efficiëntie). De aanvallen op deze sleutels zijn vergelijkbaar met die tegen RSA — echter, het grote verschil is dat verse Diffie-Hellman ‘ephemeral’ sleutels worden gegenereerd voor elke nieuwe verbinding. Het doorbreken van grote hoeveelheden verkeer lijkt vrij duur.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.