Aller au contenu principal

Intégrité Cryptographique (SHA-256)

Pour garantir l'admissibilité juridique des preuves lors des audits de conformité réglementaire (EU AI Act, RGPD Art. 25, SOC 2 Type II), Boundry applique un chaînage cryptographique immuable sur tous les logs.


Fonctionnement du chaînage de hash

Chaque événement N incorpore le hash cryptographique de l'événement précédent N-1 selon la formule :

Hash(N) = SHA-256( Timestamp + AgentID + ToolName + ToolInput + Status + Hash(N-1) )
+---------------------+ +---------------------+ +---------------------+
| Événement N-1 | | Événement N | | Événement N+1 |
| Hash: 4a9f...12 | ----> | Hash: 8b3c...90 | ----> | Hash: 1e7d...44 |
+---------------------+ +---------------------+ +---------------------+

Si une ligne de log est modifiée, supprimée ou insérée a posteriori dans la base de données, la chaîne de hachage est mathématiquement rompue dès l'événement altéré.


Script Python d'auto-audit pour auditeurs

Les RSSI et auditeurs externes peuvent vérifier eux-mêmes l'intégrité d'un export JSON généré par la console :

verify_audit_trail.py
import hashlib
import json

def verify_audit_trail(export_file_path: str) -> bool:
with open(export_file_path, "r", encoding="utf-8") as f:
data = json.load(f)
logs = data.get("logs", [])

prev_hash = "GENESIS_HASH"
for idx, entry in enumerate(logs):
raw_string = f"{entry['timestamp']}:{entry['agent_id']}:{entry['tool_name']}:{prev_hash}"
calculated_hash = hashlib.sha256(raw_string.encode("utf-8")).hexdigest()

if calculated_hash != entry.get("hash"):
print(f"❌ ALERTE : Altération détectée à l'événement index {idx} (ID: {entry.get('id')})")
return False

prev_hash = calculated_hash

print(f"✅ SUCCÈS : {len(logs)} événements vérifiés cryptographiquement. Chaîne 100% intègre.")
return True

if __name__ == "__main__":
verify_audit_trail("boundry_compliance_export.json")