Was sind die Vorzüge von vs JKS PKCS12 für die code-Signierung?
Beim Kauf eines code-signing-Zertifikat, was sind die Vorzüge, beginnend mit einer PKCS12-versus JKS-Schein? Einige Anbieter Anweisungen zu geben, beginnend mit JKS oder PKCS12-Zertifikat signing request. Wir möchten maximale Flexibilität bei der Nutzung einer erworbenen cert, vor allem angesichts der Kosten. Zum Beispiel können wir die Unterzeichnung mehr als nur Java-code (BSP.: iPhone oder Android code signing). Was technische Belange sollten wir berücksichtigen bei der Auswahl der beiden Ansätze?
InformationsquelleAutor der Frage Jason Thrasher | 2010-10-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie in Java dann Java Key Store ist eine ziemlich Natürliche Ort für die Aufbewahrung von privaten keys.Java Anwendungen in der Regel erwarten, um die Schlüssel Sie benötigen vom JKS, und es ist leicht zugänglich für Ihre eigene Java-apps. JKS nicht zugänglich ist (ohne Sprung durch ein paar Reifen) von außerhalb Java, aber.
PKCS#12 (aka PFX-Dateien), auf der anderen Seite sind eine Sprach-Neutrale Art und Weise zu speichern, verschlüsselte private Schlüssel und Zertifikate, und hat schon lange genug, dass es unterstützt fast überall. Beachten Sie jedoch, dass das format der Datei ist schrecklich over-komplexen und über-Allgemeinen-haben Sie einen Blick auf Peter Gutmann "PFX - Wie Nicht zum Design ein Krypto-Protokoll/Standard" (http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html) für einen light-hearted Blick auf die Probleme.
Beachten Sie, dass die Verwendung des einen oder des anderen von diesen Speicher-Formate ist wirklich ein Thema darüber, wie Ihre Anwendung wird speichern Sie die verschlüsselten privaten Schlüssel lokal. Der Verkäufer, der verkauft Sie Ihr Zertifikat wird nie sehen, den privaten Schlüssel, so dass er kümmert sich nicht, was format, das Sie verwenden. Sie schicken ihn (den Verkäufer/CA) eine PKCS#10-Zertifikatsanforderung (enthält den öffentlichen Schlüssel und signiert mit dem privaten Schlüssel, NICHT aber die den privaten Schlüssel enthält) und er schickt Sie wieder ein Zertifikat (welches Sie speichern können, in der JKS oder im PKCS#12-Datei oder beides, oder überall sonst, dass Ihr Lust und Laune).
Technisch, weder format ist ideal, da Sie sowohl den Schutz als auch den privaten Schlüssel durch verschlüsseln mit einem Schlüssel von einem Passwort abgeleiteten, dies nicht machen, entweder das eine besser als das andere, obwohl. Sicherheit (aber nicht Komfort) besser, wenn Sie mit einer smartcard oder einem anderen hardware-key-Speicher-Lösung.
Der wichtigste Faktor für Ihre Entscheidung sollte sein, wie Sie planen, um den privaten Schlüssel nutzen-das heißt: welche Anwendungen benötigen, um den privaten Schlüssel nutzen und in welchem format(en) der key store haben Sie bereits handhaben. PKCS#12 ist die flexiblere option ... aber wenn Sie beabsichtigen, verwenden Sie die Taste nur mit code, den Sie schreiben, selbst (Interoperabilität nicht erforderlich), dann könnten Sie auch prüfen, die Verwendung von PKCS#8-oder PKCS#15-Containern.
Kann ich nicht empfehlen, das schreiben Ihrer eigenen code zur Verarbeitung von PKCS#12 (ich habe es getan, nicht aus Spaß) - verwenden Sie eine bewährte third-party Bibliothek (wie z.B. OpenSSL).
InformationsquelleAutor der Antwort dajames
In den Fall, Sie haben JKS-Schlüsselspeicher Sie können zu konvertieren, um PKCS12-unter den unten angegebenen Befehle
wo my_java_keystore.jks ist der java-key-store, verfügt über zwei Tasten, mit alias
certforsigning und
certforencryption
- und Sie können auch konvertieren Sie die Schlüssel von PKCS12, JKS mithilfe von Keytool
InformationsquelleAutor der Antwort Reddymails