Qu’est-ce que UUID v1 ?
UUID version 1 est un identifiant de 128 bits basé sur le temps (chaîne de 36 caractères) défini par la RFC 4122. Il combine :
- Horodatage : valeur sur 60 bits (précision à 100 ns depuis le 15/10/1582)
- Séquence d’horloge : compteur sur 14 bits pour gérer les retours en arrière
- ID de nœud : valeur sur 48 bits (généralement l’adresse MAC)
Exemple de format : 2ed6657d-e927-11eb-9a03-0242ac130003
Fonctionnement de UUID v1
- Calculer l’horodatage courant (intervalles de 100 ns depuis le 15/10/1582)
- Récupérer/incrémenter la séquence d’horloge sur 14 bits (pour l’unicité si l’horloge recule)
- Obtenir l’ID de nœud sur 48 bits (souvent à partir de l’adresse MAC)
- Définir les bits de version (0001) et de variante (10)
- Assembler sous forme de 32 chiffres hexadécimaux avec tirets : format 8-4-4-4-12
Avantages et considérations
Avantages | Considérations |
---|---|
|
|
Structure de UUID v1
Bits | Contenu |
---|---|
0-31 | 32 bits bas de l’horodatage |
32-47 | 16 bits moyens de l’horodatage |
48-59 | 12 bits hauts de l’horodatage |
60-63 | Version (0001 pour v1) |
64-65 | Variante (10 pour RFC4122) |
66-79 | Sequence d’horloge (14 bits) |
80-127 | ID de nœud (48 bits) |
UUID v1 vs autres versions
Version | Basé sur | Cas d’usage | Confidentialité |
---|---|---|---|
UUID v1 | Temps + MAC | ID triables | ⚠️ Révèle la MAC |
UUID v3 | Namespace + MD5 | ID déterministes | ✅ Privé |
UUID v4 | Aléatoire | ID aléatoires sécurisés | ✅ Privé |
UUID v5 | Namespace + SHA-1 | ID déterministes | ✅ Privé |
UUID v6 | Temps (réordonné) | ID triables | ⚠️ Révèle la MAC |
UUID v7 | Temps + aléatoire | ID triables | ✅ Privé |
Cas d’usage courants
- Clés de base de données : bases de données distribuées
- Journaux d’audit : suivi ordonné par date
- ID de transaction : processus métier
- Suivi de session : applications web
- Adressage de contenu : systèmes CMS
- Messages IoT : communication d’appareils
Foire aux questions
UUID v1 est-il sécurisé cryptographiquement ?
Non. UUID v1 est prévisible si l’horodatage et l’adresse MAC sont connus. Pour la sécurité, utilisez plutôt UUID v4 aléatoire.
Les valeurs UUID v1 peuvent-elles entrer en collision ?
Les collisions sont extrêmement improbables en pratique grâce à la précision de l’horodatage, aux compteurs de séquence d’horloge et aux identifiants de nœud.
Puis-je extraire la date de création d’un UUID v1 ?
Oui. Le composant horodatage peut être extrait avec des algorithmes disponibles dans la plupart des bibliothèques UUID.
Les UUID v1 sont-ils triables par date de création ?
Oui, mais il faut des fonctions de tri spéciales. La comparaison directe de chaînes ne fonctionne pas car les bits de temps ne sont pas séquentiels.
UUID v1 expose-t-il mon adresse MAC ?
Par défaut, oui. La plupart des implémentations utilisent l’adresse MAC pour l’ID de nœud. Les implémentations axées sur la confidentialité peuvent utiliser des ID de nœud aléatoires.