Windows 10 アプリ パッケージへの署名

アプリ パッケージの署名は、展開できる Windows 10 アプリ パッケージを作成するプロセスに必要な手順です。 Windows 10 では、すべてのアプリケーションが有効なコード署名証明書で署名されている必要があります。

Windows 10 アプリケーションを正常にインストールするには、パッケージに署名するだけでなく、デバイス上でパッケージを信頼することも必要になります。 これは、証明書をデバイス上の信頼されたルートのいずれかにチェーンする必要があることを意味します。 Windows 10 の既定では、コード署名証明書を提供するほとんどの認証局からの証明書が信頼されます。

さらに、MSIX バンドルを作成する場合は、バンドル内のすべてのパッケージに個別に署名する必要はありません。 バンドルにのみ署名する必要があり、内部のすべてのパッケージは再帰的に署名されます。

トピック 説明
署名の前提条件 このセクションでは、Windows 10 アプリ パッケージに署名するために必要な前提条件について説明します。
SignTool の使用 このセクションでは、Windows 10 SDK の SignTool を使用してアプリ パッケージに署名する方法について説明します。
Device Guard の署名を使用して MSIX パッケージに署名する このセクションでは、Device Guard の署名を使用してアプリに署名する方法について説明します。
テスト用の符号なしパッケージの作成 このセクションでは、署名されていない msix パッケージを作成する方法について説明します。

タイムスタンプ

証明書を使用してアプリに署名する場合は、タイムスタンプを使用することを強くお勧めします。 タイムスタンプによって署名が保持され、証明書が期限切れになった後でもアプリ パッケージがアプリ展開プラットフォームに受け入れられるようになります。 パッケージの検査時は、タイムスタンプにより、パッケージ署名を署名された時刻に対して検証することが可能になります。 これにより、証明書が無効になった後でもパッケージを受け入れることができます。 タイムスタンプ付きでないパッケージは、現在の時刻に照らして評価されます。証明書が有効でない場合、Windows はそのパッケージを受け入れません。

タイムスタンプ付きとタイムスタンプなしのアプリの署名に関するさまざまなシナリオを次に示します。

通信の種類 タイムスタンプなしで署名されているアプリ タイムスタンプ付きで署名されているアプリ
証明書が有効 アプリはインストールされます アプリはインストールされます
証明書が無効 (期限切れ) アプリはインストールされません 証明書の信頼性がタイムスタンプ設定局による署名時に検証されているため、アプリはインストールされます

注意

アプリがデバイスに正常にインストールされた場合、アプリは、タイムスタンプ付きかどうかにかかわらず、証明書の有効期限が切れた後も実行し続けます。

パッケージの整合性の適用

信頼されたアプリケーションのみをデバイスにインストールできるだけでなく、MSIX パッケージに署名するその他の利点として、Windows がパッケージとその内容の整合性をデバイスに展開された後に適用できるということが挙げられます。 署名済みパッケージの AppxBlockMap.xmlAppxSignature.p7x にチェーンすることで、Windows は実行時および Windows Defender のスキャン中にパッケージとその内容の整合性に関する検証チェックを実行できます。 パッケージが改ざんされていると見なされた場合、Windows により起動がブロックされ、パッケージを修復または再インストールするための修復ワークフローが開始されます。 Microsoft Store を介して配布されていないパッケージの場合、パッケージが uap10:PackageIntegrity 要素を宣言し、Windows 2004 以降のビルドにデプロイされている場合、パッケージの整合性が適用されます。 AppxManifest.xml でのパッケージの整合性適用の宣言の例を次に示します。

<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"  
IgnorableNamespaces="uap10">
...
  <Properties>
    <uap10:PackageIntegrity>
      <uap10:Content Enforcement="on" />
    </uap10:PackageIntegrity>
  </Properties>
...
</Package>

デバイスのモード

Windows 10 では、ユーザーは、デバイスを実行するモードを設定アプリで選択できます。 モードには、"Microsoft Store アプリ"、"アプリのサイドローディング"、および "開発者モード" があります。

Microsoft Store アプリは、Microsoft Store からのアプリのインストールのみが許可されるため、最も安全です。 Microsoft Store 内のアプリは、認定プロセスを経ることで、安全に使用できることが確認されます。

アプリのサイドローディングおよび開発者モードは、証明書が信頼され、デバイス上の信頼されたルートのいずれかにチェーンされている限り、他の証明書によって署名されたアプリに対してより寛容的です。 "開発者モード" は、あなたが開発者で、Windows 10 アプリをビルドまたはデバッグしている場合にのみ選択してください。 開発者モードとこのモードで提供される機能の詳細については、こちらを参照してください。

注意

Windows 10 バージョン 2004 以降、サイドローディングのオプションは既定で有効になっています。 その結果、開発者モードはトグルになりました。 企業では、引き続きポリシーを使用してサイドローディングをオフにできます。