Ich habe ein Codesignaturzertifikat von StartCom (StartSSL). Ich bin sehr zufrieden mit ihrem Service: Der Kundenservice ist sehr schnell und die Preise sind sehr vernünftig.
Abrufen des Codesignaturzertifikats
Um ein Codesignaturzertifikat zu erhalten, ist eine Identitätsprüfung der Klasse 2 erforderlich . StartCom führt Sie durch den gesamten Prozess (mit hervorragenden Antwortraten, meiner Erfahrung nach normalerweise innerhalb von zehn Minuten).
Wenn Sie die Details sofort richtig machen möchten, lesen Sie diesen Blog-Beitrag . Ich wurde innerhalb einer Stunde validiert (gegen eine Gebühr von 59,90 $ über Paypal).
Generieren Sie nach der Validierung einen neuen privaten Schlüssel und eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR). Beachten Sie, dass alle Felder außer dem öffentlichen Schlüssel ignoriert werden . Alle Informationen im Zertifikat werden aus den Informationen abgeleitet, die Sie während der Identitätsprüfung angeben, nicht aus Ihrer CSR .
Senden Sie dies über die Weboberfläche und Sie erhalten schnell ein neues Zertifikat, das zwei Jahre gültig ist (ich habe mein Zertifikat innerhalb einer Stunde erhalten).
Problem: Lifetime Signing OID
Für die Klasse-2-Zertifikate von StartCom ist die Lifetime Signing OID festgelegt. Aufgrund dieses Bits wird die Signatur des signierten Codes nach Ablauf des Zertifikats ungültig, selbst wenn es mit einem Zeitstempel versehen ist.
Als ich Eddy Nigg (COO / CTO von StartCom) nach dem Grund dieser OID fragte, antwortete er:
Wir müssen die CRLs bis zu 20 Jahre nach Ablauf der Zertifikate in Betrieb halten. Dies können wir für Zertifikate auf EV-Ebene tun (viel geringeres Volumen, unterschiedliche Zahlungsbedingungen), würde jedoch den Preis für Klasse 2 nur für diesen Vorteil erhöhen (wobei die Codesignatur nur ein Teil der Optionen in diesem Level ist).
Die Zeitstempelung ist daher nur nach der erweiterten Validierung (Extended Validation, EV) verfügbar , die nur rechtmäßig etablierten Organisationen zur Verfügung steht und 199,90 USD kostet. So können einzelne Entwickler nicht timestamping mit einem Codesignaturzertifikat von StartCom verwenden .
Ich habe diese Einschränkung lange Zeit als großes Problem angesehen. Kürzlich habe ich meine Meinung geändert: Es kommt nur einmal alle zwei Jahre vor, sicherheitsbewusste Benutzer sind möglicherweise eher geneigt, die neueste Version meiner Software zu erhalten, und alte Versionen der Software funktionieren weiterhin (für diejenigen, die sie verwenden möchten; jedoch ohne überprüfte Unterschrift).
Hinweis: Stempeln Sie Ihren Code immer mit einem Zeitstempel, auch wenn das Flag für die lebenslange Signatur gesetzt ist ! Signaturen mit Zeitstempel bleiben bis zum Ablaufdatum des Zertifikats gültig, auch wenn das Zertifikat widerrufen wurde (natürlich nur, wenn die Signatur vor dem Widerruf des Zertifikats erstellt wurde).
Praktische Verwendung des Zertifikats
Bei StartCom zahlen Sie nur für die Validierung. Die Identitätsprüfung ist 350 Tage lang gültig. Während dieses Zeitraums können Sie kostenlos Codesignaturzertifikate anfordern. Sie können nur ein gültiges Codesignaturzertifikat haben und es kann zum Signieren eines beliebigen Codes (MSI, DLL, XPI, ...) verwendet werden, jedoch nicht des Treibercodes (dies erfordert EV).
Um ein Attribut im Zertifikat zu ändern, muss das vorherige Zertifikat widerrufen und ein neues angefordert werden. Der Widerruf eines Zertifikats kostet 29,90 $. Als ich meine E-Mail einen Tag nach Erhalt eines Codesignaturzertifikats änderte, wurde mein Zertifikat ausnahmsweise ohne Gebühr widerrufen (ich war positiv überrascht)!
Ablauf
Wenn Ihr Zertifikat abläuft (nach fast zwei Jahren), erhalten Sie eine Benachrichtigung (zwei Wochen im Voraus). Wenn Ihre verifizierte Identität noch gültig ist (denken Sie daran, dass die Validierungen nach 350 Tagen ablaufen; dann müssen Sie Ihre Identität für 59,90 $ erneut bestätigen), können Sie ein neues Zertifikat anfordern, ohne das vorherige zu widerrufen. Vergessen Sie nicht, eine neue Version Ihrer Software zu veröffentlichen, die mit diesem neuen Codesignaturzertifikat signiert ist, da in den vorherigen Versionen bald "(nicht verifiziert)" oder ähnliches angezeigt wird.
OCSP
Als ich mein Zertifikat erhielt, habe ich mein Firefox-Add-On signiert. Es wurde jedoch weiterhin "(Autor nicht verifiziert)" angezeigt, obwohl meine XPI-Datei korrekt signiert war. Es stellte sich heraus, dass Firefox nicht den aktuellen Zertifikatstatus erhielt, als es die OCSP-Server von StartCom nach dem Sperrstatus meines neuen Zertifikats abfragte. möglicherweise relevantes Forenthema
Nach ungefähr einem halben Tag war mein Zertifikat den OCSP-Servern bekannt und mein Name wurde wie erwartet angezeigt. Lektion gelernt: Wenn Sie ein neues Zertifikat haben, warten Sie ungefähr einen Tag, bevor Sie Ihre Software mit der neuen Signatur veröffentlichen.