it-swarm.com.de

Code Signing Zertifikat für Open Source Projekte?

Ich möchte eine meiner Anwendungen als Open Source veröffentlichen und die von mir erstellten Binärdateien mit meinem eigenen Zertifikat digital signieren. (Natürlich kann jeder den Code einfach herunterladen und selbst mit seinem eigenen Zertifikat erstellen.) Ich möchte dies tun, damit jeder überprüfen kann, ob dieser Build von mir und nicht von jemand anderem erstellt wurde. Ich möchte auch eine sichere Website mit einem gültigen SSL-Zertifikat erstellen, damit Besucher auf sichere Weise ihre eigenen Konten erstellen und zu diesem Projekt beitragen können.

Ich könnte ein selbstsigniertes Zertifikat erstellen, aber diese Option gefällt mir nicht wirklich. Oder ich könnte Verisign ein paar Goldstücke bezahlen, um die Zertifikate zu erhalten, die nur ein paar Jahre gültig wären. Ich mag diese Option auch nicht, da meine Schatzkammer für mich wertvoll ist.

Gibt es also noch andere Möglichkeiten? Zum Beispiel ein Anbieter, der Open-Source-Projekte unterstützt, indem er Zertifikate zu einem reduzierten Preis anbietet? Es muss nicht kostenlos sein, nur viel günstiger als Verisign ...

(Das Projekt wird in C # mit Visual Studio 2008 erstellt. Außerdem ein zusätzliches Projekt in ASP.NET, das SSL benötigt.)

98
Wim ten Brink

Sie können versuchen CAcert . Damit werden Sie von anderen CAcert-Anwendern zertifiziert. CAcert verfügt über ein Reputationssystem. Wenn Sie also häufig genug zertifiziert sind, wird Ihr Zertifikat als gültig gewertet.

Möglicherweise müssen Sie CAcert als vertrauenswürdige Instanz auf dem Zielsystem hinzufügen. Das Selbstsignieren Ihrer ausführbaren Datei sollte eine ausreichende Option sein, Sie müssen jedoch das öffentliche Zertifikat bereitstellen. Die Verwendung einer bekannten Stelle kann helfen, die Datei zu überprüfen, aber ich denke, dass es in diesem Fall ein Over-Kill ist. Verwenden Sie eine Prüfsumme oder einen sha2-Hash der Datei in Kombination mit Ihrem selbstsignierten Zertifikat. Sie können eine Linux-Box als Zertifizierungsstelle einrichten, diese muss jedoch Ihrem öffentlichen Zertifikat vertrauen.

7
Mnementh

Für Open Source-Entwickler stellt Certum Codesignaturzertifikate bereit kostenlos*

Geben Sie einfach "Open Source Developer" in das Feld "Firma" ein, wenn Sie das Zertifikat anfordern. Das ist es.

Der Link zu Open Source Code-Signaturzertifikaten lautet hier

[*] Ab 2016 ist das Open Source Code Signing-Zertifikat nicht mehr kostenlos verfügbar. Es ist jetzt eine kostenpflichtige Dienstleistung.

36
Stefan

Update: Nicht mehr kostenlos, jetzt 105,78 € (Stand: 19. Februar 2017). Die Kosten sind geringer, wenn Sie bereits die Krypto-Hardware besitzen. Nachstehend finden Sie die vorherigen Anweisungen.


Führen Sie die folgenden Schritte aus, um ein kostenloses Codesignaturzertifikat von Certum/Unizeto für sich als Einzelperson zu erhalten. Verwenden Sie Internet Explorer oder Safari, da diese den Schlüsselaustauschmechanismus unterstützen.

  1. Navigieren Sie zu Test ID- und OpenSource Code Signing-Zertifikate und senden Sie das Formular ab.

  2. Das Zertifikat wird unter Zertifikate aktivieren angezeigt. Klicken Sie auf Aktivieren .

  3. Gehen Sie den Aktivierungsassistenten durch. Für Organisation geben Sie Open Source Developer ein. Geben Sie für Organisationseinheit Software Publishing ein.

  4. Sie werden per E-Mail nach einem Identitätsnachweis gefragt. Antworten Sie mit einem Link zum Open Source-Projekt und einem Bild Ihres Führerscheins (oder eines anderen akzeptierten Dokuments). Um Ihre Privatsphäre zu schützen, sollten Sie die Antwort verschlüsseln.* Die Art der Verschlüsselung variiert je nach E-Mail-Client. Stellen Sie für Outlook sicher, dass Sie über ein E-Mail-Zertifikat verfügen ( frei verfügbar ) und Verschlüsselung aktivieren .

  5. Innerhalb eines Tages sollten Sie eine E-Mail mit einem Link zum Abholen Ihres Zertifikats erhalten. Sie müssen den Link von demselben Computer und Browser aus öffnen, den Sie zum Starten des Vorgangs verwendet haben.

* Obwohl in der Bestätigungs-E-Mail von Certum angegeben ist, dass der Proof an [email protected] Gesendet werden soll, akzeptiert Certum auch den an die Antwortadresse [email protected] Gesendeten Proof, an die Sie verschlüsselte E-Mails senden können.

28
Edward Brey

pdate 2016: StartCom wurde unter fragwürdigen Umständen von WoSign übernommen . Ich würde StartCom/WoSign nicht vertrauen. Betrachten Sie den folgenden Text als historischen Hinweis darauf, wie gut StartCom warbis Anfang 2015 war.

Ich habe ein Codesignaturzertifikat von StartCom (StartSSL). Ich bin sehr zufrieden mit ihrem Service: Ihr Kundenservice ist sehr schnell und ihre Preise sind sehr vernünftig.

Erhalten des Codesignaturzertifikats

Um ein Codesignaturzertifikat zu erhalten, ist eine Identitätsüberprüfung der Klasse 2 erforderlich. StartCom führt Sie durch den gesamten Prozess (mit hervorragenden Rücklaufquoten, nach meiner Erfahrung in der Regel innerhalb von zehn Minuten).
Wenn Sie die Details sofort richtig anzeigen möchten, lesen Sie diesen Blog-Beitrag . Ich wurde innerhalb einer Stunde validiert (gegen eine Gebühr von 59,90 USD über Paypal).

Generieren Sie nach der Validierung einen neuen privaten Schlüssel und eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR). Beachten Sie, dass alle Felder mit Ausnahme des öffentlichen Schlüssels ignoriert werden. Alle Informationen im Zertifikat stammen aus den Informationen, die Sie bei der Identitätsüberprüfung angegeben haben, nicht aus Ihrer CSR.

# Create key and CSR (key must be at least 2048 bit, per Policy Statement)
openssl req -nodes -newkey rsa:2048 -keyout codesigning.key -out codesigning.csr
# Add pass phrase to key (optional, but highly recommended)
openssl rsa -in codesigning.key -des3 -out codesigning2.key && \
    mv codesigning2.key codesigning.key

Senden Sie dies über das Webinterface und Sie erhalten schnell ein neues Zertifikat, das zwei Jahre gültig ist (ich habe meins innerhalb einer Stunde erhalten).

Problem: Lebenslange Signatur-OID

Für StartCom-Zertifikate der Klasse 2 ist die lebenslange Signatur OID festgelegt. Aufgrund dieses Bits wird die Signatur des signierten Codes nach Ablauf des Zertifikats ungültig, auch wenn der Zeitstempel verwendet wird.

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 ist etwas, was wir für EV-Level-Zertifikate tun können (viel geringeres Volumen, andere Zahlungsbedingungen), aber den Preis für Klasse 2 nur für diesen Vorteil erhöhen würden (wobei Codesignierung nur ein Teil der Optionen in diesem Level ist).

Timestamping ist daher nur nach Extended Validation (EV) verfügbar, das nur für rechtmäßig niedergelassene Organisationen verfügbar ist und 199,90 USD kostet. Also, einzelne Entwickler können Timestamping nicht mit einem Codesignaturzertifikat von StartCom verwenden.

Diese Einschränkung betrachtete ich lange als großes Problem. Vor kurzem 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; allerdings ohne bestätigte Unterschrift).

Hinweis: Versehen Sie Ihren Code immer mit einem Zeitstempel, auch wenn das Kennzeichen für die lebenslange Signatur gesetzt ist! Mit einem Zeitstempel versehene Signaturen 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 bezahlen Sie nur für die Validierung. Die Identitätsüberprüfung ist 350 Tage gültig. In diesem Zeitraum können Sie kostenlos Codesignaturzertifikate anfordern. Sie können nur ein gültiges Codesignaturzertifikat haben und es kann zum Signieren von Code (MSI, DLL, XPI, ...) verwendet werden, jedoch nicht von Treibercode (hierfür ist EV erforderlich).

Um ein Attribut im Zertifikat zu ändern, muss das vorherige Zertifikat gesperrt und ein neues angefordert werden. Der Widerruf eines Zertifikats kostet 29,90 $. Als ich meine E-Mail-Adresse einen Tag nach Erhalt eines Codesignaturzertifikats änderte, wurde mein Zertifikat ausnahmsweise gebührenfrei widerrufen (ich war positiv überrascht)!

Ablauf

Wenn Ihr Zertifikat (nach fast zwei Jahren) abläuft, erhalten Sie eine Benachrichtigung (zwei Wochen im Voraus). Wenn Ihre verifizierte Identität noch gültig ist (daran erinnern, dass die Gültigkeitsdauer nach 350 Tagen abläuft; dann müssen Sie Ihre Identität für 59,90 USD 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 erhalten habe, habe ich mein Firefox-Add-On signiert. Es wurde jedoch weiterhin "(Autor nicht überprüft)" 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.

23
Rob W

Sie können auch KSoftware auschecken. Sie verkaufen Comodo Codesignaturzertifikate für US $ 99/Jahr weiter.

8
Joe Kuemerle

Sie können sich das Produkt StartSSL ansehen.

8
Frozenskys

Sie müssen ein Codesignaturzertifikat kaufen. Die billigsten sind von Comodo. Ich habe Quellcode und Binärdateien veröffentlicht, wie Sie es geplant haben, und die Binärdateien signiert. Siehe Datums- und Zeitstapelwechsler für Fotos und andere Dateien.

1