20. joulukuuta 2013

GnuPG:n käyttämä 4096bit RSA murtuu mikrofonilla!

Tiedossa on aina ollut, että jos mitä tahansa tietokoneesta lähtevää johtoa voidaan salakuunnella (virta, verkko, jne.), ainakin teoriassa on mahdollista salakuunnella myös tietokoneen sisäistä sielunelämää, kuten prosessorissa pyöriviä salausavaimia. Uusi löytö, prosessorin aiheuttaman äänen, salakuuntelu mikrofonilla on kuitenkin astetta vakavampi ja mielenkiintoisempi temppu. Salakuuntelu onnistuu paitsi erikoismikrofonilla, niin myöskin tietokoneen läheisyyteen jätetyllä älypuhelimella. Ainakin minulle on täysin uutta tietoa se, että prosessori ylipäätään päästää jotain ääniä, joita on edes teoriassa mahdollista kuunnella.

Vahvakin salaus, tässä tapauksessa murtovarma pidetty 4096bit RSA, murtuu helposti, kun sen käytön sielunelämää päästää tällä tapaa vakoilemaan. Vaikka hyökkäys on kohdistettu nimenomaisesti tuohon salaukseen ja vieläpä nimenomaan GnuPG salausohjelmistoon (PGP:n yksi versio ikäänkuin), se voidaan varmasti kohdistaa melkein mihin tahansa muuhunkin ohjelmistoon ja useimpiin salausalgoritmeihin. Tämä asettaa melkoisia haasteita salausohjelmistoja vakavissaan käyttäville.

Varman päälle pelaavien tulee jatkossakin käyttää omalla akullaan toimivia kannettavia tietokoneita, joissa verkko-ominaisuudet, mikrofonit ja kaiuttimet on otettu kokonaan pois käytöstä. Kyseiset laitteet on lisäksi pidettävä mahdollisimman kaukana mahdollisista elektromagneettista salakuuntelua (yleensä hajasäteilyn vakoilua) harrasvista tahoista tai mieluiten niitä tulisi käyttää pelkästään Faradayn häkissä. Nyt näiden käytössä on huomioitava myöskin äänen mahdollisuus, mikä periaatteessa on helppoa, mutta käytännössä voi olla todellakin vaikeaa toteuttaa.

Riittävä äänieristys toki auttaa, mutta mikä sellainen mahtaisi olla? Lasermikrofonilla on mahdollista salakuunnella melkein mitä tahansa tilaa kaukaakin. Äänellä on paha tapa johtua vaikkapa raskasrakenteisia seiniä, lämpöpattereita, ilmastointiputkia, vesijohtoja ja muita vastaavia pitkin käsittämättömän hyvin. Ei ole helppoa saada aikaan tilaa, jossa ääni todellakin pysyy, ainakaan jos ei omista jotain levytysstudiota tms.


Äänen peittäminen toisilla äänilllä voi kuulostaa helpolta ratkaisulta, mutta on yleensä täysin turvatonta. Äänet on näet mahdollista eristää toisistaan ja sitä kautta laskea pois osa prosessorin pitämistä äänistä. Jotta luotu äänimaailma oikeasti voisi peittää prosessorin ääniä, sen pitäisi olla sisällöltään täysin satunnaista ja osua juuri oikeille taajuuksille prosessorin pitämien äänien kanssa (tässä tapauksessa siis 10-150 KHz). Ei mitenkään helppo homma saada aikaan.

Paras ja helpoin ratkaisu, joskaan ei mitenkään takuuvarma, on sama kuin hajasäteilynkin kohdalla: Hommata kolme-neljä täsmälleen identtistä tietokonetta (ja monitoria) vierekkäin ja laittaa kaikki niistä touhuamaan jotain mahdollisimman sekavaa samaan aikaan. Tällöin yhden niistä aikaansaamat signaalit sekoittuvat tehokkaasti muiden aikaansaamisen signaalien kanssa yhdeksi puuroksi, josta on vaikeaa erotella kunkin signaalin lähdettä ja sisältöä. Näin ainakin teoriassa. Ehkä.



Lisäystä 21.12.2013:
Anonyymi kirjoittikin kommenttiosioon selvennyksen:"
GnuPG-salausohjelmaan on julkaistu päivitys versiolla 1.4.16, joka estää tutkijoiden käyttämän metodin toiminnan käyttämällä RSA blinding -tekniikkaa. GnuPG 2.x -versiot eivät kärsi samasta haavoittuvuudesta, sillä ne ovat käyttäneet RSA blinding -tekniikkaa aina."

3 kommenttia:

jaska kirjoitti...

Tosta extremetechin jutusta: "(In case you were wondering, the acoustic signal is actually generated by the CPU’s voltage regulator, as it tries to maintain a constant voltage during wildly varied and bursty loads)"

Tosta seuraa, että luultavasti äänen voi peittää myös sillä, että kuormittaa prosessoria myös muilla hommilla salauksen/purun aikana, jolloin jännitesäätäjän ääneen sekoittuu muutakin. Mahdollisesti jännitesäätäjän äänen voisi eliminoida kokonaan pitämällä prosessorikuorman tapissaan koko ajan.

Anonyymi kirjoitti...

GnuPG-salausohjelmaan on julkaistu päivitys versiolla 1.4.16, joka estää tutkijoiden käyttämän metodin toiminnan käyttämällä RSA blinding -tekniikkaa. GnuPG 2.x -versiot eivät kärsi samasta haavoittuvuudesta, sillä ne ovat käyttäneet RSA blinding -tekniikkaa aina.

Markus Jansson kirjoitti...

Aaah, hyvä, ongelma ei siis ole niin paha kuin voisi luulla! :-)