web-dev-qa-db-ja.com

キーストアの種類:使用するものはどれですか?

JREJava.securityファイルを見ると、デフォルトで使用するキーストアタイプがJKSに設定されていることがわかります。 ここ 、使用できるキーストアタイプのリストがあります。

推奨されるキーストアタイプはありますか?異なるキーストアタイプの長所と短所は何ですか?

103

リンクした標準の名前リストにリストされているものよりも多くのタイプがあります。詳細については、 暗号化プロバイダーのドキュメント を参照してください。最も一般的なものは、確かにJKS(デフォルト)およびPKCS12(PKCS#12ファイルの場合、多くの場合、拡張子が.p12である場合がありますが、.pfx)です。

JKSは、Javaの世界にいる場合に最も一般的です。 PKCS#12はJava固有ではないため、ブラウザからバックアップされた証明書またはOpenSSLベースのツールから提供された証明書(秘密鍵付き)を使用すると特に便利です(keytoolは_の前にキーストアを変換してその秘密鍵をインポートできませんでしたJava6。したがって、他のツールを使用する必要がありました。

すでにPKCS#12ファイルがある場合、多くの場合、PKCS12型を直接使用する方が簡単です。フォーマットを変換することは可能ですが、キーストアのタイプを直接選択できる場合はほとんど必要ありません。

Java 7では、PKCS12は主にkeystoreとして役立ちましたが、truststoreキーストアとトラストストアの違い を参照)、秘密鍵なしでは証明書エントリを保存できなかったため。対照的に、JKSは各エントリがプライベートキーエントリである必要はないため、証明書のみを含むエントリを作成できます。これは、信頼する証明書のリストを格納するトラストストアに役立ちます(ただし、それらの秘密鍵)。

これはJava 8で変更されたため、PKCS12ストアにも証明書のみのエントリを含めることができます。 (これらの変更とさらなる計画の詳細は JEP 229:デフォルトでPKCS12キーストアを作成 にあります。)

他にもいくつかのキーストアタイプがありますが、コンテキストに応じて使用頻度が低くなる可能性があります。

  • PKCS11、PKCS#11ライブラリの場合、通常はハードウェア暗号化トークンにアクセスするためのものですが、Sunプロバイダーの実装は、これを通じて(Mozillaからの)NSSストアもサポートします。
  • BKS、BouncyCastleプロバイダーを使用(一般的にAndroidに使用)。
  • Windows-MY/Windows-ROOT、Windows証明書ストアに直接アクセスする場合。
  • KeychainStore、OSXキーチェーンを直接使用する場合。
126
Bruno

Javaのさまざまなタイプのキーストアと、さまざまなタイプのキーストアの違いを紹介する投稿があります。 http://www.pixelstech.net/article/1408345768-Different-types-of-keystore-in-Java----概要

以下は、投稿からのさまざまなキーストアの説明です。

JKS、Javaキーストア。このファイルは、Sun.security.provider.JavaKeyStoreにあります。このキーストアはJava固有であり、通常jksの拡張子を持ちます。このタイプのキーストアには秘密鍵と証明書を含めることができますが、秘密鍵の保存には使用できません。 Java固有のキーストアであるため、他のプログラミング言語では使用できません。

JCEKS、JCEキーストア。このファイルは、com.Sun.crypto.provider.JceKeyStoreにあります。このキーストアの拡張子はjceksです。 JCEKSキーストアに配置できるエントリは、秘密鍵、秘密鍵、および証明書です。

PKCS12、これはJavaおよび他の言語で使用できる標準のキーストアタイプです。このキーストアの実装は、Sun.security.pkcs12.PKCS12KeyStoreにあります。通常、拡張子はp12またはpfxです。このタイプには秘密鍵、秘密鍵、証明書を保存できます。

PKCS11、これはハードウェアキーストアタイプです。 Luna、nCipherなどのハードウェアキーストアデバイスと接続するためのJavaライブラリのインターフェイスを提供します。この実装はSun.security.pkcs11.P11KeyStoreにあります。キーストアをロードするときに、特定の構成で特定のプロバイダーを作成する必要はありません。このキーストアは、秘密鍵、秘密鍵、および暗号化を保存できます。キーストアをロードすると、エントリがキーストアから取得され、ソフトウェアエントリに変換されます。

21
PixelsTech