Menu

Générateur de numéros d'identité nationale : des identifiants au format correct pour tester le KYC

Un générateur de numéros d'identité nationale construit des identifiants qui suivent les règles de format et les clés de contrôle propres à chaque pays, pour tester les parcours KYC. Découvrez les formats, les contrôles et les limites.

Publié le

  • données de test
  • identité
  • kyc

Un générateur de numéros d’identité nationale produit des identifiants qui correspondent au format que chaque pays émet réellement, y compris la longueur, le jeu de caractères, l’emplacement de la clé de contrôle et les règles internes qui rendent un numéro valide et un autre invalide. La différence entre un outil utile et une chaîne de chiffres aléatoire tient à ces règles, car tout parcours de validation sérieux les vérifie.

Ce guide examine comment les numéros d’identification diffèrent d’un pays à l’autre, pourquoi une valeur fictive telle que 123456789 échoue à tous les contrôles et ne teste donc rien, pourquoi la longueur doit être configurée par pays plutôt que supposée, et quelle est la limite honnête d’un enregistrement synthétique dans un parcours KYC. À la fin, vous devriez savoir quelles propriétés une identité de test doit posséder pour exercer un vrai pipeline d’onboarding.

Pourquoi les numéros d’identification ne sont-ils pas un seul format à longueurs différentes ?

L’hypothèse répandue selon laquelle chaque pays émet un identifiant qui est essentiellement un long numéro avec une somme de contrôle est fausse d’une manière qui casse de vrais systèmes. Les pays diffèrent sur le point de savoir si l’identifiant est numérique ou non, s’il est émis à la naissance ou à l’enregistrement, s’il encode une date, et s’il figure sur une carte ou seulement dans un registre.

Le numéro de sécurité sociale des États-Unis compte neuf chiffres en trois groupes, et le format est la seule chose que le numéro visible porte. L’article sur le format du numéro de sécurité sociale explique quelles plages ne sont jamais émises et pourquoi un validateur qui accepte toute chaîne de neuf chiffres accepte des numéros qui ne peuvent pas exister.

La Chine émet un numéro d’identité de résident de dix-huit caractères qui commence par un code d’adresse, se poursuit par une date de naissance et se termine par un caractère de contrôle qui peut être la lettre X. Le Brésil émet le CPF sous forme de onze chiffres dont les deux derniers sont des clés de contrôle calculées à partir des neuf précédents, souvent écrits avec une ponctuation qu’un analyseur doit gérer. La Turquie émet le T.C. Kimlik No sous forme de onze chiffres dont le premier n’est jamais zéro et dont les deux derniers sont dérivés des autres.

L’Espagne émet le DNI sous forme de huit chiffres plus une lettre de contrôle calculée à partir d’un modulo, et le NIE pour les résidents étrangers suit le même schéma avec une lettre initiale différente. L’Indonésie émet un NIK de seize chiffres qui intègre un code de district et une date. Le Vietnam émet un numéro d’identité de citoyen de douze chiffres. La Russie émet l’INN sous forme de dix ou douze chiffres selon l’entité, et le SNILS sous forme de onze chiffres dans un format numéroté. L’article sur la longueur des numéros d’identité nationale par pays rassemble les longueurs en un seul endroit.

Pourquoi la clé de contrôle est-elle tout l’enjeu ?

Une clé de contrôle transforme une chaîne de chiffres en une valeur dont on peut tester la cohérence interne. Sans elle, tout numéro de la bonne longueur est également valide, et un champ qui se contente de compter les caractères acceptera une faute de frappe, un collage tronqué et un numéro inventé avec le même enthousiasme.

Avec elle, un validateur peut rejeter l’immense majorité des valeurs mal saisies avant que quoi que ce soit en aval ne les voie. C’est tout le bénéfice, et c’est pourquoi un générateur qui ne calcule pas les clés de contrôle produit des données incapables d’exercer le chemin de validation qu’il est censé tester.

Les conséquences de leur omission sont faciles à voir. Une fixture remplie de valeurs fictives passera un contrôle de longueur et échouera à toutes les sommes de contrôle, de sorte que le test n’exerce que la branche de rejet. Les bugs de la branche d’acceptation — la branche qui s’exécute en production — restent non visités, et la suite signale un succès tout en ne couvrant rien.

C’est pourquoi l’arithmétique importe plus que l’apparence. Le guide des clés de contrôle des numéros d’identité nationale déroule les méthodes de modulo utilisées dans plusieurs pays, et l’aperçu des algorithmes de clé de contrôle les replace dans la famille plus large des contrôles qui incluent les numéros de compte bancaire et les codes-barres. Lorsque vous choisissez un générateur, la question à poser est de savoir quels algorithmes nationaux il implémente et si la sortie passe un validateur indépendant.

Pourquoi la longueur doit être configurée par pays

Rien dans un champ d’identification ne devrait être codé en dur. Un schéma qui stocke tous les identifiants dans une seule colonne à largeur fixe tronquera ceux qui sont plus longs et laissera un espace vide pour ceux qui sont plus courts, et un validateur qui suppose une longueur unique rejettera tous les pays pour lesquels il n’a pas été écrit.

La conception pratique consiste en un champ de pays qui sélectionne un jeu de règles, et un jeu de règles qui porte la longueur, les caractères autorisés, l’algorithme de contrôle et la manière dont la valeur est présentée à l’affichage. La valeur stockée et la valeur affichée sont généralement différentes, car de nombreux pays impriment une ponctuation qui ne fait pas partie de l’identifiant lui-même.

La configuration doit aussi gérer les pays qui n’émettent aucun identifiant de ce type. Dans ces cas, le champ devrait être légitimement absent plutôt que rempli d’une chaîne d’apparence plausible. Une valeur absente et une valeur erronée échouent différemment en aval, et un schéma qui ne peut pas exprimer l’absence finira par stocker un identifiant fabriqué dans un enregistrement qui n’en a jamais eu.

Lorsque plusieurs identifiants existent dans un même pays, le modèle doit les distinguer. Un numéro fiscal, un numéro de sécurité sociale et un numéro d’identité nationale peuvent tous comporter onze chiffres dans la même juridiction, et les traiter comme un seul champ garantit qu’un test finira par vérifier le mauvais. Nommer chaque identifiant par ce qu’il est plutôt que par sa position dans le formulaire est le moyen le moins coûteux de les distinguer, et cela rend un export d’un pays lisible dans un autre.

Comment un identifiant synthétique se comporte-t-il dans un parcours KYC

Un parcours KYC fait généralement plusieurs choses avec un identifiant. Il vérifie le format, calcule la clé de contrôle, soumet la valeur à un service de vérification externe, stocke le résultat, et conserve parfois une image d’un document. Un numéro généré satisfera les deux premières étapes et échouera à la troisième, et c’est le comportement correct pour des données synthétiques.

L’échec à la troisième étape est ce qui rend l’enregistrement sûr. Aucune autorité émettrice ne connaissant l’existence du numéro, aucun service de vérification ne peut le confirmer, et aucun compte ne peut être ouvert avec lui. Si un numéro généré satisfaisait un jour une vérification externe, cela signifierait que le numéro appartient à quelqu’un, ce qui serait un grave défaut du générateur plutôt qu’une fonctionnalité.

Cela signifie que les tests KYC avec des identifiants synthétiques se déroulent à deux niveaux. Le niveau local teste votre propre validation, votre formatage, votre gestion des erreurs et votre stockage, et les valeurs synthétiques y sont idéales. Le niveau d’intégration exige un bac à sable fourni par le prestataire de vérification, et ces bacs à sable sont généralement livrés avec leurs propres identités de test figées. Mélanger les deux — poursuivre un numéro synthétique à travers un point de terminaison de vérification en production — ne produit que du bruit.

Les équipes doivent aussi se méfier de ce qu’elles vérifient à l’étape externe. Un test qui attend un code de rejet précis d’un vrai prestataire teste le comportement actuel du prestataire, qui change sans préavis. Un test qui attend de votre application qu’elle gère un rejet avec élégance teste votre logiciel, qui est ce que vous possédez. Le même raisonnement s’applique au moment du contrôle : si votre parcours vérifie de façon asynchrone, les cas intéressants sont une réponse lente, un délai dépassé et une réponse qui arrive deux fois, et ceux-là sont moins coûteux à produire avec un simulacre que vous contrôlez qu’avec un bac à sable de prestataire qui répond toujours de la même façon.

Quelles sont les frontières de conformité pour les tests d’identité

La première frontière est qu’un enregistrement synthétique n’est pas une personne. Il peut avoir un nom, une date de naissance, une adresse et un identifiant, et aucun d’eux n’appartient à quiconque. Le présenter comme l’identité de quelqu’un, ou l’utiliser pour usurper l’identité d’un individu réel, constitue un usage abusif quelle que soit la façon dont l’enregistrement a été produit.

La deuxième frontière concerne les données réelles. Un enregistrement qui combine un vrai nom avec un vrai identifiant est une identité réelle selon toute définition pratique, et copier de tels enregistrements dans un environnement de test est une divulgation. L’article sur les données d’identité de test explique pourquoi copier des lignes de production dans un environnement inférieur est à la fois un problème réglementaire et opérationnel, et l’article sur le RGPD et les données d’identité de test couvre le cadre juridique.

La troisième frontière est la finalité. Un identifiant généré existe pour exercer un parcours que vous exploitez, et il ne doit pas servir à ouvrir un vrai compte, à franchir une étape de vérification, à réclamer une prestation, à obtenir un document, ni à franchir un contrôle qui existe pour protéger quelqu’un. Cela vaut que le parcours vous appartienne ou appartienne à un tiers.

La quatrième frontière est la conservation. Même les enregistrements synthétiques s’accumulent, et une base de données d’un million d’identités générées n’est pas dangereuse en soi mais est indiscernable au premier regard d’une base qui le serait. Marquer les lignes générées, conserver les paramètres de génération et supprimer les fixtures qui ne servent plus garde la distinction visible.

Une cinquième frontière est la présentation honnête. Si un enregistrement synthétique doit un jour quitter l’environnement de test — dans une démo, une capture d’écran ou une formation —, il devrait être étiqueté comme généré partout où un lecteur pourrait le confondre avec les données d’une personne réelle. L’étiquette ne coûte rien et supprime une ambiguïté qu’un lecteur n’a aucun moyen de résoudre seul.

Que devrait contenir un enregistrement d’identité de test

Un enregistrement utile porte un ensemble cohérent de champs plutôt qu’un identifiant seul. Des prénoms et un nom de famille appropriés au pays, une date de naissance compatible avec une plage d’âge valide, une adresse dans la même juridiction, un numéro de téléphone portant l’indicatif du pays, et les identifiants que ce pays émet réellement. Chaque paire de cet ensemble contraint l’autre membre, ce qui est la propriété qui rend l’enregistrement utilisable.

Fournissez à la fois un enregistrement figé pour les assertions et un enregistrement généré pour l’exploration. L’enregistrement figé rend un test de non-régression significatif, et l’enregistrement généré trouve des cas que personne n’a écrits. Le générateur d’identités de ce site est conçu pour que la même clé avec le même pays renvoie le même enregistrement, ce qui permet à une fixture de rester stable d’une exécution à l’autre pendant que d’autres enregistrements explorent l’espace.

Validez ensuite la sortie de manière indépendante. Prenez un identifiant généré, faites-le passer par un validateur que vous avez écrit vous-même à partir de l’algorithme publié, et confirmez que la clé de contrôle passe. Cette seule habitude intercepte toute une classe de mauvaise configuration dans laquelle un pays est sélectionné mais les règles d’un pays voisin sont appliquées. L’article sur la cohérence des champs d’identité décrit les contrôles croisés qui valent la peine d’être ajoutés à côté.

Chaque identifiant produit de cette manière est une donnée de test synthétique. Le format, la longueur et la clé de contrôle suivent les règles publiées afin qu’un logiciel puisse être exercé, mais le numéro n’appartient à aucune personne, il n’a jamais été émis par aucune autorité, et il ne doit pas servir à usurper l’identité de quiconque, à ouvrir ou enregistrer un vrai compte, à franchir une vraie vérification d’identité, ni à obtenir une prestation ou un document.

Continuer la lecture

Outils populaires et articles pratiques