Eric Biggers, l'un des développeurs de l'algorithme de chiffrement Adiantum et mainteneur du sous-systÚme fscrypt du noyau Linux, a proposé un ensemble de correctifs pour bloquer les problÚmes de sécurité résultant d'une caractéristique des processeurs Intel qui ne garantit pas un temps d'exécution constant des instructions pour différentes données traitées. Dans les processeurs Intel, le problÚme se manifeste à partir de la famille Ice Lake. Un problÚme similaire est également observé sur les processeurs ARM.
La dépendance du temps d'exécution des instructions par rapport aux données traitées dans ces instructions est considérée par l'auteur des correctifs comme une vulnérabilité dans les processeurs, car un tel comportement ne peut garantir la sécurité des opérations cryptographiques effectuées dans le systÚme. De nombreuses implémentations d'algorithmes cryptographiques sont conçues pour que les données n'influencent pas le temps d'exécution des instructions, et une rupture de ce comportement peut conduire à des attaques par canaux parallÚles, récupérant des données sur la base de l'analyse du temps de leur traitement.
Potentiellement, la dĂ©pendance du temps d'exĂ©cution par rapport aux donnĂ©es peut Ă©galement ĂȘtre utilisĂ©e pour organiser des attaques visant Ă dĂ©terminer les donnĂ©es du noyau depuis l'espace utilisateur. Selon Eric Biggers, un temps d'exĂ©cution constant par dĂ©faut n'est mĂȘme pas garanti pour les instructions effectuant des opĂ©rations d'addition et de XOR, ainsi que pour les instructions spĂ©cialisĂ©es AES-NI (l'information n'est pas confirmĂ©e par des tests, d'autres donnĂ©es indiquent qu'un retard d'un cycle se produit lors de la multiplication de vecteurs et du comptage de bits).
Pour désactiver le comportement examiné, les entreprises Intel et ARM ont proposé de nouveaux drapeaux : le bit PSTATE DIT (Data Independent Timing) pour les CPU ARM et le bit MSR DOITM (Data Operand Independent Timing Mode) pour les CPU Intel, retournant à l'ancien comportement de temps d'exécution constant. Les entreprises Intel et ARM recommandent d'activer la protection si nécessaire pour le code particuliÚrement sensible, mais en réalité, des calculs importants peuvent se retrouver dans n'importe quelle partie du noyau et de l'espace utilisateur, c'est pourquoi la possibilité d'activer en permanence les modes DOITM et DIT pour l'ensemble du noyau est examinée.
Des correctifs ont déjà été intégrés pour les processeurs ARM dans la branche du noyau Linux 6.2, modifiant le comportement du noyau. Cependant, ces correctifs sont jugés insuffisants car ils ne couvrent que le code du noyau et ne modifient pas le comportement dans l'espace utilisateur. Quant aux processeurs Intel, l'activation de la protection est encore au stade de révision. L'impact du correctif sur les performances n'a pas encore été mesuré, mais selon la documentation d'Intel, activer le mode DOITM réduit les performances (par exemple, en raison de la désactivation de certaines optimisations, telles que le préchargement spécifique aux données) et, dans les futures générations de processeurs, cette diminution des performances pourrait s'accentuer.
Source : opennet.ru
