Attaque par canal auxiliaire

Un article de Wikipédia, l'encyclopédie libre.

Dans le domaine de la sécurité informatique, une attaque par canal auxiliaire (en anglais : Side-channel attack ou SCA) est une attaque informatique qui, sans remettre en cause la robustesse théorique des méthodes et procédures de sécurité, recherche et exploite des failles dans leur implémentation, logicielle ou matérielle. En effet, une sécurité « mathématique » ne garantit pas forcément une sécurité lors de l'utilisation en « pratique ».

Types d'attaques[modifier | modifier le code]

Une attaque est considérée comme utile dès lors qu'elle présente des performances supérieures à une attaque par force brute. Les attaques par canal auxiliaire sont nombreuses et variées et portent sur différents paramètres. On en distingue deux grandes catégories.

Attaques invasives[modifier | modifier le code]

Les attaques invasives nécessitent une interaction avec le matériel (potentiellement destructive).

Attaque par sondage
Cette attaque consiste à placer une sonde directement dans le circuit à étudier, afin d'observer son comportement (généralement utilisée dans le cas des bus chiffrés).
Attaque par injection de faute
Cette attaque consiste en l'introduction volontaire d'erreurs dans le système pour provoquer certains comportements révélateurs (comme une impulsion laser ou électromagnétique[1]etc.).

Attaques non invasives[modifier | modifier le code]

Les attaques non invasives se contentent de procéder à une observation extérieure du système (passive).

Attaque par faute
Cette attaque consiste à utiliser le système en dehors de sa plage de fonctionnement nominal, ce qui le fait fauter, fautes ensuite analysées pour en tirer des informations pertinentes.
Analyse d'émanations électromagnétiques
Cette attaque est similaire à la cryptanalyse acoustique, mais en utilise le rayonnement électromagnétique (émission d'ondes, analyse d'une image thermique, lumière émise par un écran, etc.).
Analyse de consommation
Une consommation accrue indique un calcul important et peut donner des renseignements sur la clé.
Attaque par analyse du trafic
Intercepter des éléments sur la communication entre ses cibles permet de déduire des indices sur leur activité.
Attaque par prédiction de branches
L'étude des unités de prédiction de branches des nouvelles architectures des processeurs peut donner des informations intéressantes.
Attaque temporelle
Cette attaque consiste en l'étude du temps mis pour effectuer certaines opérations.
Cryptanalyse acoustique
Cette attaque consiste en l'étude du bruit généré par un ordinateur ou une machine qui chiffre. En effet, le processeur émet du bruit qui varie en intensité et en nature selon sa consommation et les opérations effectuées (typiquement des condensateurs qui se chargent ou se déchargent émettent un claquement facilement mesurable).

Ces attaques peuvent être combinées pour obtenir des informations secrètes comme la clé de chiffrement. Leur mise en œuvre est étroitement liée au matériel ou au logiciel attaqué.

Exemples d'attaques[modifier | modifier le code]

Une attaque exploitant les temps de réponse a été menée par Serge Vaudenay sur TLS/SSL, ce qui a forcé les concepteurs du standard à faire une mise à jour critique. Adi Shamir a montré l'efficacité en pratique de la cryptanalyse acoustique du bruit d'un processeur. Une attaque temporelle sur le cache d'un processeur a été démontrée pour une implémentation d'AES.

SCA et cybersécurité[modifier | modifier le code]

Conception et certification des puces[modifier | modifier le code]

De plus en plus de systèmes informatiques contiennent des données sensibles. La solution idéale serait de traiter uniquement des données chiffrées de bout en bout. Toutefois, un processeur ne peut que traiter des opérations « en clair », c'est-à-dire déchiffrées. C'est pourquoi de plus en plus de puces d'unité de calcul (CPU ou SoC) sont dotées de systèmes de chiffrement intégrés au sein de la puce. Ces systèmes sont efficaces mathématiquement, mais peuvent être écoutés et il est possible d'en déduire la clef de chiffrement. Les concepteurs de puces essaient donc de protéger le plus efficacement possible leurs circuits en limitant la surconsommation, la prise d'espace physique des modules de chiffrement (qui a une conséquence directe sur le coût de la puce) et la complexité de leur conception.

La solution parfaite rendrait la puce trop chère. Les concepteurs de circuits intégrés sont donc contraints de jouer sur le design des unités de chiffrement. Des unités de cybersécurité des circuits intégrés procèdent ensuite à des tests de vulnérabilité de leur puces. Les principaux tests consistent en des analyses statistiques ou par apprentissage profond[2] de fuites sur des canaux auxiliaires (side channel attack ou SCA), ou dynamiques par injection de fautes (perturbations par laser ou électromagnétiques). Ces tests permettent d'affiner le design de la puce et de maximiser ses performances.

Les concepteurs de puces communiquent ensuite leurs premiers exemplaires à des sociétés expertes tierces afin d'obtenir des certifications de robustesse.

Ce processus de design impliquant les problèmes de cybersécurité est lourd. Aussi, des solutions de conception assistée par ordinateur de circuits intégrés permettent de simuler finement le fonctionnement d'une puce et d'identifier de potentielles fuites sur des canaux auxiliaires (qui pourraient être exploitées). Cette analyse modélisant le circuit électronique traitant des signaux binaires est appelée « binary analysis » (« analyse de binaires ») et est effectuée en amont, en complément des analyses SCA.

Solutions[modifier | modifier le code]

Les constructeurs de puces de chiffrement visent à aplanir la courbe de consommation électrique pour dissimuler les opérations sous-jacentes. Des protections et des blindages permettent de limiter le rayonnement en dehors du circuit. Il faut également tenir compte des états impossibles qui ne doivent pas se produire et doivent être traités correctement s'ils venaient à être détectés. Limiter les messages d'erreur et la communication d'informations diverses avec l'extérieur est aussi une solution, mais elle pénalise les développeurs et les utilisateurs du système.

Un autre solution est de laisser le système de chiffrage accessible, dans ce qu'on appelle une white box (« boîte blanche », par opposition à boîte noire », qui décrit un système dont le fonctionnement est totalement inconnu). Le but d'une white box est d'être suffisamment complexe pour qu'une personne malintentionnée ne puisse l'analyser. Malgré tout, des techniques de test de vulnérabilité de white box ont été développées[3].

Histoire[modifier | modifier le code]

Les attaques par canal auxiliaire ont été utilisées dès la Première Guerre mondiale par analyse du trafic des troupes ennemies. Durant l'Opération Gold, la CIA a probablement fait appel à des attaques par canal auxiliaire pour récupérer des messages en clair sans avoir à déchiffrer le chiffrement russe. Les attaques visant les objets physiques sont assez récentes.

Notes et références[modifier | modifier le code]

  1. Olivier Hériveaux, « Injection de faute par laser en boîte-noire sur mémoire sécurisée », SSTIC,‎
  2. (en) Benjamin Timon, « Non-Profiled Deep Learning-based Side-Channel attacks with Sensitivity Analysis », IACR Transactions on Cryptographic Hardware and Embedded Systems,‎ , p. 107–131 (ISSN 2569-2925, DOI 10.13154/tches.v2019.i2.107-131, lire en ligne, consulté le ).
  3. (en) Guillaume Vinet, « Optimized White-Box Tracing for Efficient Side-Channel Attacks »(Archive.orgWikiwixArchive.isGoogleQue faire ?) Accès libre, sur eshard.com, (consulté le ).