HTTPS ez da beti dirudien bezain segurua. HTTPS guneen % 5,5etan aurkitutako ahultasunak

HTTPS ez da beti dirudien bezain segurua. HTTPS guneen % 5,5etan aurkitutako ahultasunak
Alexa-ren gune nagusietako bat (zirkulu zentrala), HTTPS bidez segurtatua, azpidomeinuekin (grisa) eta menpekotasunekin (zuria), eta horien artean zaurgarriak daude (itzal marraduna)

Gaur egun, HTTPS konexio seguruaren ikonoa edozein gune serioren estandar eta beharrezko atributu bihurtu da. Bada ziurtagiria faltan, ia azken nabigatzaile guztiek abisua erakusten dute gunerako konexioa "ez da segurua" eta ez gomendatzen isilpeko informazioa hari transferitzea.

Baina konturatzen da helbide barran "blokeoa" egoteak ez duela beti babesa bermatzen. 10 gune nagusi egiaztatzen baloraziotik, Alexa-k erakutsi zuen horietako asko SSL / TLS protokoloetan ahultasun kritikoen menpe daudela, normalean azpidomeinuen edo mendekotasunen bidez. Ikerketaren egileen arabera, web aplikazio modernoen konplexutasunak eraso-azalera asko handitzen du.

Ikerketaren emaitzak

Ikerketa Ca' Foscari Veneziako Unibertsitateko (Italia) eta Vienako Unibertsitate Teknikoko adituek egin dute. Txosten zehatza aurkeztuko dute 40ko maiatzaren 20tik 22ra San Frantziskon ospatuko den Segurtasun eta Pribatutasunari buruzko 2019. IEEE Symposiumean.

Alexa zerrendako 10 HTTPS gune nagusiak eta erlazionatutako 000 ostalari probatu ziren. Konfigurazio kriptografiko zaurgarriak detektatu dira 90 ostalaritan, hau da, guztizkoaren %816 gutxi gorabehera:

  • 4818 MITMren aurrean zaurgarria
  • 733 TLS deszifratze osoa jasan dezakete
  • 912 TLS deszifratze partzialaren aurrean zaurgarriak dira

898 gune erabat irekita daude hackingerako, hau da, kanpoko scripten injekzioa ahalbidetzen dute, eta 977 gunek gaizki babestutako orrialdeetako edukia kargatzen dute, erasotzaileak elkarrekintzan jar ditzaketenak.

Ikertzaileek azpimarratzen dute "erabat konprometituta" dauden 898 baliabideen artean sareko dendak, finantza zerbitzuak eta beste gune handi batzuk daudela. 660 gunetik 898k kanpoko script-ak deskargatzen dituzte ostalari zaurgarrietatik: hori da arrisku-iturri nagusia. Egileen arabera, web aplikazio modernoen konplexutasunak eraso-azalera asko handitzen du.

Beste arazo batzuk ere aurkitu dira: baimen-formularioen %10ek informazioaren transmisio seguruan arazoak dituzte, eta horrek pasahitzak isurtzearekin mehatxatzen du, 412 gunek cookieak atzematea eta saioaren bahiketa ahalbidetzen dute eta 543 gunek cookieen osotasunaren aurkako erasoak jasaten dituzte (azpidomeinuen bidez). .

Arazoa da azken urteotan SSL / TLS protokoloak eta softwareak ahultasun batzuk identifikatu ditu: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) eta Heartbleed (CVE-2014-0160). Horien aurka babesteko, hainbat ezarpen behar dira zerbitzarian eta bezeroaren aldetik bertsio zaurgarri zaharrak ez erabiltzeko. Baina prozedura ez-trivial samarra da, horrelako ezarpenek zifra eta protokolo multzo zabal batetik aukeratzea dakarrelako, oso zaila baita ulertzen. Ez dago beti argi zein zifra-suite eta protokolo "nahikoa segurutzat" jotzen diren.

Gomendatutako ezarpenak

Ez dago inor ofizialki onartutako eta adostutako HTTPS ezarpen gomendatuen zerrenda. Beraz, Mozilla SSL konfigurazio-sorgailua hainbat konfigurazio aukera eskaintzen ditu, behar den babes-mailaren arabera. Adibidez, hona hemen nginx 1.14.0 zerbitzari baterako gomendatutako ezarpenak:

Modu modernoa

Onartutako bezero zaharrenak: Firefox 27, Chrome 30, IE 11 Windows 7, Edge, Opera 17, Safari 9, Android 5.0 eta Java 8-n

server {
listen 80 default_server;
listen [::]:80 default_server;

# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;


# modern configuration. tweak to your needs.
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;

## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver <IP DNS resolver>;

....
}

Euskarri ertaina

Onartutako bezero zaharrenak: Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7

server {
listen 80 default_server;
listen [::]:80 default_server;

# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;

# intermediate configuration. tweak to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;

## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver <IP DNS resolver>;

....
}

Euskarri Zaharra

Onartutako bezero zaharrenak: Windows XP IE6, Java 6

server {
listen 80 default_server;
listen [::]:80 default_server;

# Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /path/to/dhparam.pem;

# old configuration. tweak to your needs.
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP';
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;

## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver <IP DNS resolver>;

....
}

Gomendagarria da beti zifratze-multzo osoa eta OpenSSL-ren azken bertsioa erabiltzea. Zerbitzariaren ezarpenetako zifratze-multzoak zehazten du zein lehentasun erabiliko diren, bezeroaren ezarpenen arabera.

Ikerketak erakusten du ez dela nahikoa HTTPS ziurtagiri bat instalatzea. "2005ean bezala kudeatzen ez ditugun cookieak eta 'TLS duina' ohikoa bihurtu den arren, oinarrizko gauza hauek ez dira nahikoak gune ezagunen kopuru harrigarri bat ziurtatzeko". esaten dute lanaren egileak. Zerbitzariaren eta bezeroaren arteko kanala modu fidagarrian babesteko, arretaz kontrolatu behar duzu zure azpidomeinuetatik eta webgunerako edukia hornitzen den hirugarrenen ostalarietatik azpiegitura. Agian zentzuzkoa izango da informazioaren segurtasunean espezializatutako hirugarren enpresaren bati auditoria bat eskatzea.

HTTPS ez da beti dirudien bezain segurua. HTTPS guneen % 5,5etan aurkitutako ahultasunak

Iturria: www.habr.com