Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:dfnpki:tcs:codesigning [2023/09/11 15:11] – angelegt Juergen Brauckmannde:dfnpki:tcs:codesigning [2024/02/01 16:33] (aktuell) Juergen Brauckmann
Zeile 1: Zeile 1:
 +=====Code Signing-Zertifikate=====
  
-====Code Signing-Zertifikate====+Prinzipiell stehen zwei verschiedene CodeSigning-Zertifikattypen zur Verfügung:
  
-Die über die Oberfläche beziehbaren CodeSigning-Zertifikate sind für die Signatur von Java JARs MS Office Macros verwendbar.+  * OV Code Signing für die Signatur von Java JARs und MS Office Macros
 +    * Beantragung per E-Mail-Einladung aus SCM heraus 
 +    * Voraussetzung: Sie müssen einen Yubikey 5 FIPS besitzen 
 +    * Manueller Prozess auf Seiten von Sectigo mit Verzögerungen von wenigen Stunden bis mehrere Tagen. Bitte Support-Ticket mit "Order Number" erstellen.
  
 +  * EV Code Signing für Signaturen, die in Microsoft SmartScreen per Default ein höheres Vertrauen besitzen
 +    * Kostenpflichtiger Prozess außerhalb von SCM
  
-===E-Mail-Einladung===+==== OV Code Signing ====
  
-Für die Erstellung von Code Signing-Zertifikaten ist eine gewisse Vorbereitung notwendig. Insbesondere muss in einem ''Enrollment Form'' ein ''Code Signing certificate enrollment form'' angelegt werden:+===Vorbereitung der E-Mail-Einladung=== 
 + 
 +Für die Erstellung von OV-Code Signing-Zertifikaten in SCM ist eine gewisse Vorbereitung notwendig. Insbesondere muss ein Account in einem ''Code Signing certificate enrollment form'' angelegt werden:
  
   - Im SCM unter ☰->Enrollment->Enrollment Forms   - Im SCM unter ☰->Enrollment->Enrollment Forms
Zeile 19: Zeile 27:
      - Einen sprechenden Namen für den Code Signing Web Form Account vergeben, der auf Ihre Einrichtung hindeutet.      - Einen sprechenden Namen für den Code Signing Web Form Account vergeben, der auf Ihre Einrichtung hindeutet.
      - Als "Organization" Ihre Einrichtung aus der Drop-Down-Liste auswählen (und ggf. auch ein Department setzen, wenn der Code Signing Web Form Account ausschließlich auf Department-Level eingerichtet werden soll).      - Als "Organization" Ihre Einrichtung aus der Drop-Down-Liste auswählen (und ggf. auch ein Department setzen, wenn der Code Signing Web Form Account ausschließlich auf Department-Level eingerichtet werden soll).
-     - Als Zertifikatprofile stehen ''Code Signing'' und ''GÉANT Code Signing Certificate'' sowie ''GÉANT OV Code Signing (Key Attestation) - 1 year'', ''GÉANT OV Code Signing (Key Attestation) - 2 years'' und ''GÉANT OV Code Signing (Key Attestation) - 3 years'' zur Auswahl. Das gewählte Zertifikatsprofil beeinflusst neben der Zertifikatlaufzeit insbesondere die Auslieferung bzw. Bereitstellung des Zertifikats und damit auch die Lieferzeit: +     - Als Zertifikatprofile stehen ''GÉANT OV Code Signing (Key Attestation) - 1 year'', ''GÉANT OV Code Signing (Key Attestation) - 2 years'' und ''GÉANT OV Code Signing (Key Attestation) - 3 years'' zur Auswahl. Das gewählte Zertifikatsprofil beeinflusst die Zertifikatlaufzeit.
-       - ''Code Signing'' und ''GÉANT Code Signing Certificate'': Diese beiden Zertifikatprofile unterscheiden sich in keinem Praxis-relevanten Aspekt. Im GÉANT-Profil wird als O=-Attribut der "Secondary Organization Name" verwendet (siehe ☰->Organizations-><Auswahl>->✎). Die Code Signing-Zertifikate sind für ein Jahr gültig. Sectigo erzeugt den Schlüssel und liefert diesen zusammen mit dem Zertifikat auf Hardware-Token per Versand aus. Für realistische Bearbeitungs- und Lieferzeiten aus Nordamerika haben wir aktuell keine Erfahrungswerte vorliegen. Die Kosten für Hardware-Token und Versand werden aktuell von GÉANT getragen. (Wir testen dieses Verfahren gerade aus.) +
-       - ''GÉANT OV Code Signing (**Key Attestation**) ...''-Familie: Diese Code Signing-Zertifikate sind je nach Profilauswahl ein bis drei Jahre gültig. Sectigo liefert das Zertifikat zum direkten Download aus. Für die Bearbeitungszeit haben wir aktuell keine Erfahrungswerte vorliegen. Diese Zertifikate können ausschließlich in Hardware-Token genutzt werden, die von Sectigo explizit für eine **Key Attestation** zugelassen sind, aktuell sind das Luna Network Attached HSM 7.x und YubiKey 5 FIPS Series. Für die Zertifikatbeantragung wird im Web-Zertifikatantragsformular neben einem Certificate Signing Request (CSR) im PKCS#10 PEM-Format eben die **Key Attestation** benötigt. Wie insbesondere die **Key Attestation** erstellt wird, ist im "Code Signing Guide for Partners" im Abschnitt 3.1 für Luna HSMs und im Abschnitt 3.2 für die YubiKeys dokumentiert, herunterladbar unten auf der Web-Seite [[https://sectigo.com/knowledge-base/detail/Changes-to-Sectigo-Code-Signing-Offerings/kA03l000000BoIs]]. Siehe auch unsere eigene Beschreibung im folgenden Kapitel.+
      - Gewünschtes Zertifikatprofil aus der Drop-Down-Liste auswählen.       - Gewünschtes Zertifikatprofil aus der Drop-Down-Liste auswählen. 
-     - Als "CSR Generation Method" den Wert "Sectigo Shipped FIPS certified USB Token/Key" (nur ''Code Signing'' und ''GÉANT Code Signing Certificate'') bzw. "Provided by user" (nur ''GÉANT OV Code Signing (**Key Attestation**) ...''-Familie) auswählen.+     - Als "CSR Generation Method" den Wert  "Provided by user" auswählen.
      - Mit "Save" abspeichern.      - Mit "Save" abspeichern.
  
Zeile 41: Zeile 47:
 Die eingegangenen Zertifikatanträge für Code Signing-Zertifikate bzw. die ausgestellten Code Signing-Zertifikate sind im SCM unterhalb von ☰->Certificates->Code Signing Certificates sichtbar und werden automatisch von Sectigo bearbeitet. Die eingegangenen Zertifikatanträge für Code Signing-Zertifikate bzw. die ausgestellten Code Signing-Zertifikate sind im SCM unterhalb von ☰->Certificates->Code Signing Certificates sichtbar und werden automatisch von Sectigo bearbeitet.
  
-===Erzeugen einer Key Attestation mit Yubikey FIPS===+===Vorgehen bei der Beantragung===
  
-Für die Beantragung von Code Signing Zertifikaten auf einem selbst beschafften Yubikey FIPS muss wie folgt vorgegangen werden:+Die Einladungs-E-Mail muss dann folgendermaßen bearbeitet werden:
  
 0. Bei der Beschaffung: Unbedingt die Variante Yubikey 5 **FIPS** wählen. Yubikeys ohne den Zusatz FIPS können die erforderliche Key Attestation nicht erzeugen. 0. Bei der Beschaffung: Unbedingt die Variante Yubikey 5 **FIPS** wählen. Yubikeys ohne den Zusatz FIPS können die erforderliche Key Attestation nicht erzeugen.
  
 1. Yubikey vorbereiten: 1. Yubikey vorbereiten:
-  * ggf PIV anschalten +  * PIN setzen. Achtung: Es gibt Werkzeuge, die das Setzen von PINs mit einer Länge von mehr als 8 Zeichen erlauben. Diese werden von der PKCS11-Library ykcs11 **nicht** unterstützt, dort funktionieren nur PINs mit 6-8 Zeichen.
-  * PIN setzen. Achtung: Es gibt Werkzeuge, die das Setzen von PINs mit einer Länge von mehr als 8 Zeichen erlauben. Diese werden von der PKCS11-Library ykcs11 *nicht* unterstützt, dort funktionieren nur PINs mit 6-8 Zeichen.+
   * Default PIV Management Key vom Default 010203040506070801020304050607080102030405060708 auf was "richtiges" umsetzen   * Default PIV Management Key vom Default 010203040506070801020304050607080102030405060708 auf was "richtiges" umsetzen
   * PUK setzen.   * PUK setzen.
Zeile 55: Zeile 60:
 2. Schlüssel erzeugen und den öffentlichen Teil in eine Datei ausgeben: 2. Schlüssel erzeugen und den öffentlichen Teil in eine Datei ausgeben:
 <code> <code>
-yubico-piv-tool -a generate --slot=9c -k -A ECCP384 -o PublicKeyFile.key+yubico-piv-tool -a generate --slot=9c --pin-policy=once -k -A ECCP384 -o PublicKeyFile.key
 </code> </code>
 +
 +''pin-policy=once'' ermöglicht die Erstellung von mehreren Signaturen hintereinander mit nur einer PIN-Eingabe. Diese Option ist insbesondere für Windows ''signtool.exe'' notwendig, wenn MSI signiert werden.
  
 3. CSR erzeugen und in eine Datei ausgeben: 3. CSR erzeugen und in eine Datei ausgeben:
Zeile 64: Zeile 71:
  
 (-S <subject_dn> mit Slash am Ende, z.B. -S "/CN=Jane Doe/") (-S <subject_dn> mit Slash am Ende, z.B. -S "/CN=Jane Doe/")
 +
 +Sollte ''yubico-piv-tool'' mit der Fehlermeldung ''Failed signing request.'' scheitern, kann alternativ das Werkzeug ''ykman'' verwendet werden:
 +<code>
 +ykman piv certificates request -s "CN=Jane Doe" 9c PublicKeyFile.key request.csr 
 +</code>
  
 4. Key Attestation erzeugen: 4. Key Attestation erzeugen:
Zeile 69: Zeile 81:
 yubico-piv-tool --action=attest --slot=9c > Slot9cAttestation.pem yubico-piv-tool --action=attest --slot=9c > Slot9cAttestation.pem
 </code> </code>
-(funktioniert nur für Onboard erzeugte Keys, nicht für importierte) +(funktioniert nur für nach dieser Anleitung erzeugte Keys, nicht für anderweitig importierte) 
  
 5. Intermediate aus dem Yubikey auslesen 5. Intermediate aus dem Yubikey auslesen
Zeile 90: Zeile 102:
  
 7. Antrag stellen: 7. Antrag stellen:
-  * Die Datei request.csr aus Schritt 3 als CSR in das Formular eingeben+  * Die Datei request.csr aus Schritt 3 als CSR in das per E-Mail-Einladung übermittelte Formular eingeben
   * Den Inhalt der Datei attestation_bundle.b64 aus Schritt 6 in das Feld "Key Attestation" eingeben   * Den Inhalt der Datei attestation_bundle.b64 aus Schritt 6 in das Feld "Key Attestation" eingeben
  
-8. Sectigo stellt das Zertifikat aus+8. Sectigo bearbeitet den Antrag. Mit Stand 2024-01 handelt es sich um einen manuellen Prozess auf Seiten von Sectigo mit Verzögerungen von wenigen Stunden bis mehreren Tagen. Bitte erstellen Sie gegebenenfalls ein Support-Ticket nach [[de:dfnpki:tcsfaq#support|Anleitung]]. Das Ticket muss die "Order Number" enthalten, die zu dem gestellten Antrag in SCM sichtbar ist.  
 + 
 +9. Sectigo stellt das Zertifikat aus und verschickt eine E-Mail mit Links auf Zertifikatdateien
  
-9. Aufspielen der von Sectigo gelieferten Zertifikatdatei aus dem Link "as Certificate only, PEM encoded:" auf den Yubikey, z.B. mit dem YubiKey Manager+10. Aufspielen der von Sectigo gelieferten Zertifikatdatei aus dem Link "as Certificate only, PEM encoded:" auf den Yubikey, z.B. mit dem YubiKey Manager
  
 ===Code Signing mit Yubikey FIPS=== ===Code Signing mit Yubikey FIPS===
Zeile 117: Zeile 131:
  
  
-=== EV Code Signing ===+==== EV Code Signing ====
  
 EV Code Signing-Zertifikate, denen beispielsweise in Microsoft SmartScreen sofort vertraut wird, müssen über einen separaten Antragsweg bestellt und zusätzlich bezahlt werden. EV Code Signing-Zertifikate, denen beispielsweise in Microsoft SmartScreen sofort vertraut wird, müssen über einen separaten Antragsweg bestellt und zusätzlich bezahlt werden.
  • Zuletzt geändert: vor 9 Monaten