20.3. 大規模な組織での volume_key の使用
大規模な組織では、すべてのシステム管理者が知っている単一のパスワードを使用し、システムごとに個別のパスワードを追跡することは非現実的であり、セキュリティー上のリスクがあります。これに対応するために、volume_key は非対称暗号を使用して、任意のコンピューターで暗号化されたデータへのアクセスに必要なパスワードを知っている人の数を最小限に抑えることができます。
このセクションでは、暗号化キーを保存する前の準備、暗号化キーの保存方法、ボリュームへのアクセスの復元、および緊急パスフレーズの設定に必要な手順について説明します。
20.3.1. 暗号化キーを保存するための準備
暗号化キーの保存を開始するには、いくつかの準備が必要です。
手順20.3 準備
- X509 証明書/プライベートペアを作成します。
- 信頼できるユーザーを指定します。このユーザーは、秘密鍵を危険にさらさないという点で信頼されています。このようなユーザーは、escrow パケットを復号化できます。
- escrow パケットの復号に使用するシステムを選択します。このようなシステムでは、秘密鍵を含む NSS データベースを設定します。秘密鍵が NSS データベースで作成されていない場合は、以下の手順を行います。
- 証明書と秘密鍵を
PKCS#12
ファイルに保存します。 - 以下を実行します。
certutil -d
/the/nss/directory
-Nこの時点で、NSS データベースのパスワードを選択できます。各 NSS データベースには異なるパスワードを設定できるため、各ユーザーが個別の NSS データベースを使用する場合に、指定したユーザーは単一のパスワードを共有する必要はありません。 - 以下を実行します。
pk12util -d
/the/nss/directory
-ithe-pkcs12-file
- システムをインストールしている人、または既存システムに鍵を保存している人に証明書を配布します。
- 保存した秘密鍵については、マシンおよびボリュームから検索できるように、ストレージを準備します。たとえば、マシンごとに 1 つのサブディレクトリーを持つ単純なディレクトリーや、その他のシステム管理タスクに使用されるデータベースなどです。
20.3.2. 暗号化キーの保存
必要な準備 (「暗号化キーを保存するための準備」 を参照) の完了後に、以下の手順で暗号鍵を保存できるようになりました。
注記
このファイルのすべての例で、
/path/to/volume
は LUKS デバイスであり、含まれるプレーンテキストデバイスではありません。blkid -s type /path/to/volume
は、タイプ="crypto_LUKS"
を報告する必要があります。
手順20.4 暗号化キーの保存
- 以下を実行します。
volume_key --save
/path/to/volume
-c/path/to/cert
escrow-packet - 準備したストレージに、生成された
escrow-packet
ファイルを保存し、システムおよびボリュームと関連付けます。
この手順は、手動で実行するか、システムのインストールの一部としてスクリプトを使用して実行できます。
20.3.3. ボリュームへのアクセスの復元
暗号鍵を保存 (「暗号化キーを保存するための準備」および「暗号化キーの保存」を参照) したら、必要に応じてドライバーへのアクセスを復元できます。
手順20.5 ボリュームへのアクセスの復元
- パケットストレージからボリュームの escrow パケットを取得し、指定したユーザーのいずれかに送信して復号化します。
- 指定されたユーザーは、以下を実行します。
volume_key --reencrypt -d
/the/nss/directory
escrow-packet-in -o escrow-packet-outNSS データベースのパスワードを提供した後、指定されたユーザーは escrow-packet-out を暗号化するパスフレーズを選択します。このパスフレーズは毎回異なるものにでき、指定されたユーザーからターゲットシステムに暗号化キーが移動されている間のみ暗号化キーを保護します。 - 指定されたユーザーから
escrow-packet-out
ファイルとパスフレーズを取得します。 - レスキューモードなどで volume_key を実行し、
escrow-packet-out
ファイルを使用できる環境でターゲットシステムを起動します。 - 以下を実行します。
volume_key --restore
/path/to/volume
escrow-packet-out指定ユーザーが選択したパケットパスフレーズとボリュームの新しいパスフレーズを求めるプロンプトが表示されます。 - 選択したボリュームパスフレーズを使用してボリュームをマウントします。
たとえば、cryptsetup luksKillSlot を使用して忘れた古いパスフレーズを削除し、暗号化されたボリュームの LUKS ヘッダーのパスフレーズスロットを解放することができます。これは、コマンド cryptsetup luksKillSlot device key-slot コマンドで行います。詳細と例については、cryptsetup --help を参照してください。
20.3.4. 緊急パスフレーズの設定
状況によっては (出張など)、システム管理者が影響を受けるシステムを直接作業するのは実用的ではありませんが、ユーザーは引き続きデータにアクセスする必要があります。この場合、volume_key はパスフレーズと暗号鍵と連携できます。
システムのインストール中に、次のコマンドを実行します。
volume_key --save /path/to/volume
-c /path/to/ert
--create-random-passphrase passphrase-packet
ランダムなパスフレーズを生成し、指定したボリュームに追加して、
passphrase-packet
に格納します。--create-random-passphrase オプションと -o オプションを組み合わせて両方のパケットを同時に生成することもできます。
ユーザーがパスワードを忘れた場合、指定されたユーザーは以下を実行します。
volume_key --secrets -d /your/nss/directory passphrase-packet
これは、ランダムなパスフレーズを示しています。このパスフレーズをエンドユーザーに渡します。