LUKS【Linux Unified Key Setup】
概要

暗号化の対象はファイルやフォルダではなく、ストレージ上のブロックデバイス全体である。ファイルシステムの種類を問わず、ファイル名やフォルダ構造、スワップ領域を含むすべてのデータが保護される。
正しいパスフレーズまたは鍵ファイルを入力しなければ内容を読み取ることができず、デバイスが物理的に持ち出された場合でも記録されたデータは保護される。Windowsの「BitLocker」やmacOSの「FileVault」に相当する技術であり、パソコンやサーバの盗難・紛失、データセンターからのストレージ持ち出しといった物理的な情報漏洩への対策として、企業や官公庁、研究機関などで導入されている。
暗号化には「マスターキー」と「ユーザーキー」」の二つの暗号鍵を用いる。ストレージ上のデータはマスターキーで暗号化され、そのマスターキーはパスフレーズや鍵ファイルから導出されたユーザーキーで暗号化された状態でヘッダー領域に格納される。この構造により、パスフレーズを変更してもディスク全体の再暗号化は不要で、ユーザーキーだけを差し替えればよい。また複数の鍵スロットを備えており、一つの暗号化領域に対して複数のパスフレーズや鍵ファイルを登録できるため、管理者と一般利用者で異なるパスワードを使い分けたり、バックアップ用のパスフレーズを設定したりすることができる。
Linuxカーネルの「dm-crypt」と組み合わせて動作し、実際の操作は「cryptsetup」というツールで行う。LUKSはオープンな仕様として設計されているため、異なるソフトウェアやシステム間でも互換性を保ちやすく、ディスクを別のLinux環境へ移しても対応ツールがあれば同じ手順で利用できる。現在は「LUKS1」と「LUKS2」の二つの版が存在し、LUKS2では鍵導出関数に「Argon2」が採用されているほか、メタデータの冗長化や使用中のデバイスのオンライン再暗号化にも対応している。近年のcryptsetupではLUKS2が既定の形式となっており、古い環境との互換性が必要な場合にのみLUKS1が選択される。