2016-05-27 11 views
2

Edit: diese Frage ist nicht nur über Cert oder Fingerabdruck lesen, auch um meine Annahme zu validieren. Wir müssen den Zugriff auf einige Ressourcen in unserem Programm (SDK) nur auf ausführbare Dateien beschränken, die von unserem Zertifikat signiert sind.lesen thumbprint einer ausführbaren process

Annahme: Überprüfung der Fingerabdruck der externen ausführbaren Dateien gegen unsere Certs könnte unseren Zweck lösen, weil niemand unser CERT mit dem gleichen Daumenabdruck spoof.

Gibt es eine Möglichkeit, den Fingerabdruck eines externen Exe-Fingerabdrucks in C# zu lesen? Ich finde APIs in msdn nicht, nach einem alternativen Weg suchend. Wenn ich mit meiner Annahme falsch liege, korrigiere mich bitte.

Vielen Dank im Voraus.

+0

Mögliches Duplikat von [Wie lese ich die digitalen Signaturinformationen von einer signierten .Net-Baugruppe?] (Http://stackoverflow.com/questions/10549836/how-do-i-read-the- digital-signature-information-from-signed-net-assembly) – Nasreddine

+0

Das Problem ist, dass, während Sie die Signatur der externen Anwendung überprüfen können, eine solche Überprüfung relativ leicht gepatcht werden kann. –

+0

Entschuldigung, könnten Sie bitte näher erläutern. Du meinst, externe App kann wie mit meinem Zertifikat signiert handeln? – rplusg

Antwort

2

Sie können den Konstruktor X509Certificate.CreateFromSignedFile verwenden, um das Signaturzertifikat von einer signierten Datei abzurufen. Weitere Informationen: https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate.createfromsignedfile(v=vs.110).aspx

+0

Danke für Eingaben, kann dies mit exe aus reinem C \ C++ erstellt werden? – rplusg

+1

Dies funktioniert für jede Datei, die Microsoft Authenticode-Signatur unterstützt. Es kann ein Skript (PS, VBS, JS), DLL, ausführbare Datei, MSI und so weiter sein. Welche Sprache im Inneren ist irrelevant. – Crypt32

+0

Danke nochmal, ich werde es jetzt schnell versuchen und deine Antwort annehmen. – rplusg