Attaque par canal latéral - Side-channel attack

Tentative de décodage des bits de clé RSA à l' aide de l' analyse de puissance . Le pic de gauche représente les variations de puissance CPU au cours du pas de l' algorithme sans multiplication, le pic de droite (plus large) – pas avec multiplication, permettant à un attaquant de lire les bits 0, 1.

En sécurité informatique , une attaque par canal secondaire est toute attaque basée sur des informations obtenues lors de la mise en œuvre d'un système informatique, plutôt que sur des faiblesses dans l'algorithme mis en œuvre lui-même (par exemple, la cryptanalyse et les bogues logiciels ). Les informations temporelles, la consommation électrique, les fuites électromagnétiques ou encore le son peuvent constituer une source d'information supplémentaire, qui peut être exploitée.

Certaines attaques par canaux secondaires nécessitent une connaissance technique du fonctionnement interne du système, bien que d'autres, telles que l' analyse de puissance différentielle, soient efficaces en tant qu'attaques de type boîte noire . L'essor des applications Web 2.0 et des logiciels en tant que service a également considérablement augmenté la possibilité d'attaques par canaux secondaires sur le Web, même lorsque les transmissions entre un navigateur Web et un serveur sont cryptées (par exemple via le cryptage HTTPS ou WiFi ), selon aux chercheurs de Microsoft Research et de l'Université de l'Indiana . De nombreuses attaques par canal latéral puissantes sont basées sur des méthodes statistiques mises au point par Paul Kocher .

Les tentatives de casser un système cryptographique en trompant ou en forçant des personnes ayant un accès légitime ne sont généralement pas considérées comme des attaques par canal secondaire : voir l'ingénierie sociale et la cryptanalyse par tuyau en caoutchouc .

Général

Les classes générales d'attaque par canal secondaire comprennent :

  • Attaque de cache — attaques basées sur la capacité de l'attaquant à surveiller les accès au cache effectués par la victime dans un système physique partagé comme dans un environnement virtualisé ou un type de service cloud.
  • Attaque de synchronisation - attaques basées sur la mesure du temps nécessaire à divers calculs (comme, par exemple, comparer le mot de passe donné d'un attaquant avec celui inconnu de la victime).
  • Attaque de surveillance de l'alimentation - attaques qui utilisent une consommation d'énergie variable par le matériel pendant le calcul.
  • Attaque électromagnétique — attaques basées sur des fuites de rayonnement électromagnétique, qui peuvent fournir directement des textes en clair et d'autres informations. De telles mesures peuvent être utilisées pour déduire des clés cryptographiques à l'aide de techniques équivalentes à celles de l'analyse de puissance ou peuvent être utilisées dans des attaques non cryptographiques, par exemple des attaques TEMPEST (aka phreaking van Eck ou surveillance des radiations).
  • Cryptanalyse acoustique — attaques qui exploitent le son produit lors d'un calcul (plutôt comme l'analyse de puissance).
  • Analyse différentielle des défauts - dans laquelle les secrets sont découverts en introduisant des défauts dans un calcul.
  • Rémanence des données — dans laquelle les données sensibles sont lues après avoir prétendument été supprimées. (c.-à-d. Attaque de démarrage à froid )
  • Attaques par faute d'origine logicielle — Actuellement une classe rare de canaux secondaires, Row hammer est un exemple dans lequel la mémoire hors limites peut être modifiée en accédant trop souvent à la mémoire adjacente (causant une perte de rétention d'état).
  • Optique - dans lequel les secrets et les données sensibles peuvent être lus par enregistrement visuel à l'aide d'une caméra haute résolution ou d'autres appareils dotés de telles capacités (voir les exemples ci-dessous).

Dans tous les cas, le principe sous-jacent est que les effets physiques causés par le fonctionnement d'un système cryptographique ( sur le côté ) peuvent fournir des informations supplémentaires utiles sur les secrets du système, par exemple, la clé cryptographique , des informations d'état partielles, des textes en clair complets ou partiels et ainsi de suite. Le terme cryptophthora (dégradation secrète) est parfois utilisé pour exprimer la dégradation du matériel de clé secrète résultant d'une fuite de canal latéral.

Exemples

UNE L'attaque par canal latéral de cache fonctionne en surveillant les opérations critiques pour la sécurité telles que l'entrée de la table AES T ou l'exponentiation ou la multiplication modulaire ou les accès à la mémoire. L'attaquant est alors en mesure de récupérer la clé secrète en fonction des accès effectués (ou non) par la victime, en déduisant la clé de chiffrement. De plus, contrairement à certaines des autres attaques par canal latéral, cette méthode ne crée pas de défaut dans l'opération cryptographique en cours et est invisible pour la victime.

En 2017, deux vulnérabilités CPU (surnommées Meltdown et Spectre ) ont été découvertes, qui peuvent utiliser un canal latéral basé sur le cache pour permettre à un attaquant de divulguer le contenu de la mémoire d'autres processus et du système d'exploitation lui-même.

Une attaque de synchronisation surveille le mouvement des données dans et hors du CPU ou de la mémoire sur le matériel exécutant le cryptosystème ou l'algorithme. En observant simplement les variations dans le temps nécessaire pour effectuer des opérations cryptographiques, il pourrait être possible de déterminer l'intégralité de la clé secrète. De telles attaques impliquent une analyse statistique des mesures temporelles et ont été démontrées sur des réseaux.

Une attaque par analyse de puissance peut fournir des informations encore plus détaillées en observant la consommation électrique d'un périphérique matériel tel qu'un processeur ou un circuit cryptographique. Ces attaques sont grossièrement classées en analyse de puissance simple (SPA) et analyse de puissance différentielle (DPA). Des exemples d'approches d'apprentissage automatique sont disponibles.

Les fluctuations de courant génèrent également des ondes radio , permettant des attaques qui analysent les mesures des émanations électromagnétiques (EM). Ces attaques impliquent généralement des techniques statistiques similaires à celles des attaques d'analyse de puissance.

Une attaque par canal latéral basée sur l'apprentissage en profondeur , utilisant la puissance et les informations EM sur plusieurs appareils a été démontrée avec le potentiel de briser la clé secrète d'un appareil différent mais identique en une seule trace.

Des analogues historiques aux attaques modernes par canaux auxiliaires sont connus. Un document récemment déclassifié de la NSA révèle que dès 1943, un ingénieur du téléphone Bell a observé des pointes déchiffrables sur un oscilloscope associées à la sortie déchiffrée d'un certain télétype de chiffrement. Selon l'ancien officier du MI5 Peter Wright , le service de sécurité britannique a analysé les émissions des équipements de chiffrement français dans les années 1960. Dans les années 1980, les espions soviétiques étaient soupçonnés d'avoir planté des bogues à l' intérieur des machines à écrire IBM Selectric pour surveiller le bruit électrique généré lorsque la boule de type tournait et s'élançait pour frapper le papier ; les caractéristiques de ces signaux pourraient déterminer quelle touche a été enfoncée.

La consommation électrique des appareils provoque un échauffement, qui est compensé par les effets de refroidissement. Les changements de température créent des contraintes mécaniques induites thermiquement. Cette contrainte peut créer des émissions acoustiques de faible niveau provenant des processeurs en fonctionnement (environ 10 kHz dans certains cas). Des recherches récentes de Shamir et al. a suggéré que des informations sur le fonctionnement des cryptosystèmes et des algorithmes peuvent également être obtenues de cette manière. Il s'agit d'une attaque de cryptanalyse acoustique .

Si la surface de la puce du processeur, ou dans certains cas le boîtier du processeur, peut être observée, les images infrarouges peuvent également fournir des informations sur le code en cours d'exécution sur le processeur, ce que l'on appelle une attaque par imagerie thermique .

Un exemple d' attaque par canal latéral optique comprend l'obtention d'informations à partir de l'indicateur d'activité du disque dur pour lire un petit nombre de photons émis par les transistors lorsqu'ils changent d'état.

Les canaux secondaires basés sur l'allocation existent également et font référence aux informations qui fuient de l'allocation (par opposition à l'utilisation) d'une ressource telle que la bande passante du réseau aux clients qui demandent simultanément la ressource contestée.

Contre-mesures

Étant donné que les attaques par canaux secondaires reposent sur la relation entre les informations émises (fuites) via un canal secondaire et les données secrètes, les contre-mesures se répartissent en deux catégories principales : (1) éliminer ou réduire la diffusion de ces informations et (2) éliminer la relation entre les informations divulguées et les données secrètes, c'est-à-dire que les informations divulguées ne sont pas liées, ou plutôt non corrélées , aux données secrètes, généralement grâce à une forme de randomisation du texte chiffré qui transforme les données d'une manière qui peut être annulée après l'opération cryptographique (par exemple, le déchiffrement) est terminé.

Dans la première catégorie, des écrans dotés d'un blindage spécial pour réduire les émissions électromagnétiques, réduisant la susceptibilité aux attaques TEMPEST , sont désormais disponibles dans le commerce. Le conditionnement et le filtrage des lignes électriques peuvent aider à dissuader les attaques de surveillance de l'alimentation, bien que de telles mesures doivent être utilisées avec prudence, car même de très petites corrélations peuvent subsister et compromettre la sécurité. Les boîtiers physiques peuvent réduire le risque d'installation clandestine de microphones (pour contrer les attaques acoustiques) et d'autres dispositifs de micro-surveillance (contre les attaques de consommation d'énergie du processeur ou d'imagerie thermique).

Une autre contre-mesure (toujours dans la première catégorie) consiste à brouiller le canal émis avec du bruit. Par exemple, un délai aléatoire peut être ajouté pour dissuader les attaques de synchronisation, bien que les adversaires puissent compenser ces délais en faisant la moyenne de plusieurs mesures (ou, plus généralement, en utilisant plus de mesures dans l'analyse). Au fur et à mesure que la quantité de bruit dans le canal latéral augmente, l'adversaire doit collecter plus de mesures.

Une autre contre-mesure de la première catégorie consiste à utiliser un logiciel d'analyse de sécurité pour identifier certaines classes d'attaques par canal latéral qui peuvent être trouvées pendant les étapes de conception du matériel sous-jacent lui-même. Les attaques de synchronisation et les attaques de cache sont toutes deux identifiables via certaines plates-formes logicielles d'analyse de sécurité disponibles dans le commerce, qui permettent des tests pour identifier la vulnérabilité de l'attaque elle-même, ainsi que l'efficacité du changement architectural pour contourner la vulnérabilité. La méthode la plus complète pour utiliser cette contre-mesure consiste à créer un cycle de vie de développement sécurisé pour le matériel, qui comprend l'utilisation de toutes les plates-formes d'analyse de sécurité disponibles à leurs stades respectifs du cycle de vie de développement du matériel.

Dans le cas d'attaques temporelles contre des cibles dont les temps de calcul sont quantifiés en nombres de cycles d'horloge discrets, une contre-mesure efficace consiste à concevoir le logiciel pour qu'il soit isochrone, c'est-à-dire qu'il s'exécute dans un laps de temps exactement constant, indépendamment des valeurs secrètes. Cela rend les attaques de synchronisation impossibles. De telles contre-mesures peuvent être difficiles à mettre en œuvre dans la pratique, car même des instructions individuelles peuvent avoir une synchronisation variable sur certains processeurs.

Une contre-mesure partielle contre les attaques de puissance simples, mais pas les attaques par analyse de puissance différentielle, consiste à concevoir le logiciel de manière à ce qu'il soit « PC-sécurisé » dans le « modèle de sécurité du compteur de programmes ». Dans un programme sécurisé pour PC, le chemin d'exécution ne dépend pas de valeurs secrètes. En d'autres termes, toutes les branches conditionnelles dépendent uniquement des informations publiques. (Il s'agit d'une condition plus restrictive que le code isochrone, mais une condition moins restrictive que le code sans branche.) Même si les opérations de multiplication consomment plus d'énergie que NOP sur pratiquement tous les processeurs, l'utilisation d'un chemin d'exécution constant empêche de telles différences de puissance dépendantes de l'opération ( différences de pouvoir de choisir une branche plutôt qu'une autre) de divulguer des informations secrètes. Sur les architectures où le temps d'exécution des instructions ne dépend pas des données, un programme sécurisé pour PC est également immunisé contre les attaques de synchronisation.

Une autre façon dont le code peut être non isochrone est que les processeurs modernes ont un cache mémoire : accéder à des informations rarement utilisées entraîne une pénalité de timing importante, révélant certaines informations sur la fréquence d'utilisation des blocs de mémoire. Le code cryptographique conçu pour résister aux attaques de cache tente d'utiliser la mémoire uniquement de manière prévisible (comme accéder uniquement aux données d'entrée, de sortie et de programme, et le faire selon un modèle fixe). Par exemple, les recherches de table dépendantes des données doivent être évitées car le cache pourrait révéler quelle partie de la table de recherche a été consultée.

D'autres contre-mesures partielles tentent de réduire la quantité d'informations divulguées par les différences de puissance dépendant des données. Certaines opérations utilisent une puissance qui est corrélée au nombre de bits 1 dans une valeur secrète. L'utilisation d'un code à poids constant (comme l'utilisation de portes de Fredkin ou d'un codage à double rail) peut réduire la fuite d'informations sur le poids de Hamming de la valeur secrète, bien que des corrélations exploitables soient susceptibles de subsister à moins que l'équilibrage ne soit parfait. Cette "conception équilibrée" peut être approchée dans le logiciel en manipulant à la fois les données et leur complément ensemble.

Plusieurs "processeurs sécurisés" ont été construits en tant que processeurs asynchrones ; ils n'ont pas de référence temporelle globale. Alors que ces processeurs étaient destinés à rendre les attaques de synchronisation et de puissance plus difficiles, des recherches ultérieures ont révélé que les variations de synchronisation dans les circuits asynchrones sont plus difficiles à supprimer.

Un exemple typique de la deuxième catégorie (décorrélation) est une technique connue sous le nom d' aveuglement . Dans le cas du déchiffrement RSA avec exposant secret et exposant et module de chiffrement correspondants , la technique s'applique comme suit (pour simplifier, la réduction modulaire par m est omise dans les formules) : avant déchiffrer, c'est-à-dire avant de calculer le résultat de pour un étant donné le texte chiffré , le système choisit un nombre aléatoire et le crypte avec un exposant public pour obtenir . Ensuite, le décryptage est effectué pour obtenir . Puisque le système de décryptage a choisi , il peut calculer son inverse modulo pour annuler le facteur dans le résultat et obtenir , le résultat réel du décryptage. Pour les attaques qui nécessitent la collecte d'informations de canal secondaire à partir d'opérations avec des données contrôlées par l'attaquant , l'aveuglement est une contre-mesure efficace, car l'opération réelle est exécutée sur une version aléatoire des données, sur laquelle l'attaquant n'a aucun contrôle ni même connaissance.

Une contre-mesure plus générale (dans la mesure où elle est efficace contre toutes les attaques par canal latéral) est la contre-mesure de masquage. Le principe du masquage est d'éviter de manipuler directement toute valeur sensible , mais plutôt de manipuler un partage de celle-ci : un ensemble de variables (appelées "partages") tel que (où est l' opération XOR ). Un attaquant doit récupérer toutes les valeurs des partages pour obtenir des informations significatives.

Récemment, la modélisation en boîte blanche a été utilisée pour développer une contre-mesure générique au niveau du circuit à faible surcharge contre les attaques EM et les attaques par canal latéral de puissance. Pour minimiser les effets des couches métalliques de niveau supérieur dans un circuit intégré agissant comme des antennes plus efficaces, l'idée est d'intégrer le noyau cryptographique avec un circuit de suppression de signature, acheminé localement dans les couches métalliques de niveau inférieur, menant à la fois à la puissance et à l'EM. immunité aux attaques par canal latéral.

Voir également

Les références

Lectures complémentaires

Livres

Des articles

Liens externes