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!
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.
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.