Tue 29 May 2007
Sowie in Windows, als auch in Linux werden die Dateien in Computern normalerweise offen gespeichert, das den freien Zugriff auf jede Informationen jedem "zufälligen Passanten" (oder auch dem nicht besonders zufälligen) gibt.
Falls Sie etwas vor den Fremden geheim halten möchten, so ist dieser Artikel für Sie. Besonders trifft es Notebook-Besitzer (von den Massendiebstählen haben alle gehört).
Ich habe mich mit dem Verschlüsselungszeug beschäftigt, habe nachgeschaut, was die Leute schreiben, und nur noch wenige gescheiten Artikel gefunden, für Linux schon fast gar keine, nun hatte ich selbst das Rad zu erfinden. Kann sein, findet es jemand für sich auch nützlich.
Ich habe nicht alle Partitionen verschlüsselt sondern nur die Userdaten. Es ist genauso sicher, als wäre die ganze Partition mit allen Paketen und die Bibliotheken verschlüsselt!
Die Userdaten sind also folgende:
Fürs Verschlüsseln swap kann man sich auf die Linux-Mitteln verlassen.
Daher kurz und detailliert:
Mehr dazu. Setzen in tmpfs:
Nun setzen wir die Katalogen aus /var in Cryptopartition
hinzufügen. Dann neustarten und die Katalogen /ttmp, /var/ttmp löschen.
Als nächstes kommt eben selbst das Verschlüsseln der Partition /home Ich habe die Anleitung vom MasterGnome benutzt, dabei einige Kleinigkeiten korrigiert, die die Installation und Formatierung angehen.
Für Ubuntu Feisty ist die Installation etwas einfacher:
Stellen wir das Paket ein Automatix2, falls es noch nicht vorhanden ist. Mit Hilfe des Automatix stellen wir TrueCrypt ein.
Prüfen TC:
Truecrypt gestattet das Verschlüsseln mit dem Benutzen der Algorithmen AES, Twofish, Serpent.
Alle drei sind sicher und es existiert momentan nicht mal die theoretische Möglichkeit des Einbruchs, außer der Methode des Bruteforces.
AES - dient als Regierungsstandard in USA
Twofish - auf dem Prozessor AMD64 (linux kernel i386 2.6.20-16) ist das schnellste. Überholt AES etwa um 20%
Serpent - wesentlich langsamer der obengenannten.
Ich habe bemerkt, dass Twofish schneller auf AMD, und AES -auf Intel sind, dabei sind die beiden auf Intel Mobile ungefähr gleich schnell. Man kann den beliebigen auswählen, ich empfehle aber den erst auf dem eigenen PC nach der Geschwindigkeit zu prüfen.
Auch eine der folgenden Hash-Funktionen: RIPEMD-160, SHA-1 und Whirlpool, muss dabei ausgewählt werden.
SHA-1 - theoretisch gibt es die Einbruchsmöglichkeit, und obwohl es eher die Briefe und die digitalen Signaturen trifft, ist zum Benutzen trotzdem nicht empfehlenswert.
RIPEMD-160 - es gibt die by default. Für diesen Algorithmus existiert theoretisch immer noch keine Einbruchsmöglichkeit. Sein Vorgänger RIPEMD wurde aber schon eingebrochen.
Whirlpool - langsam, irgendwo wird sogar behauptet, 2-3 mal langsamer als die anderen. Nach meinen Tests aber ist es in TrueCrypt nicht so. Sowie in Linux, als auch in Windows XP bleibt er nicht mehr als um 5% von den anderen zurück. Zur Zeit ist der widerstandsfähigste. Und der jüngste.
Man kann auch Whirlpool oder RIPEMD-160benutzen.
In TC ist es möglich mit der Algorithmen-Cascade zu arbeiten. AES-Twofish zusammen mit Whirlpool und der verdeckte Container dazu - das Gemisch ist für die supergeheimen Dateien ;)
Bevor Sie weitergehen, bewahren Sie irgendwohin /home. Danach falls Ihr home sich an der einzelnen Partition befindet (z.B. sda3), es muss geunmountet werden:
Truecrypt ist auch praktisch deswegen, dass man im verschlüsselten Container noch einen verstecken kann. Obwohl steht in Dokumentation, dass der äußere Container als FAT formatiert werden muss, funktioniert er unproblematisch auch mit ext2. Beim Übersteigern von Grenzen zwischen den Containern mit dem Schlüssel -P sagt zwar das System nichts (wie es in Windows möglich ist), die Dateien gehen einfach verloren.
Journal des Filesystems befindet sich automatisch in Cryptocontainer.
Nun stellen wir in Bootprozess das Script ein (dank dem MasterGnome wieder), das das Passwort fragt und montiert:
in Ubuntu. Jetzt kopieren
"Ein Problemchen" bleibt nur, dass beim Passworteingeben zeigt er sich, das heißt, dass "stty -echo" beim Starten nicht funktioniert... Vielleicht helpt jemand...
Ich habe mich mit dem Verschlüsselungszeug beschäftigt, habe nachgeschaut, was die Leute schreiben, und nur noch wenige gescheiten Artikel gefunden, für Linux schon fast gar keine, nun hatte ich selbst das Rad zu erfinden. Kann sein, findet es jemand für sich auch nützlich.
Ich habe nicht alle Partitionen verschlüsselt sondern nur die Userdaten. Es ist genauso sicher, als wäre die ganze Partition mit allen Paketen und die Bibliotheken verschlüsselt!
Die Userdaten sind also folgende:
- swap
- /home - in Container tc setzen (geht auch als File und als Partition)
- /tmp - diese Dateien sind nur für eine Session gebraucht, darum sie einfach in tmpfs setzen
- /var/tmp - dasselbe
- /var/spool - hier befinden sich cron-Aufgaben des Users, Aufgaben für Drucker, lieber sie in Container zusammen mit dem Homeordner zu setzen
- /var/mail - in Container
- /var/lib/slocate - in Container
- /var/log - in Container. Obwohl nicht alles kommt beim Starten hierher, die Userlogos sind aber dem nicht zuzurechnen.
Fürs Verschlüsseln swap kann man sich auf die Linux-Mitteln verlassen.
Daher kurz und detailliert:
sudo -i apt-get install cryptsetup echo aes >> /etc/modules echo dm_mod >> /etc/modules echo dm_crypt >> /etc/modules [ restart computer ] sudo -i swapoff -a cryptsetup -d /dev/urandom create cryptoswap /dev/sda2 mkswap /dev/mapper/cryptoswap -L accessisdenied -v1 echo 'cryptoswap /dev/sda2 /dev/urandom swap' >> /etc/crypttab in fstab ersetzen ihr swap durch: /dev/mapper/cryptoswap none swap sw 0 0 dd if=/dev/urandom of=/dev/sda2 count=100 swapon -a
Mehr dazu. Setzen in tmpfs:
mv /tmp /ttmp mkdir tmp chmod 777 tmp /etc/fstab ergänzen mit: echo 'tmpfs /tmp tmpfs rw,nosuid,nodev,mode=0777' >> /etc/fstab mv /var/tmp /var/ttmp ln -s /tmp /var/tmp
Nun setzen wir die Katalogen aus /var in Cryptopartition
mkdir /home/.var chmod 755 /home/.var mv /var/spool/ /home/.var/spool ln -s /home/.var/spool /var/spool mv /var/mail /home/.var/mail ln -s /home/.var/mail /var/mail mkdir /home/.var/lib chmod 755 /home/.var/lib mv /var/lib/slocate /home/.var/lib/slocate ln -s /home/.var/lib/slocate /var/lib/slocate mv /var/log home/.var/log ln -s /home/.var/log /var/logDas Indexieren den verschlüsselten Partitionen muss man abschalten, im File /etc/updatedb.conf, im PRUNEPATHS - das /home
hinzufügen. Dann neustarten und die Katalogen /ttmp, /var/ttmp löschen.
Als nächstes kommt eben selbst das Verschlüsseln der Partition /home Ich habe die Anleitung vom MasterGnome benutzt, dabei einige Kleinigkeiten korrigiert, die die Installation und Formatierung angehen.
Für Ubuntu Feisty ist die Installation etwas einfacher:
Stellen wir das Paket ein Automatix2, falls es noch nicht vorhanden ist. Mit Hilfe des Automatix stellen wir TrueCrypt ein.
Prüfen TC:
if truecrypt --test &> /dev/null; then echo "Ok"; else echo "Error"; fiTrueCrypt lässt Cryptocontainers sowohl in Partitionen als auch in Files schaffen, die als Partitionen eingeschaltet werden müssen. Zum Ersetzen des eines auf das andere in untenfolgenden Kommandos genügt es die Partition (z.B. /dev/sda3) gegen den Name des Files (z.B. home.tc) zu tauschen.
Truecrypt gestattet das Verschlüsseln mit dem Benutzen der Algorithmen AES, Twofish, Serpent.
Alle drei sind sicher und es existiert momentan nicht mal die theoretische Möglichkeit des Einbruchs, außer der Methode des Bruteforces.
AES - dient als Regierungsstandard in USA
Twofish - auf dem Prozessor AMD64 (linux kernel i386 2.6.20-16) ist das schnellste. Überholt AES etwa um 20%
Serpent - wesentlich langsamer der obengenannten.
Ich habe bemerkt, dass Twofish schneller auf AMD, und AES -auf Intel sind, dabei sind die beiden auf Intel Mobile ungefähr gleich schnell. Man kann den beliebigen auswählen, ich empfehle aber den erst auf dem eigenen PC nach der Geschwindigkeit zu prüfen.
Auch eine der folgenden Hash-Funktionen: RIPEMD-160, SHA-1 und Whirlpool, muss dabei ausgewählt werden.
SHA-1 - theoretisch gibt es die Einbruchsmöglichkeit, und obwohl es eher die Briefe und die digitalen Signaturen trifft, ist zum Benutzen trotzdem nicht empfehlenswert.
RIPEMD-160 - es gibt die by default. Für diesen Algorithmus existiert theoretisch immer noch keine Einbruchsmöglichkeit. Sein Vorgänger RIPEMD wurde aber schon eingebrochen.
Whirlpool - langsam, irgendwo wird sogar behauptet, 2-3 mal langsamer als die anderen. Nach meinen Tests aber ist es in TrueCrypt nicht so. Sowie in Linux, als auch in Windows XP bleibt er nicht mehr als um 5% von den anderen zurück. Zur Zeit ist der widerstandsfähigste. Und der jüngste.
Man kann auch Whirlpool oder RIPEMD-160benutzen.
In TC ist es möglich mit der Algorithmen-Cascade zu arbeiten. AES-Twofish zusammen mit Whirlpool und der verdeckte Container dazu - das Gemisch ist für die supergeheimen Dateien ;)
Bevor Sie weitergehen, bewahren Sie irgendwohin /home. Danach falls Ihr home sich an der einzelnen Partition befindet (z.B. sda3), es muss geunmountet werden:
umount /homeFür Hauptordner /home schaffen wir äußeren Cryptocontainer:
truecrypt --encryption AES --type normal -c /dev/sda3das Filesystem als None, den beliebigen Hash-Algorithmus und zwei mal Passwort. Danach:
truecrypt /dev/sda3Nun ist das Formatieren des Containers:
mkfs.ext2 -v /dev/mapper/truecrypt0
mount /dev/mapper/truecrypt0 /homeDen gespeicherten /home mit allen Ihren Dateien dahin umschreiben. .var aus dem gespeicherten /home nicht vergessen und da alle Files entfernen.
umount /home truecrypt -dStatt ext2 kann man auch das andere Filesystem benutzen: ext3, ReiserFS.
Truecrypt ist auch praktisch deswegen, dass man im verschlüsselten Container noch einen verstecken kann. Obwohl steht in Dokumentation, dass der äußere Container als FAT formatiert werden muss, funktioniert er unproblematisch auch mit ext2. Beim Übersteigern von Grenzen zwischen den Containern mit dem Schlüssel -P sagt zwar das System nichts (wie es in Windows möglich ist), die Dateien gehen einfach verloren.
Journal des Filesystems befindet sich automatisch in Cryptocontainer.
Nun stellen wir in Bootprozess das Script ein (dank dem MasterGnome wieder), das das Passwort fragt und montiert:
cd /usr wget http://privat.heinzelzwerg.de/howtos/debian -->> -->> /truecrypt/tcbootscreen.tar.bz2 tar -xvjf tcbootscreen.tar.bz2 chown root:root /usr/tcbootscreen/* chmod ugo+x /usr/tcbootscreen/* chmod ugo-x /usr/tcbootscreen/tcscreen.tmp chmod ugo-x /usr/tcbootscreen/main.logund tauschen in allen Scripten #!/bin/sh - überall um #!/bin/bash, ansonsten ergibt sich ein Fehler mit declare
in Ubuntu. Jetzt kopieren
mv /usr/tcbootscreen/tcbootscreen /etc/init.d/tcbootscreen update-rc.d tcbootscreen defaultsIm File /usr/tcbootscreen/decrypt setzen eigene Werte für device und mountpoint ein.
"Ein Problemchen" bleibt nur, dass beim Passworteingeben zeigt er sich, das heißt, dass "stty -echo" beim Starten nicht funktioniert... Vielleicht helpt jemand...
English
Deutsch
Русский

June 2nd, 2007 at 7:56 a.m.
А как шифрованный своп подружить с suspend-to-disk ?
June 2nd, 2007 at 1:55 p.m.
Это основная проблема при любом шифровании. Если не шифровать своп, то данные все в чистом виде пишутся на диск, если шифровать, то невозможно восстановить при спячке.
Я не знаю решения этой проблемы. Тут каждый выбирает для себя, безопасность или возможность засыпания.
June 2nd, 2007 at 2:16 p.m.
Еще стоит написать про то где и как можно хранить ключи.
June 2nd, 2007 at 2:17 p.m.
там есть скрипт, запускаемый при старте с убунтой, так вот у него есть возможность автоподмонтирования USB-флешки, и после проверки ключа и пароля, авторазмонтирование
June 2nd, 2007 at 2:18 p.m.
В вашем случае, чтобы не плодить контейнеры, проще было бы зашифровать корневой раздел целиком. На ноутбуке для этого лучше использовать loop-aes, т.к. c он поддерживает soft suspend. Я бы так же добавил ключ с flash брелка.
Если немного поиграться с алгоритмами шифрования и хэширования, можно увеличить скорость работы swap/tmp. Нет смылса защищать временные данный сильным и медленным алгоритмом.
Единственный плюс в иcпользовании truecrypt в linux - возможность использовать криптоконтейнер из windows. Полезность plausible deniability при шифровании целых файловых систем сомнительность.
На десктопе /var/log обычно тоже можно поместить на tmpfs.
June 2nd, 2007 at 2:19 p.m.
я обхожусь одним контейнером, в котором только /home, естественно, что весь диск не надо размещать одновременно в внешнем и скрытом контейнерах, а вот для домашней папки я думаю - в самый раз. И алиби-данные, и свои - все в одном месте.
сначала я так и сделал c /var/log, но потом обнаружил, что например CUPS ругается. Хотя это не принципиально, можно немножко подкрутить ;)
June 2nd, 2007 at 2:21 p.m.
Пользуюсь TrueCrypt'ом уже полгода, доволен полностью: бесплатный, кросплатформенный. Там есть чудная функция "Traveller Disk Setup" - создает свой автозапуск на флешке, удобно - воткнул флешку, ввел пароль и твой секретный диск уже тут.
June 15th, 2007 at 10:57 a.m.
А зачем TrueCrypt, если есть штатные cryptsetup, dm-crypt, LUKS? И _большинство_ дистрибутивов имеют в своем составе не только их поддержку, но и средства для работы с зашифрованными дисками в KDE, Gnome, etc? И, что характерно, это совместимо (с использованием FreeOTFE) с Windows. В том числе - portable.
Так что пример - неудачный...
June 16th, 2007 at 1:16 p.m.
2ABATAPA:
Все очень просто...а есть ли во всех этих средствах реализация скрытого контейнера внутри зашифрованного?
April 3rd, 2008 at 11:32 a.m.
в debian юзаю cryptsetup (в 2.6 стандарт как бы)
на http://linuxgazette.mirrors.org.ua/14... можно прочесть что к чему
April 3rd, 2008 at 6:04 p.m.
2slav0nic:
насколько я знаю, скрытые тома он не поддерживает