HTTPS er ikke altid så sikkert, som det ser ud til. Sårbarheder er fundet på 5,5% af HTTPS-webstederne

HTTPS er ikke altid så sikkert, som det ser ud til. Sårbarheder er fundet på 5,5% af HTTPS-webstederne
En af de topwebsteder på Alexa (middelcirkel), beskyttet af HTTPS, med underdomæner (grå) og afhængigheder (hvid), hvoraf nogle er sårbare (stiplede udfyldning)

I dag er ikonet for en sikker HTTPS-forbindelse blevet en standard og endda en nødvendig egenskab ved enhver seriøs hjemmeside. Hvis certifikatet mangler, viser næsten alle nyere browsere en advarsel om, at forbindelsen til webstedet "ikke er sikker" og anbefaler ikke at videregive fortrolig information til det.

Men det viser sig, at tilstedeværelsen af en "lås" i adresselinjen ikke altid garanterer beskyttelse. Undersøgelsen af 10.000 top-websteder fra Alexa-rangeringen viste, at mange af dem er udsat for kritiske sårbarheder i SSL/TLS-protokoller, typisk gennem underdomæner eller afhængigheder. Ifølge forfatterne af undersøgelsen forøger kompleksiteten af moderne webapplikationer angrebsfladen mange gange.

Resultaterne af undersøgelsen

Undersøgelsen blev udført af eksperter fra Ca' Foscari Universitetet i Venedig (Italien) og Det Teknisk Universitet i Wien. De præsenterer en detaljeret rapport på den 40. IEEE Symposium on Security and Privacy, der finder sted den 20.-22. maj 2019 i San Francisco.

Der blev undersøgt 10.000 af de mest populære HTTPS-websteder fra Alexa-listen samt 90.816 relaterede værter. Sårbare kryptografiske konfigurationer blev identificeret på 5574 værter, hvilket er cirka 5,5% af det samlede antal:

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

898 websteder er helt åbne for angreb, hvilket betyder, at de tillader injektion af fremmede scripts, og 977 websteder indlæser indhold fra svagt beskyttede sider, som en angriber kan interagere med.

Forskerne understreger, at blandt de 898 "fuldstændigt kompromitterede" ressourcer er der online-butikker, finansielle tjenester og andre store websteder. 660 af de 898 websteder indlæser eksterne scripts fra sårbare værter: dette er den primære kilde til fare. Ifølge forfatterne øger kompleksiteten af moderne webapplikationer angrebsfladen mange gange.

Der er også andre problemer: 10% af loginformularerne har problemer med sikker overførsel af information, hvilket truer med lækage af adgangskoder, 412 websider tillader opsnapning af cookies og "session hijacking", mens 543 sider er modtagelige for angreb på cookie integrity (via underdomæner).

Problemet er, at der i de seneste år er blevet afsløret en række sårbarheder i SSL/TLS-protokoller og software. en række sårbarheder er blevet identificeret,: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) og Heartbleed (CVE-2014-0160). For at beskytte sig mod dem kræves der en række indstillinger på server- og klientsiden for at undgå brug af gamle sårbare versioner. Men det er en ret kompleks procedure, da sådanne indstillinger kræver valg fra et stort antal krypteringsmetoder og protokoller, som kan være svære at navigere i. Det er ikke altid klart, hvilke specifikke krypteringsmetoder og protokoller der kan betragtes som "tilstrækkeligt sikre".

Anbefalede indstillinger

Der findes ikke nogen officiel godkendt og aftalt liste over anbefalede HTTPS-indstillinger. For eksempel, Mozilla SSL Configuration Generator tilbyder flere konfigurationsmuligheder afhængigt af det ønskede sikkerhedsniveau. Her er for eksempel anbefalede indstillinger for nginx-server 1.14.0:

Moderne tilstand

De ældste understøttede klienter: 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;

# Omdiriger alle HTTP-anmodninger til HTTPS med en 301 Moved Permanently-respons.
return 301 https://$host$request_uri;
}

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

# certifikater sendt til klienten i SERVER HELLO kombineres 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 konfiguration. tilpas til dine 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åkrævet) (15768000 sekunder = 6 måneder)
add_header Strict-Transport-Security max-age=15768000;

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

## verificer kæden af tillid til OCSP-svar ved hjælp af Root CA og Intermediate certifikater
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Gennemsnitlig understøttelse

De ældste understøttede klienter: 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;

# Omdiriger alle HTTP-forespørgsler til HTTPS med en 301 Flyttet Permanent svar.
return 301 https://$host$request_uri;
}

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

# certifikater sendt til klienten i SERVER HELLO er sammenkædede 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;

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

# mellemkonfiguration. tilpas til dine behov.
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 er påkrævet) (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;

## verificer kæden af tillid til OCSP-svaret ved at bruge Root CA og mellem certifikater
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Gamle understøttelse

De ældste understøttede klienter: Windows XP IE6, Java 6

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

# Omdiriger alle HTTP-forespørgsler til HTTPS med en 301 Flyttet Permanent svar.
return 301 https://$host$request_uri;
}

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

# certifikater sendt til klienten i SERVER HELLO er sammenkædede 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;

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

# gammel konfiguration. tilpas til dine behov.
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 er påkrævet) (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;

## verificer kæden af tillid til OCSP-svaret ved at bruge Root CA og mellem certifikater
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Det anbefales altid at bruge det fulde sæt krypteringsmetoder og den seneste version af OpenSSL. Krypteringsmetoderne i serverindstillingerne angiver prioriteten, hvormed de vil blive brugt afhængigt af klientens indstillinger.

Forskning viser, at det ikke er tilstrækkeligt blot at installere et HTTPS-certifikat. "Selvom vi ikke håndterer cookies som i 2005, og 'anstændig TLS' er blevet en normalitet, viser det sig, at disse grundlæggende ting ikke er nok til at sikre en overraskende stor mængde meget populære websteder," — repræsentanter fra IBM, denne tilgang giver mulighed for at reducere driftsomkostningerne og forbedre kvaliteten af de tjenester, IT-afdelingen leverer. forfattere af arbejdet. For at sikre en pålidelig beskyttelse af kanalen mellem serveren og klienten er det vigtigt nøje at overvåge infrastrukturen af egne underdomæner og tredjeparthosts, som leverer indhold til webstedet. Måske er det en god idé at bestille et audit fra et tredjepartsfirma, der specialiserer sig i informationssikkerhed.

HTTPS er ikke altid så sikkert, som det ser ud til. Sårbarheder er fundet på 5,5% af HTTPS-webstederne

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster