GH GambleHub

Tokénisation des données PII

Tokenization des données PII

1) Pourquoi Tokenization et exactement ce que Tokenizons

Objectif : éliminer le recours aux données personnelles « brutes » dans le circuit opérationnel et l'analyse, réduire les risques de fuites et simplifier la conformité.
Exemples de PII : Nom, téléphone, email, adresse, passeport/ID, INN, adresses IP, cookie-ID, identifiants de paiement, date de naissance, etc.

Idée : au lieu de la valeur d'origine, nous utilisons un token - un substitut sûr qui :
  • ne révèle pas la valeur initiale ;
  • peut être réversible (via un service de désintoxication sécurisé) ou irréversible ;
  • peut être déterministe (pour le join/recherche) ou non déterministe (pour une intimité maximale).

2) Modèle de menace et objectifs de contrôle

Risques : fuites OBD/logs/backup, lectures d'initiés, corrélation par valeurs répétées, désintoxication non autorisée, attaques par dictionnaire/format (email/téléphone), réutilisation des secrets.

Objectifs :

1. Diviser les zones de confiance : l'application fonctionne avec les tokens, les sources - seulement dans le service de token.

2. Garantir la résistance cryptographique des tokens et la désintoxication contrôlée.

3. Réduire le radius blast avec KMS/HSM, rotation et « crypto-stérilisation ».

4. Assurez-vous que vous êtes apte à la recherche/joyaux/analyse à un risque contrôlé.

3) Typologie des tokens

PropriétéOptionsPourquoi
Réversibilitéréversible/irréversiblecustomer care vs analysis
Déterminismedéterministes/non déterministesjoin/déduplication vs anti-corrélation
FormatFPE (format-preserving )/arbitrairerespect des masques (téléphone/BIN) vs chaînes aléatoires
Zoneper-tenant/per-dataset/globalisolement et gestion des conflits
Durée de vieconstantes/à courte durée de vieLiens à long terme vs jetons jetables
Profils recommandés :
  • PII pour la recherche/joyaux : déterministes réversibles, attachés à une zone (tenant/scope), avec un verrou sur le KMS.
  • IPI pour le masquage opérationnel (IU) : réversible non déterminable avec une durée de vie pour réduire les risques de réutilisation.
  • Pour les analystes en « zone grise » : irréversibles (NMAS/hachage clé avec sel) ou agrégations DP.

4) Architecture de tokenization

4. 1 Composants

Tokenization Service (TS) : API « tokenize/detokenize/search », zone de confiance accrue.
Token Vault (TV) : map'token protégé → original (+ métadonnées) ".
KMS/HSM : stockage des clés racines (KEK), opérations d'emballage/signature.
Moteur de politique : qui, où et pourquoi peut se désintéresser ; scope/TTL/rate-limits; mTLS/mTLS+mTLS.
Audit & Immutabilité : journaux immuables de toutes les opérations de tokenization/désintoxication.

4. 2 Hiérarchie des clés

Root/KEK en KMS/HSM (par organisation/région/locataire).
DEK-PII par domaine de données (email/phone/address) et/ou dataset.
Rotation : rewrap DEK sans transpiration de l'ensemble du volt ; un plan « compromettant la clé ».

4. 3 Flux

1. Tokenize : le client → TS (mTLS + A&A) → la normalisation → le calcul du token → l'enregistrement dans la TV → la réponse par le token.
2. Detokenize : client avec des droits de → TS → la vérification de la politique/de la base → l'émission de l'origine (ou le refus).
3. Recherche/Match : La tokenisation déterministe permet la recherche par token ; pour l'email/téléphone - normaliser le format avant la tokenisation.

5) Conception de tokens (crypto-conception)

5. 1 Réversible (recommandé pour le circuit opérationnel)

AES-SIV/AEAD envelope: `cipher = AEAD_Encrypt(DEK, PII, AAD=scope|tenant|field)`; token = 'prefix' nonce 'cipher' tag '.
FPE (FF1/FF3-1) pour les formats (par exemple, téléphone à 10 chiffres sans code de pays). Appliquer avec soin et avec le bon domaine (alphabet/longueur).

5. 2 Irréversibles (analyse/anonymisation à la limite)

Keyed HMAC/хэш: `token = HMAC(PII_normalized, key=K_scope)`; sel/pepper - séparé ; par locataire ou datacet.
Le risque de conflit est minimisé par le choix de la fonction (SHA-256/512) et du domaine.

5. 3 Déterminisme et domaine d'action

Pour join, utilisez un schéma déterministe avec AAD = '{tenant' purpos'field} '→ différents tokens de la même valeur correspondent à différentes cibles.
Pour l'anti-corrélation dans les différents services - différentes clés/zones.

5. 4 Minimisons les attaques selon le dictionnaire

Normalisation (canalisation email/téléphone), pepper dans KMS, limitation de la taille du domaine (ne pas donner l'erreur « aucun enregistrement trouvé » comme canal side), rate-limit et SARTSNA/proxy pour les points publics.

6) Conception de l'API et des schémas

6. 1 REST/gRPC (version)

`POST /v1/tokenize { field, value, scope, tenant_id, purpose } -> { token, meta }`

`POST /v1/detokenize { token, purpose } -> { value }` (mTLS + OIDC + ABAC; « minimisation » de l'extradition)

'POST/v1/match {field, value} -> {token} '(chemin de recherche déterministe)

6. 2 Circuit de stockage (TV)

Таблица `tokens(field, scope, tenant_id, token, created_at, version, wrapped_key_id, hash_index)`

Index : par 'token', par '(tenant_id, champ, hash_index)' pour la duplication/recherche.
L'indice Hash (HMAC d'un PII normalisé) permet une recherche sans désintoxication.

6. 3 Convoyeurs de normalisation

email : lowercasing, trim, canonical local-part (pas de « manger » agressif des points pour tous les domaines).
phone : E.164 (avec code pays), supprimer les caractères de formatage.
address/name : translittération par règles, trim, collapse spaces.

7) Polyvalence et isolation

Clés et namespaces par locataire : KEK/DEK per tenant.
Politiques de désintoxication : rôle + objectif + cause + event-audit.
Crypto-suppression des données du locataire - la révocation de KEK et la destruction de DEK → volt devient inutile (pour ses enregistrements).

8) Intégration

8. 1 Bases de données et caches

Ne stockez que les jetons dans les tables d'exploitation.
Pour les cas rares, vous avez besoin d'une désintoxication « à la volée » via un mandataire/agent.
Cache de token - seulement en mémoire avec TTL court, pas d'écriture sur disque.

8. 2 Analyse/BI/ML

Dans le DWH/lac - jetons ou hachages. Join est exécuté à partir des tokens déterministes de la scope correspondante.
Pour ML - de préférence pseudonymisation et agrégats ; éviter le rétablissement de la personne.

8. 3 Services de soutien et antifrod

UI avec masque (« + 380 ») et désintoxication épisodique pour une raison justifiée (code reason) + second facteur.

9) Rotation, versions et cycle de vie

Séparez l'ID de token et la version de cryptage (v1/v2).
Rewrap : on change KEK sans toucher aux données.
Le plan des incidents : компрометация des clés → le rappel instantané, l'interdiction детокенизации, le recul jusqu'à "read-only", la mise en marche rewrap.
Tokens TTL : par politique - permanents (identifiants) ou courts (liens jetables/intégrations temporaires).

10) Performance et fiabilité

Accélérations matérielles (AES-NI/ARMv8), pools de connexion au KMS, cache de DEK enveloppé.
Mise à l'échelle horizontale du TS ; séparation des chemins de lecture/écriture.
Idempotency-key pour les répétitions tokenize dans les flaps réseau.
DR/HA : multizonalité, réplique de volt asynchrone, tests de récupération réguliers.
SLO : p99 latences 'tokenize' ≤ 50-100 ms ; 'detokenize' ≤ 50 ms ; disponibilité ≥ 99. 9%.

11) Observation, audit, conformité

Métriques : QPS par méthode, erreurs A et A, proportion de désintoxications (par rôle/cible), cache hit-rate, durée des opérations KMS.
Audit (immuable) : chaque désintoxication avec 'who/what/why/where', hachage de requête, résultat.
Stratégies de stockage et WORM pour le journal (voir Audits et journaux immuables).
Conformité : RGPD (minimisation, droit de suppression par crypto-effacement), PCI DSS (pour PAN - FPE/pseudonymisation), rapport ISO/SOC.

12) Tests et sécurité

Tests crypto-unitaires : stabilité des tokens déterministes, vérification AAD et défaillance en cas de non-conformité.
Tests négatifs : attaques par dictionnaire, inverse de format, rate-limit, CSRF (pour les panneaux Web), SSRF sur les beckends.
Chaos : KMS/volt non disponible, clé obsolète, réplication partielle.
Des tentatives périodiques de désintoxication de Red-Team sans raison et par des canaux latéraux.

13) Mini recettes

Jeton réversible déterministe (AEAD SIV, pseudo-code) :

pii_norm = normalize(value)
aad   = scope          tenant          field dek   = kms. unwrap(kek_id, wrapped_dek_for_field)
token = aead_siv_encrypt (dek, pii_norm, aad) # deterministically store_vault (token, pii_norm, meta)
return token
Jeton d'analyse irréversible (HMAC) :

pii_norm = normalize(value)
pepper  = kms. get_secret("pepper/"+tenant+"/"+field)
token = HMAC_SHA256 (pepper, pii_norm) # deterministically within scope return base64url (token)
Politique de désintoxication (idée) :

allow if role in {SupportL2, Risk, DPO} and purpose in {KYC, Chargeback, DSAR}
and mTLS and OIDC_claims match tenant and reason_code provided and ticket_id linked rate_limit per actor <= N/min
Crypto-suppression du locataire :

kms. disable_key(kek_tenant)
access to unwrap is blocked → detoxification is not possible schedule_destroy (kek_tenant, hold_days=7)

14) Erreurs fréquentes et comment les éviter

Jetons dans les logs. Masquer et les jetons eux-mêmes (particulièrement réversibles) sont des données sensibles.
Une seule clé pour tout. Diviser par locataires/champs/cibles ; utilisez AAD.
La normalisation « comment c'est arrivé ». La canonisation incohérente brise la recherche/joyaux.
Désintoxication sans motifs/restrictions. Toujours code reason, audit et rate-limit.
FPE comme panacée. Appliquer uniquement si le format est vraiment nécessaire et avec le bon domaine/clés.
Caches à longue durée de vie sur le disque. Cache uniquement en mémoire TTL.
Pas de rewrap. La rotation KEK sans temps d'arrêt est obligatoire.

15) Chèques-feuilles

Avant la vente

  • Les profils de token par champ/cible (réversibilité/déterminisme/zone) ont été sélectionnés.
  • La hiérarchie des clés (KEK/DEK), les politiques KMS, l'audit des opérations clés ont été configurés.
  • Normalisation des entrées, pipeline de validation des formats.
  • Inclus rate-limit, reason-codes, vérification immuable.
  • Les tests d'attaques de vocabulaire/format/rôle-based access sont passés.
  • DR/réplique de volt et plan de compromission des clés.

Exploitation

  • Rapport mensuel sur la désintoxication (qui/pourquoi/combien).
  • Rotation périodique KEK/pepper, rewrap DEK.
  • Red-team sur la désintoxication non autorisée/canaux latéraux.
  • Révision de la normalisation lorsque de nouveaux formats/régions apparaissent.

16) FAQ

Q : Tokenisation = anonymisation ?
Oh non. Tokenization - pseudonyme. L'origine sera restaurée (ou comparable) si vous avez des clés/volts. Une anonymisation fiable est nécessaire pour quitter le domaine du RGPD.

Q : Comment chercher par email/téléphone sans désintoxication ?
R : Tokenisation déteminée avec canonisation. Pour les adresses/FIO - index de hachage/clés de recherche et tables auxiliaires.

Q : Quand le FPE est-il nécessaire ?
R : Lorsque le contrat/schéma externe nécessite un format (longueur/alphabet). Dans les autres cas, les jetons AEAD sont plus faciles et plus sûrs.

Q : Un jeton peut-il être utilisé à toutes fins ?
R : Mieux vaut des zones différentes (scope/purpose) : le même PII donne des jetons différents pour différentes tâches, → le risque de corrélation est réduit.

Q : Comment effectuer le « droit de suppression » ?
R : Crypto-suppression : Nous rappelons KEK/DEK pour l'ensemble correspondant et/ou nous supprimons l'enregistrement dans la vague + nous détruisons les clés de champ/lot ; en analyse, TTL/aggrégation/impersonnalisation.

Matériaux connexes :
  • « Gestion des secrets »
  • Cryptage At Rest
  • Cryptage In Transit
  • «Privacy by Design (GDPR)»
  • Audit et journaux invariables
  • Gestion des clés et rotation
Contact

Prendre contact

Contactez-nous pour toute question ou demande d’assistance.Nous sommes toujours prêts à vous aider !

Telegram
@Gamble_GC
Commencer l’intégration

L’Email est obligatoire. Telegram ou WhatsApp — optionnels.

Votre nom optionnel
Email optionnel
Objet optionnel
Message optionnel
Telegram optionnel
@
Si vous indiquez Telegram — nous vous répondrons aussi là-bas.
WhatsApp optionnel
Format : +code pays et numéro (ex. +33XXXXXXXXX).

En cliquant sur ce bouton, vous acceptez le traitement de vos données.