320.3 暗号化ファイルシステム

2021-06-21

320.3 暗号化ファイルシステム

重要度 3
説明 暗号化ファイルシステムのセットアップと設定ができること。

主要な知識範囲

  • LUKSの知識
  • dm-cryptコマンドおよびCBC、ESSIV、LRW、XTSの各モードを知っている

重要なファイル、用語、ユーティリティ

  • dm-crypt
  • cryptmount
  • cryptsetup

cryptsetup

cryptsetupでは、ファイルシステムの暗号化できるコマンドです

書式

create [名前] [暗号化対象デバイス] 対象デバイスを暗号化。
暗号化したデバイスにアクセスをするには、/dev/mapper/[名前]を指定。
他のオプション利用時は、ここで指定した名前を指定
reload [名前] 指定した名前の暗号化マッピングを再読み込み
remove [名前] 指定した名前の暗号化マッピングを解除
resize [名前] 指定した名前の暗号化マッピングのりサイズ
status [名前] 暗号化した暗号化マッピングの状態を表示

# secretfilesと名前を付けた、/dev/sda2のデバイスを暗号化
$ sudo cryptsetup -y create secretfiles /dev/sda2

# secretfilesと名前が付けられたdm-cryptの暗号化を解除
$ sudo cryptsetup remove secretfiles

# lukstestの暗号化パーティッションのマッピング状態を確認
$ sudo cryptsetup status lukstest
/dev/mapper/lukstest is active.
type: LUKS1
cipher: aes-cbc-essiv:sha256
keysize: 256 bits
device: /dev/sdb1
offset: 4096 sectors
size: 2084291 sectors
mode: read/write

LUKS

LUKS(Linux Unified Key Setup. ラックス)とは、Linuxの暗号化ファイルシステムの標準規格。
LUKS暗号化デバイスを管理するには、cryptsetupコマンドのあとにLUKSのサブコマンドを指定します

LUKSの主なサブコマンド

luksAddkey [デバイスファイル名] [キーファイル名] 指定したデバイスファイルシステムにキーを追加
luksClose [名前] 暗号化パーティッションを閉じる
luksDelKey [デバイスファイル名] [キーファイル名] 作成したキーを削除。
キースロット番号は0〜7(登録した順番に0から採番)から指定
luksKillSlot [デバイスファイル名] [キーファイル名] 作成したキーを削除。
キースロット番号は0〜7(登録した順番に0から採番)から指定
luksFormat [デバイスファイル名] 指定したデバイスファイルシステムに暗号化パーティッションを作成
luksOpen [デバイスファイル名] [名前] 作成済みの暗号化パーティッションを開く。
暗号化パーティッションが開かれると、/dev/mapperフォルダ配下にマッピングされる

# /dev/sda2を暗号化パーティッションとして初期化
$ sudo cryptsetup luksFormat /dev/sdb1
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

# [YES]を入力
Are you sure? (Type uppercase yes): YES

# パスフレーズを入力
Enter LUKS passphrase:
Verify passphrase:

# 暗号化済みのパーティッションを開く
$ sudo cryptsetup luksOpen /dev/sdb1 lukstest
Enter passphrase for /dev/sdb1:(パスワードを入力)
Key slot 0 unlocked.

# luksOpenが正常に実行できているか確認
$ sudo ls /dev/mapper/
VolGroup-lv_root VolGroup-lv_swap control lukstest

# 暗号化パーティッションを閉じる
$ sudo cryptsetup luksClose lukstest

# luksCloseが正常に実行できているか確認、lukstestが表示されていないかを確認
$ sudo ls /dev/mapper/
VolGroup-lv_root VolGroup-lv_swap control

# キーを追加
$ sudo cryptsetup luksAddKey /dev/sdb1
# 既存のパスワードがある場合は、既存のパスワードを入力
Enter any passphrase:
# 新しいパスワードを入力
Enter new passphrase for key slot: Verify passphrase:

# キーを追加されているか確認
$ sudo cryptsetup luksDump /dev/sdb1 | grep "Key Slot"
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

# 3番めに作成したキーを削除
$ sudo cryptsetup luksDelKey /dev/sdb1 2
# ※ 黒本の参考書のコマンドだとエラーになるが、luksRemoveKey だと3番目のキーを削除できる

$ sudo cryptsetup luksRemoveKey -S 2 /dev/sdb1
Enter LUKS passphrase to be deleted:

$ sudo cryptsetup luksDump /dev/sdb1 | grep "Key Slot"
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

cryptmount

cryptmountシステム上で暗号されたファイルシステムのマウント、アンマウント、設定をおこなうコマンド

書式
cryptmount [オプション]
[]は省略可能

オプション

-c [ターゲット …] または
–change-password [ターゲット …]
複合キーの解除パスワードを変更
-l [ターゲット …] または
–list [ターゲット …]
このコマンドで指定できる全てのターゲットの基本情報を表示
-m [ターゲット …] または
–mount [ターゲット …]
指定されたターゲットのマウントする
-s [ターゲット …] または
–swapon [ターゲット …]
指定されたターゲットのスワップを有効に設定
-u [ターゲット …] または
–umount [ターゲット …]
指定されたターゲットのアンマウントする
-x [ターゲット …] または
–swapoff [ターゲット …]
指定されたターゲットのスワップを無効に設定

/etc/crypttab
暗号化ボリュームを自動でマウントする場合は、/etc/crypttab に設定を書きます。
OS起動時にOS起動時にLUKSへの接続ができます

$ cat /etc/crypttab
luks /dev/vda1 /boot/luks_key luks,timeout=5

cryptmount-setup
cryptmount-setupは、Cryptmountを試す一番対話式スクリプトです。暗号化されたファイルシステムを1つのファイルとして簡単に手早く作成できる。

dm-crypt

dm-cryptは、Linuxカーネルに組み込まれているDevice-mapper を利用してファイルシステムを暗号化する仕組みです。
頭についているdmは「Device Mapper」の略です。ブロックデバイスを暗号化する仕組みですので、ディスクの暗号化を行う場合、対象となるディスクにパーティションを作成し、そのパーティションを丸ごと暗号化します。ですから、その上位にあるファイルシステムはどのような種類のファイルシステムでも使用可能です。

dm-crypt 暗号化モード

CBC ブロック暗号の利用モードの1種。Cipher Block Chainingの略。
ESSIV Encrypted Salt-Sector Initialization Vectorの略
LRW Liskov、Rivest、Wagnerの頭文字を取った暗号化方式
XTS XEX(Xor Encrypt Xor)-TCB(Tweaked CodeBook)-CTS(Cipher Text Stealing)の略。LRWよりも高速で安全な暗号化方式。

 

LPIC 30xLPIC303

Posted by admin