回答

2

您是在談論強命名還是關於authenticode簽名?後者的問題是加載了authenticode簽名的程序集,.NET驗證證書以及某些配置(例如,當需要檢查OCSP並且無法訪問OCSP時),這可能需要幾十秒。因此,我們不得不停止使用authenticode和X.509證書籤署我們的程序集。

另一個缺點是,如果簽名程序集以某種方式被惡意軟件使用,某些不符合防病毒公司要求的專家可以(a)將程序集標記爲惡意軟件,(b)更糟的是,抱怨發給你的代碼簽名證書的證書頒發機構,證書將被撤銷。

.NET強命名(使用沒有證書的密鑰對)或多或少是您的私人業務。

更新:Authenticode通常應用於PE格式文件(EXE和DLL),SYS和CAB。強命名是純粹的.NET技術。

警告消息提到Authenticode簽名。簽署安裝程序是必要的(這是肯定的),並且足以擺脫該消息,除非系統策略設置爲僅允許運行簽名應用程序(在這種情況下,您的應用程序的EXE也必須簽名)。

+0

@EugeneMayevskiEldoS:謝謝。嗯,我不確定 - 差別不是我所知道的。我試圖做的是讓我的應用程序安裝/運行,而不會導致任何「此應用程序未簽名」警告。 –

+0

也許我應該只簽署安裝程序,而不是DLL本身? –

+0

已添加更新來回答您的問題 –

5

只是試圖(不成功)在互聯網上找到同一個問題的答案。

我所做的結果是檢查Google和Adobe如何交付其產品,並發現其文件夾中的每個二進制文件都已簽名,包括第三方文件。

幾個例子: 1.谷歌瀏覽器包括pepflashplayer.dll,它受Adobe版權保護,但由「Google Inc.」進行數字簽名。 2. Adob​​e Reader包含icudt40.dll,它受IBM版權保護,但由「Adobe Systems」進行數字簽名

因此,我認爲最佳做法是簽署構成您的應用程序的所有二進制文件,包括第三第四方。這很有意義,因爲它可以幫助您避免或至少輕鬆檢測到客戶機器上發生的篡改。

相關問題