機械翻訳について

1 Oracle Jipherとは

Oracle Jipherは、連邦情報処理標準(FIPS) 140検証済OpenSSL暗号化モジュールをパッケージ化するJava暗号化サービス・プロバイダ(CSP)です。 これにより、FIPS規制環境でのJavaアプリケーションのデプロイが可能になります。 Jipherは、その暗号化サービスをJava開発者がJava暗号化アーキテクチャ(JCA)を使用して使用できるようにします。

Jipher 10.35では、次のランタイムがサポートされています:

  • Oracle JDK 17
  • GraalVM for JDK 17
  • Oracle JDK 21
  • GraalVM for JDK 21

Jipher 10.35は、次のプラットフォームをサポートしています:

  • Oracle Linux 9および8 (x86-64およびaarch64)
  • Red Hat Linux 9および8 (x86-64およびaarch64)

TLSの場合、JipherはJDK JSSEプロバイダ(特に、TLSv1.2およびTLSv1.3のSunJSSEプロバイダ)をサポートしています。

Jipher (JipherJCEとも呼ばれる)は、Java Native Interface (JNI)を使用してOpenSSL FIPSモジュールの埋込みコピーへのコールを行うことで、FIPS 140暗号化サービスを提供します。 基本的に、Java暗号化APIコールをOpenSSL APIコールにマップし、このコールをOpenSSL FIPSモジュールにコールします。 詳細は、OpenSSLドキュメントのFIPS-140を参照してください。

Jipherは、JARファイルとして配布されます。 このJARファイルには、サポートされているプラットフォームごとに、OpenSSL FIPSモジュールの2つのコピーが埋め込まれています:

  • 認定された暗号化およびセキュリティ・テスト・ラボラ・トリ(CSTL)によってテストされ、暗号化モジュール検証プログラム(CMVP)によって検証され、FIPS 140検証証明書を発行した、ソース・コードから構築されたOpenSSL FIPSモジュールのバージョン
  • 追加のセキュリティ・パッチが適用された、FIPS 140準拠のベースライン・ソース・コードから構築されたOpenSSL FIPSモジュールのバージョン。デフォルトで使用されます

ノート:

デフォルトでは、Jipherは、追加のセキュリティ・パッチとともにOpenSSL FIPSモジュールを使用して、コンプライアンスよりもセキュリティの優先順位を付けます。 ただし、連邦情報セキュリティ近代化法(FISMA)に準拠して動作保証されたOpenSSL FIPSモジュールが使用されるように、Jipherを構成できます。 「システム・プロパティを介したJipherの構成」を参照してください。

Java暗号化アーキテクチャ(JCA)、エンジン・クラスおよびプロバイダ

JCAは、デジタル・シグネチャ・アルゴリズム、メッセージ・ダイジェスト・アルゴリズム、キー変換サービスなどの暗号化サービスを使用するためのフレームワークです。

JCAは、これらの暗号化サービスの機能を提供するクラスを定義します。 これらのクラスは、「エンジン・クラス」と呼ばれます。 エンジン・クラスは、特定のアルゴリズムまたはプロバイダに関係なく、特定のタイプの暗号化サービスへのインタフェースを提供します。

JCAには、暗号化アルゴリズムをサポートする「暗号エンジン・クラス」と、非暗号化アルゴリズムをサポートする「非暗号化エンジン・クラス」の両方が含まれています。

暗号化アルゴリズムをサポートする暗号化エンジン・クラスは、次のいずれかを提供します:

非暗号化アルゴリズムをサポートする非暗号化エンジン・クラスは、次のいずれかを提供します:

  • 暗号化データをカプセル化し、上位の抽象レイヤーで使用できるキーストアや証明書などのオブジェクト。これらのエンジン・クラスには、KeyStoreCertificateFactoryCertPathBuilderCertPathValidatorおよびCertStoreが含まれます
  • TLSなどのプロトコル、および暗号化操作を使用するその他の上位レベルの機能、および暗号化データをカプセル化するオブジェクト。これらのエンジン・クラスには、SSLContextKeyManagerFactoryおよびTrustManagerFactoryが含まれます

「プロバイダ」という用語と互換的に使用されるCSPは、1つ以上の暗号化サービスを実装するパッケージまたはパッケージのセットです。 JCAを使用するには、アプリケーションがMessageDigestなどの特定のタイプのオブジェクト、およびSHA-256アルゴリズムなどの特定のアルゴリズムまたはサービスをリクエストし、インストールされたプロバイダの1つから実装を取得します。 たとえば、次の文は、インストールされているプロバイダからのSHA-256メッセージ・ダイジェストを要求します。

md = MessageDigest.getInstance("SHA-256");

または、プログラムが特定のプロバイダからオブジェクトをリクエストすることもできます。 たとえば、次の文はJipherからSHA-256メッセージ・ダイジェストをリクエストします:

md = MessageDigest.getInstance("SHA-256", "JipherJCE");

詳細は、「Java Platform, Standard Editionセキュリティ開発者ガイド」「Java暗号化アーキテクチャ(JCA)リファレンス・ガイド」を参照してください。

FIPS 140

米国連邦情報処理基準(FIPS)は、National Institute of Standards and Technology(NIST)によって公表された一連の公的に発表された標準です。 FIPS 140標準は、暗号化モジュールのセキュリティ要件を詳細に説明しています。 認定されたCryptographic and Security Testing Laboratories (CSTL)は、暗号モジュールがFIPS 140のセキュリティ要件を満たしていることをテストします。 これらのセキュリティ要件を満たすモジュールには、暗号化モジュール検証プログラム(CMVP)証明書が発行されます。

連邦情報セキュリティ近代化法(FISMA)を遵守しなければならない組織には、政府契約を結んでいる州機関や民間企業が含まれます。 FISMAでは、CMVP証明書を持つ暗号化モジュールによって提供されるFIPS 140承認または許可された暗号化の使用が義務付けられています。

テストのためにJipherをCSTLに送信する必要はなく、CMVP証明書を取得する必要もありません。

Jipherアーティファクト

Jipherは、jipher-10.35.tar.gzという名前の.tar.gzファイルにパッケージ化されます。 これには、jipher-jce-10.35-se.jarという名前のJipher JARファイルが含まれます。

このJARファイルには、次のものが含まれています:

  • Jipherプロバイダ・クラスの単一インスタンス
  • サポートされているプラットフォームごとに:
    • Jipherネイティブ・ライブラリ。JNIを介してOpenSSL機能にアクセスできます
    • 2つのOpenSSL FIPSモジュール:
      • CSTLによってテストされ、CMVPによって検証され、FIPS 140検証証明書を発行したソース・コードから構築されたOpenSSL FIPSモジュールのバージョン
      • 追加のセキュリティ・パッチが適用された、FIPS 140準拠のベースライン・ソース・コードから構築されたOpenSSL FIPSモジュールのバージョン。デフォルトで使用されます
    • OpenSSL構成ファイル

OpenSSLの他のインスタンスとの独立性および共存

Jipherは、jipher-jce-10.35-se.jar JARファイルに埋め込まれたOpenSSLネイティブ・コード・ライブラリを明示的にロードします。 したがって、Jipherは、オペレーティング・システム・ディストリビューションの一部であるインスタンスを含め、システムに存在するOpenSSLの他のインスタンスとは無関係です。 埋込みライブラリは、OpenSSLライブラリからシンボルをエクスポートしないため、Jipherを使用するプロセスにはシンボルの衝突がなく、OpenSSLの別のインスタンスもロードされます。