/home暗号化
環境はubuntu8
FS暗号化の種類
カーネル2.6以降。device-mapperに暗号化レイヤを追加する。
ブロックデバイス <=> 暗号化レイヤ <=> ファイルシステム
ブロックデバイスでないフラッシュメモリには使えない
- FUSE : Filesystem in Userspace
ユーザ空間でファイルシステムの構築&マウントができるようにする。
ファイル名、内容は暗号化されるがパーミッションやファイルの数は暗号化ディレクトリを見ればわかってしまう
暗号化関連のメタデータをファイルのヘッダに付加する。これによってポータビリティを確保。
現状、ファイル名の暗号化はできない模様。
作成
素直にdm-crypt使うかな。
キーファイルをFDに保存してパスワード入れなくても自動ログインできる形に持ってく、つもり。
バックアップ。
mtdataは俺の自分用スクリプトだけど、ま、わかるっしょ。
mtdata mkdir /mnt/data/backup`date '+%Y%m%d'` mkdir /mnt/data/backup20080614/home cd /home sudo tar cvf - . | sudo tar xvpf - -C /mnt/data/backup20080614/home/
カーネル再構築
暗号化FS構築
LUKSを使うかどうかだけど…
LUKSの利点
- ディストリによらない
- Open何とかを使うとwinからでも読める
- 複数のキーを使える
なんだけど、今回は既存のデータを保持したまま移行したいのでLUKSを使わない。
HDDが壊れて大規模な移動が必要になったらその時一緒に対応しよう
リカバリーでrootで入って
umount /home fsck /dev/sda4 cryptsetup -s 256 -d keyfile.txt -c aes-cbc-essiv:sha256 -b `blockdev --getsize /dev/sda4` create cryptvol1 /dev/sda4 dd if=/dev/sda4 of=/dev/mapper/cryptvol1 bs=4k #データの移行
起動時の自動マウント設定
$ sudo gedit /etc/default/cryptdisks CRYPTDISKS_MOUNT="/boot"
暗号化ディスクをマウントする前にマウントする必要のある所。この場合はキーファイルのある/bootを指定した。そのうちUSBメモリに変更しよう。
$ sudo getit /etc/crypttab cryptvol1 /dev/sda4 /boot/keyfile.txt cipher=aes-cbc-essiv:sha256 $ sudo getit /etc/fstab /dev/mapper/cryptvol1 /home jfs defaults 0 2
今回はせっかくカーネル再構築してaesをカーネルに組み込んだんだけど裏目にでた。aesはi586に最適化したものとしてないものの二つあるのだけど、どうも選択してるようなのだ。
今回はカーネルに組み込んだので/lib/cryptsetup/cryptdisks.functionsの
load_optimized_aes_module ()の処理をコメントアウト
あとは普通に再起動
メモ
cat /boot/config-2.6.24.3my02 | grep SHA
CONFIG_CRYPTO_SHA256=m
モジュールになってる。場合によってはmodprobe sha256 がいるかも
仕方ないカーネル再構築からやるか
参考
[ file:///home/j/.mozilla/swiftweasel/1be5qhpq.default/ScrapBook/data/20080404163013/index.html : ITmedia エンタープライズ:ファイルシステムごと暗号化する方法 (1/2)]
[ http://www.clover-leaf.info/cat/2006/09/linuxhome.html : CATch a TAIL!: Linuxで/homeをお手軽暗号化]
[ http://www.shige.idani.jp/tdiary/?date=20080104 : 夜更かし日記 - swap以外の暗号化その後4〜自動起動の設定 その2 , swap以外の暗号化その後5〜キーファイルを使用する , swap以外の暗号化そ..]
[ http://memo.blogdns.net/cryptfs.html : 暗号化ファイルシステム]
[ http://omake.accense.com/wiki/LinuxDiskVolumeCrypto : LinuxDiskVolumeCrypto - アクセンスのおまけ - Trac]
>|LUKSっていうのは...「パーティションヘッダ」の部分に鍵管理の情報を格納します。...このせいでパーティション先頭の32ブロックほどが使われてしまいます。
luksFormatの場合には考慮がいる、と
[ http://markopee.blogspot.com/2008/01/linux.html : Markopee::Notebook: Linux で暗号化ファイルシステムを使う]