第19章 volume_key 機能

volume_key 機能では libvolume_key と volume_key の 2 種類のツールを提供しています。 libvolume_key はストレージボリュームの暗号キーを操作したりボリュームとは別に格納したりするためのライブラリーになります。 volume_key は暗号化されたハードドライブへのアクセスを取り戻すためにキーとパスフレーズを抽出する関連コマンドラインツールになります。
第一ユーザーがキーやパスワードを忘れてしまった、ユーザーが突然退職してしまった、ハードウェアまたはソフトウェアの障害で暗号化していたボリュームのヘッダーが破損したためデータを抽出する必要がある、などといった場合にこの機能は便利です。 企業などの場合、エンドユーザーにコンピュータを手渡す前に IT ヘルプデスクによって volume_key を使用した暗号キーのバックアップをとっておくことが可能です。
現在、volume_key で対応しているのは LUKS ボリュームの暗号形式のみです。

注記

volume_key は Red Hat Enterprise Linux 7 サーバーの標準インストールには含まれません。volume_key のインストールについては、http://fedoraproject.org/wiki/Disk_encryption_key_escrow_use_casesを参照してください。

19.1. volume_key コマンド

volume_key の形式は次のようになります。
volume_key [OPTION]... OPERAND
volume_key の動作のモードとオペランド (演算対象) は以下のいずれかのオプションを指定して確定します。
--save
このコマンドはオペランド volume [packet] を予期します。packet を指定すると、volume_key はその packet からキーとパスフレーズを抽出します。packet を指定しない場合は、volume からキーとパフフレーズを抽出します。必要に応じてユーザー入力を求めます。キーとパスフレーズは 1 つまたは複数の出力パケットに格納されます。
--restore
このコマンドはオペランド volume packet を予期します。volume を開き、packet 内にあるキーとパスフレーズを使って volume に再びアクセスできるようにします。新しいパスフレーズの入力など、必要に応じてユーザー入力を求めます。
--setup-volume
このコマンドはオペランド volume packet name を予期します。volume を開き、packet 内のキーとパスフレーズを使って volumename という名前に設定して解読したデータ用に使用できるようにします。
Name は dm-crypt ボリュームの名前です。この操作により解読したボリュームは /dev/mapper/name として使用できるようになります。
新しいパスフレーズを追加するなど、このコマンドでの操作は volume を永続的に変更することはありません。ユーザーは解読されたボリュームにアクセスして変更を行うことができ、処理中に volume を変更することができます。
--reencrypt--secrets--dump
この 3 種類のコマンドは同じような機能ですが出力方法が異なります。それぞれにオペランド packet が必要です。各コマンドは packet を開いて必要に応じて解読します。 --reencrypt はその情報を 1 つまたは複数の新しい出力パケットに格納します。--secretspacket に含まれているキーとパスフレーズを出力します。--dumppacket のコンテンツを出力しますが、キーとパスフレーズはデフォルトでは出力しません。これは --with-secrets をコマンドに追加することで変更できます。また、--unencrypted コマンドを使ってパケットの暗号化されていない部分だけをダンプすることも可能です。これには、パスフレーズやプライベートキーは必要ありません。
上記のコマンドのそれぞれには、次のオプションを付けることができます。
-o--output packet
このコマンドでデフォルトのキーやパスフレーズを packet に書き込みます。デフォルトのキーまたはパスフレーズはボリューム形式によって異なります。期限切れにならないようものを選択してください。また、--restore を使ってボリュームへのアクセスを取り戻すことができることを確認します。
--output-format format
このコマンドはすべての出力パケットに対して指定した format を使用します。現在使用できる format は以下のいずれかになります。
  • asymmetric: CMS を使ってパケット全体を暗号化します。証明書が必要です。
  • asymmetric_wrap_secret_only: 機密情報またはキーとパスフレーズのみをラップします。証明書が必要です。
  • passphrase: GPG を使ってパケット全体を暗号化します。パスフレーズが必要です。
--create-random-passphrase packet
英数字のランダムなパスフレーズを生成して volume に追加 (他のパスフレーズには影響しません) した後に、このパスフレーズを packet に格納します。