Cold Boot Attack: Difference between revisions

From
Jump to navigation Jump to search
(Created page with "'''Allgemeines:''' Experiment basiert auf einem Experiment aus Princeton. Das Ziel des Experiments ist es, zu zeigen, dass obwohl RAM ein flüchtiger Speicher ist, der seinen In…")
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Allgemeines:'''
== Allgemeines ==



Experiment basiert auf einem Experiment aus Princeton. Das Ziel des Experiments ist es, zu zeigen, dass obwohl RAM ein flüchtiger Speicher ist, der seinen Inhalt mit der Stromabschaltung verliert, kann man den Prozess des Datenverlustes erheblich (bis zu ein paar Tagen!) verlangsamen, indem man das RAM nach der unten beschriebenen Anleitung im flüssigen Stickstoff zwischenlagert. Eine Person, die imstande ist, die Attacke durchzuführen, kann sensible Daten wie kryptographische Schlüsseln im RAM in Besitz nehmen.
Experiment basiert auf einem Experiment aus Princeton. Das Ziel des Experiments ist es, zu zeigen, dass obwohl RAM ein flüchtiger Speicher ist, der seinen Inhalt mit der Stromabschaltung verliert, kann man den Prozess des Datenverlustes erheblich (bis zu ein paar Tagen!) verlangsamen, indem man das RAM nach der unten beschriebenen Anleitung im flüssigen Stickstoff zwischenlagert. Eine Person, die imstande ist, die Attacke durchzuführen, kann sensible Daten wie kryptographische Schlüsseln im RAM in Besitz nehmen.



'''Theoretische Grundlagen zusammengefasst:'''
== Theoretische Grundlagen zusammengefasst ==



RAM verliert exponentiell Daten über Zeit (üblich 1-30 Sekunden), abhängig von dem Herstellungsjahr des RAMs. Ältere Speicher neigen dazu, dass sie die Daten wegen der geringeren Speicherdichte (DRAM-Zelle besteht aus einem Transistor und einem Kondensator, und je größer der Kondensator ist, desto länger dauert das Entladen des gespeicherten Bits. Jede DRAM-Zelle kann nur einen Bit speichern). Das Entladen der Zelle kann signifikant verzögert werden durch hohen Abfall der Temperatur. Je kälter die Temperatur, desto langsamer wird das Entladen der Zelle zu dem sog. Grundzustand (Zustand, der am wenigsten Energie braucht).
RAM verliert exponentiell Daten über Zeit (üblich 1-30 Sekunden), abhängig von dem Herstellungsjahr des RAMs. Ältere Speicher neigen dazu, dass sie die Daten wegen der geringeren Speicherdichte (DRAM-Zelle besteht aus einem Transistor und einem Kondensator, und je größer der Kondensator ist, desto länger dauert das Entladen des gespeicherten Bits. Jede DRAM-Zelle kann nur einen Bit speichern). Das Entladen der Zelle kann signifikant verzögert werden durch hohen Abfall der Temperatur. Je kälter die Temperatur, desto langsamer wird das Entladen der Zelle zu dem sog. Grundzustand (Zustand, der am wenigsten Energie braucht).




'''Bemerkungen:'''
'''Bemerkungen'''


RAM wird mit dem Druckluftspray statt mit dem Kältespray gekühlt.
RAM wird mit dem Druckluftspray statt mit dem Kältespray gekühlt.
Line 16: Line 19:


Effekt der Kühlung auf die Fehlerraten'''
Effekt der Kühlung auf die Fehlerraten'''



Es wurden Maschinen A-D verwendet.
Es wurden Maschinen A-D verwendet.
Line 28: Line 32:
Jahr: 1999
Jahr: 1999


bei 60 Sekunden ohne Stromversorgung gab es eine 41%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C gab es keine Fehler. Bei 300 Sekunden ohne Strom gab es 50%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C 0,000095% Bits warem fehlerhaft.
Bei 60 Sekunden ohne Stromversorgung gab es eine 41%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C gab es keine Fehler. Bei 300 Sekunden ohne Strom gab es 50%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C 0,000095% Bits warem fehlerhaft.




Line 87: Line 91:





'''Experiment
== Experiment ==
'''


Zuerst haben wir das RAM mit dem Bild 4-mal gefüllt, um sicherzustellen, dass es im RAM ist.
Zuerst haben wir das RAM mit dem Bild 4-mal gefüllt, um sicherzustellen, dass es im RAM ist.
USB-Stick mit dem 30 kB- großen Bild wird an den laufenden Testrechner angesteckt. Wir haben kein größeres Bild genommen, sodass die Zerstückelung des Bildes im RAM auf hintereinanderliegenden Speicherseiten erfolgt. Zuerst wird die RAM gleichmäßig mit dem Kältespray auf ca -40 Grad gekühlt. Dann wird der Strom ausgeschaltet, um die RAM möglichst schnell zu dem Behälter mit dem Stickstoff zu transportieren. Die Information kann im RAM mit sehr geringem Verlust sogar tagelang im RAM bleiben, solange der Stickstoff nicht verdampft hat. Nach variierender Zeit zwischen 1 Minute und 10 Minuten haben wir die RAM vorsichtig aus dem Behälter auf die Mainboard transportiert. Danach wird die Mainboard mit dem Strom versorgt und es wird vom USB-Stick gebootet, aber ggf. Nicht sofort, denn es kann sein, dass die RAM zuerst etwas auftauen muss. Folglich haben wir im hex editor nach dem Bild gesucht. Um das zu erreichen, haben wir an den Anfang und ans Ende des Bildes den Marker hinzugefügt, um das Bild mit der richtigen Größe zu finden. Folglich haben wir mit dem selbst entwickelten Python-Skript nach Markern gesucht.
USB-Stick mit dem 30 kB- großen Bild wird an den laufenden Testrechner angesteckt. Wir haben kein größeres Bild genommen, sodass die Zerstückelung des Bildes im RAM auf hintereinanderliegenden Speicherseiten erfolgt. Zuerst wird die RAM gleichmäßig mit dem Kältespray auf ca -40 Grad gekühlt. Dann wird der Strom ausgeschaltet, um die RAM möglichst schnell zu dem Behälter mit dem Stickstoff zu transportieren. Die Information kann im RAM mit sehr geringem Verlust sogar tagelang im RAM bleiben, solange der Stickstoff nicht verdampft hat. Nach variierender Zeit zwischen 1 Minute und 10 Minuten haben wir die RAM vorsichtig aus dem Behälter auf die Mainboard transportiert. Danach wird die Mainboard mit dem Strom versorgt und es wird vom USB-Stick gebootet, aber ggf. Nicht sofort, denn es kann sein, dass die RAM zuerst etwas auftauen muss. Folglich haben wir im hex editor nach dem Bild gesucht. Um das zu erreichen, haben wir an den Anfang und ans Ende des Bildes den Marker hinzugefügt, um das Bild mit der richtigen Größe zu finden. Folglich haben wir mit dem selbst entwickelten Python-Skript nach Markern gesucht.
Line 104: Line 110:
Am Anfang haben wir versucht, ECC Speicher zu benutzen, aber er hat nicht funktioniert.
Am Anfang haben wir versucht, ECC Speicher zu benutzen, aber er hat nicht funktioniert.


Zurück zum W2016-ITS[[https://sarwiki.informatik.hu-berlin.de/W2016-ITS#Experimentell:_Cold_Boot_Attack]]


'''Quellen:'''
'''Quellen:'''

Latest revision as of 10:22, 19 October 2016

Allgemeines

Experiment basiert auf einem Experiment aus Princeton. Das Ziel des Experiments ist es, zu zeigen, dass obwohl RAM ein flüchtiger Speicher ist, der seinen Inhalt mit der Stromabschaltung verliert, kann man den Prozess des Datenverlustes erheblich (bis zu ein paar Tagen!) verlangsamen, indem man das RAM nach der unten beschriebenen Anleitung im flüssigen Stickstoff zwischenlagert. Eine Person, die imstande ist, die Attacke durchzuführen, kann sensible Daten wie kryptographische Schlüsseln im RAM in Besitz nehmen.


Theoretische Grundlagen zusammengefasst

RAM verliert exponentiell Daten über Zeit (üblich 1-30 Sekunden), abhängig von dem Herstellungsjahr des RAMs. Ältere Speicher neigen dazu, dass sie die Daten wegen der geringeren Speicherdichte (DRAM-Zelle besteht aus einem Transistor und einem Kondensator, und je größer der Kondensator ist, desto länger dauert das Entladen des gespeicherten Bits. Jede DRAM-Zelle kann nur einen Bit speichern). Das Entladen der Zelle kann signifikant verzögert werden durch hohen Abfall der Temperatur. Je kälter die Temperatur, desto langsamer wird das Entladen der Zelle zu dem sog. Grundzustand (Zustand, der am wenigsten Energie braucht).


Bemerkungen

RAM wird mit dem Druckluftspray statt mit dem Kältespray gekühlt. Raumtemperatur zwischen 25,5°C und 44,1°C angenommen Totale Datenverlust zwischen 2,5 und 35 Sekunden

Effekt der Kühlung auf die Fehlerraten


Es wurden Maschinen A-D verwendet.


Maschine A:

Speichertyp: SDRAM Chiphersteller: Infineon Speicherdichte: 128 Mb Model: Dell Dimension 4100 Jahr: 1999

Bei 60 Sekunden ohne Stromversorgung gab es eine 41%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C gab es keine Fehler. Bei 300 Sekunden ohne Strom gab es 50%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C 0,000095% Bits warem fehlerhaft.


Maschine B:

Speichertyp: DDR Chiphersteller: Samsung Speicherdichte: 512 Mb Model: Toshiba Portégé Jahr: 2001

bei 360 Sekunden ohne Stromversorgung gab es eine 50%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C gab es keine Fehler. Bei 600 Sekunden ohne Strom gab es 50%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C 0,000036% Bits warem fehlerhaft.


Maschine C:

Speichertyp: DDR Chiphersteller: Micron Speicherdichte: 256 Mb Model: Dell Inspiron 5100 Jahr: 2003

bei 120 Sekunden ohne Stromversorgung gab es eine 41%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C gab es eine 0,00105%-ige Fehlerrate. Bei 360 Sekunden ohne Strom gab es 42%-ige Fehlerrate bei der Betriebstemperatur, bei 50°C 0,00144% Bits warem fehlerhaft.


Maschine D:

Speichertyp: DDR2 Chiphersteller: Infineon Speicherdichte: 512 Mb Model: IBM T43p Jahr: 2006

Effekt des Entladens der DRAM-Zellen in Betriebstemperatur (ohne Kühlung) auf Bilder im bitmap-Format

Es entsteht ein Muster der horizontalen, abwechselnd weiß-schwarzen Streifen auf dem ursprünglichen Bild. Wenn die RAM nicht mit dem Strom versorgt wird, die Ladung läuft aus RAM-Zellen zum Grundzustand 0 oder 1 und somit alternieren die Zellblöcke zwischen 1 und 0. Abhängig davon, wie die Zellen in DRAM verkabelt sind, andere DRAMs und andere Regionen in einem DRAM zeigen andere Grundzustände. Es wurde beobachtet, dass manche Zellen (ca. 0,05%) sind zu einem anderen Grundzustand zurückgekommen. Im Allgemeinen gilt aber, dass mit der größerer Zeit ohne Stromversorgung wird das Streifenmuster immer deutlicher und das Bild immer verschwommener bis zur totalen Bildverlust nach 5 Minuten seit der Stromabschaltung.

Neben den Bildern können auch kryptographische keys-AES, DES, RSA und andere, rekonstruiert werden. Da man die Datenverlust bei Bildern als bei keys einfacher vergleichen kann, haben wir uns auf Bilder o.B.d.A. fokussiert. Interessierten Lesern wird die wissenschaftliche Arbeit empfohlen[1].


Versuchsaufbau

Hardware: Desktop-PC: 1024 MB DDR1-Speicher Xubuntu 16.04 32-Bit(I.Allg. Kleineres Betriebssystem, durch denen RAM beim Booten möglichst wenig überschrieben wird) USB-Stick bootfähig mit RAM-Dumper

Andere unerlässliche Utensilien:

Kältespray (-40°C und rückstandsfrei) oder Druckluftspray Flüssiger Stickstoff (-196°C bis -210°C) Laptop mit Ubuntu 16.04 Schutzhandschuhe, Schutzgesichtsmaske Isolierender Behälter (für den Stickstoff und RAM)


Experiment

Zuerst haben wir das RAM mit dem Bild 4-mal gefüllt, um sicherzustellen, dass es im RAM ist. USB-Stick mit dem 30 kB- großen Bild wird an den laufenden Testrechner angesteckt. Wir haben kein größeres Bild genommen, sodass die Zerstückelung des Bildes im RAM auf hintereinanderliegenden Speicherseiten erfolgt. Zuerst wird die RAM gleichmäßig mit dem Kältespray auf ca -40 Grad gekühlt. Dann wird der Strom ausgeschaltet, um die RAM möglichst schnell zu dem Behälter mit dem Stickstoff zu transportieren. Die Information kann im RAM mit sehr geringem Verlust sogar tagelang im RAM bleiben, solange der Stickstoff nicht verdampft hat. Nach variierender Zeit zwischen 1 Minute und 10 Minuten haben wir die RAM vorsichtig aus dem Behälter auf die Mainboard transportiert. Danach wird die Mainboard mit dem Strom versorgt und es wird vom USB-Stick gebootet, aber ggf. Nicht sofort, denn es kann sein, dass die RAM zuerst etwas auftauen muss. Folglich haben wir im hex editor nach dem Bild gesucht. Um das zu erreichen, haben wir an den Anfang und ans Ende des Bildes den Marker hinzugefügt, um das Bild mit der richtigen Größe zu finden. Folglich haben wir mit dem selbst entwickelten Python-Skript nach Markern gesucht.


Unsere Ergebnisse

Ohne Kühlung war schon nach 4 Sekunden ohne Strom im RAM das Streifenmuster markant.

Mit dem Kätespray nach 5 Sekunden war das Bild fast fehlerfrei, selbst nach 30 Minuten konnte man das Bild sehr gut erkennen. Mit dem Stickstoff nach etwa 5 Minuten gab es vereinzelte Bitfehler, nach 10 Minuten war der Effekt vergleichbar zu dem von dem Bild nach 5 Sekunden mit dem Kätespray.


Bemerkung:

Am Anfang haben wir versucht, ECC Speicher zu benutzen, aber er hat nicht funktioniert.

Zurück zum W2016-ITS[[1]]

Quellen:

[1] J.Alex. Halderman, Seth D.Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, Edward W. Felten. “Lest We Remember: Cold Boot Attacks on Encryption Keys” in Proc. 17th USENIX Security Symposium (Sec ’08), San Jose, CA, July 2008.