2015-06-08 15 views
6

Mi collego al mio database Google Cloud SQL tramite SSL. Io uso codeigniter 3.0 per farlo, sebbene il driver mysqli sia leggermente modificato per consentire questa funzionalità.Operazione SSL non riuscita con codice 1: chiave dh troppo piccola

Funziona bene da mesi. Tuttavia solo iniziato a restituire questo avvertimento:

Message: mysqli::real_connect(): SSL operation failed with code 1. OpenSSL Error messages: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small 

Sto assumendo DH Key is too small è il problema principale, ma non ho idea di cosa significhi. Ho cercato su Google lo scambio di chiavi Diffie-Hellman, insieme al messaggio "chiave troppo piccola" ma non ho avuto molta fortuna.

È un segno che i tasti sul server sono stati manomessi? Ho controllato le date modificate per ultime su di loro - nessun accesso recente anormale.

Potrebbe essere che il mio server abbia fatto l'aggiornamento a PHP o alla configurazione del proprio server, il che potrebbe causare l'interruzione, ma volevo controllare e verificare che non fosse qualcos'altro.

Grazie per eventuali approfondimenti/materiale leggibile sul soggetto.

+2

Prova a cambiare SSLCipherSuite nel file httpd.conf – codex

risposta

10
... error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small 

Il numero di errore che ti interessa è l'errore 0x14082174 OpenSSL.

Il SSL3_CHECK_CERT_AND_ALGORITHM viene solitamente visualizzato quando si abilitano le cifre del grado di esportazione. Potrebbe essere mostrato di nuovo in negoziazioni non di esportazione a causa di Logjam (vedi sotto).


Sto assumendo chiave DH è troppo piccolo è il problema principale, ma non ho idea di che cosa ciò significhi. Ho cercato su Google lo scambio di chiavi Diffie-Hellman, insieme al messaggio "chiave troppo piccola" ma non ho avuto molta fortuna.

Ciò è dovuto al recente Logjam attack dal documento Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice.

È necessario utilizzare gruppi Diffie-Hellman a 2048 bit o più grandi. È necessario non utilizzare gruppi Diffie-Hellman a 512 bit o 1024 bit.

La prima cosa da controllare è la stringa della lista di codici. Dovrebbe essere simile a:

"HIGH:!aNULL:!MD5:!RC4" 

Eviterà i codici di esportazione e utilizzerà codici moderni. Ma dovrai anche assicurarti che la tua richiamata DH non stia usando una dimensione campo debole/piccola. Per questo, è necessario verificare la configurazione del server.


Alcune persone stanno "risolvendo" il problema con kRSA. kRSA è una chiave schema trasporto, non una chiave accordo schema. Lo schema di trasporto delle chiavi RSA non fornisce la segretezza e il suo uso è solitamente scoraggiato. Infatti, sarà rimosso da TLS 1.3.

Posso solo dire "di solito scoraggiato" perché dipende dai dati protetti. Se hai SSL/TLS per proteggere i download di un file disponibile pubblicamente, probabilmente è OK da usare. Se il tuo sito web ha un accesso, probabilmente è un po 'rischioso utilizzarlo perché la password è un dato segreto (a differenza del file pubblicamente scaricabile).

Per evitare il trasporto chiave e superare quei Qualsys SSL Labs test per le configurazioni di server web e la segretezza in avanti, utilizzare:

"HIGH:!aNULL:!kRSA:!MD5:!RC4" 

Nel file di configurazione di Apache, dovrebbe apparire in questo modo:

# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite 
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4 

Mi sembra di ricordare wget respinti piccoli gruppi un po 'di tempo prima che il documento fosse pubblicato. Potrebbe essere un buon banco di prova per il tuo sito.

C'è anche un miglioramento sslscan, che verifica un sacco di cose. Potrebbe anche essere un buon strumento di controllo qualità.

+0

Grazie per la tua comprensione. Incredibilmente apprezzato. – markbratanov

Problemi correlati