15

署名に有効な発行者コード署名証明書を使用しました。

ユーザーが setup.exe をダウンロードすると、パブリッシャーは有効ですが、Windows 8 SmartScreen は引き続きユーザーに警告します。

さて、取り付け後。Windows 8 SmartSreen では、別のメッセージが表示されます。パブリッシャーは不明なパブリッシャーです。

アセンブリにも署名する必要がありますか? 有効な証明書を持っているのに、SmartScreen で引き続きプロンプトが表示されるのはなぜですか?

セットアップ exe ではなく、アプリケーション exe に署名するにはどうすればよいですか?

4

1 に答える 1

3

アセンブリにも署名する必要がありますか?

これが問題だと思います。ClickOnce では、そのマニフェストが署名されている必要があります (選択の余地はありません) が、アセンブリ自体に署名する必要はないと思います (ほのめかしたように) が、Windows 8 にはこの要件がある可能性があります。

署名されていないアセンブリは変更される可能性があり、参照アセンブリはその中のコードを忠実に読み込んで実行します。質問はありません。そのため、悪意のあるエンティティがディスク上の 1 つ以上のアセンブリを置き換えて、アプリケーションを危険にさらす可能性があります。ClickOnce を使用すると、デジタル証明書 (ターゲット上に事前に存在する ClickOnce マニフェストに署名するために使用される証明書) を介してアクセス許可が (暗黙的に) 付与されているため、システム権限の低いユーザーが他の方法では実行を許可されないタスクを実行できます。マシン、またはターゲット マシンのルート証明書を介して信頼されている)。したがって、アセンブリに署名しないことにより、セキュリティ チェーンに脆弱なリンクが存在し、Windows 8 ではこれが (既定で) 強化されている可能性があります。

アセンブリとして署名するには、次を参照してください:方法: アセンブリに署名する (Visual Studio)

注意。dotNet アセンブリ署名は、通常、厳密な名前付けと呼ばれます (このコンテキストでは、「署名」と「厳密な名前付け」という用語は同じ意味で使用されているようです)。

注意。厳密な名前のアセンブリは、別の証明書で署名できますが、他の厳密な名前のアセンブリのみを参照できます。これは、厳密な名前ではないサード パーティのアセンブリへの参照がある場合に問題を引き起こす可能性があります。署名されていないコードをリリースすることは悪い習慣であるため、これはまれです。1 つのオプションは、sn.exe を使用して独自の証明書でアセンブリに署名することです。

于 2013-03-25T10:54:41.060 に答える