本文へ移動

検証と内部情報

UUID アナライザー

UUID を貼り付けると、バージョン、バリアント、埋め込まれたタイムスタンプ、エントロピー、v1 識別子からマシンを特定し得るノードフィールドを確認できます。

リファレンス

各情報の位置

UUID は 128 ビットで、ハイフンで区切られた 5 つのグループで表されます。意味を持つグループはバージョンによって異なり、同じ 36 文字でも v4 では不透明、v1 では多くの情報を含む場合があります。

  • time_low

    ビット 0–31

    v1 ではタイムスタンプの下位ビット、v4 ではランダムです。

  • time_mid

    ビット 32–47

    v1 タイムスタンプの中位ビットです。

  • time_high / version

    ビット 48–59 + 4

    バージョンニブルはオクテット 6 の上位 4 ビット(13 文字目)にあります。

  • clock_seq

    ビット 60–73

    ノードごとにランダムで、タイムスタンプの重複を防ぎます。

  • node

    ビット 74–127

    v1 のマシン識別子で、以前は MAC アドレスでした。これが v1 が情報を漏らす理由です。

  • variant

    ビット オクテット 8 の上位 2~3 ビット

    10 は RFC 9562 を示します。それ以外は旧式または予約済みです。

v1 が情報を漏らす理由

ノードフィールドにはハードウェアアドレスが含まれる場合があります。同じマシンの v1 UUID はこの値を共有することがあり、相互の関連付けやマシンの特定につながる可能性があります。アナライザーではこのフィールドを明示します。

v7 が作られた理由

先頭に 48 ビットのミリ秒タイムスタンプがあるため、UUID は生成順に並びます。行を挿入するときに B-tree インデックスの順序を保ちやすくなります。

v3 ではなく v5 を使う理由

どちらも名前ベースで決定論的です。v3 は現在安全とは見なされない MD5 を使用し、v5 は SHA-1 を使用する名前ベース UUID の現代的な選択肢です。