Welche Vorteile hat es beim Kauf eines Codesignaturzertifikats, mit einem PKCS12-gegen-JKS-Zertifikat zu beginnen? Einige vendors geben Anweisungen zum Starten mit einer JKS- oder PKCS12-Zertifikatsignierungsanforderung. Wir möchten eine maximale Flexibilität bei der Verwendung eines gekauften Zertifikats haben, insbesondere angesichts der Kosten. Zum Beispiel signieren wir möglicherweise mehr als nur Java-Code (z. B. iPhone oder Android-Codesignatur). Welche technischen Überlegungen sollten wir bei der Wahl eines der beiden Ansätze berücksichtigen?Was sind die Vorteile von JKS vs PKCS12 für Code-Signaturen?
Antwort
Wenn Sie in Java arbeiten, ist der Java Key Store ein recht natürlicher Speicherort für private Schlüssel.Java-Anwendungen erwarten normalerweise, dass sie die von JKS benötigten Schlüssel erhalten und von Ihren eigenen Java-Anwendungen aus einfach darauf zugreifen können. JKS ist jedoch von außerhalb Java nicht zugänglich (ohne durch ein paar Reifen zu springen). Die PKCS # 12 (auch bekannt als PFX) Dateien sind dagegen eine sprachneutrale Methode zum Speichern von verschlüsselten privaten Schlüsseln und Zertifikaten und sind schon lange genug vorhanden, sodass sie praktisch überall unterstützt werden. Beachten Sie jedoch, dass das Dateiformat fürchterlich zu komplex und zu allgemein ist - werfen Sie einen Blick auf Peter Gutmanns "PFX - Wie man kein Crypto-Protokoll/Standard entwickelt" (http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html) für eine heitere Sicht auf die Probleme .
Beachten Sie, dass die Verwendung des einen oder anderen dieser Speicherformate ein Problem darstellt, wenn Ihre Anwendung lokal verschlüsselte private Schlüssel speichert. Der Anbieter, der Ihnen Ihr Zertifikat verkauft, wird den privaten Schlüssel nie sehen, so dass es ihm egal ist, welches Format Sie verwenden. Sie senden ihm (dem Anbieter/CA) eine PKCS # 10-Zertifikatanforderung (die den öffentlichen Schlüssel enthält und mit dem privaten Schlüssel signiert ist, aber NICHT den privaten Schlüssel enthält) und sendet Ihnen ein Zertifikat zurück (das Sie in JKS oder in die PKCS # 12-Datei oder beides, oder wo auch immer Sie Lust haben).
Technisch gesehen ist keines der Formate ideal, da beide den privaten Schlüssel schützen, indem sie ihn mit einem aus einem Passwort abgeleiteten Schlüssel verschlüsseln; das macht aber keinen besser als den anderen. Sicherheit (wenn auch nicht Bequemlichkeit) ist besser, wenn Sie eine Smartcard oder eine andere Hardware-Schlüsselspeicherlösung verwenden können.
Der Hauptfaktor, der Ihre Wahl bestimmt, sollte sein, wie Sie den privaten Schlüssel verwenden möchten - das heißt: welche Anwendungen müssen den privaten Schlüssel verwenden und welche Formate des Schlüsselspeichers werden bereits behandelt? PKCS # 12 ist die flexiblere Option ... Wenn Sie jedoch beabsichtigen, den Schlüssel nur mit selbst geschriebenem Code zu verwenden (Interoperabilität nicht erforderlich), sollten Sie auch PKCS # 8- oder PKCS # 15-Container verwenden.
Ich kann nicht empfehlen, Ihren eigenen Code zu schreiben, um PKCS # 12 zu verarbeiten (ich habe es gemacht, nicht lustig) - verwenden Sie eine bewährte Drittanbieter-Bibliothek (wie OpenSSL).
Falls Sie JKS Schlüsselspeicher Sie PKCS12 umwandeln kann mit Hilfe der folgenden Befehle
keytool -importkeystore -srckeypass secret -destkeypass meow123 -srcstorepass secretstore -deststorepass secretstore -srcalias certforsigning -destalias certforsigning -srcalias certforencryption -destalias certforencryption -srckeystore my_java_keystore.jks -destkeystore PFX_keystore.pfx -deststoretype PKCS12
wo my_java_keystore.jks der Laden java Schlüssel ist, die zwei Schlüssel mit alias certforsigning hat und certforencryption
und Sie können auch die Schlüssel von PKCS12 in JKS konvertieren mit Keytool
- 1. ReactNative VS NativeScript: Was sind Vorteile?
- 2. Prototyp vs. Nicht, was sind Vorteile?
- 3. Was sind die Vorteile von Asynchronous HTTP
- 4. Was sind die Vorteile von Subversion?
- 5. Was sind die Vorteile von "Staircase" Branching?
- 6. Was sind die Vorteile von Java?
- 7. Was sind die Vorteile von VistaDB
- 8. Was sind die größten Vorteile von LLVM?
- 9. Was sind die Vorteile von Lazy Evaluation?
- 10. Was sind die Vorteile/Vorteile der Verwendung von Python 3?
- 11. Visual Studio 2005 vs 2008 - Was sind die Vorteile?
- 12. Was sind die Vorteile von Conduit-Resten?
- 13. Was sind die Vorteile von Ressourcendateien (.resx)?
- 14. Was sind die Vorteile von NSBinaryStoreType?
- 15. Was sind die Vorteile von Inline-Javascript?
- 16. Was sind die Vorteile von Auto-Mapper?
- 17. Was sind die Vorteile von Persistenz Ignoranz?
- 18. Was sind die Vorteile einer aktualisierten sitemap.xml?
- 19. Was sind die Vorteile einer Hypervisor-VM?
- 20. Was sind die Vorteile eines Fehlers?
- 21. Was sind die Vorteile der funktionalen Programmierung?
- 22. Was sind die Vorteile der Kotlin Programmiersprache?
- 23. Was sind die Vorteile verwenden Scrapyd? doc
- 24. Was sind die Vorteile der verschiedenen Endianess?
- 25. Was sind die Vorteile der Selbstverkapselung?
- 26. Sammlung, die von ObservableCollection erbt - Was sind die Vorteile?
- 27. Was sind die Vorteile von Cassini anstelle von IIS?
- 28. Was sind die Vorteile von QAbstractItemModel gegenüber QStandardItemModel?
- 29. Was sind die Vorteile der Verwendung von plpgsql in Postgresql
- 30. Was sind die Vorteile von Memory-Mapped-Dateien?
Ok, so ist das entscheidende Element, dass Sie darauf hinweisen, dass PKCS # 12 versucht und wahr ist. Das funktioniert, danke. –