Ich lese gerade das Datenblatt eines Mikrocontrollers mit speziellen Sicherheitsfeatures. Unter anderem enthält er ein gegen Ausspionieren besonders gesichertes "Trusted RAM". Interessanterweise wird der Speicherinhalt periodisch invertiert, damit die Bits nicht "einbrennen": "When a remanence periodic event occurs, the physical data stored in the RAM is inverted in order to prevent physical “burn-in” signatures." Weiss jemand, was physikalisch hinter diesem Phänomen des Einbrennens steckt? Einbrennen kannte ich bisher nur bei Röhrenbildschirmen. Remanenz kann ich mir bei magnetischen Speichern vorstellen, nicht aber bei Halbleiter-RAM. RAM sollte sich im Gegensatz zu EEPROM oder Flash auch nicht abnutzen.
Mike schrieb: > Einbrennen kannte ich bisher nur bei Röhrenbildschirmen. Das gibt es auch bei TFT-Bildschirmen. Und so ein Pixel in einem TFT-Bildschirm ist nicht viel anders als eine dynamisch aufgefrischte Speicherzelle. > RAM sollte sich im Gegensatz zu EEPROM oder Flash auch nicht abnutzen. Aber im RAM gibt es Mosfets mit Isolierschichten, in denen Ladungen "gefangen" werden können (ein Flash-Speicher ist im Grunde nichts anderes als ein RAM mit einem isolierten "Speichergate"). Wenn immer die selbe Spannung anliegt, kann sich da messbar mehr ansammeln.
Wie lange lebt denn eine solche Ladung, daß man das RAM auslöten, mit nach Hause nehmen und dort einbauen könnte, um es auszulesen? Für ein direktes Lesen, bräuchte man Zugriff auf die Schaltung und die wäre doch zu verwähren, weil man die Daten doch direkt würde auslesen können oder nicht?
Es ist eher so dass sich messbar mehr ansammeln kann sobald man eben die Spannung wieder anlegt. Also auch wenn der Speicher gelöscht wurde, könnte man immer noch fest stellen ob das 1-bit mehr ausgeleiert ist, als das 0-bit. Das bleibt auch ohne Spannung ewig so, bis eben das umgekehrte bit auch so lange von der Zelle gehalten wurde. Wie realitätsnah eine Angriffsmethode auf diese Wege ist, steht allerdings auf einem anderen Blatt.
Mike schrieb: > Ich lese gerade das Datenblatt eines Mikrocontrollers mit > speziellen Sicherheitsfeatures. Salamitroll. Man wird über den Mikrocontrollers im unklaren gelassen. Mike schrieb: >Weiss jemand, was physikalisch hinter diesem Phänomen des Einbrennens >steckt? Salamitroll. Man wird über den Typ (Technologie) des RAM im unklaren gelassen. Welche "physikalischen Phänome" nutzt den der RAM des TO? Etwa Phasenwechsel-RAM (PRAM, PCRAM)? Leute! RAM bedeutet erst mal nur "Random-Access Memory", also laut Wiki „Speicher mit wahlfreiem/direktem Zugriff“. https://de.wikipedia.org/wiki/Random-Access_Memory Und im Wiki steht dazu: "Da die Bezeichnung RAM missverständlich ist ..." Ahja, missverständlich, na das ist doch genau das Richtige für eine Salamitrolldiskusion.
Passend zum Unabhängigkeitstag würde ich sagen: Das ist der einzige "Trusted RAM": https://de.wikipedia.org/wiki/Dodge_Ram P.S.: Das "tr" in trusted steht für Troll!
Alle zu diesem Thema zu findenden Arbeiten, wie diese hier: ftp://ftp.cs.princeton.edu/reports/2009/859.pdf https://www.emsec.rub.de/media/crypto/attachments/files/2010/04/thesis_lemke_rust.pdf nehmen Bezug auf Peter Gutmann, der vor knapp 20 Jahren mal was zum Thema verfasst hat: https://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html https://de.wikipedia.org/wiki/Gutmann-Methode Man findet aber tatsächlich nichts, wo das irgendwer nachvollziehbar hinbekommt: http://www.pdl.cmu.edu/PDL-FTP/NVM/dram-retention_isca13.pdf https://security.stackexchange.com/questions/99906/can-ram-retain-data-after-removal https://pdfs.semanticscholar.org/6784/da5db43c16e3323c74025d28e71c5042a8e2.pdf
Lothar M. schrieb: > Aber im RAM gibt es Mosfets mit Isolierschichten, in denen Ladungen > "gefangen" werden können (ein Flash-Speicher ist im Grunde nichts > anderes als ein RAM mit einem isolierten "Speichergate"). Wenn immer die > selbe Spannung anliegt, kann sich da messbar mehr ansammeln. Das würde mich stark überraschen. Das dürfte SRAM sein. Das "Einbrennen" bei SRAM ist kein normales Verhalten. Ein normaler µC wäre danach kaputt, denn er könnte jederzeit ein undefiniertes Verhalten zeigen oder abschmieren. Meine Vermutung: Der Hintergrund dürfte sowas wie Sicherheitstechnik sein: Man möchte durch dieses Invertieren erkennen, wenn eine Speicherzelle defekt ist. Da geht es einfach darum, dass GARANTIERT werden kann, dass der Speicher funktioniert, nicht dass SRAM mit der Zeit einbrennen würde. Es geht dabei dann aber nur darum, einen bestimmte Art von Fehler erkennen zu können, und nicht, dass RAM so unzuverlässig wäre. Und das ist nur nötig, weil der Inhalt sicherheitskritisch ist, und das auch dann ein Problem ist, wenn das nur in einem von 100000 Fällen passiert. Mir wäre nicht bekannt, dass sich SRAM "einbrennt", weil man eine Zelle zu lange auf einem bestimmten Zustand hält. Das würde die Lebensdauer jedes einzelnen Prozessors auf der Welt arge Grenzen setzen... Ich bin allerdings kein SRAM-Spezialist, wenn jemand hier Einblicke hat, wäre das interessant.
SRAM-Zellen können auch Ladungen auf dem Gate eine Zeitlang speichern. Mit Einbrennen hat das aber nichst zu tun. Ich wollte mal in einen AT89C2051 eine Routine schreiben, die ein Power-on Reset von einem externen Reset unterscheidet. Dazu habe ich 8 Bytes in den SRAM geschrieben. Waren sie nach dem Reset erhalten, dann war es ein Warmstart. Es hat jedoch nicht funktioniert. Ich konnte mehrere Sekunden den Strom wegnehmen und auch die VCC kurzschließen, die 8 Bytes waren noch im SRAM zu lesen. Erst nach >1min ohne VCC wurde ein Kaltstart erkannt.
Peter D. schrieb: > Dazu habe ich 8 > Bytes in den SRAM geschrieben. Waren sie nach dem Reset erhalten, dann > war es ein Warmstart. > Es hat jedoch nicht funktioniert. kommt mir bekannt vor, ich glaube das ist beim ESP32 auch so oder bei OLEDs jedenfalls wunderte ich micht das die sich "merkwürdig" verhalten bei Neustart ohne VCC Wegnahme.
Peter D. schrieb: > Ich konnte mehrere Sekunden den Strom > wegnehmen und auch die VCC kurzschließen, die 8 Bytes waren noch im SRAM > zu lesen. Erst nach >1min ohne VCC wurde ein Kaltstart erkannt. Ähnliches ist auch bei DRAMs zu beobachten, die abgeschaltet bzw. deren Refresh unterbrochen wurde. Es ist halt ein Dreckeffekt und nirgends spezifiziert. Zwar vorhanden, aber nicht seriös nutzbar. Borsolino schrieb: > Wie lange lebt denn eine solche Ladung, daß man das RAM auslöten, mit > nach Hause nehmen und dort einbauen könnte, um es auszulesen? Ich könnte mir höchstens vorstellen, dass ein Halbleiterhersteller mit entsprechendem Messequipment die Möglichkeit hat, diese Unterschiede direkt auf dem Chip festzustellen, auch nach längerer Zeit. Einfach anschließen und auslesen über die normalen Schnittstellen geht sicher schon nach wenigen ms (oder µs) nicht mehr ...
HildeK schrieb: > Ähnliches ist auch bei DRAMs zu beobachten, die abgeschaltet bzw. deren > Refresh unterbrochen wurde. > Es ist halt ein Dreckeffekt und nirgends spezifiziert. Zwar vorhanden, > aber nicht seriös nutzbar. Das ist eigentlich die normale Funktion von DRAMS. DRAMs sind Ladungsspeicher, der braucht erst mal keine Versorgung. Die Ladung verflüchtigt sich mit der Zeit wegen z.B. Leckströmen. Darum muss ein Refresh gemacht werden, indem alles gelesen und neu geschrieben wird. Die Refreshzyklen sind so ausgelegt, dass der Speicherinhalt zwischen den Refresh-Zyklen sicher vorhanden bleibt. Das ist irgenwas mit µs oder ms, wenn ich mich recht erinnere, kenn mich aber nicht so genau aus. Das ist aber die Zeit, die der Zustand der Zelle sicher erhalten bleibt über alle Exemplare und alle Temperaturen. Im Umkehrschluss heißt das auch, dass der Inhalt sehr lange Zeit ohne Refresh und Versorgung erhalten bleiben kann, wenn günstige Umgebungsgbedingungen vorliegen. Insbesondere tiefe Temperaturen. Das kann man ausnutzen: https://de.wikipedia.org/wiki/Kaltstartattacke D.h. das ist normal und erwünscht so. Für DRAMs. SRAMs funktionieren anders, aber auch da sing Gates von MOSFET im Spiel, und die haben auch eine Kapazität. Ich finde es zumindest plausibel, dass der Zustand ohne Strom erhalten bleibt.
Hmm schrieb: > Mir wäre nicht bekannt, dass sich SRAM "einbrennt", weil man eine Zelle > zu lange auf einem bestimmten Zustand hält. > Das würde die Lebensdauer jedes einzelnen Prozessors auf der Welt arge > Grenzen setzen... Die RAM-Zelle ist ja dann nicht kaputt (genausowenig wie ein "eingebrannter" Monitor, der ja auch noch anderen Inhalt darstellen kann), sondern sie ist weiterhin normal beschreibbar, hat aber in ihrer Struktur noch einen "Schatten" der zuvor lange gespeicherten Information. Das kann man natürlich nicht mit dem binären Lesemechanismus des µC/RAM auswerten, sondern braucht einen externen Leser, der solche "Asymmetrien" im Feld auswerten kann. Einfach mal die verlinkten Artikel ein wenig durchstöbern, dann wird das evtl klarer: es geht nicht darum, dass das RAM kaputt ginge, sondern darum, dass man am stromlosen RAM zuvor gespeicherte Informationen auslesen könnte.
Lothar M. schrieb: > Einfach mal die verlinkten Artikel ein wenig durchstöbern, dann wird das > evtl klarer: es geht nicht darum, dass das RAM kaputt ginge, sondern > darum, dass man am stromlosen RAM zuvor gespeicherte Informationen > auslesen könnte. Achso, danke für die Information, da war ich auf dem falschen Dampfer. Das ist dann plausibel, und das Toggeln des Zustandes ergibt Sinn.
Hmm schrieb: > Das ist dann plausibel, und das Toggeln des Zustandes ergibt Sinn. Nicht wirklich. Im einfachsten Fall liegt das Toggle-Flag mit im SRAM. Ansonsten muß man eben die Daten zweimal testen, ob sie plausibel sind. Da ist ja sogar ein EXOR mit einem Muster noch anspruchsvoller.
Peter D. schrieb: > Hmm schrieb: >> Das ist dann plausibel, und das Toggeln des Zustandes ergibt Sinn. > > Nicht wirklich. Im einfachsten Fall liegt das Toggle-Flag mit im SRAM. > Ansonsten muß man eben die Daten zweimal testen, ob sie plausibel sind. > Da ist ja sogar ein EXOR mit einem Muster noch anspruchsvoller. Im Toggeln selbst liegt nicht die Sicherheit, sondern es hilft dagegen Rückschlüsse auf den Inhalt zu ziehen, wenn der Strom weg ist. Wenn du das Teil unter Strom habhaft werden kannst, ist das was anderes.
https://www.zdnet.com/article/cryogenically-frozen-ram-bypasses-all-disk-encryption-methods/ Gab vor Jahre schonmal Experimente. Wenn man den Chip stark abkühlt, kann man Minuten bist Stunden später noch Ladungsreste in den Bits abtasten. Der Effekt ist umso größer, je länger das Bit zuvor fest auf einem Wert gestanden hat.
Die Antwort von Lothar war schon nahe dran: Das Gateoxid ist nicht perfekt, sondern es gibt einen gewissen Anteil an Defektstellen, die bei angelegter Spannung gem. Boltzmann-Statistik aufbrechen können und dort eine positive Ladung annehmen (das elektrische Feld "zerrt" gewissermaßen an diesen polarisierten Fehlstellen). Je höher die Betriebstemperatur und -Spannung, desto schneller läuft dieser Prozeß ab. Bei den "heutigen" Gateoxid-Dicken kommt noch ein relevanter Anteil an Tunnelstrom dazu (Fowler-Nordheim-Tunnelstrom), wodurch ballistische Elektronen o.a. Effekt beschleunigen. Der langfristige Effekt ist, daß sich die MOSFET-Kennlinie nach links verschiebt und somit beim Power-On-Reset ein bestimmter Zustand (0/1) präferiert auftritt. Mehrmaliges POR und Auslesen erlaubt dann eine Mittelung und schon hat man die langfristig anliegenden RAM-Werte verfügbar. Beim MSP430F5438A kann man so etwas schön beobachten, wenn man einzelne RAM-Banken aus- und wieder einschaltet: Ein gewisser Prozentsatz an Bits nimmt den immer selben Wert an. Anmerkung: Bisweilen nutzt man diesen Effekt aus um z.B. durch diese Produktionstoleranzen eindeutige IDs zu generieren - nennt sich PUF - Physically Uncloneable Features.
KI-Besitzer schrieb: > Mike schrieb: >> Ich lese gerade das Datenblatt eines Mikrocontrollers mit >> speziellen Sicherheitsfeatures. > > Salamitroll. > Man wird über den Mikrocontrollers im unklaren gelassen. Um welchen µC es sich handelt ist natürlich streng geheim! Nur so viel wird verraten: Es handelt sich um einen SAML11 von Atmel/Microchip. Als Salamitroll habe ich natürlich Zugang zu sonst nur verschworenen Zirkeln zugänglichen Informationen: http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-L10L11%20Family-DataSheet%20-%20DS60001513B.pdf Das Trust-Ram wird in Kapitel 31 beschrieben.
OK, ich nehme den Troll zurück und entschuldige mich in aller Form. Der Link zum Datenblatt im Eröffnungs-Post hätte das Anschlagen des Trolldetektors verhindert. Ein Einbrennen des RAM-Inhalts ist physikalisch gesehen wohl möglich, aber mir scheint, dass diese Information auf ausdrücklichen Wunsch der Werbeabteilung Eingang in das Datenblatt gefunden hat. Wer die Möglichkeit hätte, solche Spuren nachzuweisen, kann eher noch die anderen Sicherheits-Features umgehen.
Jürgen W. schrieb: > Der langfristige Effekt ist, daß sich die MOSFET-Kennlinie nach links > verschiebt und somit beim Power-On-Reset ein bestimmter Zustand (0/1) > präferiert auftritt. Das wird aber nur bei sehr kleinen Strukturgrößen möglich sein. Den SRAM in einem alten AT89C51 wirst Du damit nicht auslesen können, selbst wenn der SRAM-Inhalt 100 Jahre gleich bleibt.
OK, ich nehme den SalamiTroll nicht zurück. SamalmiTroll: Die Informationen kommen nur scheibenweise :P Und natürlich wurden gezielt (vielleicht unbewusst, also eine natürliche Begabung :D ) falsche bzw. unvollständige Informationen gestreut. Also hier im Eingangspost: keine Quellenangaben, keine Infos zur CPU und (naja) kreative Umgestalltung des Namens des Objektes, welche eine zielführende Suche in Suchmaschinen, sagen wir mal, "erschwert" Das Zeug benennen die Microchipleute nicht "Trusted RAM" sondern TrustRAM.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.