2015-06-08 7 views
6

Ich verbinde mich mit meiner Datenbank Google Cloud SQL über SSL. Ich benutze codeigniter 3.0 dazu, obwohl der mysqli-Treiber etwas modifiziert ist, um diese Funktionalität zu ermöglichen.SSL-Vorgang fehlgeschlagen mit Code 1: dh Schlüssel zu klein

Es funktioniert seit Monaten gut. Doch es nur begann diese Warnung zurück:

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 

ich DH Key is too small gehe davon ist das Hauptproblem, aber ich habe keine Ahnung, was das bedeutet. Ich habe Diffie-Hellman Schlüsselaustausch gegoogelt, zusammen mit der Nachricht "Schlüssel zu klein", aber ich hatte nicht viel Glück.

Ist dies ein Zeichen, dass die Schlüssel auf dem Server manipuliert wurden? Ich habe die zuletzt geänderten Daten überprüft - keine abnormalen Zugriffe.

Es könnte sein, dass mein Server ein Upgrade auf PHP oder ihre Serverkonfiguration durchgeführt hat, was zu einem Bruch führen könnte, aber ich wollte überprüfen und sicherstellen, dass es nicht etwas anderes ist.

Danke für jede Einsicht/lesbares Material zu diesem Thema.

+2

Versuchen Sie, SSLCipherSuite in httpd.conf Datei – codex

Antwort

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

Die Fehlernummer Sie interessiert sind, ist die OpenSSL Fehler 0x14082174.

Die SSL3_CHECK_CERT_AND_ALGORITHM wird normalerweise beim Aktivieren von Export-Verschlüsselungscodes angezeigt. Aufgrund von Logjam (siehe unten) könnte es bei Non-Export-Verhandlungen wieder zum Vorschein kommen.


Ich gehe davon aus DH-Schlüssel zu klein ist, ist das Hauptproblem, aber ich habe keine Ahnung, was das bedeutet. Ich habe Diffie-Hellman Schlüsselaustausch gegoogelt, zusammen mit der Nachricht "Schlüssel zu klein", aber ich hatte nicht viel Glück.

, die zu den letzten Logjam attack aus dem Papier Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice fällig.

Sie sollten 2048-Bit-Diffie-Hellman-Gruppen oder größer verwenden. Sie sollten nicht 512-Bit- oder 1024-Bit-Diffie-Hellman-Gruppen verwenden.

Die erste Sache, nach der Sie suchen, ist Ihre Chiffre Liste Zeichenfolge. Es sollte ähnlich sein:

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

Es wird die Exportgüteklasse Chiffren vermeiden und moderne Chiffren verwenden. Sie müssen jedoch auch sicherstellen, dass Ihr DH-Rückruf keine schwache/kleine Feldgröße verwendet. Dazu müssen Sie die Serverkonfiguration überprüfen.


Einige Leute mit kRSA "Lösung" das Problem sind. kRSA ist ein Schlüssel Transport Schema, kein Schlüssel Vereinbarung Schema. Das RSA-Schlüsseltransportschema bietet keine Vorwärtsgeheimhaltung, und seine Verwendung wird normalerweise nicht empfohlen. Tatsächlich wird es aus TLS 1.3 entfernt.

Ich kann nur sagen "normalerweise entmutigt", weil es auf die Daten abhängt, die geschützt werden. Wenn Sie SSL/TLS zum Schutz von Downloads einer öffentlich verfügbaren Datei haben, ist es wahrscheinlich in Ordnung, sie zu verwenden. Wenn Ihre Website eine Anmeldung hat, ist es wahrscheinlich ein wenig riskant, sie zu verwenden, da das Passwort geheime Daten ist (anders als die öffentlich herunterladbare Datei).

Schlüsseltransport zu vermeiden und diese Qualsys SSL Labs Tests für Web-Server-Konfigurationen und Forward Secrecy übergeben, verwenden:

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

In der Apache-Konfigurationsdatei, wäre es wie so aussehen:

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

Ich scheine mich zu erinnern, wget abgelehnt kleine Gruppen ziemlich lange bevor das Papier veröffentlicht wurde. Es könnte ein guter Test für Ihre Website sein.

Es gibt auch eine verbesserte sslscan, die für viele Dinge testet. Das könnte auch ein gutes QA-Tool sein.

+0

zu ändern Danke für Ihren Einblick. Sehr geschätzt. – markbratanov

Verwandte Themen