Solaris

Der sichere und effiziente Umgang mit großen und größten Datenmengen gehört heute sicherlich zu den her- ausragenden Aufgaben eines jeden IT-Infrastruktur-Dienstleisters – egal, ob betriebsintern oder für den freien Markt. Dabei stehen besonders die Datenintegrität, die technischen und organisatorischen Maßnahmen, die diese gewährleisten sollen, und natürlich der Sicherheitsaspekt beim Zugriff auf die gespeicherten Daten im Vordergrund. ZFS-Verschlüsselung und andere Neuigkeiten in Solaris 11

Thomas Nau, Universität Ulm – kiz

ZFS hat mit seinem Erscheinen in So- chender redundanter Auslegung der Verschlüsselung mit ZFS laris 10 im Bereich der Datenintegri- Platten-Systeme, auch zu korrigie- Mit der Freigabe von Solaris 11 haben tät nicht nur neue Maßstäbe gesetzt, ren. Hervorzuheben ist hierbei, dass Anwender nun zusätzlich die Möglich- sondern sich in den vergangenen Jah- die Prüfsummen getrennt von den keit, ZFS-Filesysteme und -Volumes mit ren zu einem Maßstab für Filesysteme eigentlichen Daten im sogenannten sicheren Algorithmen wie AES-256 zu schlechthin entwickelt. Alle anderen „Pointer-Bereich“ abgelegt sind. Auf- verschlüsseln. Voreingestellt ist „AES- seither entstandenen und auch zukünf- grund dieser Anordnung lassen sich 128-CCM“. Sofern die eingesetzte Hard- tigen Entwicklungen müssen sich daran die Auswirkungen durch den Ausfall ware Beschleuniger für kryptographi- messen lassen. Die Dynamik der ZFS- einzelner Plattensektoren reduzieren. sche Operationen bietet, etwa Oracle Weiterentwicklung ist jedoch ungebro- • Die besonders wichtigen Metada- T4- und T5-Chips oder auch die Intel chen. Mit Solaris 11 stehen neben Per- ten des Systems, also diejenigen, AES-NI-Erweiterung, werden diese au- formance-Verbesserungen auch neue die die Strukturen von Filesyste- tomatisch vom Solaris-Crypto-Frame- Fähigkeiten zur Verfügung. So besteht men und Pools beschreiben, werden work erkannt und genutzt. Eine Ver- jetzt die Möglichkeit, ZFS-Filesysteme mehrfach und von der übergeord- schlüsselung des Root-Filesystems ist und Volumes durch ZFS-bereitgestellte neten Redundanz unabhängig in derzeit ausschließlich für nicht globale Block-Devices transparent zu verschlüs- sogenannten „Ditto-Blocks“ gespei- Zonen möglich. Hierzu später mehr. seln und diese Datenbereiche dann bei- chert. Auf Wunsch lässt sich dieses Zwei Punkte sind vor dem Einsatz spielsweise für virtualisierte Systeme in Prinzip auch auf die Nutzerdaten er- der Verschlüsselung zu beachten. Zum Zonen zu nutzen. Ebenfalls in Solaris weitern, indem die entsprechenden einen kann sie nur für neu anzulegen- 11 adressiert und vereinfacht wurde die Properties für das ZFS-Filesystem ge- de Filesysteme und Volumes aktiviert Datenmigration von UFS hin zu ZFS. setzt werden. werden und zum anderen ist auch eine spätere Deaktivierung nicht möglich. Grundlegende ZFS-Design-Kriterien ZFS bietet darüber hinaus eine Vielzahl Man bindet sich also für die Lebensdau- Für den Betrieb einer universitären, betrieblicher Vorteile, etwa Snapshots er der Filesysteme. Alle notwendigen zentralen Infrastruktur sind File- und und Slones. Diese kommen vermehrt als Befehle sind in das „“-Kommando- Betriebssysteme notwendig, die weit- Ergänzung beziehungsweise als Ersatz zeilen-Tool integriert. Der Einsatz von reichende Vorkehrungen zum Schutz üblicher Backup-Lösungen zum Einsatz. Verschlüsselung ist auch bei bereits der Datenintegrität sowie der Datensi- Nur so sind mit vergleichsweise gerin- existierenden Pools möglich, solange cherheit bieten und damit vor Daten- gem Aufwand Filesysteme mit meh- diese mindestens die Versionsnummer verlust schützen. Bei der Entwicklung reren 10 Millionen Dateien ein oder 30 tragen oder ein dahingehender Up- von ZFS wurden von Beginn an ins- mehrmals pro Tag aus Sicht der Anwen- grade möglich ist (siehe Listing 2). Die besondere auch die designbedingten dung zeitlich konsistent zu sichern. aktuellen, auf den ehemaligen Open- Schwachstellen herkömmlicher Filesys- Regelmäßiges „scrubbing“, also das Solaris-Quellen basierenden ZFS-Versi- teme korrigiert: Überprüfen aller Prüfsummen, ein- onen in Illumos und FreeBSD bieten schließlich gegebenenfalls notwendi- die Möglichkeit zur Verschlüsselung • Gültige Daten werden niemals über- ger Korrekturen schützt vor unliebsa- nicht. Die zugehörigen ZFS-Properties schrieben (copy-on-write, COW). men Überraschungen, da Probleme lassen sich wie gewohnt auslesen (sie- • Starke Prüfsummen wie „fletcher4“ bereits sehr frühzeitig erkannt werden he Listing 3). oder „sha256“ ermöglichen es, Feh- können. Das nachfolgende Beispiel Der einmal gewählte Verschlüsse- ler auf dem gesamten Datenpfad zu verdeutlicht die Erkennung von Feh- lungsalgorithmus ist nicht änderbar. erkennen und diese, bei entspre- lern (siehe Listing 1). Alle zugehörigen ZFS-Properties wer-

DOAG News 3-2013 | 27 Solaris

• Prompt # zpool scrub testpool # sleep 15 ; zpool status -v testpool Interaktive Abfrage der „passphra- se“, wenn das Filesystem erzeugt pool: testpool oder „gemountet“ wird state: ONLINE • file://filename status: One or more devices has experienced an unrecoverable error. An attempt was made to correct Der Schlüssel wird aus einer Datei, the error. Applications are unaffected. etwa aus einem USB-Stick, gelesen action: Determine if the device needs to be replaced, and • pkcs11 clear the errors using ‘zpool online’ or replace the Der Schlüssel wird aus einem device with ‘zpool replace’. see: http://www.sun.com/msg/ZFS-8000-9P PKCS#11-Token ausgelesen scrub: scrub in progress, 6.21% done, 0h4m to go • ://location config: Der Schlüssel wird von einem Web- NAME STATE READ WRITE CKSUM Server über eine HTTPS-Verbindung testpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 bereitgestellt c4t0d0s0 ONLINE 0 0 0 c4t1d0s0 ONLINE 0 0 58 228.5 repaired Dabei stehen folgende Formate zur Listing 1 Verfügung:

• Raw # zfs create -o encryption=aes-256-ccm pool/thomas Enter passphrase for ‘pool/thomas’: Bytefolge Must be at least 8 characters. • Hex Enter passphrase for ‘pool/thomas’: Hexadezimal-String Enter again: • Passphrase Listing 2 Passwort, aus dem der Schlüssel ge- neriert wird den vererbt, also alle nachgeordne- Die Änderung spiegelt sich direkt in ten Filesysteme, insbesondere auch den Properties wieder (siehe Listing 4). Achtung: Beim Aushängen („um- Snapshots und Clones, sind ebenfalls Der neue Schlüssel kommt dann für ount“) eines verschlüsselten Filesys- zwingend verschlüsselt. alle ab dem Änderungszeitpunkt ge- tems werden die Schlüssel nicht aus Die bei ZFS zum Einsatz kommen- schriebenen neuen Daten zum Einsatz. dem Kernel entfernt, daher kann ein de Schlüsselverwaltung ist zweistufig. Änderungen dieses internen Schlüssels Administrator das Filesystem bis zu Nach außen sichtbar ist der sogenann- sollten eher selten und im Einklang mit einem „reboot“ wieder „mounten“ – te „Wrapping Key“. Er wird dem System den lokal vorgegebenen Sicherheits- und zwar ohne dass der Schlüssel be- beispielsweise aus einer „passphrase“ empfehlungen vorgenommen werden. nötigt wird. Um dies zu verhindern, generiert. Alternativ kann der Schlüssel Das National Institute of Standards and muss der Encryption Key des infrage auch als Byte-Folge oder Hexadezimal- Technology (NIST) empfiehlt, derartige kommenden Filesystems oder Volu- String bereitgestellt werden. Der Wrap- Schlüssel alle zwei Jahre zu wechseln. mes mit „# zfs key -u pool/thomas“ ping Key dient ausschließlich dazu, den Gänzlich anders verhält es sich mit explizit aus dem Kernel entfernt wer- eigentlichen, vom Kernel verwende- den zu jedem verschlüsselten ZFS-Vo- den. Die folgenden Beispiele verdeut- ten Schlüssel, den „Encryption Key“, lume beziehungsweise -Filesystem ge- lichen den einfachen Umgang mit den zu schützen. Beim Setzen einer neuen hörenden individuellen Schlüsseln Verschlüsselungsfähigkeiten von ZFS. „passphrase“ verschlüsselt das System und „passphrases“. Diese lassen sich Wechsel des Schlüssels (siehe Listing nur den vorhandenen Encryption Key nach Belieben ändern. Um sie vom 5), Laden des Schlüssels in den Kernel neu. Der Datenbestand bleibt davon Benutzer abzufragen oder auch aus ei- (siehe Listing 6) und Wechsel des Be- unberührt, die Daten werden also nicht nem Gerät auszulesen, stehen mehrere reitstellungsmechanismus, etwa aus ei- komplett neu kodiert, sondern bleiben Mechanismen und Formate zur Verfü- ner Datei (siehe Listing 7). Diese ist im mit den jeweiligen alten Encryption gung. Dies sind derzeit: Idealfall auf einem leicht entfernbaren Keys verschlüsselt. Dies gilt übrigens auch für die Änderung des Encryption # zfs get \ Key durch den Solaris-Kern. Hier wird encryption,keychangedate,keysource,keystatus,rekeydate \ lediglich eine ausreichend lange Byte- pool/thomas NAME PROPERTY VALUE SOURCE Folge vom System zufällig ausgewählt. pool/thomas encryption aes-256-ccm local Hier nutzt das System mittels Solaris pool/thomas keychangedate Sat Sep 15 18:03 2012 local Crypto Framework gegebenenfalls vor- pool/thomas keysource passphrase,prompt local handene Zufallszahlen-Generatoren. pool/thomas keystatus available - pool/thomas rekeydate Sat Sep 15 18:03 2012 local Das Kommando „# zfs key -K pool/ thomas“ übernimmt diese Aufgabe. Listing 3

28 | www.doag.org Solaris

# zfs get keychangedate,rekeydate pool/thomas der Zone geschützt wird. Dieser Schutz NAME PROPERTY VALUE SOURCE kann nach Wahl sehr strikt ausfal- pool/thomas keychangedate Sat Sep 15 18:03 2012 local len, also keinerlei Ausnahmen zulas- pool/thomas rekeydate Sat Sep 15 18:06 2012 local sen, oder auch flexibel gestaltet sein. Listing 4 Im letzteren Fall können beispielswei- se Dateien im Home-Directory von # zfs key -c pool/thomas „root“ oder in „/etc“ und „/var“ ver- Enter new passphrase for ‘pool/thomas’: ändert werden. Auch eine Kombinati- Enter again: on mit verschlüsselten Filesystemen ist Listing 5 leicht zu bewerkstelligen, wie Darren Moffat in einem seiner Blog-Beiträge # zfs key -l pool/thomas unter https://blogs.oracle.com/darren/ Enter passphrase for ‘pool/thomas’: entry/immutable_zones_on_encryp- Listing 6 ted_zfs zusammengefasst hat. Die Solaris 11 „Shadow Migrati- on“ gibt Administratoren ein Mittel an # echo “My Big Secret” > /root/KEY # 400 /root/KEY die Hand, um lokale, aber auch NFS- # zfs key -u pool/thomas gemountete UFS- und ZFS-Filesysteme # zfs set keysource=passphrase,file:///root/KEY pool/thomas in ein neues ZFS-Filesystem zu mig- # zfs key -l pool/thomas rieren. Dies geschieht weitestgehend Listing 7 transparent für die Nutzer des Systems. Eine Ausnahme bilden die gelegent- # echo “My_Passphrase” > /root/KEY_TN lich auftretenden Verzögerungen beim # zfs create -o encryption=aes-256-ccm \ Datenzugriff, sofern eine Datei noch -o keysource=passphrase,file:///root/KEY_TN \ nicht migriert wurde. Die zu erfüllen- rpool/home/tn_enc # ls -l /home/tn_encrypt den Voraussetzungen sind einfach: total 0 • Das Quell-Filesystem muss „read- obi-wan# zfs set shadow=file:///home/tn rpool/home/tn_encrypt only“ gemountet sein und darf im obi-wan# ls -l /home/tn_enc total 4 Falle von NFS auch serverseitig nicht drwx------2 nau kizinfra 2 Sep 10 15:08 bin verändert werden drwx------2 nau kizinfra 2 Jul 10 08:04 doc • Das Ziel-Filesystem muss leer sein drwx------2 nau kizinfra 2 Oct 27 2002 src

Listing 8 Mittels „Shadow Migration“ lassen sich zum Beispiel bestehende Home-Ver- Datenträger wie einem USB-Memory- 2. Verschlüsselung der komprimierten zeichnisse transparent und quasi im Stick gespeichert. Daten, sofern aktiviert laufenden Betrieb in verschlüsselte ZFS Die Verschlüsselung von Home-Direc- 3. Bildung der Prüfsumme Filesysteme migrieren, da ja eine nach- tories wird in Solaris 11 durch Pluggable 4. Deduplizierung, sofern aktiviert trägliche Aktivierung der Verschlüsse- Authentication Modules (PAM) unter- lung für bereits benutzte Filesysteme stützt, sofern diese in jeweils eigenen Da die zur Verschlüsselung der Daten- nicht möglich ist. Lediglich die not- ZFS-Filesystemen untergebracht sind. In blöcke eingesetzten Encryption Keys wendige Anpassung des Pfades für die diesem Fall leitet sich der Wrapping Key zwischen unterschiedlichen Filesyste- Verzeichnisse, etwa in „/etc/passwd“, aus dem Passwort des Nutzers ab. Weiter- men im Allgemeinen nicht gleich sind, hat gegebenenfalls eine Unterbrechung führende Informationen hierzu stehen unterscheiden sich auch identische Ein- für die jeweiligen Nutzer zur Folge. Das unter „https://blogs.oracle.com/dar- gangsdaten nach dem zweiten Schritt nachfolgende Beispiel verdeutlicht die ren/entry/user_user_home_directo- der Prozesskette. Dies kann erheblichen notwendigen Schritte (siehe Listing 8). ry_encryption“ in Darren Moffats Blog. Einfluss auf die zu erwartende Dedupli- zierungsrate des gesamten Pools haben. Verschlüsselung versus Deduplizierung Das Zusammenspiel zwischen ZFS-eige- Zonen Thomas Nau ner Komprimierung, Verschlüsselung und Ebenfalls neu in Solaris 11 sind die so- thomas.nau Deduplizierung stellt sich beim Schreiben genannten „Immutable Zones“. Sie bie- @uni-ulm.de von Daten folgendermaßen dar: ten im Vergleich zu herkömmlichen Zonen eine noch weiter reichende Si- 1. Komprimierung der Daten, sofern cherheit, da das zugehörige Root-File- aktiviert system vor Manipulationen innerhalb

DOAG News 3-2013 | 29