for noen uker siden skrev jeg et langt innlegg om NSAS BULLRUN-prosjekt for å undergrave moderne krypteringsstandarder. Jeg hadde tenkt å komme tilbake til dette på et tidspunkt, siden jeg ikke hadde tid til å diskutere problemene i detalj. Men så kom ting i veien. Mange ting, faktisk. Noen som jeg håper å skrive om i nær fremtid.
Men før jeg kommer dit, og med fare for å kjede dere alle til tårer, ønsket jeg å komme tilbake til dette emnet minst en gang til, om bare å pontifisere litt om et spørsmål som har plaget meg.
DU ser, NSA BULLRUN briefing sheet nevner AT NSA har brutt ganske mange krypteringsteknologier, hvorav noen er mer interessante enn andre. En av disse teknologiene er spesielt overraskende for meg, siden JEG bare ikke kan finne ut hvordan NSA kan gjøre det. I dette ekstremt lange innlegget skal jeg prøve å grave litt dypere inn I Det viktigste spørsmålet Som Står Overfor Internett i dag.
Spesifikt: Hvordan i helvete bryter NSA SSL?
Delen AV BULLRUN briefing ark. Kilde: New York Times.
for å holde ting på målet skal jeg lage noen grunnleggende grunnregler.
FØRST er JEG godt klar over AT NSA kan installere skadelig programvare på datamaskinen din og pwn noen kryptografi du velger. Det interesserer meg ikke i det hele tatt, av den enkle grunn at det ikke skalerer bra. NSA kan gjøre dette mot deg, men de kan ikke gjøre det for en hel befolkning. Og det er egentlig det som bekymrer meg om de siste lekkasjene: muligheten FOR AT NSA bryter kryptering med henblikk på masseovervåkning.
av samme grunn kommer vi ikke til å bekymre oss for MITM-angrep. MENS VI vet AT NSA kjører disse, er DE også et veldig målrettet angrep. Ikke Bare Er Mitmer detekterbare hvis du gjør dem i stor skala, de samsvarer ikke med det vi vet om HVORDAN NSA gjør storskala avlytning-for det meste via strålesplittere og kraner. Med andre ord: vi er veldig bekymret for passiv overvåking.
reglene ovenfor er ikke absolutte, selvfølgelig. Vi vil vurdere begrensede målrettede angrep på servere, forutsatt at de senere tillater passiv dekryptering av store mengder trafikk; f. eks. dekryptering av trafikk til store nettsteder. Vi vil også vurdere vilkårlige modifikasjoner av programvare og maskinvare-noe VI vet AT NSA allerede gjør.
Et siste punkt: for å holde ting fra å gå av skinnene, har jeg delt dette innlegget i to seksjoner. Den første vil dekke angrep som bare bruker kjente teknikker. Alt i denne delen kan implementeres av EN TAO-ansatt med nok gumption og tilgang til programvare. Den andre delen, som jeg har tittelen ‘Tinfoil Hat Spectrum’ dekker morsomme og spekulative ting-alt fra nye sidekanalangrep helt til den store kvantecomputeren nsa holder ved SIDEN AV BWI.
Vi begynner med det ‘praktiske’.
Angrep som bruker Kjente Teknikker
Tyveri AV rsa-nøkler. DEN mest åpenbare måten Å ‘knekke’ SSL innebærer egentlig ikke å knekke noe. Hvorfor kaste bort tid og penger på kryptanalyse når du bare kan stjele nøklene? Dette problemet er spesielt bekymret for servere som er konfigurert FOR tls RSA-håndtrykket, der en enkelt 128-byte-servernøkkel er alt du trenger for å dekryptere alle tidligere og fremtidige tilkoblinger fra enheten.
faktisk er denne teknikken så åpenbar at DET er vanskelig å forestille SEG AT NSA bruker mye ressurser på sofistikerte kryptanalytiske angrep. Vi vet AT GCHQ og NSA er helt komfortable suborning SELV AMERIKANSKE tilbydere i utlandet. Og innenfor våre grenser har de vist vilje til å skaffe TLS / SSL-nøkler ved hjelp av stevningsmyndigheter og gag-ordrer. Hvis DU bruker EN RSA-tilkobling til et stort nettsted, kan det være fornuftig å anta at nøkkelen allerede er kjent.
SELVFØLGELIG, selv HVOR NSA ikke ty til direkte tiltak, er DET alltid mulighet for å skaffe nøkler via en ekstern programvareutnyttelse. Det fine er at disse angrepene ikke engang krever ekstern kjøring av kode. Gitt riktig sårbarhet, kan det bare kreve en håndfull misdannede SSL-forespørsler for å kartlegge hele innholdet I OpenSSL / SChannel-bunken.
Kilde: New York Times
Suborning maskinvare kryptering chips. EN betydelig del AV SSL-trafikken på Internett produseres av maskinvareenheter som SSL-terminatorer og VPN-aktiverte rutere. Heldigvis trenger VI ikke å spekulere om sikkerheten til disse enhetene — VI vet allerede AT NSA / GCHQ har samarbeidet med maskinvareprodusenter for å’ aktivere ‘ dekryptering på flere store VPN-krypteringschips.
nsa-dokumentene er ikke klare på hvordan denne evnen fungerer, eller om DET til OG med innebærer SSL. Hvis det gjør det, er det åpenbare gjetningen at hver chip krypterer og exflitrates biter av øktnøkkelen via ’tilfeldige’ felt som IVs og håndtrykk nonces. Faktisk er dette relativt enkelt å implementere på en ugjennomsiktig maskinvareenhet. Det interessante spørsmålet er hvordan man sikrer at disse bakdørene bare kan utnyttes av NSA-og ikke av rivaliserende etterretningsorganisasjoner. (Noen tanker om dette her.)
sidekanalangrep. Tradisjonelt når vi analyserer kryptografiske algoritmer, bekymrer vi oss med de forventede inngangene og utgangene til systemet. Men ekte systemer lekker all slags ekstra informasjon. Disse sidekanalene-som inkluderer driftstid — ressursforbruk, cache-timing og RF-utslipp – kan ofte brukes til å trekke ut hemmelig nøkkelmateriale.
den gode nyheten er at de fleste av disse kanalene bare kan utnyttes når angriperen er i fysisk nærhet til EN tls-server. Den dårlige nyheten er at det er forhold der angriperen kan komme nær. Det mest åpenbare eksemplet innebærer virtualiserte tls-servere i skyinnstillingen, der en smart angriper kan dele fysiske ressurser med målenheten.
en annen klasse av angrep bruker ekstern timinginformasjon for å sakte gjenopprette EN RSA-nøkkel. Disse angrepene kan deaktiveres via mottiltak som RSA blinding, men amusingly, noen ‘sikre’ maskinvare co-prosessorer kan faktisk slå disse mottiltak av som standard! I det minste gjør dette maskinvaren sårbar for angrep fra en lokal bruker, og kan til og med lette ekstern gjenoppretting AV RSA-nøkler.
Svake tilfeldige tallgeneratorer. Selv om du bruker sterke Perfect Forward Secrecy ciphersuites, avhenger SIKKERHETEN TIL TLS fundamentalt på tilgjengeligheten av uforutsigbare tilfeldige tall. Ikke tilfeldigvis synes manipulering med tilfeldige tallgeneratorstandarder å ha vært et spesielt fokus for NSAS innsats.
Tilfeldige tall er kritiske for en rekke elementer I TLS, men De er spesielt viktige på tre steder:
- på klientsiden, under RSA håndtrykk. RNG brukes til å generere RSA pre-master hemmelig og kryptering padding. Hvis angriperen kan forutsi utgangen av denne generatoren, kan hun senere dekryptere hele økten. Ironisk nok er en feil i serveren RNG mye mindre odeleggende for RSA-handtrykket.*
- på klient-eller serversiden, under Diffie-Hellman håndtrykk (er). Siden Diffie-Hellman krever et bidrag fra hver side av tilkoblingen, gjør en forutsigbar RNG på hver side økten helt gjennomsiktig.
- under langsiktig nøkkelgenerering, spesielt AV RSA-nøkler. Hvis dette skjer, er du skrudd.
den gode nyheten er at det er relativt enkelt å tukle MED EN SSL-implementering for å få den til å kryptere og exfiltrere det nåværende rng-frøet. Dette krever fortsatt at noen fysisk endrer biblioteket, eller installerer en vedvarende utnyttelse, men det kan gjøres smart uten å legge til mye ny kode til den eksisterende OpenSSL-koden. (Openssls kjærlighet til funksjonspekere gjør det spesielt enkelt å tukle med slike ting.)
hvis manipulering ikke er din stil, hvorfor ikke sette bakdøren i vanlig syn? DET er tilnærmingen NSA tok Med Dual_EC RNG, standardisert AV NIST i Spesiell Publikasjon 800-90. DET er overbevisende bevis på AT NSA bevisst utviklet denne generatoren med en bakdør — en som gjør at de kan bryte ENHVER TLS/SSL-tilkobling som er gjort ved hjelp av den. Siden generatoren er (var) standard i RSAS BSAFE-bibliotek, bør du forvente at HVER TLS-tilkobling som er gjort ved hjelp av den programvaren, blir potensielt kompromittert.
Og Jeg har ikke engang nevnt Intels planer om å erstatte Linux-kjernen RNG med sin egen maskinvare RNG.
Esoteriske Svakheter I PFS-systemer. Mange webservere, Inkludert Google og Facebook, bruker Nå Perfect Forward Secrecy ciphersuites som ephemeral Diffie-Hellman (DHE og ECDHE). I teorien gir disse ciphersuites det beste av alle mulige verdener: nøkler vedvarer i en økt og forsvinner deretter når forbindelsen er over. Selv om dette ikke sparer DEG for RNG-problemer, gjør det nøkkeltyveri mye vanskeligere.
PFS ciphersuites er en god ting, men en rekke subtile problemer kan krampe deres stil. For en ting, økten gjenopptakelse mekanismen kan være pirkete: øktnøkler må enten lagres lokalt, eller krypteres og gis ut til brukere i form av øktbilletter. Dessverre reduserer bruken av session billetter noe perfectness AV PFS systemer, siden nøklene som brukes til å kryptere billettene nå representerer en stor svakhet i systemet. Videre kan du ikke engang holde dem interne til en server, siden de må deles blant alle nettstedets front-end-servere! Kort sagt, de virker som et mareritt.
et siste område av bekymring er validering Av Diffie-Hellman parametere. DEN nåværende SSL-designen antar AT DH-grupper alltid er ærlig generert av serveren. Men en ondsinnet implementering kan krenke denne antagelsen og bruke dårlige parametere, som gjør det mulig for tredjeparts avlytting. Dette virker som en ganske usannsynlig avenue for å muliggjøre overvåking, men det viser hvor delikat disse systemene er.
Tinfoil Hat Spectrum
jeg skal referere til neste gruppe angrep som’ tinfoil hat ‘ sårbarheter. Hvor de tidligere utgavene alle utnytter kjente teknikker, krever hvert av de følgende forslagene helt nye kryptanalytiske teknikker. Alt som er en måte å si at følgende avsnitt er ren spekulasjon. Det er gøy å spekulere, selvfølgelig. Men det krever at vi antar fakta som ikke er bevis. Dessuten må vi være litt forsiktige med hvor vi stopper.
så herfra utfører vi i hovedsak et tankeeksperiment. La oss forestille OSS AT NSA har en passiv SSL-bryteevne; og dessuten at DEN ikke stole på triksene i den forrige delen. Hva er igjen?
følgende liste begynner med de mest sannsynlige teoriene og arbeider mot det virkelig vanvittige.
Bryte RSA-nøkler. Det er et vedvarende rykte i vårt felt at NSA knekker 1024-bit RSA-nøkler. Det er tvilsomt at dette ryktet stammer fra noen reell kunnskap OM NSA-operasjoner. Mer sannsynlig er det drevet av det faktum at sprengning av 1024-biters nøkler er svært mulig for en organisasjon med NSAS ressurser.
hvor mulig? Flere troverdige forskere har forsøkt å svare på dette spørsmålet, og det viser seg at kostnadene er lavere enn du tror. Helt tilbake i 2003 estimerte Shamir og Tromer $10 millioner for en spesialbygd maskin som kunne faktor en 1024-bit nøkkel per år. I 2013 reduserte Trommer disse tallene til rundt $1 million, med hensyn til maskinvareforbedringer. Og det kan være betydelig lavere. Dette er lommeskift for NSA.
Langs lignende linjer undersøkte Bernstein, Heninger og Lange muligheten FOR å knekke RSA ved hjelp av distribuerte nettverk av standard-Pcer. Resultatene deres er ganske forstyrrende: i prinsippet kan en klynge om størrelsen på det virkelige Conficker botnet gjøre alvorlig vold til 1024-biters nøkler.
Gitt alt dette, kan du spørre hvorfor denne muligheten er selv i kategorien’ tinfoil hat’. Det enkle svaret er: fordi ingen faktisk har gjort det. Det betyr at det i det minste er tenkelig at estimatene ovenfor er dramatisk for høye-eller til og med for lave. VIDERE blir rsa-1024-tastene raskt faset ut. Cracking 2048 bit nøkler ville kreve betydelige matematiske fremskritt, tar oss mye dypere inn i tinfoil hatten.**
Sprekker RC4. PÅ papir støtter TLS en rekke sterke krypteringsalgoritmer. I praksis er omtrent halvparten AV ALL TLS-trafikk sikret med den knirkete gamle RC4-krypteringen. OG dette burde bekymre deg — FORDI RC4 begynner å vise sin alder. Faktisk, som brukt I TLS, er det allerede sårbart for (borderline) praktiske angrep. Dermed virker DET som en fin kandidat for et sant kryptanalytisk fremskritt fra NSAS side.
dessverre er problemet med denne teorien At vi rett og slett ikke vet om noe angrep som ville tillate NSA å spre rc4 med fordel! De kjente teknikkene krever at en angriper samler tusenvis eller millioner av chiffertekster som enten (a) er kryptert med relaterte nøkler (SOM I WEP) eller (b) inneholder samme klartekst. Det mest kjente angrepet mot TLS tar sistnevnte form-det krever at offeret etablerer milliarder økter — og selv da gjenoppretter det bare faste klartekstelementer som informasjonskapsler eller passord.
motargumentet er at det offentlige forskningsmiljøet ikke har tenkt veldig hardt PÅ RC4 det siste tiåret — delvis fordi vi trodde det var så ødelagt at folk hadde sluttet å bruke DET (oops! Hvis VI hadde fokusert all vår oppmerksomhet på DET (eller BEDRE, NSAS oppmerksomhet), hvem vet hva vi ville ha i dag.
hvis DU fortalte MEG AT NSA hadde en virkelig ny kryptanalytisk evne, ville Jeg være enig Med Jake og peke fingeren PÅ RC4. Mest fordi alternativene er langt skumlere.
Nye sidekanalangrep. For det meste, eksterne timing angrep synes å ha blitt drept av gjennomføringen av mottiltak SOM RSA blinding, som forvirre timing ved å multiplisere en tilfeldig blinding faktor i hver chiffertekst før dekryptering. I teorien bør dette gjøre timinginformasjon i hovedsak verdiløs. I praksis implementerer MANGE tls-implementeringer kompromisser i blendingskoden som kan gjenopplive disse angrepene, ting som å kvadrere en blendende faktor mellom dekrypteringsoperasjoner, i stedet for å generere en ny hver gang. Det er ganske usannsynlig at det er angrep her, men hvem vet.
Tullete ting. KANSKJE NSA har noe virkelig fantastisk opp i ermet. Problemet med å åpne Denne Pandoras boks er at det er veldig vanskelig å få det lukket igjen. Lagde Jerry Solinas VIRKELIG nist P-kurver for å støtte noen fantastiske nye angrep (SOM NSA visste om vei tilbake på slutten av 1990-tallet, men vi har ennå ikke oppdaget)? HAR NSA en gigantisk supercomputer kalt TRANSLTR som kan brute-force noe kryptosystem? Er DET en gigantisk kvantecomputer på Bwi Friendship-vedlegget? For svar på disse spørsmålene kan du like godt bare riste Magic 8-Ball, fordi jeg ikke har en anelse.
Konklusjon
vi vet ikke og kan ikke vite svaret på disse tingene, og ærlig talt vil det gjøre deg gal hvis du begynner å tenke på det. Alt vi egentlig kan gjøre er å ta NSA / GCHQ på deres ord når de forteller oss at disse evnene er ‘ekstremt skjøre’. Det burde i det minste gi oss håp.
spørsmålet er nå om vi kan gjette godt nok til å gjøre den skjørheten fra en advarsel til et løfte.
Merknader:
* en feil i server RNG kan resultere i noen forutsigbare verdier som ServerRandom Og økt-Ider. En angriper som kan forutsi disse verdiene, kan være i stand til å kjøre aktive angrep mot protokollen, men — i DET MINSTE i RSA — ciphersuite-innrømmer de ikke passivt kompromiss.
** Selv om 1024-biters rsa-nøkler elimineres, bruker mange servere fortsatt 1024-biters For Diffie-Hellman (hovedsakelig av effektivitetshensyn). Angrepene på disse tastene ligner de som brukes mot RSA-men den store forskjellen er at friske Diffie-Hellman ‘efemere’ nøkler genereres for hver ny tilkobling. Å bryte store mengder trafikk virker ganske kostbart.