Anleitung: Benutzerverzeichnis von Mac OS mit TrueCrypt verschlüsseln

Wichtig: Wer sich daran wagt, sollte wissen, was er mit jedem von mir gezeigten Befehlt tut. Es ist höchstwahrscheinlich nicht möglich, der Anleitung zu folgen ohne selbst zu wissen, was man macht und gegebenenfalls einen Befehl etwas anzupassen beziehungsweise zu korrigieren.

Ziele:

  • Verschlüsselung mit TrueCrypt statt mit proprietärem FileVault. So weiß ich, wie verschlüsselt wird und dass nicht noch ein Zweitkey existiert.
  • Verschlüsselung mit einem Keyfile, welches auf einem USB-Stick gespeichert sein kann. Ich finde es komfortabler, außerdem kann dann das Nutzerpasswort recht kurz gehalten sein. So ein Keyfile bietet natürlich auch weniger Angriffsfläche für einen Bruteforce-Angriff als ein Passwort.
  • Lauffähig unter MacOS X 10.5 (Leopard) und 10.6 (Snow Leopard) und TrueCrypt (sicher lauffähig sind 6.2, 6.2a und 6.3).


Diese Ziele konnten erfüllt werden.

Anleitung:

Zuerst habe ich mich mit einem Administratoraccount angemeldet.

Ich gehe davon aus, dass TrueCrypt in
/Applications installiert wurde. Dann legen wir erstmal einen Symlink an, damit man immer nur tc eintippen muss, um TrueCrypt über die Konsole aufzurufen.

ln -s /Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt /usr/local/bin/tc

Nun muss ein Keyfile erstellt werden. 4kB = 4096 Byte = 32768 Bit sollten genügen, da die Verschlüsselung ja “nur” 256 Bit stark ist. Zum Erstellen öffnet man ein Terminal, wechselt zu dem Verzeichnis auf seinem USB-Stick, auf dem man den Key speichern möchte mit

cd /Volumes/USBSTICK/.tc</code>

(diese Bezeichnungen sind die, die ich gewählt habe, sie stimmen auch mit denen im Script überein), und erstellt schließlich die Datei mit

dd if=/dev/random of=./keyForHome.img count=1 bs=4096

Jetzt kann man das TrueCrypt Volume anlegen. Mit TrueCrypt wird über die grafische Oberfläche (mir erscheinen die Mausbewegungen zufälliger als 320 Zeichen) ein Volume Filesystem erzeugt, als Keyfile wird natürlich das eben erzeugte angegeben, und nach /Users verschoben. Hierbei muss man sich wieder authentifizieren, da nur root das tun kann. Nun wird wieder ein Terminal geöffnet, ein

sudo su</code>

ausgeführt und das Volume wie folgt gemountet.

tc -t --filesystem=none /Users/home.meinbenutzername.tc.img

Nun wählt man mit dem Festplattendienstprogramm (unter Dienstprogramme) /tmp/.truecrypt_aux_mnt1/volume.dmg aus und formatiert es mit HFS+, falls es danach automatisch gemountet wird, wirft man es über das Festplattendienstprogramm wieder aus. Jetzt muss es auch noch von TrueCrypt ausgeworfen werden:

tc -t -d /tmp/.truecrypt_aux_mnt1/volume.dmg

Natürlich möchte man seine Daten vom Home-Verzeichnis in das neue TrueCrypt-Volume kopieren. Falls dadurch der Speicherplatz knapp wird, sollte man als Zwischenstation eine externe Festplatte nehmen (die sparsebundle-Datei also auf eine externe Platte verschieben). Damit das Kopieren klappt, ist es sicherer, den User, der FileVault benutzt, abzumelden, falls das nicht schon geschehen ist. Nun mountet man über das Terminal, immer noch als root (also

sudo su

nicht vergessen), den FileVault-Ordner in einen temporären Ordner in /tmp. Das geschieht mit

cd /tmp;
mkdir ./home;
hdiutil attach /Users/meinbenutzername/meinbenutzername.sparsebundle -readonly -owners on -mountpoint /tmp/home

Nun muss mit TrueCrypt das TrueCrypt-Volume mounten. Das geschieht mit

mkdir /tmp/tcmeinbenutzername;
tc -t --filesystem=none --non-interactive -v -k /Volumes/USBSTICK/.tc/keyForHome.img /Users/home.meinbenutzername.tc.img;
/usr/bin/hdiutil attach /tmp/.truecrypt_aux_mnt1/volume.dmg -readwrite -owners on -mountpoint /tmp/tcmeinbenutzername

Jetzt müssen die Daten kopiert werden:

cp -Rp /tmp/home/* /tmp/tcmeinbenutzername/

Nun ist man fertig. Wenn alles klappt, sollte man natürlich (wenn man sich mehrmals vergewissert hat dass es funktioniert!) /Users/meinbenutzername/meinbenutzername.sparsebundle löschen (oder am besten erstmal auf eine externe Platte verschieben)…
Schnell noch alles unmounten:

hdiutil detach /tmp/tcmeinbenutzername;
hdiutil detach /tmp/home;
tc -t -d /tmp/.truecrypt_aux_mnt1/volume.dmg;

Die Dateien loginhook, logouthook und mounttconstartup.sh müssen nach /Library/Management kopiert werden. In mounttconstartup.sh müssen KEYFILEPATH angepasst werden (relativ zum KEYFILEMOUNTDIR), TCIMAGEPATH, TCIMAGEMOUNTPATH, KEYFILEDEVICEFS, MOUNTCHOWN, STANDARDUSBSTICKMOUNTPOINT, USERNAME auch. Die Dateien sind in der ZIP-Datei, siehe unten, enthalten.

Damit alles automatisiert beim nächsten Start funktioniert, ist noch folgendes nötig (wieder im Adminaccount):

sudo su;
defaults write com.apple.loginwindow LoginHook /Library/Management/loginhook;
defaults write com.apple.loginwindow LogoutHook /Library/Management/logouthook;

Garantie übernehme ich natürlich keine. Für eine Sicherung eures Homeverzeichnisses seid ihr selber verantwortlich.

Viel Spaß und Erfolg,
Sebastian

Und hier die Dateien: management.zip

    • Hans
    • June 24th, 2010 8:06am

    “Ich finde es komfortabler, außerdem kann dann das Nutzerpasswort recht kurz gehalten sein. So ein Keyfile bietet natürlich auch weniger Angriffsfläche für einen Bruteforce-Angriff als ein Passwort.”

    falsch. Dein Verschlüsselungssystem ist nur so gut wie das schwächste PW.

    Benutzerpw = 4 BIT = 2hoch4 Möglichkeiten = 16.
    Da bringt dann auch kein Keyfile was mit dem du deine Daten dann mit 160 BIT oder mehr verschlüsselt.

    Greez

  1. Hallo,

    danke für deinen Kommentar!
    Das stimmt so nicht. Die verschlüsselte Image-Datei wird nur mit dem Keyfile verschlüsselt. Das Nutzer-Passwort hat damit nichts zu tun. Bei FileVault hingegen wird mit dem Nutzerpasswort verschlüsselt, deshalb sollte man in dem Fall das Passwort sicher wählen.

    Viele Grüße.

  2. Wirklch sehr informativ! Werde aufjedenfall wieder kommen. Danke fuer den Beitrag.

    Gruss
    Andres

    • Lumpy
    • October 19th, 2012 8:07pm

    Sehr geiler Tipp, danke dafür!

    Es nervt nämlich ungemein, wenn man mal ein anderes OS gebootet hat und nicht an den FileVault herankommt. Außerdem werden unter FV häufig geänderte Einstellungen/Preferences nicht übernommen -> kill lsregister workaround.

    P.S: So ein Keyfile wird noch sicherer, wenn man es nicht Keyfile nennt. Irgendwein MP3 oder JPEG tut es auch!

  1. November 17th, 2010

 

Durch die weitere Nutzung der Seite stimmst du der Datenschutzerklärung,
dem Haftungsausschluss und der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen