信頼済み署名証明書の管理
この記事では、信頼済み署名証明書について説明します。これには、2 つの固有の属性、サービスのゼロタッチ ライフサイクル管理プロセス、タイムスタンプの副署の重要性、および Microsoft のアクティブな脅威の監視と失効アクションが含まれます。
信頼済み署名サービスで使用される証明書は、X.509 コード署名証明書の標準的なプラクティスに従います。 正常なエコシステムをサポートするために、サービスには、署名用の X.509 証明書と非対称キーのフル マネージド エクスペリエンスが含まれています。 フル マネージドの信頼された署名エクスペリエンスには、信頼された署名証明書プロファイル リソース内のすべての証明書のライフサイクル アクションが用意されています。
証明書の属性
信頼済み署名では、証明書プロファイル リソースの種類を使用して、信頼済み署名の顧客が署名に使用する X.509 v3 証明書を作成および管理します。 この証明書は、「Microsoft PKI サービス リポジトリ」にある RFC 5280 標準および関連する Microsoft PKI サービス証明書ポリシー (CP) および Certification Practice Statements (CPS) に準拠しています。
信頼された署名証明書プロファイルには、標準的な機能に加えて、証明書署名の誤用や乱用に関連するリスクや影響を軽減するための次の 2 つの独自の機能が含まれています。
- 有効期間の短い証明書
- 永続 ID ピン留めのためのサブスクライバー ID 検証拡張キー使用法 (EKU)
有効期間の短い証明書
署名の誤用や不正使用の影響を軽減するために、信頼済み署名証明書は毎日更新され、72 時間のみ有効です。 これらの有効期間の短い証明書では、失効処理を 1 日のみにする、または必要に応じて広げ、誤用や不正使用のインシデントに対処できます。
たとえば、サブスクライバーが、「Microsoft がマルウェアと望ましくない可能性のあるアプリケーションを識別する方法」で定義されたマルウェアまたは望ましくない可能性のあるアプリケーション(PUA) であるコードを署名したと判断された場合、失効処理を分離して、マルウェアまたは PUA を署名した証明書のみを取り消すことができます。 失効は、その証明書の発行日にその証明書を使用して署名されたコードにのみ影響します。 失効は、その日以前に署名されたコードにも、その日以降に署名されたコードにも適用されません。
サブスクライバーの ID 確認 EKU
キーを確実に検疫するため、X.509 エンドエンティティ署名証明書を定期的に更新するのが一般的です。 信頼済み署名の毎日の証明書の更新により、証明書属性 (たとえば公開キー) または証明書の拇印 (証明書のハッシュ) を使用して、信頼または検証をエンド エンティティ証明書にピン留めすることはできません。 また、サブジェクト識別名 (subject DN) 値は、ID または組織の有効期間中に変更される可能性があります。
これらの問題に対処するために、信頼済み署名は、サブスクリプションの ID 検証リソースに関連付けられている各証明書に永続 ID 値を提供します。 永続 ID 値は、1.3.6.1.4.1.311.97.
プレフィックスが付いたカスタム EKU であり、その後に、証明書プロファイルで使用される ID 検証リソースに固有の追加のオクテット値が続きます。 次に例をいくつか示します。
パブリック信頼 ID 検証の例
1.3.6.1.4.1.311.97.990309390.766961637.194916062.941502583
の値は、パブリック信頼 ID 検証を使用する信頼された署名サブスクライバーを示します。1.3.6.1.4.1.311.97.
プレフィックスは、信頼された署名のパブリック信頼コード署名の種類です。990309390.766961637.194916062.941502583
値は、パブリック信頼サブスクライバーの ID 検証に固有の値です。プライベート信頼 ID 検証の例
1.3.6.1.4.1.311.97.1.3.1.29433.35007.34545.16815.37291.11644.53265.56135
の値は、プライベート信頼 ID 検証を使用する信頼された署名サブスクライバーを示します。1.3.6.1.4.1.311.97.1.3.1.
プレフィックスは、信頼された署名のプライベート信頼コード署名の種類です。29433.35007.34545.16815.37291.11644.53265.56135
値は、プライベート信頼サブスクライバーの ID 検証に固有の値です。Windows Defender Application Control (WDAC) のコード整合性 (CI) ポリシー署名にプライベート信頼 ID 検証を使用できるため、異なる EKU プレフィックスを持ちます:
1.3.6.1.4.1.311.97.1.4.1.
。 ただし、サフィックスの値は、プライベート信頼のためのサブスクライバーの ID 検証の永続 ID 値と一致します。
Note
WDAC CI ポリシー設定では、永続的な ID EKU を使用して、信頼済み署名の ID に信頼をピン留めできます。 WDAC ポリシーの作成の詳細については、「署名付きポリシーを使用して Windows Defender アプリケーション制御を改ざんから保護する」および「Windows Defender アプリケーション制御ウィザード」を参照してください。
すべての信頼済み署名パブリック信頼証明書には、信頼済み署名からパブリックに信頼された証明書として簡単に識別できる 1.3.6.1.4.1.311.97.1.0
EKU も格納されています。 すべての EKU は、コード署名 EKU (1.3.6.1.5.5.7.3.3
) に加えて、証明書コンシューマーの特定の使用の種類を識別するために提供されます。 唯一の例外は、コード署名 EKU が存在しない信頼された署名のプライベート信頼コード整合性ポリシー証明書プロファイルの種類の証明書です。
ゼロタッチ証明書のライフサイクル管理
信頼された署名は、各サブスクライバーの署名を可能な限り簡略化することを目指しています。 署名を簡略化する主な部分は、完全に自動化された証明書ライフサイクル管理ソリューションを提供することです。 信頼された署名ゼロタッチ証明書ライフサイクル管理機能は、すべての標準的な証明書アクションを自動的に処理します。
次の情報が含まれます。
- サービスによって管理される FIPS 140-2 レベル 3 ハードウェア暗号化モジュールでのキーの生成、ストレージ、使用量をセキュリティで保護します。
- 証明書プロファイル リソースへの署名に使用する有効な証明書を常に持っていることを確認するために、証明書を毎日更新します。
作成および発行した証明書は、すべて Azure portal に記録されます。 証明書シリアル番号、拇印、作成日、有効期限、状態 (アクティブ、有効期限切れ、取り消しなど) を含むログ データ フィードをポータルで表示できます。
Note
信頼済み署名は、秘密キーと証明書のインポートまたはエクスポートをサポートしていません。 信頼済み署名で使用されるすべての証明書とキーは、FIPS 140-2 レベル 3 で動作するハードウェア暗号化モジュール内で管理されます。
タイム スタンプの副署
署名の標準的な方法は、RFC 3161 準拠のタイム スタンプを使用してすべての署名に副署することです。 信頼済み署名では有効期間の短い証明書が使用されるため、署名が署名証明書の有効期間を超えて有効であるには、タイムスタンプの副署が不可欠です。 タイム スタンプの副署は、コード署名ベースライン要件 (CSBR) の標準要件を満たすタイム スタンプ機関 (TSA) からの暗号でセキュリティ保護されたタイム スタンプ トークンを提供します。
副署は、署名が行われた信頼性の高い日時を提供します。 タイムスタンプ副署が、署名証明書の有効期間と TSA 証明書の有効期間内である場合、その署名は有効です。 署名証明書と TSA 証明書の有効期限が切れた後でも (どちらかが失効しない限り)、有効性は持続します。
信頼済み署名では、一般公開されている http://timestamp.acs.microsoft.com
の TSA エンドポイントが提供されます。 すべての信頼された署名サブスクライバーは、生成するすべての署名にこの TSA エンドポイントを使用して副署することをお勧めします。
アクティブな監視
信頼済み署名は、アクティブな脅威インテリジェンス監視を使用して、信頼済み署名サブスクライバーのパブリック信頼証明書の誤用や悪用のケースを常に探すことで、健全なエコシステムのサポートに積極的に寄与します。
誤用または不正使用のケースが確認された場合、信頼済み署名は、標的型または広範な証明書失効やアカウントの中断など、脅威を軽減して修復するために必要な手順を直ちに進めます。
所有する証明書プロファイルでログに記録されるすべての証明書に対して、Azure portal から直接失効アクションを完了することもできます。