CAPICOM - Überprüfen Sie, ob SignedCode von einem vertrauenswürdigen Herausgeber ohne Benutzeroberfläche stammt

8

Ich verwende CAPICOM in einer .NET 3.0 C # -App, um eine Authenticode-Signatur in einer EXE-Datei zu überprüfen. Ich muss sicherstellen, dass das Zertifikat als vertrauenswürdiger Herausgeber aufgeführt ist. Wenn Sie signedCode.Verify(true) verwenden, wird ein Dialogfeld angezeigt, wenn das Zertifikat nicht bereits vertrauenswürdig ist. Daher kann der Benutzer auswählen, ob er dies tun möchte oder nicht. % Co_de% überprüft jedoch die Signatur, auch wenn sie nicht von einem vertrauenswürdigen Herausgeber stammt - vermutlich überprüft dies nur, ob das Zertifikat gültig ist.

Wie kann ich überprüfen, ob die Signatur in einer Datei von einem gültigen und vertrauenswürdigen Zertifikat ohne Benutzeroberfläche stammt?

    
Chris John 27.03.2009, 10:06
quelle

3 Antworten

2

Erstens ist StrongNameSignatureVerificationEx für die Überprüfung der Assembly-Signatur und nicht für die Überprüfung der Authenticode-Signatur. Das ist also für den Kontext der ursprünglichen Posterfrage nicht relevant.

Bei der ersten Frage können Sie mithilfe des folgenden Codes manuell überprüfen, ob das Unterzeichnerzertifikat korrekt an ein vertrauenswürdiges Stammverzeichnis ohne GUI gekoppelt ist:

%Vor%

Die Idee besteht darin, das Zertifikat des Unterzeichners abzurufen und CAPICom mitzuteilen, dass es eine korrekte Vertrauenskette hat.

Ich hoffe, das wird helfen. Prost,

Mounir IDRASSI, IDRIX Ссылка

    
Mounir IDRASSI 25.04.2011 17:58
quelle
0

Was Sie wahrscheinlich tun müssten, ist exposed durch die mscoree.dll StrongNameSignatureVerificationEx Funktion mit P / Invoke:

%Vor%     
Karim Agha 13.04.2011 03:27
quelle
0

Sie können WinVerifyTrust wie hier hier verwenden. Es funktioniert wunderbar unter Windows XP / Vista / 2008/7. Wenn Sie auch die Sperrliste überprüfen möchten

%Vor%     
SlavaGu 05.05.2011 06:27
quelle