Nouvelle méthode de protection pour les éléments sécurisés contre les attaques par défaut
Ce document présente une méthode pour protéger les éléments sécurisés contre les accès non autorisés.
― 8 min lire
Table des matières
- La Menace des Attaques par Défaillance
- Méthodes de Protection Actuelles
- Présentation d'un Nouveau Schéma de Protection
- Comment Cette Méthode Fonctionne
- Avantages du Nouveau Schéma
- L'Importance de l'Intégrité du Flux de Contrôle
- Comment Fonctionnent les Attaques par Défaillance
- Mesures Défensives dans les Puces Actuelles
- Le Rôle du Chiffrement dans la Sécurité
- Mise en Œuvre de la Nouvelle Méthode de Protection
- Évaluation de la Performance
- Conclusion
- Travaux Futurs
- Source originale
- Liens de référence
Les éléments sécurisés, qu'on trouve dans des appareils comme les smartphones et les ordinateurs, sont souvent attaqués par des utilisateurs qui veulent accéder à des infos sans autorisation. Ces attaques peuvent permettre aux hackers de changer le fonctionnement des logiciels, d'accéder à des infos confidentielles ou de lancer leur propre code. Ce document explique une nouvelle méthode pour protéger ces éléments sécurisés contre de telles attaques, sans avoir besoin de beaucoup de matériel supplémentaire ou de ralentir trop le dispositif.
La Menace des Attaques par Défaillance
Les attaques par défaillance se produisent quand quelqu'un essaie de perturber le fonctionnement normal d'une puce. Ça peut se faire avec différentes techniques comme changer la tension, la vitesse d'horloge ou même utiliser des lasers. Quand ces défaillances surviennent, elles peuvent changer des bits importants à l'intérieur de la puce. Ça peut alors permettre aux attaquants de contrôler le comportement d'un logiciel. Les éléments sécurisés sont particulièrement vulnérables car ils gèrent des tâches sensibles comme le stockage de clés de Chiffrement et la vérification des utilisateurs.
Méthodes de Protection Actuelles
La plupart des méthodes actuelles pour prévenir les attaques par défaillance prennent trop de place sur la puce ou ne stoppent pas complètement les attaques. Les méthodes existantes offrent souvent une protection limitée ou nécessitent des changements significatifs au matériel, ce qui peut les rendre coûteuses et difficiles à mettre en œuvre.
Présentation d'un Nouveau Schéma de Protection
Le nouveau schéma présenté ici utilise une méthode de chiffrement pour améliorer l'Intégrité du Flux de Contrôle. Cette nouvelle méthode peut limiter l'impact des attaques par défaillance avec des changements minimes au matériel. Ça fonctionne en chiffrant chaque fonction que le logiciel appelle avec une clé unique. Comme ça, si un attaquant essaie de perturber le flux du logiciel, le code chiffré sera inutilisable sans la bonne clé.
Comment Cette Méthode Fonctionne
Avant qu'un programme ne s'exécute, il est chargé en mémoire, et chacune de ses fonctions est chiffrée. Quand le programme tourne, il ne déchiffrera et n'exécutera le code que si la bonne clé est présente. Si un attaquant essaie de rediriger le flux de contrôle vers une fonction avec une clé différente, le programme ne pourra pas exécuter ce code et alertera le système.
Ce schéma utilise des fonctionnalités matérielles existantes déjà présentes dans les éléments sécurisés, ce qui signifie qu'il ne nécessite pas beaucoup d'espace ou de fonctionnalités supplémentaires. Les changements globaux nécessaires dans la conception sont minimes, ce qui entraîne moins de 4 % d'espace supplémentaire utilisé sur la puce.
Avantages du Nouveau Schéma
Changements Matériels Minimes : La nouvelle méthode peut être ajoutée aux éléments sécurisés sans nécessiter de grandes modifications, ce qui garde les coûts de production plus bas.
Faible Impact sur la Performance : Les programmes utilisant ce nouveau schéma de protection n’ont pas montré de ralentissements significatifs. L’augmentation du temps pour les tâches est assez faible pour que les utilisateurs ne remarquent probablement pas de différence.
Sécurité Renforcée : Bien qu'elle ne stoppe pas chaque type d'attaque, cette méthode offre une bien meilleure protection contre les tentatives de changement des flux de contrôle dans les logiciels. Elle réduit la surface d'attaque que les attaquants peuvent exploiter.
L'Importance de l'Intégrité du Flux de Contrôle
L'intégrité du flux de contrôle (CFI) est essentielle pour s'assurer que les programmes s'exécutent comme prévu. Elle empêche les attaquants de rediriger le chemin d'exécution d'un programme vers des zones qui pourraient leur permettre d'exécuter des instructions nuisibles. En intégrant la CFI avec des techniques de chiffrement, le nouveau schéma crée une barrière plus solide contre l'accès non autorisé.
Comment Fonctionnent les Attaques par Défaillance
Pour manipuler le logiciel, les attaquants peuvent cibler des zones spécifiques de la puce :
Saut vers des Fonctions Inaccessibles : Un attaquant peut essayer de rediriger le programme vers une fonction qui ne devrait pas être accessible, échappant ainsi au flux établi du programme.
Changement des Branches Conditionnelles : Les attaquants peuvent manipuler les points de décision dans le code qui déterminent quel chemin le logiciel suivra, conduisant à des comportements inattendus.
Manipulation Directe : Les hackers peuvent changer des bits dans des registres importants ou des zones de mémoire, modifiant ainsi comment les fonctions sont appelées ou comment les données sont traitées.
Mesures Défensives dans les Puces Actuelles
Les éléments sécurisés d'aujourd'hui offrent un certain niveau de protection contre les attaques par défaillance grâce à diverses méthodes. Cela peut inclure des codes de vérification d'erreurs qui identifient quand des données ont été changées ou des mécanismes qui réessaient automatiquement les actions si une erreur est détectée. Cependant, ces mesures échouent souvent à stopper efficacement les attaques sophistiquées.
Protections Basées sur le Matériel
De nombreuses protections matérielles existent qui fonctionnent en vérifiant continuellement l'intégrité des données. Par exemple, certaines puces détectent quand un bit a changé et peuvent arrêter l'exécution ou déclencher une réponse de sécurité. Cependant, ces méthodes peuvent coûter cher et doubler les exigences de surface matérielle.
Protections Basées sur le Logiciel
Les défenses logicielles sont incluses sous des chaînes d'outils de compilateur modifiées. Cela signifie que les programmes compilés avec des outils spécifiques peuvent stocker des informations critiques dans une zone séparée de la mémoire (pile fantôme), rendant plus difficile pour les attaquants de manipuler des flux de contrôle importants. Pourtant, ces méthodes offrent seulement une couverture limitée et peinent souvent contre certaines formes d'attaque.
Le Rôle du Chiffrement dans la Sécurité
En utilisant le chiffrement pour protéger les flux de contrôle, on s'assure que si des attaques perturbent le fonctionnement normal du programme, les données qu'ils tentent de manipuler restent chiffrées et inutilisables. L'amélioration spécifique offerte par la nouvelle méthode signifie que les clés utilisées pour déchiffrer les fonctions sont uniques, ce qui renforce la sécurité globale.
Mise en Œuvre de la Nouvelle Méthode de Protection
Pour mettre en œuvre cette nouvelle méthode, les étapes suivantes sont suivies :
Compiler : D'abord, le programme est compilé avec une chaîne d'outils avancée qui attribue des clés de chiffrement uniques à chaque fonction.
Charger : Lors du chargement du programme en mémoire, les clés sont utilisées pour chiffrer le code, s'assurant que seules les bonnes clés permettront son exécution.
Exécuter : Au moment de l'exécution, chaque fois qu'une fonction est appelée, la clé active est vérifiée par rapport à la clé requise. Si elles ne correspondent pas, l'exécution est arrêtée.
Évaluation de la Performance
Pour tester l'efficacité de la nouvelle méthode, des benchmarks ont été réalisés pour mesurer le temps supplémentaire nécessaire pour les tâches et la taille des programmes résultants. Il a été constaté que le nouveau schéma avait un léger impact sur la performance mais était généralement négligeable. La plupart des utilisateurs ne remarqueraient pas de différence dans un usage typique.
Surcoût de Surface
La nouvelle méthode de chiffrement a entraîné une augmentation d'environ 4 % de la surface totale occupée par la puce. Étant donné le niveau de protection élevé qu'elle offre contre les attaques par défaillance, cet échange est considéré comme favorable.
Conclusion
Alors que les menaces cybernétiques continuent d'évoluer, les éléments sécurisés doivent s'adapter pour protéger les données et systèmes sensibles. La nouvelle méthode décrite dans ce document offre un moyen prometteur d'améliorer la sécurité sans coûts élevés ni impacts significatifs sur la performance. En combinant efficacement le chiffrement avec l'intégrité du flux de contrôle, on peut ajouter une couche de sécurité essentielle dans le paysage numérique d'aujourd'hui.
Travaux Futurs
De futures améliorations de cette méthode pourraient inclure l'exploration de moyens pour la rendre encore plus robuste contre des types d'attaques spécifiques, comme les manipulations de branches conditionnelles. De plus, une évaluation continue des impacts sur la performance dans des scénarios réels aidera à affiner davantage la technique.
En résumé, cette nouvelle approche représente un progrès dans la sécurisation des logiciels tournant sur des éléments sécurisés, offrant à la fois sécurité et efficacité.
Titre: SCRAMBLE-CFI: Mitigating Fault-Induced Control-Flow Attacks on OpenTitan
Résumé: Secure elements physically exposed to adversaries are frequently targeted by fault attacks. These attacks can be utilized to hijack the control-flow of software allowing the attacker to bypass security measures, extract sensitive data, or gain full code execution. In this paper, we systematically analyze the threat vector of fault-induced control-flow manipulations on the open-source OpenTitan secure element. Our thorough analysis reveals that current countermeasures of this chip either induce large area overheads or still cannot prevent the attacker from exploiting the identified threats. In this context, we introduce SCRAMBLE-CFI, an encryption-based control-flow integrity scheme utilizing existing hardware features of OpenTitan. SCRAMBLE-CFI confines, with minimal hardware overhead, the impact of fault-induced control-flow attacks by encrypting each function with a different encryption tweak at load-time. At runtime, code only can be successfully decrypted when the correct decryption tweak is active. We open-source our hardware changes and release our LLVM toolchain automatically protecting programs. Our analysis shows that SCRAMBLE-CFI complementarily enhances security guarantees of OpenTitan with a negligible hardware overhead of less than 3.97 % and a runtime overhead of 7.02 % for the Embench-IoT benchmarks.
Auteurs: Pascal Nasahl, Stefan Mangard
Dernière mise à jour: 2023-03-24 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2303.03711
Source PDF: https://arxiv.org/pdf/2303.03711
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.