Das Hauptproblem besteht wahrscheinlich darin, dass ein IE aus dieser Zeit SSL 2.0 unterstützen möchte und daher seine ursprüngliche Nachricht ( ClientHello
) im SSL 2.0-Format sendet, das ungefähr nichts gemeinsam hat mit dem ClientHello
späterer Protokollversionen (SSL 3.0 und alle TLS-Versionen). Dadurch konnte der Browser eine Verbindung zu einem Server herstellen, der SSL 2.0 kannte, aber nichts anderes, während der ClientHello
weiterhin dokumentiert, dass der Client bereit ist, etwas Moderneres zu verwenden.
Allerdings modern Server unterstützen das SSL-2.0 ClientHello
-Format nicht mehr. Es gab eine Übergangszeit, in der sie dieses Format noch akzeptierten (obwohl sie nicht zuließen, dass die Verbindung tatsächlich SSL 2.0 verwendet), aber jetzt haben sie die Unterstützung insgesamt eingestellt. Insbesondere das SSL-2.0 ClientHello
-Format bietet keinen Platz für Erweiterungen wie SNI, was den Drang erklärt, diese Unterstützung einzustellen.
Weitere Probleme sind:
-
IE 6.0 unterstützt TLS 1.0, ist jedoch standardmäßig deaktiviert. Ich weiß nicht, ob IE 5 TLS 1.0 unterstützt hätte, aber auf jeden Fall wäre es nicht standardmäßig aktiviert worden. Viele moderne Server lehnen jedoch auch SSL 3.0 ab (aufgrund von POODLE, wie von @etherealflux festgestellt).
-
Der Client-Code kennt AES nicht, da er von stammt vor der Standardisierung dieses Algorithmus. Es wird versucht, Cipher Suites zu verwenden, die auf RC2, 3DES und möglicherweise RC4 basieren (dies würde eine gewisse Überprüfung erfordern, da RC4 die Eigenschaft von IE-Nemesis Netscape war, sodass IE 5 es möglicherweise nicht verwenden würde). Diese Algorithmen sind heutzutage bei Serveradministratoren nicht sehr beliebt ...
-
Moderne Websites verwenden ziemlich große kryptografische Schlüssel. Typischerweise RSA mit Schlüsseln von mindestens 2048 Bit. Ein alter Windows + IE ist möglicherweise in der Größe der RSA-Schlüssel, die er verarbeiten kann, eingeschränkter. Insbesondere ein Windows + IE, der den US-Exportregeln für Kryptographie der Zeit vor 2000 entspricht, könnte auf eine maximale Größe von 1024 Bit für RSA-Schlüssel beschränkt werden. Dieselbe Kombination würde sich auch weigern, 3DES oder etwas mit einem symmetrischen Schlüssel größer als 56 Bit zu verwenden, während kein anständiger Server von 2015 weniger als 128 Bit akzeptieren würde.
Für Auf Linux-basierten Systemen gibt es keine zentrale SSL-Implementierung (häufig gibt es eine OpenSSL-Bibliothek, die jedoch nicht so allgegenwärtig ist wie Microsoft SChannel und CryptoAPI). Jeder Browser hat also seine eigenen Regeln. Vor 2000 hätte dies Nestcape Navigator bedeutet (derjenige, der fehlerhaft ist, wenn in UTF-8 etwas angezeigt wird ...). Vielleicht könnte ein früher KDE-basierter Browser etwas SSL? In diesem Fall würde wahrscheinlich OpenSSL und verwendet, damit weiterhin eine Verbindung zu einigen Servern mit der richtigen Konfiguration herstellen kann (insbesondere, wenn das SSL-2.0-Format für den ClientHello code vermieden wird >).