• Aucun résultat trouvé

Protection des algorithmes

5.4 Publication à la conférence CHES'00

6.1.2 Protection des algorithmes

Cet article écrit avec Yannick Teglia a été publié lors de la première confé- rence FDTC. Il nous est apparu intéressant, dans le cadre de ce premier workshop sur cette thématique, de faire le parallèle entre les eorts de l'industrie du semi conducteur, pour développer et rendre plus ables des composants servant des ap- plications émergeantes, et la mise à prot des outils et connaissances développés dans le but de mettre en défaut les produits de sécurité.

La course technologique visant l'augmentation des capacités mémoires a conduit les fabricants de semi-conducteurs à aner les procédés de gravure. Ainsi, alors que dans les années 80 la nesse de gravure était voisine des 1 micron, elle est aujourd'hui de quelques dizaines de nanomètres soit un rapport bien supérieur

6.1. INTRODUCTION 101 à 10. Cette progression ne s'est pas faite sans la conception d'outils particuliè- rement performants pour permettre le développement, l'analyse de défaut et la caractérisation de ces technologies de plus en plus nes.

Pendant que l'industrie du semi-conducteur progresse en diminuant la taille des composants, les applications de ces composants électroniques se multiplient. Certaines soumettent l'électronique à d'important stress environnementaux. Ainsi, grâce à ces développements technologiques, l'industrie aéronautique embarque de plus en plus de composants électroniques notamment en temps qu'aide au pilo- tage. En particulier, dans le spatial, l'absence d'atmosphère augmentent signica- tivement la probabilité de subir les eets des rayonnements cosmiques qui peuvent entraîner des défauts avec des conséquences catastrophiques pour la vie des pas- sagers. Pour prévenir toute perturbation de l'électronique, des solutions à base de redondance de circuits sont développées entraînant parfois un surcoût important. Dans des applications telles que celles des marchés de masse d'aujourd'hui, des solutions moins coûteuses sont généralement présentes pour assurer la abilité des transmissions ou des mémoires.

Mais les composants de sécurité subissent d'autres menaces que celles les rayons cosmiques, celles des pirates qui cherchent à perturber le composant pour tirer parti d'un éventuel défaut de fonctionnement. Pour arriver à ses ns, le pirate peut bien souvent accéder aux outils et connaissances développés lors de la conception des circuits. Ainsi, si aucune précaution n'est prise pour anticiper son action, les se- crets du composant seront rapidement compromis. Mais cela nécessite des moyens importants, qui ne sont pas à la portée de tous les pirates, parce qu'ils sont trop onéreux pour constituer une source de prot. C'est pourquoi ces derniers tentent de développer des moyens à bas coût pour perturber les composants. Une des raisons de leur motivation pour atteindre des clés cryptographiques est apparu en sep- tembre 1996 avec une annonce à grand bruit (publiée plus tard [24]) dans laquelle des chercheurs des laboratoires Bellcore montraient que sous l'hypothèse d'une simple erreur dans une implémentation particulière d'un calcul cryptographique, les secrets se trouvaient compromis par le résultat erroné obtenu du composant de sécurité (cf. chapitre 2 Ÿ2).

Aujourd'hui, même si les techniques de perturbation ont évolué, elles sont prises en compte dès la conception des circuits et l'implémentation des algorithmes de cryptographie. Cela se traduit concrètement par l'augmentation du coût du com- posant et un développement particulièrement défensif et complexe pour contrer au mieux les attaques dues aux perturbations, tout en gardant des temps de cal- cul et des coûts silicium raisonnables. Dans les paragraphes Ÿ4 et 5 de cet article nous décrivons d'abord quelques unes des multiples formes que peuvent prendre ces attaques et les techniques générales, qui même si le composant reste sensible aux perturbations, rendent dicile l'exploitation des fautes induites.

En conclusion nous rappelons que, même si les attaques fautes sont loin d'être une nouvelle menace pour les composants de sécurité, elles sont encore mal com- prises, souvent exagérées, mais aussi parfois sous estimées. Elles doivent rester une préoccupation constamment renouvelée de l'industrie de la sécurité. Même s'il existe des techniques pour parer les attaques les moins coûteuses, ces techniques

contribuent à la croissance de la complexité et du coût des composants, et à ce titre constituent un excellent vecteur de recherche. Il ne faut pas oublier que ces attaques sont un moyen supplémentaire que l'attaquant peut combiner avec les autres attaques à canaux cachés ou encore issues de la cryptanalyse classique.

6.2 Quelques innovations

Dans le cadre de l'amélioration des composants d'STMicroelectronics contre les attaques en fautes, nous avons développé de nombreuses stratégies que nous avons brevetées( les résumés d'un bonne partie de ces brevets sont donnés en annexe). Voici quelques uns des principaux brevets déposés :

 FR1503288 -Piège à Faute - Détecter une faute est une tâche dicile si l'on ignore sa nature. Cependant, si l'on réalise un circuit très simple, réalisant une opération bien choisie, il peut être facile de déterminer si le circuit a subi une perturbation. Ce brevet propose des solutions de circuits à base d'invariants simples à vérier qui sont implantés à des places stratégiques dans un composant à protéger pour détecter une éventuelle perturbation. Ce brevet inventé avec Yannick Teglia a été étendu en Allemagne, en Italie et en Grande-Bretagne et aux États-Unis US2005022071 (c.f. annexe 8.2).  FR0551040 -Chaînage d'opérations résistant aux attaques par injec-

tion de fautes - Dans ce brevet nous proposons d'entremêler deux exécu- tions d'un même algorithme, c'est à dire de calculer de manière parallèle deux exécutions, et de comparer à chaque étape leurs résultats, sans ajouter trop de surcoût en temps et en surface. Ce brevet inventé avec Yannick Teglia est en cours d'extension en Europe, aux États-Unis et au Japon.

 FR0350258 -Vérication d'intégrité asynchrone - La trace d'une exécu- tion a ces propres statistiques d'accès aux opérations et aux ressources. En comparant cette statistique en cours d'exécution à une référence, il est pos- sible de détecter une perturbation du chemin d'exécution même lorsque celle- ci comporte des contre-mesures de randomisation. Ce brevet inventé avec Yannick Teglia est actuellement en cours de procédure en Europe EP1591866 et aux États-Unis US20050251703.

 FR0551040 -Protection d'exécution d'un programme (par complé- ment d'exécution) - L'idée principale de ce brevet consiste à protéger le ot d'exécution de tout déroutement en aboutissant à un résultat défavorable pour l'attaquant. Pour cela, le code principal exécuté doit être complété par l'exécution de parties de codes servies par des interruptions prédéterminées. Si le code est dérouté, les interruptions ne se font pas dans le bon contexte et le résultat obtenu sera défavorable à l'attaquant. Ce brevet inventé avec Alain Pomet et Yannick Teglia est en cours d'extension en Europe, aux États-Unis et au Japon.

 FR0551040 -Protection d'un saut dans d'un programme - Les opé- rations de saut sont des opérations critiques qu'il faut protéger. Lorsque plusieurs sauts peuvent être regroupés, le brevet propose une méthode pour qu'à chaque exécution ces sauts soient redénis. Couplé à un mécanisme de

6.2. QUELQUES INNOVATIONS 103 blocage en cas de déroutement (trappe) une perturbation du ot d'exécution est facilement piégée. Ce brevet inventé avec Pierre Élias et Yannick Teglia est en cours d'extension en Europe, aux États-Unis et au Japon.