Informations générales
Entité de rattachement
Le Commissariat à l'énergie atomique et aux énergies alternatives (CEA) est un organisme public de recherche.
Acteur majeur de la recherche, du développement et de l'innovation, le CEA intervient dans le cadre de ses quatre missions :
. la défense et la sécurité
. l'énergie nucléaire (fission et fusion)
. la recherche technologique pour l'industrie
. la recherche fondamentale (sciences de la matière et sciences de la vie).
Avec ses 16000 salariés -techniciens, ingénieurs, chercheurs, et personnel en soutien à la recherche- le CEA participe à de nombreux projets de collaboration aux côtés de ses partenaires académiques et industriels.
Référence
2020-14876
Description du poste
Domaine
Sécurité contre la malveillance
Contrat
Stage
Intitulé de l'offre
Génération d'implémentations de protocoles avec cryptographie agile H/F
Sujet de stage
Le Leti, institut de recherche technologique de Cea Tech, a pour mission de créer de la valeur et de l'innovation avec ses partenaires industriels. Il fait le lien entre la recherche fondamentale et la production de micro et nanotechnologies. Localisé à Grenoble (38), le Leti compte plus de 1 800 chercheurs et a des bureaux aux US et au Japon.
Le LSOSP, Laboratoire sécurité des objets et des systèmes physiques, mène des activités de R&D dans le domaine des technologies de sécurité et de protection de la vie privée. Il analyse et caractérise les risques auxquels sont soumis les systèmes électroniques et les composants; il conçoit des contre-mesures s'appuyant notamment sur des techniques cryptographiques mais aussi sur des modifications dans l'architecture des systèmes pour intégrer les technologies nécessaires (composants, codes embarqués, interfaces ou protocoles de communications...).
Durée du contrat (en mois)
6 mois
Description de l'offre
Ce stage se base sur un outil interne permettant la génération automatique de code C correspondant à des piles protocolaires à partir des spécifications. Ces spécifications seront écrites dans le langage F*, un langage pouvant faire l’objet de vérifications formelles de sécurité, afin de garantir la sécurité du protocole implémenté. En fonction du résultat de la vérification formelle du protocole, il est alors possible de générer le code C correspondant aux participants du protocole ou bien celui d'un attaquant implémentant une possible attaque trouvée pour l'outil de vérification. Générer automatiquement le code permet à la fois de gagner du temps de développement, de standardiser le forme du code pour différents protocoles et de réduire les erreurs humaines.
Cependant, la gestion des primitives cryptographiques dans la génération du code représente un challenge scientifique et technique. En effet, plusieurs contraintes de taille et/ou, de format peuvent exister (par exemple une clé RSA ne peut chiffrer des volumes importants de données) et ces contraintes doivent apparaître dans la modélisation afin de ne pas laisser l'utilisateur commettre des erreurs dans les choix de primitives. Certaines primitives peuvent également avoir des propriétés équivalentes et être interchangeables. Enfin, certains cas d'applications peuvent requérir des primitives très particulières (ex: crypto homomorphe) devant être modélisées au moyen de théories équationnelles.
Le candidat devra être en mesure de:
1) Prendre en main l'outil de génération de code existant, d'y ajouter des implémentations de primitives cryptographiques (basées sur des bibliothèques comme mbedTLS) et permettre une interchangeabilité des primitives si leurs propriétés le permettent ;
2) Ajouter des fonctionnalités à l'outil afin de définir des contraintes sur l'utilisation de primitives cryptographiques afin de détecter des incohérences lors de la génération de code ;
3) Permettre la modélisation de théories équationelles pour décrire des primitives aux propriétés particulières.
Moyens / Méthodes / Logiciels
C, Python, Linux, Docker
Profil du candidat
Niveau : Master 2 (ou équivalent) en sécurité informatique
Durée : 6 mois
Prérequis : Cryptographie, langages de programmation (C, Python), connaissances en sécurité des protocoles de communications
Localisation du poste
Site
Grenoble
Localisation du poste
France
Ville
Grenoble