Aller au contenu

Sécurité

Les données financières méritent une retenue de niveau financier.

Cette page décrit ce que nous faisons aujourd'hui, en termes précis. Elle évite volontairement le langage marketing. Quand quelque chose n'est pas encore en place, elle le dit.

Chemin de contrôle

En cours

  1. Requête · action sensible

    en attente

    Un membre supprime un fichier brut

    La requête arrive avec le cookie de session (HTTP-only, limité à l’origine) et le contexte d’espace de travail du membre.

  2. Cloisonnement de l’espace de travail

    en attente

    La sécurité au niveau des lignes filtre la requête

    La base de données elle-même restreint la requête à l’espace de travail du membre. Le code applicatif ne peut pas contourner la politique par inadvertance.

  3. Stockage privé

    en attente

    L’objet vit dans un bucket privé

    Sous le préfixe de l’espace de travail, lu uniquement via des URL signées de courte durée. La suppression retire l’objet ; il n’est pas simplement masqué.

  4. AAL2 · élévation

    en attente

    Un second facteur récent est exigé

    Les actions sensibles exigent une vérification TOTP récente (AAL2), pas seulement une session valide.

  5. Événement d’audit

    en attente

    Auteur · action · objet · horodatage

    La suppression est enregistrée avec son auteur et son horodatage, comme les confirmations de règles, les décisions et les changements de membres.

Chaque contrôle existe dans le code aujourd’hui et est exercé par les tests automatisés.

Architecture

Le chemin que suit un document, et le contrôle qui s'applique à chaque étape. Chaque propriété ci-dessous est en place aujourd'hui.

  1. Navigateur

    Cookie de session, HTTP-only, limité à l'origine.

    En place
  2. Cloisonnement de l'espace de travail

    Sécurité au niveau des lignes : chaque requête est filtrée sur votre espace de travail dans la base de données, pas seulement dans l'application.

    En place
  3. Stockage privé

    Fichiers dans un bucket privé sous le préfixe de votre espace de travail. Accès signé, de courte durée. Supprimables à la demande ; supprimés automatiquement selon le calendrier prévu.

    En place
  4. Extraction

    Un modèle propose des conditions de facturation à partir du texte du contrat. Les propositions sont étiquetées et stockées à part des règles.

    En place
  5. Règles confirmées par une personne

    Seule une personne transforme une proposition en règle. Versionnée, datée, attribuée.

    En place
  6. Calcul déterministe

    Arithmétique entière, arrondi unique, chaque étape enregistrée. Rejouable à partir des données stockées.

    En place

Chaque contrôle ci-dessous existe dans le code et est couvert par les suites de tests automatisées. La vérification sur l'environnement de production hébergé fait partie du jalon de lancement et n'est pas revendiquée ici.

Isolation des espaces de travail

Chaque enregistrement métier — contrats, règles, fichiers importés, constats, décisions — porte un identifiant d'espace de travail. L'accès est appliqué par une sécurité au niveau des lignes (row-level security) dans la base de données : une requête ne renvoie que les lignes appartenant à un espace de travail dont l'utilisateur connecté est membre. Le code applicatif ne peut pas contourner cette règle par inadvertance, car la base de données applique la politique quelle que soit la requête.

Les identifiants de service à privilèges élevés ne sont utilisés que côté serveur, pour les webhooks de paiement et les tâches planifiées, jamais depuis le navigateur.

Stockage et conservation

  • Les fichiers importés sont écrits par le serveur dans un espace de stockage privé. Aucun objet n'est public.
  • Les fichiers sont lus via des URL signées à courte durée de vie, générées uniquement pour le membre qui en fait la demande.
  • Vous pouvez supprimer immédiatement n'importe quel fichier brut. La suppression retire l'objet du stockage ; il n'est pas simplement masqué.
  • Les fichiers bruts que vous n'avez pas supprimés sont retirés automatiquement après 30 jours.
  • Les règles de facturation confirmées, les constats, leurs données et étapes de calcul, ainsi que vos décisions de confirmation ou de rejet sont conservés tant que le preflight existe, afin que chaque résultat puisse être rejoué et audité.

Périmètre de l'IA

Un modèle de langage est utilisé pour deux tâches précises : extraire des conditions de facturation candidates d'un contrat, et proposer quelle ligne de facture pourrait correspondre à quel concept. Sa sortie est validée, étiquetée comme proposée par l'IA et stockée séparément des règles confirmées.

  • Rien de ce que le modèle propose n'affecte un constat financier tant qu'une personne ne l'a pas confirmé.
  • Le modèle ne calcule jamais de montants. Tous les montants sont produits par un moteur déterministe à partir des règles confirmées et des preuves importées, en unités monétaires entières, chaque étape étant enregistrée.
  • Le texte du contrat est envoyé au fournisseur d'IA uniquement depuis nos serveurs, via des connexions chiffrées, pour la durée de la requête.

Analyse d'usage et supervision

Nous enregistrons des événements produit (un preflight a été créé, une règle a été confirmée) et les erreurs applicatives afin de maintenir le service en état de marche. Ces événements contiennent des identifiants et des horodatages, pas de contenu. Les extraits de contrat, les lignes de facture, les montants et le contenu des fichiers sont exclus des données d'analyse et des rapports d'erreur.

Accès et sessions

  • L'authentification est assurée par notre fournisseur d'identité ; nous ne stockons jamais les mots de passe en clair.
  • Les sessions reposent sur des cookies HTTP-only, limités à l'origine truviate.com.
  • L'appartenance à un espace de travail détermine ce qu'un utilisateur peut voir et faire. Retirer un membre révoque immédiatement son accès.
  • Tout le trafic est chiffré en transit (TLS).

Authentification multifacteur et élévation de niveau

  • L’authentification multifacteur par mot de passe à usage unique (TOTP) est activée avant le premier dépôt de document.
  • Les actions sensibles — gestion des membres, paramètres de sécurité, suppression de l’espace de travail — exigent une vérification récente du second facteur (élévation AAL2), pas seulement une session valide.
  • Les sessions actives sont listées dans les paramètres de sécurité et peuvent être révoquées individuellement.

Piste d’audit

  • Confirmations de règles, décisions sur les constats, changements de membres et suppressions sont enregistrés avec l’auteur et l’horodatage.
  • Les constats conservent leurs entrées et étapes de calcul, de sorte que tout résultat peut être rejoué à partir des données stockées.

Conservation et purge

  • Les fichiers bruts déposés peuvent être supprimés immédiatement par un membre et sont purgés automatiquement après la période de conservation.
  • Supprimer un espace de travail supprime ses enregistrements ; le dernier propriétaire ne peut pas être retiré par accident.

En place aujourd’hui, et ce qui est encore en cours de finalisation

Implémenté dans l’application et exercé par les tests automatisés
  • Isolation des espaces de travail
  • Stockage et conservation
  • Périmètre de l'IA
  • Authentification multifacteur et élévation de niveau
  • Piste d’audit
  • Conservation et purge
En cours de finalisation pour la production
  • Vérification de la configuration de production hébergée (hooks d’authentification, limites de débit, protection anti-bot) dans le cadre de la gate de lancement.
  • Envoi des e-mails transactionnels depuis un domaine d’expédition vérifié.
  • Une revue de sécurité indépendante par un tiers.

Ce que nous ne revendiquons pas encore

Truviate n'a pas encore obtenu de certification de sécurité tierce ni fait l'objet d'un audit indépendant. Nous préférons le dire clairement plutôt que d'emprunter un badge. Les contrôles ci-dessus sont ceux réellement en place ; si vous avez besoin d'un élément précis pour votre propre revue, demandez-le et nous répondrons directement.

Signalement responsable

Si vous pensez avoir découvert une faille de sécurité, écrivez à support@truviate.com avec suffisamment de détails pour la reproduire. Nous accusons réception rapidement, vous tenons informé pendant l'analyse et n'engageons pas de poursuites contre les chercheurs agissant de bonne foi.