A Few Thoughts on Cryptographic Engineering

A few weeks ago I writed a long post about the NSA ’s’ BULLRUN ’ project to convert modern encryption standards. Olin aikonut palata asiaan jossain vaiheessa, koska en ehtinyt keskustella asioista yksityiskohtaisesti. Mutta sitten asiat tulivat tielle. Itse asiassa monia asioita. Niistä toivon voivani kirjoittaa lähitulevaisuudessa.

mutta ennen kuin pääsen sinne, ja sillä uhalla, että tylsistytän teidät kaikki kyyneliin, halusin palata tähän aiheeseen vielä ainakin kerran, vaikka vain saarnatakseni hieman minua vaivanneesta kysymyksestä.

NSA: n BULLRUN-tiedotteessa nimittäin mainitaan, että NSA on murtanut melko vähän salaustekniikkaa, joista osa on kiinnostavampia kuin toiset. Yksi noista teknologioista on minulle erityisen yllättävä, koska en vain ymmärrä, miten NSA voisi tehdä sen. Tässä erittäin pitkä viesti aion yrittää kaivaa hieman syvemmälle tärkein kysymys edessä Internet tänään.

nimenomaan: miten helvetissä NSA rikkoo SSL: ää?

Bullrunin tiedotustilaisuuden osio. Lähde: New York Times.

pitääkseni asiat Targetissa aion tehdä muutaman perussäännön.

Ensinnäkin, olen hyvin tietoinen siitä, että NSA voi asentaa tietokoneellesi haittaohjelmia ja käyttää haluamaasi salausta. Se ei kiinnosta minua lainkaan, siitä yksinkertaisesta syystä, että se ei ole kovin hyvä. NSA voi tehdä tämän sinulle, mutta ei koko väestölle. Juuri se viimeaikaisissa vuodoissa huolestuttaa: mahdollisuus, että NSA murtaa salausta massavalvontaa varten.

samasta syystä me emme aio olla huolissamme man-in-the-middle (MITM) – hyökkäyksistä. Vaikka tiedämme, että NSA pyörittää näitä, ne ovat myös hyvin kohdennettuja hyökkäyksiä. Sen lisäksi, että MITM: t ovat havaittavissa, jos niitä tehdään suuressa mittakaavassa, ne eivät sovi yhteen sen kanssa, mitä tiedämme NSA: n laajamittaisesta sieppauksesta-useimmiten säteen jakajien ja hanojen kautta. Toisin sanoen: olemme todella huolissamme passiivisesta valvonnasta.

yllä olevat säännöt eivät tietenkään ole ehdottomia. Harkitsemme rajoitettuja kohdennettuja hyökkäyksiä palvelimiin, jos ne myöhemmin sallivat passiivisen salauksen purkamisen suurille liikennemäärille; esim.salauksen purkamisen suurille verkkosivustoille. Harkitsemme myös mielivaltaisia muutoksia ohjelmistoihin ja laitteistoihin — mitä tiedämme NSA: n jo tekevän.

vielä yksi piste: jottei homma menisi raiteiltaan, olen jakanut tämän postauksen avuliaasti kahteen osaan. Ensimmäinen kattaa hyökkäykset, joissa käytetään vain tunnettuja tekniikoita. Kaikki tässä osiossa voidaan toteuttaa TAO: n työntekijä, jolla on tarpeeksi tarmoa ja Pääsy ohjelmistoihin. Toinen osio, jonka olen nimennyt ”Tinahatun spektriksi”, kattaa hauskat ja spekulatiiviset jutut — aina uusista sivukanavahyökkäyksistä aina valtavaan kvanttitietokoneeseen, jota NSA pitää BWI: n vieressä.

aloitetaan ”käytännöllisestä”.

hyökkäykset, joissa käytetään tunnettuja tekniikoita

RSA-avainten Varkaus. Ilmeisin tapa ’crack’ SSL ei oikeastaan liity halkeilua mitään. Miksi tuhlata aikaa ja rahaa kryptoanalyysiin, kun avaimet voi vain varastaa? Tämä ongelma on erityisen huolestuttava palvelimissa, jotka on määritetty TLS RSA-kädenpuristusta varten, jossa yksi 128-tavuinen palvelinavain on kaikki, mitä tarvitset jokaisen laitteesta tehdyn menneen ja tulevan yhteyden purkamiseen.

itse asiassa tämä tekniikka on niin ilmeinen, että on vaikea kuvitella NSA: n käyttävän paljon resursseja kehittyneisiin kryptoanalyyttisiin hyökkäyksiin. Tiedämme, että GCHQ ja NSA ovat täysin mukavia suborning jopa Yhdysvaltain tarjoajat ulkomailla. Ja rajojemme sisällä he ovat osoittaneet halukkuutta hankkia TLS / SSL-avaimia haastevaltuuksien ja vaitiolomääräysten avulla. Jos käytät RSA-yhteyttä tärkeään verkkosivustoon, voi olla järkevää olettaa, että avain on jo tiedossa.

tietenkin, vaikka NSA ei turvautuisi suoriin toimenpiteisiin, on aina mahdollisuus saada avaimet etäohjelmiston avulla. Kauneus on, että nämä hyökkäykset eivät edes vaadi etäkoodin suorittamisen. Oikean haavoittuvuuden vuoksi OpenSSL/SChannel-kasan koko sisällön kartoittaminen voi vaatia vain kourallisen epämuodostuneita SSL-pyyntöjä.

lähde: New York Times

Suborning hardware encryption chips. Merkittävä osa internetin SSL-liikenteestä tuotetaan laitteistoilla, kuten SSL-terminaattoreilla ja VPN-yhteensopivilla reitittimillä. Onneksi meidän ei tarvitse spekuloida näiden laitteiden tietoturvasta — tiedämme jo, että NSA/GCHQ ovat tehneet yhteistyötä laitevalmistajien kanssa mahdollistaakseen useiden suurten VPN-salaussirujen salauksen purkamisen.

NSA: n asiakirjoista ei selviä, miten tämä ominaisuus toimii, tai liittyykö siihen edes SSL. Jos se tekee, ilmeinen arvaus on, että jokainen siru salaa ja exflitrates bittiä istuntoavaimen kautta ”satunnainen” kentät, kuten IVs ja kädenpuristus nonces. Itse asiassa, tämä on suhteellisen helppo toteuttaa läpinäkymätön laitteisto. Mielenkiintoinen kysymys on, miten varmistetaan, että näitä takaportteja voi käyttää hyväkseen vain NSA — eivätkä kilpailevat tiedustelupalvelut. (Joitakin ajatuksia siitä täällä.)

Sivukanavahyökkäykset. Perinteisesti kun analysoimme salausalgoritmeja, olemme tekemisissä järjestelmän odotettujen tulojen ja lähtöjen kanssa. Mutta oikeat järjestelmät vuotavat kaikenlaista ylimääräistä tietoa. Näitä ”sivukanavia” — jotka sisältävät toiminta — ajan, resurssien kulutuksen, välimuistin ajoituksen ja RADIOTAAJUUSPÄÄSTÖT-voidaan usein käyttää salaisen avainmateriaalin louhimiseen.

hyvä uutinen on, että useimmat näistä kanavista ovat hyödynnettävissä vain, kun hyökkääjä on fyysisesti lähellä TLS-palvelinta. Huono uutinen on se, että on olosuhteita, joissa hyökkääjä pääsee lähelle. Ilmeisin esimerkki liittyy virtualisoituihin TLS-palvelimiin pilviasetuksessa, jossa nokkela hyökkääjä saattaa jakaa fyysisiä resursseja kohdelaitteen kanssa.

toisen luokan hyökkäys käyttää etäajanottotietoja palauttaakseen hitaasti RSA-avaimen. Nämä hyökkäykset voidaan poistaa käytöstä vastatoimilla, kuten RSA: n sokaisulla, vaikka huvittavasti jotkut ”Turvalliset” laitteistoyhteistyöprosessorit saattavat itse asiassa sammuttaa nämä vastatoimet oletusarvoisesti! Ainakin tämä tekee laitteistosta haavoittuvan paikallisen käyttäjän hyökkäyksille ja voi jopa helpottaa RSA-avainten etäpalautusta.

heikot satunnaislukugeneraattorit. Vaikka käyttäisit vahvoja Perfect Forward-Salassapitosalaisuuksia, TLS: n turvallisuus riippuu olennaisesti arvaamattomien satunnaislukujen saatavuudesta. Satunnaislukugeneraattoristandardien peukalointi näyttää olleen NSA: n toiminnan erityinen painopiste.

Satunnaisluvut ovat kriittisiä useille TLS: n alkuaineille, mutta erityisen tärkeitä ne ovat kolmessa paikassa:

  1. asiakaspuolella RSA: n kättelyn aikana. RNG: tä käytetään RSA pre-master secret-ja encryption paddingin luomiseen. Jos hyökkääjä pystyy ennustamaan generaattorin lähdön, hän voi myöhemmin purkaa koko istunnon salauksen. Ironista kyllä, epäonnistuminen palvelimen RNG on paljon vähemmän tuhoisa RSA kädenpuristus.*
  2. asiakkaan tai palvelimen puolella Diffie-Hellmanin kättelyn aikana. Koska Diffie-Hellman vaatii panoksen yhteyden kummaltakin puolelta, ennustettava RNG kummaltakin puolelta tekee istunnosta täysin läpinäkyvän.
  3. pitkän aikavälin avainten, erityisesti RSA-avainten, generoinnin aikana. Jos näin käy, olet kusessa.
sinun ei tarvitse olla niin hienostunut heikentääksesi satunnaislukugeneraattoria. Nämä generaattorit ovat jo yllättävän hauraita, ja on hirveän vaikea havaita, kun yksi on rikki. Debianin ylläpitäjät huomauttivat tästä kauniisti jo vuonna 2008, kun virheetön koodinpuhdistus vähensi OpenSSL: n tehokkaan entropian vain 16 bittiin. Itse asiassa, RNGs ovat niin haavoittuvia, että haaste täällä ei heikennä RNG — idiootti näppäimistö voi tehdä sen — se tekee niin tekemättä täytäntöönpanoa trivially haavoittuva kaikille muille.

hyvä uutinen on, että SSL-toteutukseen on suhteellisen helppo kajota, jotta se salaisi ja poistaisi nykyisen RNG-siemenen. Tämä vaatii vielä jonkun fyysisesti muuttaa kirjastoa, tai asentaa pysyviä hyödyntää, mutta se voidaan tehdä taitavasti edes lisäämällä paljon uutta koodia olemassa olevaan OpenSSL-koodi. (OpenSSL rakkaus toiminto osoittimet tekee erityisen helppo peukaloida tätä tavaraa.)

jos peukalointi ei ole tyyliäsi, miksi et laittaisi takaovea näkyville? Tämän lähestymistavan NSA otti Dual_EC RNG: llä, jonka NIST standardoi erikoisjulkaisussa 800-90. On vakuuttavia todisteita siitä, että NSA tarkoituksella suunniteltu tämän generaattorin takaovi-yksi, jonka avulla he voivat murtaa kaikki TLS / SSL-yhteys tehty sitä. Koska generaattori on (oli) oletus RSA: n BSAFE-kirjastossa, sinun pitäisi odottaa jokaisen kyseisen ohjelmiston avulla tehdyn TLS-yhteyden mahdollisesti vaarantuvan.

enkä ole edes maininnut Intelin suunnitelmia korvata Linux-ytimen RNG omalla laitteistollaan RNG.

PFS-järjestelmien esoteeriset heikkoudet. Monet web-palvelimet, kuten Google ja Facebook, käyttävät nyt Perfect Forward Secret ciphersuites kuten ephemeral Diffie-Hellman (dhe ja ECDHE). Teoriassa nämä salakirjoitukset tarjoavat kaikista mahdollisista maailmoista parhaan: avaimet säilyvät yhden istunnon ajan ja katoavat sitten, kun yhteys on ohi. Vaikka tämä ei pelasta sinua RNG kysymyksiä, se tekee avain varkaus paljon vaikeampaa.

PFS-salakirjoitukset ovat hyvä asia, mutta erilaiset hienovaraiset asiat voivat ahdistaa niiden tyyliä. Ensinnäkin istunnon uudelleenaloittamismekanismi voi olla nirso: istuntoavaimet on joko tallennettava paikallisesti tai salattava ja annettava käyttäjille istuntolippujen muodossa. Valitettavasti istuntolippujen käyttö heikentää jonkin verran PFS-järjestelmien ”täydellisyyttä”, sillä lippujen salaamiseen käytetyt avaimet ovat nykyisin järjestelmän suuri heikkous. Sitä paitsi, et voi edes pitää niitä yhden palvelimen sisällä, koska ne on jaettava kaikkien sivuston etupään palvelimien kesken! Lyhyesti sanottuna ne vaikuttavat painajaisilta.

viimeisenä huolenaiheena on Diffie-Hellman-parametrien validointi. Nykyinen SSL-suunnittelu olettaa, että DH-ryhmät syntyvät aina rehellisesti palvelimella. Mutta haitallinen toteutus voi rikkoa tätä oletusta ja käyttää huonoja parametreja, jotka mahdollistavat kolmannen osapuolen salakuuntelun. Tämä vaikuttaa melko epätodennäköiseltä keinolta valvonnan mahdollistamiseksi, mutta se osoittaa, kuinka herkkiä nämä järjestelmät ovat.

Tinfoil Hat Spectrum

Aion viitata seuraavaan hyökkäyserään ”tinfoil hat” – haavoittuvuuksina. Jos edellisten julkaisujen kaikki hyödyntävät tunnettuja tekniikoita, jokainen seuraavista ehdotuksista edellyttää täysin uusia salauksen analysointitekniikoita. Kaikki tämä on tapa sanoa, että seuraava osio on puhdasta spekulaatiota. On tietysti hauska spekuloida. Mutta se vaatii meitä olettamaan tosiasioita, jotka eivät ole todisteita. Lisäksi meidän on oltava hieman varovaisia siinä, mihin pysähdymme.

joten tästä eteenpäin teemme lähinnä ajatuskoetta. Kuvitellaan, että NSA: lla on passiivinen SSL-murtokyky, ja lisäksi, että se ei luota edellisen osion temppuihin. Mitä on jäljellä?

seuraava lista alkaa ”todennäköisimmillä” teorioilla ja toimii kohti todella hulluja.

murtavat RSA-avaimet. Alallamme huhutaan, että NSA murtaisi 1024-bittisiä RSA-avaimia. Huhu tuskin perustuu mihinkään todelliseen tietoon NSA: n operaatioista. Todennäköisempää on, että 1024-bittisten avainten murtaminen on erittäin mahdollista organisaatiolle, jolla on NSA: n resurssit.

kuinka mahdollista? Useat uskottavat tutkijat ovat yrittäneet vastata tähän kysymykseen, ja on käynyt ilmi, että kustannukset ovat pienemmät kuin luulet. Jo vuonna 2003 Shamir ja Tromer arvioivat 10 miljoonaa dollaria tarkoitukseen rakennetulle koneelle, joka voisi tehdä yhden 1024-bittisen avaimen vuodessa. Tässä 2013, Tromer laski nämä numerot noin $1 miljoonaa, factoring hardware ennakot. Ja se voisi olla huomattavasti pienempi. Tämä on taskurahaa NSA: lle.

samansuuntaisesti Bernstein, Heninger ja Lange tarkastelivat RSA: n murtamisen toteutettavuutta standarditietokoneiden hajautettujen verkkojen avulla. Niiden tulokset ovat melko huolestuttavia: periaatteessa noin tosielämän Conficker-bottiverkon kokoinen rypäs voisi tehdä vakavaa väkivaltaa 1024-bittisille näppäimille.

kaiken tämän huomioon ottaen voi kysyä, miksi tämä mahdollisuus on edes ”foliohattu” – kategoriassa. Yksinkertainen vastaus on: koska kukaan ei ole tehnyt sitä. Se tarkoittaa, että se on ainakin ajateltavissa, että arviot edellä ovat dramaattisesti liian korkea-tai jopa liian alhainen. Lisäksi RSA-1024-avaimia ollaan nopeasti poistamassa käytöstä. Halkeilua 2048 bittinäppäimet vaatisi merkittäviä matemaattisia edistysaskeleita, vie meidät paljon syvemmälle foliohattu.**

krakkaus RC4. Paperilla TLS tukee erilaisia vahvoja salausalgoritmeja. Käytännössä noin puolet kaikesta TLS-liikenteestä turvataan narisevalla vanhalla RC4-salakirjoituksella. Ja tämän pitäisi huolestuttaa sinua — koska RC4 alkaa näyttää ikäänsä. Itse asiassa, kuten käytetään TLS se on jo altis (rajatapaus) käytännön hyökkäyksiä. Näin ollen se vaikuttaa mukavalta ehdokkaalta todelliseen kryptoanalyyttiseen edistykseen NSA: n puolelta.

valitettavasti tämän teorian ongelma on, että emme yksinkertaisesti tiedä mitään hyökkäystä, jonka avulla NSA voisi hyödyllisesti murtaa RC4: n! Tunnetut tekniikat vaativat hyökkääjää keräämään tuhansia tai miljoonia salakirjoitustekstejä, jotka ovat joko (a) salattuja toisiinsa liittyvillä avaimilla (kuten wepissä) tai (b) sisältävät saman selkotekstin. Tunnetuin hyökkäys TLS: ää vastaan on jälkimmäinen muoto — se vaatii uhrilta miljardien istuntojen järjestämistä, ja silloinkin se vain palauttaa kiinteät tekstielementit, kuten evästeet tai salasanat.

vasta-argumentti on, että julkinen tutkimusyhteisö ei ole viimeisen vuosikymmenen aikana miettinyt RC4: ää kovin ankarasti-osittain siksi, että luulimme sen olevan niin rikki, että ihmiset olivat lopettaneet sen käytön (oho!) Jos olisimme keskittäneet kaiken huomiomme siihen (tai paremminkin NSA: n huomion), kuka tietää, mitä meillä olisi tänään.

jos kertoisit minulle, että NSA: lla on yksi todella Uusi kryptoanalyyttinen kyky, olisin Jaken kanssa samaa mieltä ja osoittaisin sormella RC4: ää. Lähinnä siksi, että vaihtoehdot ovat paljon pelottavampia.

uusia sivukanavahyökkäyksiä. Suurin osa etäajanottohyökkäyksistä näyttää tuhoutuneen vastatoimien, kuten RSA: n sokaisun, toteutuksessa, joka sekoittaa ajoituksen kertomalla satunnaisen sokaisukertoimen jokaiseen salaustekstiin ennen salauksen purkamista. Teoriassa tämän pitäisi tehdä ajoitustieto olennaisesti arvottomaksi. Käytännössä monet TLS-toteutukset toteuttavat sokaisevan koodin kompromisseja, jotka saattavat herättää nämä hyökkäykset henkiin, kuten sokaisevan tekijän neliöimistä salauksen purkutoimintojen välillä sen sijaan, että ne tuottaisivat joka kerta uuden. On aika epätodennäköistä, että täällä olisi hyökkäyksiä, mutta kuka tietää.

Hessu juttu. Ehkä NSA: lla on jotain todella hämmästyttävää hihassaan. Pandoran lippaan avaamisessa on se ongelma, että sitä on todella vaikea saada taas kiinni. Tekikö Jerry Solinas todella NIST P-käyrät tukemaan jotain hämmästyttävää uutta hyökkäystä (jonka NSA tiesi jo 1990-luvun lopulla, mutta emme ole vielä löytäneet)? Onko NSA: lla valtava supertietokone nimeltä TRANSLTR, joka voi raa ’ asti pakottaa minkä tahansa kryptosysteemin? Onko BWI: n ystävyysosastolla valtava kvanttitietokone? Saat vastauksia näihin kysymyksiin voit yhtä hyvin ravistella maaginen 8-pallo, koska minulla ei ole aavistustakaan.

johtopäätös

emme tiedä emmekä voi tietää vastausta näihin asioihin, ja rehellisesti sanottuna se tekee hulluksi, jos sitä alkaa miettiä. Voimme vain luottaa NSA: n / GCHQ: n sanaan, kun he kertovat meille, että nämä valmiudet ovat ”äärimmäisen hauraita”. Sen pitäisi ainakin antaa meille toivoa.

kysymys kuuluu nyt, osaammeko arvata tarpeeksi hyvin, jotta voimme kääntää tuon haurauden varoituksesta lupaukseksi.
huomautuksia:

* palvelimen RNG: n vikaantuminen voi johtaa joihinkin ennustettaviin arvoihin, kuten ServerRandom-ja sessiotunnuksiin. Näitä arvoja ennustava hyökkääjä saattaa pystyä suorittamaan aktiivisia hyökkäyksiä protokollaa vastaan, mutta — ainakaan RSA: n salakirjoituksessa-he eivät myönnä passiivista kompromissia.

** vaikka 1024-bittiset RSA-näppäimet poistuvat käytöstä, monet palvelimet käyttävät edelleen 1024-bittisiä Diffie-Hellmanille (lähinnä tehokkuussyistä). Näiden avainten hyökkäykset ovat samanlaisia kuin RSA: ta vastaan käytetyt — suurin ero on kuitenkin se, että jokaista uutta yhteyttä varten luodaan tuoreita Diffie-Hellman ’ephemeral’ – avaimia. Suurten liikennemäärien rikkominen tuntuu varsin kalliilta.

Vastaa

Sähköpostiosoitettasi ei julkaista.