Stage : Génération d'implémentations de protocoles avec cryptographie agile H/F
Sécurité contre la malveillance
Stage
Génération d'implémentations de protocoles avec cryptographie agile H/F
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...).
6 mois
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.
C, Python, Linux, Docker
Niveau : Master 2 (ou équivalent) en sécurité informatiqueDurée : 6 moisPrérequis : Cryptographie, langages de programmation (C, Python), connaissances en sécurité des protocoles de communications
25-03-2024
Sélectionnez le secteur qui vous intéresse ci-dessous et n'oubliez pas votre adresse email!