La CNIL recommande, dans le cadre du RGPD, d'éviter les identifiants séquentiels pour les enregistrements contenant des données personnelles : un ID auto-incrémenté révèle indirectement le nombre d'inscrits ou l'ordre de création des comptes, ce qui peut déjà constituer une fuite d'information. Remplacer ces identifiants par des UUID est une pratique de pseudonymisation courante dans les systèmes français soumis au règlement.
Les versions d'UUID
- v1 — basée sur l'heure actuelle et l'adresse MAC de la carte réseau. Garantit l'unicité, mais révèle partiellement quand et sur quel appareil l'identifiant a été créé.
- v4 — entièrement aléatoire (à part quelques bits réservés indiquant la version). Le choix le plus courant aujourd'hui, précisément parce qu'il ne fuite aucune information annexe.
- v5 — déterministe, calculée comme un hachage d'un espace de noms et d'une chaîne — la même entrée donne toujours le même UUID.
Pourquoi la probabilité de collision est quasi nulle
Dans un UUID v4, 122 bits sont aléatoires. Même en générant des milliards d'UUID par seconde pendant des siècles, la probabilité d'au moins une collision reste astronomiquement faible — un fait mathématiquement fondé sur le paradoxe des anniversaires pour un espace de cette taille.
Pourquoi c'est utile
- Générer des clés primaires de base de données sans compteur central ni coordination entre serveurs.
- Pseudonymiser des enregistrements contenant des données personnelles sans révéler leur volume ni leur ordre de création.
- Éviter des identifiants séquentiels prévisibles, faciles à énumérer (contrairement à
1, 2, 3...).
UUID v7 : un compromis entre aléatoire et tri
Un UUID v4 entièrement aléatoire nuit aux performances des index de base de données — les nouveaux enregistrements sont insérés à des positions chaotiques de l'arbre d'index au lieu de la fin. Le plus récent UUID v7 résout ce problème en intégrant un horodatage dans les premiers bits de l'identifiant : les valeurs restent pratiquement uniques, comme v4, mais se trient naturellement selon leur heure de création, comme un compteur séquentiel.