Software zum digitalen Signieren - selbstsignierendes Zertifikat

1590
Thalia

Ich möchte mit dem Signieren einer ausführbaren Software experimentieren. Ich habe Angst, dass mir etwas entgeht.

Ich werde an einen Punkt gelangen, an dem ich ein Zertifikat von einer Zertifizierungsstelle erwerben werde. Bevor ich jedoch wissen möchte, was ich mache, habe ich einen Test gemacht:

Ich habe ein selbstsigniertes Zertifikat erstellt:

makecert -r -ss myPrivateCert -sk c:\test -n "CN=My Company Inc." testCert.cer 

dann unterschrieb eine ausführbare Datei:

signtool sign /v /s myPrivateCert /n "My Company Inc." /t http://timestamp.verisign.com/scripts/timstamp.dll c:\folder\my_installer.exe 

Für beide Befehle hatte ich Erfolg.

Schritt 3: "Installieren Sie das Testzertifikat": http://msdn.microsoft.com/de-de/library/bb756995

Erfolg.

(Hinweis: In diesem Ordner habe c:\testich Zertifikate aus der von Microsoft vorgeschlagenen Gegenzertifikatsliste abgelegt. VeriSign Class 3 Public Primary Certification Authority - G5.cerIch vermute nur, dass ich das tun sollte.)

ich renne certmgr c:\folder\my_installer.exe

und ich bekam eine Liste von 3 Zertifikaten, die ich hinzugefügt hatte, mit Betreff, Emittent, Seriennummer ... (von My Company Inc. und Verisign), also ist anscheinend alles gut.

Wenn ich das Installationsprogramm (oder die ausführbare Datei) doppelt anklicke, erhalte ich die UAC-Meldung über einen unbekannten Herausgeber ...

Was muss ich sonst noch tun, damit das Kästchen verschwindet oder "My Company Inc." für den Produzenten? Und das ist nur für die lokale Maschine, die alles von Hand erledigt ...

Ich gehe davon aus, dass mein Client eine VirtualBox-Umgebung ist ... also? Der nächste Schritt: das Installationsprogramm in eine VirtualBox verschieben und ausführen?

Aber wie erzähle ich dem Kunden den Schlüssel oder das Zertifikat oder was auch immer? Kopiere ich die CER-Datei zusammen mit dem Exe? Muss ich es an einen besonderen Ort stellen? Kopiere ich andere Dateien? Muss ich mmc noch einmal laufen lassen? Müssen Benutzer so etwas tun? Weil es aus Anwendersicht äußerst kompliziert erscheint ... Das ist sehr verwirrend ...

Ich gehe davon aus, dass, wenn ich beispielsweise ein echtes Zertifikat von Verisign kaufe, es sich über das Web authentifizieren würde und ich nichts anderes tun müsste (außer den beiden obigen Befehlen, minus -r)?

Ich habe im Web viele Anweisungen dazu gefunden, aber jeder ließ mich so verwirrt wie zu Beginn - vielleicht hatten sie Annahmen von Vorwissen ...

1

1 Antwort auf die Frage

2
Horn OK Please

Es "authentifiziert sich nicht über das Web" (außer der Überprüfung der Zertifikatsperrliste (Certificate Revocation List, CRL)). Die Stammzertifizierungsstellen sind fest mit dem Betriebssystem verbunden und werden entweder von Windows Update oder von der Installationsdiskette des Betriebssystems installiert . Mit anderen Worten handelt es sich um statische Daten auf der Festplatte, die nicht (leicht) modifiziert werden können.

Sie bekommen die nervige Box, um zu gehen, entweder:

  • Vertrauen Sie Ihrer CA-Signatur (normalerweise eine schlechte Idee, aber es funktioniert). oder
  • Lassen Sie es von einer öffentlich vertrauenswürdigen offiziellen Stammzertifizierungsstelle oder einem ihrer Zwischenhändler signieren.

Sie haben Verisign zitiert. Gut. Sie sind einer von mehreren möglichen Anbietern, um Ihnen ein Code-Signaturzertifikat zu geben. Die Box wird weiterhin angezeigt, da AFAIK, Windows so programmiert ist, dass die Warnung für alle selbstsignierten Zertifikate automatisch angezeigt wird. Wenn Sie versuchen, eine CSR basierend auf Ihrer eigenen erstellten Stammzertifizierungsstelle zu erstellen, könnten Sie die Box verschwinden lassen, indem Sie Ihrer Stammzertifizierungsstelle vertrauen. Dies würde funktionieren. Aber dann müssten Sie Ihre Kunden dazu bringen, Ihrer Stammzertifizierungsstelle zu vertrauen, was in den meisten Situationen den Zweck verfehlt. Daher ist das öffentliche Vertrauensnetz der einfachste Weg. Der Anbieter gibt Ihnen sogar sogar explizite Anweisungen zur Verwendung seines Dienstes und zur Signatur Ihres Codes.

Was muss ich also ändern, wenn ich ein Verisign-Zertifikat bekomme? Ich hätte gerne etwas, was ich testen kann ... Thalia vor 12 Jahren 0
Das hängt von Ihrem Verkäufer ab. `makecert` dient zum Erstellen eines selbstsignierten Zertifikats. Die Stammzertifizierungsstelle, die Ihnen Ihr Codesignierungszertifikat erteilt, bestimmt den Prozess. Besuchen Sie beispielsweise http://www.symantec.com/verisign/code-signing/microsoft-authenticode Horn OK Please vor 12 Jahren 0
Für eine überprüfbare lokale Lösung können Sie `OpenSSL` verwenden, um die entsprechende Stammzertifizierungsstelle zu generieren, ihr zu vertrauen, eine Zertifikatsignierungsanforderung zu erstellen, dann ein Zertifikat zu generieren, dann * diesem * zu vertrauen und dann` signtool` ähnlich wie jetzt verwenden . Ihre Verwendung von "signtool" ändert sich nur geringfügig, aber Ihr Prozess vor dem Ausführen von "signtool" wird sich drastisch von Anbieter zu Anbieter ändern und hängt davon ab, ob Sie eine selbstsignierte, selbst generierte Stammzertifizierungsstelle oder ein offizielles öffentliches Stammverzeichnis verwenden CA. Horn OK Please vor 12 Jahren 1
Thank you. I found this for Verisign... It just wasn't something that I could use: https://knowledge.verisign.com/support/code-signing-support/index?page=content&id=AR190, since I don't know how to get pfx or pvk or spc files. I suppose these files are provided by the CA then... Thalia vor 12 Jahren 0
Verisign hat einen "Assistenten", der Sie um Informationen zu Ihrer Person / Ihrem Unternehmen bittet. dann (normalerweise) überprüft es irgendwie; bittet dann um Zahlung; dann führt es Sie durch den Prozess. Wenn Sie nicht weiterkommen, können Sie immer Unterstützung von ihnen erhalten, wenn Sie sie für die Erstellung eines Zertifikats bezahlen ... Horn OK Please vor 12 Jahren 0
Übrigens, Wenn Sie diese Antwort hilfreich gefunden haben, können Sie sie jederzeit bestätigen und / oder akzeptieren. Horn OK Please vor 12 Jahren 0
Sicherlich, immer ! Thalia vor 12 Jahren 0