HTTPS ass net ëmmer sou sécher wéi et schéngt. Schwachstelle fonnt an 5,5% vun HTTPS Siten

HTTPS ass net ëmmer sou sécher wéi et schéngt. Schwachstelle fonnt an 5,5% vun HTTPS Siten
Ee vun den Top Alexa Siten (Zentralkrees), geschützt duerch HTTPS, mat Subdomains (grau) an Ofhängegkeeten (wäiss), ënner deenen et vulnérabel sinn (schattéiert)

Hautdesdaags ass d'HTTPS sécher Verbindungsikon e Standard a souguer noutwendeg Attribut vun all seriöse Websäit ginn. Wann den Zertifika vermësst, bal all rezent Browser weisen eng Warnung datt Verbindung zum Site ass "net sécher" a recommandéieren net vertraulech Informatioun ze vermëttelen.

Awer et stellt sech eraus datt d'Präsenz vun engem "Schloss" an der Adressbar net ëmmer Schutz garantéiert. Iwwerpréift 10 féierende Siten aus dem Alexa Ranking gewisen: Vill vun hinnen si kritesch SSL / TLS Protokoll Schwachstelle ausgesat, normalerweis duerch Subdomains oder Ofhängegkeeten. Laut den Autoren vun der Studie erhéicht d'Komplexitéit vun de modernen Webapplikatiounen d'Attackfläch staark.

Fuerschungsresultater

D'Etude gouf vu Spezialisten vun der Ca' Foscari Universitéit vu Venedeg (Italien) an der Wiener Technescher Universitéit duerchgefouert. Si presentéieren en detailléierte Bericht um 40th IEEE Symposium on Security and Privacy, deen Mee 20−22, 2019 zu San Francisco ofgehale gëtt.

Déi Top 10 HTTPS Siten op der Alexa Lëscht an 000 verbonne Hosten goufen iwwerpréift. Vulnerabel kryptografesch Konfiguratiounen goufen op 90 Hosten identifizéiert, dat heescht ongeféier 816% vum Gesamt:

  • 4818 vulnerabel fir MITM
  • 733 vulnerabel fir voll TLS Entschlësselung
  • 912 vulnerabel fir partiell TLS-Entschlësselung

898 Siten si komplett op fir Hacking, dat heescht, si erlaben d'Injektioun vun Drëtt Partei Scripten, an 977 Siten lueden Inhalt vu schwaach geschützte Säiten erof, mat deenen en Ugräifer interagéiere kann.

Fuerscher ënnersträichen datt ënnert den 898 "komplett kompromittéiert" Ressourcen sinn Online Geschäfter, Finanzservicer an aner grouss Siten. 660 vun 898 Siten lueden extern Skripte vu vulnérabelen Hosten erof: dëst ass d'Haaptquell vu Gefor. Laut den Auteuren erhéicht d'Komplexitéit vun de modernen Webapplikatiounen d'Attackfläch staark.

Aner Probleemer goufen och entdeckt: 10% vun Autorisatiounsformulairen hu Problemer mat der sécherer Iwwerdroung vun Informatioun, wat d'Passwuertleckage bedroht, 412 Siten erlaben d'Offange vu Cookien an "Sessiounskaping", an 543 Site sinn ufälleg fir Attacken op Cookie-Integritéit (iwwer Subdomains). ).

De Problem ass datt an de leschte Joeren SSL / TLS Protokoller a Software eng Rei vu Schwachstelle goufen identifizéiert: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) an Heartbleed (CVE-2014-0160). Fir géint si ze schützen, sinn eng Rei vun Astellungen op der Server- a Clientsäit erfuerderlech fir d'Benotzung vun alen vulnerabele Versiounen ze vermeiden. Awer dëst ass eng zimlech net-trivial Prozedur, well sou Astellungen d'Wiel vun enger ëmfangräicher Set vu Chifferen a Protokoller implizéieren, déi zimlech schwéier ze verstoen sinn. Et ass net ëmmer kloer wéi eng Chiffer Suiten a Protokoller als "sécher genuch" ugesi ginn.

Recommandéiert Astellungen

Et gëtt keen offiziell guttgeheescht an ausgemaach Lëscht vun recommandéiert HTTPS Astellungen. Also, Mozilla SSL Configuration Generator bitt verschidde Konfiguratiounsoptiounen, jee no dem erfuerderleche Schutzniveau. Zum Beispill, hei sinn d'recommandéiert Astellunge fir nginx 1.14.0 Server:

Modern Modus

Déi eelst ënnerstëtzt Clienten: Firefox 27, Chrome 30, IE 11 op Windows 7, Edge, Opera 17, Safari 9, Android 5.0, an Java 8

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>;

....
}

Duerchschnëtt Ënnerstëtzung

Déi eelst ënnerstëtzt Clienten: 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>;

....
}

Al Ënnerstëtzung

Déi eelst ënnerstëtzt Clienten: 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>;

....
}

Et ass recommandéiert ëmmer déi voll Chiffer Suite an déi lescht Versioun vun OpenSSL ze benotzen. De Set vu Chifferen an de Serverastellungen weist d'Prioritéit un, an där se benotzt ginn, ofhängeg vun de Client-Astellungen.

Fuerschung weist datt einfach en HTTPS Zertifika z'installéieren net genuch ass. "Och wa mir Cookien net behandelen wéi mir am Joer 2005 gemaach hunn, an 'anstänneg TLS' allgemeng ginn ass, stellt sech eraus datt dës Basis Saache net genuch sinn fir eng iwwerraschend grouss Zuel vu ganz populäre Site ze sécheren," soen Auteuren vun der Aarbecht. Fir de Kanal tëscht dem Server an dem Client zouverlässeg ze schützen, musst Dir d'Infrastruktur vun Ären eegene Subdomains an Drëtt-Partei Hosten suergfälteg iwwerwaachen, aus deem Inhalt fir de Site geliwwert gëtt. Et kéint Sënn maachen en Audit vun enger Drëtt-Parteifirma ze bestellen, déi op Informatiounssécherheet spezialiséiert ass.

HTTPS ass net ëmmer sou sécher wéi et schéngt. Schwachstelle fonnt an 5,5% vun HTTPS Siten

Source: will.com