web-dev-qa-db-fra.com

TLS 1.0 est-il plus sûr que TLS 1.2?

Je voulais juste confirmer, mon administrateur système me dit que TLS 1.0 est plus sécurisé que TLS 1.2 et m'a dit que je devrais rester sur TLS 1.0 ... est-ce exact?

Il a mentionné que TLS 1.2 est plus vulnérable et que TLS 1.0 est plus sécurisé. Et que le bogue Heartbleed est le plus vulnérable de TLS 1.1. et TLS 1.2 et NON de TLS 1.0.

Je vous remercie!

18
olimits7

Votre administrateur a mal compris (ou il y a eu un problème de traduction).

TLS 1.1 et 1.2 corrigent certains problèmes dans TLS 1.0 (à savoir, la prévisibilité de IV pour le cryptage CBC des enregistrements). Il est possible de contourner ce problème dans TLS 1.0, mais cela dépend de la difficulté avec laquelle les implémentations fonctionnent. Donc, dans ce sens, TLS 1.1 et 1.2 sont plus sûr que TLS 1.0, car ils sont plus faciles à implémenter en toute sécurité.

Le soi-disant "heartbleed" n'est pas un défaut ; c'est un bug d'implémentation qui est présent dans certaines versions OpenSSL (OpenSSL est une implémentation répandue de SSL/TLS, mais certainement pas la seule). Lorsqu'une version d'OpenSSL a ce bogue, il l'a pour toutes les versions de protocole, y compris TLS 1.0. Ainsi, lorsque Heartbleed s'applique, il s'applique également à TLS 1.0, TLS 1.1 et TLS 1.2. Quand cela ne s'applique pas, eh bien, cela ne s'applique pas.

La source de la confusion est que votre administrateur (ou ses sources) ne semble pas comprendre ou conceptualiser la différence entre protocoles et implémentations. TLS 1.0 et TLS 1.2 sont protocoles décrits dans les normes pertinentes ( RFC 2246 et RFC 5246 , respectivement). Un protocole indique quels octets doivent être envoyés quand. Une implémentation est un logiciel qui exécute le protocole. OpenSSL est une implémentation. Il se trouve que le bogue "heartbleed" se produit dans l'implémentation d'une fonctionnalité de protocole relativement nouvelle (l '"extension heartbeat") que les très anciennes implémentations OpenSSL ne connaissent pas. Ainsi, les très anciennes implémentations d'OpenSSL ne souffrent pas de heartbleed (bien qu'elles aient d'autres problèmes graves, étant très anciennes). Les mêmes implémentations très anciennes ne connaissent pas du tout TLS 1.1 et TLS 1.2. Ainsi, dans l'esprit de votre administrateur, les deux faits indépendants se sont fusionnés en un seul mantra (mais imparfait), qui dit à tort que heartbleed est un problème de sécurité de TLS 1.1 et 1.2.

48
Tom Leek

TLS 1.0

TLS 1.0 était une mise à niveau de SSL 3.0 et les différences n'étaient pas dramatiques, mais elles sont suffisamment importantes pour que SSL 3.0 et TLS 1.0 n'interagissent pas.

Certaines des principales différences entre SSL 3.0 et TLS 1.0 sont:

  • Les fonctions de dérivation des clés sont différentes
  • Les MAC sont différents - SSL 3.0 utilise une modification d'un HMAC ancien tandis que TLS 1.0 utilise HMAC.
  • Les messages terminés sont différents
  • TLS a plus d'alertes
  • TLS nécessite un support DSS/DH

TLS 1.1

TLS 1.1 est une mise à jour de TLS 1.0.

Les principaux changements sont les suivants:

  • Le vecteur d'initialisation implicite (IV) est remplacé par un IV explicite pour se protéger contre les attaques par enchaînement de blocs de chiffrement (CBC).
  • La gestion des erreurs remplies est modifiée pour utiliser l'alerte bad_record_mac plutôt que l'alerte decryption_failed pour se protéger contre les attaques CBC.
  • Les registres IANA sont définis pour les paramètres de protocole
  • Une fermeture prématurée n'entraîne plus la reprise d'une session.

TLS 1.2

TLS 1.2 est basé sur TLS 1.1, il contient une flexibilité améliorée.

Les principales différences sont les suivantes:

  • La combinaison MD5/SHA-1 dans la fonction pseudo-aléatoire (PRF) a été remplacée par des PRF spécifiées pour la suite de chiffrement.
  • La combinaison MD5/SHA-1 dans l'élément signé numériquement a été remplacée par un seul hachage. Les éléments signés incluent un champ spécifiant explicitement l'algorithme de hachage utilisé.
  • Il y a eu un nettoyage substantiel de la capacité du client et du serveur à spécifier les algorithmes de hachage et de signature qu'ils accepteront.
  • Ajout de la prise en charge du cryptage authentifié avec des modes de données supplémentaires.
  • La définition des extensions TLS et les suites de chiffrement AES ont été fusionnées.
  • Vérification plus stricte des numéros de version EncryptedPreMasterSecret.
  • Beaucoup d'exigences ont été renforcées
  • La longueur de Verify_data dépend de la suite de chiffrement
  • Description des défenses d'attaque Bleichenbacher/Dlima nettoyées.

Cette réponse est basée sur les sources suivantes:

23
Ali

Celui qui vous a dit cela ne comprend probablement pas très bien ce qu'est Heartbleed: c'est une vulnérabilité spécifique à l'implémentation (dans certaines versions d'OpenSSL), elle n'est pas vraiment liée à la version de SSL/TLS.

De http://heartbleed.com/ :

Les versions vulnérables existent depuis plus de deux ans et ont été rapidement adoptées par les systèmes d'exploitation modernes. Un facteur contributif majeur a été que les versions TLS 1.1 et 1.2 étaient disponibles avec la première version OpenSSL vulnérable (1.0.1) et la communauté de la sécurité a poussé le TLS 1.2 en raison d'attaques antérieures contre TLS (comme le BEAST).

Cela ne veut en aucun cas dire que TLS 1.1 et 1.2 sont plus vulnérables que 1.0. Cela signifie simplement que les anciennes versions d'OpenSSL n'avaient pas ce bogue, mais elles ne prenaient pas en charge TLS 1.1 et 1.2 non plus. Lors de la mise à niveau vers des versions plus récentes d'OpenSSL afin d'obtenir la prise en charge des versions plus récentes de TLS (en raison de problèmes avec les anciennes versions de TLS), d'autres modifications avaient été apportées à la base de code OpenSSL, y compris l'introduction de ce bogue. Cela a plus à voir avec la chronologie de développement d'OpenSSL qu'avec les versions TLS.

OpenSSL a depuis été corrigé pour ce problème particulier (il est donc recommandé d'utiliser une version non vulnérable).

En général, les nouvelles versions de TLS comportent des améliorations de sécurité, en particulier TLS 1.2 prend en charge les suites de chiffrement qui sont généralement considérées comme plus sécurisées.

5
Bruno

Et que le bogue Heartbleed est le plus vulnérable de TLS 1.1. et TLS 1.2 et NON de TLS 1.0.

Il se peut que votre administrateur ait mélangé certains faits: Il est vrai que Heartbleed est en quelque sorte connecté à TLS 1.1 et TLS 1.2. Mais la connexion est seulement que la version 1.0.1 d'OpenSSL a non seulement ajouté la prise en charge de TLS 1.1 et TLS 1.2, mais a également introduit la prise en charge de l'extension Heartbeat. Le bogue Heartbleed était dû à des erreurs d'implémentation dans la gestion de cette extension. Et donc, seuls les serveurs plus récents prenant en charge TLS 1.1 et TLS 1.2 étaient concernés par le problème.

Le bogue Heartbleed est maintenant corrigé, mais le support pour TLS 1.1 et TLS 1.2 ainsi que l'extension Heartbeat sont toujours là. En outre, d'autres piles TLS prennent en charge les nouvelles versions TLS sans avoir du tout support de l'extension Heartbeat.

3
Steffen Ullrich