App Control for Business で追加のコントロールと保護にコード署名を使用する
注
App Control for Business の一部の機能は、特定の Windows バージョンでのみ使用できます。 アプリ制御機能の可用性について詳しくは、こちらをご覧ください。
コード署名とは何か、なぜ重要なのですか?
コード署名は、App Control for Business などのアプリケーション セキュリティ機能に重要な利点をもたらします。 最初に、署名されてから、コードの実行が許可される前に、ファイルが改ざんされていないことを暗号化的に検証できます。 次に、ファイルを会社や個々の開発者などの実際の ID に関連付けます。 この ID を使用すると、ポリシーの信頼に関する決定が容易になり、コード署名が悪用されたり、悪意を持って使用されたりした場合の実際の結果が可能になります。 Windows では、ソフトウェア開発者がコードにデジタル署名する必要はありませんが、ほとんどの主要な独立系ソフトウェア ベンダー (ISV) は、コードの大部分にコード署名を使用します。 開発者がファイルのリソース ヘッダーに含むメタデータ (。OriginalFileName や ProductName などの RSRC をファイルの署名証明書と組み合わせて、信頼の決定範囲を制限できます。 たとえば、Microsoft によって署名されたすべてを許可する代わりに、ProductName が "Microsoft Teams" である Microsoft によって署名されたファイルのみを許可するように選択できます。 次に、他のルールを使用して、実行する必要がある他のファイルを承認します。
可能な限り、すべてのアプリ バイナリとスクリプトがアプリの受け入れ条件の一部として署名されているコードである必要があります。 また、内部基幹業務 (LOB) アプリ開発者が、organizationによって制御されるコード署名証明書にアクセスできることを確認する必要があります。
カタログ署名
アプリ バイナリとスクリプトは、通常、埋め込み署名またはカタログ署名です。 埋め込み署名はファイル自体の一部となり、コピーまたは移動された場所でファイルと共に実行されます。 一方、カタログ署名は個々のファイルからデタッチされます。 代わりに、署名する 1 つ以上のファイルのハッシュ値を含む別の "カタログ ファイル" が作成されます。 このカタログ ファイルはデジタル署名され、署名を存在させる任意のコンピューターに適用されます。 署名付きカタログにハッシュ値が含まれるファイルは、カタログ ファイルから署名を継承します。 ファイルには、埋め込み署名とカタログ署名の組み合わせを含む複数の署名が含まれる場合があります。
カタログ ファイルを使用すると、元のソース ファイルへのアクセスを必要とせず、高価な再パッケージ化を行わずに、既存のアプリケーションに署名を簡単に追加できます。 ISV が直接署名するすべての署名を直接信頼したくない場合は、カタログ ファイルを使用して独自の署名を ISV アプリに追加することもできます。 次に、署名されたカタログとアプリをすべてのマネージド エンドポイントにデプロイするだけです。
注
カタログはハッシュで署名するファイルを識別するため、ファイルを変更すると署名が無効になる可能性があります。 アプリケーションが更新されるたびに、更新されたカタログ署名をデプロイする必要があります。 一般に、コード署名をアプリ開発プロセスまたはアプリデプロイ プロセスと統合するのが最善の方法です。 アプリバイナリは知識がなくても変更される可能性があるため、自己更新アプリに注意してください。
既存のアプリのカタログ ファイルを作成および管理する方法については、「 App Control for Business をサポートするカタログ ファイルをデプロイする」を参照してください。
署名されたアプリ制御ポリシー
アプリ制御ポリシーは XML ドキュメントとして開始されますが、デプロイの前にバイナリでエンコードされたファイルに変換されます。 このバイナリ バージョンのポリシーは、他のアプリケーション バイナリと同様にコード署名することができ、署名されたコードに対して上記と同じ利点の多くを提供します。 さらに、署名されたポリシーはアプリコントロールによって特別に扱われ、管理者ユーザーによるポリシーの改ざんや削除から保護するのに役立ちます。
署名済みポリシーの使用の詳細については、「署名付きポリシーを使用してビジネス向けアプリ制御を改ざんから保護する」を参照してください。
独自の用途でコード署名証明書を取得する
独自の用途でコード署名証明書を取得する方法には、次のようなものがあります。
- Microsoft の信頼された署名 サービスを使用します。
- Microsoft 信頼されたルート プログラムの参加者の 1 人からコード署名証明書を購入します。
- 独自のデジタル証明書または公開キー 基盤 (PKI) を使用してコード署名証明書を発行するには、「 オプション: App Control for Business のコード署名証明書を作成する」を参照してください。