Dies ist eine Seite, auf der ein Entwickler von ecryptfs den Unterschied zwischen ecryptfs und dm-crypt erklärt:https://stackoverflow.com/questions/18230784/was-ist-der-unterschied-zwischen-linux-kernel-subsystem-dm-crypt-und-ecryptfs/18234635#18234635. Dies lässt mich jedoch mit einer Frage zurück: Wenn ecryptfs nur die /home
Partition verschlüsselt, was hindert dann einen böswilligen Hacker daran, die Partition zu ändern, /
um /boot
möglicherweise das Verschlüsselungskennwort abzufangen oder ein Programm zu ändern usw. …
Kurz gesagt: Wie kann ich nicht nur sicher sein, dass die Daten auf meinem Computer nicht von unbefugten Personen gelesen werden können, sondern auch, dass auf meinem Computer nichts ohne mein Wissen verändert wird?
Und wo endet das, denn irgendwann muss der Bootcode unverschlüsselt sein, damit der Prozessor ihn verstehen kann? (Es sei denn, Sie verwenden eine Art Hardware-Entschlüsselung.) Aber per Definition kann alles Unverschlüsselte geändert werden?
(Nebenbei bemerkt sehe ich eine Möglichkeit, die Integrität der Startsequenz zu bestimmen, indem man einen Hash des unverschlüsselten Teils des Startcodes im verschlüsselten Teil speichert und bei der Entschlüsselung den vorkalkulierten Hash mit einem Hash des unverschlüsselten Teils der Startsequenz zur Laufzeit vergleicht. Dies löst jedoch nicht das Problem der unverschlüsselten Bereiche, sondern ist nur eine Möglichkeit, im Nachhinein festzustellen, ob etwas geändert wurde.)
Antwort1
Die kurze Antwort ist: „Sehr wenig“ hält einen Hacker davon ab, /boot zu ändern – eigentlich nur die Zeit, unentdeckter physischer Zugriff und die Möglichkeit, initrd mit einem Keylogger neu zu kompilieren.
Nichts hindert einen böswilligen Hacker daran, ein auf ecryptfs basierendes / oder /boot zu ändern, wenn er physischen Systemzugriff hat – aber dazu später mehr – darum geht es hier nicht.
"/" kann durch eine vollständige Festplattenverschlüsselung wie LUKS geschützt werden (aber meines Wissens nicht durch Dateiverschlüsselung). Da das System zunächst von /boot gebootet wird, kann initrd die Passphrase anfordern, die zum Entsperren des Volumes vor dem Mounten von / erforderlich ist.
Ich glaube, Sie überschätzen die Möglichkeiten einer vollständigen Festplattenverschlüsselung. Ich behaupte, sie ist dafür gedacht, Menschen vor nicht persistenten Bedrohungen zu schützen, wie etwa einem gestohlenen Laptop oder wenn Sie eine Festplatte mit persönlichen Daten zurücksenden möchten. In beiden Fällen sind die Daten für Sie nicht mehr von Nutzen, Sie möchten aber verhindern, dass unbekannte Dritte darauf zugreifen. Sehr oft reicht eine dateibasierte Verschlüsselung Ihrer Dokumente aus. Wen kümmert es, ob sie eine unverschlüsselte Kopie der Systembinärdateien haben, sie sind sowieso Open Source.
Sie können Ihr System nicht vor unbefugten Personen mit lokalem Zugriff schützen. Die Lösung besteht daher darin, den physischen Zugriff zu verhindern. Sie können sicherstellen, dass Dinge nicht ohne Ihr Wissen geändert werden, indem Sie alle Systemdateien mit Prüfsummen versehen und mit einem Offline-Backup vergleichen. Dies ist jedoch nicht hundertprozentig sicher, da Sie sicherstellen müssen, dass Sie ein unverändertes Prüfsummenprogramm ausführen, das die Wiederherstellung von Kollisions-Hashes praktisch unmöglich macht. [Sie können dies möglicherweise vereinfachen, indem Sie Ihre Dateisysteme trennen und einige davon schreibgeschützt machen und dann einen einzelnen Hash für jede schreibgeschützte Partition aufbewahren.] Dieser gesamte Prozess ist jedoch umständlich.
Bei Verwendung der vollständigen Festplattenverschlüsselung "/" Sie würden den Computer normalerweise nicht als "Root" verwenden, außer für Upgrades usw. - dies bietet ein gutes Maß an