4 JDKプロバイダ・ドキュメント
このドキュメントには、JDKに含まれるプロバイダの技術的詳細が含まれています。読者がJava暗号化アーキテクチャとプロバイダ・アーキテクチャを詳しく理解していることが前提となります。
ノート:
Javaセキュリティ標準アルゴリズム名には、このドキュメントで使用されている標準名に関する詳細な情報が含まれています。JDKプロバイダの概要
Javaプラットフォームでは、暗号化、公開キーインフラストラクチャ、認証、安全な通信、アクセス制御など、主要なセキュリティ分野に渡る一連のAPIが定義されています。これらのAPIによって、開発者はアプリケーション・コードにセキュリティ・メカニズムを簡単に統合できます。
Java暗号化アーキテクチャ(JCA)およびそのプロバイダ・アーキテクチャは、Java Development Kit (JDK)のコア概念です。このアーキテクチャについて十分理解していることが前提となります。
注意: JDKでの暗号化実装は、歴史的な理由および提供するサービスの種類により、様々なプロバイダによって配布されています(Sun、SunJSSE、SunJCE、SunRsaSign)。汎用アプリケーションは、特定のプロバイダから暗号化サービスを要求しないようにする必要があります。つまり、
getInstance("...", "SunJCE"); // not recommended
と
getInstance("..."); // recommended
後者のようにしないと、アプリケーションは特定のプロバイダに結び付けられることになり、そのプロバイダはほかのJava実装で使用できない可能性があります。特定の要求されたプロバイダよりも優先順位が高い、使用可能な最適化されたプロバイダ(たとえば、PKCS11によるハードウェア・アクセラレータまたはMicrosoftのMSCAPIなどのネイティブOS実装)を利用できない場合もあります。
次の表では、モジュール、およびサポートされているJava暗号化サービス・プロバイダをリストします。
表4-1 モジュールおよびJava暗号化サービス・プロバイダ
モジュール | プロバイダ |
---|---|
java.base |
SUN、SunRsaSign、SunJSSE、SunJCE脚注1、Apple |
java.naming |
JdkLDAP |
java.security.jgss |
SunJGSS |
java.security.sasl |
SunSASL |
java.smartcardio |
SunPCSC |
java.xml.crypto |
XMLDSig |
jdk.crypto.cryptoki |
SunPKCS11脚注1 |
jdk.crypto.ec |
SunEC脚注1 |
jdk.crypto.mscapi |
SunMSCAPI脚注1 |
jdk.security.jgss |
JdkSASL |
脚注1 署名付きJARファイルとして前に説明した、JCE暗号プロバイダを示します(JCEプロバイダにはCipher/KeyAgreement/KeyGenerator/Mac/SecretKeyFactory
実装が含まれます)。
暗号化アルゴリズムの輸入制限
デフォルトでは、アプリケーションは、どの強度の暗号化アルゴリズムでも使用できます。ただし、一部の場所での輸入規制のため、それらのアルゴリズムの強度を制限する必要がある場合があります。JDKでは、ディレクトリ<java-home>/conf/security/policy
に、暗号化アルゴリズムの強度を決定する管轄ポリシー・ファイルのセットが2つ用意されています。管轄ポリシー・ファイル、およびそれらのアクティブ化の方法については、暗号化強度の構成を参照してください。
自分の場所のための正確な要件を決定する際は、輸出入管理コンサルタントまたは弁護士に相談してください。
制限付きの構成のために、次の表では、制限付きの一連の管轄ポリシー・ファイルで許可されている最大キー・サイズをリストします。
表4-2 暗号化アルゴリズムの最大キー・サイズ
アルゴリズム | 最大キー・サイズ |
---|---|
DES | 64 |
DESede | * |
RC2 | 128 |
RC4 | 128 |
RC5 | 128 |
RSA | * |
その他すべて | 128 |
暗号の変換
javax.crypto.Cipher.getInstance(String transformation)
ファクトリ・メソッドは、algorithm/mode/padding形式の変換を使用してCipher
オブジェクトを生成します。モード/パディングを省略すると、SunJCEプロバイダとSunPKCS11プロバイダは、多くの対称暗号でECBをデフォルト・モードとして、PKCS5Paddingをデフォルト・パディングとして使用します。
デフォルトを使用するのではなく、アルゴリズム、モードおよびパディングを完全に指定した変換を使用することをお薦めします。デフォルトは、プロバイダ固有であり、プロバイダによって異なる可能性があります。
ノート:
ECBモードは最も簡単に使用できるブロック暗号モードであり、デフォルトの暗号モードになっています。ECBは、単一のデータ・ブロックに対しては正常に機能し、パラレル化可能ですが、モードの特性により、通常は複数のデータ・ブロックの暗号化には使用しないでください。これにより、機密データが簡単かつ完全に開示される可能性があります。このモードは使用可能ですが、関連する暗号化リスクを理解している場合にのみ使用してください。SecureRandom実装
次の表に、利用可能なSecureRandom
実装のデフォルトの優先順位を示します。
表4-3 デフォルトのSecureRandom実装
OS | アルゴリズム名 | プロバイダ名 |
---|---|---|
Linux | 1. NativePRNG脚注2 | SUN |
2. DRBG | SUN | |
3. SHA1PRNG脚注2 | SUN | |
4. NativePRNGBlocking | SUN | |
5. NativePRNGNonBlocking | SUN | |
macOS | 1. NativePRNG脚注2 | SUN |
2. DRBG | SUN | |
3. SHA1PRNG脚注2 | SUN | |
4. NativePRNGBlocking | SUN | |
5. NativePRNGNonBlocking | SUN | |
Windows | 1. DRBG | SUN |
2. SHA1PRNG | SUN | |
3. Windows-PRNG脚注3 | SunMSCAPI |
脚注2 LinuxおよびmacOSでは、java.security
のエントロピー収集デバイスをfile:/dev/urandom
またはfile:/dev/random
に設定すると、SHA1PRNGよりNativePRNGが優先されます。それ以外の場合は、SHA1PRNGが優先されます。
脚注3 Windowsには現在NativePRNGはありません。同等の機能を利用するには、SunMSCAPIプロバイダを使用します。
SunPKCS11プロバイダ
暗号化トークン・インタフェース標準(PKCS#11)は、ハードウェア暗号化アクセラレータやスマート・カードなどの暗号化メカニズムに対するネイティブ・プログラミング・インタフェースを提供しています。SunPKCS11
プロバイダを適切に構成すると、アプリケーションは標準のJCA/JCE APIを使用してネイティブPKCS#11ライブラリにアクセスできるようになります。SunPKCS11
プロバイダ自体には暗号化機能は含まれていません。このプロバイダは、Java環境とネイティブPKCS11プロバイダ間のコンジットとして機能します。このプロバイダの詳細は、「PKCS#11リファレンス・ガイド」を参照してください。
SUNプロバイダ
アルゴリズム
SUN
プロバイダでは、次のアルゴリズムを使用できます。
表4-4 SUNプロバイダでのアルゴリズム
エンジン | アルゴリズム名 |
---|---|
AlgorithmParameterGenerator |
DSA |
AlgorithmParameters |
DSA |
CertificateFactory |
X.509 |
CertPathBuilder |
PKIX |
CertPathValidator |
PKIX |
CertStore |
Collection |
Configuration |
JavaLoginConfig |
KeyFactory |
DSA |
KeyPairGenerator |
DSA |
KeyStore |
PKCS12脚注4 JKS DKS CaseExactJKS |
MessageDigest |
MD2 MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512 SHA-512/224 SHA-512/256 SHA3-224 SHA3-256 SHA3-384 SHA3-512 |
Policy |
JavaPolicy |
SecureRandom |
DRBG (次のメカニズムとアルゴリズムがサポートされています。SHA-224、SHA-512/224、SHA-256、SHA-512/256、SHA-384およびSHA-512を使用するHash_DRBGおよびHMAC_DRBG。AES-128、AES-192およびAES-256を使用するCTR_DRBG (導出関数を使用する場合と使用しない場合がある)。各組合せでサポートされている予測耐性と再シード、およびセキュリティ強度は、112から、それがサポートする最大強度まで要求できます。) SHA1PRNG (初期シードは、現在、システム属性と NativePRNG ( NativePRNGBlocking ( NativePRNGNonBlocking ( |
Signature |
NONEwithDSA SHA1withDSA SHA224withDSA SHA256withDSA NONEwithDSAinP1363Format SHA1withDSAinP1363Format SHA224withDSAinP1363Format SHA256withDSAinP1363Format ノート: 署名の生成では、ダイジェスト・アルゴリズムのセキュリティ強度が署名に使用されたキーのセキュリティ強度より弱い場合(SHA1withDSA署名による(2048、256)ビットのDSAキーの使用など)は、操作が失敗し、次のエラー・メッセージが表示されます: 「SHA1ダイジェスト・アルゴリズムのセキュリティ強度が、このキー・サイズに対して十分ではありません。」 |
脚注4 PKCS12 KeyStore実装は、KeyBagタイプをサポートしていません。
SHAメッセージ・ダイジェストとDSA署名に関連付けられたOID
次の表に、SHAメッセージ・ダイジェストに関連付けられたOIDを示します。
表4-5 SHAメッセージ・ダイジェストに関連付けられたOID
SHAメッセージ・ダイジェスト | OID |
---|---|
SHA-224 | 2.16.840.1.101.3.4.2.4 |
SHA-256 | 2.16.840.1.101.3.4.2.1 |
SHA-384 | 2.16.840.1.101.3.4.2.2 |
SHA-512 | 2.16.840.1.101.3.4.2.3 |
SHA-512/224 | 2.16.840.1.101.3.4.2.5 |
SHA-512/256 | 2.16.840.1.101.3.4.2.6 |
SHA3-224 | 2.16.840.1.101.3.4.2.7 |
SHA3-256 | 2.16.840.1.101.3.4.2.8 |
SHA3-384 | 2.16.840.1.101.3.4.2.9 |
SHA3-512 | 2.16.840.1.101.3.4.2.10 |
次の表に、DSA署名に関連付けられたOIDを示します。
表4-6 DSA署名に関連付けられたOID
DSA署名 | OID |
---|---|
SHA1withDSA |
1.2.840.10040.4.3 1.3.14.3.2.13 1.3.14.3.2.27 |
SHA224withDSA | 2.16.840.1.101.3.4.3.1 |
SHA256withDSA | 2.16.840.1.101.3.4.3.2 |
キー・サイズの制限
SUN
プロバイダでは、次のデフォルト・キーサイズ(ビット単位)を使用し、次の制限を強制します。
表4-7 KeyPairGeneratorアルゴリズムのキー・サイズの制限
アルゴリズム名 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
DSA | 2048 | キー・サイズは、512から1024の範囲で64の倍数であるか、2048および3072である必要があります。 |
表4-8 AlgorithmParameterGeneratorアルゴリズムのキー・サイズの制限
アルゴリズム名 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
DSA | 2048 | キー・サイズは、512から1024の範囲で64の倍数であるか、2048および3072である必要があります。 |
CertificateFactory/CertPathBuilder/CertPathValidator/CertStore実装
CertificateFactory
、CertPathBuilder
、CertPathValidator
およびCertStore
のSUN
プロバイダ実装の詳細は、「Java PKIプログラマーズ・ガイド」の「付録B: SUNプロバイダでのCertPath実装」を参照してください。
SunRsaSignプロバイダ
アルゴリズム
SunRsaSign
プロバイダでは、次のアルゴリズムを使用できます。
表4-9 SunRsaSignプロバイダのエンジン・クラス・アルゴリズム名
エンジン | アルゴリズム名 |
---|---|
AlgorithmParameters |
RSASSA-PSS |
KeyFactory |
RSA RSASSA-PSS |
KeyPairGenerator |
RSA RSASSA-PSS |
Signature |
MD2withRSA MD5withRSA SHA1withRSA SHA224withRSA SHA256withRSA SHA384withRSA SHA512withRSA SHA512/224withRSA SHA512/256withRSA RSASSA-PSS SHA1withRSAandMGF1 SHA224withRSAandMGF1 SHA256withRSAandMGF1 SHA384withRSAandMGF1 SHA512withRSAandMGF1 SHA512/224withRSAandMGF1 SHA512/256withRSAandMGF1 |
キー・サイズの制限
SunRsaSign
プロバイダでは、次のデフォルト・キーサイズ(ビット単位)を使用し、次の制限を強制します。
表4-10 SunRsaSignプロバイダのキー・サイズの制限
アルゴリズム名前 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
RSAおよびRSASSA-PSS | 2048 | キー・サイズは、512から16384ビットの範囲内である必要があります。キーのサイズが3072を超えると、公開指数の長さは64ビットを超えることはできません。 |
SunJSSEプロバイダ
アルゴリズム
SunJSSE
プロバイダでは、次のアルゴリズムを使用できます。
表4-11 SunJSSEプロバイダでのアルゴリズム
エンジン | アルゴリズム名 |
---|---|
KeyManagerFactory |
PKIX: SunX509: ノート: SunX509ファクトリは、以前のリリースとの下位互換性のためにあるため、使用しなでください。 |
KeyStore |
PKCS12 ノート: SunJSSEプロバイダは、以前のリリースとの下位互換性のためにあるため、 |
SSLContext |
SSL SSLv3 TLS TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 DTLS DTLSv1.0 DTLSv1.2 |
TrustManagerFactory |
PKIX: SunX509: ノート: SunX509ファクトリは、以前のリリースとの下位互換性のためにあるため、使用しなでください。 |
SunJSSEプロバイダのプロトコルのパラメータ
SunJSSE
プロバイダは、次のプロトコル
・バージョンをサポートしています。サポートされている暗号化方式群とプロトコル・バージョンの組合せは、『Javaセキュリティ標準アルゴリズム名』の「JSSE暗号化方式群名」を参照してください。
表4-12 SunJSSEプロバイダのプロトコル・バージョン
プロトコル・バージョン | クライアントではデフォルトで有効 | サーバーではデフォルトで有効 |
---|---|---|
SSLv3 |
いいえ | いいえ |
TLSv1 | はい | はい |
TLSv1.1 | はい | はい |
TLSv1.2 | はい | はい |
TLSv1.3 | はい | はい |
SSLv2Hello | いいえ | いいえ |
DTLSv1.0 | はい | はい |
DTLSv1.2 | はい | はい |
ノート:
JDK 8u31以降、SSLv3プロトコル(Secure Socket Layer)はjdk.tls.disabledAlgorithms
セキュリティ・プロパティによって無効になっています。「無効化された制限付き暗号化アルゴリズム」と「RFC 7568: Deprecating Secure Sockets Layer Version 3.0」を参照してください。
SSLContext実装の有効なプロトコル・バージョンは、アルゴリズムやモード(クライアントまたはサーバー)によって、前の表のデフォルト値と異なることがあります。次の表には、デフォルトとは異なるSSLContext実装の有効なプロトコル・バージョンを示しています:
表4-13 クライアント・モードの特定のSSLContext実装に対して有効なプロトコル・バージョン
SSLContextアルゴリズム | SSL/TLS/DTLSプロトコル・バージョン | |||||||
---|---|---|---|---|---|---|---|---|
SSLv2Hello | SSLv3 | TLSv1 | TLSv1.1 | TLSv1.2 | TLSv1.3 | DTLSv1.0 | DTLSv1.2 | |
SSLv3 | いいえ | いいえ | はい | いいえ | いいえ | いいえ | なし | なし |
TLSv1 | いいえ | いいえ | はい | いいえ | いいえ | いいえ | なし | なし |
TLSv1.1 | いいえ | いいえ | はい | はい | いいえ | いいえ | なし | なし |
TLSv1.2 | いいえ | いいえ | はい | はい | はい | いいえ | なし | なし |
TLSv1.3 | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
デフォルト | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
TLS | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
SSL | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
DTLSv1.0 | なし | なし | なし | なし | なし | なし | はい | いいえ |
DTLSv1.2 | なし | なし | なし | なし | なし | なし | はい | はい |
DTLS | なし | なし | なし | なし | なし | なし | はい | はい |
表4-14 サーバー・モードの特定のSSLContext実装に対して有効なプロトコル・バージョン
SSLContextアルゴリズム | SSL/TLS/DTLSプロトコル・バージョン | |||||||
---|---|---|---|---|---|---|---|---|
SSLv2Hello | SSLv3 | TLSv1 | TLSv1.1 | TLSv1.2 | TLSv1.3 | DTLSv1.0 | DTLSv1.2 | |
SSLv3 | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
TLSv1 | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
TLSv1.1 | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
TLSv1.2 | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
TLSv1.3 | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
デフォルト | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
TLS | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
SSL | いいえ | いいえ | はい | はい | はい | はい | なし | なし |
DTLSv1.0 | なし | なし | なし | なし | なし | なし | はい | はい |
DTLSv1.2 | なし | なし | なし | なし | なし | なし | はい | はい |
DTLS | なし | なし | なし | なし | なし | なし | はい | はい |
SunJSSE暗号化方式群
次に、このJDKリリースで現在実装されているSunJSSE暗号化方式群を優先度順に示します。これらの暗号化方式群の一部はデフォルトで使用可能になっていません。各暗号化方式群でサポートされているプロトコルを確認するには、『Javaセキュリティ標準アルゴリズム名』の「JSSE暗号化方式群名」を参照してください。
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
- TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
- SSL_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
- TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
- SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
- SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
- TLS_EMPTY_RENEGOTIATION_INFO_SCSV
- TLS_DH_anon_WITH_AES_256_GCM_SHA384
- TLS_DH_anon_WITH_AES_128_GCM_SHA256
- TLS_DH_anon_WITH_AES_256_CBC_SHA256
- TLS_ECDH_anon_WITH_AES_256_CBC_SHA
- TLS_DH_anon_WITH_AES_256_CBC_SHA
- TLS_DH_anon_WITH_AES_128_CBC_SHA256
- TLS_ECDH_anon_WITH_AES_128_CBC_SHA
- TLS_DH_anon_WITH_AES_128_CBC_SHA
- TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA
- SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
- TLS_ECDHE_RSA_WITH_RC4_128_SHA
- SSL_RSA_WITH_RC4_128_SHA
- TLS_ECDH_ECDSA_WITH_RC4_128_SHA
- TLS_ECDH_RSA_WITH_RC4_128_SHA
- SSL_RSA_WITH_RC4_128_MD5
- TLS_ECDH_anon_WITH_RC4_128_SHA
- SSL_DH_anon_WITH_RC4_128_MD5
- SSL_RSA_WITH_DES_CBC_SHA
- SSL_DHE_RSA_WITH_DES_CBC_SHA
- SSL_DHE_DSS_WITH_DES_CBC_SHA
- SSL_DH_anon_WITH_DES_CBC_SHA
- SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
- SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
- SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
- SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA
- SSL_RSA_EXPORT_WITH_RC4_40_MD5
- SSL_DH_anon_EXPORT_WITH_RC4_40_MD5
- TLS_RSA_WITH_NULL_SHA256
- TLS_ECDHE_ECDSA_WITH_NULL_SHA
- TLS_ECDHE_RSA_WITH_NULL_SHA
- SSL_RSA_WITH_NULL_SHA
- TLS_ECDH_ECDSA_WITH_NULL_SHA
- TLS_ECDH_RSA_WITH_NULL_SHA
- TLS_ECDH_anon_WITH_NULL_SHA
- SSL_RSA_WITH_NULL_MD5
ノート:
- 暗号化方式群の優先順位は今後のリリースで変更される可能性があります。
- TLS_EMPTY_RENEGOTIATION_INFO_SCSVは、RFC 5746をサポートする擬似暗号化方式群です。
新しいアルゴリズムが開発され、旧アルゴリズムの有効性が以前よりも低下したと判断されると、JDKリリースのデフォルトで使用可能な暗号化方式群は変更されます。Oracle JDKでは次の2つのメカニズムを使用して、これらのアルゴリズムの使用可能性を制限します。
jdk.tls.disabledAlgorithms
セキュリティ・プロパティ(暗号化方式群のカテゴリを無効化)。たとえば、このセキュリティ・プロパティにRC4
が含まれていると、すべてのRC4ベースの暗号化方式群が無効化されます。- 暗号化方式群を、デフォルトで有効化されない方式群のリストに移動。
jdk.tls.disabledAlgorithms
セキュリティ・プロパティの詳細は、「無効化された制限付き暗号化アルゴリズム」を参照してください。
デフォルトで使用可能なプロトコルおよび暗号化方式群の現行リストの確認
デフォルトで使用可能なプロトコルおよび暗号化方式群の現行リストを取得するには、次のコマンドを実行します:
keytool -showinfo -tls
このコマンドによって生成されるリストには、jdk.tls.disabledAlgorithms
セキュリティ・プロパティが無効化されている方式群は含まれないことに注意してください。
EncryptedPreMasterSecretバージョン番号チェックの強化
JDK 7リリースより前のSSL/TLS実装では、PreMasterSecret内のバージョン番号がチェックされず、SSL/TLSクライアントからデフォルトで正しいバージョン番号が送信されませんでした。システム・プロパティcom.sun.net.ssl.rsaPreMasterSecretFix
がtrue
に設定されないかぎり、TLSクライアントはアクティブなネゴシエートされたバージョンを送信しますが、クライアントでサポートされる予想最大バージョンは送信しません。
SSLバージョン3.0およびTLSバージョン1.0では、互換性のため、この動作は保持されます。しかし、TLSバージョン1.1以降の実装では、RFC 5246の要求に従って、PreMasterSecretバージョン番号のチェックが強化されています。クライアントは常に正しいバージョン番号を送信し、サーバーはバージョン番号を厳密にチェックします。TLS 1.1以降では、システム・プロパティcom.sun.net.ssl.rsaPreMasterSecretFix
は使用されません。
SunJCEプロバイダ
「SUNプロバイダ」で簡単に説明されているように、当時の米国の輸出制限事項によって、JDK内で使用できる暗号化機能が制限されていました。このため、アプリケーションでデータの暗号化または復号化を可能にするために、個別のAPIおよびリファレンス実装が開発されました。Java Cryptographic Extension (JCE)は、別個のオプション・パッケージとしてリリースされ(簡潔に標準拡張機能とも呼ばれる)、JDK 1.2xおよび1.3xで利用可能でした。JDK 1.4の開発中に、規制は、JCE (およびSunJSSE)をJDKの一部としてバンドルできるくらいには緩和されました。
SunJCEプロバイダでは、次のアルゴリズムを使用できます。
表4-15 SunJCEプロバイダのエンジン・クラス・アルゴリズム名
エンジン | アルゴリズム名 |
---|---|
AlgorithmParameterGenerator |
DiffieHellman |
AlgorithmParameters |
AES Blowfish ChaCha20-Poly1305 DES DESede DiffieHellman GCM OAEP PBE PBES2 PBEWithHmacSHA1AndAES_128 PBEWithHmacSHA224AndAES_128 PBEWithHmacSHA256AndAES_128 PBEWithHmacSHA384AndAES_128 PBEWithHmacSHA512AndAES_128 PBEWithHmacSHA1AndAES_256 PBEWithHmacSHA224AndAES_256 PBEWithHmacSHA256AndAES_256 PBEWithHmacSHA384AndAES_256 PBEWithHmacSHA512AndAES_256 PBEWithMD5AndDES PBEWithMD5AndTripleDES PBEWithSHA1AndDESede PBEWithSHA1AndRC2_40 PBEWithSHA1AndRC2_128 PBEWithSHA1AndRC4_40 PBEWithSHA1AndRC4_128 RC2 |
Cipher |
表4-16を参照してください |
KeyAgreement |
DiffieHellman |
KeyFactory |
DiffieHellman |
KeyGenerator |
AES ARCFOUR Blowfish ChaCha20 DES DESede HmacMD5 HmacSHA1 HmacSHA224 HmacSHA256 HmacSHA384 HmacSHA512 HmacSHA512/224 HmacSHA512/256 HmacSHA3-224 HmacSHA3-256 HmacSHA3-384 HmacSHA3-512 RC2 |
KeyPairGenerator |
DiffieHellman |
KeyStore |
JCEKS |
Mac |
HmacMD5 HmacSHA1 HmacSHA224 HmacSHA256 HmacSHA384 HmacSHA512 HmacSHA512/224 HmacSHA512/256 HmacSHA3-224 HmacSHA3-256 HmacSHA3-384 HmacSHA3-512 HmacPBESHA1 HmacPBESHA224 HmacPBESHA256 HmacPBESHA384 HmacPBESHA512 HmacPBESHA512/224 HmacPBESHA512/256 PBEWithHmacSHA1 PBEWithHmacSHA224 PBEWithHmacSHA256 PBEWithHmacSHA384 PBEWithHmacSHA512 |
SecretKeyFactory |
DES DESede PBEWithMD5AndDES PBEWithMD5AndTripleDES PBEWithSHA1AndDESede PBEWithSHA1AndRC2_40 PBEWithSHA1AndRC2_128 PBEWithSHA1AndRC4_40 PBEWithSHA1AndRC4_128 PBKDF2WithHmacSHA1 PBKDF2WithHmacSHA224 PBKDF2WithHmacSHA256 PBKDF2WithHmacSHA384 PBKDF2WithHmacSHA512 PBEWithHmacSHA1AndAES_128 PBEWithHmacSHA224AndAES_128 PBEWithHmacSHA256AndAES_128 PBEWithHmacSHA384AndAES_128 PBEWithHmacSHA512AndAES_128 PBEWithHmacSHA1AndAES_256 PBEWithHmacSHA224AndAES_256 PBEWithHmacSHA256AndAES_256 PBEWithHmacSHA384AndAES_256 PBEWithHmacSHA512AndAES_256 |
次の表では、SunJCEプロバイダで使用できる暗号変換を示します。
表4-16 SunJCEプロバイダの暗号変換
アルゴリズム名 | モード | パディング |
---|---|---|
AES | ECB、CBC、PCBC、CFB脚注5、CFB8からCFB128、OFB脚注5、OFB8からOFB128 | NoPadding、PKCS5Padding、ISO10126Padding |
AES | CTR、CTS、GCM | NoPadding |
AES_128、AES_192、AES_256 | ECB、CBC、OFB、CFB、GCM | NoPadding |
AESWrap | ECB | NoPadding |
AESWrap_128 | ECB | NoPadding |
AESWrap_192 | ECB | NoPadding |
AESWrap_256 | ECB | NoPadding |
ARCFOUR | ECB | NoPadding |
Blowfish、DES、DESede、RC2 | ECB、CBC、PCBC、CTR、CTS、CFB脚注5、CFB8からCFB64、OFB脚注5、OFB8からOFB64 | NoPadding、PKCS5Padding、ISO10126Padding |
ChaCha20 | なし | NoPadding |
ChaCha20-Poly1305 | なし | NoPadding |
DESedeWrap | CBC | NoPadding |
PBEWithMD5AndDES、PBEWithMD5AndTripleDES脚注6、PBEWithSHA1AndDESede、PBEWithSHA1AndRC2_40、PBEWithSHA1AndRC2_128、PBEWithSHA1AndRC4_40、PBEWithSHA1AndRC4_128、PBEWithHmacSHA1AndAES_128、PBEWithHmacSHA224AndAES_128、PBEWithHmacSHA256AndAES_128、PBEWithHmacSHA384AndAES_128、PBEWithHmacSHA512AndAES_128、PBEWithHmacSHA1AndAES_256、PBEWithHmacSHA224AndAES_256、PBEWithHmacSHA256AndAES_256、PBEWithHmacSHA384AndAES_256、PBEWithHmacSHA512AndAES_256 |
CBC | PKCS5Padding |
RSA | ECB |
NoPadding、PKCS1Padding、OAEPPadding、OAEPWithMD5AndMGF1Padding、OAEPWithSHA–1AndMGF1Padding、OAEPWithSHA–1AndMGF1Padding、OAEPWithSHA–224AndMGF1Padding、OAEPWithSHA–256AndMGF1Padding、OAEPWithSHA–384AndMGF1Padding、OAEPWithSHA–512AndMGF1Padding、OAEPWithSHA-512/224AndMGF1Padding、OAEPWithSHA-512/2256ndMGF1Padding |
脚注5 値指定なしのCFB/OFBは、デフォルトでアルゴリズムのブロック・サイズになります(つまり、AESは128で、Blowfish、DES、DESedeおよびRC2は64です。)
脚注6 PBEWithMD5AndTripleDESは、標準化されていない独自のアルゴリズムです。
キー・サイズの制限
SunJCEプロバイダでは、次のデフォルト・キー・サイズ(ビット単位)が使用され、次の制限が強制されます。
KeyGenerator
表4-17 SunJCEプロバイダのキー・サイズの制限
アルゴリズム名 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
AES | 128 | キー・サイズは、128、192または256と等しいサイズである必要があります。 |
ARCFOUR (RC4) | 128 | キー・サイズは、40から1024の範囲内である必要があります。 |
Blowfish | 128 | キー・サイズは、32から448の範囲内で、8の倍数である必要があります。 |
ChaCha20 | 256 | キー・サイズは、256と等しいサイズである必要があります。 |
DES | 56 | キー・サイズは、56と等しいサイズである必要があります。 |
DESede (トリプルDES) | 168 |
キー・サイズは、112または168と等しいサイズである必要があります。 キー・サイズが112の場合には2つの中間キーを保持するトリプルDESキーが、168の場合には3つの中間キーを保持するトリプルDESキーが、それぞれ生成されます。 Meet-In-The-Middle問題のため、112ビットまたは168ビットのキー・データが使用されますが、有効なキー・サイズはそれぞれ80ビットまたは112ビットです。 |
HmacMD5 | 512 | キー・サイズの制限はありません。 |
HmacSHA1 | 512 | キー・サイズの制限はありません。 |
HmacSHA224 | 224 | キー・サイズの制限はありません。 |
HmacSHA256 | 256 | キー・サイズの制限はありません。 |
HmacSHA384 | 384 | キー・サイズの制限はありません。 |
HmacSHA512 | 512 | キー・サイズの制限はありません。 |
RC2 | 128 | キー・サイズは、40から1024の範囲内である必要があります。 |
ノート:
各種のパスワードベース暗号化(PBE)アルゴリズムは、様々なアルゴリズムを使用してキー・データを生成し、最終的にターゲットのCipherアルゴリズムに依存します。たとえば、PBEWithMD5AndDESは常に56ビットのキーを生成します。
表4-18 KeyPairGenerator
アルゴリズム名 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
Diffie-Hellman (DH) | 2048 | キー・サイズは、512から1024の範囲で64の倍数であるか、1536、2048、3072、4096、6144、8192である必要があります。 |
表4-19 AlgorithmParameterGenerator
アルゴリズム名 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
Diffie-Hellman (DH) | 2048 | キー・サイズは、512から1024の範囲で64の倍数であるか、2048および3072である必要があります。 |
SunJGSSプロバイダ
アルゴリズム
SunJGSSプロバイダでは、次のアルゴリズムを使用できます。
表4-20 SunJGSSプロバイダ・アルゴリズム名
OID | 名前 |
---|---|
1.2.840.113554.1.2.2 |
Kerberos v5 |
1.3.6.1.5.5.2 |
SPNEGO |
SunSASLプロバイダ
アルゴリズム
SunSASL
プロバイダでは、次のアルゴリズムを使用できます。
表4-21 SunSASLプロバイダのエンジン・クラス・アルゴリズム名
エンジン | アルゴリズム名 |
---|---|
SaslClient |
CRAM-MD5 DIGEST-MD5 EXTERNAL NTLM PLAIN |
SaslServer |
CRAM-MD5 DIGEST-MD5 NTLM |
XMLDSigプロバイダ
アルゴリズム
XMLDSig
プロバイダでは、次のアルゴリズムを使用できます。
表4-22 XMLDSigプロバイダのエンジン・クラス・アルゴリズム名
エンジン | アルゴリズム名 |
---|---|
KeyInfoFactory |
DOM |
TransformService |
|
XMLSignatureFactory |
DOM |
SunPCSCプロバイダ
SunPCSCプロバイダを使用すると、アプリケーションはJavaスマート・カードI/O APIを使用して、ベースとなるオペレーティング・システムのPC/SCスマート・カード・スタックと相互に作用することができます。詳細は、オペレーティング・システムのドキュメントを参照してください。
Linuxでは、SunPCSCはlibpcsclite.so
ライブラリを使用してPC/SCスタックにアクセスします。これは、ディレクトリ/usr/$LIBISA
および/usr/local/$LIBISA
内でこのライブラリを検索します。$LIBISA
は、64ビットのLinuxではlib64
に展開されます。システム・プロパティsun.security.smartcardio.library
が、代替のlibpcsclite.so
実装の完全なファイル名に設定される場合もあります。Windowsでは、SunPCSCは常にwinscard.dll
を呼び出すため、Javaレベルの構成は不要であり、行うことができません。
ホスト・プラットフォームでPC/SCが使用可能な場合、SunPCSC実装はTerminalFactory.getDefault()
およびTerminalFactory.getInstance("PC/SC")
を介して取得できます。PC/SCが使用可能でないか、または正しく構成されていない場合、getInstance()
の呼出しはNoSuchAlgorithmException
で失敗し、getDefault()
は端末をサポートしないJDK組込み実装を返します。
アルゴリズム
SunPCSC
プロバイダでは、次のアルゴリズムを使用できます。
表4-23 SunPCSCプロバイダのエンジン・クラス・アルゴリズム名
エンジン | アルゴリズム名 |
---|---|
TerminalFactory |
PC/SC |
SunMSCAPIプロバイダ
SunMSCAPI
プロバイダを使用すると、アプリケーションは標準のJCA/JCE APIを使用して、Windowsのネイティブ暗号化ライブラリ、証明書ストアおよびキー・コンテナにアクセスできます。SunMSCAPI
プロバイダ自体には暗号化機能は含まれていません。このプロバイダは、Java環境とWindowsのネイティブ暗号化サービス間のコンジットとして機能します。
アルゴリズム
SunMSCAPI
プロバイダでは、次のアルゴリズムを使用できます。
表4-24 SunMSCAPIのエンジン・クラス・アルゴリズム名
エンジン | アルゴリズム名 |
---|---|
Cipher |
RSA RSA/ECB/PKCS1Paddingのみ |
KeyPairGenerator |
RSA |
KeyStore |
Windows-MY: ネイティブMicrosoft Windows MYキーストアを識別するキーストア・タイプ。ユーザーの個人証明書および関連する秘密キーが含まれています。 Windows-ROOT: ネイティブMicrosoft Windows ROOTキーストアを識別するキーストア・タイプ。ルート認証局の証明書およびほかの信頼できる自己署名証明書が含まれています。 |
SecureRandom |
Windows-PRNG: ネイティブ擬似乱数生成(PRNG)アルゴリズムの名前。 |
Signature |
MD5withRSA MD2withRSA NONEwithRSA SHA1withRSA SHA256withRSA SHA384withRSA SHA512withRSA RSASSA-PSS SHA1withECDSA SHA224withECDSA SHA256withECDSA SHA384withECDSA SHA512withECDSA |
キー・サイズの制限
SunMSCAPIプロバイダでは、次のデフォルト・キーサイズ(ビット単位)を使用し、次の制限を強制します。
KeyGenerator
表4-25 SunMSCAPIプロバイダのキー・サイズの制限
アルゴリズム名前 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
RSA | 2048 | キー・サイズの範囲は512ビットから16,384ビットです。ベースとなるMicrosoft Windows暗号化サービス・プロバイダによって異なります。 |
SunECプロバイダ
SunEC
プロバイダは、楕円曲線暗号(ECC)を実装します。RSAのような従来の暗号システムと比べて、ECCではより小さいキー・サイズで同等のセキュリティが提供されるため、計算の高速化、消費電力の削減、メモリーと帯域幅の節約を実現できます。アプリケーションは、(SunPKCS11
を通じて)外部のECCライブラリに依存せずに、標準のJCA/JCE APIを使用してECCの機能にアクセスできます。
アルゴリズム
SunEC
プロバイダでは、次のアルゴリズムを使用できます。
表4-26 エンジン・クラスのSunECプロバイダ名
エンジン | アルゴリズム名 |
---|---|
AlgorithmParameters |
EC |
KeyAgreement |
ECDH脚注7、X25519、X448、XDH |
KeyFactory |
EC Ed25519 Ed448 EdDSA X25519 X448 XDH |
KeyPairGenerator |
EC脚注7 Ed25519 Ed448 EdDSA X25519 X448 XDH |
Signature |
Ed25519 Ed448 EdDSA NONEwithECDSA脚注7 SHA1withECDSA脚注7 SHA224withECDSA脚注7 SHA256withECDSA脚注7 SHA384withECDSA脚注7 SHA512withECDSA脚注7 NONEwithECDSAinP1363Format脚注7 SHA1withECDSAinP1363Format脚注7 SHA224withECDSAinP1363Format脚注7 SHA256withECDSAinP1363Format脚注7 SHA384withECDSAinP1363Format脚注7 SHA512withECDSAinP1363Format脚注7 |
脚注7 SunEC
プロバイダのネイティブ・ライブラリを削除した場合、このアルゴリズムをJCA/JCE APIを介してSunEC
プロバイダから使用することはできません。「サポートされる楕円曲線名」を参照してください。
ノート:
- EdDSAアルゴリズムは、Ed25519またはEd448のパラメータとキーを使用して初期化できます。パラメータまたはキーなしでEdDSAアルゴリズムを初期化する場合、デフォルトではEd25519のパラメータおよびキーが使用されます。
- すべてのEdDSAバリアント(pure、prehashedおよびcontext)がサポートされています。
- XDHアルゴリズムは、X25519またはX448のパラメータまたはキーを使用して初期化できます。
SunECプロバイダのネイティブ・ライブラリを削除することの影響
SunEC
プロバイダは、一部のECC機能の提供にネイティブ・ライブラリを使用しています。このネイティブ・ライブラリを使用しない場合は、(ご使用のオペレーティング・システムに応じて)次のファイルを削除してください:
- Linux:
$JAVA_HOME/lib/libsunec.so
- macOS:
$JAVA_HOME/lib/libsunec.dylib
- Windows:
%JAVA_HOME%\bin\sunec.dll
ネイティブ・ライブラリを削除すると、表4-26で脚注の付いているアルゴリズムは、JCA/JCE APIを介してSunEC
プロバイダから使用できなくなります。
ノート:
インストールされているその他のプロバイダ(SunPCKS11
など)では、引き続きこれらのアルゴリズムが提供されます。
これらのアルゴリズムを使用するライブラリやツール(JSSE、XML Digital Signature、keytoolなど)は、機能が少なくなります。たとえば、JSSEでは、ECキーペアの生成や、ECベースのピア証明書の使用、SSL/TLS/DTLS接続用のECDH/ECDHEキー協定の実行ができなくなります。TLS_*_ECDSAやTLS_ECDHE_*などの暗号化方式群は使用できなくなります。SSL/TLS接続でも、RSA/DSAベースの証明書や、DH/DHE (RFC 2631)、FFDHE (RFC 7919)、XDH/x25519/x448 (RFC 7748)をベースとしたキー協定など、かわりのアルゴリズムを使用して引き続き接続を保護できます。
残りのアルゴリズム(脚注のないアルゴリズム)はネイティブ・ライブラリ・コードで実装されていないため、ネイティブ・ライブラリが削除されても、引き続きSunEC
プロバイダから使用できます。
キー・サイズの制限
SunECプロバイダでは、次のデフォルト・キーサイズ(ビット単位)を使用し、次の制限を強制します。
表4-27 SunECプロバイダのキー・サイズの制限
KeyPairGeneratorアルゴリズム名 | デフォルトのキー・サイズ | 制限/コメント |
---|---|---|
EC | 256 | キー・サイズは、112から571の範囲内である必要があります。 |
Ed25519 | 255 | キー・サイズは255にする必要があります |
Ed448 | 448 | キー・サイズは448にする必要があります |
EdDSA | 255 | キー・サイズは255にする必要があります |
X25519 | 255 | キー・サイズは255にする必要があります |
X448 | 448 | キー・サイズは448にする必要があります |
XDH | 255 | キー・サイズは255または448にする必要があります |
サポートされる楕円曲線名
SunEC
プロバイダには、楕円曲線(EC)、楕円曲線Diffie-Hellman (ECDH)および楕円曲線デジタル署名アルゴリズム(ECDSA)の各アルゴリズムで使用する様々な楕円曲線の実装が含まれます。これらの曲線の中には、サイドチャネル攻撃の防止に役立つ最新の式と技術を使用して実装されたものがあります。それ以外には、攻撃に対して脆弱である可能性があるため、使用すべきではないレガシー曲線があります。次の表に、これらの各カテゴリに分類される曲線を示します。
次の表の1列目「曲線名」に、SunEC
が実装する名前を示します。2列目「オブジェクト識別子」には、EC名のオブジェクト識別子を指定します。3列目「その他の名前/別名」には、その曲線のその他の名前または別名を指定します。(値N/Aは、その他の名前がないことを意味します。)1行に表示されている文字列はすべて同じ曲線を表します。たとえば、文字列secp256r1
、1.2.840.10045.3.1.7
、NIST P-256
およびX9.62 prime256v1
は同じ曲線を表します。曲線名を使用して、ECGenParameterSpecクラスまたはNamedParameterSpecクラスでECパラメータ生成のパラメータ仕様を作成できます。
推奨曲線
次の表に、SunEC
プロバイダによって提供され、最新の式と技術を使用して実装される楕円曲線を示します。推奨するのはこれらの曲線であり、「無効なレガシー曲線」の項にリストされている曲線のかわりに使用する必要があります。
表4-28 SunECプロバイダにより提供される推奨曲線
曲線名 | オブジェクト識別子 | その他の名前/別名 |
---|---|---|
Ed25519 | 1.3.101.112 | なし |
Ed448 | 1.3.101.113 | なし |
secp256r1 | 1.2.840.10045.3.1.7 | NIST P-256、X9.62 prime256v1 |
secp384r1 | 1.3.132.0.34 | NIST P-384 |
secp521r1 | 1.3.132.0.35 | NIST P-521 |
X25519 | 1.3.101.110 | なし |
X448 | 1.3.101.111 | なし |
無効なレガシー曲線
ノート:
新しい曲線に移行することをお薦めします。表4-29に、SunECプロバイダによって提供されている楕円曲線を示しますが、いずれも無効です。これらの実装には、最新の式や技術が使用されていません。アプリケーションでこれらの無効な曲線のいずれかが必要な場合は、システム・プロパティjdk.sunec.disableNative
をfalse
に設定して再度有効にできます。このプロパティが他の値に設定されている場合、これらのレガシー曲線は無効なままです。
これらの曲線が無効になっているためにスローされる例外には、レガシーSunEC曲線が無効ですというメッセージの後に曲線の名前が含まれます。
表4-29 SunECプロバイダの無効なレガシー曲線
曲線名 | オブジェクト識別子 | その他の名前/別名 |
---|---|---|
brainpoolP256r1 | 1.3.36.3.3.2.8.1.1.7 | なし |
brainpoolP320r1 | 1.3.36.3.3.2.8.1.1.9 | なし |
brainpoolP384r1 | 1.3.36.3.3.2.8.1.1.11 | なし |
brainpoolP512r1 | 1.3.36.3.3.2.8.1.1.13 | なし |
secp112r1 | 1.3.132.0.6 | なし |
secp112r2 | 1.3.132.0.7 | なし |
secp128r1 | 1.3.132.0.28 | なし |
secp128r2 | 1.3.132.0.29 | なし |
secp160k1 | 1.3.132.0.9 | なし |
secp160r1 | 1.3.132.0.8 | なし |
secp160r2 | 1.3.132.0.30 | なし |
secp192k1 | 1.3.132.0.31 | なし |
secp192r1 | 1.2.840.10045.3.1.1 | NIST P-192、X9.62 prime192v1 |
secp224k1 | 1.3.132.0.32 | なし |
secp224r1 | 1.3.132.0.33 | NIST P-224 |
secp256k1 | 1.3.132.0.10 | なし |
sect113r1 | 1.3.132.0.4 | なし |
sect113r2 | 1.3.132.0.5 | なし |
sect131r1 | 1.3.132.0.22 | なし |
sect131r2 | 1.3.132.0.23 | なし |
sect163k1 | 1.3.132.0.1 | NIST K-163 |
sect163r1 | 1.3.132.0.2 | なし |
sect163r2 | 1.3.132.0.15 | NIST B-163 |
sect193r1 | 1.3.132.0.24 | なし |
sect193r2 | 1.3.132.0.25 | なし |
sect233k1 | 1.3.132.0.26 | NIST K-233 |
sect233r1 | 1.3.132.0.27 | NIST B-233 |
sect239k1 | 1.3.132.0.3 | なし |
sect283k1 | 1.3.132.0.16 | NIST K-283 |
sect283r1 | 1.3.132.0.17 | NIST B-283 |
sect409k1 | 1.3.132.0.36 | NIST K-409 |
sect409r1 | 1.3.132.0.37 | NIST B-409 |
sect571k1 | 1.3.132.0.38 | NIST K-571 |
sect571r1 | 1.3.132.0.39 | NIST B-571 |
X9.62 c2tnb191v1 | 1.2.840.10045.3.0.5 | なし |
X9.62 c2tnb191v2 | 1.2.840.10045.3.0.6 | なし |
X9.62 c2tnb191v3 | 1.2.840.10045.3.0.7 | なし |
X9.62 c2tnb239v1 | 1.2.840.10045.3.0.11 | なし |
X9.62 c2tnb239v2 | 1.2.840.10045.3.0.12 | なし |
X9.62 c2tnb239v3 | 1.2.840.10045.3.0.13 | なし |
X9.62 c2tnb359v1 | 1.2.840.10045.3.0.18 | なし |
X9.62 c2tnb431r1 | 1.2.840.10045.3.0.20 | なし |
X9.62 prime192v2 | 1.2.840.10045.3.1.2 | なし |
X9.62 prime192v3 | 1.2.840.10045.3.1.3 | なし |
X9.62 prime239v1 | 1.2.840.10045.3.1.4 | なし |
X9.62 prime239v2 | 1.2.840.10045.3.1.5 | なし |
X9.62 prime239v3 | 1.2.840.10045.3.1.6 | なし |
Appleプロバイダ
Apple
プロバイダは、macOSキー・チェーンへのアクセスを提供するjava.security.KeyStore
を実装します。
アルゴリズム
Apple
プロバイダでは、次のアルゴリズムを使用できます。
表4-30 Appleプロバイダのエンジン・クラス・アルゴリズム名
エンジン | アルゴリズム名 |
---|---|
KeyStore |
KeychainStore |