Au sein de la division « scientifique et technique », le laboratoire « architectures matérielles et logicielles » (LAM) couvre le domaine des architectures matérielles (ordinateurs personnels, serveurs, terminaux mobiles et systèmes embarqués, périphériques) et logicielles (sécurité des systèmes d’exploitation, des solutions de virtualisation et de la séquence de démarrage), ainsi que les interactions entre les deux.
1. Description du stage
L’interface USB est omniprésente sur de nombreuses plateformes (PC, smartphone, équipement embarqué). Cependant, celle-ci est source de nombreuses vulnérabilités et est difficile à sécuriser.
La fondation USB a proposé en 2019 un protocole permettant l’authentification de périphériques USB. Ce protocole a par la suite été enrichi par le DMTF (Distributed Management Task Force) dans un protocole dénommé SPDM ([https://www.dmtf.org/standards/spdm](file:///C:/Users/aprotas/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml)). Une première implémentation dans le noyau Linux du protocole d’authentification USB a été réalisée au sein du LAM ([https://github.com/ANSSI-FR/usb\_authentication](file:///C:/Users/aprotas/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml)) et proposée à la communauté Linux.
De façon à pouvoir assurer un contrôle des ports USB durant l’ensemble de la chaîne de démarrage, ainsi que lors du cycle de fonctionnement du système démarré, la fonction d’authentification doit être implémentée de manière unifiée dans toutes ces phases d’exécutions.
Aujourd’hui le LAM souhaite poursuivre ces développements en réalisant une étude de l’impact d’une implémentation des capacités d’authentifications des périphériques USB dans un firmware edk2/UEFI communiquant avec la pile USB d’un noyau, Linux par exemple. Le stagiaire réalisera une étude des protocoles SPDM, UEFI et USB de manière à définir la meilleure approche d’implémentation.
2. Objectifs du stage
Le but de ce stage est de :
· Etudier le protocole SPDM, identifier les évolutions par rapport au protocole d’authentification USB et notamment de son modèle de sécurité ;
· Etudier la mise en place de la fonction d’authentification durant les différentes étapes de la chaîne de démarrage ;
· Étudier les interfaces entre UEFI et un noyau Linux ;
· Réaliser une implémentation de service UEFI ;
· Réaliser une implémentation du protocole SPDM dans edk2 ;
· Le stage pourra déboucher sur la publication d’une proposition d’enrichissement des standards étudiés.
Vous suivez une formation dans le domaine des technologies de l’information et de la communication avec une spécialisation en sécurité informatiques.
Connaissances nécessaires :
· Développement en C
· Bonnes pratiques de développement pour de la sécurité
· Architecture logicielle
Connaissances supplémentaires souhaitable :
· Notions de cryptographie
· Connaissance des outils de suivi de version de code (git) et des pratiques de revues de code
· Notions sur le fonctionnement de la chaine de démarrage UEFI.
Notions sur le fonctionnement du noyau Linux.
· Si votre candidature est présélectionnée, vous serez contacté(e) pour apprécier vos attentes et vos motivations au cours d’un entretien téléphonique ou physique.
· Un test technique vous sera proposé.
· Vous ferez l’objet d’une procédure d’habilitation.
Rencontrez Nicolas, Chef de projet de cyberdéfense
Rencontrez Alexandre, Chef de bureau adjoint Ingénierie du cadre normatif
Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.