Skip to Content

ディスク暗号化

Warning

26.10 アップグレード制限 (2026 年 10 月 18 日に確認): TPM でサポートされる FDE システムは、リリース時に 26.04 からインプレース アップグレードできません。汎用 LUKS と Ubuntu TPM/FDE は異なる管理パスを使用します。汎用キーのローテーションや GRUB の編集を TPM/FDE に適用しないでください。 26.10 既知の問題 を参照してください。

ディスク暗号化は、データのセキュリティを保護するための重要な手段です。デバイスが紛失または盗難された場合でも、暗号化されたデータは権限のない者に読み取られることはありません。この記事では、Ubuntu 26.04 のさまざまなディスク暗号化オプションについて説明します。

Caution

暗号化パスワードは、データにアクセスするための唯一の認証情報です。パスワードを忘れ、バックアップ キー ファイルまたは LUKS ヘッダーのバックアップがない場合、暗号化されたデータは永久に回復できなくなります。必ずパスワード マネージャーにパスワードを保存し、LUKS ヘッダーのバックアップを安全な外部の場所に保存してください。

LUKS フルディスク暗号化

LUKS (Linux Unified Key Setup) は、Linux の標準ディスク暗号化ソリューションです。

インストール中にフルディスク暗号化を有効にする

Ubuntu 26.04 のインストール中にフルディスク暗号化を有効にするのが最も簡単な方法です。

  1. インストーラーを起動する
  2. 「インストールの種類」のステップで、「高度な機能」を選択します。
  3. 「LVMを使用する」と「セキュリティのためにインストールを暗号化する」にチェックを入れます。
  4. 暗号化パスワードを設定します(必ず覚えておいてください)
  5. インストールを完了する

インストール後、ディスクのロックを解除するには、起動するたびに暗号化パスワードを入力する必要があります。

TPM をサポートするフルディスク暗号化 (TPM をサポートする FDE)

Ubuntu 26.04 デスクトップ インストーラーは、TPM によるフルディスク暗号化をサポートします。暗号化キーはマザーボードの TPM 2.0 チップに封入され、セキュア ブート測定にバインドされます。起動時に、システムの整合性が損なわれていない場合、TPM はキーを解放して、毎回パスワードを要求することなく、自動的にディスクのロックを解除します。

インストール中に有効にする

  1. インストーラーの「インストールの種類」ステップで、フルディスク暗号化を有効にします。
  2. 使用可能な TPM 2.0 が検出され、セキュア ブートが有効になっている場合、インストーラーは「このコンピューターの TPM でロックを解除する」オプションを提供します。
  3. インストーラーは 回復キー を生成し、オフラインで保存します。 TPM がディスクのロックを解除できない場合の唯一のフォールバックです。
Caution

TPM で封印されたキーはブート測定にバインドされています。マザーボードの交換、TPM のクリア、セキュア ブートの無効化、またはメジャー ファームウェアのアップデートにより、TPM のロック解除が拒否される可能性があります。その場合は、回復キーを使用する必要があります。手動でロックを解除しないと、データにアクセスできなくなります。回復キーはデバイスとは別の安全な場所に保管してください。

Note

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_usb

LUKS キー管理

キーの追加

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/fstab

LUKS パフォーマンスの最適化

暗号化パフォーマンスの確認

# 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-backup

LUKS ヘッダーのバックアップを安全な外部の場所 (金庫内の 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