
L'un des sites les plus populaires sur Alexa (cercle central), protégé par HTTPS, avec des sous-domaines (gris) et des dépendances (blanc), parmi lesquels certains sont vulnérables (hachurage).
De nos jours, l'icône de connexion sécurisée HTTPS est devenue un standard et même un attribut nécessaire pour tout site sérieux. Si est absent, presque tous les navigateurs récents affichent un avertissement indiquant que et ne recommandent pas de transmettre des informations confidentielles.
Cependant, il s'avère que la présence d'un "cadenas" dans la barre d'adresse ne garantit pas toujours la protection. dans le classement Alexa a montré : bon nombre d'entre eux sont vulnérables à des failles critiques dans les protocoles SSL/TLS, généralement à travers des sous-domaines ou des dépendances. Selon les auteurs de l'étude, la complexité des applications web modernes augmente considérablement la surface d'attaque.
Résultats de l'étude
L'étude a été réalisée par des experts de l'Université Ca' Foscari de Venise (Italie) et de l'Université technique de Vienne. Ils présenteront un rapport détaillé lors du 40e symposium IEEE sur la sécurité et la confidentialité, qui se tiendra du 20 au 22 mai 2019 à San Francisco.
Les 10 000 sites HTTPS les plus populaires de la liste Alexa et 90 816 hôtes qui leur sont liés ont été vérifiés. Des configurations cryptographiques vulnérables ont été identifiées sur 5 574 hôtes, soit environ 5,5 % du nombre total :
- 4 818 sont vulnérables à MITM
- 733 sont vulnérables à la décryptage complet TLS
- 912 sont vulnérables à la décryptage partiel TLS
898 sites sont complètement ouverts aux attaques, permettant l'injection de scripts externes, et 977 sites chargent du contenu depuis des pages faiblement sécurisées, pouvant interagir avec un attaquant.
Les chercheurs soulignent que parmi les 898 ressources « complètement compromises » se trouvent des magasins en ligne, des services financiers et d'autres grands sites. 660 des 898 sites chargent des scripts externes depuis des hôtes vulnérables : c'est la principale source de danger. Selon les auteurs, la complexité des applications web modernes augmente considérablement la surface d'attaque.
D'autres problèmes ont été découverts : 10 % des formulaires d'authentification présentent des problèmes de transmission sécurisée des informations, risquant des fuites de mots de passe, 412 sites permettent l'interception des cookies et le « vol de session », et 543 sites sont vulnérables aux attaques sur l'intégrité des cookies (via des sous-domaines).
Le problème est que ces dernières années, un certain nombre de vulnérabilités ont été détectées dans les protocoles SSL/TLS et les logiciels Paramètres recommandés
Il n'existe pas de liste officielle approuvée et consensuelle des paramètres HTTPS recommandés. Ainsi,
le générateur de configuration SSL de Mozilla Mode moderne
Les plus anciens clients pris en charge :
Firefox 27, Chrome 30, IE 11 sur Windows 7, Edge, Opera 17, Safari 9, Android 5.0, et Java 8 server { listen 80 default_server; listen [::]:80 default_server;# Rediriger toutes les requêtes HTTP vers HTTPS avec une réponse 301 Moved Permanently. return 301 https://$host$request_uri; }server { listen 443 ssl http2; listen [::]:443 ssl http2;# Les certificats envoyés au client dans le SERVER HELLO sont concaténés dans 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;# configuration moderne. ajustez selon vos besoins. 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 est requis) (15768000 secondes = 6 mois) add_header Strict-Transport-Security max-age=15768000;# OCSP Stapling --- # récupérez les enregistrements OCSP à partir de l'URL dans ssl_certificate et mettez-les en cache ssl_stapling on; ssl_stapling_verify on;## vérifiez la chaîne de confiance de la réponse OCSP en utilisant le certificat CA racine et les certificats intermédiaires ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;resolver ;.... }
Support moyenFirefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7
Firefox 27, Chrome 30, IE 11 sur Windows 7, Edge, Opera 17, Safari 9, Android 5.0, et Java 8 Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7
serveur {
écouter 80 default_server;
écouter [::]:80 default_server;
# Rediriger toutes les requêtes HTTP vers HTTPS avec une réponse 301 Moved Permanently.
return 301 https://$host$request_uri;
}
serveur {
écouter 443 ssl http2;
écouter [::]:443 ssl http2;
# certificats envoyés au client dans le SERVER HELLO sont concaténés dans 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;
# Paramètre Diffie-Hellman pour les suites de chiffrements DHE, recommandé 2048 bits
ssl_dhparam /path/to/dhparam.pem;
# configuration intermédiaire. ajustez selon vos besoins.
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 est requis) (15768000 secondes = 6 mois)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# récupérer les enregistrements OCSP à partir de l'URL dans ssl_certificate et les mettre en cache
ssl_stapling on;
ssl_stapling_verify on;
## vérifier la chaîne de confiance de la réponse OCSP en utilisant le certificat CA racine et les certificats intermédiaires
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver ;
....
}Ancienne prise en charge
Firefox 27, Chrome 30, IE 11 sur Windows 7, Edge, Opera 17, Safari 9, Android 5.0, et Java 8 Windows XP IE6, Java 6
serveur {
écouter 80 default_server;
écouter [::]:80 default_server;
# Rediriger toutes les requêtes HTTP vers HTTPS avec une réponse 301 Moved Permanently.
return 301 https://$host$request_uri;
}
serveur {
écouter 443 ssl http2;
écouter [::]:443 ssl http2;
# certificats envoyés au client dans le SERVER HELLO sont concaténés dans 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;
# Paramètre Diffie-Hellman pour les suites de chiffrements DHE, recommandé 2048 bits
ssl_dhparam /path/to/dhparam.pem;
# ancienne configuration. ajustez selon vos besoins.
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 est requis) (15768000 secondes = 6 mois)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# récupérer les enregistrements OCSP à partir de l'URL dans ssl_certificate et les mettre en cache
ssl_stapling on;
ssl_stapling_verify on;
## vérifier la chaîne de confiance de la réponse OCSP en utilisant le certificat CA racine et les certificats intermédiaires
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver ;
....
}Il est toujours recommandé d'utiliser l'ensemble complet des chiffrages et la dernière version d'OpenSSL. L'ensemble de chiffrages dans les paramètres du serveur indique la priorité avec laquelle ils seront utilisés, en fonction des réglages du client.
Des études montrent qu'il ne suffit pas d'installer un certificat HTTPS. « Bien que nous ne gérions plus les cookies comme en 2005 et que le "TLS décent" soit devenu monnaie courante, il s'avère que ces éléments de base ne suffisent pas pour assurer la sécurité d'un nombre étonnamment élevé de sites très populaires », disent les auteurs de l'étude. Pour assurer une protection fiable du canal entre le serveur et le client, il est important de surveiller attentivement l'infrastructure de ses propres sous-domaines et des hôtes tiers à partir desquels le contenu est fourni pour le site. Peut-être serait-il judicieux de demander un audit à une entreprise tierce spécialisée dans la sécurité de l'information.
Source : habr.com
