ディスク暗号化
26.10 アップグレード制限 (2026 年 10 月 18 日に確認): TPM でサポートされる FDE システムは、リリース時に 26.04 からインプレース アップグレードできません。汎用 LUKS と Ubuntu TPM/FDE は異なる管理パスを使用します。汎用キーのローテーションや GRUB の編集を TPM/FDE に適用しないでください。 26.10 既知の問題 を参照してください。
ディスク暗号化は、データのセキュリティを保護するための重要な手段です。デバイスが紛失または盗難された場合でも、暗号化されたデータは権限のない者に読み取られることはありません。この記事では、Ubuntu 26.04 のさまざまなディスク暗号化オプションについて説明します。
暗号化パスワードは、データにアクセスするための唯一の認証情報です。パスワードを忘れ、バックアップ キー ファイルまたは LUKS ヘッダーのバックアップがない場合、暗号化されたデータは永久に回復できなくなります。必ずパスワード マネージャーにパスワードを保存し、LUKS ヘッダーのバックアップを安全な外部の場所に保存してください。
LUKS フルディスク暗号化
LUKS (Linux Unified Key Setup) は、Linux の標準ディスク暗号化ソリューションです。
インストール中にフルディスク暗号化を有効にする
Ubuntu 26.04 のインストール中にフルディスク暗号化を有効にするのが最も簡単な方法です。
- インストーラーを起動する
- 「インストールの種類」のステップで、「高度な機能」を選択します。
- 「LVMを使用する」と「セキュリティのためにインストールを暗号化する」にチェックを入れます。
- 暗号化パスワードを設定します(必ず覚えておいてください)
- インストールを完了する
インストール後、ディスクのロックを解除するには、起動するたびに暗号化パスワードを入力する必要があります。
TPM をサポートするフルディスク暗号化 (TPM をサポートする FDE)
Ubuntu 26.04 デスクトップ インストーラーは、TPM によるフルディスク暗号化をサポートします。暗号化キーはマザーボードの TPM 2.0 チップに封入され、セキュア ブート測定にバインドされます。起動時に、システムの整合性が損なわれていない場合、TPM はキーを解放して、毎回パスワードを要求することなく、自動的にディスクのロックを解除します。
インストール中に有効にする
- インストーラーの「インストールの種類」ステップで、フルディスク暗号化を有効にします。
- 使用可能な TPM 2.0 が検出され、セキュア ブートが有効になっている場合、インストーラーは「このコンピューターの TPM でロックを解除する」オプションを提供します。
- インストーラーは 回復キー を生成し、オフラインで保存します。 TPM がディスクのロックを解除できない場合の唯一のフォールバックです。
TPM で封印されたキーはブート測定にバインドされています。マザーボードの交換、TPM のクリア、セキュア ブートの無効化、またはメジャー ファームウェアのアップデートにより、TPM のロック解除が拒否される可能性があります。その場合は、回復キーを使用する必要があります。手動でロックを解除しないと、データにアクセスできなくなります。回復キーはデバイスとは別の安全な場所に保管してください。
26.04.1 以降、ファームウェアが自動的に検証できないハードウェアでは、必須の TPM/FDE PIN を無効にできます。公式ドキュメントでは、これによりファームウェアの改ざんに対する保護が低下すると警告されているため、脅威モデルに基づいて決定してください。
Ubuntu TPM/FDE の管理
Security Center を通じて PIN、パスフレーズ、回復キーを管理します。一般的な systemd-cryptenroll 再登録コマンドは、Ubuntu インストーラー管理の TPM/FDE を保守するための指示ではありません。固定の /dev/sda3 例を使用してキー スロットを削除しないでください。
この読み取り専用コマンドを使用してストレージ レイアウトを検査します。 TPM/FDE が有効であるかどうかは確立されません。
lsblk -fキーの管理については、ハードウェアによる暗号化の公式ドキュメント に従ってください。以下の LUKS チェックは、独立して管理されている通常の LUKS ボリュームにのみ適用されます。デバイス名を検証済みの実際のデバイスに置き換えます。
暗号化ステータスの確認
# View LUKS devices
sudo dmsetup status
# View LUKS details
sudo cryptsetup luksDump /dev/sda3
# View encrypted volume status
sudo cryptsetup status luks-volume-name
# View block devices and encryption relationships
lsblk -f外部ストレージデバイスの暗号化
LUKS を使用した USB ドライブの暗号化
# Confirm the device name (very important -- avoid encrypting the wrong device)
lsblk
# Encrypt the partition (this will erase all data!)
sudo cryptsetup luksFormat /dev/sdb1
# Confirm by typing YES (uppercase), then set a password
# Open the encrypted partition
sudo cryptsetup luksOpen /dev/sdb1 encrypted_usb
# Format
sudo mkfs.ext4 /dev/mapper/encrypted_usb
# Mount
sudo mkdir -p /mnt/encrypted
sudo mount /dev/mapper/encrypted_usb /mnt/encrypted
# Unmount when done
sudo umount /mnt/encrypted
sudo cryptsetup luksClose encrypted_usb暗号化された USB デバイスの日常的な使用
GNOME デスクトップ環境では、暗号化された USB デバイスを接続すると、パスワード プロンプトが自動的に表示されます。コマンドライン操作:
# Open the encrypted device
sudo cryptsetup luksOpen /dev/sdb1 encrypted_usb
# Mount
sudo mount /dev/mapper/encrypted_usb /mnt/encrypted
# ... use ...
# Unmount and close
sudo umount /mnt/encrypted
sudo cryptsetup luksClose encrypted_usbLUKS キー管理
キーの追加
Ubuntu 26.04 はデフォルトで LUKS2 を使用し、最大 32 個のキー スロットをサポートします (LUKS1 は 8、0 ~ 7 のみをサポートしました)。
# Add a new password
sudo cryptsetup luksAddKey /dev/sda3
# You must first enter an existing password, then enter the new one
# Add a key file
sudo dd if=/dev/urandom of=/root/luks-keyfile bs=4096 count=1
sudo chmod 600 /root/luks-keyfile
sudo cryptsetup luksAddKey /dev/sda3 /root/luks-keyfileキーの削除
# Remove a specific key slot
sudo cryptsetup luksKillSlot /dev/sda3 1
# Remove a specific password (enter the password to remove)
sudo cryptsetup luksRemoveKey /dev/sda3キースロットのステータスの表示
sudo cryptsetup luksDump /dev/sda3 | grep "Key Slot"
# Example output:
# Key Slot 0: ENABLED
# Key Slot 1: ENABLED
# Key Slot 2: DISABLED
# ...パスワードの変更
# Change an existing password
sudo cryptsetup luksChangeKey /dev/sda3
# Enter the old password first, then enter the new oneキーファイルによる自動ロック解除
データパーティションの自動ロック解除の構成
システム ディスクがすでに暗号化されている場合は、システム ディスクのロックが解除された後、キー ファイルを使用してデータ パーティションのロックを自動的に解除できます。
# Generate a key file
sudo dd if=/dev/urandom of=/root/.luks-data-key bs=4096 count=1
sudo chmod 400 /root/.luks-data-key
# Add the key file to the LUKS device
sudo cryptsetup luksAddKey /dev/sdb1 /root/.luks-data-key
# Get the UUID
sudo blkid /dev/sdb1
# Configure /etc/crypttab
sudo nano /etc/crypttab/etc/crypttab に追加:
# <name> <device> <key file> <options>
data_encrypted UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /root/.luks-data-key luksマウント構成を /etc/fstab に追加します。
/dev/mapper/data_encrypted /mnt/data ext4 defaults 0 2# Test the configuration
sudo cryptdisks_start data_encrypted
sudo mount /mnt/dataホームディレクトリの暗号化
ホーム ディレクトリの暗号化に fscrypt を使用する
Ubuntu 26.04 は、ディレクトリ レベルの暗号化に fscrypt を推奨します。
# Install fscrypt
sudo apt install fscrypt libpam-fscrypt
# Initialize fscrypt (on the filesystem)
sudo fscrypt setup
sudo fscrypt setup /home
# Encrypt a new user's home directory
sudo fscrypt encrypt /home/newuser --user=newuser既存のディレクトリの暗号化を有効にする
# Create an encrypted directory
mkdir ~/Private
fscrypt encrypt ~/Private
# Choose a protection method (password, PAM login, etc.)
# PAM login protection is recommended -- auto-unlocks on login
# Lock the directory
fscrypt lock ~/Private
# Unlock the directory
fscrypt unlock ~/Private
# Check encryption status
fscrypt status ~/Privateスワップの暗号化
ランダムキーによるスワップの暗号化
# Edit /etc/crypttab
sudo nano /etc/crypttab追加:
cryptswap /dev/sdXN /dev/urandom swap,cipher=aes-xts-plain64,size=256/etc/fstab を更新します。
/dev/mapper/cryptswap none swap sw 0 0スワップ ファイルの使用 (LUKS 暗号化ディスク上)
システムがすでに LUKS フルディスク暗号化を使用している場合、スワップ ファイルはすでに暗号化によって保護されています。
# Create a swap file
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Persist
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabLUKS パフォーマンスの最適化
暗号化パフォーマンスの確認
# View current encryption algorithm
sudo cryptsetup luksDump /dev/sda3 | grep "Cipher"
# Benchmark encryption performance
sudo cryptsetup benchmark
# Example output:
# PBKDF2-sha1 1200000 iterations per second
# PBKDF2-sha256 800000 iterations per second
# Algorithm | Key | Encryption | Decryption
# aes-cbc 128b 1200.0 MiB/s 3500.0 MiB/s
# aes-cbc 256b 900.0 MiB/s 2800.0 MiB/s
# aes-xts 256b 2500.0 MiB/s 2600.0 MiB/s
# aes-xts 512b 2100.0 MiB/s 2200.0 MiB/s最適化オプション
# Use AES-NI hardware acceleration (most modern CPUs support it)
grep aes /proc/cpuinfo
# Specify high-performance parameters when creating an encrypted partition
sudo cryptsetup luksFormat --type luks2 --cipher aes-xts-plain64 --key-size 512 --hash sha256 /dev/sdb1暗号化ヘッダーのバックアップ
LUKS ヘッダーが破損すると、データが完全に失われる可能性があります。常にバックアップしてください:
# Back up the LUKS header
sudo cryptsetup luksHeaderBackup /dev/sda3 --header-backup-file /safe/location/luks-header-backup
# Restore the LUKS header (for data recovery)
sudo cryptsetup luksHeaderRestore /dev/sda3 --header-backup-file /safe/location/luks-header-backupLUKS ヘッダーのバックアップを安全な外部の場所 (金庫内の USB デバイスなど) に保存します。
緊急データ消去
暗号化されたデータを緊急に破棄する必要がある場合:
# Wipe the LUKS header (data will be permanently unrecoverable!)
sudo cryptsetup luksErase /dev/sda3
# Or overwrite the LUKS header area
sudo dd if=/dev/urandom of=/dev/sda3 bs=1M count=2すべてのデータを消去するのではなく、暗号化キーを破棄するだけなので、これには数秒しかかかりません。
トラブルシューティング
パスワードを忘れた場合
LUKS パスワードを忘れ、バックアップ キー ファイルがない場合、データを回復することはできません。予防策:
- 暗号化パスワードをパスワード マネージャーに保存する
- 複数のキースロットをバックアップとして設定する
- LUKS ヘッダーをバックアップする
起動時にロックを解除できない
# Boot from a Live USB
# Open the encrypted partition
sudo cryptsetup luksOpen /dev/sda3 recovery
# Mount
sudo mount /dev/mapper/recovery /mnt
# Check and repair
sudo fsck /dev/mapper/recovery
# When done
sudo umount /mnt
sudo cryptsetup luksClose recovery