2010/08/31

ecryptfs をマウントする

僕は外づけHDDにもubuntuをインストールしていて、そのHDDのhomeはecryptfsで暗号化してあります。
ところが内臓HDDから起動すると、外付けHDDのhomeの中身が暗号化されていて見れません。
これは困った。

ということで、復号化してマウントしてみました。これはそのまとめです。

概要


  • ecryptfsを使うときは、ログインパスフレーズとmountパスフレーズをメモっておくように言われるが、それだけでは復旧に充分ではない。ログインパスフレーズとmountパスフレーズに加え、暗号化形式(例えばAES)とビット数(例えば16bit)とFNEKシグネチャもメモしておくこと。メモしたら、物理的に安全な場所(金庫や貯金箱の中)にしまっておくこと。
  • ファイル名の暗号化を使う場合は、ファイル名の復号化にFNEKシグネチャが必要。これは上記の通り本来メモしてあるべきだと思うが、生成する方法がある。

まずはecryptfsマウントパスワードをカーネルキーリングに登録する



kztjn@wakaba:~$ sudo ecryptfs-add-passphrase --fnek
Passphrase: (メモってあるマウントパスフレーズを入力)
Inserted auth tok with sig [8XXXXXXXXXXXXXX1] into the user session keyring
Inserted auth tok with sig [2YYYYYYYYYYYYYY2] into the user session keyring


方法2。FNEKシグネチャが保存してあるかもしれないので掘り出す(僕の環境では保存されていた)。嘘を書いていましたごめんなさい。確認のため比較することは意味があるかもしれません。


kztjn@wakaba:~$ sudo mount /dev/sdb5 /mnt/bg_raw
kztjn@wakaba:~$ cat /mnt/bg_raw/.ecryptfs/kztjn/.ecryptfs/Private.sig
8XXXXXXXXXXXXXX1
2YYYYYYYYYYYYYY2


いよいよマウント

/mnt/bg_raw に暗号化された状態のファイルシステムをマウントし、/mnt/bg に復号化された状態のファイルシステムをマウントします。


kztjn@wakaba:~$ sudo mount /dev/sdb5 /mnt/bg_raw
kztjn@wakaba:~$ sudo mount -t ecryptfs /mnt/bg_raw/.ecryptfs/kztjn/.Private /mnt/bg
Passphrase: (メモってあるマウントパスフレーズを入力)
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
Selection [aes]:
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]:
Enable filename encryption (y/n) [n]: y (FNEKを使っているのでyと答える)
Filename Encryption Key (FNEK) Signature [8XXXXXXXXXXXXXX1]: 2YYYYYYYYYYYYYY2 (調べたFNEKシグネチャを入力)
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=2YYYYYYYYYYYYYY2
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=8XXXXXXXXXXXXXX1
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key
before. This could mean that you have typed your
passphrase wrong.

Would you like to proceed with the mount (yes/no)? : yes
Would you like to append sig [8XXXXXXXXXXXXXX1] to
[/root/.ecryptfs/sig-cache.txt]
in order to avoid this warning in the future (yes/no)? : yes
Successfully appended new sig to user sig cache file
Mounted eCryptfs
kztjn@wakaba:~$


参考資料

1 件のコメント:

kz さんのコメント...

嘘があったので、訂正しました。