| | 1 | [[PageOutline]] |
| | 2 | |
| | 3 | = cryptsetup と dm-crypt でパーティションの暗号化 = |
| | 4 | == 概要 == |
| | 5 | 詳しい話は http://opentechpress.jp/kernel/04/06/09/1353250.shtml など |
| | 6 | |
| | 7 | * device-mapper を使ってパーティションを暗号化するので,マッパーデバイスを作成する際にパスワードを求められる |
| | 8 | {{{ |
| | 9 | # cryptsetup -y create <NAME> <DEVICE> |
| | 10 | Enter passphrase: |
| | 11 | Verify passphrase: |
| | 12 | # mount -t <TYPE> <DEVICE> <MOUNTPOINT> |
| | 13 | }}} |
| | 14 | * ブートプロセス中,localmount が動く前にパスワードが求められるという,Apache の mod_ssl のようなことが起こる |
| | 15 | |
| | 16 | * swap や tmp なら /dev/urandom を鍵にしてしまえば良い (-d オプションで可能) |
| | 17 | |
| | 18 | * 暗号化アルゴリズム |
| | 19 | * カーネルがサポートしていればどれでもいけるのかも |
| | 20 | * AES や Blowfish (CBC Mode も可) を使うのが一般的 |
| | 21 | |
| | 22 | * パスワードハッシュ関数 |
| | 23 | * カーネルがサポートしていればどれでもいけるのかも |
| | 24 | * MD5,SHA-1,SHA-256,SHA-512 あたりが一般的 |
| | 25 | |
| | 26 | == 構築 == |
| | 27 | * ほぼ http://gentoo-wiki.com/SECURITY_dmcrypt と同一内容 |
| | 28 | |
| | 29 | 1. カーネル構築 |
| | 30 | {{{ |
| | 31 | Device Drivers --> RAID and LVM Support --> |
| | 32 | [*] Multiple devices driver support (RAID and LVM) |
| | 33 | <*> Device mapper support |
| | 34 | <*> Crypt target support |
| | 35 | |
| | 36 | Cryptographic Options --> |
| | 37 | <*> AES cipher algorithims |
| | 38 | }}} |
| | 39 | 1. cryptsetup インストール |
| | 40 | {{{ |
| | 41 | # emerge sys-fs/cryptsetup |
| | 42 | }}} |
| | 43 | 1. 暗号化して利用するパーティションにマッパーデバイスをマッピング.パスワードを求められるが,初回は好きなパスワードを設定する |
| | 44 | {{{ |
| | 45 | # cryptsetup -y create <好きなデバイス名> /dev/hda4 |
| | 46 | }}} |
| | 47 | 1. マッパーデバイスを通してファイルシステムを作る.これを見て分かる通り,既存ファイルシステムは破壊される |
| | 48 | {{{ |
| | 49 | # mkreiserfs /dev/mapper/<さっきcreateしたデバイス名> |
| | 50 | }}} |
| | 51 | 1. マウントする.マウント時にはパスワードは求められない.あくまでマッパーデバイスを作るときにだけパスワードを求められることに注意 |
| | 52 | {{{ |
| | 53 | # mount /dev/mapper/<さっきcreateしたデバイス名> /mnt/point |
| | 54 | }}} |
| | 55 | |
| | 56 | == 起動時のマウント == |
| | 57 | Gentoo Linux の場合. |
| | 58 | |
| | 59 | 1. {{{/etc/conf.d/cryptfs}}} を編集 |
| | 60 | {{{ |
| | 61 | mount=<createしたデバイス名> |
| | 62 | source='デバイスの実態 (例えば /dev/hda4)' |
| | 63 | options='-y' |
| | 64 | }}} |
| | 65 | |
| | 66 | あとは localmount あたりが何とかしてくれる. |
| | 67 | ただし起動時にパスワード入力必須. |