LUKSとは
LUKS(Linux Unified Key Setup)は、Linuxにおける標準的なディスク暗号化仕様です。dm-cryptカーネルモジュールと連携し、ブロックデバイス(HDD、SSD、USBメモリなど)を透過的に暗号化します。
LUKSの主な特徴:
- 標準化された仕様:ヘッダーフォーマットが公開されており、互換性が高い
- 複数のパスフレーズ:最大8つのキースロットで異なるパスフレーズを設定可能
- 堅牢なKDF:LUKS2ではArgon2idを使用し、ブルートフォース攻撃に強い
- ヘッダーバックアップ:暗号化ヘッダーをバックアップ・復元可能
LUKSの基本操作
暗号化ボリュームの作成
# LUKS2でディスクを暗号化
sudo cryptsetup luksFormat --type luks2 /dev/sdb1
# デフォルト設定を確認
# - 暗号: AES-XTS
# - 鍵長: 512ビット(AES-256)
# - PBKDF: Argon2id
# カスタム設定で作成
sudo cryptsetup luksFormat --type luks2 \
--cipher aes-xts-plain64 \
--key-size 512 \
--hash sha512 \
--pbkdf argon2id \
--pbkdf-memory 1048576 \
/dev/sdb1
暗号化ボリュームのマウント
# ボリュームを開く(復号化)
sudo cryptsetup open /dev/sdb1 encrypted_volume
# ファイルシステムを作成(初回のみ)
sudo mkfs.ext4 /dev/mapper/encrypted_volume
# マウント
sudo mount /dev/mapper/encrypted_volume /mnt/secure
# アンマウントとクローズ
sudo umount /mnt/secure
sudo cryptsetup close encrypted_volume
AIエンジニアとしての実体験
機密性の高いAI学習データを保管するストレージサーバーで、LUKSによるフルディスク暗号化を導入しました。特に、個人情報を含む医療データや金融データの取り扱いでは、ディスク暗号化が規制要件となることがあります。
# 既存のLUKSボリュームの情報確認
sudo cryptsetup luksDump /dev/sdb1
# キースロットの追加(バックアップ用パスフレーズ)
sudo cryptsetup luksAddKey /dev/sdb1
# キースロットの削除
sudo cryptsetup luksRemoveKey /dev/sdb1
自動マウントの設定
# /etc/crypttab に追加
# encrypted_volume UUID=xxxx-xxxx-xxxx none luks
# /etc/fstab に追加
# /dev/mapper/encrypted_volume /mnt/secure ext4 defaults 0 2
# キーファイルを使用した自動マウント(セキュリティ注意)
dd if=/dev/urandom of=/root/keyfile bs=4096 count=1
chmod 600 /root/keyfile
sudo cryptsetup luksAddKey /dev/sdb1 /root/keyfile
# /etc/crypttab
# encrypted_volume UUID=xxxx-xxxx-xxxx /root/keyfile luks
自社サーバー運用への応用
ルートパーティションの暗号化
多くのLinuxディストリビューションは、インストール時にルートパーティションのLUKS暗号化をサポートしています。起動時にパスフレーズを入力する必要があります。
リモートサーバーでの暗号化
クラウドやデータセンターのサーバーでは、リブート時にパスフレーズを入力する仕組み(dropbear-initramfsなど)を設定することで、リモートでの復号化が可能です。
# dropbear-initramfsのインストール(Debian/Ubuntu)
sudo apt install dropbear-initramfs
# SSH鍵の設定
sudo vim /etc/dropbear-initramfs/authorized_keys
# initramfsの更新
sudo update-initramfs -u
関連ブログ記事
📝 関連記事
最新動向(2026年)
LUKS2の普及
LUKS2は2018年に導入され、現在では多くのディストリビューションでデフォルトとなっています。Argon2id KDFにより、LUKS1よりも強力なブルートフォース攻撃耐性を持ちます。
OPAL自己暗号化ドライブとの連携
SSD内蔵の暗号化機能(TCG Opal)とLUKSを組み合わせることで、パフォーマンスを犠牲にせずにセキュリティを強化できます。
トラブル事例と対策
⚠️ ヘッダー破損によるデータ損失
問題:LUKSヘッダーが破損するとすべてのデータにアクセス不能
対策:cryptsetup luksHeaderBackupでヘッダーをバックアップし、安全な場所に保管
# ヘッダーバックアップ
sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file luks_header_backup.img
# ヘッダー復元
sudo cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file luks_header_backup.img
⚠️ パスフレーズ忘れ
問題:すべてのキースロットのパスフレーズを忘れるとデータ復旧不可能
対策:複数のキースロットに異なるパスフレーズを設定、セキュアな場所に記録
