Frage:
Ist der "sichere Schlaf" -Modus des Laptops theoretisch möglich?
Peter Rankin
2017-05-26 19:05:38 UTC
view on stackexchange narkive permalink

Bei Laptops mit vollständiger Festplattenverschlüsselung oder Home-Ordner-Verschlüsselung besteht eines der Risiken bei Diebstahl im Ruhemodus darin, dass der Verschlüsselungsschlüssel im Speicher gespeichert ist und gelesen werden kann, wenn ein Angreifer weiß, wie. Mir scheint, dass Betriebssysteme theoretisch über die Option "Sicherer Ruhezustand" verfügen sollten, bei der der Schlüssel vor dem Ruhemodus aus dem Speicher gelöscht wird. Bei der Wiederaufnahme muss der Benutzer ein Kennwort angeben, um den Verschlüsselungsschlüssel zu entsperren wie durch einen Kaltstart. Es wird verhindert, dass alle Prozesse außer dem Sperrbildschirm fortgesetzt werden, bis der Verschlüsselungsschlüssel im Speicher wiederhergestellt ist.

Mir ist klar, dass dies bedeuten würde, dass der Computer im Ruhemodus keine geplanten Aufgaben ausführen kann, die meisten Benutzer jedoch wahrscheinlich nicht Das interessiert mich nicht. Und vielleicht würden Fahrer oder andere Hindernisse verhindern, dass dies realistisch ist.

Gibt es Gründe, warum eine Option für "sicheren Schlaf" nicht einfach implementiert werden kann?

Ich persönlich finde es rätselhaft, warum Microsoft diese Funktion nicht in der Windows-Familie bewirbt, da (wie in den Antworten hervorgehoben) selbst ein Rookie-Kernel-Programmierer den Schlüssel leicht aus dem RAM-Befehl entfernen kann, bevor er der CPU sagt, dass sie in den Ruhezustand wechseln soll
Dies ist bereits bei Apples FileVault 2 vorhanden (zumindest bis zu einem gewissen Grad): https://security.stackexchange.com/a/34597/64411
Was macht es aus, wenn sich der Schlüssel im RAM befindet, solange der Computer bei der Wiederaufnahme gesperrt ist?Der Angreifer kann den Computer nicht entsperren und erhält dann Root-Zugriff, um den Schlüssel zu erhalten.
Sie müssen sich nicht anmelden, um den Speicherinhalt zu lesen.DMA ist über verschiedene Schnittstellen wie PCIe, Firewire und ExpressCard möglich.
@DylanKnoll Moderne Windows-basierte Betriebssysteme blockieren DMA von diesen Schnittstellen, wenn das System gesperrt ist oder ein Benutzer nicht aktiv angemeldet ist.
Windows 10 und (ich nehme an) Server 2016 tun dies.Frühere Versionen sind anfällig.Windows 7 und 8.1 werden weiterhin unterstützt und sind weit verbreitet.
Fünf antworten:
#1
+37
peterh - Reinstate Monica
2017-05-26 19:49:57 UTC
view on stackexchange narkive permalink

Ja. Es könnte leicht erreichbar sein, obwohl es Kernel-Unterstützung erfordern würde.

Im Fall von Suspend-to-RAM sollte der Schlüssel aus dem RAM gelöscht werden, und im Fall von Suspend-to-Disk

Es sollte auch eine minimale Eingabe bereitgestellt werden, um die Anmeldeinformationen für den Schlüssel / die erneute Authentifizierung in der frühen Start- / Aufweckphase abzurufen, aus dem RAM und auch von der Festplatte (oder sie kann verschlüsselt auf der Festplatte gespeichert werden).

Ich sehe keine technischen Hindernisse. Der wahrscheinliche Grund dafür, dass es bis jetzt nicht entwickelt wurde, war das mangelnde Interesse. Szenarien, in denen der direkte RAM-Zugriff eines funktionierenden Laptops ein echtes Sicherheitsrisiko darstellt, sind sehr selten.

Ich denke nicht, dass es notwendig ist, den Schlüssel von der Festplatte zu löschen, da der Speicherauszug auf der Festplatte verschlüsselt wird, daher wird der Schlüssel benötigt, um den Schlüssel zu erhalten.
@wizzwizz4 Tricky :-) Richtig.Ich habe den Beitrag aktualisiert.Vielen Dank.
Und dann ist diese minimale Eingabe der Schlüssel zum Schlüssel und muss irgendwo gespeichert werden.
@Mindwin Es sieht so aus, als würden Sie auf einen gelöschten Kommentar antworten.
@wizzwizz4 Der Schlüssel kann mit derselben Startauthentifizierung wie TPM oder BitLocker-Kennwort abgerufen werden
@usr-local-ΕΨΗΕΛΩΝ Der Schlüssel wird benötigt, um die Kopie des Schlüssels zu erhalten, der im Speicherauszug des Speichers gespeichert ist, der den Schlüssel auf der schlüsselverschlüsselten Festplatte enthält.
Sie sagten selbst im allerersten Kommentar, der Schlüssel sei zusammen mit dem Speicherauszug verschlüsselt.Daher muss der Kernel nur sicherstellen, dass der physische RAM keine Spur des Klartextschlüssels enthält, der wiederhergestellt werden kann, wenn er mit derselben Startauthentifizierung, z.Hardware überprüfen und das TPM fragen
Ich glaube, Linux kann dies tun, wenn Sie dm-crypt auf Ihrem Ruhezustand verwenden.
@chrylis Sie müssen den Schlüssel in der Wecksequenz in das System einspeisen, soweit ich weiß, gibt es dafür keine In-Kernel-Unterstützung.Wenn Sie dies über den Benutzerbereich tun, können Sie nicht mehr aufwachen.
@chrylis Unter Linux funktioniert dies möglicherweise, indem die Anmeldeinformationen in den frühen Startskripten abgerufen und dann der Kernel mit dem Kexec-Mechanismus neu gestartet werden, wobei die Anmeldeinformationen bereitgestellt werden.Dies würde nur einen Neustart auf der Festplatte ermöglichen, aber es würde funktionieren.Es wäre kein sehr großer Patch in den Initramfs einer Linux-Distribution.
@peterh Vielleicht habe ich einen Hack mit Grub gesehen, um nach der Passphrase zu fragen?
@chrylis Soweit ich weiß, beendet der Weckprozess alles im laufenden Kernel.Wie speichere ich den Schlüssel ohne Kernelunterstützung?Übrigens, wie können Sie überhaupt die lvm-Volumes (oder irgendwelche dm-crypt-Volumes) starten?
@peterh https: // wiki.archlinux.org / index.php / GRUB # Boot_partition
@chrylis Es dient zum Booten des Systems von einem Kryptogerät und nicht zum Aufwecken.
Soweit mir bekannt ist, entspricht die Wiederherstellungssequenz für den Ruhezustand im Wesentlichen der Startsequenz, wobei der übliche Ablauf nur vorzeitig beendet wird.Dieses Setup zieht den FDE-Einstiegspunkt nach oben in Grub, sodass der Kernel auf Bootstrap-Zugriff auf Kryptoschlüssel zugreifen kann.Ich habe es selbst nie benutzt, aber ich habe es als ein mögliches Setup erwähnt, das ich gesehen habe.
@chrylis Soweit ich weiß, erfolgt dieses "frühe Beenden", bevor der Benutzerbereich gestartet wurde.Und der LVM-Init kann nur aus dem Benutzerbereich erfolgen.Was ist "FDE"?
#2
+18
ISMSDEV
2017-05-26 19:10:47 UTC
view on stackexchange narkive permalink

Dies ist ein Fall für die Auswahl von Optionen für den Ruhezustand anstelle des Ruhezustands. Der Ruhezustand muss den Speicher aktiv halten, was einen schnellen Start ermöglicht. Im Ruhemodus ist die Maschine nicht vollständig ausgeschaltet.

Im Ruhezustand wird der Speicher auf die Festplatte geschrieben, damit der Computer nicht mit Strom versorgt wird. Dadurch wird wiederum auch der Verschlüsselungsschlüssel entfernt. Aus diesem Grund müssen Sie im Ruhezustand den Startentschlüsselungsschlüssel eingeben.

Wenn Sicherheit wichtiger ist als die Geschwindigkeit des "Bootens" im Ruhezustand, gehen Sie in den Ruhezustand.

Eines der Risiken, wenn es im Schlafmodus gestohlen wird, besteht darin, dass die Der Verschlüsselungsschlüssel wird im Speicher gespeichert und kann gelesen werden, wenn ein Angreifer weiß, wie.

Es ist wahrscheinlicher, dass der Angreifer sich nicht die Mühe macht, den Verschlüsselungsschlüssel wiederherzustellen. Sie würden zu diesem Zeitpunkt versuchen, Zugriff auf Betriebssystemebene zu erhalten, wenn sie versuchen würden, Ihre Daten zu stehlen.

Wenn das Betriebssystem den Verschlüsselungsschlüssel vor dem Ruhezustand gelöscht hat, würde selbst ein Zugriff auf Betriebssystemebene einem Angreifer nicht helfen, da das Betriebssystem selbst den Verschlüsselungsschlüssel ohne das Kennwort bei einem Kaltstart nicht kennt. Richtig?
Ja, richtig, aber im Ruhezustand wird der Schlüssel nicht gelöscht, wie Sie angeben.Der Angreifer in diesem Beispiel wollte versuchen, sich bei Windows anzumelden, um auf Ihre Daten zuzugreifen. Warum sollten Sie sich in diesem Stadium mit dem Verschlüsselungsschlüssel beschäftigen?Es ist bereits entschlüsselt.Wenn das Betriebssystem hingegen den Schlüssel im Ruhezustand löscht, ist er ohne den Verschlüsselungsschlüssel und kann nicht viel tun.Möglicherweise sind die Dinge im Hauptspeicher immer noch unverschlüsselt, was nicht ideal ist, wenn der Laptop übrig bleibt.Das Betriebssystem kann auch überhaupt nichts auf die Festplatte lesen / schreiben.
@ISMSDEV Die Frage, ob es möglich ist, nicht, ob es derzeit durchgeführt wird, und das Löschen des Schlüssels aus dem Speicher ist sicherlich möglich.
@Solomonoff'sSecret: Der zitierte Teil der Frage befasst sich mit dem aktuellen Stand der Dinge.Die Frage besagt, dass der Angreifer derzeit den Verschlüsselungsschlüssel lesen kann, wenn er weiß, wie;ISMSDEV sagt nur, dass ein realistischerer Angriff darin besteht, das Betriebssystem normal zu verwenden, anstatt etwas Besonderes zu tun, um den Inhalt des RAM zu extrahieren.(Das ist natürlich eine Randnotiz. Ich denke nicht, dass dies ein wesentlicher Bestandteil dieser Antwort ist.)
#3
+6
h22
2017-05-27 11:59:47 UTC
view on stackexchange narkive permalink

Sichere vertrauliche Daten (wie die Texte der angezeigten E-Mails) können sich überall im RAM befinden. Es reicht nicht aus, nur einen Verschlüsselungsschlüssel beizubehalten (falls bereits in diese Richtung).

Haben verschlüsselter RAM ist möglicherweise möglich, würde jedoch Entwicklungen in der Hardwareschicht erfordern. RAM ist Direktzugriff, jede Zelle muss jederzeit lesbar sein. Dies schränkt die Auswahl der Chiffren ein. Es kann jedoch möglich sein, einen sehr großen Schlüssel zu verwenden, der im Ruhezustand mit der Chiffre Ihrer Wahl verschlüsselt wird.

#4
+3
Fis
2017-05-26 20:18:52 UTC
view on stackexchange narkive permalink

Es hängt davon ab, wie der Schlüssel enc / dec erhalten wird. Wenn der Schlüssel beispielsweise in TPM gespeichert ist und der NVRAM-Lesevorgang gesperrt ist, sobald der Schlüssel entsiegelt und vom Betriebssystem gelesen wurde, gibt es keine Möglichkeit, ihn bis zum nächsten Neustart erneut zu lesen. Ich würde sagen, dass der Ruhemodus in diesem Fall nicht als Hard- oder Soft-Neustart angesehen werden kann.

Eine andere Verschlüsselungssoftware kann das Benutzerkennwort verwenden, um den auf der Festplatte gespeicherten Enc / Dec-Schlüsselspeicher zu öffnen und die Enc zu erhalten / dec Schlüssel daraus, also wäre es in einem solchen Fall kein Problem.

Übrigens ist es in diesen Tagen mit DDR3 wirklich schwierig, den Schlüssel aus dem Speicher zu erhalten.Im Internet gab es einige Studien zum Abkühlen und Lesen von Speichermodulen auf einem anderen PC, jedoch ohne Erfolg.Wir haben dies auch ohne Erfolg getestet.und mit DDR4 ist es völlig unmöglich.
Sehr interessant über DDR4.Haben Sie eine Quelle, die dies bestätigt?
Ich bin nicht sicher, ob es immer noch dasselbe Dokument ist, das ich in der Vergangenheit gelesen habe, aber probieren Sie dieses aus, es sieht gut aus: https://web.eecs.umich.edu/~taustin/papers/HPCA17-cold boot.pdf
Gut laut der Zeitung - "... DDR4 Scrambler bieten immer noch keinen ausreichenden Schutz vor Kälte Boot-Angriffe.Wir beschreiben einen Proof-of-Concept-Angriff, der extrahiert wird speicherresidente AES-Schlüssel, einschließlich Festplattenverschlüsselungsschlüssel. "
Ich bin mir ziemlich sicher, dass es zumindest sehr, sehr schwer sein wird :)
Wenn der Schlüssel von einem TPM stammt, lassen Sie das Betriebssystem einfach die E / A anhalten und verschlüsseln Sie den Schlüssel im Speicher, bevor Sie ihn anhalten.Geben Sie dann bei der Wiederaufnahme vor der Wiederaufnahme der E / A-Eingabe das Kennwort ein, um den Schlüssel zu entsperren.
:) Obwohl es interessant klingen kann, haben Sie das Problem nur einen Schritt weiter verschoben.Mit welchem Schlüssel verschlüsseln Sie den Schlüssel im Speicher?Wahrscheinlich mit einem anderen Schlüssel, der im Speicher gespeichert oder fest in der Software selbst codiert ist.
@fis Es sieht nicht besonders schwer aus.Der Scrambler wurde unter Berücksichtigung der Datenintegrität und nicht der Sicherheit entwickelt.Das Durcheinander ist einfach XOR.Wenn Sie eine 0 XOREN, erhalten Sie den Schlüssel.Sie haben nur den Speicher durchsucht, um die wahrscheinlich verschlüsselten Nullen zu finden, und diese als Schlüssel verwendet.
#5
+1
peterph
2017-08-04 02:59:43 UTC
view on stackexchange narkive permalink

Wie @ h22 zeigt, müssten Sie den RAM beim Anhalten verschlüsseln. Tatsächlich ist es entweder das oder das Beenden von Programmen, in denen möglicherweise vertrauliche Informationen im Speicher geladen sind, und Löschen des freigegebenen Speichers und Aufheben der Bereitstellung von Dateisystemen, die die vertraulichen Informationen enthalten (und eventuell beteiligte Caches). Welche Art von Störung stört den Workflow und macht das Anhalten am RAM bestenfalls zu einem strittigen Punkt (in Bezug auf den Komfort).

Wenn Sie also auf der sicheren Seite sein möchten, sollten Sie das Anhalten auf der Festplatte aussetzen - die Verschlüsselung in diesem Fall Fall ist ein gelöstes Problem. Eine Alternative besteht darin, den RAM beim Anhalten zu verschlüsseln und beim Fortsetzen zu entschlüsseln. Dies würde Sie jedoch in die Reihenfolge des Anhaltens auf die Festplatte bringen (zeitlich und in Bezug auf die Leistung).



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...