Può accedere al sito bloccato usando lynx ma non cURL né browser

4

Non sono sicuro che questo sia il posto giusto per chiederlo, ma eccolo qui.

Il governo del paese in cui vivo ha bloccato wikipedia.org . Per curiosità, stavo cercando di capire quali metodi sono stati utilizzati, ecc. Dopo aver modificato il resolver DNS predefinito in Cloudflare (1.1 .1.1), ora sono in grado di visitare l'indirizzo collegamento utilizzando il browser lynx della CLI. Tuttavia, non sono in grado di visitare il sito dal mio browser (Safari), né cURL. L'output del comando curl https://wikipedia.org/ -vv restituisce:

*   Trying 103.102.166.224...
* TCP_NODELAY set
* Connected to wikipedia.org (103.102.166.224) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /anaconda3/ssl/cacert.pem
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to wikipedia.org:443 
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to wikipedia.org:443 

Domande:

  • Da un punto di vista tecnico, perché esattamente non posso accedere al link ?
  • Che cosa fa in modo che lynx possa accedere al sito mentre cURL non può? Penso che abbia a che fare con i certificati CA e ssl, ma non riesco a capire come il governo possa modificare i certificati sul mio dispositivo.

EDIT: solo per chiarimenti, non sono interessato a commenti su come aggirare questo blocco o altro; ovviamente ci sono molti modi, ma sono irrilevanti a questa domanda.

EDIT1: Versioni

cURL:

curl 7.58.0 (x86_64-apple-darwin13.4.0) libcurl/7.58.0 OpenSSL/1.0.2o zlib/1.2.11
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy

lynx:

Lynx Version 2.8.8rel.2 (09 Mar 2014)
libwww-FM 2.14, SSL-MM 1.4.1, OpenSSL 1.0.2o, ncurses 5.7.20081102
Built on darwin17.0.0 Sep 18 2017 16:36:30
    
posta mlg556 20.05.2018 - 18:52
fonte

1 risposta

1

Il tuo governo ha probabilmente bloccato le connessioni a wikipedia.org osservando l'Indicatore del nome del server (SNI) sull'handshake https e forzando un errore se il dominio si trova sulla loro lista nera.

Probabilmente la tua versione di lynx non fornisce il server di dominio nell'estensione SNI TLS, mentre Safari e arricciatura lo fanno. Wikipedia funziona bene senza un nome server esplicito al livello TLS (avrà fornito un carattere jolly cert * .wikipedia.org, con wikipedia.org come nome alternativo, quindi non è necessario presentare un certificato diverso al tuo cliente). Se i filtri del tuo governo non soddisfano questo caso (o semplicemente non volevano bloccare tutto per il quale non avevano un nome host completo), tale connessione sarebbe consentita, con il fallimento della maggior parte degli altri client.

Secondo il lynx changelog mi aspetterei che la tua versione lynx supporti SNI, tuttavia (aggiunto a 2.8.7pre.2 per openssl, su 2.8.8dev.15 per GNUTLS). Puoi facilmente confermare se viene fornito con un dump di pacchetti.

    
risposta data 15.07.2018 - 00:24
fonte

Leggi altre domande sui tag