インテントとポリシー
セキュリティチームがビジネスインテントを具体的なアルゴリズム、ポスチャ、鍵、バックエンドにマッピングし、移行を証明する方法。
インテント
インテントは開発者が宣言するものです。3 つの要素で構成されます。
| 要素 | 値 | 意味 |
|---|---|---|
| データクラス | pan, cvv, pii, phi, credential, confidential | どの種類の機密データであるか。 |
| 目的 | storage, transport, tokenize, sign | そのデータで何を行うか。 |
| 所在地 | eu, us, ch, global | 任意の管轄区域の制約(デフォルトは global)。 |
インテントはキー {data_class}.{purpose} によって識別されます(例:
pan.storage)。開発者がアルゴリズム、モード、鍵を指定することはありません。
ポリシー
ポリシーは、セキュリティチームが所有する、テナント単位のバージョン管理されたルール
セットです。各ルールはインテントを決定にマッピングし、ポリシーは必要なポスチャの下限
(classical、hybrid、pqc_only)を保持します。CAP は、最も具体的なルールを照合し、
下限を強制することでインテントを解決します。
決定は、CAP がインテントを解決した結果です。
| フィールド | 意味 |
|---|---|
algorithm | 実行する具体的なアルゴリズム識別子。 |
posture | classical · hybrid · pqc_only。 |
quantum_resistant | ポスチャが classical でない場合に true。 |
key_ref | 鍵への参照 — { kind: "vault", vault_id, key_name } または { kind: "derived_tenant", label }。CAP は鍵のバイト列を保持しません。 |
backend | バックエンドクラス: software · fips1403_hsm · pqc_capable · local_tokenizer(具体的なベンダーは下流で選択されます)。 |
ポスチャの順位
ポスチャは classical (0) < hybrid (1) < pqc_only (2) の順に並びます。解決されたアルゴリズムは
ポリシーの下限を満たすか上回る必要があります。より強いアルゴリズムは常に、より弱い要件を
満たしますが、その逆は成り立ちません。
| ポスチャ | アルゴリズム |
|---|---|
| classical | aes256-gcm, ff1, rsa-oaep2048, ecdsa-p256 |
| hybrid | hybrid-ml-kem768-x25519, hybrid-ml-dsa65-ecdsa-p256 |
| pqc_only | ml-kem768, ml-dsa65, slh-dsa128s |
コンプライアンステンプレートから始める
ルールを手作業で作成する代わりに、組み込みのテンプレートからポリシーをブートストラップします。
curl -X POST "https://cockpit.example.com/api/cap/policies/from-template" \
-H "Authorization: Bearer $COCKPIT_SESSION_JWT" \
-H "Content-Type: application/json" \
-d '{ "template_key": "pci_dss_4", "name": "PCI baseline" }'| テンプレート | 標準 | ポスチャの下限 | 主な内容 |
|---|---|---|---|
pci_dss_4 | PCI DSS 4.0 | classical | PAN をトークン化(ff1)。PAN/CVV のストレージは FIPS HSM 上の aes256-gcm。transport と sign はハイブリッド。 |
finma_ch | FINMA(スイス) | hybrid | ハイブリッドの署名とトランスポート。スイス国内所在。FIPS HSM バックエンド。 |
enisa_eu | ENISA(EU PQC) | hybrid | ハイブリッドの KEM/DSA。EU 所在。pqc_capable バックエンド。 |
cnsa_2_0 | NIST CNSA 2.0 | pqc_only | 純粋な ML-KEM / ML-DSA — クラシックやハイブリッドへのフォールバックなし。 |
fips_fedramp | FIPS 140-3 / FedRAMP | classical | FIPS HSM 上の aes256-gcm ストレージ。transport と sign はハイブリッド。 |
gdpr_pii | GDPR(EU の PII) | classical | PII/PHI のストレージは aes256-gcm。transport と sign はハイブリッド。EU 所在。 |
テンプレートの一覧とその内容は GET /api/cap/policy-templates で取得できます。
ポリシーは作成+論理削除であり、その場での更新はできません。ルールを変更したり
ポスチャを引き上げたりするには、新しいポリシー(より高い version)を作成します。CAP は、
リクエストが特定の policy_id を指定していない限り、有効化されている最新のポリシーに対して
解決します。
ポスチャの切り替えをシミュレートする — Quantum Readiness Score
下限を引き上げる前に、シミュレートしてください。POST /api/cap/simulate は、インテント
ごとの変更と Quantum Readiness Score(QRS) の向上度(0〜100)を示します。
curl -X POST "https://cockpit.example.com/api/cap/simulate" \
-H "Authorization: Bearer $COCKPIT_SESSION_JWT" \
-H "Content-Type: application/json" \
-d '{ "target_posture": "pqc_only" }'レスポンスは、qrs.before、qrs.after、qrs.uplift、変更前後の耐量子カバレッジ
(n/m インテント)、およびインテントごとの正確な from → to の変更を報告します。移行を
計画し証拠として示すには、DuoKey CPM の DuoKey CBOM と
Quantum Readiness Score を活用してください。
ドリフト検出 — ループを閉じる
アプリケーションは observe(...) を呼び出して、実際に実行されたアルゴリズムを報告します。
CAP はアクティブなポリシーに対してインテントを解決し、ポスチャを比較します。
準拠
観測されたアルゴリズムが決定を満たすか上回る場合 → 検出結果なし。
警告
宣言より弱いものの依然として耐量子である場合(例: pqc_only が期待されるところでハイブリッド) → warning の検出結果。
重大
純粋にクラシックなアルゴリズムに低下した場合 → critical の検出結果。
検出結果には、インテントキー、宣言されたアルゴリズムと観測されたアルゴリズム、重大度、
ソース、ステータス(open / resolved)が含まれます。GET /api/cap/drift で確認してください。
ポリシー、テンプレート、シミュレート、ドリフトの管理はコントロールプレーンの呼び出しであり、
Cap.Policies.* / Cap.Drift.* 権限を持つ Cockpit セッション(JWT)を使用し、
cap.enabled 機能が必要です。アプリケーションは dke_cap_… API キーを、データプレーンの
/api/cap/sdk/resolve および /api/cap/sdk/observe ルートでのみ使用します。
このページでは、インテント / ポリシーモデルと必須の呼び出しを扱っています。完全な REST コントラクトとパッケージ化された SDK のリファレンスは、DuoKey の開発者 ドキュメントで公開されています。