Upload
kenichiro-matohara
View
1.469
Download
0
Embed Size (px)
Citation preview
偏執的な人の為の?偏執的な人の為の?NotePCセキュリティ HDD編NotePCセキュリティ HDD編
-小江戸らぐ1月のオフな集まり(第102回)--小江戸らぐ1月のオフな集まり(第102回)-
[email protected]@gmail.comhttp://hpv.cc/~maty/http://hpv.cc/~maty/
資料 → http://goo.gl/2w2y9
● 据え置きのサーバ● 設置場所に行かないと触れない.
● NotePC● 置き忘れや,席をたった時などに触れる.● 本体を盗まれたりデータを盗まれる可能性.
PC 本体が盗まれると
● ハードディスクの内容が盗まれる● パーミッションは役に立たない.● /etc/passwd, /etc/shadow, ssh key, pgp key...● 作成したデータ,メール等…
● メモリ内の情報が盗まれる● ログオン情報,TrueCrypt 情報,暗号化ディスク情報,勿
論?Windows/Mac も.● 気づかないことも.
ハードディスクの内容が盗まれるのを防ぐ
● パーミッションは役に立たない.
↓● 暗号化ファイルシステムを利用.
● ディスク全体を暗号化する
– dm-crypt● ホームディレクトリや,指定ディレクトリだけを暗号化する.
– eCryptfs● USB メモリや,特定の部分を暗号化する
– TrueCrypt
dm-crypt?
● kernel 2.6.4 から● cryptoloop から置き換えられた● Device-mapper を利用したmount
● /dev/mapper/crypt0 の様な感じ.crypt0 は任意● 最近のディストリビューションであればインストーラで対
応していることが多い
DebianSqueeze d-i RC1 での例
Dm-crypt 手動設定例
● 暗号化ファイルの作成例 1GB のimageを作成
dd if=/dev/zero of=./crypt bs=1M count=1024● /crypt を/dev/loop0 に関連付け。
sudo losetup /dev/loop0 ./crypt● Device mapper(crypt0)に関連づけ
● cryptsetup luksFormat /dev/mapper/crypt0● 暗号化
● cryptsetup luksFormat /dev/mapper/crypt0
※このときの確認メッセージは大文字でYES と入力すること ※求められたパスフレーズを忘れないこと/後で変更可能
Dm-crypt 手動設定例● オープン
● cryptsetup luksOpen /dev/mapper/crypt0 myencryptedstuff● ファイルシステムを作成
● mkfs.ext3 /dev/mapper/myencryptedstuff● mount
● mount /dev/mapper/myencryptedstuff ~mk/cryptarea● umount
● umount /dev/mapper/myencryptedstuff● unlock
● cryptsetup luksClose myencryptedstuff● mount
● mount.crypt -o cipher=aes /dev/mapper/loop0 ~mk/cryptarea● Password: key slot 0 unlocked.● Command successful.
● パスフレーズの追加cryptsetup luksAddKey /dev/mapper/mk_cryptarea
Enter any LUKS passphrase:key slot 0 unlocked.
Enter new passphrase for key slot:
Verify passphrase:Command successful.
※key slot 0~6 迄7つまで設定できる.● パスフレーズの削除/1 のKey Slot 削除.
cryptsetup luksDelKey /dev/hoge 1
Dm-crypt 手動設定例
Dm-crypt 手動設定例● 暗号化fs の確認/Key Slot0-1 に設定があることが解る
● cryptsetup luksDump /dev/mapper/mk_cryptarea--snip--
Key Slot 0: ENABLED
Iterations: 18870
Salt: 22 1b 6e 8b 2b 64 90 2f e9 25 84 48 6e 2f 48 b4
0e c2 1c 93 fa f3 a7 53 d9 12 05 96 80 d7 9c 13
Key material offset: 8
AF stripes: 4000
Key Slot 1: ENABLED
Iterations: 19078
Salt: 62 df c8 cb 91 29 89 85 46 48 fe 85 3f 3b db 04
1d b7 6b d1 80 5a 4b f9 0e 0c 39 9f ba 1d 48 ca
Key material offset: 136
AF stripes: 4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED普段使いのKeyslot と忘れたとき用のKeyslot を用意すると良いかもしれません.
linuxmania.jp のオリジナルUSB メモリにも導入済み
eCryptFS
● Kernel 2.6.19 から● Ubuntu の~ の暗号化などで使われている.● 通常のファイルシステムの上で,1ファイル,ディレクトリ毎に暗号化し
ている.● そのディレクトリへのアクセス権があれば暗号化されたファイル,ディ
レクトリの存在は分かるしコピー削除等も出来る.● ファイル自体にメタ情報を持つため細かいファイルが大量にある場合
などには実容量よりずっと大量の領域が必要になったりする.● ファイルシステムごと暗号化をしないので,容量を気にせず手軽に利
用できる. > dm-crypt は固定
暗号化されたファイルの例
● ファイル名も内容も暗号化されている.$ fileECRYPTFS_FNEK_ENCRYPTED.FWa6W.xHPLxHakQo3z4g5939yJq9YxAs0JapxHd.IOEqoeu4jBjYY2TV1U--
ECRYPTFS_FNEK_ENCRYPTED.FWa6W.xHPLxHakQo3z4g5939yJq9YxAs0JapxHd.IOEqoeu4jBjYY2TV1U--:data
$ catECRYPTFS_FNEK_ENCRYPTED.FWa6W.xHPLxHakQo3z4g5939yJq9YxAs0JapxHd.IOEqoeu4jBjYY2TV1U-- |od -xc | head0000000 0000 0000 0000 3300 81db c0fc 00e7 354b \0 \0 \0 \0 \0 \0 \0 3 333 201 374 300 347 \0 K 50000020 0003 0a00 0000 0010 0200 1d8c 0704 0103 003 \0 \0 \n \0 \0 020 \0 \0 002 214 035 004 \a 003 0010000040 1100 3322 5544 7766 7e60 945a 3cd4 4d7f \0 021 " 3 D U f w ` ~ Z 224 324 < 177 M0000060 213a 45cd eef7 592d edb2 6216 5f08 4f43 : ! 315 E 367 356 - Y 262 355 026 b \b _ C O0000100 534e 4c4f 0045 0000 2d00 06ed f27e 0309 N S O L E \0 \0 \0 \0 - 355 006 ~ 362 \t 003
Ubuntu10.10 インストール時の設定画面
Ubuntu10.10 アカウント作成時の設定画面
EcryptFS のファイル名長制限
● ファイル名も以下の様に暗号化される.
ECRYPTFS_FNEK_ENCRYPTED.FWa6W.xHPLxHakQo3z4g5939yJq9YxAs0JapzUcbPZWNdvlP1iJonoS2UE--● しかし,そのためにファイルシステムのファイル名長制限を
越えやすくなっている● 255文字制限の環境では144byte 迄になってしまう.● ファイル名を暗号化しないオプションを指定るることで回
避は出来る.
EcryptFS のファイル名長制限● 以下はXFS(ファイル長制限255文字)環境
● ascii
$ touch012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123touch:`012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123'にtouchできませんでした: File name too long
$ touch01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
$ echo'01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012'|wc 1 1 144
EcryptFS のファイル名長制限● 日本語(UTF-8)
$ touch 'あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいう'touch: `あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいう'にtouchできませんでした: File name too long
$ touch 'あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあい'
$ echo 'あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあい' |wc 1 1 142
$ touch あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあい1
$ touch あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあい12
$ touch あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあい123touch: `あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあい123'にtouchできませんでした: File name too long
EcryptFS 手動マウント● マシンが起動しなくなったりした時などに読む方法.
$ sudo mount -t ecryptfs -oecryptfs_sig=xxxxxxxxxxxxxxxx,ecryptfs_fnek_sig=xxxxxxxxxxxxxxxx,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /home/USER/.Private /mntPassphrase:Enable plaintext passthrough (y/n) [n]:Attempting to mount with the following options: ecryptfs_unlink_sigs ecryptfs_fnek_sig=xxxxxxxxxxxxxxxx ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=xxxxxxxxxxxxxxxxMounted eCryptfs
※ecryptfs_sig は(/home/.ecryptfs/$USER/.ecryptfs/Private.sig の1行目ecryptfs_fnek_sig は2行目
TrueCrypt
● マルチプラットホーム(Win/Mac/Linux)● システムを暗号化することは出来ない(Win は出来る)● ボリュームを隠すことが出来る● 移動用にTrueCrypt の最低構成をUSB メモリに保存するモー
ドがある(Windowsのみ)● Mac/Linux でもバイナリをコピーしておくと同じことが出来
る● TrueCrypt の入っていないマシンでも読める
● USB メモリなど持ち運びデバイスの暗号化に向いている
TrueCrypt の使い方
● Slax で暗号化fs を持ち運ぶ 12 月のインストールパーティ in 電大鳩山 (20081220) 1 月のオフな集まり 第78 回
http://www.slideshare.net/matoken/koedo20081220-install-partyhttp://www.slideshare.net/matoken/koedo20081220-install-party
それぞれの使いどころ
● dm-crypt● OS 全ての暗号化向き
● eCryptFS● ホームディレクトリの暗号化
● TrueCrypt● 持ち運びデバイスの暗号化
暗号化fs の注意点● 暗号化を解除した状態だと当たり前ですがPC を操作できる人は誰でも操作できます.
● 目を離すときにはスクリーンロック● スクリーンセーバ解除時にはパスワードを求めるように
– 自宅のネットワークではgnome-screensaver-command でスクリーンセーバを抑制するといったことも可能 >
● システムが遅くなりますorz● 重要なものだけ暗号化する.
● ~/.ssh, ~/.gnupg 等うぃ暗号領域に置くなど
$ ln -s CRYPTDIR/.ssh ~/.ssh
$ ln -s CRYPTDIR/.gnupg ~/.gnupg● CPU によってはaes 支援が付いているのでそういったCPU の場合はおすすめです.
● Core i / 組み込み向けのGeode 等
その他
● TPM とかやってみたい…