Sécurité et Canaux Auxiliaires (SCA)

Informations Générales

Description

Les implémentations de protocoles cryptographiques reposent sur des algorithmes mathématiques supposés sûrs. Néanmoins cela n’empêche généralement pas ces implémentations d’être vulnérables à des attaques liées aux matériels sur lesquels elles sont déployées. Le but de cette UE est de montrer comment des informations obtenues en influençant les calculs ou en effectuant des mesures physiques (consommation électrique, rayonnement électro-magnétique, etc.) lors de l’exécution d’opérations sur des circuits intégrés permettent de retrouver les secrets de protocoles cryptographiques et ainsi mettre à mal la sécurité escomptée. Des rappels d’électronique et d’analyse des signaux seront prodiguées afin de comprendre et d’expérimenter de telles attaques. Des contremesures matérielles ou logicielles seront aussi présentées. Plusieurs acteurs du monde industriel (cryptographie embarquée) ainsi que d’instituts gouvernementaux (par exemple l’ANSSI) interviendront lors de ce cours.

Description

Responsable: Karine Heydemann (SU) et Guénaël Renault (ANSSI/SU/X)

Période

: Semestre 3.

But général du cours

l’idée est de sensibiliser les étudiants de M2 du master d’informatique à la « sécurité/attaques matérielle/s » en leur proposant un panorama le plus exhaustif possible des problématiques et métiers liés à cette thématique. Dans ce but, les étudiants seront confrontés à différents points de vues (académique, industriel, étatique, etc.) et devront réaliser de « vraies » attaques (des "Toy" attaques, mais au moins qu’ils mettent un peu les mains dans le cambouis). Une partie des TME seront réalisés avec l’outil ChipWhisperer ().

Nombre d’étudiants

deux groupes de 25

Profils des étudiants

Etudiants du master informatique (SU) avec un profil soit algorithmique et applications crypto (spécialité SFPN), soit alternant en sécurité informatique (MSI) et soit informatique de l’embarqué (SESI). Les connaissances de base étant hétérogènes, une remise à niveau lors des deux premiers cours est organisée (Cryptographie et Architecture matérielle).

Syllabus

Introduction à la Cryptographie

Type: Cours 1.
Durée: 4 h.
Matériel: aucun.
Intervenant: Guénael Renault (SU).

Résumé

Le but de ce cours est de présenter les grands concepts de la cryptographie (confidentialité, intégrité, authentication). Les principaux algorithmes (DES, AES, RSA, ECDSA) sont brièvement introduits, ainsi que plusieurs cryptanalyses liées à leur utilisation dans l’embarqué. Les concepts de base de mathématiques sont également introduits ainsi que des notions de statistiques, de complexité et d’algorithmique.

Prérequis

Connaissances de base en mathématiques et en informatique.

Objectifs

Les étudiants doivent être familiarisés avec les principaux algorithmes cryptograqhiques (DES/AES, RSA) qui serviront d’exemples d’application aux autres interventions. Les principales notions de cryptographie doivent être comprises afin d’appréhender les principaux enjeux de la sécurité embarquée. Les bases de mathématiques et d’informatique nécessaires aux autres interventions doivent être vues dès ce premier cours.

Introduction à l’architecture matérielle

Type: Cours 2
Durée: 4h.
Matériel: aucun.
Intervenant: Pirouz Bazargan Sabet (SU)

Résumé

Le but de ce cours est de présenter les grands concepts de l’architecture matérielle CMOS: concepts électroniques sous-jacents, fonctionnement des mémoires ROM/RAM, notion de registre, notion de porte logique, éléments de base d’une implantation matérielle d’algorithmes cryptographiques.

Prérequis

Connaissances de base en mathématiques et en informatique.

Objectifs

A l’issue de ce cours, les étudiants doivent avoir une vue d’ensemble du fonctionnement d’un circuit électronique (e.g. FPGA ou carte à puce) : gestion des principales interconnexions externes, fonctionnement des mémoires (pourquoi leur manipulation est corrélée avec la consommation de courant ou le rayonnement électromagnétique), implantation logique d’algorithmes (propagation des signaux, rôle de l’horloge, effet de “glitches”, etc.).

Formalisation des Attaques sur Implantation Matérielle et Certification

Type: Cours 3.
Durée: 4h.
Intervenant: Adrian Thillard (ANSSI)

Résumé

Le but de ce cours est d’expliquer de manière formelle les concepts sur lesquels reposent les attaques par canaux auxiliaires: notion de base de probabilité et statistiques, notion de modélisation, notion de distingueur, notion d’efficacité d’une attaque par canaux auxiliaires, etc.

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en cryptographie (Cours 1). Connaissances de base en électronique (Cours 2).

Objectifs

A l’issue de ce cours, les étudiants doivent avoir compris les principes théoriques sur lesquels reposent les attaques par canaux auxiliaires. Ils doivent être capables d’implanter une attaque CPA ou une attaque Template de base. Ils doivent être capables d’adapter l’attaque à mener aux spécificités de l’implantation cryptographique attaquée.

Mise en Place du Banc de Tests

Type: TP 1
Durée: 4h.
Matériel: PC + ChipWhisperer.
Intervenant: Guénael Renault + Karine Heydemann

Résumé

Le but de ce TP est de familiariser les étudiants avec l’outil Chipwhisperer et de leur donner les bases pour pouvoir inter-opérer avec un composant embarqué programmable via des commandes APDU et/ou des scripts Python.

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en électronique (Cours 2).

Objectifs

A l’issue de ce cours, les étudiants doivent être capables d’utiliser les options de base de l’outil Chipwhisperer. Ils doivent également être capables d’exécuter un code chargé sur un composant embarqué et de paramétrer l’oscilloscope intégré à ChipWhisper.

Attaques Basiques sur Implantation Matérielle

Type: TP 2
Durée: 4h.
Matériel: PC + Chipwhisperer.
Intervenant: Guénael Renault + Karine Heydemann

Résumé

Le but de ce TP est de faire exécuter aux étudiants des attaques par canaux auxiliaires de base sur des implantations d’algorithmes cryptographiques (type RSA ou AES) ou des implantations de primitives de sécurité (type vérification de code PIN).

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en cryptographie (Cours 1). Connaissances de base en électronique (Cours 2). Introduction à l’outil ChipWhisperer (TP 1).

Objectifs

A l’issue de ce TP, les étudiants doivent avoir vu des attaques par canaux auxiliaires (type SPA ou DPA/CPA) sur un algorithme cryptographique. Ils doivent avoir été sensibilisés aux problématiques liées au traitement du signal, à la recherche de points d’intérêt et à l’identification de la bonne donnée intermédiaire. Ils n’ont pas besoin d’avoir compris en profondeur les concepts des attaques (qui seront vus plus tard).

Attaque Avancéee sur Implantation Cryptographique

Type: TP 3.
Durée: 4 h.
Matériel: PC + ChipWhisperer.
Intervenant: Guénaël Renault + Karine Heydemann

Résumé

Le but de ce TP est que les étudiants mettent en pratique les attaques vues lors du cours 3: attaques template, attaques CPA, impact de la modélisation sur le succès des attaques, etc.

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en cryptographie (Cours 1). Connaissances de base en électronique (Cours 2). Introduction à l’outil ChipWhisperer (TP 2). Connaissances théoriques sur les attaques par canaux auxiliaires (Cours 3).

Objectifs

A l’issue de ce TP, les étudiants doivent avoir expérimenté les principales étapes d’une attaque par canaux auxiliaires (CPA et/ou Template) sur une implantation cryptographique.

Introduction aux Développement Sécurisé face aux attaques par faute

Type: Cours 4.
Durée: 4h.
Matériel: aucun.
Intervenant: Jessy Clédière (CEA LeTi) + David Vigilant (Gemalto)

Résumé

Le but de ce cours est de présenter aux étudiants les attaques par fautes et les principales techniques de sécurisation logicielle d’une implantation d’un algorithme cryptographique, ainsi que les principaux concepts théoriques sous-jacents (diminution du SNR, partage de secret, désynchronisation, etc.). Des exemples d’application pour RSA et AES seront aussi développés.

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en cryptographie (Cours 1). Connaissances de base en électronique (Cours 2). Introduction à l’outil ChipWhisperer (TP 2). Connaissances théoriques sur les attaques par canaux auxiliaires (Cours 3).

Objectifs

A l’issue de ce cours, les étudiants doivent connaitre les principales familles de contre-mesures logicielles (leurs défauts et leurs qualités). Ils doivent également avoir vu une application de ces techniques au cas du RSA et de l’AES.

Introduction à l’Implantation Matérielle Sécurisée

Type: Cours 5.
Durée: 4h.
Matériel: aucun.
Intervenant: Sylvain Guilley et/ou Jean-Luc Danger (Télécom ParisTech).

Résumé

Le but de ce cours est de présenter aux étudiants les principales techniques de sécurisation matérielle d’une implantation d’un algorithme cryptographique, ainsi que les principaux concepts théoriques sous-jacents (logique équilibrée, calculs tabulés, BUS scrambling, etc.). Des exemples d’application pour RSA et/ou AES et/ou DES seront aussi développés.

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en cryptographie (Cours 1). Connaissances de base en électronique (Cours 2). Introduction à l’outil ChipWhisperer (TP 2). Connaissances théoriques sur les attaques par canaux auxiliaires (Cours 3).

Objectifs

A l’issue de ce TP, les étudiants doivent connaitre les principales familles de contre-mesures matérielles (leurs défauts et leurs qualités). Ils doivent également avoir vu une application de ces techniques au cas du RSA et/ou de l’AES et/ou du DES.

Sécurisation Logicielle d’Algorithmes Cryptographiques

Type: TP 4.
Durée: 4h.
Matériel: PC + simulateur d’un processeur 8051 + simulateur de fuites.
Intervenant: Luk Bettale (Oberthur).

Résumé

Le but de ce TP est d’appliquer les principales techniques présentées lors du Cours 4 à la sécurisation d’un algorithme cryptographique standard comme l’AES. Les étudiants mettront donc en oeuvre ces contremesures au niveau d’une implantation en Assembleur et la testeront à l’aide d’un simulateur.

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en cryptographie (Cours 1). Connaissances de base en électronique (Cours 2). Introduction à l’outil ChipWhisperer (TP 2). Connaissances théoriques sur les attaques par canaux auxiliaires (Cours 3). Connaissances théoriques sur les contremesures logicielles (Cours 4).

Objectifs

A l’issue de ce TP, les étudiants doivent avoir vu les principes de base d’une implantation d’un algorithme au niveau Assembleur (8051). Ils ont aussi eu un apperçu des principales difficultés et des gros piéges liés à une telle implantation.

Sécurité et Compilation

Type: Cours 6.
Durée: 4h.
Matériel: Néant
Intervenant: Karine Heydemann.

Résumé

Le but de ce cours est de montrer l’importance de prendre en considération les outils de compilation lors du développement de codes sécurisés. En effet, ces derniers peuvent créer, sans en informer l’utilisateur, des portes dérobées ou introduire des vulnérabilités.

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en programmation C et assembleur.

Objectifs

Les étudiants auront à l’issu de ce cours un apercu de la chaîne de compilation et des optimisations de code classiques mises en oeuvre, leurs impacts sur la sécurité d’applications seront illustrés.

Introduction aux Attaques et à la Sécurisation des Interfaces Embarquées

Type: Cours 7 et 8.
Durée: 4h.
Matériel: aucun.
Intervenants: Ryad Benadjila, José Lopes-Esteves et Mathieu Renard (ANSSI)

Résumé

Le but de ce cours, en trois parties, est de présenter les interfaces et protocoles liés au monde de l’embarqué (UART, JTAG, I²C, SPI, USB …). Les trois parties du cours sont les suivantes : - Présenter succinctement les contraintes du monde de l’embarqué, les interfaces utilisées et leur usage - Se focaliser sur l’interface JTAG en particulier, en détailler le fonctionnement et expliquer les attaques sur des SoC (System on Chip) via cette interface - Donner des exemples pratiques d’attaques avec des exemples de l’état de l’art, discuter quelques contre-mesures permettant de sécuriser ces interfaces

Prérequis

Connaissances de base en mathématiques et en informatique. Connaissances de base en cryptographie (Cours 1). Connaissances de base en électronique (Cours 2).

Objectifs

A l’issue du cours, les élèves se seront familiarisés avec les concepts de base du monde de l’embarqué (SoC, Flash, …), ainsi qu’avec les attaques et la sécurisation des interfaces de communication utilisées dans ce contexte.


Ce document a été traduit de LATEX par HEVEA