メインコンテンツまでスキップ
適用対象:
DuoKey Cockpit v2フルディスクおよびファイルシステム暗号化LUKS · Prim'X Cryhod · Microsoft BitLocker

概要​

ディスク暗号化は、アプリカタログ内の単一のアプリタイプであり、1 つ以上のボリュームを保護します。各ボリュームは 3 つのオンホスト暗号化エンジンのいずれかにバインドされます。いずれの場合も、ボリューム自身のデータ暗号化鍵がホストの外に出ることはなく、DuoKey がそれを変更することもありません。DuoKey が保持するのは、そのデータ暗号化鍵へのアクセスをラップする鍵暗号化鍵(KEK)です。ホスト側のエンジンは、KEK をローカルに保存する代わりに、DuoKey が提供するインターフェース(LUKS と Cryhod では PKCS#11 プロバイダー、BitLocker では CNG Key Storage Provider の証明書)を通じて KEK にアクセスします。そのため、生の鍵素材が平文でディスクに置かれることはなく、DuoKey Cockpit のデータベースに保存されることもありません。KEK はリンクされた vault の内部にとどまり、アンラップのためにその内部でのみ使用されます。

ディスク暗号化エンジンから DuoKey vault のカストディまで
LUKSLinuxPKCS#11 プロバイダー
CryhodWindowsPKCS#11 プロバイダー
BitLockerWindowsCNG-KSP 証明書
PKCS#11 プロバイダー / CNG-KSP — ボリュームごとの Cockpit エンドポイントへの HTTPS
DuoKey Cockpit エンドポイントボリュームごとのプロキシ — find_objects / decrypt / unwrap_key
RSA-OAEP によるアンラップ
テナント vaultRSA 鍵暗号化鍵(KEK)を保持 — 秘密鍵部分が外に出ることはありません

3 つのエンジンはいずれも、DuoKey が提供するインターフェースを通じて vault に保持された鍵暗号化鍵にアクセスします。KEK の秘密鍵部分が vault の外に出ることはありません。

エンジンホスト OSインターフェースアンロックの仕組み
LUKSLinuxPKCS#11 プロバイダーPKCS#11 トークン URI を介して、キースロットが vault に保持された KEK にバインドされます。ドライバーはブート時にプロバイダーへボリューム鍵のアンラップを要求します。
Prim'X CryhodWindowsPKCS#11 プロバイダーCryhod の暗号化センターが DuoKey の PKCS#11 デバイスを選択し、設定されたタグによって KEK を特定します。
Microsoft BitLockerWindowsCNG Key Storage Providervault の KEK がスマートカード証明書として公開され、BitLocker のキープロテクターとして追加されます。
3 つではなく 1 つの統合

ディスク暗号化はアプリカタログ内の単一のアプリです。作成時にエンジン(luks、cryhod、bitlocker)を選択します。その後は、エンジンにかかわらず、ボリューム、その KEK、エンロール状態が同じ方法で管理されます。

ボリュームと鍵暗号化鍵​

各ディスク暗号化アプリは 1 つ以上のボリュームを保護します。ボリュームを作成すると、ホストに対して、また任意でワークロードラベルとともに登録されます。ワークロードラベルは、そのボリュームがどのデータディレクトリを保護しているかを示す純粋に情報提供目的のタグ(例えば elasticsearch)です。これらのエンジンはその上で何が動作しているかにかかわらず基盤となるボリュームを保護するため、ラベルによってボリュームの暗号化方法が変わることはありません。

ボリュームをエンロールすると、その KEK — RSA 鍵(デフォルトは 2048 ビット、または 4096 ビット)— がリンクされた vault(デフォルトではテナントのソフトウェア vault、または選択した vault)の内部に作成されます。KEK はマネージド鍵として作成されるため、その vault の配下で鍵モジュールにも表示されます。KEK は非対称鍵であるため、ボリュームのアンロックは vault アダプター内部で実行される、ラップされたボリューム鍵の RSA-OAEP 復号となります — KEK の秘密鍵部分が外に出ることはありません。

ボリュームのフィールド意味
エンロール状態pending(登録済みだが KEK は未バインド)、enrolled(KEK がバインドされ使用可能)、failed、または rotating(鍵のローテーションが進行中)。
状態active(アンロック可能)、suspended(アンロックを拒否)、または revoked。
KEK アルゴリズムRSA-2048(デフォルト)または RSA-4096。エンロール時またはローテーション時に選択できます。
ボリュームの一時停止や失効はアンロックを阻止します

ボリュームの状態が active 以外になると、DuoKey はそのボリュームに対するすべてのアンロック要求を拒否します — 正当なブートも含まれます。ボリュームの一時停止や失効は意図的な場合のみ行い、その前に代替のアンロック手段(例えば BitLocker の回復キー)があることを確認してください。

ボリュームのエンロール​

1

アプリを作成しボリュームを登録する

エンジン(luks、cryhod、bitlocker)を選択し、ボリュームに名前を付けます。任意で、ホスト ID、ホスト OS、オンホストのボリューム参照(デバイスパスまたはドライブレター)を記録します。

2

ボリュームをエンロールする

DuoKey がリンクされた vault に RSA KEK を作成し、エンロールメントバンドルを返します。バンドルには、このボリューム用の DuoKey プロバイダーのエンドポイント、オンホストのライブラリ/設定ファイルのパス、選択したエンジン向けのホスト側セットアップ手順が順序付きで含まれます。

3

ホスト側の手順を実行する

生成された手順をホスト上で実行します — DuoKey プロバイダーをインストールし、それをエンジンにバインドします(LUKS のキースロット、Cryhod のデバイス選択、または BitLocker のキープロテクター)。

4

アンロックを検証する

暫定的な/ローカルのアンロック方法を削除する前に、プロバイダー経由でボリュームがアンロックされることを確認します。その後、ボリュームのステータスを確認し、KEK がバインドされていること、vault に到達可能であることを確認します。

LUKS のセットアップ​

手順内容
DuoKey PKCS#11 プロバイダーをインストールするプロバイダーライブラリをホストにコピーし、その設定(サーバー URL とアクセストークン)を書き込みます。
vault に保持された KEK を LUKS のキースロットにエンロールするプロバイダーが公開する RSA KEK に新しいキースロットをバインドし、ボリューム鍵が vault に対してラップされるようにします。
crypttab にトークンを登録するPKCS#11 トークン URI のエントリを追加し、vault に保持された KEK によってブート時にボリュームが自動的にアンロックされるようにします。
アンロックを検証するディスク暗号化ツールがプロバイダーだけでボリュームを開けることを確認します。
LUKS ボリュームのエンロールとアンロック
1. ボリュームを登録するluks エンジン用のディスク暗号化アプリを作成し、ボリューム(ホスト ID、デバイスパス)を登録します
エンロール
2. ボリュームをエンロールするDuoKey が vault に RSA 鍵暗号化鍵を作成し、PKCS#11 トークン URI とエンロールメントバンドルを返します
ホスト側のセットアップ
3. ホストをバインドするDuoKey PKCS#11 プロバイダーをインストールするトークン URI に対して systemd-cryptenroll で LUKS のキースロットをバインドする/etc/crypttab にトークンを登録する
ブート時のアンロック
4. ブート時にアンロックするcryptsetup がプロバイダーにボリューム鍵のアンラップを要求し、DuoKey が vault 内部で RSA-OAEP 復号を行い、ボリュームが開きます

ホストが KEK を保存することはありません。systemd-cryptenroll と cryptsetup は、アンロックのたびに DuoKey PKCS#11 プロバイダーを通じて KEK にアクセスします。

Cryhod のセットアップ​

手順内容
DuoKey PKCS#11 プロバイダー(Windows)をインストールするプロバイダーを登録し、Cryhod の暗号化センターが KEK を列挙できるように設定を書き込みます。
暗号化センターで PKCS#11 デバイスを選択する「スマートカードまたは USB デバイスに保存された鍵(PKCS#11)」のオプションを選択し、設定されたタグによって KEK を選択します。

BitLocker のセットアップ​

手順内容
vault の KEK を CNG-KSP 証明書として公開するDuoKey Key Storage Provider をインストールし、秘密鍵が vault に保持された KEK であるスマートカード証明書をエンロールします。
証明書をキープロテクターとして追加する証明書ベースの BitLocker キープロテクターを介して、ボリュームの暗号化鍵を vault に保持された KEK にバインドします。

ボリュームの鍵のローテーション​

ボリュームをローテーションすると、新しい KEK が作成され(任意で異なる RSA 強度、または異なる vault 内に)、ボリュームがその KEK に再バインドされ、新しいエンロールメントバンドルが返されます。ローテーション後に以前の KEK が再利用されることはありません。エンジンが新しい鍵を認識できるよう、該当するホスト側のエンロール手順を再実行してください。

BitLocker の回復キーのエスクローと回復​

BitLocker のボリュームは、DuoKey がエンロールする証明書ベースのキープロテクターとは独立に、独自の回復プロテクター(数値の回復パスワード、外部キーファイル、またはその両方)を生成します。vault で保護されたアンロック経路とローカルに保存された回復キーの両方へのアクセスを失うと、マシンが恒久的にロックされてしまうため、ディスク暗号化はこれらの回復プロテクター向けに専用の一元化されたエスクローフローを備えています。表計算シートやローカルの印刷物に頼る代わりに、回復シークレット自体がそのボリューム自身の vault に保持された KEK でラップされ、一元的に保存されます。

回復エスクローは BitLocker 固有です

プロテクターのエスクロー、一覧表示、回復は BitLocker のボリュームに適用されます。LUKS と Cryhod のボリュームはこのフローを使用しません。

BitLocker の回復キーのエスクローと回復
1. 回復プロテクターを生成するBitLocker がホスト上で数値の回復パスワードや外部キーを作成します — vault で保護された証明書プロテクターとは独立しています
エスクローのためにシークレットと種別を送信
2. エスクローのために送信する回復シークレット、その種別(recovery_password / external_key / numerical_password)、任意のラベルが DuoKey に送信されます
ボリュームの KEK で暗号化
3. DuoKey がラップして保存するシークレットは保存前にボリュームの vault に保持された KEK で暗号化されます。ラップされたシークレットが一覧表示で返されることはありません
回復エンドポイント — 権限で制御
4. 管理者が回復を要求する権限を持つ運用担当者が、ロックされたボリュームとそのエスクロー済みプロテクターを特定します
vault 内部でアンラップ、監査対象
5. DuoKey がアンラップしマシンがアンロックされるvault に保持された KEK がシークレットをアンラップします。開示は監査証跡に記録され、回復された値で BitLocker の回復プロンプトからアンロックできます

回復シークレットは、主要なアンロック経路と同じ vault に保持された KEK でラップされ、開示はすべて監査証跡に記録されます。

回復キーのエスクロー​

1

ホスト上で回復プロテクターを生成する

標準的な BitLocker のツールを使用して、ボリュームに回復プロテクター(数値の回復パスワード、外部キー、またはその両方)を追加します。これはボリュームの KEK がエンロールされた後に実行する必要があります。

2

エスクローのために送信する

回復シークレット、その種別(recovery_password、external_key、numerical_password)、任意のプロテクター ID/ラベルを DuoKey に送信します。シークレットは保存される前にボリュームの vault に保持された KEK で暗号化されます — DuoKey が平文で永続化することはありません。

3

エスクローを確認する

エスクローされたプロテクターは、その種別とラベルで識別され、ボリュームのプロテクター一覧に表示されます。ラップされたシークレット自体が一覧表示で返されることはありません。

ロックされたマシンの回復​

1

ロックされたボリュームとプロテクターを特定する

使用するボリュームと、対象となるエスクロー済みプロテクターを見つけます(1 台のマシンがその運用期間中に複数のエスクロー済みプロテクターを持つ場合があります)。

2

シークレットを回復する

適切な権限を持つ運用担当者が回復を要求します。DuoKey はボリュームの vault に保持された KEK を使用してプロテクターのシークレットをアンラップし、返却します。

3

マシンをアンロックする

BitLocker の回復プロンプトで、回復した回復パスワードを入力する(または回復した外部キーを指定する)ことでマシンをアンロックします。

回復による開示は監査されます

エスクロー済みプロテクターの回復(開示)は機微な操作として扱われます。要求したユーザーに紐付けて監査証跡とアクティビティフィードに記録され、プロテクターの最終回復日時が更新されます。回復プロテクターをアンラップする権限は、ディスクの回復を扱うことを認可された運用担当者に限定してください。

前提条件​

前提条件

  • ボリュームの KEK を保持する DuoKey vault(何も選択しない場合はテナントのデフォルトのソフトウェア vault が自動的に使用されます)
  • DuoKey プロバイダー(PKCS#11 または CNG-KSP)をインストールするためのホスト上の管理者アクセス権
  • LUKS の場合:cryptsetup / systemd-cryptenroll をサポートする Linux ホスト
  • Cryhod の場合:Windows ホストに Prim'X Cryhod がすでに導入されていること
  • BitLocker の場合:Windows ホストで BitLocker がすでに有効化されている、または有効化できる状態であること
ヘルスチェックと接続性

各ボリュームはステータスチェックを公開しており、そのエンロール状態と、KEK を保持する vault に現在到達可能かどうかを報告します — 新しくエンロールしたボリュームを本番で利用する前に活用してください。