In SSL, le cose vanno così: il client cerca il nome del server nel DNS; quindi si connette all'indirizzo IP generato dal DNS; quindi si verifica l'handshake SSL, durante il quale il server invia il suo certificato. Si noti che l'URL effettivo non è stato inviato da nessuna parte in quel punto, solo il nome del server; quindi possiamo ignorare l'URL per la diagnosi.
Poiché il problema ha ripercussioni su diverse macchine con SO e browser distinti, possiamo probabilmente escludere bug del browser e del sistema operativo.
Google, Barnes and Noble, Facebook ... sono creazioni umane che, in quanto tali, sono imperfette e possono fallire occasionalmente; ma è abbastanza improbabile che tutti falliscano simultaneamente.
Se sei il bersaglio di un attacco Man-in-the-Middle , allora l'attaccante è singolarmente incompetente. Anche questo è abbastanza improbabile.
Per riassumere, il problema è probabilmente da qualche parte tra il router e l'ISP. I sintomi che osservate sono coerenti con l'ipotesi che la connessione TCP dal browser, precedentemente indirizzata a www.google.com
, finisca su iCloud di Apple. server. Un primo scenario potenziale è il seguente:
Your router is a DNS relay. Over DHCP, it actually configures your home machines to use the router as DNS server, and that router will feed on the external DNS server you configured (Google's DNS server). In that case, if the router mixes its internal tables (due to a software bug or bad RAM), then it may gives wrong IP addresses to your machines.
In tale scenario, il problema non è limitato a SSL. Infatti, quando il browser vuole connettersi a qualsiasi server, richiede il nome del server ma non la porta o il protocollo. Pertanto, se tale ipotesi è corretta, anche le connessioni HTTP non SSL dovrebbero occasionalmente fallire. Ad esempio, se la tua connessione a www.facebook.com
viene reindirizzata all'indirizzo IP di www.google.com
, riceverai una risposta Google (in realtà un reindirizzamento alla pagina principale di Google) e nulla di simile a Facebook.
Se solo le tue connessioni SSL hanno problemi, allora questo non è un problema DNS. Ciò indicherebbe un secondo potenziale scenario:
Your ISP has some problem with its dynamic routing. It tries to route traffic optimally, moving packets between several destinations. These routing decision can be port-specific, thus explaining why the problem occurs with SSL only. For some reason (possibly bad RAM again, in one of the ISP routers), packets can get misdirected.
Ho conosciuto un vecchio router Cisco (con RAM scadente) che si comportava un po 'in quel modo. Quando un router elabora un pacchetto IP, deve copiare e modificare parzialmente l'intestazione (almeno per modificare il TTL) in modo che i bug nel router possano causare un errore nell'indirizzo di destinazione.
Questo scenario ha una variante in cui il tuo router ha una RAM cattiva (di nuovo ...) e viaggia sui suoi piedi quando fa NAT .
Per diagnosticare ulteriormente il problema:
-
Quando si verifica il problema, dallo stesso computer, fai un nslookup www.google.com
(se vuoi contattare Google ma è stato reindirizzato da qualche altra parte) poi openssl s_client -connect www.google.com:443
(utilizzando il OpenSSL strumento da riga di comando - se usi Linux o MacOS X, lo hai già). Questo ti dirà quale indirizzo IP viene restituito dal DNS e quale certificato viene restituito dal server che presumibilmente risponde a tale indirizzo.
-
Se il problema è intermittente (ovvero la connessione del browser non funziona, ma riprova immediatamente), prova a eseguire uno strumento di acquisizione della rete come Wireshark o Network Monitor per osservare esattamente cosa è successo quando il problema si è verificato. Vedrai gli indirizzi IP visti dal tuo computer.
-
Cambia il tuo router di casa. Ad esempio, prendere in prestito un vecchio router da un amico o acquistarne uno nuovo (costano 40 $). Se il problema riguarda il tuo ISP, il personale di supporto dell'ISP probabilmente sosterrà che il tuo router è in errore, quindi questo passaggio non può essere assolutamente evitato. Se la modifica del router rimuove il problema, allora sai ancora una volta che la RAM è andata male.