Potet Marie-Laure Périn Michaël Analyse et preuve de causalité dans des systèmes distribués communicants Potet Marie-Laure Périn Michaël
LISE Liability Issues in Software Engineering Analyse de logs Définition des responsabilités à la formation des contrats Engagement sur des spécifications Responsabilités en cas de dysfonctionnement Éléments de preuves, les logs Analyse de logs Détection des incohérences et de leurs provenance
Application aux protocoles de sécurité Participants à la communication Le participant honnête L’intrus Vérification logique des protocoles Le modèle Dolev-Yao
Cadre retenu Systèmes distribués, communication par envoi de messages Logs de composants !m : « envoi du message m » ?m : « réception du message m » C: !a ?b !c !d ?e Reconstitution de la causalité des évènements e → e’: « L’évènement e a eu lieu avant e’ »
Construction d’un ordre partiel Système de déduction Envoi-réception d’un message |-- !m → ?m Il est impossible de recevoir un message non envoyé ?m → !m |-- Incohérence Causalité issue de l’ordre d’enregistrement des logs C : …e….e’… |-- e→e’ Relation de transitivité e1 → e2, e2 → e3 |-- e1→e3
Exemple C1: ?a !b !c ... C2 : ?c ?b !a ...
Reconstruction de l’ordre partiel Implémentation en Ocaml Représentation des messages et des logs Travail en 2 étapes: Reconstitution du graphe de causalité Déduction des relations de transitivité
Justification des déductions Trace des règles utilisées Structure récursive Détection d’incohérences Cycles de causalités Sources d’incohérences
Conclusion Travail réalisé Suite du travail: Recherche bibliographique Outils de détection d’incohérence réalisé Suite du travail: Analyser les incohérences et déterminer les responsabilités => élargir le modèle: traçabilité des données