Re: Verschlüsseln der Swap Partitionen
Ich weiß. Leider nicht bei den Anderen.
Ich behaupte, dass es unnötig ist, den Swap-Bereich zu verschlüsseln.
Um an Swap heran zu kommen, muss man entweder a) physischen Zugang zu einem Rechner haben oder b) root sein. In letzterem Fall ist eh alles zu spät.
Hat man physischen Zugriff auf einen Rechner, so kann man ihn leicht kontrollieren - das wird ja immer so behauptet. Behaupte ich auch, denn: Es ist trivial einfach, einen Rechner neu zu starten und in den Single-User Modus zu booten. Ebenso einfach ist es, eine Festplatte in einen anderen Rechner einzubauen und sie dort auszulesen.
Naja, hier sollte ja eigentlich die Festplatten-Verschlüsselung greifen: Wenn der Rechner neu gestartet wird, ist der RAM gelöscht, damit sind die Schlüssel erstmal weg und müssen neu eingegeben werden. Allerdings stimmt das nur bedingt: DRAM Zellen haben die Eigenschaft ihren Wert einige Zeit (im Sekunden-Bereich) halten zu können, auch ohne anliegende Clock. Die Zeit lässt sich vergrößern (auf den Bereich von Minuten), wenn die Zelle gekühlt wird. Das bedeutet: Wer physisch an den Speicher kommt, kann den Riegel ausbauen und einfach in einem anderen Rechner auslesen. Forscher an der Uni Princeton haben gezeigt, dass dies nicht nur Theorie ist:
http://citp.princeton.edu/memory/
Das bedeutet, das Verschlüsseln von Festplatten ist nur dann sicher, wenn der Rechner einige Zeit ausgeschalten war, bevor der Angreifer darauf zugreifen kann. Ein Laptop, der
ausgeschalten war als er geklaut wurde, dürfte daher sicher sein. Ein Server, der im Betrieb abgegriffen werden kann ist mit Sicherheit anfällig für die o.g. Attacke.
Damit zurück zur verschlüsselten Swap-Partition. Wenn der Rechner im Betrieb abgegriffen wird, dann hilft nichts mehr -- denn der Schlüssel für den Swap-Bereich muss ja auch irgendwo im Hauptspeicher liegen.
Wenn der Rechner abgeschalten ist, dann könnte man ein unverschlüsseltes Swap-Device natürlich sehr einfach auslesen. Allerdings: Was will man da finden? Kernel-Speicher kann nicht ausgelagert werden. Und User-Speicher kann mit mlockall(2) vor dem Auslagern geschützt werden. Ein Programm mit schützenswerten Daten (Schlüssel und Passwörter) sollte dieser meiner Meinung nach eh nur so kurz wie möglich im Speicher halten. Und wenn das nicht geht, dann sollte es sich schützen. Kurz: Ich glaube, verschlüsselter Swap-Speicher hat, wenn überhaupt, nur einen sehr begrenzten nutzen.
Umgekehrt ist es aber so, dass Swap Speicher zum einen sehr langsam ist, und zum andern ist RAM Mangelware wenn Swap erstmal gebraucht wird. Die Ressourcen (Rechenzeit und Speicherverbrauch) für die Verschlüsselung könnten also besser eingesetzt werden.
Meiner Meinung nach sollte man der harten Realität ins Auge sehen: Computer sind nicht sicher. Dafür sind sie nicht gebaut. Das letze Mal, als jemand einen ernstzunehmenden Vorschlag für eine sichere Architektur gemacht hat, wurde der Entwurf gnadenlos niedergemacht, aus Angst vor DRM (
eine Anwendung einer sicheren Architektur): Die Rede ist von Microsofts Trusted Computing Projekt (Palladium, Nexus, oder wie das auch hieß).