Il problema principale è probabilmente che un IE di quell'epoca vorrebbe supportare SSL 2.0 e, quindi, invia il suo messaggio iniziale ( ClientHello
) nel formato SSL 2.0, che non ha nulla in comune con ClientHello
versioni successive del protocollo (SSL 3.0 e tutte le versioni TLS). Ciò ha permesso al browser di connettersi a un server che conosceva SSL 2.0 ma nient'altro, mentre ClientHello
continua a documentare che il client è pronto per utilizzare qualcosa di più moderno.
Tuttavia, i server moderni non supportano più il formato diClientHello
di SSL-2.0%. C'è stato un periodo transitorio durante il quale hanno ancora accettato quel formato (anche se non avrebbero permesso alla connessione di utilizzare effettivamente SSL 2.0), ma ora hanno abbandonato del tutto il supporto. In particolare, il formato diClientHello
SSL-2.0% non ha spazio per estensioni come SNI, il che spiega l'urgenza di abbandonare tale supporto.
Altri problemi includono quanto segue:
-
IE 6.0 supporta TLS 1.0 ma è disattivato per impostazione predefinita. Non so se IE 5 avrebbe supportato TLS 1.0, ma in ogni caso non sarebbe stato abilitato di default. Tuttavia, molti server moderni rifiutano anche SSL 3.0 (a causa di POODLE, come notato da @etherealflux).
-
Il codice cliente non saprà nulla di AES, poiché risale a prima della standardizzazione di quell'algoritmo. Proverà ad usare le suite di crittografia basate su RC2, 3DES, possibilmente su RC4 (questo richiederebbe una certa verifica perché RC4 era di proprietà di nemesi di IE, Netscape, quindi probabilmente IE 5 non lo userebbe). Al giorno d'oggi questi algoritmi non sono molto popolari tra gli amministratori dei server ...
-
I siti moderni utilizzano chiavi crittografiche piuttosto grandi. In genere, RSA con chiavi di almeno 2048 bit. Un vecchio Windows + IE potrebbe essere più limitato nelle dimensioni delle chiavi RSA che può gestire. In particolare, un Windows + IE conforme alle regole di esportazione degli Stati Uniti sulla crittografia dell'era precedente al 2000 potrebbe essere limitato fino a una dimensione massima di 1024 bit per chiavi RSA. La stessa combinazione rifiuterebbe anche di usare 3DES o qualsiasi cosa con una chiave simmetrica maggiore di 56 bit, mentre nessun server decente del 2015 accetterebbe qualcosa di meno di 128 bit.
Per i sistemi basati su Linux, non esiste un'implementazione SSL centrale (spesso esiste una libreria OpenSSL, ma non qualcosa di pervasivo come SChannel e CryptoAPI di Microsoft). Quindi ogni browser avrà le sue regole. Prima del 2000, questo avrebbe significato Nestcape Navigator (quello che segfaults quando vede qualcosa in UTF-8 ...). Forse alcuni dei primi browser basati su KDE potrebbero fare un po 'di SSL? In tal caso, probabilmente userebbe OpenSSL e che dovrebbe comunque essere in grado di connettersi ad alcuni server, con la configurazione corretta (in particolare se si evita il formato SSL-2.0 per ClientHello
).