- Registriert
- 03.12.07
- Beiträge
- 305
Hallo,
ich habe mit ein bisschen probieren festgestellt, dass es möglich ist, mit TrueCrypt sich eine Alternative zu FileVault zu basteln.
Wichtig: Wenn man sich daran wagt, sollte man wissen, was man 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.
Meine Ziele waren:
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.
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
(diese Bezeichnungen sind die, die ich gewählt habe, sie stimmen auch mit denen im Script überein), und erstellt schließlich die Datei mit
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
ausgeführt und das Volume wie folgt gemountet.
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:
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 sparseimage-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
nicht vergessen), den FileVault-Ordner in einen temporären Ordner in /tmp. Das geschieht mit
Da steht sparseimage*, weil ich mir gerade nicht ganz sicher bin, wie das heißt... Ihr findet das schon, müsst ihr aber gar nicht, weil man * natürlich auch in der Konsole eintippen kann. Nun muss mit TrueCrypt das TrueCrypt-Volume mounten. Das geschieht mit
Jetzt müssen die Daten kopiert werden:
Nun ist man fertig. Wenn alles klappt, sollte man natürlich (wenn man sich mehrmals vergewissert hat dass es funktioniert!) /Users/meinbenutzername/sparseimage* löschen (oder am besten erstmal auf eine externe Platte verschieben)...
Schnell noch alles unmounten:
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, die angehängt ist, enthalten.
Damit alles automatisiert beim nächsten Start funktioniert, ist noch folgendes nötig (wieder durch Adminaccount:
Bei Fragen könnt ihr euch gerne an mich über diesen Thread wenden. Garantie übernehme ich natürlich keine.
Für eine Sicherung eures Homeverzeichnisses seid ihr selber verantwortlich. 
Es ist durchaus möglich, dass ich hier jetzt etwas vergessen habe, das ist mehr oder weniger alles aus dem Gedächtnis herausgekramt.
Viel Spaß!
Der_Apfel
ich habe mit ein bisschen probieren festgestellt, dass es möglich ist, mit TrueCrypt sich eine Alternative zu FileVault zu basteln.
Wichtig: Wenn man sich daran wagt, sollte man wissen, was man 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.
Meine Ziele waren:
- 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 (und sich ein vernünftiges Passwort zu merken ist doch nicht sooo leicht).
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.
Code:
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
Code:
cd /Volumes/STICK-1GB/.tc
Code:
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
Code:
sudo su
Code:
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:
Code:
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 sparseimage-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
Code:
sudo su
Code:
cd /tmp; mkdir ./home; hdiutil attach /Users/meinbenutzername/sparseimage* -readonly -owners on -mountpoint /tmp/home
Code:
mkdir /tmp/tcmeinbenutzername; tc -t --filesystem=none --non-interactive -v -k /Volumes/STICK-1GB/.tc/keyForHome.img /Users/home.meinbenutzername.tc.img; /usr/bin/hdiutil attach /tmp/.truecrypt_aux_mnt1/volume.dmg -readwrite -owners on -mountpoint /tmp/tcmeinbenutzername
Code:
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/sparseimage* löschen (oder am besten erstmal auf eine externe Platte verschieben)...
Schnell noch alles unmounten:
Code:
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, die angehängt ist, enthalten.
Damit alles automatisiert beim nächsten Start funktioniert, ist noch folgendes nötig (wieder durch Adminaccount:
Code:
sudo su;
defaults write com.apple.loginwindow LoginHook /Library/Management/loginhook;
defaults write com.apple.loginwindow LogoutHook /Library/Management/logouthook;
Bei Fragen könnt ihr euch gerne an mich über diesen Thread wenden. Garantie übernehme ich natürlich keine.


Es ist durchaus möglich, dass ich hier jetzt etwas vergessen habe, das ist mehr oder weniger alles aus dem Gedächtnis herausgekramt.
Viel Spaß!
Der_Apfel