Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
de:dfnpki:faq:codesigning [2018/06/01 14:37] – angelegt Heike Ausserfeldde:dfnpki:faq:codesigning [2018/06/01 14:56] Heike Ausserfeld
Zeile 21: Zeile 21:
 Code-Signing-Zertifikate können folgendermaßen über die CA Ihrer Einrichtung bezogen werden: Code-Signing-Zertifikate können folgendermaßen über die CA Ihrer Einrichtung bezogen werden:
  
-  * Beantragen Sie das Code-Signing Zertifikat mit Ihrem Webbrowser über den Antragsweg „Nutzerzertifikat”. +  * Beantragen Sie das Code-Signing Zertifikat mit Ihrem Webbrowser über den Antragsweg „Nutzerzertifikat”. Wählen Sie als Namen im Zertifikat //„PN: <Vorname Nachname> - CodeSigning”//, und verwenden Sie gegebenenfalls eine rollenbasierte E-Mail-Adresse. Wir empfehlen, das Zertifikat nicht veröffentlichen zu lassen. Merken Sie sich die von Ihnen vergebene (Sperr-)PIN sehr gut, denn Sie benötigen diese zum späteren Import des ausgestellten Zertifikats in Ihren Webbrowser.
-Wählen Sie als Namen im Zertifikat //„PN: <Vorname Nachname> - CodeSigning”//, und verwenden Sie gegebenenfalls eine rollenbasierte E-Mail-Adresse. Wir empfehlen, das Zertifikat nicht veröffentlichen zu lassen. Merken Sie sich die von Ihnen vergebene (Sperr-)PIN sehr gut, denn Sie benötigen diese zum späteren Import des ausgestellten Zertifikats in Ihren Webbrowser.+
   * Duch die Beantragung wird in Ihrem Webbrowser ein privater Schlüssel erzeugt.   * Duch die Beantragung wird in Ihrem Webbrowser ein privater Schlüssel erzeugt.
   * Teilen Sie Ihrem Teilnehmerservice bei Abgabe des unterschriebenen Papier-Antrages mit, dass Sie ein Code-Signing Zertifikat benötigen, damit der Teilnehmerservice das korrekte Zertifikatsprofil setzen kann.   * Teilen Sie Ihrem Teilnehmerservice bei Abgabe des unterschriebenen Papier-Antrages mit, dass Sie ein Code-Signing Zertifikat benötigen, damit der Teilnehmerservice das korrekte Zertifikatsprofil setzen kann.
Zeile 34: Zeile 33:
 Bevor Sie eine PKCS#12-Datei zum Signieren verwenden können, müssen Sie den Parameter „<Alias>” in Erfahrung bringen. Hierzu verwenden Sie den folgenden Befehl Bevor Sie eine PKCS#12-Datei zum Signieren verwenden können, müssen Sie den Parameter „<Alias>” in Erfahrung bringen. Hierzu verwenden Sie den folgenden Befehl
  
-  +  keytool -list -keystore <PKCS#12-Datei> -storetype pkcs12
- +
-keytool -list -keystore <PKCS#12-Datei> -storetype pkcs12 +
- +
- +
  
 Sie erhalten die folgende Ausgabe, in der Sie vor dem Zertifikat-Fingerprint den Alias finden: Sie erhalten die folgende Ausgabe, in der Sie vor dem Zertifikat-Fingerprint den Alias finden:
  
-  +<code>Keystore-Typ: PKCS12
- +
-Keystore-Typ: PKCS12+
 Keystore-Provider: SunJSSE Keystore-Provider: SunJSSE
  
Zeile 50: Zeile 43:
  
 <Alias>, 20.02.2015, PrivateKeyEntry, <Alias>, 20.02.2015, PrivateKeyEntry,
-Zertifikat-Fingerprint (SHA1): 48:B5:50:C5:18:48:9E:29:59:30:B2:1C:7A:A0:15:7E:CF:85:46:93 +Zertifikat-Fingerprint (SHA1):\\  
- +48:B5:50:C5:18:48:9E:29:59:30:B2:1C:7A:A0:15:7E:CF:85:46:93</code>
- +
  
 Das Signieren erfolgt mit folgendem Aufruf: Das Signieren erfolgt mit folgendem Aufruf:
  
-  +<code>jarsigner -tsa zeitstempel.dfn.de -keystore <PKCS#12-Datei> -storetype pkcs12 <Zu signierendes JAR> '<Alias>'</code>
- +
-jarsigner -tsa zeitstempel.dfn.de -keystore <PKCS#12-Datei> -storetype pkcs12 <Zu signierendes JAR> '<Alias>' +
- +
- +
  
 Optional kann, entgegen teilweise anzutreffender Dokumentation, ein Proxy für den Zeitstempelserver angegeben werden. Die zusätzlichen Parameter hierfür sind: Optional kann, entgegen teilweise anzutreffender Dokumentation, ein Proxy für den Zeitstempelserver angegeben werden. Die zusätzlichen Parameter hierfür sind:
  
-  +<code>-J-Dhttp.proxyHost=<ProxyHost> -J-Dhttp.proxyPort=<ProxyPort></code>
- +
--J-Dhttp.proxyHost=<ProxyHost> -J-Dhttp.proxyPort=<ProxyPort> +
- +
- +
  
 Online-Resourcen zum Thema finden sich unter folgenden Links: Online-Resourcen zum Thema finden sich unter folgenden Links:
  
-http://www.oracle.com/technetwork/java/javase/tech/java-code-signing-1915323.html +http://www.oracle.com/technetwork/java/javase/tech/java-code-signing-1915323.html\\
 http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/manifest.html#A1148525 http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/manifest.html#A1148525
-5. Was ist beim Code-Signing in Microsoft Windows zu beachten?+ 
 +===5. Was ist beim Code-Signing in Microsoft Windows zu beachten?===
  
 Die beiden Wurzel-CA-Zertifikate der alten DFN-PKI Hierarchie "Deutsche Telekom Root CA 2" und der neuen DFN-PKI Hierarchie "T-TeleSec GlobalRoot Class 2" sind im Windows-Zertifikatsspeicher nicht für den Zertifikats­zweck "Codesignatur" freigeschaltet. Die beiden Wurzel-CA-Zertifikate der alten DFN-PKI Hierarchie "Deutsche Telekom Root CA 2" und der neuen DFN-PKI Hierarchie "T-TeleSec GlobalRoot Class 2" sind im Windows-Zertifikatsspeicher nicht für den Zertifikats­zweck "Codesignatur" freigeschaltet.
Zeile 88: Zeile 72:
  
 Vorsicht mit automatischen kritischen Prozessen, die diese signierten Programme/Skripte/Macros benutzen und ggf. nicht mehr laufen, falls sich der Zertifikatszweck (unbemerkt) zurückgesetzt hat. Vorsicht mit automatischen kritischen Prozessen, die diese signierten Programme/Skripte/Macros benutzen und ggf. nicht mehr laufen, falls sich der Zertifikatszweck (unbemerkt) zurückgesetzt hat.
-6. Was ist beim Code-Signing von Android Apps für Google Play zu beachten?+ 
 +===6. Was ist beim Code-Signing von Android Apps für Google Play zu beachten?===
  
 Obwohl es technisch nicht vollkommen ausgeschlossen ist, die Zertifikate der DFN-PKI „Global” für Code-Signing unter Android zu verwenden, empfehlen wir dies nicht. Obwohl es technisch nicht vollkommen ausgeschlossen ist, die Zertifikate der DFN-PKI „Global” für Code-Signing unter Android zu verwenden, empfehlen wir dies nicht.
Zeile 94: Zeile 79:
 Zum Signieren von Android Apps für Google Play werden selbst-signierte Zertifikate mit einer sehr langen Laufzeit verwendet. Diese selbst-signierten Zertifikate werden üblicherweise direkt von den Android Entwicklertools erzeugt. Zum Signieren von Android Apps für Google Play werden selbst-signierte Zertifikate mit einer sehr langen Laufzeit verwendet. Diese selbst-signierten Zertifikate werden üblicherweise direkt von den Android Entwicklertools erzeugt.
  
-Das Zertifikat hat bei Android keine Sicherheitsfunktion bzgl. Identifizierung. Das Signieren und die Verwendung von Zertifikaten dient ausschließlich dazu, Updates sicher zu einer Ursprungs-App zurück zu verfolgen, und nicht, um den Entwickler zu identifizieren. Die Nutzung von Zertifikaten aus einer PKI bringt daher keine Vorteile. Die Verwendung von selbst-signierten Zertifikaten ist, wenn auch ungewohnt, sicherheitstechnisch angemessen.+Das Zertifikat hat bei Android keine Sicherheitsfunktion bzgl. Identifizierung. Das Signieren und die Verwendung von Zertifikaten dient ausschließlich dazu, Updates sicher zu einer Ursprungs-App zurück zu verfolgen, und **nicht**, um den Entwickler zu identifizieren. Die Nutzung von Zertifikaten aus einer PKI bringt daher keine Vorteile. Die Verwendung von selbst-signierten Zertifikaten ist, wenn auch ungewohnt, sicherheitstechnisch angemessen.
  
 Wie man sich ein selbst-signiertes Zertifikat mit Android Studio erzeugt, ist auf der folgenden Seite beschrieben: Wie man sich ein selbst-signiertes Zertifikat mit Android Studio erzeugt, ist auf der folgenden Seite beschrieben: