HTTPS nuk është gjithmonë aq i sigurt sa duket. Vulnerabilitete janë gjetur në 5,5% të faqeve HTTPS.

HTTPS nuk është gjithmonë aq i sigurt sa duket. Vulnerabilitete janë gjetur në 5,5% të faqeve HTTPS.
Një nga faqet kryesore në Alexa (rreth qendror), e mbrojtur nga HTTPS, me subdomenë (të gri) dhe varësi (të bardhë), disa prej të cilave janë të prekshme (me mbushje me vijë të pikët)

Në ditët tona, ikona e lidhjes së sigurt HTTPS është bërë një atribut standard dhe madje i nevojshëm i çdo faqeje serioze. Nëse certifikata mungon, pothuajse të gjithë shfletuesit e fundit tregojnë një paralajmërim se lidhja me faqen "nuk është e mbrojtur" dhe nuk rekomandojnë të dërgoni informacione të ndjeshme në të.

Por rezulton se, prania e "çelësit" në shiritin e adresës nuk garanton gjithmonë mbrojtje. Kontrolli i 10,000 faqeve kryesore në renditjen Alexa ka treguar: shumë prej tyre janë të ekspozuar ndaj dobësive kritike të protokolleve SSL/TLS, zakonisht përmes subdomenëve ose varësive. Sipas autorëve të studimit, kompleksiteti i aplikacioneve moderne në internet e rrit shumë sipërfaqen e sulmit.

Rezultatet e hulumtimit

Studimin e kryen specialistë nga Universiteti Ca' Foscari në Venecia (Itali) dhe Universiteti Teknik i Vjenës. Një raport i detajuar do të paraqitet në simpoziumin e 40-të të IEEE mbi sigurinë dhe privatësinë, i cili do të mbahet më 20-22 maj 2019 në San Francisco.

U kontrolluan 10,000 faqet më të njohura HTTPS nga lista e Alexa dhe 90,816 host-e të lidhura me to. Konfigurimet e prekshme criptografike u identifikuan në 5,574 host-e, që do të thotë rreth 5.5% të numrit total:

  • 4,818 janë të prekshme për MITM
  • 733 janë të prekshme për dekodimin e plotë TLS
  • 912 janë të prekshme për dekodimin e pjesshëm TLS

898 faqe janë të hapura plotësisht për sulm, pra lejojnë injektimin e skripteve të jashtme, dhe 977 faqe ngarkojnë përmbajtje nga faqe të mbrojtura dobët, me të cilat mund të ndërveprojnë sulmuesit.

Hulumtuesit theksojnë se mes 898 burimeve "plotësisht të komprometuar" ndodhen dyqane në internet, shërbime financiare dhe vende të tjera të mëdha. 660 nga 898 faqe ngarkojnë skripte të jashtme nga host-e të prekshme: ky është burimi kryesor i rrezikut. Sipas autorëve, kompleksiteti i aplikacioneve moderne në internet e rrit shumë sipërfaqen e sulmit.

Gjithashtu u identifikuan probleme të tjera: 10% e formave për autorizim kanë probleme me dërgimin e sigurt të informacionit, çka rrezikon rrjedhjen e fjalëkalimeve, 412 faqe lejojnë kapjen e cookies dhe "vjedhjen e sesionit", ndërsa 543 faqe janë të prekshme për sulme ndaj integritetit të cookies (përmes subdomenëve).

Problemi është se në vitet e fundit, në protokollet SSL/TLS dhe në softuerin u identifikuan një numër dobësish: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), CRIME (CVE-2012-4929), BREACH (CVE-2013-3587) dhe Heartbleed (CVE-2014-0160). Për t'u mbrojtur nga to, kërkohen një sërë konfigurimesh në anën e serverit dhe klientit, për të shmangur përdorimin e versioneve të vjetra dhe të prekshme. Por kjo është një procedurë mjaft e ndërlikuar, sepse këto konfigurime parashikojnë një zgjedhje nga një gamë të gjerë algoritmash dhe protokollesh, të cilat është mjaft e vështirë të kuptohen. Nuk është gjithmonë e qartë se cilat grupe algoritmash dhe protokollesh konsiderohen "mjaft të sigurta".

Konfigurimet e rekomanduara

Nuk ekziston një listë e një prej të miratvetuar dhe të pranuar të konfigurimeve të rekomanduara HTTPS. Kështu, Mozilla SSL Configuration Generator ofron disa opsione konfigurimi, në varësi të nivelit të kërkuar të mbrojtjes. Për shembull, ja konfigurimet e rekomanduara për serverin nginx 1.14.0:

Modaliteti modern

Konsumatorët më të vjetër të mbështetur: Firefox 27, Chrome 30, IE 11 në Windows 7, Edge, Opera 17, Safari 9, Android 5.0, dhe Java 8

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

# Rrethitni të gjitha kërkesat HTTP në HTTPS me një përgjigje 301 Moved Permanently.
return 301 https://$host$request_uri;
}

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

# certifikat e dërguar në klient në SERVER HELLO janë të kombinuara në 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;

# konfigurimi modern. përshtatni sipas nevojave tuaja.
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 është e nevojshme) (15768000 sekonda = 6 muaj)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# shkarkoni rekordet OCSP nga URL në ssl_certificate dhe ruajini ato
ssl_stapling on;
ssl_stapling_verify on;

## verifikoni zinxhirin e besimit të përgjigjes OCSP duke përdorur CA-në Root dhe certifikat e mesme
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

resolver ;

....
}

Mbështetje e mesme

Konsumatorët më të vjetër të mbështetur: 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 ;

....
}

Mbështetje e vjetër

Konsumatorët më të vjetër të mbështetur: 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 ;

....
}

Është gjithmonë e rekomandueshme të përdorni një grup të plotë çelesh dhe versionin më të fundit të OpenSSL. Grupi i çelëve në konfigurimet e serverit tregon prioritetin e përdorimit të tyre në varësi të konfigurimit të klientit.

Studimi tregon se nuk mjafton vetëm të vendosni një certifikatë HTTPS. "Megjithëse ne nuk menaxhojmë cookies si në vitin 2005, dhe 'TLS i duhur' është bërë një normë, tregohet se këto gjëra bazë nuk janë të mjaftueshme për të siguruar sigurinë për një numër befasues të faqeve web shumë të njohura", - ekspertët autorët e punës. Për të mbrojtur me siguri kanalin midis serverit dhe klientit, është e nevojshme të monitoroni me kujdes infrastrukturën e subdomenëve të brendshëm dhe hosteve të jashtme nga të cilët ofrohet përmbajtje për faqen. Ndoshta ka kuptim të kërkoni një auditim nga një kompani të tretë që specializohet në sigurinë e informacionit.

HTTPS nuk është gjithmonë aq i sigurt sa duket. Vulnerabilitete janë gjetur në 5,5% të faqeve HTTPS.

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster