Conformité

La page d'accueil indique “piste d'audit &mdash ; intégrée.” Cette page est ce que cette phrase doit survivre : le mécanisme réel, le code réel, et un outil qu'un auditeur peut exécuter sans nous demander de faire confiance à un tableau de bord.

L'enregistrement d'audit : chaînage de hachages, activé par défaut

Chaque événement d'audit qu'Odysseus écrit est chaîné à celui qui le précède. Chaque ligne stocke entry_hash = SHA-256(prev_hash || canonical_json(event)), de sorte que la modification ou la suppression d'une ligne casse le hachage de tout ce qui a été écrit après &mdash ; pas seulement de cette ligne.

Ce n'est pas une fonctionnalité optionnelle que vous devez vous souvenir d'activer. Le propre commentaire de documentation de HashChainConfig le déclare clairement : “La chaîne est ACTIVÉE PAR DÉFAUT &mdash ; la valeur zéro (Disabled: false) &hellip ; omet le bloc HashChain obtient un audit inviolable sans étape de configuration supplémentaire” (pkg/audit/hash_chain.go:19-23). Le plan de contrôle l'annonce au démarrage : “Audit hash chain enabled (default-on; set HashChain.Disabled=true to opt out)” (pkg/audit/postgres_logger.go:247). Le désactiver est une action délibérée et journalisée, et non un comportement par défaut que vous devez découvrir.

Ancrage et un témoin externe — tous deux facultatifs, tous deux enfichables

En plus de la chaîne, Odysseus peut périodiquement ancrer un hachage à deux endroits pour lesquels vous n'avez pas à nous faire confiance :

Un outil, pas une capture d'écran

odysseus-audit-verify est un binaire autonome &mdash ; son propre paquet main à cmd/odysseus-audit-verify/main.go, construit et livré séparément du plan de contrôle. Fournissez-lui les identifiants pour la base de données d'audit et il parcourt chaque ligne dans l'ordre sequence_num, recalcul chaque hachage et vérifie chaque ancre. Il ne passe pas par l'API Odysseus, le tableau de bord ou quoi que ce soit que la plateforme elle-même rend. Il se connecte directement à Postgres, ce n'est donc pas un outil à réseau zéro, mais il est indépendant du plan de contrôle en cours d'exécution : un auditeur peut le pointer vers une réplica de base de données et obtenir une réponse que personne chez Delta Telematics ne peut influencer.

Il signale un code de sortie distinct pour chaque classe de problème, documenté dans le commentaire d'en-tête du binaire lui-même :

Code de sortieSignification
0Chaîne intacte, toutes les ancres correspondent
1Défaut d'intégrité de la chaîne — lien rompu, hachage incohérent, entrée manquante
2Échec de vérification de l'ancre — hachage de l'ancre incohérent ou signature invalide
3Erreur opérationnelle — base de données inaccessible, ligne malformée, etc.

Source : cmd/odysseus-audit-verify/main.go, lignes 12–18 (comportement documenté) et 56–59 (les constantes de code de sortie elles-mêmes).

Isolement des locataires que la base de données applique, pas seulement l'application

Trois limites distinctes, chacune vérifiable indépendamment dans le code :

Où nous en sommes réellement

Nous ne détenons pas de certification, et nous n'en suggérons pas une. Ce que nous avons est un mapping documenté et auto-évalué de nos contrôles par rapport à cinq frameworks, contenu dans le document d'audit de l'équipe sécurité plutôt que dans le contenu marketing :

CadrePrêt en interneNotes
SOC 2 Type II85%Contrôle d'accès, journalisation d'audit
ISO 2700180%Contrôles de sécurité de l'information
RGPD75%Contrôles de protection des données
PCI DSS70%Ne gère pas les données de paiement
HIPAA60%Pas notre cas d'usage principal

Source : docs/security/02-owasp-security-audit.md, tableau “Compliance Mapping”, lignes 490–498.

Aucune certification n'existe

Ce sont des pourcentages de préparation auto-évalués, et non des résultats d'audit d'un tiers accrédité. Nous le disons également sur la page tarification : la formulation y est “contrôles alignés sur SOC 2 et ITSG-33 et preuves d'audit,” et non la conformité elle-même &mdash ; un changement de formulation spécifiquement parce qu'aucune certification n'existe. Si cela change, cette page nommera l'organisme certificateur et la date ; en attendant, considérez chaque pourcentage ci-dessus comme notre propre travail de préparation, et non une attestation externe.

Pour l'audit qui a produit la posture de sécurité sur laquelle reposent ces contrôles, voir la page audit de sécurité. Pour l'architecture de sécurité quotidienne &mdash ; authentification, secrets, durcissement de l'infrastructure &mdash ; voir Sécurité.

Comment ces chiffres et revendications ont été obtenus

  1. Chaque affirmation sur cette page a été vérifiée directement par rapport à la source au fichier et à la ligne citée à côté, le 21 août 2026, plutôt que tirée d'une description antérieure de la fonctionnalité. Lorsqu'un mécanisme est facultatif (la signature Vault Transit, le témoin externe), nous le disons explicitement plutôt que de laisser la phrase environnante sous-entendre qu'il s'exécute toujours.
  2. L'indépendance du vérificateur hors ligne vis-à-vis du plan de contrôle est une propriété réelle &mdash ; c'est un binaire séparé qui communique directement avec Postgres &mdash ; mais ce n'est pas un outil sans dépendance : il a toujours besoin d'identifiants et d'un accès réseau à la base de données d'audit (ou d'une réplique de celle-ci). Nous le décrivons ainsi plutôt que comme complètement hors ligne.
  3. Les pourcentages de conformité sont notre propre auto-évaluation interne, datée du document qui les porte, et non une affirmation de certification par un organisme externe. Si ce document est révisé, ce tableau devient obsolète jusqu'à ce qu'il soit revérifié par rapport à la nouvelle version.