Aller au contenu

Sécurité des systèmes bancaires et financiers

Un système bancaire ne protège pas seulement des données : il autorise, refuse, règle et trace des mouvements d’argent sous contrainte de temps. La sécurité y devient une discipline d’architecture où la confidentialité compte, mais où la disponibilité, l’intégrité comptable et la détection de fraude dictent des choix souvent plus coûteux que le contrôle lui-même.

→ Lire l’explication complète de la marmotte

PCI DSS et DORA : des obligations qui changent l’architecture

Section intitulée « PCI DSS et DORA : des obligations qui changent l’architecture »

PCI DSS (Payment Card Industry Data Security Standard) encadre les environnements qui stockent, traitent ou transmettent des données de carte de paiement. La question déterminante n’est pas de savoir si une application affiche un numéro de carte, mais si elle peut influencer le flux de paiement. Une interface d’administration capable de modifier une URL de redirection, un service qui journalise une requête contenant un numéro primaire de carte, ou un proxy qui termine le chiffrement entrent dans le périmètre. Réduire ce périmètre est la première mesure de sécurité rentable.

La tokenisation doit donc être préférée au stockage applicatif de données de carte. Le système métier manipule un jeton sans valeur hors du prestataire de paiement, tandis que le numéro de carte reste confiné dans un coffre spécialisé. Ce choix ne supprime pas PCI DSS : il diminue le nombre de composants soumis aux contrôles les plus lourds. La différence est considérable lors d’un audit et, surtout, lors d’un incident. Un jeton volé peut encore servir à déclencher une opération selon son contexte, mais il ne permet pas de reconstruire un numéro de carte. Ce n’est pas magique, juste moins catastrophique.

DORA (Digital Operational Resilience Act) impose aux entités financières européennes une résilience opérationnelle numérique documentée, testée et pilotée. La sécurité générique dit souvent « prévoir un plan de reprise ». DORA demande davantage : inventorier les services critiques, définir les dépendances, tester les scénarios de défaillance, suivre les incidents majeurs et maîtriser les prestataires de services numériques. Une réplication de base de données sans test de restauration n’est pas une capacité de reprise. C’est un espoir sous forme de réplication.

La gouvernance doit relier le service critique à ses dépendances techniques : fournisseur d’identité, résolution de noms, synchronisation horaire, module cryptographique, service de messagerie, réseau intersite et prestataire de paiement. La chaîne s’arrête au premier maillon non observé. Les principes de gouvernance de sécurité et d’architecture cyber s’appliquent, mais le secteur financier impose de prouver que les contrôles fonctionnent en dégradation, pas seulement qu’ils existent dans un diagramme.

Le chiffrement des données de carte au repos et en transit reste obligatoire, mais son implémentation doit respecter la séparation des clés. Une DEK (Data Encryption Key) chiffre les données, une KEK (Key Encryption Key) chiffre ou protège la DEK. La KEK doit rester dans un HSM (Hardware Security Module), équipement qui exécute des opérations cryptographiques sans exposer la clé maîtresse au processus applicatif. Un HSM ne rend pas un paiement légitime. Il réduit seulement la liste des désastres possibles après compromission d’un serveur, ce qui est déjà une occupation à temps plein.

Le compromis central est net : augmenter la disponibilité réduit le temps d’interruption, mais augmente les chemins de défaillance et le risque de double traitement. Une architecture actif-actif sans stratégie d’idempotence produit parfois deux débits pour la même intention de paiement. Répondre vite n’autorise pas à compter deux fois l’argent. La recommandation est donc de privilégier l’actif-actif uniquement pour les composants réellement sans état ou capables de partager un état transactionnel cohérent ; pour les composants d’autorisation ou de règlement, une bascule contrôlée vaut souvent mieux qu’une concurrence optimiste.

Chaque demande de paiement doit porter une clé d’idempotence durable, unique pour une intention métier. Cette clé est enregistrée avant l’appel vers le réseau de paiement, avec l’état de l’opération, le montant, la devise et l’identifiant du bénéficiaire. Après un délai réseau, le système ne doit jamais supposer un échec parce qu’aucune réponse n’est arrivée. L’opération peut avoir été acceptée par le partenaire puis perdue en retour. Il faut interroger le statut ou attendre une confirmation asynchrone avant toute nouvelle tentative.

Le RTO (Recovery Time Objective), durée maximale acceptable d’interruption, et le RPO (Recovery Point Objective), perte maximale de données admissible, doivent être définis par flux, non par plateforme. Un portail de consultation peut accepter une restauration plus lente qu’un moteur d’autorisation. Une base de données répliquée avec un RPO non nul impose un mécanisme de rapprochement comptable après bascule. Sans journal immuable des événements, ce rapprochement devient une fouille archéologique dans des logs incomplets, activité peu recommandée même aux amateurs de ruines.

La bascule automatique doit être déclenchée sur des signaux métier, pas seulement sur la santé d’un processus. Un endpoint HTTP qui répond 200 alors que l’autorisation est bloquée sur une dépendance externe ne prouve rien. Mesurer la latence de bout en bout, le taux d’approbation, la profondeur des files, le délai de confirmation et les erreurs de rapprochement permet de distinguer une panne technique d’une dégradation de paiement.

Les certificats Transport Layer Security (TLS) constituent une dépendance de disponibilité. La révocation d’un certificat ne ferme pas les sessions déjà établies, et son expiration bloque souvent les nouvelles connexions au pire moment. Les renouvellements doivent être surveillés, répétés en environnement de préproduction et compatibles avec les équilibreurs de charge. Les mécanismes décrits dans la page sur la PKI et TLS restent applicables, avec une contrainte supplémentaire : une rotation de certificat ne doit jamais créer une bascule simultanée de tous les nœuds.

La fraude ne se résume pas à une compromission informatique. Une transaction peut être parfaitement authentifiée, chiffrée et conforme aux contrôles d’accès, tout en étant frauduleuse. Le fraudeur peut utiliser des identifiants valides, un appareil déjà connu ou une carte dont les données ont été obtenues ailleurs. La sécurité classique protège des accès non autorisés ; la lutte antifraude estime si une action autorisée paraît anormale.

Un moteur de scoring attribue un risque à chaque opération à partir de signaux : montant, fréquence, pays, horaire, appareil, adresse réseau, historique du compte, cohérence entre bénéficiaire et habitudes, échecs précédents et signaux externes. Ces données doivent être versionnées avec la décision. Sans version du modèle, des règles et des données d’entrée, expliquer un refus devient impossible, et corriger une dérive revient à tirer sur une cible dans le brouillard.

Le compromis est financier et mesurable. Un seuil trop permissif augmente la fraude non bloquée, dite faux négatif. Un seuil trop strict augmente les transactions légitimes refusées, dites faux positifs, avec perte de revenus, abandon client et charge opérationnelle. Il faut optimiser le coût total attendu, pas le taux de détection présenté dans une démonstration commerciale. Un modèle qui bloque 99 % d’un sous-ensemble évident tout en refusant les bons paiements à forte valeur peut ruiner la marge avec une élégance statistique remarquable.

La décision doit suivre au moins trois issues : accepter, refuser, ou demander une vérification supplémentaire. Réserver la vérification aux scores intermédiaires évite de traiter chaque paiement comme une scène de crime. Les règles déterministes gardent une place : bénéficiaire interdit, compte bloqué, montant au-delà d’une limite réglementaire, pays ou produit non autorisé. Un modèle statistique ne doit jamais avoir le pouvoir de contourner une interdiction explicite.

Les données de fraude sont elles-mêmes sensibles. Les conserver indéfiniment pour « entraîner plus tard » augmente l’exposition sans garantir une meilleure détection. Définir une finalité, une durée de rétention, un contrôle d’accès et une pseudonymisation lorsque possible. Les journaux doivent permettre l’enquête, mais ne doivent pas devenir un second entrepôt de données de carte ou d’identifiants. Le journal qui capture tout finit toujours par capturer ce qu’il ne fallait pas.

Exemple : contrôle d’idempotence d’une autorisation

Section intitulée « Exemple : contrôle d’idempotence d’une autorisation »

L’exemple suivant montre un appel reproductible vers une interface de test locale. La clé d’idempotence est transmise au serveur, qui doit retourner le même résultat pour toute répétition de la même intention de paiement. La persistance de cette clé doit être transactionnelle avec l’enregistrement de la demande.

Fenêtre de terminal
# Première soumission : le serveur crée l'intention de paiement.
curl --request POST http://localhost:8080/payments/authorizations \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: 7f8c2cb4-6d4d-4e30-9d13-816b4ca24e79' \
--data '{
"merchantReference": "order-8421",
"amount": 4999,
"currency": "EUR"
}'
# Répétition après perte de réponse réseau :
# le serveur doit renvoyer l'autorisation existante, pas débiter une seconde fois.
curl --request POST http://localhost:8080/payments/authorizations \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: 7f8c2cb4-6d4d-4e30-9d13-816b4ca24e79' \
--data '{
"merchantReference": "order-8421",
"amount": 4999,
"currency": "EUR"
}'

La clé doit être liée au contenu métier. Réutiliser la même clé avec un montant ou un bénéficiaire différent doit produire une erreur, pas une nouvelle opération. La durée de conservation dépend du délai maximal de répétition admis et des fenêtres de règlement, mais elle ne peut pas être inférieure au délai pendant lequel un client, un proxy ou un système partenaire peut rejouer une demande.

Exploitation : clés, supervision et reprise vérifiée

Section intitulée « Exploitation : clés, supervision et reprise vérifiée »

Les clés de chiffrement et de signature exigent une rotation planifiée, avec coexistence temporaire entre ancienne et nouvelle clé. Supprimer l’ancienne clé dès la rotation rend illisibles les données historiques et invalide les vérifications de signature. Conserver une clé sans politique de retrait transforme, à l’inverse, une fuite ponctuelle en risque permanent. La rotation doit donc inclure création, activation, distribution contrôlée, période de déchiffrement historique, retrait et destruction vérifiable.

Les sauvegardes doivent inclure les configurations, les journaux d’audit, les métadonnées de clés et les données nécessaires au rapprochement. Sauvegarder une base chiffrée sans capacité de restaurer les clés associées produit une archive parfaitement inutilisable. Les architectures HSM à haute disponibilité doivent être conçues comme une dépendance à part entière, pas comme un boîtier décoratif dans un diagramme. La page sur le module cryptographique matériel et PKCS#11 fournit les bases d’intégration, mais le plan financier doit aussi tester la récupération après perte d’un site.

La supervision doit déclencher sur les symptômes de fraude et de résilience : explosion des refus, changement brutal du taux d’approbation, hausse des délais de réponse, saturation des files, écart de rapprochement, échec de rotation de clés et absence de réception d’événements. Une alerte sur l’utilisation processeur ne remplace pas une alerte sur un taux de paiements inconnus. Les deux ont leur place, mais l’argent ne disparaît généralement pas parce qu’un graphe est devenu orange.

Sans KEK confinée dans un HSM, la clé qui protège les DEK réside sur le même serveur ou dans la même sauvegarde que les données chiffrées : une copie de disque ou un vidage mémoire suffit pour tout déchiffrer hors ligne, et aucun journal d’opérations cryptographiques ne signale un volume anormal de déchiffrements. Il devient alors impossible de borner l’étendue d’une fuite. Sans clé d’idempotence liée au contenu, une requête de remboursement ou de crédit capturée peut être rejouée par un client malveillant, et chaque répétition produit un nouveau mouvement comptable. Sans version du modèle et des règles attachée à chaque décision de scoring, un refus ou une acceptation ne peut plus être justifié lors d’une contestation.

Un paiement passe par plusieurs contrôles avant d’être accepté. Le système vérifie d’abord que la demande est complète et qu’elle ne répète pas une demande déjà traitée. Cette vérification évite de débiter deux fois une personne quand une réponse se perd sur le réseau. Il transmet ensuite la demande au réseau de paiement, conserve la preuve de ce qu’il a envoyé et attend une réponse ou une confirmation plus tardive.

Les données de carte ne doivent pas circuler partout. Elles sont remplacées par une référence sans valeur en dehors du système spécialisé qui la gère. Les clés servant à chiffrer ces données restent dans un équipement dédié, afin qu’un serveur piraté ne puisse pas les lire directement.

Le système calcule aussi un niveau de risque pour chaque paiement. Il observe des éléments comme le montant, l’heure, le pays ou les habitudes du compte. Selon le risque, il accepte, refuse ou demande une vérification supplémentaire. Refuser trop peu laisse passer des vols. Refuser trop souvent fait perdre des ventes légitimes.

Enfin, les services doivent continuer à fonctionner malgré la panne d’un serveur, d’un site ou d’un partenaire. Les données sont copiées, les bascules sont testées et chaque opération est enregistrée pour corriger les écarts après incident. Si les clés, les journaux ou les sauvegardes manquent, la reprise peut échouer même si les serveurs redémarrent.

À lire aussi

Pages voisines

: les deux pages se citent l’une l’autre.