Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Архитектура Криптографии Java
Документация Провайдеров Oracle

для Платформы Java Standard Edition 7



Введение
Пределы импорта на Криптографических алгоритмах
SunPKCS11 Провайдер
SUN Провайдер
SunRsaSign Провайдер
SunJSSE Провайдер
SunJCE Провайдер
SunJGSS Провайдер
SunSASL Провайдер
XMLDSig Провайдер
SunPCSC Провайдер
SunMSCAPI Провайдер
SunEC Провайдер


Отметьте: Документация Стандартных имен содержит больше информации о стандартных именах, используемых в этом документе.


Введение

Платформа Java определяет ряд API, охватывающих главные области безопасности, включая криптографию, инфраструктуру управления открытыми ключами, аутентификацию, безопасную передачу, и управление доступом. Эти API позволяют разработчикам легко интегрировать механизмы безопасности в свой код программы. Архитектура Криптографии Java (JCA) и его Архитектура Провайдера являются базовым понятием Комплекта разработчика для Java (JDK). Это - принятые читатели, имеют основательное понимание этой архитектуры.

Этот документ описывает технические детали провайдеров, поставленных как часть Среды Java Oracle.

Напоминание: Криптографические реализации в JDK распределяются через несколько различных провайдеров ("Sun", "SunJSSE", "SunJCE", "SunRsaSign") и по историческим причинам и типами предоставленных услуг. Приложения общего назначения не ДОЛЖНЫ запросить криптографические службы от определенных провайдеров. Это:
    getInstance("...", "SunJCE");  // not recommended
        vs.
    getInstance("...");            // recommended
Иначе, приложения связываются к определенным провайдерам, которые, возможно, не доступны на других реализациях Java. Они также не могли бы быть в состоянии использовать в своих интересах доступных оптимизированных провайдеров (например, аппаратные акселераторы через PKCS11 или собственные реализации ОС, такие как MSCAPI Microsoft), у которых есть более высокий привилегированный порядок чем определенный требуемый провайдер.

Пределы импорта на Криптографических алгоритмах

Должный импортировать инструкции в некоторых странах, реализация Oracle обеспечивает значение по умолчанию криптографический файл политики юрисдикции, который ограничивает силу криптографических алгоритмов. Вот максимальные размеры ключа, позволенные этой версией "strong" файлов политики юрисдикции:

Алгоритм Максимальный Размер ключа
DES 64
DESede *
RC2 128
RC4 128
RC5 128
RSA *
все другие 128

Если более сильные алгоритмы необходимы (например, AES с 256-разрядными ключами), Неограниченные Файлы Политики Юрисдикции Силы JCE должны быть получены и установлены в JDK/JRE.

Это - обязанность пользователя проверить, что это действие допустимо в соответствии с местными постановлениями.

SunPKCS11 Провайдер

Криптографический Маркерный Стандарт Интерфейса (PKCS#11) обеспечивает собственные интерфейсы программирования для криптографических механизмов, таких как аппаратные средства криптографические акселераторы и Смарт-карты. Когда должным образом конфигурирующийся, SunPKCS11 провайдер позволяет приложениям использовать стандартные API JCA/JCE, чтобы получить доступ собственный PKCS#11 библиотеки. SunPKCS11 сам провайдер не содержит криптографическую функциональность, это - просто кабелепровод между средой Java и собственными провайдерами PKCS11. У Java PKCS#11 Справочник есть намного более подробная обработка этого провайдера.

SUN Провайдер

JDK 1.1 представлял Provider архитектура. Первого провайдера JDK назвали SUN, и содержавший два типа криптографических служб (MessageDigests и Signatures). В более поздних выпусках были добавлены другие механизмы (SecureRandom генераторы чисел, KeyPairGenerators, KeyFactorys, и так далее.).

Инструкции экспорта Соединенных Штатов в действительности в это время установленные существенные ограничения для типа криптографической функциональности, которая могла быть сделана доступной на международном уровне в JDK. Поэтому SUN провайдер исторически содержал криптографические механизмы, которые непосредственно не шифровали или дешифровали данные.

Следующие алгоритмы доступны в SUN провайдер:

Механизм Имена алгоритма
AlgorithmParameterGenerator DSA
AlgorithmParameters DSA
CertificateFactory X.509
CertPathBuilder PKIX
CertPathValidator PKIX
CertStore Набор
LDAP
Configuration JavaLoginConfig
KeyFactory DSA
KeyPairGenerator DSA
KeyStore JKS
MessageDigest MD2
MD5
SHA 1
SHA 256
SHA 384
SHA 512
Policy JavaPolicy
SecureRandom SHA1PRNG
Signature NONEwithDSA
SHA1withDSA

Ограничения размера ключа

SUN провайдер использует следующие размеры ключа значения по умолчанию (в битах) и осуществляет следующие ограничения:

KeyPairGenerator

Alg. Имя Размер ключа значения по умолчанию Ограничения/Комментарии
DSA 1024 Размер ключа должен быть кратным числом 64, в пределах от 512 - 1024 (включительно).

AlgorithmParameterGenerator

Alg. Имя Размер ключа значения по умолчанию Ограничения/Комментарии
DSA 1024 Размер ключа должен быть кратным числом 64, в пределах от 512 - 1024 (включительно).

CertificateFactory/CertPathBuilder/ CertPathValidator/CertStore Реализации

Дополнительные детали о SUN реализации провайдера для CertificateFactory, CertPathBuilder, CertPathValidator и CertStore документируются в Приложение B Руководства Программиста PKI.

SunRsaSign Провайдер

SunRsaSign провайдер был представлен в JDK 1.3 как улучшенная замена для подписей RSA в SunJSSE провайдер.

Следующие алгоритмы доступны в SunRsaSign провайдер:

Механизм Имена алгоритма
KeyFactory RSA
KeyPairGenerator RSA
Signature MD2withRSA
MD5withRSA
SHA1withRSA
SHA256withRSA
SHA384withRSA
SHA512withRSA

Ограничения размера ключа

SunRsaSign провайдер использует следующий размер ключа значения по умолчанию (в битах) и осуществляет следующее ограничение:

KeyPairGenerator

Alg. Имя Размер ключа значения по умолчанию Ограничения/Комментарии
RSA 1024 Размер ключа должен расположиться между 512 и 65536 битами, последний которых является излишне крупным.

SunJSSE Провайдер

Расширение Защищенного сокета Java (JSSE) было первоначально выпущено как отдельный "Дополнительный Пакет" (также кратко известный как "Стандартное Расширение"), и было доступно для JDK 1.2.n и 1.3.n. SunJSSE провайдер был представлен как часть этого выпуска.

В более ранних выпусках JDK не было никаких провайдеров подписи RSA, доступных в JDK, поэтому SunJSSE должен был обеспечить его собственную реализацию RSA, чтобы использовать обычно доступные RSA-на-основе сертификаты. JDK 5 представлял SunRsaSign провайдер, который обеспечивает всю функциональность (и больше) SunJSSE провайдер. Приложения, предназначенные в JDK 5.0 и позже, должны запросить экземпляры SunRsaSign провайдер вместо этого. Для обратной совместимости алгоритмы RSA все еще доступны через этого провайдера, но фактически реализуются в SunRsaSign провайдер.

Алгоритмы

Следующие алгоритмы доступны в SunJSSE провайдер:

Механизм Имя (ена) алгоритма
KeyFactory
RSA
KeyManagerFactory
SunX509: фабрика для X509ExtendedKeyManager экземпляры, которые управляют основанными на сертификате парами ключей X.509 для локальной аутентификации стороны согласно правилам, определенным IETF PKIX рабочая группа в RFC 3280 или его преемнике. Это KeyManagerFactory поддерживает инициализацию, используя a Keystore объект, но в настоящий момент не поддерживает инициализацию, используя class javax.net.ssl.ManagerFactoryParameters.

PKIX: фабрика для X509ExtendedKeyManager экземпляры, которые управляют основанными на сертификате парами ключей X.509 для локальной аутентификации стороны согласно правилам, определенным IETF PKIX рабочая группа в RFC 3280 или его преемнике. Это KeyManagerFactory в настоящий момент поддерживает инициализацию, используя a KeyStore объект или javax.net.ssl.KeyStoreBuilderParameters.
KeyPairGenerator
RSA
KeyStore
PKCS12
Signature
MD2withRSA
MD5withRSA
SHA1withRSA
SSLContext
SSLv3
TLSv1
TLSv1.1
TLSv1.2
TrustManagerFactory
SunX509: фабрика для X509ExtendedTrustManager экземпляры, которые проверяют цепочек сертификата согласно правилам, определенным IETF PKIX рабочая группа в RFC 3280 или его преемнике. Это TrustManagerFactory поддерживает инициализацию, используя a Keystore объект, но в настоящий момент не поддерживает инициализацию, используя class javax.net.ssl.ManagerFactoryParameters.

PKIX: фабрика для X509ExtendedTrustManager экземпляры, которые проверяют цепочек сертификата согласно правилам, определенным IETF PKIX рабочая группа в RFC 3280 или его преемнике. Это TrustManagerFactory в настоящий момент поддерживает инициализацию, используя a KeyStore объект или javax.net.ssl.CertPathTrustManagerParameters.

Протоколы

SunJSSE поддерживает следующий protocol параметры:

Протокол Включенный по умолчанию для Клиента Включенный по умолчанию для Сервера
SSLv3 Да Да
TLSv1 Да Да
TLSv1.1 Нет Да
TLSv1.2 Нет Да
Сноска 1 TLSv1.1 Нет Да
Сноска 1 TLSv1.2 Нет Да
Сноска 2 SSLv2Hello Нет Да

Сноска 1Although SunJSSE в Java SE 7 выпусков поддерживают TLS 1.1 и TLS 1.2, никакая версия не включается по умолчанию для клиентских соединений. Некоторые серверы не реализуют прямую совместимость правильно и отказываются говорить с TLS 1.1 или TLS 1.2 клиента. Для функциональной совместимости, SunJSSE не включает TLS 1.1 или TLS 1.2 по умолчанию для клиентских соединений.

У соединений сервера нет такой проблемы функциональной совместимости. TLS 1.1 и TLS 1.2 включаются по умолчанию для соединений сервера.

Сноска 2The SSLv3, TLSv1, и протоколы TLSv1.1 позволяют Вам отправлять SSLv3, TLSv1, и TLSv1.1 hellos инкапсулировавший в формате SSLv2 привет.

Комплекты шифра

SunJSSE поддерживает большое количество комплектов шифра. Две таблицы, которые следуют за шоу комплекты шифра, поддерживаемые SunJSSE в привилегированном порядке и выпуском, в котором они были представлены.

Первая таблица приводит комплекты шифра, которые являются, включают по умолчанию. Вторая таблица показывает комплекты шифра, которые поддерживаются SunJSSE, но отключаются по умолчанию.

Значение по умолчанию, Включенное Комплекты Шифра
Комплект шифра J2SE v1.4 J2SE v1.4.1, v1.4.2 J2SE 5.0 Java SE 6 Java SE 7
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384         XFootnote 1
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384         XFootnote 1
TLS_RSA_WITH_AES_256_CBC_SHA256         XFootnote 1
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384         XFootnote 1
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384         XFootnote 1
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256         XFootnote 1
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256         XFootnote 1
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA       X X
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA       X X
TLS_RSA_WITH_AES_256_CBC_SHA   X X X X
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA       X X
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA       X X
TLS_DHE_RSA_WITH_AES_256_CBC_SHA   X X X X
TLS_DHE_DSS_WITH_AES_256_CBC_SHA   X X X X
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256         XFootnote 1
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256         XFootnote 1
TLS_RSA_WITH_AES_128_CBC_SHA256         XFootnote 1
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256         XFootnote 1
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256         XFootnote 1
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256         XFootnote 1
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256         XFootnote 1
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA       X X
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA       X X
TLS_RSA_WITH_AES_128_CBC_SHA   X X X X
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA       X X
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA       X X
TLS_DHE_RSA_WITH_AES_128_CBC_SHA   X X X X
TLS_DHE_DSS_WITH_AES_128_CBC_SHA   X X X X
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA       X X
TLS_ECDHE_RSA_WITH_RC4_128_SHA       X X
SSL_RSA_WITH_RC4_128_SHA X X X X X
TLS_ECDH_ECDSA_WITH_RC4_128_SHA       X X
TLS_ECDH_RSA_WITH_RC4_128_SHA       X X
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA       X X
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA       X X
SSL_RSA_WITH_3DES_EDE_CBC_SHA X X X X X
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA       X X
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA       X X
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA   X X X X
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA X X X X X
SSL_RSA_WITH_RC4_128_MD5 X X X X X
TLS_EMPTY_RENEGOTIATION_INFO_SCSVСноска 2   1.4.2u28 + u26 + u22 + X

Комплекты Шифра сноски 1 с SHA384 и SHA256 доступны только для TLS 1.2 или позже.

Сноска 2 TLS_EMPTY_RENEGOTIATION_INFO_SCSV новый комплект псевдошифра, чтобы поддерживать RFC 5746. См. Безопасность Транспортного уровня (TLS) раздел Проблемы Пересмотра Справочника JSEE для получения дополнительной информации.

Значение по умолчанию Отключенные Комплекты Шифра
Комплект шифра J2SE v1.4 J2SE v1.4.1, v1.4.2 J2SE 5.0 Java SE 6 Java SE 7
TLS_DH_anon_WITH_AES_256_CBC_SHA256         X
TLS_ECDH_anon_WITH_AES_256_CBC_SHA       X X
TLS_DH_anon_WITH_AES_256_CBC_SHA   X X X X
TLS_DH_anon_WITH_AES_128_CBC_SHA256         X
TLS_ECDH_anon_WITH_AES_128_CBC_SHA       X X
TLS_DH_anon_WITH_AES_128_CBC_SHA   X X X X
TLS_ECDH_anon_WITH_RC4_128_SHA       X X
SSL_DH_anon_WITH_RC4_128_MD5 X X X X X
TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA       X X
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA X X X X X
TLS_RSA_WITH_NULL_SHA256         X
TLS_ECDHE_ECDSA_WITH_NULL_SHA       X X
TLS_ECDHE_RSA_WITH_NULL_SHA       X X
SSL_RSA_WITH_NULL_SHA X X X X X
TLS_ECDH_ECDSA_WITH_NULL_SHA       X X
TLS_ECDH_RSA_WITH_NULL_SHA       X X
TLS_ECDH_anon_WITH_NULL_SHA       X X
SSL_RSA_WITH_NULL_MD5 X X X X X
SSL_RSA_WITH_DES_CBC_SHA X X X X XFootnote 1
SSL_DHE_RSA_WITH_DES_CBC_SHA   X X X XFootnote 1
SSL_DHE_DSS_WITH_DES_CBC_SHA X X X X XFootnote 1
SSL_DH_anon_WITH_DES_CBC_SHA X X X X XFootnote 1
SSL_RSA_EXPORT_WITH_RC4_40_MD5 X X X X XFootnote 2
SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 X X X X XFootnote 2
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA   X X X XFootnote 2
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA   X X X XFootnote 2
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA X X X X XFootnote 2
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA X X X X XFootnote 2
TLS_KRB5_WITH_RC4_128_SHA     X X X
TLS_KRB5_WITH_RC4_128_MD5     X X X
TLS_KRB5_WITH_3DES_EDE_CBC_SHA     X X X
TLS_KRB5_WITH_3DES_EDE_CBC_MD5     X X X
TLS_KRB5_WITH_DES_CBC_SHA     X X XFootnote 1
TLS_KRB5_WITH_DES_CBC_MD5     X X XFootnote 1
TLS_KRB5_EXPORT_WITH_RC4_40_SHA     X X XFootnote 2
TLS_KRB5_EXPORT_WITH_RC4_40_MD5     X X XFootnote 2
TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA     X X XFootnote 2
TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5     X X XFootnote 2

TLS RFC 5246 сноски 1 1.2 запрещает использование этих комплектов. Они могут использоваться в SSLv3/TLS1.0/TLS1.1 протоколах, но не могут использоваться в TLS 1.2 и позже.

TLS RFC 4346 сноски 2 1.1 запрещает использование этих комплектов. Они могут использоваться в протоколах SSLv3/TLS1.0, но не могут использоваться в TLS 1.1 и позже.

Комплекты шифра, которые используют AES_256, требуют установки Неограниченных Файлов Политики Юрисдикции Силы JCE. См. Пределы Импорта на Криптографических алгоритмах.

Комплекты шифра, которые используют Шифрование в эллиптических кривых (ECDSA, ECDH, ECDHE, ECDH_anon) требуют криптографического провайдера JCE, который удовлетворяет следующие требования:

Если эти требования не удовлетворяются, комплекты шифра EC не могут быть согласованы правильно.

Более трудная Проверка Номеров версий EncryptedPreMasterSecret

До Java SE 7 выпусков реализация SSL/TLS не проверяла номер версии в PreMasterSecret, и клиент SSL/TLS не отправлял корректный номер версии по умолчанию. Если системное свойство com.sun.net.ssl.rsaPreMasterSecretFix устанавливается в true, клиент TLS отправляет активную согласованную версию, но не ожидаемую максимальную версию, поддерживаемую клиентом.

Для совместимости это поведение сохраняется для версии 3.0 SSL и версии 1.0 TLS. Однако, для версии 1.1 TLS или позже, реализация сжимает проверку номеров версий PreMasterSecret как требуется RFC 5246. Клиенты всегда отправляют корректный номер версии, и серверы проверяют номер версии строго. Системное свойство, com.sun.net.ssl.rsaPreMasterSecretFix, не используется в TLS 1.1 или позже.

SunJCE Провайдер

Как описано кратко в SUN Провайдер, инструкции экспорта US в то время, когда ограничено тип криптографической функциональности, которая могла быть сделана доступной в JDK. Отдельная реализация API и ссылки была разработана, который позволил приложениям шифровать/дешифровать данные. Java Криптографическое Расширение (JCE) было выпущено как отдельный "Дополнительный Пакет" (также кратко известный как "Стандартное Расширение"), и было доступно для JDK 1.2.x и 1.3.x. Во время разработки JDK 1.4, инструкции были ослаблены достаточно, что JCE (и SunJSSE) мог быть связан как часть JDK.

Следующие алгоритмы доступны в провайдере SunJCE:

Механизм Имена алгоритма
AlgorithmParameterGenerator DiffieHellman
AlgorithmParameters AES
Шифр
DES
DESede
DiffieHellman
OAEP
PBEWithMD5AndDES
PBEWithMD5AndTripleDES
PBEWithSHA1AndDESede
PBEWithSHA1AndRC2_40
RC2
Cipher См. таблицу Шифра.
KeyAgreement DiffieHellman
KeyFactory DiffieHellman
KeyGenerator AES
ARCFOUR
Шифр
DES
DESede
HmacMD5
HmacSHA1
HmacSHA256
HmacSHA384
HmacSHA512
RC2
KeyPairGenerator DiffieHellman
KeyStore JCEKS
Mac HmacMD5
HmacSHA1
HmacSHA256
HmacSHA384
HmacSHA512
SecretKeyFactory DES
DESede
PBEWithMD5AndDES
PBEWithMD5AndTripleDES
PBEWithSHA1AndDESede
PBEWithSHA1AndRC2_40
PBKDF2WithHmacSHA1

Следующая таблица приводит алгоритмы шифра, доступные в провайдере SunJCE.

Имя алгоритма Режимы Paddings
AES ECB, CBC, PCBC, CTR, CTS, CFB, CFB8.. CFB128, OFB, OFB8.. OFB128 NoPadding, PKCS5Padding, ISO10126Padding
AESWrap ECB NoPadding
ARCFOUR ECB NoPadding
Шифр, DES, DESede, RC2 ECB, CBC, PCBC, CTR, CTS, CFB, CFB8.. CFB64, OFB, OFB8.. OFB64 NoPadding, PKCS5Padding, ISO10126Padding
DESedeWrap CBC NoPadding
PBEWithMD5AndDES, PBEWithMD5AndTripleDES1 PBEWithSHA1AndDESede, PBEWithSHA1AndRC2_40 CBC PKCS5Padding
RSA ECB NoPadding, PKCS1Padding, OAEPWithMD5AndMGF1Padding, OAEPWithSHA1AndMGF1Padding, OAEPWithSHA-1AndMGF1Padding, OAEPWithSHA-256AndMGF1Padding, OAEPWithSHA-384AndMGF1Padding, OAEPWithSHA-512AndMGF1Padding

1 PBEWithMD5AndTripleDES является собственным алгоритмом, который не был стандартизирован.

Ограничения размера ключа

Провайдер SunJCE использует следующие размеры ключа значения по умолчанию (в битах) и осуществляет следующие ограничения:

KeyGenerator

Имя алгоритма Размер ключа значения по умолчанию Ограничения/Комментарии
AES 128 Размер ключа должен быть равным 128, 192, или 256.
ARCFOUR (RC4) 128 Размер ключа должен расположиться между 40 и 1024 (включительно).
Шифр 128 Размер ключа должен быть кратным числом 8, в пределах от 32 - 448 (включительно).
DES 56 Размер ключа должен быть равным 56.
DESede (Тройной DES) 168 Размер ключа должен быть равным 112 или 168.

Размер ключа 112 генерирует Тройной ключ DES с 2 промежуточными ключами, и размер ключа 168 генерирует Тройной ключ DES с 3 промежуточными ключами.

Из-за проблемы "встречаются В Середине", даже при том, что 112 или 168 битов ключевого материала используются, эффективный размер ключа составляет 80 или 112 битов соответственно.

HmacMD5 512 Никакое ограничение размера ключа.
HmacSHA1 512 Никакое ограничение размера ключа.
HmacSHA256 256 Никакое ограничение размера ключа.
HmacSHA384 384 Никакое ограничение размера ключа.
HmacSHA512 512 Никакое ограничение размера ключа.
RC2 128 Размер ключа должен расположиться между 40 и 1024 (включительно).

ОТМЕТЬТЕ: различное Основанное на пароле Шифрование (PBE), алгоритмы используют различные алгоритмы, чтобы генерировать ключевые данные, и в конечном счете зависят от предназначенного алгоритма Шифра. Например, "PBEWithMD5AndDES" будет всегда генерировать 56-разрядные ключи.

KeyPairGenerator

Имя алгоритма Размер ключа значения по умолчанию Ограничения/Комментарии
Diffie-Hellman (DH) 1024 Размер ключа должен быть кратным числом 64, в пределах от 512 - 1024 (включительно).

AlgorithmParameterGenerator

Alg. Имя Размер ключа значения по умолчанию Ограничения/Комментарии
Diffie-Hellman (DH) 1024 Размер ключа должен быть кратным числом 64, в пределах от 512 - 1024 (включительно).
DSA 1024 Размер ключа должен быть кратным числом 64, в пределах от 512 - 1024 (включительно).

SunJGSS Провайдер

Следующие алгоритмы доступны в SunJGSS провайдер:

OID Имя
1.2.840.113554.1.2.2 Kerberos v5
1.3.6.1.5.5.2 SPNEGO

SunSASL Провайдер

Следующие алгоритмы доступны в SunSASL провайдер:

Механизм Имена алгоритма
SaslClient CRAM-MD5
ОБЗОР-MD5
ВНЕШНИЙ
GSSAPI
ПЛОСКОСТЬ
SaslServer CRAM-MD5
ОБЗОР-MD5
GSSAPI

XMLDSig Провайдер

Следующие алгоритмы доступны в XMLDSig провайдер:

Механизм Имена алгоритма
KeyInfoFactory ДОМ
TransformService http://www.w3.org/TR/2001/REC-xml-c14n-20010315 - (CanonicalizationMethod.INCLUSIVE)
http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments - (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS)
http://www.w3.org/2001/10/xml-exc-c14n# - (CanonicalizationMethod.EXCLUSIVE)
http://www.w3.org/2001/10/xml-exc-c14n#WithComments - (CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS)
http://www.w3.org/2000/09/xmldsig#base64 - (Transform.BASE64)
http://www.w3.org/2000/09/xmldsig#enveloped-signature - (Transform.ENVELOPED)
http://www.w3.org/TR/1999/REC-xpath-19991116 - (Transform.XPATH)
http://www.w3.org/2002/06/xmldsig-filter2 - (Transform.XPATH2)
http://www.w3.org/TR/1999/REC-xslt-19991116 - (Transform.XSLT)
XMLSignatureFactory ДОМ

SunPCSC Провайдер

Провайдер SunPCSC позволяет приложениям использовать API ввода-вывода Смарт-карты Java, чтобы взаимодействовать со стеком Смарт-карты PC/SC базовой операционной системы. На некоторых операционных системах может быть необходимо включить и сконфигурировать стек PC/SC прежде, чем это будет применимо. Консультируйтесь со своей документацией операционной системы для деталей.

На Солярисе и платформах Linux, SunPCSC получает доступ к стеку PC/SC через libpcsclite.so библиотека. Это ищет эту библиотеку в каталогах /usr/$LIBISA и /usr/local/$LIBISA, где $LIBISA расширяется до lib на 32-разрядных платформах, lib/64 на 64-разрядных платформах Соляриса, и lib64 на 64-разрядных платформах Linux. Системное свойство sun.security.smartcardio.library май также быть установленным в полное имя файла альтернативы libpcsclite.so реализация. На платформах Windows SunPCSC всегда вызывает в winscard.dll и никакая конфигурация на уровне Java не необходима или возможна.

Если PC/SC доступен на платформе узла, реализация SunPCSC может быть получена через TerminalFactory.getDefault() и TerminalFactory.getInstance("PC/SC"). Если PC/SC не доступен или не правильно сконфигурированный, a getInstance() вызов перестанет работать с a NoSuchAlgorithmException и getDefault() возвратит встроенную реализацию JRE, которая не поддерживает терминалов.

Следующие алгоритмы доступны в SunPCSC провайдер:

Механизм Имена алгоритма
TerminalFactory PC/SC

SunMSCAPI Провайдер

Провайдер SunMSCAPI позволяет приложениям использовать стандартные API JCA/JCE, чтобы получить доступ к собственным криптографическим библиотекам, хранилищам сертификатов и ключевым контейнерам на платформе Microsoft Windows. Провайдер самого SunMSCAPI не содержит криптографическую функциональность, это - просто кабелепровод между средой Java и собственными криптографическими службами на Windows.

Следующие алгоритмы доступны в SunMSCAPI провайдер:

Механизм Имена алгоритма
Cipher RSA RSA/ECB/PKCS1Padding только
KeyPairGenerator RSA
KeyStore Windows - МОЙ

Тип keystore, который идентифицирует собственный Microsoft Windows МОЙ keystore. Это содержит персональные сертификаты пользователя и связанные закрытые ключи.

Корень Windows

Тип keystore, который идентифицирует собственный Microsoft Windows ROOT keystore. Это содержит сертификаты о Корневых центрах сертификации и другие самоподписанные доверяемые сертификаты.

SecureRandom Windows-PRNG

Имя собственной генерации псевдослучайного числа (PRNG) алгоритм.

Signature MD5withRSA
MD2withRSA
NONEwithRSA
SHA1withRSA
SHA256withRSA
SHA384withRSA
SHA512withRSA

Ограничения размера ключа

Провайдер SunMSCAPI использует следующие размеры ключа значения по умолчанию (в битах), и осуществите следующие ограничения:

KeyGenerator

Alg. Имя Размер ключа значения по умолчанию Ограничения/Комментарии
RSA 1024 Размер ключа колеблется от 512 битов до 16 384 битов (в зависимости от базового провайдера криптографических служб Microsoft Windows).

SunEC Провайдер

Провайдер SunEC реализует Эллиптическую Криптографию Кривой (ECC). ECC появляется в качестве привлекательной криптографической системы с открытым ключом для мобильных/беспроводных и других сред. По сравнению с традиционными криптографическими системами как RSA ECC предлагает эквивалентную безопасность с меньшими размерами ключа, которая приводит к более быстрым вычислениям, более низкому расходу энергии, так же как сбережениям пропускной способности и памяти.

Приложения могут теперь использовать стандартные API JCA/JCE, чтобы получить доступ к функциональности ECC без зависимости от внешних библиотек ECC (через SunPKCS11), как имел место в JDK 6 выпусков.

Следующие алгоритмы доступны в SunEC провайдер:

Механизм Имя (ена) алгоритма
AlgorithmParameters EC
KeyAgreement ECDH
KeyFactory EC
KeyPairGenerator EC
Signature NONEwithECDSA
SHA1withECDSA
SHA256withECDSA
SHA384withECDSA
SHA512withECDSA

Ограничения размера ключа

Провайдер SunEC использует следующие размеры ключа значения по умолчанию (в битах) и осуществляет следующие ограничения:

KeyPairGenerator

Alg. Имя Размер ключа значения по умолчанию Ограничения/Комментарии
EC 256 Размер ключа должен колебаться от 112 до 571 (включительно).


Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами