HTTPS er ikke alltid så sikkert som det ser ut. Sårbarheter har blitt funnet på 5,5 % av HTTPS-nettsteder.

HTTPS er ikke alltid så sikkert som det ser ut. Sårbarheter har blitt funnet på 5,5 % av HTTPS-nettsteder.
En av de mest populære nettsidene på Alexa (sentralkretsen), som er beskyttet av HTTPS, med subdomener (grå) og avhengigheter (hvit), blant dem er det sårbare (stripete utfylling).

I vår tid har ikonet for beskyttet tilkobling, HTTPS, blitt en standard og nesten nødvendig attributt for enhver seriøs nettside. Hvis sertifikatet mangler, viser nesten alle moderne nettlesere en advarsel om at tilkoblingen til nettsiden er 'ikke sikker' og anbefaler ikke å overføre konfidensiell informasjon til den.

Men det viser seg at tilstedeværelsen av et 'lås'-symbol i adressefeltet ikke alltid garanterer beskyttelse. En undersøkelse av 10 000 ledende nettsider fra Alexa-rangeringen viste at mange av dem er utsatt for kritiske sårbarheter i SSL/TLS-protokollene, vanligvis via subdomener eller avhengigheter. Ifølge forskerne øker kompleksiteten i moderne webapplikasjoner angrepsflaten mange ganger.

Forskningsresultater

Undersøkelsen ble utført av spesialister fra Ca' Foscari-universitetet i Venezia (Italia) og det tekniske universitetet i Wien. De vil presentere en detaljert rapport på det 40. symposiet til IEEE om sikkerhet og personvern, som vil finne sted 20.−22. mai 2019 i San Francisco.

Det ble undersøkt 10 000 av de mest populære HTTPS-nettstedene fra Alexa-listen og 90 816 tilknyttede verter. Sårbare kryptografiske konfigurasjoner ble oppdaget på 5574 verter, som er omtrent 5,5% av totalt antall:

  • 4818 er sårbare for MITM
  • 733 er sårbare for full TLS-dekryptering
  • 912 er sårbare for delvis TLS-dekryptering

898 nettsteder er helt åpne for hacking, noe som betyr at de tillater injeksjon av fremmede skript, og 977 nettsteder laster inn innhold fra svakt beskyttede sider som kan interagere med angripere.

Forskere understreker at blant de 898 'helt kompromitterte' ressursene er det nettbutikker, finansielle tjenester og andre store nettsteder. 660 av de 898 nettstedene laster inn eksterne skript fra sårbare verter: dette er den viktigste kilden til fare. Ifølge forfatterne øker kompleksiteten i moderne webapplikasjoner angrepsflaten mange ganger.

Andre problemer er også oppdaget: 10% av skjemaene for autentisering har problemer med sikker overføring av informasjon, noe som truer med lekkasje av passord, 412 nettsteder tillater fanging av informasjonskapsler og 'økt tyveri', og 543 nettsteder er utsatt for angrep på cookie-integritet (via subdomener).

Problemet er at det i de siste årene har blitt avdekket flere sårbarheter i SSL/TLS-protokollene og programvaren som inkluderer: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) og Heartbleed (CVE-2014-0160). For å beskytte seg mot disse sårbarhetene kreves det en rekke innstillinger på server- og klientsiden for å unngå å bruke gamle, sårbare versjoner. Men dette er en ganske komplisert prosedyre, fordi slike innstillinger krever valg fra et omfattende utvalg av chiffere og protokoller, som kan være vanskelige å navigere. Det er ikke alltid klart hvilke chiffere og protokoller som anses for å være "tilstrekkelig sikre".

Anbefalte innstillinger

Det finnes ingen offisielt godkjent og enhetlig liste over anbefalte HTTPS-innstillinger. For eksempel Mozilla SSL Configuration Generator tilbyr flere konfigurasjonsalternativer, avhengig av ønsket sikkerhetsnivå. Her er for eksempel anbefalte innstillinger for nginx-server 1.14.0:

Moderne modus

De eldste støttede klientene: Firefox 27, Chrome 30, IE 11 på Windows 7, Edge, Opera 17, Safari 9, Android 5.0, og Java 8

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

# Omadresser alle HTTP-forespørsel til HTTPS med en 301 Moved Permanently-respons.
return 301 https://$host$request_uri;
}

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

# sertifikater sendt til klienten i SERVER HELLO er sammenkjedet i 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;


# moderne konfigurasjon. tilpass etter behov.
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 er påkrevd) (15768000 sekunder = 6 måneder)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# hent OCSP-poster fra URL-en i ssl_certificate og cache dem
ssl_stapling on;
ssl_stapling_verify on;

## verifiser tillitskjeden til OCSP-responsen ved hjelp av Root CA og mellomliggende sertifikater
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Moderat støtte

De eldste støttede klientene: 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 ;

....
}

Gammal støtte

De eldste støttede klientene: 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 ;

....
}

Det anbefales alltid å bruke hele settet av krypteringsalgoritmer og den nyeste versjonen av OpenSSL. Krypteringssettet i serverinnstillingene angir prioriteten som de vil bli brukt i henhold til klientinnstillingene.

Forskning viser at det ikke er nok å bare installere et HTTPS-sertifikat. "Selv om vi ikke behandler informasjonskapsler som vi gjorde i 2005, og 'anstendig TLS' har blitt vanlig, viser det seg at disse grunnleggende elementene er utilstrekkelige for å sikre sikkerheten til et overraskende høyt antall svært populære nettsteder," - say forfatterne av arbeidet. For å sikre pålitelig beskyttelse av kanalen mellom serveren og klienten, må man nøye overvåke infrastrukturen fra egne underdomener og tredjeparts verter hvor innholdet til nettstedet leveres. Kanskje det kan være lurt å bestille en revisjon fra et eksternt selskap som spesialiserer seg på informasjonssikkerhet.

HTTPS er ikke alltid så sikkert som det ser ut. Sårbarheter har blitt funnet på 5,5 % av HTTPS-nettsteder.

Kilde: habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster