Nid yw HTTPS bob amser mor ddiogel ag y mae'n ymddangos. Darganfuwyd gwendidau mewn 5,5% o wefannau HTTPS

Nid yw HTTPS bob amser mor ddiogel ag y mae'n ymddangos. Darganfuwyd gwendidau mewn 5,5% o wefannau HTTPS
Un o brif wefannau Alexa (cylch canolog), wedi'i sicrhau gan HTTPS, gydag is-barthau (llwyd) a dibyniaethau (gwyn), ac yn eu plith mae rhai agored i niwed (lliwio wedi'u torri)

Y dyddiau hyn, mae'r eicon cysylltiad diogel HTTPS wedi dod yn nodwedd safonol a hyd yn oed yn angenrheidiol ar gyfer unrhyw wefan ddifrifol. Os tystysgrif ar goll, mae bron pob porwr diweddar yn dangos rhybudd bod cysylltiad â'r wefan yn "ddim yn ddiogel" ac nid ydynt yn argymell trosglwyddo gwybodaeth gyfrinachol iddo.

Ond mae'n ymddangos nad yw presenoldeb "clo" yn y bar cyfeiriad bob amser yn gwarantu amddiffyniad. Gwirio 10 o safleoedd blaenllaw o'r sgôr, dangosodd Alexa fod llawer ohonynt yn destun gwendidau critigol yn y protocolau SSL / TLS, fel arfer trwy is-barthau neu ddibyniaethau. Yn ôl awduron yr astudiaeth, mae cymhlethdod cymwysiadau gwe modern yn cynyddu'r wyneb ymosodiad yn fawr.

Canlyniadau ymchwil

Cynhaliwyd yr astudiaeth gan arbenigwyr o Brifysgol Fenis Ca' Foscari (yr Eidal) a Phrifysgol Dechnegol Fienna. Byddant yn cyflwyno adroddiad manwl yn 40fed Symposiwm IEEE ar Ddiogelwch a Phreifatrwydd, a gynhelir Mai 20-22, 2019 yn San Francisco.

Profwyd y 10 o safleoedd HTTPS rhestr Alexa gorau a 000 o westeion cysylltiedig. Canfuwyd cyfluniadau cryptograffig bregus ar 90 o westeion, hynny yw, tua 816% o'r cyfanswm:

  • 4818 yn agored i MITM
  • Mae 733 yn agored i ddadgryptio TLS llawn
  • Mae 912 yn agored i ddadgryptio TLS rhannol

Mae 898 o safleoedd yn gwbl agored i hacio, hynny yw, maent yn caniatáu chwistrellu sgriptiau allanol, ac mae gwefannau 977 yn llwytho cynnwys o dudalennau sydd wedi'u diogelu'n wael y gall ymosodwr ryngweithio â nhw.

Mae’r ymchwilwyr yn pwysleisio mai ymhlith yr 898 o adnoddau sydd “dan fygythiad llwyr” mae siopau ar-lein, gwasanaethau ariannol a gwefannau mawr eraill. Mae 660 allan o 898 o safleoedd yn lawrlwytho sgriptiau allanol gan westeion bregus: dyma brif ffynhonnell y perygl. Yn ôl yr awduron, mae cymhlethdod cymwysiadau gwe modern yn cynyddu'r wyneb ymosodiad yn fawr.

Canfuwyd problemau eraill hefyd: mae gan 10% o ffurflenni awdurdodi broblemau gyda throsglwyddo gwybodaeth yn ddiogel, sy'n bygwth gollwng cyfrineiriau, mae 412 o wefannau'n caniatáu rhyng-gipio cwcis a herwgipio sesiynau, ac mae 543 o safleoedd yn destun ymosodiadau ar gyfanrwydd cwci (trwy is-barthau) .

Y broblem yw bod yn y blynyddoedd diwethaf yn y protocolau SSL / TLS a meddalwedd nodi nifer o wendidau: POODLE (CVE-2014-3566), BEAST (CVE-2011-3389), TROSEDD (CVE-2012-4929), TORRI (CVE-2013-3587), a Heartbleed (CVE-2014-0160). Er mwyn amddiffyn yn eu herbyn, mae angen nifer o osodiadau ar ochr y gweinydd a'r cleient er mwyn osgoi defnyddio hen fersiynau bregus. Ond mae hon yn weithdrefn braidd yn ddibwys, oherwydd mae gosodiadau o'r fath yn golygu dewis o set helaeth o seiffrau a phrotocolau, sy'n eithaf anodd eu deall. Nid yw bob amser yn glir pa gyfresi a phrotocolau seiffr a ystyrir yn “ddigon diogel”.

Gosodiadau a argymhellir

Nid oes unrhyw restr o osodiadau HTTPS a argymhellir wedi'u cymeradwyo a'u cytuno'n swyddogol. Felly, Mozilla SSL Configuration Generator yn cynnig nifer o opsiynau cyfluniad, yn dibynnu ar y lefel ofynnol o amddiffyniad. Er enghraifft, dyma'r gosodiadau a argymhellir ar gyfer gweinydd nginx 1.14.0:

Modd Modern

Cleientiaid hynaf a gefnogir: Firefox 27, Chrome 30, IE 11 ar Windows 7, Edge, Opera 17, Safari 9, Android 5.0, a 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>;

....
}

Cefnogaeth ganolig

Cleientiaid hynaf a gefnogir: 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>;

....
}

Hen gefnogaeth

Cleientiaid hynaf a gefnogir: 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>;

....
}

Argymhellir eich bod bob amser yn defnyddio'r gyfres cipher lawn a'r fersiwn diweddaraf o OpenSSL. Mae'r gyfres cipher yng ngosodiadau'r gweinydd yn pennu'r flaenoriaeth ar gyfer eu defnyddio, yn dibynnu ar osodiadau'r cleient.

Mae ymchwil yn dangos nad yw'n ddigon gosod tystysgrif HTTPS yn unig. "Er nad ydym yn trin cwcis fel y gwnaethom yn 2005, a bod 'TLS gweddus' wedi dod yn gyffredin, mae'n ymddangos nad yw'r pethau sylfaenol hyn yn ddigon i sicrhau nifer rhyfeddol o fawr o wefannau poblogaidd iawn," dywedant awduron y gwaith. Er mwyn amddiffyn y sianel rhwng y gweinydd a'r cleient yn ddibynadwy, mae angen i chi fonitro'n ofalus y seilwaith o'ch is-barthau eich hun a gwesteiwyr trydydd parti y mae cynnwys y wefan yn cael ei gyflwyno ohono. Efallai ei bod yn gwneud synnwyr i archebu archwiliad gan gwmni trydydd parti sy'n arbenigo mewn diogelwch gwybodaeth.

Nid yw HTTPS bob amser mor ddiogel ag y mae'n ymddangos. Darganfuwyd gwendidau mewn 5,5% o wefannau HTTPS

Ffynhonnell: hab.com