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) désigne 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]

Pour rappel, 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 :

  1. Les attaques invasives qui 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.).
  2. Les attaques non invasives qui 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 utilisant 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 basée sur 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 & 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. Malheureusement, 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 directement implémentés au sein de la puce. Ces systèmes de chiffrement 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 leur circuits en limitant la surconsommation, la prise d'espace physique des modules de chiffrement (qui a un impact direct sur le coût de la puce) et la complexité de leur conception.

La solution parfaite n'existant pas (car elle rendrait la puce trop chère), les concepteurs de circuits intégrés sont contraint de jouer avec le design des unités de chiffrement, ce qui nécessite des tests et de s'assurer qu'ils n'ont pas oublié de faille. C'est pourquoi les concepteurs de puces développent dans leur organisation une unité de cybersécurité des circuits intégrés qui va procéder à des tests de vulnérabilité de leur puces. Les principaux tests consistent en des analyses statistiques ou par deep learning[2] de fuites sur des canaux auxiliaires (Side Channel Attack ou SCA), ou dynamiques par injection de fautes (perturbations laser ou électromagnétiques). Ces tests permettront d'affiner le design de la puce et de maximiser ses performances.

Pour éviter de mauvaises surprises, le concepteur de puces va communiquer ses premiers exemplaires à des société expertes tierces afin d'obtenir des certifications de robustesse.

Ce processus de design impliquant les problématiques de cybersécurité est lourd. Aussi, des solutions de CAO 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 vient 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, c'est 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 puisse l'analyser. Malgré tout des techniques de test de vulnérabilité de white box existent[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 pouvoir récupérer des messages en clair sans avoir à déchiffrer le chiffrement russe. Les attaques se basant sur les objets physiques sont assez récentes dans l'histoire.

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 » Accès libre, sur https://eshard.com/, (consulté le )