Aller au contenu principal

1. Introduction

Transport Layer Security (TLS) [RFC5246] et Datagram Transport Security Layer (DTLS) [RFC6347] sont largement utilisés pour protéger les données échangées sur des protocoles applicatifs tels que HTTP, SMTP, IMAP, POP, SIP et XMPP. Au cours des dernières années, plusieurs attaques graves contre TLS ont émergé, notamment des attaques contre ses suites de chiffrement les plus couramment utilisées et leurs modes de fonctionnement. Par exemple, les algorithmes de chiffrement AES-CBC [RFC3602] et RC4 [RFC7465], qui ensemble ont été les chiffrements les plus largement déployés, ont été attaqués dans le contexte de TLS. Un document complémentaire [RFC7457] fournit des informations détaillées sur ces attaques et aidera le lecteur à comprendre la justification des recommandations fournies ici.

En raison de ces attaques, ceux qui implémentent et déploient TLS et DTLS ont besoin de conseils actualisés sur la manière dont TLS peut être utilisé en toute sécurité. Ce document fournit des conseils pour les services déployés ainsi que pour les implémentations logicielles, en supposant que l'implémenteur s'attend à ce que son code soit déployé dans les environnements définis dans la Section 5. En fait, ce document appelle au déploiement d'algorithmes qui sont largement implémentés mais pas encore largement déployés. Concernant le déploiement, ce document cible un large public -- à savoir, tous les déployeurs qui souhaitent ajouter l'authentification (qu'elle soit unidirectionnelle uniquement ou mutuelle), la confidentialité et la protection de l'intégrité des données à leurs communications.

Les recommandations contenues dans ce document tiennent compte de la sécurité de divers mécanismes, de leur maturité technique et de leur interopérabilité, ainsi que de leur prévalence dans les implémentations au moment de la rédaction. Sauf indication explicite qu'une recommandation s'applique uniquement à TLS ou uniquement à DTLS, chaque recommandation s'applique à la fois à TLS et à DTLS.

On s'attend à ce que la spécification TLS 1.3 résolve bon nombre des vulnérabilités répertoriées dans ce document. Un système qui déploie TLS 1.3 devrait avoir moins de vulnérabilités que TLS 1.2 ou inférieur. Ce document sera probablement mis à jour après que TLS 1.3 aura obtenu un déploiement notable.

Il s'agit de recommandations minimales pour l'utilisation de TLS dans la grande majorité des scénarios d'implémentation et de déploiement, à l'exception de TLS non authentifié (voir Section 5). D'autres spécifications qui font référence à ce document peuvent avoir des exigences plus strictes relatives à un ou plusieurs aspects du protocole, en fonction de leurs circonstances particulières (par exemple, pour une utilisation avec un protocole applicatif particulier); lorsque c'est le cas, il est conseillé aux implémenteurs de respecter ces exigences plus strictes. De plus, ce document fournit un plancher, pas un plafond, donc des options plus robustes sont toujours autorisées (par exemple, en fonction d'évaluations différentes de l'importance de la force cryptographique par rapport à la charge de calcul).

La connaissance communautaire sur la force de divers algorithmes et les attaques réalisables peut changer rapidement, et l'expérience montre qu'un document de meilleure pratique actuelle (BCP) sur la sécurité est une déclaration ponctuelle. Il est conseillé aux lecteurs de rechercher tout errata ou mise à jour qui s'applique à ce document.