» »

Objavljen članek z več podrobnostmi o "cold-boot" napadu

Objavljen članek z več podrobnostmi o "cold-boot" napadu

Slo-Tech - Kot smo pred časom že poročali. je skupina devetih ameriških raziskovalcev v začetku leta odkrila nov način kraje šifrirnih gesel. Raziskovalci so namreč ugotovili, da se vsebina pomnilniških DRAM modulov ne izgubi v trenutku, ko računalnik ugasnemo, pač pa se počasi "ugaša" z časom. Tako je vsebino delovnega pomnilnika RAM mogoče prebrati še nekaj sekund, do celo nekaj ur po tem (opisujejo tudi primer, ko je vsebina v RAM-u brez osveževanja obstala kar cel teden), ko je bil računalnik ugasnjen. Mimogrede, preskus napada smo v nekoliko poenostavljeni obliki izvedli tudi v Sloveniji.

Te dni pa je bil na CCC konferenci o tem objavljen tudi članek, ki prinaša še več podrobnosti o napadu. Raziskovalci v članku predstavljajo postopke za identifikacijo lokacije in pridobitev šifrirnih gesel šifrinih mehanizmov BitLocker (Vista), TrueCrypt (Linux) in FileVault (Mac OS) po tem, ko so bili računalniki ugasnjeni.

Raziskovalci v članku ugotavljajo, da se tim. bitni razpad podatkov pri novejših RAM-ih odvija hitreje, kot pri starejših, kljub temu pa je ta čas mogoče podaljšati s hlajenjem RAM modulov, predstavili pa so tudi algoritme in tehnike za popravljanje napak bitnega razpada, s katerimi je mogoče rekonstruirati šifrirne ključe tudi v primeru, ko je bitno razpadlo že kar nekaj vsebine pomnilnika.

Za zajem vsebine RAMa je mogoče uporabiti več metod: modificiran PXE zaganjalnik, EFI netboot zaganjalnik, zagon s pomočjo USB (ali CD) medija ter zagon s pomočjo iPoda, pri čemer je mogoče računalnik ponovno zagnati ali pa RAM module prenesti v drug računalnik.

Na koncu članka avtorji predlagajo še nekaj ukrepov za izboljšanje varnosti žal pa zaključijo precej pesimistično in sicer z ugotovitvijo, da DRAM pomnilnik sicer ni varno mesto za hrambo šifrirnih ključev, vendar ob trenutni arhitekturi računalniških sistemov drugega mesta za varnejšo hrambo šifrirnih ključev preprosto - ni.

17 komentarjev

antonija ::

A da bi se pa RAM prepisal z random zaporedjem (ali pa samo niclami) preden se izklopi strom pa ni dobra ideja?
Statistically 3 out of 4 involved usually enjoy gang-bang experience.

Matthai ::

Je.

Samo nekdo mora to narediti. OS ob shutdownu recimo.

Kaj pa, če ti nekdo potegne kabel iz napajalnika? >:D
Kind of an asshole at first sight, but actually a nice guy
when you get to know me personally. :)

Azrael ::

Torej, če piksno prižgane ne vržejo v tekoči dušik, imajo čas kakšno sekundo dokler se ne spraznijo kondiji v napajalcu? V takem času po grafih v pdfju dobijo celotno vsebino. Če mine več časa, pa vedno bolj ugibajo.

Namreč, če bi bilo tako zelo enostavno, se sistem ne bi sesul pri motnjah iz omrežja. UPS bi lahko mečjkal kar precej časa, preden bi vklopil in nič ne bilo narobe.
Nekoč je bil Slo-tech.

Zgodovina sprememb…

  • spremenil: Azrael ()

misek ::

Kaj pa, če ti nekdo potegne kabel iz napajalnika? >:D
Na vsako palčko RAMa dodaš baterijo in malce logike, ki inicializira vsebino, ko zmanjka elektrike.

Matthai ::

Ne, jaz sem po 10 minutah uspel dobiti vem podatke o obiskanih spletnih straneh, bash history in cookije.

Sicer pa: http://citp.princeton.edu/memory/code/. Zakon.
Kind of an asshole at first sight, but actually a nice guy
when you get to know me personally. :)

Matthai ::

Kaj pa, če ti nekdo potegne kabel iz napajalnika? >:D
Na vsako palčko RAMa dodaš baterijo in malce logike, ki inicializira vsebino, ko zmanjka elektrike.

Ja. Teoretično.

Rad bi videl praktično rešitev...
Kind of an asshole at first sight, but actually a nice guy
when you get to know me personally. :)

ender ::

Jaz sem na se dolgo časa nazaj igral z X na Via Epia 5000 matični plošči (mini-ITX), in sem lahko ob zagonu X okolja videl sliko, ki je bila prikazana preden se je le-to izklopilo tudi če je bil računalnik vmes izklopljen 20 minut. Brez kakršnega koli tekočega dušika, kišta pa tudi ni bila priključena na elektriko.
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

Matthai ::

Lahko malo bolj opišeš kaj si delal?
Kind of an asshole at first sight, but actually a nice guy
when you get to know me personally. :)

Mavrik ::

Napajalci v večini primerov tudi po potegu kabla iz njih zagotovijo dovolj elektrike, da se pomnilniški moduli prepišejo (sicer dejstvo, da lahko kondenzatorji v DRAMih držijo svoje stanje dlje od osveževalnega časa ni nič novega za tistega, ki kaj ve o njihovem delovanju in elektroniki). Sam logiko na matični plošči, ki bo tak izpad prepoznala in ustrezno čez NMI obvestila procesor, ki bo sprožil brisanje celic je treba implementirat.
The truth is rarely pure and never simple.

Matthai ::

Prepisovanje traja nekaj časa. Celo BIOS rabi nekaj časa.

Kaj pa če zadevo rešiš tako, da odpreš kištico in RAM-e direktno ven izpuliš?
Kind of an asshole at first sight, but actually a nice guy
when you get to know me personally. :)

antonija ::

Tud hardware resitev se ziher da narest tako kjer bi sporzil panic button ce bi hotel vzet ven RAM. Sam potem se lahko gremo kregat da bo pa nekdo lepo pobral cipe dol iz palck in podobne stvari. Amapk grem stavit da tud za tako situacijo "rozca raste". :p
Statistically 3 out of 4 involved usually enjoy gang-bang experience.

Mavrik ::

Prepisovanje traja nekaj časa. Celo BIOS rabi nekaj časa.


O kakem BIOSu ti tu govoriš? In ta "nekaj časa" je lahko krepko manj kot sekunda, saj to delaš naenkrat na vseh bankah in če malo prilagodiš pomnilniški kontroler in DRAM čipe, da lahko recimo pošiljaš samo ukaze za zapiranje vrstic, se zna ta cikel zelo pospešiti. Zavedaj se, da maš tudi če izpuliš napajanje s plate (ki ima veliko manjše kondenzatorje) še vedno ponavadi še za 200ms+ delovanja toka v sistemu, kar bi znalo biti čisto dovolj.
Navsezadnje na ta način deluje kar nekaj namenskih sistemov, kjer ob izpadu elektrike procesor v tistem času, ko ga še ima na voljo zaradi toga preostalega v kondenzaorjih, shrani celo svoje stanje v NVRAM (ki načeloma rabi precej več toka kot pa DRAM).

Kaj pa če zadevo rešiš tako, da odpreš kištico in RAM-e direktno ven izpuliš?


In kaj ti to pomaga če je problem v tem, da ti DRAM celice obdržijo svoje naboj (navsezadnje je vsaka DRAM pomnilniška celica samo zelo šibek kondenzator s tranzistorjem obešenim gor).
The truth is rarely pure and never simple.

ender ::

Lahko malo bolj opišeš kaj si delal?
Jaz? Namestil X in IceWM, nastavil ozadje, ugasnil in iztaknil kišto, priklopil dodaten IDE kontroler (v edini PCI slot na matični plošči), vgradil dodatne diske, vklopil kišto nazaj, in ko se je X zaganjal, se je najprej za nekaj sekund pojavila slika mojega ozadja, ki pa je bila na vrhu pokvarjena, in pa po celi sliki so bile napake v diagonalnih črtah. Potem je vse skupaj zamenjalo klasično X ozadje (črnobeli vzorec) z X miškinim kazalcem, nakar se je zagnal IceWM, ki je spet nastavil ozadje.
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

Phoebus ::

"Prepisovanje traja nekaj časa. Celo BIOS rabi nekaj časa."
Bios prepisuje ram? POST ga ne prepisuje.

Matthai ::

Prepisovanje traja nekaj časa. Celo BIOS rabi nekaj časa.

Nekateri BIOSi ob zagonu naredijo check RAM-a in ga pobrišejo.

Drugače pa so te rešitve, ki jih opisujete teoretične - jaz bi pa rad imel praktično rešitev že sedaj (ali čez 1 leto)...
Kind of an asshole at first sight, but actually a nice guy
when you get to know me personally. :)

Mavrik ::

--- Nekateri BIOSi ob zagonu naredijo check RAM-a in ga pobrišejo.

Tisto je druga situacija. Tu pri brisanju te ne briga kaj točno boš ti dobil ven na podatkovno vodilo, zato ti niti ni treba čakati da se izhod stabilizira. Lahko delaš to na vseh ploščicah (ali kar vseh čipih) hkrati. Verjetno je tudi čist dovolj da samo odpreš vrstico, in ker te ne briga za podatke, ti niti za poln cycle-time ni treba čakati, ampak samo po vrsti odpiraš vrstice in s tem uničuješ podatke v njih.

--- Drugače pa so te rešitve, ki jih opisujete teoretične - jaz bi pa rad imel praktično rešitev že sedaj (ali čez 1 leto)...

Kaj točno ti preprečuje da na NMI vhod procesorja ne prključiš enega watchdoga za napajanje in spišeš funkcijo ki bo ob sprožitvi NMI interrupta odprl vse vrstice v pomnilniku? Dodaš še pomožno baterijsko napajanje za vsak primer in je.

Drugače pa bi jaz tudi že danes rad mel mobitel z 20-dnevnim standbyem in 1 GHz procesorjem, pa ga javkanje o tem ne bo naredilo nič bolj verjetnega.
The truth is rarely pure and never simple.

Matthai ::

Orodje za brisanje RAM-a (v Ubuntu):

sudo apt-get install secure-delete

smem -ll

3.4.13 Host system RAM
Kind of an asshole at first sight, but actually a nice guy
when you get to know me personally. :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Napad na pomnilnik Rowhammer omogoča krajo šifrirnih ključev

Oddelek: Novice / Znanost in tehnologija
133219 (1462) MrStein
»

Slabi časi za zasebnost v Androidu (strani: 1 2 )

Oddelek: Novice / Varnost
7221539 (17139) matijadmin
»

Akustični napad na RSA šifrirne ključe

Oddelek: Novice / Varnost
4213245 (9006) Matthai
»

Kako so v praksi videti prometni podatki ob uporabi ZRTP šifriranih klicev (strani: 1 2 )

Oddelek: Novice / Zasebnost
5518466 (15562) Matthai
»

Odkrit nov način kraje šifrirnih ključev

Oddelek: Novice / Zasebnost
265522 (4060) Matthai

Več podobnih tem