SSLHandshake Excepción después de eliminar los cifrados relacionados con SHA del lado del servidor

0

Usamos Java 1.8.0_121 y la versión 4.4.1 del cliente HTTP de Apache en el lado del cliente.

He eliminado todos los cifrados relacionados con SHA del lado del servidor para mejorar la seguridad de la aplicación. Por ejemplo, he eliminado ECDHE-RSA-AES256-SHA .

Desafortunadamente, comencé a obtener SSLHandshakeException (ver más abajo). Todavía tengo en mi servidor la configuración del lado SHA256 , SHA384 cifrados. Por ejemplo, ECDHE-ECDSA-AES128-GCM-SHA256 o ECDHE-RSA-AES256-SHA384 . En el lado del cliente, usamos el proveedor de Bouncy Castle y deberíamos admitir estos cifrados: enlace

¿Por qué sucede y qué debo hacer para prevenir el problema?

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[?:1.8.0_121]
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) ~[?:1.8.0_121]
        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023) ~[?:1.8.0_121]
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125) ~[?:1.8.0_121]
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_121]
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[?:1.8.0_121]
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[?:1.8.0_121]
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient-4.4.1.jar:4.4.1]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) ~[httpclient-4.4.1.jar:4.4.1]

Agregado

Digamos que entiendo por qué todavía puedo usar ECDHE-RSA-AES256-SHA. Todavía no entiendo por qué falla.

¿ECDHE-RSA-AES256-SHA utiliza HMAC SHA-1? ¿Dónde puedo encontrar la cantidad de bits utilizados por HMAC SHA-1?

    
pregunta Michael 19.02.2017 - 09:11
fuente

0 respuestas

Lea otras preguntas en las etiquetas