3 points par GN⁺ 2024-08-27 | 1 commentaires | Partager sur WhatsApp
  • Les différentes versions d’UUID

    • UUID Version 1 (v1) : généré à partir d’un horodatage, d’un compteur monotone et d’une adresse MAC
    • UUID Version 2 (v2) : réservée aux identifiants de sécurité. Peu de détails sont connus
    • UUID Version 3 (v3) : généré à partir du hash MD5 des données fournies. DNS et URL sont proposés comme données candidates
    • UUID Version 4 (v4) : généré à partir de données entièrement aléatoires. C’est généralement ce à quoi la plupart des gens pensent quand on parle d’UUID
    • UUID Version 5 (v5) : généré à partir du hash SHA1 des données fournies. Comme pour v3, DNS et URL sont proposés comme données candidates
    • UUID Version 6 (v6) : généré à partir d’un horodatage, d’un compteur monotone et d’une adresse MAC. Il utilise les mêmes données que v1, mais avec un ordre modifié pour permettre un tri selon le moment de génération
    • UUID Version 7 (v7) : généré à partir d’un horodatage et de données aléatoires
    • UUID Version 8 (v8) : entièrement personnalisable par l’utilisateur (hors champs obligatoires de version/variante)
  • Quand les utiliser

    • v4 : à utiliser quand un identifiant aléatoire est nécessaire. Bon choix par défaut
    • v7 : à utiliser lorsqu’un tri est nécessaire. Par exemple, adapté comme clé de base de données
    • v5 ou v8 : à utiliser quand vous voulez inclure des données uniques dans l’UUID. Vous saurez quand ce sera nécessaire
  • Explication des autres versions

    • v7 est une version améliorée de v1 et v6, donc il vaut mieux utiliser v7 quand c’est possible. Par conséquent, v1 et v6 sont rarement utilisés
    • v2 est réservée à des usages liés à la sécurité. Si vous l’utilisez, il est probable que vous ne puissiez pas en connaître les détails
    • v3 est remplacée par v5. v5 utilise un hash plus robuste

Le récapitulatif de GN⁺

  • Les UUID existent en plusieurs versions, chacune conçue pour un usage spécifique
  • v4 et v7 sont les plus couramment utilisés, tandis que v5 et v8 servent quand il existe des exigences particulières sur les données
  • Le choix de la version d’UUID dépend du cas d’usage : v7 convient bien lorsqu’un tri est nécessaire, et v4 lorsqu’un identifiant aléatoire est souhaité
  • Comprendre les différentes versions d’UUID aide à choisir celle qui convient à un projet

1 commentaires

 
GN⁺ 2024-08-27
Avis Hacker News
  • La version 2 des UUID (v2) est réservée aux identifiants de sécurité, mais on en sait peu sur les détails

    • Cela vient du fait que le document RFC est rédigé de manière ambiguë
    • On peut obtenir plus d’informations en consultant la documentation de l’Open Group
    • Il existe aussi des UUID de « version 0 », qui ont contribué plus tard à assurer la compatibilité avec d’autres versions
    • Les résultats de recherche sont disponibles sur GitHub
  • Les détails d’UUID v2 se trouvent facilement dans le document RFC 9562

    • Ils sont définis comme faisant partie de DCE, et on peut consulter les détails en cliquant sur les liens associés
    • Il est important de cliquer sur les liens
  • L’horodatage d’UUID v7 est utile chez Databend pour retrouver rapidement les fichiers de métadonnées

    • Cela améliore fortement la vitesse de traitement sur AWS S3
    • La PR associée est visible sur GitHub
  • Ce serait bien qu’il existe un standard pour les UUID courts

    • Par exemple : 73WakrfVbNJBaAmhQtEeDv ou bK7nP9xM
    • On a besoin d’identifiants courts et faciles à mémoriser
  • Il est difficile de comprendre l’objectif d’UUID2

    • Je n’ai rencontré UUID2 que chez Xandr, lors d’une demande de suppression de données personnelles
    • Même en lisant la page Wikipedia, il est difficile de comprendre pourquoi différents types d’UUID sont nécessaires
    • Je me demande si le mélange avec le code Mac augmente l’aléa d’UUID2, ou s’il y a une autre raison
    • Pour la confidentialité, on peut utiliser des identifiants très longs et non dupliqués
  • UUID v4 n’est qu’un simple générateur d’octets aléatoires

    • Il est plus efficace de générer directement des octets aléatoires, sans tirets, informations de version, etc.
  • Il vaut mieux éviter les versions basées sur l’adresse MAC

    • En théorie, cela concerne toutes les versions sauf v4 et v7
    • v1 est particulièrement la pire, et le MD5 de v3 est lui aussi très vulnérable
  • Un UUID utilisant des données SHA256 et un compteur pourrait être utile

    • Il pourrait servir d’identifiant protégeant la vie privée, d’une manière similaire à PBKDF2
  • Il vaut mieux utiliser v7

    • Les experts en sécurité pourraient s’y opposer
  • C’était une lecture intéressante

    • On peut apprendre quelque chose de nouveau chaque jour