Analyse de Sécurité des Systèmes

Ce cours traite de l’analyse boîte noire des systèmes logiciels, et inclut une introduction à la sécurité logicielle.

Ce cours est divisé en deux parties.

Dans la première, on s’intéresse à l’apprentissage actif des systèmes, dans un paradigme “boîte noire”. Voir le système comme une boîte noire signifie que son fonctionnement interne nous est inaccessible : l’analyse ne peut reposer que sur son comportement observable. Dans ce contexte, on peut chercher à construire un modèle de type “machine à états finis” du système, pour en vérifier des propriétés de sécurité. Ce modèle est construit en utilisant des techniques venant de la théorie des langages formels, et d’autres venant de la pratique des tests de conformité.

Dans la seconde partie on étudie les rudiments de la sécurité logicielle, et en particulier de la cryptologie. Après un bref historique de la discipline, sont présentées quelques notions de cryptographie, ainsi que des exemples de protocoles cryptographiques. On considère également la notion d’attaque, et quelques précautions pour s’en prémunir.

Supports de cours

Introduction générale et plan du cours.
Automates déterministes et théorème de Myhill-Nerode.
Apprentissage d’automates : l’algorithme L*.
Apprentissage de machines de Mealy.
Tests de conformité et études de cas.
Algorithmes cryptographiques.
Cryptographie et aléa, protocoles cryptographiques et attaques.

Pour en savoir plus sur l’apprentissage de modèles, la lecture de l’article suivant est plus que recommandée :

Model Learning par Frits Vaandrager (Communications of the ACM, Vol. 60 No. 2, 1/2/2017)