Akustična kriptoanaliza
Izradio: Marko Buder (napomena, još u izradi)
Sadržaj |
Uvod
Pregled
Kriptoanalitički side-channel napadi ciljaju implementacije kriptografskih algoritama koji, možda sigurni na matematičkom nivou, omaške ispuštaju tajne informacije kroz indirektne kanale: varijacije u potrošnji energije, elektromagnetske emanacije, varijacije u proračunu vremena, sukobi procesorskih resursa, npr. u predmemoriji, itd.
Akustične emanacije, zvukovi koje generira računalo, jedan su od potencijalnih kanala. Mehanički zvukovi ventilatora, hard diskova, očiti su indikatori sistemske aktivnosti, ali oni nose vrlo grube informacije koje nisu baš korisne kod kriptoanalize. Ovdje se fokusiramo na drugačije izvore zvuka računala: vibracije elektroničkih komponenti u računalu, ponekad čujne kao nerazgovijetni visoki tonovi ili zvižduci. Ove akustične emanacije, obično uzrokovane regulacijom napona u strujnom krugu, su povezane sa sistemskom aktivnošću otkad procesori drastično mijenjaju povlačenje struje ovisno o tipu operacija koje izvode. Međutim, propusnost tih signala je vrlo slaba: do 20 kHz za čujne signale i obične mikrofone, te do par stotina kHz korištenjem ultrazvučnih mikrofona. Iznad tih frekvencija zbog gubitka signala u zraku ili preslabe osjetljivosti mikrofona, postaje ih nemoguće detektirati.
Akustična kriptoanaliza: Usprkos nekim poteškoćama, izvlačenje cijelog ključa putem akustične kriptoanalize je potpuno izvedivo na običnom softveru i hardveru. Fokus je bačen na GnuPG (GNU Privacy Guard), popularna cross-platform, open source implementacija OpenPGP standarda. Opaženo je da GnuPG RSA potpisivanje je smjesta identificirano u akustičnom frekvencijskom spektru. Štoviše, taj spektar je često ovisan o ključu, stoga tajni ključevi mogu biti razotkriveni po zvuku koji rade kada ih koristimo. Isto vrijedi i za ElGamal enkripciju. Ovdje je ukratko opisan napad izvlačenja ključa koji nam može izvući 4096 bitni GnuPG RSA tajni ključ iz prijenosnog računala, za samo sat vremena, analizom zvuka kojeg računalo proizvodi tokom enkripcije odabranih šifri. Demonstrirani su razni napadi, na razne mete, raznim metodama od kojih su neke: korištenje mikrofona sa najobičnijeg mobilnog telefona smještenog pored računala, isto kao i korištenje veoma osjetljivih mikrofona na daljinu od 4 metra. U suštini, napad se oslanja na vještinu vađenje odabranih šifri, koji uzrokuje numeričko otkazivanje unutar GnuPG algoritma modularnog potenciranja. To pomaže specijalnoj vrijednosti nule da se često pojavljuje u samoj unutrašnjosti petlje algoritma, gdje pogađa kontrolu toka. Jedno ponavljanje petlje je prebrzo za direktno akustično zapažanje, ali rezultat se ponavlja i pojačava više tisuća puta, te se dobije ukupan podebljani rezultat curenja koji je primjetan u akustičnom spektru iznad tisuću milisekundi.
Odabrani kanali šifre preko e-maila: Napad izvlačenja ključa zahtjeva opis šifre prilagodljivo odabrane sa strane napadača. Prethodan posao zahtjeva odabir šifre obično napadnutih mrežnih protokola kao što su SSL/TLS, WEP ili koristi direktan pristup na zaštićeni ulaz uređaja. Da se napad primjeni na GnuPG, identificiramo i iskorištavamo novo odabrani vektor napada na šifru: OpenPGP kriptirane e-mail poruke. Naročito je ciljan Enigmail, popularan plugin Thunderbird e-mail platformi, koja omogućuje transparentan potpis i enkripciju e-mail poruka koristeći GnuPG, koji slijedi OpenPGP i PGP/MIME standarde. Enigmail automatski dekriptira dolazne e-mail poruke, sve dok je GnuPG lozinka u predmemoriji ili prazna. U ovom slučaju, osoba koja vrši napad, može poslati prikladno izrađene poruke žrtvi, čekati da poruke stignu na žrtvino računalo, te zatim snimiti akustičan potpis koji se čuje kod dekripcije, s čime se odabire petlja napada.
Primjena: Ovaj napad moguće je izvršiti na mnoga prijenosna računala, raznih proizvođača i modela, na raznim operacijskim sustavima. Kvaliteta signala i udaljenost kod napada, variraju dosta i čak su na neki način povezani s starošću računala. Napad je moguć na razne verzije GnuPG 1.x serije (sve do verzije 1.4.15 koja je izašla 15.10.2013.). Uglavnom, ovaj studij je fokusiran na pojedine kriptografske implementacije (GnuPG 1.x), odabran kanal šifre (Open PGP kriptirane e-mail poruke procesirane sa strane Enigmaila), i odabrane klase računala (laptop). Međutim, smatra se da je sličan napad moguć i na raznim drugim softverima, hardverima i protokolima.
Mogući scenariji napada
Mobilna aplikacija za akustični napad: Mobilni telefoni su sveprisutni i sadrže interne mikrofone, koji su potpuno dostatne širine frekvencijskog pojasa i osjetljivosti za napade na ekstrakciju ključa. Štoviše, imaju pojačane sposobnosti procesiranja signala, te mogu zatvoriti prilagodljivo otvorene petlje odabrane šifre istovremeno. Na taj način, cijeli napad je zapakiran u softver, te ne zahtjeva nikakav specijalan hardver niti posebno znanje. Napadač može jednostavno instalirati softver, zatim fizički doći blizu napadnute opreme, te samo pravilno smjestiti uređaj za napad na određeno vrijeme, ovisno o trajanju napada. Npr., na nekom sastanku, napadač može (ne previše očito) staviti mobilni telefon na stol pored žrtvinog laptopa i do kraja sastanka imati ključ a da žrtva nema pojma o tome. Slično se može napraviti i sa tabletom ili s vlastitim laptopom.
Prisluškivanje putem zaraženog mobilnog uređaja: Mobilni uređaj može biti izdaleka zaražen, kroz mnogo raznih vrsta poznatih napada, te kod za napad instaliran. Kada ga vlasnik smjesti pored računala koje napada, mobilni uređaj može samostalno napasti metu i poslati rezultate napadaču.
Samo-prisluškivanje: Dovedeno do ekstrema, uređaj s spojenim mikrofonom ili sam sa svojim mikrofonom može špijunirati sam sebe. U tom scenariju, napadač kontrolira neovlaštene procese kao što je dozvola mikrofonu za snimanje i mrežni pristup. Samo putem toga, napadač može snimiti i analizirati kriptografske operacije koje se odvijaju s različitim procesima, pa čak i u različitim virtualkama na istom računalu.
Specijalni uređaji za špijunažu: Oni su temelji špijunaže. Veličine su kutije za šibice, te rade na baterije. Sa ugrađenim mikrofonom i pristupom mreži, vrlo jeftini, tradicionalno korišteni za snimanje razgovora, ali mogu naći i svoju korisnost u kriptoanalizi. Ostala tradicionalna oprema za prisluškivanje, kao bugovi za telefone, laserski mikrofoni sposobni za slušanje kroz prozor, mogu biti također korišteni kao sredstvo napada.
Eksperimentalni setup
Razmotrena su 3 različita setupa sa razlikama u cijeni, mobilnosti i sposobnosti mjerenja. Prvo je setup u laboratoriju, koji nudi najbolje rezultate mjerenja, ali je skup i teško se prenosi. Drugi je prijenosni setup, koji nudi nešto slabije rezultate mjerenja, ali je moguć rad na baterije i stane u kovčeg. Treći setup stane i u džep, običan mobilni telefon.
Laboratorijski uvjeti
Ovakvo postavljanje cilja na najbolju kvalitetu izvučenog zvuka (u smislu osjetljivosti, jačine zvuke i frekvencije) te ima najveću fleksibilnost kod konfiguracije mjerenja. Korištena je profesionalna laboratorijska oprema, u kombinaciji sa nekom elektronskom opremom rađenoj po narudžbi. Takav setup nije prenosiv, može biti smanjen i prilagođen, ali se gubi fleksibilnost i kvaliteta signala. Jedina komponenta koja mora biti u blizini mete je mikrofon, tj. transduktor, koji konvertira akustične signale (promjene u pritisku zraka) u električne signale (napon). Ovaj setup koristi kondenzatorske mikrofone, u kojima je transduktor otjelovljen u mikrofonskoj kapsuli. Korištene su 3 takve kapsule s različitim kombinacijama frekvencija i osjetljivosti. Te kapsule moraju biti rukovođene nekim predpojačalom, koje mora imati napajanje. Signal je pojačan korištenjem pojačala niske razine buke i digitaliziran se pomoću specijalnog uređaja za prikupljanje podataka.
Portabilni setup
Izgrađen je alternativni setup koji je prenosiv (npr. u aktovci), radi na baterije, ali ipak zadržava maksimalnu osjetljivost i buku do 100 kHz. Zadržane su mikrofonske kapsule i predpojačalo, ali drugačije napajanje, pojačalo i komponente za pretvaranje analognog signala u digitalni. U ovakvim uvjetima, snimanje, pojačanje i dio filtriranja moguće je pomoću mikrofona kojeg napajaju baterije. Analogno digitalna konverzija radi se sa kompaktnim USB operativnim uređajem.
Setup za mobilni telefon
Ovdje se koristi najrasprostranjeniji kompaktni hardver koji je lako dostupan svakom potencijalnom napadaču: mobilni telefon. Maleni su i jeftini, te sadrže u sebi mikrofone i pojačala, ali nedostatak je da su to obično mikrofoni i pojačala slabe kvalitete, koji nisu dizajnirani za frekvencije i amplitude tražene u napadu. Slični rezultati su s mnogo aktualnih Android mobilnih uređaja. Osjetljivost je slabija, i mnogo više (napadaču) neželjene buke je nego u prethodna 2 setupa.
Napad na daljinu
Moguće je pomoću paraboličnih mikrofona, ili laserskih vibrometara. Potrebna udaljenost od mete može biti dosta povećana korištenjem paraboličnog mikrofona, koji fokusira dolazeće zvučne valove u jednu žarišnu točku. S ovakvim setupom, moguće je preuzeti podatke s udaljenosti do 4 metra.
Promatranje akustičnog curenja
Razlikovanje različitih sistemskih operacija i duljine kodova
Za tu svrhu, napravljen je jednostavan program koji izvršava petlje koje sadrže neke 32 bitne instrukcije: HLT (Sleep mode), MUL (množenje cijelih brojeva), FMUL (množenje brojeva sa pomičnim zarezom)… Testirano je dosta vrsta prijenosnih računala, te gotovo svako računalo je pokazalo rezultate, štoviše, neka računala su imali veoma bogat spektar curenja, te što je najvažnije, mogu se razlikovati razne procesorske operacije. Akustična mjerenja mogu također biti korištena za razlikovanje petlji različitih duljina, koje izvršavaju isti tip instrukcija.
Izvori akustičnog curenja
Da budemo sigurni da je prikupljeni signal stvarno akustičan, a ne elektromagnetske smetnje koje je pokupio mikrofon, jednostavno se postavi izolacijski materijal ispred mikrofona (pluto, spužva, tanki komad tkanine).
Glavni krivac curenja: Eksploatiran signal akustične emanacije nije uzrokovan ventilatorima, hard diskom ili zvučnicima, što je najlakše dokazano isključivanjem istih. Već je uzrokovan vibracijama električnih komponenti u sklopovlju napajanja, poznat svima kao visoko cviljenje koje uzrokuju neki uređaji te naponski punjači. Precizan fizički izvor važnih emanacija je teško točno karakterizirati, budući da se razlikuje između raznih modela napadnutih uređaja, te je obično lociran u teško dohvatljivom mjestu, samoj unutrašnjosti napajanja. Štoviše, još je teže naći precizan izvor, zbog mehanički zalemljenih komponenti i zbog akustične refleksije. Ipak, malo eksperimentiranja sa položajem mikrofona otkrilo je najkorisnije signale u blizini regulatora strujnog kruga koji opskrbljuje CPU (procesor). Uistinu, moderni procesori drastično mijenjaju povlačenje snage, ovisno o broju procesa koji se izvode, a to utječe i mijenja dinamiku regulatora.
Smještaj i položaj mikrofona
Smještaj i položaj mikrofona u odnosu na tijelo računala mnogo utječe na prikupljeni signal. Najidealnije položaj bio bi čim bliže napajanju koje opskrbljuje procesor, ono se nalazi na matičnoj ploči prijenosnog računala, te je teško doći do njega i trebali bi rastaviti računalo ili izvaditi tipkovnicu. Stoga, potencijalni napadač se mora osloniti na razne rupice koje ima laptop na sebi zbog ventilacije, te na portove (USB, SD card čitač, Ethernet port…) Poželjno je staviti mikrofon čim dalje od ventilatora, budući da ometa signal. alternativa tome je pauziranje kriptoanalize do kad se računalo ne ohladi i isključi ventilatore.
Izdvajanje GnuPG ključa
Demonstrirano je da je moguće, s vrlo slabom propusnosti, do 35 kHz, izvući informacije o kodiranju izvršenom na napadnutom računalu. Slika ispod prikazuje spektrogram dvije identične RSA operacije potpisa, sa istim 4096 ključem i istom porukom. Svakoj operaciji prednjači kratak zastoj, tokom kojeg je procesor u „sleep modu“. Zastoji u kojima je računalo besposleno, prikazani su kao svijetle horizontalne linije. Između tih linija, operacije potpisivanja mogu biti jasno izdvojene. Na pola puta operacije potpisivanja je prijelaz između nekoliko grupa frekvencija (označeno sa žutim strelicama). Taj prijelaz detaljno odgovara RSA implementaciji GnuPG.
Za javni ključ n = pq, RSA signatura s = m^d mod n računa se procjenom m^(d mod(p-1)) mod p, te m^(d mod(q-1)) mod q i kombiniranjem sa „kineskim teoremom o ostacima“. Prva polovica operacije potpisa odgovara modularnom potenciranju p, a druga polovica modularnom potenciranju q. Prijelaz između ta dva tajna modula je jasno vidljiva. Štoviše, taj efekt je konzistentan i izvodljiv (u raznim frekvencijskim grupama) na mnogo modernih računala, raznih proizvođača.
Razlikovanje RSA tajnih ključeva
U svrhu mjerenja trajanja i unutarnjih osobina pojedinačnog RSA tajnog ključa, istraženi su efekti raznih ključeva. Budući da akustična signatura potenciranja modularnog cijelog broja ovisi o uključenim modulima, drugačiji ključevi zvuče drugačije, tj. kada se to prenese u digitalni zapis, svaka signatura ima jedinstven spektralni potpis.
Pregled ekstrakcije GnuPG RSA ključa
U RSA kriptosustavu, procedura generiranja ključa odabire dva slučajna broja prepisane veličine, fiksni javni eksponent e, te tajni eksponent d, koji je u odnosu sa e, ed = 1 mod ∅ (n), gdje je javni ključ pk = (n,e) a tajni ključ sk =(d,p,q). RSA dekripcija šifre c počinje sa računanjem c^d mod n. Moderni RSA sigurnosni standardi ovlašćuju veličinu ključa na najmanje 2048 bita u svrhu postizanja dostatnog nivoa sigurnosti. Konkretno, ovdje je površno prikazano izvlačenje još jačeg ključa, 4096 bita. Prikazano je kako se izvlači puni RSA ključ u manje od sat vremena, korištenjem samo akustičnih emanacija sa ciljanog računala.
GnuPG rutina modularnog potenciranja
GnuPG koristi optimiziranu RSA koja je temeljena na Kineskom teoremu o ostacima (CRT), te se zove RSA-CRT. Takva optimizacija poboljšava dekripciju do 4 puta, izvođeći 2 potenciranja koristeći 2048 bitne brojeve umjesto jednog potenciranja 4096 bitnog broja. Da izračuna m= c^d mod q, GnuPG prvo računa dvije konstante dp te dq, a zatim m_p = c^(d(p)) mod p, te m_q = c^(d(q)) mod q. Naposljetku, m_p i m_q se kombiniraju da se dobije m. U suštini, šifra (potencijalno odabrana sa strane napadača) je direktno prenesena na modularno potenciranje, zajedno s tajnim eksponentom i modulom.
Algebarske operacije s ogromnim brojevima implementirane su u GnuPG softver. GnuPG koristi internu matematičku knjižnicu nazvanu MPI, koja se bazira na GMP knjižnici, da sprema i izvodi matematičke operacije sa velikim brojevima. MPI sprema svaki velik broj na način da ih razgrana u 32 bitne riječi. Poznavanje načina rada modularnog potenciranja i GnuPG-a, uz odgovarajuću tehničku opremu, napadaču bi bilo dosta za izvlačenje ključa.
Budući da GnuPG predstavlja velike brojeve postrojene u 32 bitne grane, optimizira se broj smanjenja modula, stalnim provjeravanjem (nakon svakog množenja i kvadriranja) da li broj grana u djelomično izračunatim rezultatima prelazi broj grana u modulima. Ako je tako, izvršava se operacija modularnog umanjenja. Ako ne, umanjenje neće smanjiti broj grana, te se ne izvodi. Ovo mjerenje veličine u smislu grana za razliku od bitova, neznatno komplicira napad.
A ovako izgleda pojednostavljeni algoritam napada:
Vektor napada
Napad akustičnom kriptoanalizom zahtjeva dekriptiranje šifre koja je namjerno odabrana sa strane napadača. Open PGP i GnuPG koriste se u raznim komunikacijskim aplikacijama, isto kao i u aplikacijama za prijenos podataka, te backup aplikacijama. Sposoban napadač u mogućnosti je uzrokovati dekripciju odabrane šifre za većinu tih aplikacija. Ovdje je opisan napad kriptiranog e-mail-a.
Napad na Enigmail šifru:
Enigmail je plugin za Mozillu Firefox i SeaMonkey e-mail klijente koji omogućuje transparentan potpis i enkripciju e-mail poruka, korištenjem OpenPGP formata datoteke, te PGP/MIME kodiranje. Enigmail pruža integrirano grafičko korisničko sučelje, te interakciju, ali kriptografija se odvija pozivom na eksterni GnuPG fajl. Dolazeće e-mail poruke dekriptiraju se na zahtjev korisnika. Enigmail automatski dekriptira dolazeće poruke, kada Thunderbird izbaci novu notifikaciju. Dekripcija se događa kad je neophodna GnuPG lozinka u predmemoriji. Napadač može poslati malo adaptiranu e-mail poruku žrtvi. Kada računalo žrtve prihvati tu poruku, napadač prati akustične emanacije tokom dekripcije, te izvuče dio ključa. Zatim nastavi slati poruke (primjerice u obliku spama, da ostane neopažen) do kad ne izvuče sve bitove tajnog ključa.
Isto, tj. slično kao i sa RSA enkripcijom, šifru je lako probiti i kod ElGamal enkripcije.
Mogućnosti zaštite
Akustični štit: Korištenje raznih zvučno nepropusnih materijala bi sigurno smanjilo jačinu signala i otežalo potencijalnom napadaču. Međutim to ima svoju cijenu, zbog redizajna ventilacijskog sustava u prijenosnom računalu, budući da su razne rupice za hlađenje na laptopu neophodno potrebne.
Bučno okruženje: Za očekivati je da smještanje računala u bučno okruženje može spriječiti napad, ali istina je daleko od toga. Buka generirana u tipičnom bučnom okruženju (kao ulica ili soba s glazbom), obično je niskih frekvencija, ispod 10 kHz. Budući da je akustično curenje prisutno znatno više iznad te frekvencije, lako je filtrirati i izdvojiti željeni signal.
Paralelno opterećenje procesora: Lako je pomisliti, da bi se opterećenjem procesora paralelno s operacijom dekriptiranja moglo zamaskirati curenje signala potrebnog napadaču. No testiranje je pokazalo da to i je tako, već ima čak i kontraefekt. Naime, takav pokušaj rezultira padom frekvencija od 10-15 posto, kao što se vidi na slici ispod, te može dodatno olakšati napadaču budući da treba nešto slabiji mikrofon.
Randomizacija šifre: To je jedna od efektnih mjera za zaštitu ključa. Imamo šifru c, umjesto da se odmah dekriptira c, može se generirati 4096 bitni nasumični broj vrijednosti r, izračuna se r^e, te se tada dekriptira r^e * c, te se rezultat pomnoži sa r^-1. Budući da ed = 1 mod ∅ (n) dobivamo sljedeće:
(r^e * c)^d * r^-1 mod n = r^(e(d)) * r^-1 * c^d mod n = r * r^-1 *c^d mod n = m
U ovakvom slučaju, vrijednost poslana na modularno potenciranje je totalno nasumična, te sprječava napad. Ove protumjere imaju netrivijalnu cijenu, budući da je samo potrebno dodatno modularno potenciranje. Također, ne utječe na izdvajanje ključa koji je nezavisan o šifri.
Randomizacija modula: To je protumjera kojom se randomiziraju moduli prilikom svakog potenciranja. Da se izračuna m_q = c^(d(q)) mod q, prvo se izvlači nasumični pozitivan broj srednje veličine t, te računamo m'_q = c^(d(q)) mod tq, tada umanjimo: m_q = m'_q mod q . Još bolje, moduli mogu biti promijenjeni u razne višekratnike q tokom petlje potenciranja.
Normalizacija šifre: Napad zahtjeva odabrane šifre koje su malo veće od q (ali imaju isti broj grana kao i q) da se podvrgne smanjenju modula q. No u ovom slučaju, GnuPG rutina modularnog potenciranja neće umanjiti modul q šifre. Forsira se da to smanjenje dogodi (bez mjenjanja rezultata) kod punjenja šifre sa vodećim nulama ili dodavanjem n na njih. Prije dekriptiranja šifre c, sa c se skinu sve vodeće nule te se računa c' = c mod n . U ovom slučaju, budući da će šifra dana na modularno potenciranje imati isti broj grana kao i q, u slici Algoritma 1, linija 2 se neće dogoditi, te to čini nemogućim korištenje modularne redukcije u liniji 3 istog algoritma, koja napadačima daje vezu i put do šifre.
Izvor
Budući da o ovoj temi nema baš izvora, ovaj rad je gotovo u cijelosti preuzet sa ovog linka: