2016-05-27 36 views
2

編輯:這個問題不僅僅是讀取證書或指紋,也是爲了驗證我的假設。 我們要求將我們程序(SDK)中的一些資源的訪問權限限制爲僅由我們的證書籤名的可執行文件。閱讀指紋的可執行文件 process

假設:根據我們的證書驗證外部可執行文件的指紋可以解決我們的問題,因爲沒有人可以用相同的指紋來僞造我們的證書。

有沒有辦法在C#中讀取外部exe指紋的指紋?我不在msdn中找到API,尋找替代方法。如果我錯了我的假設,請糾正我。

在此先感謝。

+0

可能重複[如何從已簽名的.Net程序集中讀取數字簽名信息?](http://stackoverflow.com/questions/10549836/how-do-i-read-the- digital-signature-information-from-a-signed-net-assembly) – Nasreddine

+0

問題是,雖然你可以檢查外部應用程序的簽名,但這種檢查可以相對容易地進行修補。 –

+0

對不起,請您詳細說明。你的意思是,外部應用程序可以像我的證書籤名一樣行事? – rplusg

回答

2

您可以使用X509Certificate.CreateFromSignedFile構造函數從簽名文件中檢索簽名證書。更多信息:https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate.createfromsignedfile(v=vs.110).aspx

+0

感謝您的輸入,可以使用純C \ C++創建的exe工作嗎? – rplusg

+1

這將適用於任何支持Microsoft authenticode簽名的文件。它可以是一個腳本(PS,VBS,JS),DLL,可執行文件,MSI等等。裏面的語言是不相關的。 – Crypt32

+0

再次感謝,我會盡快嘗試並接受您的答案。 – rplusg