PULPily -- Processeur RISC-V instrumenté pour la Cybersécurité

Encadrants : 

Occurrences : 

2016

Nombre d'étudiants minimum: 

2

Nombre d'étudiants maximum: 

4

Nombre d'instances : 

1

 

Pour déterminer le niveau de résistance d’une application logicielle face à des attaques cyber-physiques, les méthodes les plus efficaces nécessitent la connaissance des valeurs stockées successivement d’un cycle d’horloge à un autre dans les registres du processeur (program counter, pipeline, general purpose register, etc.). Dans le cas d’une analyse par fuzzing, cette information permet de s’assurer qu’une grande partie des fonctions de l’application ont été appelées, et donc testées vis-à-vis de failles. Cette information permet aussi de calculer pour chaque cycle d’horloge le nombre de bascules changeant d’état, qui est un indicateur de la consommation électrique du processeur, très exploitée pour extraire des secrets comme des clés de chiffrement ou d’authentification.

Des techniques pour obtenir le contenu des registres d’un processeur existent déjà, mais elles n’en donnent qu’une vue partielle (pas d’accès au pipeline), et sont très lentes lorsqu’il s’agit de récupérer ce contenu pour chaque cycle d’horloge. L’objectif de ce projet est de proposer une nouvelle solution plus performante. Il s’agira de doter le microcontrôleur 32 bits RISC-V PULPino (www.pulp-platform.org) :

  • d’un bloc d’instrumentation récupérant le contenu de tous les registres du processeur (vous plongerez pour cela au cœur du code en SystemVerilog de PULPino) ;

  • d’un bloc de traitement temps réel des données

    • démarrant / arrêtant l’acquisition sur des évènements particulier (valeur du program counter, nombre de cycles écoulés, etc.),

    • appliquant une fonction particulière (identité, différence, poids ou distance de Hamming, etc.) à tout ou partie des données ;

  • d’une interface de communication pour les échanges (configuration, renvoie des données) avec le système hôte.

La démonstration du mercredi après-midi pourrait consister en l’extraction par analyse de la consommation d’une clé de chiffrement saisie par le public (le code d’un algorithme de cryptographie sur courbes elliptiques, comme celui du protocole Bitcoin, sera fourni).

A l’issue de ce projet, vous aurez travaillé sur un microcontrôleur moderne (PULPino est sortie en février 2016), et sur le sujet grandement d’actualité de la Sécurité, ce qui constitue un fort différenciateur pour votre CV et vos entretiens à venir.