U03

U03

Vers le Pont arc-en-ciel et au-delà

InformatiqueSSL

A+

Cela pourrait être un groupe sanguin, la note de la dette souveraine d’un état, voire même une de mes notes à l’école…

Mais non, il s’agit de la note attribuée à mon site web par le test SSL de Qualys SSL Labs, cette note est aussi volatile que celle de la dette souveraine d’un état étant donné que les exigences en termes de sécurité pour SSL évoluent en fonction des découvertes de failles de sécurité.

Voici l’extrait de configuration Apache qui permet d’obtenir un ‘A’ (à la date de rédaction de cet article):

SSLEngine on
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLCertificateFile /var/pki/tls/certs/u03_fr.crt
SSLCertificateKeyFile /var/pki/tls/private/u03_fr.key
SSLCertificateChainFile /var/pki/tls/certs/root_bundle.crt

Le ‘A+’ est obtenu en ajoutant ‘HSTS – HTTP Strict Transport Security’ comme ceci:

Header set Strict-Transport-Security: "max-age=31536000; includeSubDomains; preload"

Ceci fait que l’entête HTTP ‘strict-transport-security‘ est ajouté dans chaque réponse, ce qui force les navigateurs compatibles à utiliser HTTPS (même si votre application ou votre configuration ne forcent pas de redirect).

Cache-Control: no-cache, must-revalidate, max-age=0
Connection: close
Content-Type: text/html; charset=UTF-8
Date: Fri, 25 Nov 2016 22:18:18 GMT
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Server: Apache
Transfer-Encoding: chunked
strict-transport-security: max-age=31536000; includeSubDomains; preload

On note que si le navigateur fait une première requête en HTTP alors le premier échange n’est pas protégé car c’est seulement après que le navigateur est informé qu’il faut passer en HTTPS. C’est précisément pour éviter ceci qu’on utilise le paramètre ‘preload‘.

Les navigateurs embarquent une liste de domaines pour lesquels HSTS est activé et les accès doivent toujours se faire en HTTPS, y compris la première connexion, tout lien, toute requête en HTTP est convertie en HTTPS. Pour ceci il faut aller sur le site https://hstspreload.appspot.com/ et demander l’inclusion du domaine dans la liste. Le site vérifie que votre serveur est correctement paramétré et que le champ ‘preload‘ est bien envoyé dans les entêtes de réponse (il s’agit là d’une mesure pour éviter que quelqu’un vous inscrive à l’insu de votre plein gré).

Attention toutefois: ne mettez ‘preload‘ et ne demandez l’inclusion de votre domaine dans la liste que si vous êtes certain que tous les sites de votre domaine et de ses sous-domaines fonctionnent correctement en HTTPS. Sinon les sites qui ne fonctionnent pas en HTTPS seront inaccessibles jusqu’à ce que vous les rendiez compatibles. A noter que HSTS implique que votre certificat SSL soit valide, un certificat invalide ou expiré rend votre site inaccessible (même en mettant une exception de sécurité).

HSTS avec ‘preload’ vous permet de vous prémunir contre les attaques de type man-in-the-middle.

Notez également que Apache et openSSL doivent être à jour, pour éviter que d’éventuelles failles soient présentes sur votre serveur, ou que votre serveur présente des algorithmes de chiffrement et de hachage obsolètes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.