キーストア・プロバイダー・フレームワークについて

DataStax Enterpriseデータベースは、Java Cryptography APIを使用してSSLプロバイダーを実装します。

cassandra.yaml

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
tarボール・インストール installation_location/resources/cassandra/conf/cassandra.yaml

DataStax Enterprise(DSE)データベースは、Java Cryptography APIを使用してSSLプロバイダーを実装します。Java Cryptography API(JCA)は、要求されたアルゴリズムから実際の暗号化実装を抽象化するプラグ接続可能なアーキテクチャーです。さまざまな実装のスワップ・アウトをサポートするために、DSEデータベースはCipher.getInstance("AES")を使用します。

JCAアーキテクチャー・プロバイダーを使用すると、複数の実装がさまざまなサービス・プロバイダー・インターフェイス(SPI)を使用して登録できます。データベースにはPKCS12プロバイダーが付属しており、PKCS11などの追加プロバイダーのインストールがサポートされています。

DSEデータベースのサーバー・キーストア・タイプ・パラメーター( cassandra.yaml 内)は使用するSPIを決定します。

たとえば、クラスcom.sun.net.ssl.internal.ssl.ProviderはPKCS12 SPIをプロバイダーに登録するsun.security.ssl.SunJSSEを実装します。sun.security.pkcs12.PKCS12KeyStoreクラスは、KeyStoreのJCA抽象化であるjava.security.KeyStoreSPIを拡張します。次にその実装を示します。
put("KeyStore.PKCS12","sun.security.pkcs12.PKCS12KeyStore");

PKCS11とPKCS12の違い

PKCS 11PKCS 12は、秘密鍵と証明書情報を格納するためのRSA公開鍵暗号標準の一部です。
  • PKCS12 - ローカル・ファイル
  • PKCS11 - 外部デバイス

sun.security.pkcs11.SunPKCS11sun.security.ssl.SunJSSEの両方のプロバイダーはjava.security.KeyStoreSPIの実装を登録します。PKCS11はsun.security.pkcs11.P11KeyStoreを登録します。PKCS11は、秘密鍵証明書ストレージ以上のものを提供します。

PKCS11の詳細

PKCS11標準には、さまざまなハードウェア・プロバイダーによって実装される一連のCヘッダー・ファイルが付属しています。たとえば、ハードウェアの共通語はCであるため、Java はJCAラッパーにJNIを提供する必要があります。基本的にsun.security.pkcs11.SunPKCS11は、PKCS11 Cヘッダー・ファイルを実装するネイティブ・モジュール(.so、.dll)を呼び出すJNIラッパーです。
ヒント:PKCS11標準」を参照してください。