Sécurité
Ce que fait Cord pour protéger vos données et celles de vos clients, avec le niveau de détail qu’attend une équipe de sécurité.
Cette page décrit des contrôles qui existent aujourd’hui dans le produit. Si votre équipe a besoin de quelque chose qui n’y figure pas, écrivez-nous.
Données en transit et au repos
- Tout le trafic passe par HTTPS. Cord envoie
Strict-Transport-SecurityavecincludeSubDomainsetpreload, une politique de sécurité du contenu etX-Content-Type-Options: nosniff. - Les secrets que Cord conserve en votre nom (identifiants d’intégrations, secrets de signature des webhooks) sont chiffrés en AES-256-GCM avant d’atteindre la base de données. La clé de chiffrement peut être renouvelée sans perdre ce qui a été chiffré avec la précédente.
- Les mots de passe sont stockés avec Argon2id. Les jetons de session et les clés API ne sont stockés que sous forme de hash : quelqu’un qui lirait la base de données n’obtiendrait aucun identifiant utilisable.
Où résident les données et qui timbre
- Base de données : PostgreSQL sur Neon, région AWS
us-east-1(Virginie, États-Unis). - Exécution : les fonctions tournent sur Vercel, région
iad1(Washington D.C., États-Unis). - Facturation au Mexique : le timbrage des CFDI 4.0 est effectué par Facturapi en tant que PAC, avec le CSD de chaque entreprise. Cord annule les CFDI avec leur motif SAT et, pour les ventes à crédit, émet avec la méthode PPD. Pour chaque paiement en MXN d’une facture PPD, Cord timbre automatiquement son complément de réception de paiement (CFDI de type P), de manière idempotente par paiement.
- Facturation en Espagne : avec le certificat de l’entreprise chargé, Cord génère les enregistrements chaînés de Verifactu et les envoie à l’AEAT, séparément de l’émission (en bêta jusqu’au premier envoi accepté). Sans certificat ou avec l’offre Gratuite, la facture est émise comme pro forma.
- Certifications : Cord ne dispose aujourd’hui ni de SOC 2 ni d’ISO 27001. Voir les audits de sécurité.
Identité et accès
- Connexion par mot de passe, Google ou clés d’accès, et SSO SAML pour les équipes. Apple : bientôt disponible.
- Un nouveau mot de passe compte au moins 10 caractères, ne contient pas l’e-mail du compte et n’apparaît dans aucune fuite de données publique. Cette vérification repose sur le k-anonymat : seuls les 5 premiers caractères du hash SHA-1 du mot de passe quittent Cord et la comparaison se fait dans Cord, si bien que le mot de passe ne circule jamais.
- Authentification à deux facteurs (TOTP). L’organisation peut l’exiger pour toute l’équipe et fixer une durée maximale d’inactivité.
- Les actions sensibles (modifier le compte de versement ou les données d’identité pour les encaissements) exigent de se reconnecter.
- Des rôles par membre de l’équipe, et des domaines autorisés pour les invitations.
Isolation entre organisations
Chaque requête sur les données d’une organisation s’exécute dans un contexte qui déclare pour quelle organisation elle travaille, et un vérificateur automatique dans la CI empêche d’ajouter une requête hors de ce contexte. Les liens publics (devis, facture, capture mobile) résolvent l’organisation à l’aide d’un jeton, puis interrogent les données dans ce même contexte : le jeton ne donne jamais accès à lui seul.
API
- Les clés ne s’affichent qu’une seule fois et sont stockées sous forme de hash.
- Trois types : secrètes, restreintes par ressource et publiables. Les clés secrètes et restreintes acceptent une liste d’IP autorisées, peuvent expirer et se renouvellent avec une période de grâce.
- Une clé secrète qui arrive depuis un navigateur est rejetée. Les clés publiables ne peuvent utiliser qu’une liste fixe de routes et, en mode live, uniquement depuis les domaines que vous avez enregistrés.
- Des limites de requêtes par clé et par IP, et
Idempotency-Keypour réessayer sans créer de doublons.
Webhooks
- Chaque notification est signée en HMAC-SHA256 sur le corps et un horodatage (
X-Cord-Signature-V1), afin que votre serveur puisse rejeter les notifications altérées ou rejouées. Les SDK vérifient la signature et son ancienneté pour vous. - Cord n’envoie qu’à des URL
https://d’hôtes publics, jamais à des adresses internes.
Devis intégré (Cord Elements)
- Le devis réside dans un iframe de Cord avec sa propre origine : votre page ne peut ni le lire ni le modifier, et Cord ne peut pas lire votre page.
- Seuls les domaines que vous enregistrez peuvent l’intégrer. Sans domaine enregistré, il s’affiche en lecture seule, sans approbation, signature ni paiement, et sans envoyer de données à la page hôte.
- Les styles personnalisés passent par un validateur à listes fermées : il n’accepte ni URL externe ni règle qui masque ou recouvre le contenu.
Paiements
Les données de carte sont saisies dans le formulaire du prestataire de paiement, sur son propre domaine. Cord ne reçoit ni ne conserve jamais le numéro de carte.
Vérification d’identité pour les encaissements
- Les photos de pièces d’identité sont vérifiées sur l’appareil avant l’envoi, et leurs métadonnées (y compris la position GPS) sont supprimées, seule l’orientation étant conservée.
- Le lien qui permet de prendre la photo depuis un téléphone est lié au premier appareil qui l’utilise, comporte un nombre maximal de tentatives et n’est jamais enregistré dans les outils d’analyse.
Journal d’audit
La création, la modification, le renouvellement et la révocation des clés, les changements de sécurité de l’organisation, les paiements et les autres actions sensibles sont consignés avec l’auteur, la date, l’IP et le navigateur. Les administrateurs le consultent dans Paramètres › Avancé › Journal d’audit.
Conservation
| Donnée | Durée de conservation |
|---|---|
| Historique des envois de webhooks | 30 jours (90 pour les envois échoués) |
| Sessions de capture d’identité depuis un téléphone | Supprimées une heure après leur clôture |
| Preuves de vérification d’identité pour les encaissements | 5 ans à compter de l’envoi |
Vous pouvez exporter les données de votre organisation depuis les Paramètres et supprimer votre compte à tout moment.
Signaler une vulnérabilité
Écrivez à security@flouvia.com. Périmètre, engagements et protection juridique (safe harbor) dans Signaler des vulnérabilités ; le contact figure aussi dans /.well-known/security.txt.