TLSv1 funktioniert nicht ohne Aktivierung von SSLv2

TLSv1 funktioniert nicht ohne Aktivierung von SSLv2

Ich verwende die Version Apache 2.2.4. Ich weiß bereits, dass diese Version nur SSLv2, SSLv3 und TLSv1.0 unterstützt, aber wenn ich sie verwende, passiert etwas Seltsames:

Wenn SSLv2 deaktiviert ist, verwendet der Webbrowser (in meinem Fall Internet Explorer) SSLv3

SSL 3.0, 3DES mit 168-Bit-Verschlüsselung (hoch); RSA mit 2048-Bit-Austausch.

Wenn ich SSLv2 aktiviere, verwendet der Webbrowser TLSv1.0:

TLS 1.0, AES mit 256-Bit-Verschlüsselung (Hoch); RSA mit 2048-Bit-Austausch

Und wenn ich schließlich beide Protokolle (SSLv2 und v3) deaktiviere, wird die Webseite überhaupt nicht geladen!

Ich habe diese Konfiguration für Apache verwendet:

SSLProtocol all
SSLCipherSuite all

Können Sie mir das bitte erklären? Wie kann ich TLSv1.0 verwenden, ohne SSLv2 zu aktivieren?

Antwort1

Dieses Verhalten wird durch die ursprüngliche Spezifikation von TLS v1 RFC verursacht (RFC 2246, Abschnitt „E. Abwärtskompatibilität mit SSL“).

Grundsätzlich besagt dieser RFC, dass die meisten Server für verschiedene Versionen von SSL/TLS keine unterschiedlichen Abhörports verwenden. Um die Abwärtskompatibilität sicherzustellen, wird daher empfohlen, die Verbindung zunächst mit einer „alten“ SSL-Hello-Nachricht zu initiieren, die Verbindung dann auf TLS zu aktualisieren, wenn dies auf beiden Seiten unterstützt wird, und niemals zu versuchen, eine Verbindung direkt über TLS herzustellen („TLS 1.0-Clients, die SSL-Version 2.0-Server unterstützen, müssen SSL-Version 2.0-Client-Hello-Nachrichten senden“).

Frühere Java-Versionen (JRE5) hatten dieses Verhalten, es wurde in neueren Versionen verbessert, die jetzt den TLS-Handshake direkt handhaben. Vielleicht sollten Sie Ihre Browserversion und Ihren Patch-Level überprüfen und prüfen, ob dieses Verhalten auch nach dem Deaktivieren von SSLv2 auf der Browserseite weiterhin besteht.

verwandte Informationen