web-dev-qa-db-fra.com

TLS: RC4 ou pas RC4?

J'en lisais un autre article intéressant par Matthew Green aujourd'hui, disant que

si vous utilisez RC4 comme suite de chiffrement principale en SSL/TLS, ce serait le moment idéal pour arrêter

Pour autant que je sache, RC4 a été up 'd sur la liste des suites de chiffrement pour se protéger contre BÊTE et - 13 chanceux . (et donc pourquoi des sites Web comme Google l'utilisent probablement). Des outils comme SSLlabs vous préviennent toujours si vous n'utilisez pas RC4 pour autant que je sache ...

Matthew Green déclare ensuite que

À court terme, nous avons un choix moche: rester avec RC4 et espérer le meilleur, ou revenir au mode de cryptographie CBC - que de nombreux sites ont évité en raison des attaques BEAST et Lucky13.

Ce que je me demande donc, c'est lesquelles de ces attaques sont les plus susceptibles/faciles à exécuter, et quelles devraient être les pratiques recommandation pour TLS ciphersuite être ?

(par pratique, je veux dire quelque chose de disponible aujourd'hui et compatible avec la plupart des serveurs/navigateurs)

39
Yoav Aner

Tout d'abord: ne paniquez pas . Ne faites rien d'irréfléchi et prenez le temps de réfléchir.

Les diapositives publiées aujourd'hui décrivent de nouveaux résultats sur le biais dans RC4 . RC4 génère un flux d'octets pseudo-aléatoires dépendant de la clé, qui est ensuite XOR avec les données à chiffrer (le déchiffrement est identique). Il était connu que la sortie de RC4 était légèrement biaisée, c'est-à-dire que certaines valeurs d'octets étaient plus probables que d'autres, en particulier dans les premiers octets de sortie. Cela conduit à l'attaque suivante possible: en supposant qu'un message secret donné m est chiffré à plusieurs reprises, à chaque fois avec une clé différente mais toujours la même position dans le flux, puis l'observation des données chiffrées permettrait de récupérer le message m. En effet, si à la position j octet de flux de clés x est plus probable que toutes les 255 autres valeurs, et l'attaquant observe que la valeur d'octet chiffrée b arrive plus souvent, alors il devinera que x = b XOR p pour l'octet en clair p , donc p = x XOR b.

On supposait généralement que même si RC4 a des biais de ce type, ils n'étaient pas vraiment vulnérables dans l'utilisation pratique de RC4 dans, disons SSL/TLS .

Les nouveaux résultats ajoutent quelques biais à ceux qui étaient connus, et de manière plus systématique, et donnent mesures. Les mesures confirmer partiellement la position ci-dessus. Bien sûr, les diapositives ont tendance à adopter une position apocalyptique et à avertir d'une rupture totale, car: 1. les chercheurs doivent faire un peu de marketing et de publicité sur leurs résultats, afin d'attirer des fonds, et 2. c'est la Bernsteinesque style pour crier que la fin des temps est proche, et que tout le monde a tort.

Ce que les chiffres disons, c'est qu'il faut quelques millions de connexions pour que l'attaque fonctionne. Dans un paramètre SSL/TLS pratique, où la cible est une valeur de cookie, vous n'ouvrirez pas une nouvelle connexion plus d'une fois toutes les 15 secondes environ, car le navigateur et le serveur "maintiendront la connexion en vie", ce qui prendre un an de navigation Web 24h/24 et 7j/7, toujours sur le même site, toujours immédiatement après le navigateur ou le serveur a décidé de fermer la connexion actuelle, pour devenir sensible à cette attaque. Par conséquent, ne paniquez pas. Il n'y a aucune raison de se précipiter et de se plonger dans les paramètres de la suite de chiffrement. Encore.

RC4 devrait encore être éliminé en temps voulu. En effet, les biais sont légers, mais plus importants que prévu ("nous" pensions que les "quelques millions "étaient" environ 1 milliard "). La marge de sécurité devient assez mince. Le RC4 a connu un renouveau récemment en raison de l'attaque BEAST, mais il était déjà considéré comme une mesure temporaire. En effet, l'attaque BEAST ne fonctionne plus car des solutions ont été trouvées.

Une façon de "réparer" RC4, qui a été suggérée à plusieurs reprises, consiste à supprimer les 256 premiers (ou 512 ou 1536 ou autre) octets de sortie, car ce sont les plus biaisés (les graphiques dans les diapositives montrent que tout à fait clairement). Mais cela ne serait pas compatible avec RC4 tel que nous le connaissons, il serait donc peu logique de forcer cela sur SSL/TLS. Si les bibliothèques SSL doivent être modifiées pour implémenter un meilleur algorithme, elles peuvent tout aussi bien en utiliser un déjà standardisé, c'est-à-dire GCM (voir RFC 5288 pour l'intégration de GCM dans SSL/TLS). Ce serait mieux qu'un RC4 remis à neuf qui aurait encore d'autres biais (plus léger, mais toujours détectable, et non limité aux premiers octets de sortie).

Pour l'instant , ne faites rien. Mais voyez ce que Google fera. Ce que Google fait, le monde suivra.

Dans l'immédiat, si vous êtes vraiment ça inquiet, revenez à AES/CBC (ou même 3DES/CBC), malgré BEAST qui, comme expliqué ci-dessus, ne fonctionne plus avec un up navigateur à jour (et si le navigateur n'est pas à jour, l'utilisateur a des problèmes beaucoup plus urgents à résoudre!).

Dans un monde idéal, cette nouvelle attaque, malgré son manque d'applicabilité immédiate, incitera les fournisseurs à implémenter TLS 1.2 + GCM, et le Web sera plus sûr.

37
Thomas Pornin