SJ blog
Qubes OS
Z

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

Qubes OS のディスク暗号化とパスフレーズ管理

Qubes OSが使うLUKS2フルディスク暗号化の仕組み、安全なパスフレーズの選び方、LUKS鍵スロットの管理、ヘッダーバックアップまで解説します。

一言結論

Qubes OSのLUKS2フルディスク暗号化は/bootを除く全データを保護するが、パスフレーズが弱ければ意味がないためDiceware方式の20文字以上を使い、LUKSヘッダーを別メディアにバックアップしておくことが不可欠だ。

Qubes OS のフルディスク暗号化

Qubes OS はインストール時に LUKS2(Linux Unified Key Setup) によるフルディスク暗号化を提供します。

暗号化されるのは:

  • すべての AppVM のデータ
  • テンプレートVM のファイルシステム
  • dom0 のデータ

暗号化されないのは:

  • /boot パーティション(カーネルやブートローダー)

起動時の暗号化解除

PC 起動

BIOS/UEFI

Grub(/boot から読み込む)

パスフレーズ入力プロンプト

LUKS ヘッダーを使って復号

LVM
  ├── dom0 ルートパーティション
  └── qubes プール(全VMのデータ)

強力なパスフレーズの選び方

推奨:

  • 長さ: 20文字以上
  • 方式: パスフレーズ(ランダムな単語の組み合わせ)またはランダムな文字列
# 良い例(Diceware方式: 6単語以上)
correct-horse-battery-staple-coffee-moon

# より強力(ランダム文字列)
K7#mP2nR@qX9vL4

# 悪い例
password123
myname2026

覚え方:

  • パスワードマネージャー(KeePassXC など)の vault VM に保存
  • または紙に書いて物理的に安全な場所に保管

LUKS の確認コマンド

dom0 ターミナルで実行:

# LUKS デバイスの情報確認
sudo cryptsetup luksDump /dev/sda2
# または
sudo cryptsetup luksDump /dev/nvme0n1p2

# アクティブなDMデバイスの確認
ls /dev/mapper/
# qubes_dom0-root などが表示される

鍵スロットの管理

LUKS は最大32個(LUKS2)の鍵スロットを持ちます。それぞれに異なるパスフレーズを設定できます。

# 現在の鍵スロット確認
sudo cryptsetup luksDump /dev/sda2 | grep -A 5 "Keyslots"

# 新しいパスフレーズを追加(スロット1)
# ※バックアップ用や緊急用のパスフレーズ
sudo cryptsetup luksAddKey /dev/sda2
# 既存のパスフレーズを入力後、新しいパスフレーズを設定

# パスフレーズを変更(スロット0)
sudo cryptsetup luksChangeKey /dev/sda2

# スロットを削除
sudo cryptsetup luksKillSlot /dev/sda2 1  # スロット1を削除

LUKS ヘッダーのバックアップ

LUKS ヘッダーが壊れると、暗号化されたデータは完全に失われます。 ヘッダーのバックアップは必須です。

# ヘッダーのバックアップ
sudo cryptsetup luksHeaderBackup /dev/sda2 \
    --header-backup-file /tmp/luks-header.bin

# バックアップを別の安全なメディアにコピー
qvm-copy /tmp/luks-header.bin
# → vault VM などオフラインのVMに保管

# ヘッダーの復元(破損した場合)
sudo cryptsetup luksHeaderRestore /dev/sda2 \
    --header-backup-file /path/to/luks-header.bin

Intel Boot Guard / Secure Boot との関係

Qubes OS はデフォルトでは Secure Boot をサポートしていません(対応作業中)。

Secure Boot なしでも:

  • フルディスク暗号化はブート後のデータ保護
  • ブートローダーの改ざん検知は別の仕組みが必要(Anti Evil Maid)

Anti Evil Maid(AEM)

物理的なアクセスを持つ攻撃者が Grub やカーネルを改ざんするEvil Maid攻撃を検知する仕組みです。

# dom0 で Anti-Evil-Maid をインストール
sudo qubes-dom0-update anti-evil-maid
sudo anti-evil-maid-install /dev/sdb  # USBデバイス

AEM は TPM チップが必要です。

パスフレーズを忘れた場合

残念ながら、LUKS のパスフレーズを忘れてすべての鍵スロットにアクセスできなくなった場合、データの復号は実質不可能です。

これが「強力な暗号化」の意味です。

予防策:

  • パスフレーズを複数の鍵スロットに登録しておく
  • ヘッダーバックアップを取る
  • パスフレーズを安全な場所に記録しておく

暗号化の強度

LUKS2 のデフォルト設定:

  • アルゴリズム: AES-256-XTS
  • 鍵導出関数: Argon2id(強力なKDF)

Argon2id はブルートフォース攻撃に非常に強く、GPU でも高速に攻撃できません。

まとめ

作業タイミング
LUKS ヘッダーのバックアップインストール直後
バックアップパスフレーズの設定インストール後
パスフレーズの定期変更セキュリティポリシーに応じて
ヘッダーバックアップの更新パスフレーズ変更後

ディスク暗号化はQubes OSのセキュリティの根幹です。デバイスを紛失した場合でもデータを守ります。