Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Problemi

Scenario 1: Il server di hosting negozia un TLS non sicuro

Soluzione

Scenario 2: Il certificato contiene un algoritmo di firma non supportato

Soluzione

Introduzione

In questo documento vengono descritti i passaggi per la risoluzione dei problemi relativi allo scenario in cui una catena di certificati firmata da CA (Certification Authority) viene caricata in Finesse per un server Web esterno che ospita un gadget ma il gadget non viene caricato quando si accede a Finesse e viene visualizzato l'errore "SSLPeerUnverifyException".

Contributo di Gino Schweinsberger, Cisco TAC Engineer.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Certificati SSL

- Amministrazione Finesse

- Amministrazione di Windows Server

- Analisi della cattura dei pacchetti con Wireshark

Componenti usati

Le informazioni di questo documento si basano sulle seguenti versioni software:

- Unified Contact Center Express (UCCX) 11.X

- Finesse 11.X

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Premesse

Le condizioni dell'errore sono le seguenti:

- Si supponga che la catena di certificati sia caricata in Finesse

- Verificare che i server/servizi corretti siano stati riavviati

- Si supponga che il gadget sia stato aggiunto al layout Finesse con un URL HTTPS e che l'URL sia raggiungibile

Questo è l'errore osservato quando l'agente accede a Finesse:

"Si sono verificati problemi durante il rendering di questo gadget. javax.net.ssl.SSLPeerUnverifyException: peer non autenticato"

Problemi

Scenario 1: Il server di hosting negozia un TLS non sicuro

Quando Finesse Server effettua una richiesta di connessione al server di hosting, Finesse Tomcat annuncia un elenco di cifrari di crittografia che supporta.

Alcune cifrature non sono supportate a causa di vulnerabilità della sicurezza,

Se il server di hosting seleziona una di queste cifrature, la connessione viene rifiutata:

- TLS_DHE_RSA_WITH_AES_256_CBC_SHA

- TLS_DHE_RSA_WITH_AES_128_CBC_SHA

È noto che questi cifrari utilizzano chiavi Diffie-Hellman effimere deboli quando negoziano la connessione, e la vulnerabilità Logjam li rende una cattiva scelta per le connessioni TLS.

Seguire il processo di handshake TLS in un'acquisizione pacchetto per verificare quale cifratura viene negoziata.

1. Finesse presenta l'elenco delle cifrature supportate nel passaggio Client Hello:

2. Per questa connessione, TLS_DHE_RSA_WITH_AES_256_CBC_SHA è stato selezionato dal server di hosting durante il passaggio Server Hello perché è più in alto nella lista delle cifrature preferite.

3. Finesse invia un avviso di errore irreversibile e termina la connessione:

Soluzione

Per impedire l'utilizzo di questi cifrari, il server di hosting deve essere configurato in modo da assegnare loro una priorità bassa oppure devono essere rimossi completamente dall'elenco di cifrari disponibili. Questa operazione può essere eseguita in un server Windows con l'editor di Criteri di gruppo di Windows (gpedit.msc).

Nota: per ulteriori dettagli sugli effetti di Logjam in Finesse e l'uso di gpedit, controllare:

Scenario 2: Il certificato contiene un algoritmo di firma non supportato

Le autorità di certificazione di Windows Server possono utilizzare standard di firma più recenti per firmare i certificati. Anche se offre una maggiore sicurezza rispetto a SHA, l'adozione di questi standard al di fuori dei prodotti Microsoft è bassa e gli amministratori probabilmente incontreranno problemi di interoperabilità.

Finesse Tomcat si affida al provider di protezione SunMSCAPI di Java per abilitare il supporto per i vari algoritmi di firma e le funzioni di crittografia utilizzati da Microsoft. Tutte le versioni correnti di Java (1.7, 1.8 e 1.9) supportano solo questi algoritmi di firma:

- MD5 con RSA

- MD2 con RSA

- NONEwithRSA

- SHA1 con RSA

- SHA256conRSA

- SHA384 con RSA

- SHA512con RSA

È consigliabile controllare la versione di Java in esecuzione sul server Finesse per verificare quali algoritmi sono supportati in tale versione. Per controllare la versione dall'accesso alla directory principale, usare questo comando: java - versione

Nota: per ulteriori informazioni sul provider Java SunMSCAPI, visitare il sito Web all'indirizzo https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunMSCAPI

Se un certificato viene fornito con una firma diversa da quelle elencate sopra, Finesse non è in grado di utilizzare il certificato per creare una connessione TLS al server di hosting. Sono inclusi i certificati firmati con un tipo di firma supportato, ma emessi da autorità di certificazione che dispongono di propri certificati intermedi e radice firmati con qualcos'altro.

Se si osserva un'acquisizione di pacchetti, Finesse chiude la connessione con un "avviso di errore irreversibile: Errore "Certificato sconosciuto", come mostrato nell'immagine.

A questo punto è necessario controllare i certificati presentati dal server di hosting e cercare algoritmi di firma non supportati. È comune vedere RSASSA-PSS come l'algoritmo di firma problematico:

Se un certificato della catena è firmato con RSASSA-PSS, la connessione non riesce. In questo caso l'acquisizione del pacchetto indica che la CA radice utilizza RSASSA-PSS per il proprio certificato:

Soluzione

Per risolvere il problema, è necessario che un nuovo certificato venga rilasciato da un provider CA che utilizza solo uno dei tipi di firma SunMSCAPI supportati elencati nell'intera catena di certificati, come descritto in precedenza.

Nota: per ulteriori dettagli sull'algoritmo di firma RSASSA-PSS, vedere https://pkisolutions.com/pkcs1v2-1rsassa-pss/

Nota: Questo problema è registrato nel CSCve79330 difettoso