Do szyfrowania partycji w systemach Linuksowych można wykorzystać dm-crypt - jest to już od dłuższego czasu w jądrze, potrzebny jest jeszcze tylko pakiet cryptsetup. W konfiguracji jądra należy włączyć szyfry (np. AES, Blowfish) i dm-crypt dla "Device mapper".
Teraz pokażę jak utworzyć szyfrowaną partycję, ja wykorzystuję LVM, ale nic nie stoi na przeszkodzie wykorzystać dowolną inną partycję.
Tworzymy partycję:
# lvcreate -n encrypted -L 2G vg Logical volume "encrypted" created
Tworzymy mapowanie szyfrujące:
# cryptsetup -v --cipher aes-cbc-plain -y create decrypted /dev/vg/encrypted Enter passphrase: Verify passphrase:
Tworzymy system plików:
# mkfs.ext3 /dev/mapper/decrypted
mke2fs 1.40.6 (09-Feb-2008)
Warning: 256-byte inodes not usable on older systems
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Teraz już możemy zamontować naszą zaszyfrowaną partycję:
# mount /dev/mapper/decrypted /mnt/crypt
Utworzone mapowanie będzie istniało aż do wyłączenia systemu lub ręcznego usunięcia (przez cryptsetup remove). W Gentoo automatyczne tworzenie mapowań realizuje dodatek dmcrypt do baselayout, polecam przeczytać plik /etc/conf.d/dmcrypt.
Ważne: błędnie podane hasło nie jest sygnalizowane przez cryptsetup - dopiero nieudana próba zamontowania odszyfrowanej partycji może świadczyć o błędnym haśle.
Dużą zaletą dm-crypt w porównaniu z szyfrowaniem pojedynczych plików jest ukrywanie nie tylko zawartości plików ale również informacji o nich: szyfrowany jest cały system plików - uniemożliwia to nie tylko odczytanie danych z plików, ale również zorientowanie się co właściwie jest na takiej partycji. Drugą ważną zaletą jest przeźroczystość rozwiązania - odszyfrowaną partycję montujemy jak każdą inną, więc można ją wykorzystać do dowolnego celu - trzymanie tajnej poczty, szyfrowanie plików baz danych w /var/lib/postgresql, ogólnie: można z taką partycją dokładnie to samo co z normalną (niezaszyfrowaną) partycją (w odróżnieniu od encfs). Wadą jest wymaganie praw administratora do utworzenia mapowania i zamontowania partycji w odróżnieniu od wspomnianego już encfs, który działa jako moduł FUSE.
dm-crypt umożliwia również wczytywanie klucza z pliku zamiast hasła z klawiatury, daje to ciekawe możliwości:
- szyfrowanie partycji wymiany (swap) losowym kluczem z /dev/urandom - innym przy każdym starcie
- szyfrowanie partycji kluczem zapisanym na zewnętrznym nośniku: pendrive, karta SD, telefon z włączonym Bluetooth, etc...
Więcej o dm-crypt można poczytać na stronie domowej dm-crypt.
Czy masz jakiś patent, żeby wygodnie używać dm-crypt z zewnętrznymi dyskami USB? Coś w stylu: podłączam dysk, automatycznie pojawia się pytanie o hasło, wklepuję hasło, wciskam enter i gotowe -- mam zamontowany dysk i ikonkę na desktopie?
