12. tammikuuta 2010

3G matkapuhelinverkkojenkin salaus murrettu

Kirjoitin aikaisemmin blogissani siitä, että gsm-puhelun salaus (A5/1 algoritmi) murtuu jo kannettavalla tietokoneellakin, joten matkapuhelimella soitetut puhelut ovat helposti salakuunneltavissa. Gsm-salauksen murtumisesta on ollut viime aikoina paljon juttua mm. täällä. Jostain syystä media on herännyt asialle vasta viime aikoina, vaikka esimerkiksi minä olen kertonut jo vuosikausia kotisivuillani, että gsm-salaus on pilipalikryptoa ja se on murrettavissa ei vain teoriassa, vaan myös käytännössä. No hyvä, että media jaksaa nykyään sentään kertoa vuosikausia vanhasta asiasta, eikä leimata minua ja muita asiasta jo vuosia puhuneita paranoideiksi salaliittoteoreetikoiksi.

Uutta uutista aiheeseen liittyen on se, että ilmeisesti myöskin 3G verkossa käytetty Kasumi-salausalgoritmiin perustuva salaus on murrettavissa. Aikaisemmin on pidetty selviönä, että 3G verkko (sekä siltä osin myös vanha gsm-verkko, kun siellä käytetään ko. A5/3 algoritmia) tarjoaa parempaa tietoturvaa ja suojan salakuuntelulta. Nyt on käynyt ilmi, että myöskin tämä vahvempi ja uudempi salaus on murrettavissa. Paperi asiaan liittyen luettavissa täällä.

Suora lainaus:"These complexities are so small that we have actually simulated the attack in less than two hours on a single PC, and experimentally verified its correctness and complexity."

Sen enempää teknisiin yksityiskohtiin menemättä on todettava, että taas nähdään mitä seuraa, kun kallispalkkaiset "asiantuntijat" suunnittelevat norsunluutornissaan salausmenetelmiä ja käytäntöjä tajuamatta oikeasti yhtään mitään tietoturvasta ja kryptosta. Vahvaa, siis ihan aikuisten oikeasti vahvaa salausta on ollut saatavilla vaikka miten kauan aikaa, mutta sitä ei viitsitä käyttää, vaan turvaudutaan kaikenlaisiin ihmeellisiin purkkaviritelmiin (kuten Kasumin väännelmä ja vanhat gsm-kryptot). Ottaisivat käyttöön vahvat salausalgoritmit (AES, Twofish, Serpent, tms.), vahvat tiivistefunktiot (SHA-2, Whirpool, RIPEMD-160, tms.) ja riittävät avain- blokki- ja iv:n koot (256bit) sekä hoitaisivat noiden kaikkien toteutuksen ihan tervettä järkeä käyttäen niin mitään ongelmia ei olisi - eikä tulisi vuosikymmeniin! Mutta kun ei niin ei. Jotkut eivät vaan osaa, vaikka varmasti nostavat kymmenkertaista palkkaa meikäläiseenkin verrattuna moisten kanssa näpertämisestä...

Jostain syystä sovelluskehittäjät eivät ole tajunneet iskeä tähän aukkoon ja tarjota suurta valikoimaa ohjelmia älypuhelimiin, jotka salaisivat vahvalla salauksella puhelut ja viestit, joita puhelimilla käydään (toisten vastaavanlaisten ohjelmien omaavien puhelimien kanssa). Tarjolla on toki erikoispuhelimia sekä salausohjelmistojakin, mutta hinta on erittäin korkea, koska kilpailua on todella vähän.

Sovellukset sinällään ovat varmaan varsin helppoja luoda, koska olemassaolevia sovelluksia ja menetelmiä (OpenPGP, OpenSSH, HushMessenger, OTR, jne.) on roppakaupalla. Jonkun pitäisi vain värkätä noista älypuhelimessa toimiva versio puheensalaukseen ja laittaa se mieluiten ilmaiseen levitykseen. Itse olisin kyllä valmis maksamaan kohtuullisesti, jos saisin vahvaa salausta tukevan ohjelmiston puheluideni suojaksi matkapuhelimeeni...huomatkaa sana "kohtuullisesti", satoja euroja vuodessa en ole moisesta valmis maksamaan, mieluummin käytän sitten salattua sähköpostia tärkeiden asioiden hoitoon jos niikseen tulee!

Hieman ihmettelen, miksei vaikkapa Nokia tarjoa sisäänrakennettua salattua Voip-sovellusta matkapuhelimiinsa? Skypehän on jo vanha juttu, mutta missä viipyy NokiaVoip? Edelleenkin, matkapuhelin mahdollistaisi sinälläänkin jo paljon erilaisia turvallisuuteen liittyviä toimintoja, jos niitä vain haluttaisiin hieman kehittää ja ottaa käyttöön. Luulisi kysyntää olevan jos moinen olisi valmiiksi asennettuna puhelimiin... Voisi toki olla, että eri maiden tiedustelupalvelut ja viranomaiset eivät hyväksyisi kyseisiä ohjelmia, koska ne tehokkaasti estäisivät puhelin- ja tekstiviestiliikenteen salakuuntelua.

Ainoa keino pitää radioteitse liikkuvan tiedon yksityisyys turvattuna on salata se. Sama pätee myös kaikkeen internetin kautta kulkevaan tietoon. Ilman salausta se on periaatteessa miltei kenen tahansa salakuunneltavissa ja hyväksikäytettävissä. Salauksessa puolestaan on  käytettävissä vain kahta erilaista: Pilipalikryptoa sekä avoimeen analysointiin perustuvaa vahvaa salausta...mitään välimuotoa ("riittävän hyvä", "ei-julkinen" tms.) ei ole, eikä voi olla olemassakaan. Jostain syystä näinkin perustavaa laatua olevan asian ymmärtäminen on erilaisille "asiantuntijoille" käsittämättömän vaikeata.

6 kommenttia:

Ni ko N kirjoitti...

Mietin että miksi niin suuri osa nettisivuista käyttää http:tä eikä https:ää? Viekö salaus niin paljon enemmän CPY syklejä? Ihmettelen että Microsoft ei anna edes lukea sähköpostia salatun yhteyden yli (ellei käytä POP3:a).

Wikipedia ei tarjoa https:ää ollenkaan, ja google ohjaa http:n puolelle :(

Markus Jansson kirjoitti...

Itse asiassa Google tarjoaa nykyään Gmailin oletuksena https-yhteyden ylitse.

http://gmailblog.blogspot.com/2010/01/default-https-access-for-gmail.html

Niko N kirjoitti...

Oho, typotin nimeni ja CPU:n :D

Googlesta ei voi tehdä hakuja https:llä. Kokeile https://www.google.com

Jarkko kirjoitti...

Paljonkos esim. AES-salaus vaatii prosessoritehoja? Riittääkö esim. jonkin halvan 3g kännykän tehot varmasti puheen reaaliaikaseen salaukseen sillä?

Markus Jansson kirjoitti...

No jos ja kun kännykät riittävät pyörittämään kaikenlaisia java-härpäkkeitä, niin varmasti AES:ää. Monissa älypuhelimissa prosessorin MHz-määrät ovat yleensä yli 200MHz, joissain jopa 800MHz. AES on kuitenkin erittäin kevyt salausalgoritmi.

Ongelmia voi ehkä tuottaa vahva RSA-salaus. 4096bit voi tuottaa päänvaivaa, muistan miten aikoinaan vanhalla tietokoneella PGP:lläkin se raksutti tietokonetta tovin aikaa. Näin ollen en usko, että älypuhelimen kryptossa on mielekästä käyttää aina RSA:ta, vaan sitä voisi käyttää esim. ensimmäisellä yhteyskerralla digitaaliseen allekirjoitukseen tms. ja jatkossa voisi pärjätä jaetun salaisuuden tms. avulla ja kevyellä DH tai ECC:llä.

Periaatteessa kuitenkaan turvallinen puheensalauskaan ei vaadi kuin ensimmäisellä kerralla 4096 DH, sekä sen jälkeen aina AES-128. Puhelinsoiton tekijät voivat tunnistaa toisensa äänestä ja lukea toisilleen salausavaimen tiivisteen ja siten varmistua, että molemmilla on sama avain (eikä välistävetoa ole voitu tehdä). Tämän jälkeen luotua avainta voidaan aina jatkossa käyttää uudelleen siten, että lähetetään vaikka 256bit satunnainen luku josta siitä ja tuosta alkuperäisestä avaimesta muodostetaan aina uusi salausavain, jolloin touhu on todella nopeata.

Tietysti mikään ei estä käyttämästä tietokonetta avainten turvalliseen levittämiseen jne. tms. Tällöin mitään julkisen avaimen kryptoa ei tarvitse tehdä puhelimella.

Jarkko kirjoitti...

Kaikki uudetkaan kännykät eivät kuitenkaan jaksa niitä java-härpätteitäkään pyörittään ja sen kännykkäsalauksen pitäisi pyöriä tietysti kaikilla 20 € kännyköilläkin. Tulevaisuudessa voidaan sitten tietysti siirtyä johonkin enemmän tehoa vaativaan parempaan salaukseen.

Tuo salausavaimen sanominen ennen puhelua taas lisäisi puhelinsoiton vaivaa taas käytännössä niin paljon ettei suurin osa sitä haluaisi ruveta käyttämään.