Code, der eine ausführbare Datei zweimal signiert

Kurze frage

Wie kann ich Informationen zu mehreren Codesignaturzertifikaten von einer ausführbaren Datei (.EXE / .DLL) abrufen?

Erwartete Antwort

Die endgültig akzeptierte Antwort sollte einen Weg vorschlagen, um alle Zertifikate in C # zu erhalten. Konzept / Pseudocode ist in Ordnung, ich erwarte nicht, dass Sie die vollständige Quelle schreiben.

Eine Zwischenantwort, die ein Tool vorschlägt, finden Sie untermeine Frage zu Security.StackExchange.

Lange Frage

Ich recherchiere, ob wir mehrere Codesignaturzertifikate für ein Plugin (.DLL) verwenden könnten, um zu überprüfen, ob es offiziell getestet wurde oder nicht. Dies ist das Verfahren:

Die Plugin-DLL wird wie jede andere Anwendung vom Hersteller signiertDie Plugin-DLL wird in ein Testlabor geladen und einer Reihe von Tests unterzogenDie Plugin-DLL wird vom Testlabor erneut signiert, damit die Anwendung, die die DLL verwendet, feststellen kann, ob sie ein getestetes Plugin verwendet oder nicht

Es scheint möglich zu sein, eine DLL ein zweites Mal mit zu signieren

 signtool /v /f <pfx> /as <dll>

Hinweise darauf, dass dies funktioniert haben könnte:

Die Datei wird größerDas Tool druckt eine Erfolgsmeldung

Es gibt jedoch einige Probleme mit der zweiten Signatur:

Obwohl Windows Explorer "Signaturliste" anzeigt, wird nur ein Zertifikat angezeigtdas C #X509Certificate.CreateFromSignedFile() Methode kann nur ein Zertifikat zurückgeben

Im Moment versuche ich meinen Code auf einer EXE-Datei anstatt einer DLL-Datei, aber das sollte keine Rolle spielen. Die EXE-Datei ist bereits mit einem vertrauenswürdigen Stammzertifikat und einem Zeitstempel signiert. Die zweite Signatur wird mit erstelltmein eigenes Zertifikat nach diesen Schritten Derzeit ohne Zeitstempel.

Dinge, die ich getan habe, bevor ich die Frage gestellt habe:

Suchen Sie im Stackoverflow nach vorhandenen AntwortenSuchen Sie bei Google nach Tools

Die einzige verwandte Frage, die ich bisher gefunden habe, istWie kann man mit einem Zeitstempel richtig dual signieren aber es hat keine Antwort.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage