|
Spec-Zone .ru
спецификации, руководства, описания, API
|
В Java Sun версия 6 реализации SE или позже, провайдер SunJSSE, который содержит реализацию SSL/TLS, может быть сконфигурирован, чтобы управлять в FIPS 140 совместимыми режимами вместо его режима по умолчанию. Этот документ описывает FIPS 140 совместимых режимов (впоследствии вызванный "режим FIPS").
SunJSSE конфигурируется в режиме FIPS, связывая это с соответствующим FIPS 140, сертифицировал криптографического провайдера, который предоставляет реализации для всех криптографических алгоритмов, требуемых SunJSSE. Это может быть сделано одним из следующих способов:
отредактируйте файл ${java.home}/lib/security/java.security и измените строку, которая перечисляет com.sun.net.ssl.internal.ssl.Provider перечислять имя провайдера FIPS 140 сертифицировало криптографического провайдера. Например, если имя криптографического провайдера SunPKCS11-NSS, измените строку от
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
к
security.provider.4=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSS
class для провайдера имени должен также быть перечислен как поставщик систем обеспечения безопасности в java.security файл.
во времени выполнения вызовите конструктора провайдера SunJSSE, который берет a java.security.Provider объект в качестве параметра. Например, если переменная cryptoProvider ссылка на криптографического провайдера, вызвать new com.sun.net.ssl.internal.ssl.Provider(cryptoProvider).
во времени выполнения вызовите конструктора провайдера SunJSSE, который берет Строковый объект в качестве параметра. Например, если криптографического провайдера вызывают SunPKCS11-NSS вызвать new com.sun.net.ssl.internal.ssl.Provider("SunPKCS11-NSS"). Провайдер с указанным именем должен быть одним из сконфигурированных поставщиков систем обеспечения безопасности.
В пределах данного процесса Java SunJSSE может использоваться или в режиме FIPS или в режиме по умолчанию, но не обоих одновременно. Как только SunJSSE был инициализирован, не возможно изменить режим. Это означает, что, если один из параметров конфигурации времени выполнения используется (опция 2 или 3), конфигурация должна иметь место перед любой работой SSL/TLS.
Отметьте, что только указанный сконфигурированный провайдер будет использоваться SunJSSE для любого и всех криптографических операций. Все другие криптографические провайдеры включая включенных с Java реализация SE будут проигнорированы и не использоваться.
В режиме FIPS SunJSSE ведет себя в пути, идентичном режиму по умолчанию, за исключением следующих различий.
В режиме FIPS:
SunJSSE выполнит все криптографические операции, используя криптографического провайдера, который был сконфигурирован как описано выше. Это включает симметричное и асимметричное шифрование, генерацию подписи и проверку, обзоры сообщения и коды аутентификации сообщений, генерацию ключей и ключевую деривацию, генерацию случайных чисел, и т.д.
Если сконфигурированный криптографический провайдер сообщит об ошибке, выдавая исключение, то SunJSSE прервет текущую работу и распространит исключение к приложению.
Если сконфигурированный криптографический провайдер полагает, что у него была критическая ошибка такой как сам тестовый отказ на направляющие линии FIPS, это должно остаться в ошибочном состоянии, пока он не повторно инициализируется. Приложение, используя SunJSSE, сконфигурированный с FIPS криптографический модуль, должно будет быть перезапущено. Это гарантирует, что модуль FIPS не будет позволять критическим ошибкам поставить под угрозу безопасность.
Только TLS 1.0 и позже может использоваться. SSL 2.0 и SSL 3.0 не доступны. Любая попытка включить SSL 2.0 или 3.0 перестанет работать с исключением.
Список ciphersuites ограничивается теми, которые используют соответствующие алгоритмы. Текущий список возможного ciphersuites дается ниже. Любая попытка включить ciphersuite не в списке перестанет работать с исключением.
Следующее является текущим списком ciphersuites, который может использоваться SunJSSE в режиме FIPS с их именами и идентификатором как присвоено в протоколе TLS при условии, что сконфигурированный криптографический модуль FIPS поддерживает необходимые алгоритмы. Отметьте это, хотя SunJSSE использует префикс SSL_ от имени некоторых из этих ciphersuites это для совместимости с более ранними версиями спецификации только. В режиме FIPS SunJSSE будет всегда использовать TLS 1.0 или позже и реализовывать ciphersuites как требуется теми спецификациями.
| Имя | Идентификатор |
|---|---|
|
SSL_RSA_WITH_3DES_EDE_CBC_SHA |
0x000a |
|
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA |
0x0016 |
|
TLS_RSA_WITH_AES_128_CBC_SHA |
0x002f |
|
TLS_DHE_DSS_WITH_AES_128_CBC_SHA |
0x0032 |
|
TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
0x0033 |
|
TLS_RSA_WITH_AES_256_CBC_SHA |
0x0035 |
|
TLS_DHE_DSS_WITH_AES_256_CBC_SHA |
0x0038 |
|
TLS_DHE_RSA_WITH_AES_256_CBC_SHA |
0x0039 |
|
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA |
0xC003 |
|
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA |
0xC004 |
|
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA |
0xC005 |
|
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA |
0xC008 |
|
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA |
0xC009 |
|
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA |
0xC00A |
|
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA |
0xC00D |
|
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA |
0xC00E |
|
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA |
0xC00F |
|
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA |
0xC012 |
|
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
0xC013 |
|
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
0xC014 |
|
TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA |
0xC017 |
|
TLS_ECDH_anon_WITH_AES_128_CBC_SHA |
0xC018 |
|
TLS_ECDH_anon_WITH_AES_256_CBC_SHA |
0xC019 |
Когда SunJSSE конфигурируется в FIPS, 140 совместимых режимов вместе с соответствующим FIPS 140 сертифицировали криптографического провайдера, например Службы сетевой безопасности (NSS) в его режиме FIPS, SunJSSE является FIPS 140 совместимый.