cryptsetupでLUKSファイルシステムを使用する

今回はHDDなどの物理媒体を暗号化するのではなく、ファイルを暗号化します。

ddコマンドでテスト用ファイルluks.img(1GB)を作成。

# dd if=/dev/zero of=luks.img bs=1M count=1024

1.LUKSとしてフォーマット

cryptsetup luksFormat イメージファイルorデバイスファイル」でLUKSとしてフォーマットします。A you sure?には大文字でYESと入力。次にパスフレーズを2度聞かれるので入力します。

# cryptsetup luksFormat luks.img
WARNING!
========
This will overwrite data on luks.img irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase for luks.img:
パスフレーズを確認:

fileコマンドで確認してみます。

# file luks.img
luks.img: LUKS encrypted file, ver 1 [aes, xts-plain64, sha256] UUID: 94fd36b1-f397-4f14-8ee6-a39c6c88809b

cryptsetup luksDumpで詳細な情報が得られます。

# cryptsetup luksDump luks.img
LUKS header information for luks.img
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha256
Payload offset: 4096
MK bits: 256
MK digest: f6 53 e6 6a 29 a1 28 9d 42 45 4e 75 63 89 c6 29 fc 96 59 01
MK salt: 9b 37 90 94 1c 97 e9 b6 4e 6b b6 b1 3e 6e 01 ee
ef 3b a9 70 9c e4 b8 03 4e 52 15 ae e0 d1 3c 83
MK iterations: 213472
UUID: 94fd36b1-f397-4f14-8ee6-a39c6c88809b
Key Slot 0: ENABLED
Iterations: 3415556
Salt: a6 aa 14 a3 0a c7 f9 e3 c9 72 9b ab 75 92 de 60
70 44 cc 6e 1f b6 c0 0e 16 76 45 b9 07 f9 76 b7
Key material offset: 8
AF stripes: 4000
Key Slot 1: DISABLED
:

2.LUKSを開く

cryptsetup luksOpen イメージファイルorデバイスファイル 任意の名前」でLUKSを開きます。

# cryptsetup luksOpen luks.img luksfilesystem
Enter passphrase for luks.img:

パスワードが正しい場合「/dev/mapper/任意の名前」にデバイスファイルが出現します。「luksfilesystem」という名前で開いたので「/dev/mapper/luksfilesystem」が対象のファイルです。

# ls /dev/mapper/
control luksfilesystem←これ

3.ファイルシステムを作成

通常のデバイスと同じ要領でmkfsなどでファイルシステムを作成します。

# mkfs -t ext4 /dev/mapper/luksfilesystem

4.マウントする

通常のデバイスと同じ要領でマウントします。

# mount /dev/mapper/luksfilesystem /mnt

通常のディレクトリと同じようにアクセスできます。

# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/luksfilesystem 990M 2.6M 921M 1% /mnt
# ls /mnt
lost+found

5.アンマウントしてLUKSファイルシステムを閉じる

デバイスの取り外しの際にはアンマウントした後にcryptsetup luksCloseを実行してLUKSを閉じます。

# unmount /mnt
# cryptsetup luksClose luksfilesystem

おまけ bruteforce-luks

キーフレーズが設定されたLUKSはbruteforce-luksでブルートフォースや辞書アタックが可能です。ちなみにLUKSファイルの頭10MBあれば攻撃可能です。

# dd if=luks.img of=lukstest.img bs=1M count=10
# bruteforce-luks -f /usr/share/john/password.lst lukstest.img

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA