Native Verschlüsselung für Ext4

Im aktuellen Linux-Kernel 4.1 kann sich das Dateisystem Ext4 selbst verschlüsseln. Die Interprozess-Kommunikation Kernel D-Bus hat es jedoch nach hitziger Diskussion nicht in den aktuellen Kernel geschafft.

Linus Torvalds hat Version 4.1 des Linux-Kernels freigegeben. Zu den nennenswerten Änderungen gehören eine integrierte Verschlüsselung im Dateisystem Ext4 und eine erste Unterstützung für ACPI auf der ARM-Plattform. Für Diskussionen sorgte der Antrag, den Kernel D-Bus in Linux 4.1 zu integrieren. Er wurde jedoch abgelehnt.

Verschlüsseltes Ext4

Weil Google sie für sein Android der nächsten M-Serie braucht, gibt es künftig im Dateisystem Ext4 eine integrierte Verschlüsselung. Sie wurde auf Dateisystemebene umgesetzt, verschlüsselt aktuell allerdings nur Dateninhalte und beispielsweise keine Metadaten. Dabei wird jede Datei einzeln verschlüsselt. Inhalte werden nach AES-256-XTS und Dateinamen nach AES-256-CBC verschlüsselt, wie ein Dokument verrät.

Eine solche Verschlüsselung bringt Vorteile gegenüber aktuellen Containerlösungen wie LUKs, denn solche Container werden beim Anmelden des Benutzers ins Dateisystem eingebunden und der gesamte Inhalt liegt dann entschlüsselt vor. Ein weiterer Vorteil liegt im Geschwindigkeitszuwachs bei Schreibzugriffen gegenüber bestehenden Lösungen wie Dm-crypt oder Ecryptfs, die als Schicht zwischen den Rohdaten und dem Dateisystem genutzt werden. Das dürfte auch der größte Beweggrund Googles bei der Entwicklung sein, denn der Einsatz einer vollständigen Verschlüsselung soll die Leistung von Android vor allem auf schwachen Geräten deutlich verringert haben.

Auch F2FS soll verschlüsselt werden

Indes haben die zuständigen Entwickler Michael Halcrow, der für Ecryptfs zuständig ist, und der Dateisystem-Maintainer Ted T’so bereits die Entwickler des Dateisystems F2FS kontaktiert, um auch dafür eine ähnliche Lösung zu entwickeln. Das unter anderem von Samsung entwickelte F2FS kommt ebenfalls unter Android auf zahlreichen Modellen zum Einsatz.

Auch XFS erhielt einige Änderungen. So lässt sich das Dateisystem jetzt mit Overlayfs Union nutzen, das eine beschreibbare Zwischenschicht auf optische Datenträger legt, etwa beim Einsatz von Live-CDs. Außerdem können Anwendungen jetzt freigegebene Lücken in großen Dateien wieder auffüllen, was beispielsweise bei der Videobearbeitung von Vorteil ist.

Bessere Fehlerverwaltung durch Libata

Für das Dateisystem Btrfs gibt es Patches, die die Verarbeitung großer Datenmengen deutlich verbessern sollen. Bei Facebook hatten Administratoren beobachtet, dass sich Schreibfunktionen auf Systemen mit mehr als 20 TByte belegtem Speicher um zehn Sekunden verzögerten. Mit einigen Änderungen am Code für den Zwischenspeicher soll das Problem jetzt behoben sein. Außerdem lassen sich jetzt Dateien problemlos löschen, die mehr als 3 TByte groß sind. Von Facebooks Jens Axboe kommen auch einige Patches für das Multiqueue Block Layer, das beispielsweise für beschleunigte Zugriffe auf Datenträger sorgt. Außerdem erhielt die Bibliothek für ATA-Laufwerke die Autosense-Erweiterung für Native Command Queuing (NCQ). Libata kann so künftig die Fehlerbehandlung moderner ATA-Laufwerke präziser verarbeiten.

Bessere Grafiktreiber und vertagtes Kdbus

Für die Fehleranalyse im Linux-Kernel können Entwickler nun auf das neue virtuelle Dateisystem TraceFS zugreifen und müssen nicht mehr DebugFS verwenden. Auf DebugFS können sämtliche Subsysteme zugreifen, es stellt so ein potenzielles Sicherheitsproblem dar. Über TraceFS lässt sich hingegen ausschließlich auf Tracingpunkte zugreifen. Außerdem bringt TraceFS eigene Funktionen mit, etwa die Überwachung der Systemaufrufe Mkdir oder Rmdir, mit denen Verzeichnisse erstellt beziehungsweise entfernt werden.

Gegen seine eigene Überzeugung hat der Maintainer des Moduls Simplified Mandatory Access Control Kernel (Smack) Casey Schaufler den sogenannten Bringup-Modus integriert, den Entwickler zur Fehlerbeseitigung einsetzen können. Schaufler bezeichnet den Zusatz als gefährlich, er habe es aber so sicher wie möglich umgesetzt. Smack kommt vor allem in eingebetteten Linux-Versionen zum Einsatz, etwa in Tizen und im Linux vom Hersteller Wind River.

Für solche abgespeckten Linux-Versionen wurde auch der Zwang aufgehoben, Linux als Mehrbenutzersystem einzurichten. Künftig lässt sich das freie Dateisystem auf Kleinstrechnern ausschließlich mit dem administrativen Benutzer Root nutzen.

Änderungen an den Grafiktreibern

Der freie Nouveau-Treiber für GPUs von Nvidia generiert eine eigene Firmware für die Geforce-Serie GTX 750 und muss sie nicht mehr aus dem proprietären Treiber extrahieren. Das für moderne 4K-Monitore benötigte Protokoll Displayport Multi-Stream Transport (DP MST) wird jetzt vom Radeon-Treiber für Grafikkarten von AMD unterstützt. Code für den neuen AMDGPU-Treiber, der sowohl für den freien Radeon-Treiber als auch den proprietären Catalyst-Treiber als gemeinsame Basis dienen soll, hat es nicht in den aktuellen Kernel geschafft. Neben weiteren Codeteilen für Intels nächste Skylake-Plattform bringt der aktuelle i915-Treiber die Unterstützung virtueller GPUs mit, die bislang allerdings nur unter Xen laufen. Damit können Gastsysteme direkt auf Intels Grafikchips HD und Iris zugreifen. Ein entsprechender Treiber für die Kernel Virtual Machine (KVM) ist noch in Planung. Dank Änderungen an den DRM-Treibern für Hardware von Intel soll sich die Akkulaufzeit auf entsprechenden Geräten drastisch erhöht haben.

Noch kein Kdbus im Linux-Kernel

Sicherheitsbedenken haben hingegen die Aufnahme des Nachrichten-Bus-Systems Kernel D-Bus (KDBus) verhindert. Die Interprozess-Kommunikation ist ein Steckenpferd des Systemd-Entwicklers Lennart Poettering und des Kernel-Entwicklers Greg Kroah-Hartman, der sich einer hitzigen Debatte auf der Mailingliste des Linux-Kernels ausgesetzt sah, als er den Code einreichte. Linus Torvalds lehnte die aktuellen KDBus-Patches vor allem deshalb ab, weil darüber Metadaten übertragen werden, die zu viel über das System verraten – etwa, mit welchen Berechtigungen ein Gerät angesprochen wird. Diese Metadaten könnten in der jetzigen Umsetzung einfach protokolliert werden. In der andauernden Diskussion bemängelten weitere Entwickler, dass Kdbus noch nicht genügend überprüft worden sei.

Kroah-Hartman verteidigte indes Kdbus gegen Kritiker, die teils grundsätzlich daran zweifeln. Einige befürworten eine allgemeinere Implementierung einer Interprozess-Kommunikation. Kroah-Hartman erklärte seine Sicht in seinem Kommentar zu den eingereichten Patches: Die aktuelle Umsetzung von D-Bus als Daemon komme nicht mit großen Datenmengen klar und vor allem würden eben jene Metadaten nicht berücksichtigt, die Torvalds kritisierte, etwa Berechtigungen und Zeitstempel. Sie würden aber für eine verbesserte Einbindung von Geräten benötigt. Zudem sei D-Bus aktuell zu langsam, könne erst viel zu spät in der Startphase des Systems initialisiert werden, biete eine nur unzureichende Einbindung in das Sicherheitsframework SELinux und sei ohnehin äußerst fehleranfällig. An Kdbus wird seit über einem Jahr gearbeitet. Bereits im Oktober 2014 schlug Kroah-Hartman vor, den Code in den Kernel aufzunehmen. Angepasste Patches für Kdbus werden für die Aufnahme in Kernel 4.2 eingereicht.

Der Code des Linux-Kernels 4.1 ist auf kernel.org erhältlich.

Quelle