NoSuchAlgorithmException: нет такого алгоритма: SHA-256 для провайдера SunPKCS11-NSS - PullRequest
0 голосов
/ 12 октября 2018

У меня есть конфигурация FIPS с моим приложением, и я использую библиотеку NSS 3.39 для нее.

Когда я начал первоначальную связь через TLS 1.2 с конфигурацией FIPS, я получаю ошибку: java.security.NoSuchAlgorithmException: no such algorithm: SHA-256 for provider SunPKCS11-NSS

Когда я использую TLS 1.1 для связи с той же конфигурацией, я получаю сообщение об ошибке:

java.security.NoSuchAlgorithmException: no such algorithm: MD5 for provider SunPKCS11-NSS

В то время как он работает с обычной SSL настройкой (не FIPS).

Кто-нибудь сталкивался с этой проблемой?Есть ли какие-либо изменения в NSS?

Примечание. Он работал с TLS 1.1 и NSS 3.23 с той же настройкой.Я использую JRE 8 для конфигурации NSS 3.23 и 3.39.

Ниже приводится полная трассировка стека: NSS 3.39, JRE 8 с TLS 1.2:

java.lang.RuntimeException: Algorithm SHA-256 not available
19:10:45,315 INFO  [STDOUT] %% Invalidated:  [Session-7, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
19:10:45,315 INFO  [STDOUT] MultiProtocolServer
19:10:45,315 INFO  [STDOUT] , SEND TLSv1.2 ALERT:
19:10:45,316 INFO  [STDOUT] fatal,
19:10:45,316 INFO  [STDOUT] description = internal_error
19:10:45,316 INFO  [STDOUT] MultiProtocolServer, WRITE: TLSv1.2 Alert, length = 2
19:10:45,316 INFO  [STDOUT] [Raw write]: length = 7
19:10:45,316 INFO  [STDOUT] 48
19:10:45,316 INFO  [STDOUT] 48
19:10:45,316 INFO  [STDOUT] 48
19:10:45,317 INFO  [STDOUT] 48
19:10:45,317 INFO  [STDOUT] :
Caused by: java.lang.RuntimeException: Algorithm SHA-256 not available
        at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:342)
        at sun.security.ssl.CloneableDigest.getDigest(HandshakeHash.java:310)
        at sun.security.ssl.HandshakeHash.setFinishedAlg(HandshakeHash.java:229)
        at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:753)
        at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:224)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
        at sun.security.ssl.Handshaker$1.run(Handshaker.java:966)
        at sun.security.ssl.Handshaker$1.run(Handshaker.java:963)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1416)
        ... 1 more
Caused by: java.security.NoSuchAlgorithmException: no such algorithm: SHA-256 for provider SunPKCS11-NSS
        at sun.security.jca.GetInstance.getService(GetInstance.java:101)
        at sun.security.jca.GetInstance.getInstance(GetInstance.java:218)
        at java.security.Security.getImpl(Security.java:724)
        at java.security.MessageDigest.getInstance(MessageDigest.java:275)
        at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:339)
        ... 11 more

Трассировка стекас NSS 3.39, JRE 8 с TLS 1.0 и TLS 1.1 :

java.lang.RuntimeException: Algorithm MD5 not available
18:32:12,705 INFO  [STDOUT] MultiProtocolServer
18:32:12,705 INFO  [STDOUT] , SEND TLSv1 ALERT:
18:32:12,705 INFO  [STDOUT] fatal,
18:32:12,705 INFO  [STDOUT] description = internal_error
18:32:12,705 INFO  [STDOUT] MultiProtocolServer, WRITE: TLSv1 Alert, length = 2
18:32:12,705 INFO  [STDOUT] [Raw write]: length = 7
18:32:12,705 INFO  [STDOUT] 48
18:32:12,705 INFO  [STDOUT] 48
18:32:12,705 INFO  [STDOUT] 48
18:32:12,705 INFO  [STDOUT] 48
18:32:12,705 INFO  [STDOUT] :
18:32:12,705 INFO  [STDOUT] 49
Caused by: java.lang.RuntimeException: Algorithm MD5 not available
        at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:342)
        at sun.security.ssl.CloneableDigest.getDigest(HandshakeHash.java:310)
        at sun.security.ssl.HandshakeHash.protocolDetermined(HandshakeHash.java:149)
        at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:523)
        at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:224)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
        at sun.security.ssl.Handshaker$1.run(Handshaker.java:966)
        at sun.security.ssl.Handshaker$1.run(Handshaker.java:963)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1416)
        ... 1 more
Caused by: java.security.NoSuchAlgorithmException: no such algorithm: MD5 for provider SunPKCS11-NSS
        at sun.security.jca.GetInstance.getService(GetInstance.java:101)
        at sun.security.jca.GetInstance.getInstance(GetInstance.java:218)
        at java.security.Security.getImpl(Security.java:724)
        at java.security.MessageDigest.getInstance(MessageDigest.java:275)
        at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:339)
        ... 11 more
...