Partager

Auditer sans rien laisser fuiter

Crédit : TheDigitalArtist@pixabay
Dans les systèmes critiques manipulant des données sensibles, tracer finement les accès à ces données est essentiel. Le CEA-List a développé un nouveau cadre formel garantissant la détection de toutes les lectures, même interrompues, tout en préservant la confidentialité des traces d’audit contre les lecteurs curieux.

Un système distribué est un système informatique dans lequel plusieurs ordinateurs distants coopèrent pour effectuer des tâches. Lorsque ces systèmes manipulent des données sensibles (santé, finance, justice, …), maintenir une trace fiable des accès est une exigence de sécurité majeure. Le défi est double : détecter exhaustivement tous les accès pour qu’aucun utilisateur ne puisse échapper à l’audit, tout en empêchant que ces traces soient espionnées par des utilisateurs curieux.

Les premières définitions formelles (c’est-à-dire avec une rigueur mathématique) d’auditabilité pour les systèmes distribués, introduites récemment, reposent sur une hypothèse forte : une lecture n’est auditée que si elle se termine complètement. Un utilisateur malveillant pourrait exploiter cette lacune en lisant une donnée puis en simulant une panne pour éviter d’être détecté. Par ailleurs, si les traces d’accès sont accessibles à tous, un lecteur curieux peut déduire qui a consulté quelles données, créant ainsi une fuite d’information problématique.

Pour résoudre ce double problème, les chercheurs du CEA-List ont reformulé la notion d’auditabilité en introduisant deux nouvelles définitions formelles qui constituent le socle conceptuel de ce travail. La première caractérise ce qu’est une lecture effective : cette nouvelle définition capture le moment où un lecteur connaît la valeur qu’il consulte, même si la lecture est interrompue brusquement. La seconde formalise la notion d’opération non-compromise, qui garantit qu’on ne peut pas distinguer si une opération sur des données a eu lieu ou non.
Sur le plan algorithmique, l’idée centrale est de fusionner l’accès à une donnée et son enregistrement dans le journal d’audit en une seule opération indivisible. Cette fusion assure qu’une lecture laisse une trace même si elle a été interrompue. Pour empêcher les lecteurs d’espionner les accès des autres, le journal d’audit est protégé par un chiffrement simple mais incassable : chaque lecteur est associé à un bit (0 ou 1) initialisé aléatoirement. Lorsque les lecteurs effectuent une lecture, ils inversent leur bit (0 devient 1, ou inversement). Grâce à cette initialisation aléatoire secrète, les valeurs observées ressemblent à une suite aléatoire de 0 et de 1 : impossible donc de déterminer quels lecteurs ont accédé aux données. Seuls les auditeurs possédant la clé secrète initiale peuvent, en comparant l’état final du journal avec cette clé, identifier précisément qui a effectivement lu quoi.

Figure 1 : Scenarios d’accès aux données.

L’algorithme a été formellement prouvé, garantissant que le système fonctionne de manière fiable dans toutes les situations : les données restent cohérentes malgré les accès multiples (quand on consulte une donnée, on voit bien la dernière valeur qui lui a été attribuée), aucun utilisateur malveillant ne peut bloquer le système, toutes les lectures sont effectivement tracées, et la confidentialité des traces est préservée même face à des lecteurs curieux observant l’audit.


Figure 2 : Audit sécurisé.

Notre solution permet de tracer chaque accès aux données d’un système distribué tout en protégeant la confidentialité de ces accès.

Rebecca Cabean

Alexandre Rapetti

Ingénieur-chercheur — CEA-List

En savoir plus

Publication majeure

  • « Auditing without Leaks Despite Curiosity ». ATTIYA Hagit, FERNANDEZ ANTA Antonio, MILANI Alessia, RAPETTI, Alexandre, & TRAVERS, Corentin. In : Proceedings of the ACM Symposium on Principles of Distributed Computing. 2025. https://doi.org/10.48550/arXiv.2505.00665
    Ces travaux ont fait l’objet d’une publication à PODC, conférence internationale de référence (rang A*) en algorithmique distribuée.