GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fallstricke der SSD-Verschlüsselung

Denken Sie daran, dass moderne SSDs bereits Verschlüsseln Sie Ihre Daten auf Firmware-Ebene, sodass eine Neuformatierung einfach durch Verwerfen des internen Schlüssels durchgeführt werden kann, anstatt jeden Sektor zu löschen. Das bedeutet nicht, dass Ihre Daten jederzeit automatisch verschlüsselt werden – die Krypto wird nur verwendet, um das NAND-Wear-Problem zu beheben. Dies bedeutet jedoch, dass ein ordnungsgemäßer Formatierungsvorgang auf Firmware-Ebene die Daten auf der Festplatte für alle Absichten und Zwecke vollständig zerstört macht. Wenn Sie eine SSD wegwerfen, empfehle ich dringend, diese Option zu verwenden. Die meisten gängigen Betriebssysteme erkennen und unterstützen den entsprechenden Firmware-Befehl, aber die Verwendung kann unterschiedlich sein - lesen Sie die entsprechende Dokumentation.

Was die Wear-Leveling-Ersatzsektoren angeht, sollten Sie in der Praxis sollten sicher sein, unabhängig davon, ob die gespeicherten Daten verschlüsselt wurden oder nicht. Aufgrund der internen Verschlüsselung sollten verwaiste Datenblöcke in Wear-Leveling-Bereichen nicht wiederherstellbar sein, da die IVs und Geschwisterblöcke zerstört / fehlen. Dies soll jedoch nicht heißen, dass Sie kein Pech haben – es kann durchaus sein, dass einige Blöcke von Dateidaten aufbewahrt werden, was zu einem Fall führt, in dem eine kleine Menge Klartext wiederhergestellt werden kann. Schwer zu sagen.

Wenn man die interne Kryptographie für einen Moment ignoriert, bezieht sich ein weiterer interessanter Angriff auf alte Restblöcke von Chiffretext. Wenn Sie ein Datenelement mit einem bestimmten Schlüssel und IV verschlüsseln und dann ein neues Datenelement mit demselben Schlüssel und IV verschlüsseln, ist es möglicherweise möglich, diese Daten mithilfe von differentieller Kryptoanalyse oder anderen Angriffen anzugreifen. Es zeigt auch die aktive Änderung bestimmter Datenbereiche, die je nach Bedrohungsszenario für Sie problematisch sein können oder auch nicht.


Auf einem Flash-Block sind zwei Operationen möglich:ein Bit von 0 auf 1 umwandeln oder den ganzen Block auf 0 zurücksetzen (die Rollen von 0 und 1 können natürlich vertauscht werden). Jeder Block hält nur eine begrenzte Anzahl von Rücksetzungen aus, bevor er versagt, daher das "Wear-Leveling", das versucht, die "Rücksetzungs"-Operationen zu verteilen. Außerdem werden Fehlerkorrekturcodes verwendet, um einige fehlerhafte Bits zu überleben.

Ein möglicher Wear-Leveling-Algorithmus (oder Teil eines umfassenderen Algorithmus) besteht darin, die Bitfehlerrate in jedem Block beim Lesen zu untersuchen; Wenn die Rate zu hoch wird (zu nahe an der Obergrenze dessen, was der Fehlerkorrekturcode bewältigen kann), wird der Block für "fehlgeschlagen" erklärt und die nächste Rücksetzoperation für diesen Block ist stattdessen eine "Neuzuordnung":ein weiterer Block, aus dem Ersatzbereich, werden danach verwendet. Die Folge ist, dass die Daten im "ausgefallenen" Block dort verbleiben; Es kann nicht logisch darauf zugegriffen werden (der SSD-Controller zeigt den neu zugeordneten Block, nicht diesen), aber es könnte gelesen werden, indem der Flash-Chip extrahiert und direkt darauf zugegriffen wird.

Das bedeutet, dass Strategien zum Löschen auf Betriebssystemebene nicht zu 100 % effektiv sein können.

Viele (aber nicht alle) modernen SSDs implementieren eine „sichere Löschfunktion“, bei der alle Daten mit einem zufälligen Schlüssel verschlüsselt werden, und wenn die Maschine nach einem sicheren Löschen fragt, wird dieser Schlüssel geändert. Dies ist gleichbedeutend mit der Zerstörung der Daten in allen Blöcken, einschließlich der Daten in den jetzt unzugänglichen Blöcken, also ist es ein sehr effektives Löschen der gesamten Festplatte. Der Kilometerstand kann jedoch davon abweichen, wie eine solche Löschung ausgelöst werden kann (natürlich formatiert eine Partition löst kein Löschen der gesamten Festplatte aus, und das Ändern der Partitionstabelle tut dies normalerweise auch nicht). Darüber hinaus hängt die Sicherheit dieses Vorgangs von der Qualität der Verschlüsselung ab, die von der Platte verwendet wird, die nicht unbedingt so gut ist und in jedem Fall sehr selten dokumentiert wird (die meisten Anbieter sagen nur "AES" ohne weitere Präzisierung). Mit der Verschlüsselung auf Betriebssystemebene haben Sie mehr Kontrolle darüber, was passiert.

Wenn jeder einzelne Datenschreibvorgang, der jemals auf einer Festplatte stattgefunden hat, angemessen verwendet wurde Verschlüsselung (mit einem Schlüssel, der sich natürlich nicht auf der Platte selbst befindet), dann ja, Sie können die Platte verwerfen, ohne weiter darüber nachzudenken. Die SSD-Funktion „sicheres Löschen“ KANN dieses Konzept verkörpern, vorausgesetzt, dass sie den Verschlüsselungsteil nicht verpfuscht (aber das kann man selten sicherstellen).


Linux
  1. Warum hat der Server meine IP blockiert?

  2. Linux – Datenwiederherstellung nach dem Kopieren der Datei auf das Blockgerät?

  3. Was sollte man nicht auf eine SSD setzen?

  4. Wie (un)anfällig wäre Ubuntu für Verschlüsselungs-Ransomware?

  5. Was ist eine relationale Datenbank?

Zwei Methoden zum Schutz Ihrer Daten mit Ubuntu Disk Encryption

SELinux Fehlerbehebung und Fallstricke

Nordlocker gegen VeraCrypt

Cloud-zu-Cloud-Migration

Spieleverzeichnis?

Warum nicht ICMP blockieren?