SEME 2011

2011-11-28 - 2011-12-02

Université Claude Bernard Lyon 1 - 43, bd du 11 novembre 1918 - 69622 Villeurbanne

OBERTHUR

"Points d'intérêt dans des courbes liées à un calcul cryptographique et implémentation en boîte blanche d'algorithmes cryptographiques"


Les sujets seront présentés par Emmanuel Prouff, responsable de la recherche en cryptographie et sécurité chez Oberthur

Sujet A : Points d'intérêt dans des courbes liées à un calcul crypographique

La grande majorité des algorithmes cryptographiques existant sont aujourd’hui susceptibles d’être embarqués dans une carte à puce. En particulier, des algorithmes de chiffrement tels que le DES et l’AES, des fonctions de hachage telles que le SHA1 ou le SHA-256 ou des algorithmes de signatures tels que le RSA ou l’ECDSA sont couramment utilisés par les cartes à puce. Lors de leur utilisation, dans le cadre par exemple d’une transaction bancaire ou d’une authentification sur un réseau GSM, des données utilisateurs très sensibles sont manipulées. La carte doit assurer qu’aucune information sur ces dernières ne fuit. Jusque dans les années 90, la carte à puce a été considérée comme une solution parfaite au problème de la sécurité embarquée, devenant un élément central de la sécurité d’applications aussi diversifiées que le bancaire, la téléphonie mobile, l’identité ou la télévision à péage.

Dans les années 90, des équipes de chercheurs ont élaboré de nouveaux types d’attaques ne consistant plus à accéder directement aux données sensibles mais à analyser leurs manipulations par la carte. Ces attaques reposent sur le constat que le comportement d’un système embarqué est très fortement dépendant des valeurs des données qu’il manipule. Il s’avère en effet que les échanges d’information entre une carte à puce et l’extérieur ne se font pas seulement via les canaux d’entrées/sorties mais aussi via des canaux plus exotiques, dits auxiliaires ou cachés, associés par exemple à la consommation d’énergie de la carte, à son rayonnement électromagnétique ou à son temps d’activité. Depuis leur introduction, les attaques par analyse de canaux auxiliaires ainsi que les mécanismes mis en place pour les contrer ont fortement évolués.

Lors d’une attaque par analyse de consommation de courant, l’adversaire applique des traitements statistiques (calcul de coefficients de corrélation de Pearson, estimation d’information mutuelle, tests d’hypothèses, etc.) afin de détecter une dépendance entre une mesure de consommation (vue comme un vecteur de points, chaque point correspondant à une date de mesure) et une donnée secrète. En général, les courbes de consommation sont composées d’un très grand nombre de points (de l’ordre de 10 millions pour le calcul d’un algorithme comme le RSA) et la sélection de ceux qui sont intéressants pour l’attaquant est un problème difficile. En effet, la consommation de courant d’une carte pour un même calcul peut être soumise à de nombreux types de déformation : temporel (désynchronisation volontaire ou non), pics de consommation, etc. De plus, les contremesures utilisées pour protéger les calculs effectués sur une carte ont souvent pour conséquence d’annuler toute fuite d’information locale et oblige l’attaquant à considérer plusieurs points de fuite en même temps pour retrouver l’information secrète cachée.

Le but du sujet est d’identifier des nouvelles méthodes de recherche de points d’intérêts dans des courbes de consommation liées à un calcul cryptographique, l’intérêt des points étant jugé en fonction de l’efficacité des attaques qui les exploitent.

Sujet B : Implémentation robuste d'algorithmes cryptographiques

La conception et l’implémentation de logiciels résistants à la rétro-ingénierie est un problème crucial et difficile pour de nombreuses applications, particulièrement lorsqu’il s’agit de protéger les algorithmes propriétaires implémentés par le logiciel et/ou de protéger la fonction de contrôle de droits conditionnant l’accès à tout ou partie de ses fonctionnalités. Lorsque l’application à protéger ne peut pas asseoir sa sécurité sur l’utilisation d’un composant matériel de sécurité, ou d’un serveur du réseau, nous devons faire l’hypothèse d’un attaquant capable d’exécuter l’application dans un environnement qu’il contrôle parfaitement. Le modèle de l’attaquant correspondant à ce contexte, que nous appellerons modèle en boite blanche, impose une implémentation logicielle particulière des primitives cryptographiques classiques.

Dans ce contexte, la protection d’un programme repose sur des mécanismes couvrant différents objectifs de sécurité, dont la capacité à contrôler, en plusieurs points de son exécution :
• l’intégrité de son code, de ses données critiques et de son contexte d’exécution ;
• la confidentialité des algorithmes propriétaires ;
• la diversification de ses instances ;
• l’ancrage du logiciel à une plate-forme cible d’exécution personnalisée, etc.

Le but de ce sujet est de rechercher des mécanismes d’implantation d’algorithmes cryptographiques (tels que des algorithmes de chiffrement par exemple) qui permettent de cacher les secrets de l’algorithme (comme sa structure et/ou ses clefs de chiffrement) dans le code de sorte que leur extraction soit difficile pour une personne qui aurait un accès total à ce code obfusqué. Idéalement, il s’agirait aussi de définir des méthodes associées permettant de mesurer la résistance du mécanisme d’obfuscation contre ces attaques.