キーストアの種類: どれを使うべきか? 質問する

キーストアの種類: どれを使うべきか? 質問する

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

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

ベストアンサー1

リンクされている標準名リストに記載されているもの以外にも、いくつかの種類があります。暗号化プロバイダのドキュメント最も一般的なのは、JKS(デフォルト) とPKCS12(PKCS#12 ファイルの場合、拡張子が であることが多く.p12、場合によっては.pfx) です。

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

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

Java 7では、PKCS12主にキーストアしかし、トラストストアキーストアとトラストストアの違い) は、秘密鍵なしでは証明書エントリを保存できないためです。対照的に、 ではJKS各エントリが秘密鍵エントリである必要がないため、証明書のみを含むエントリを持つことができます。これは、信頼する証明書のリストを保存する信頼ストア (ただし、それらの証明書の秘密鍵は持っていない) に便利です。

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

他にも、あまり頻繁に使用されないキーストア タイプがいくつかあります (コンテキストによって異なります)。これには次のものが含まれます。

  • PKCS11、PKCS#11 ライブラリ用で、通常はハードウェア暗号化トークンにアクセスするためのものですが、Sun プロバイダー実装ではこれを通じて NSS ストア (Mozilla 製) もサポートされます。
  • BKSBouncyCastle プロバイダー (Android でよく使用される) を使用します。
  • Windows-MYWindows-ROOTWindows 証明書ストアに直接アクセスする場合は、/ を使用します。
  • KeychainStoreOSX キーチェーンを直接使用したい場合。

おすすめ記事