SSL / TLS - Risultato della convalida della catena di certificati in "Tipo di autenticazione non valido: DHE_RSA"

0

Ho un'applicazione che si connette a un servizio Web remoto distribuito su HTTPS. La nostra applicazione utilizza FIPS-140 Level-1 per la connettività SSL / TLS e si basa sui fornitori JCE di RSA (la società).

com.rsa.jsse.JsseProvider.JsseProvider()
RsaJsse version 6.14

com.rsa.jsafe.provider.JsafeJCE.JsafeJCE()
JsafeJCE version 6.11

Recentemente il team del servizio web ha apportato modifiche alla loro fine per abilitare i codici DH. Dopo questa modifica, il codice che viene selezionato per SSL è TLS_DHE_RSA_WITH_AES_256_GCM_SHA384. Tuttavia, la convalida della catena di certificati sembra non riuscire con l'eccezione seguente:

java.lang.IllegalArgumentException: Invalid authentication type: DHE_RSA
    at com.rsa.sslj.x.cj.checkClientTrusted(Unknown Source)
    at com.example.MyX509TrustManager.checkServerTrusted(ReloadableX509TrustManager.java:65)
    at com.rsa.sslj.x.aE.a(Unknown Source)
    at com.rsa.sslj.x.bg.a(Unknown Source)
    at com.rsa.sslj.x.bg.a(Unknown Source)
    at com.rsa.sslj.x.bg.a(Unknown Source)
    at com.rsa.sslj.x.aH.a(Unknown Source)
    at com.rsa.sslj.x.aH.a(Unknown Source)
    at com.rsa.sslj.x.ap.c(Unknown Source)
    at com.rsa.sslj.x.ap.a(Unknown Source)
    at com.rsa.sslj.x.ap.j(Unknown Source)
    at com.rsa.sslj.x.ap.i(Unknown Source)
    at com.rsa.sslj.x.ap.h(Unknown Source)
    at com.rsa.sslj.x.aS.startHandshake(Unknown Source)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:261)
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:118)

Qualcuno può guidarmi per favore qual è il significato di "Tipo di autenticazione non valido: DHE_RSA"? Prima dell'abilitazione di DH Cipher nel webservice back-end, questo tipo di autenticazione era "RSA" e non abbiamo mai riscontrato problemi.

Ho letto nei commenti di questa domanda che questo errore può venire se l'algoritmo non è approvato FIPS-140. Può essere il caso qui?

Si noti che il metodo com.example.MyX509TrustManager.checkServerTrusted non fa nulla di speciale - è scritto per saltare la convalida della catena di certificati in alcuni casi speciali, altrimenti delegherà a java.net.ssl.TrustManager#checkClientTrusted - in questo caso TrustManager è un'istanza di una classe RSA il cui nome è offuscato nei vasi RSA.

UPDATE:

Sembra che com.rsa.sslj.x.cj.checkClientTrusted si aspetti che l'algoritmo utilizzato nella chiave pubblica sia DHE_RSA , poiché l'algoritmo utilizzato nella catena di certificati del servizio Web remoto è RSA - riporta un errore che dice Invalid authentication type . Il team di servizio web remoto ha recentemente aggiunto dhparam alla configurazione SSL per evitare la vulnerabilità di logjam , ma non ha apportato alcuna modifica al certificato. Non sono sicuro del motivo per cui il nostro client SSL ha iniziato a non riuscire a connettersi al servizio remoto da allora, e c'è qualcosa che devo fare perché la nostra applicazione o il team dei servizi web remoti abbiano bisogno di qualcosa. Qualsiasi input a questo riguardo sarà molto utile

    
posta Wand Maker 28.04.2017 - 11:51
fonte

1 risposta

2

Il tuo checkServerTrusted personalizzato non deve essere inoltrato allo standard checkClientTrusted ma allo standard checkServerTrusted . Il authType per Server è un nome keyexchange, ma per Client è un nome di algoritmo - QUESTI NON SONO IN GENERALE LO STESSO e nel caso che hai appena incontrato sono e dovrebbero essere diversi.

FIPS140 specifica e limita gli algoritmi, non i costrutti di livello superiore come i keyexchanges TLS, le cifhersuites e i protocolli. DH è approvato (da 800-56A) solo con alcuni vincoli che non funzionano per TLS, ma è permesso per un caso che copre DHE_RSA con la Guida all'implementazione FIPS1402 D.8 ed è elencato come implementato in questo modo in quasi la tua versione JSAFE su CMVP # 2057. OTOH SP800-52 limita TLS per la maggior parte degli stessi sistemi di FIPS140 e r1 nel 2014 non consente DHE_RSA, ma # 2057 è precedente al 2014. Quindi sono abbastanza sicuro che non ci siano problemi con FIPS qui.

    
risposta data 29.04.2017 - 10:29
fonte

Leggi altre domande sui tag