Bahasa Melayu

Alat pembangun · UUID penjana

Versi 1 UUID Boleh Membocorkan Alamat MAC Anda dan Masa Penciptaan

· Mengapa ia penting

uuid kriptografi pelayar-apis

Pecahan struktur UUIDv1 yang menunjukkan medan cap masa dan MAC bit alamat
Ilustrasi vektor ToolAcre asal

UUID berasaskan masa membenamkan cap masa 60-bit dan pengecam nod 48-bit yang selalunya merupakan alamat kad rangkaian sebenar. Siaran ini menunjukkan perkara yang orang luar boleh baca daripada satu dan mengapa generasi rawak mengelakkan masalah itu.

Pengecam yang menamakan komputer riba anda — sebab ID dalam dokumen yang dieksport boleh menjadi lebih daripada ID

Versi 1 UUID dibina daripada cap masa, alamat MAC dan nilai jujukan jam. Cap masa 60-bit mewakili bilangan selang 100-nanosaat sejak 15 Oktober 1582, tarikh pembaharuan kalendar Gregorian. Medan nod 48-bit secara tradisinya mengandungi alamat IEEE 802 MAC bagi antara muka rangkaian yang menghasilkan UUID. Apabila anda mengeksport dokumen, jalankan alat atau simpan fail yang membenamkan versi 1 UUID, sesiapa yang kemudiannya menyahkod bahawa UUID boleh membaca apabila ia dicipta dan, jika medan nod ialah alamat MAC sebenar, mesin mana yang menciptanya. Maklumat ini bocor secara senyap daripada apa yang kelihatan sebagai pengecam legap.

Anatomi v1 UUID — medan cap masa, jujukan jam dan medan nod dan tempat masing-masing berada dalam aksara 36

Kebocoran maklumat adalah halus tetapi berbangkit untuk privasi dan atribusi. Jika anda bekerjasama dengan pengarang bersama pada dokumen dan alamat MAC kad rangkaian anda berada dalam UUID v1 terbenam, pemerhati mengetahui perkakasan yang digunakan di institusi atau lokasi tertentu. Jika anda mengeksport dokumen pada masa tertentu, cap masa dalam setiap v1 UUID menghadkan apabila kerja itu berlaku. Pengarang yang cuba mengekalkan nama samaran boleh dinyahnamakan dengan mengaitkan cap waktu UUID dengan tarikh penerbitan atau peristiwa penciptaan dokumen yang diketahui. Pengecam kelihatan tidak berbahaya kerana ia diformatkan sebagai rentetan aksara 36 yang legap, tetapi ia tidak legap sama sekali kepada sesiapa yang mengetahui format v1 dan mengambil berat untuk menyahkodnya.

Perkara yang dipelajari oleh pemerhati — apabila rekod dibuat dan, jika nod ialah alamat perkakasan, mesin atau vendor yang menciptanya

Anatomi v1 UUID menjelaskan perkara yang boleh diekstrak kerana strukturnya bersifat deterministik dan didokumenkan secara umum. RFC 9562 mentakrifkan susun atur: 32 bits untuk masa_rendah, 16 bits untuk masa_pertengahan, 4 bits untuk versi ditetapkan kepada 1, 12 bits untuk masa_tinggi, 2 bits untuk varian, 14 bits untuk clock_seq dan 48 bits untuk nod. Medan masa terdiri 60 bits jumlah, yang apabila digabungkan dan ditafsirkan sebagai 100-selang nanosaat sejak 1582 menghasilkan ciptaan yang tepat serta-merta ke dalam 100 nanosaat. 48-bidang nod bit biasanya memegang MAC alamat sebagai a 48-bit integer. Penyahkodan adalah deterministik: baca bait, tutup dan alihkan medan dan tafsirkan nilai. Tiada kriptografi terlibat; yang UUID struktur menjadikan pengekodan sepenuhnya telus dan boleh diterbalikkan.

Sejarah berjaga-jaga — cara pengecam yang dibenamkan dalam dokumen telah digunakan untuk mengesan kepengarangan, diterangkan tanpa spekulasi

RFC 9562 mengakui sejarah privasi dan mengesyorkan terhadap v1 untuk aplikasi baharu kerana kosnya melebihi faedah. Spesifikasi termasuk v4 rawak dan v7 alternatif tertib masa dengan pertimbangan privasi didokumenkan. Versi 1 dikekalkan untuk keserasian ke belakang dengan sistem yang digunakan, tetapi kod baharu tidak seharusnya menjana UUID v1 tanpa semakan keselamatan yang teliti dan justifikasi eksplisit untuk pendedahan. Keterdedahan itu bukanlah suatu kelalaian; ia merupakan pilihan reka bentuk yang disengajakan pada tahun 1980-an apabila kebocoran privasi bukanlah kebimbangan utama dan penjejakan adalah ciri yang boleh diterima untuk pengenalan sistem yang diedarkan.

Contoh yang berfungsi — menyahkod sampel v1 UUID dengan tangan ke dalam medan cap masa dan nodnya

Garis masa adalah penting untuk memahami pendedahan kerana v1 UUID dalam dokumen yang dibuat dalam 1998 termasuk pengekodan cap masa era 1998, yang berguna untuk forensik tetapi merupakan masalahnya sendiri. Jika anda mempunyai dokumen sejarah dengan UUID v1 dan anda kemudiannya mengongsinya, cap masa itu berterusan. Anda tidak boleh secara retroaktif mengalih keluar fakta sejarah bahawa UUID telah dijana pada masa tertentu; anda sahaja boleh berhenti menjana UUID v1 baharu. Sesetengah aplikasi cuba mengurangkan kebocoran alamat MAC dengan menggantikan MAC sebenar dengan nama samaran rawak, tetapi cap masa kekal boleh dibaca dan dinyahkod sepenuhnya.

Perubahan v4 dan v7 — UUID rawak tidak membawa data mesin; v7 masih mendedahkan masa penciptaan, yang mungkin boleh diterima atau tidak

Contoh yang berfungsi menunjukkan penyahkodan dalam amalan menggunakan RFC 9562 contoh vektor. Ambil v1 UUID seperti f81d4fae-7dec-11d0-a765-00a0c91e6bf6 daripada spesifikasi. Bait tertib ialah f81d4fae 7dec 11d0 a765 00a0c91e6bf6. Medan versi berada dalam kumpulan ketiga: 11d0 dalam hex ialah 0001 0001 1101 0000 dalam binari. Yang pertama 4 bits adalah 0001, iaitu versi 1. Cap masa dibahagikan kepada kumpulan pertama, kedua dan bahagian ketiga: time_low ialah f81d4fae dalam perpuluhan 4170404526, time_mid ialah 7dec dalam perpuluhan 32236, time_high ialah 1d0 daripada kumpulan ketiga selepas mengalih keluar nibble versi dalam perpuluhan 464. Menggabungkan ini menjadi a 60-nilai bit memberikan nombor yang mewakili 100-selang nanosaat sejak 1582.

Perkara ini tidak meliputi — pilihan nod rawak yang ditawarkan oleh beberapa pelaksanaan v1, yang mengurangkan tetapi tidak mengalih keluar kebocoran cap masa

Medan nod dalam kumpulan keempat dan kelima ialah a765 00a0c91e6bf6, yang mengekod maklumat mesin jika bit 0 menunjukkan keaslian. Jika bit paling tidak ketara bagi oktet pertama medan nod ialah sifar, ia menunjukkan alamat IEEE sebenar; jika ditetapkan kepada satu, ia menunjukkan nilai pseudorandom yang dijana untuk privasi. Dalam contoh ini, a765 dalam hex ialah 10100111 01100101 dalam binari; bit paling tidak ketara ialah 1, jadi ini ialah pseudonod rawak, bukan MAC sebenar. Walau bagaimanapun, pelaksanaan yang lebih lama kadangkala menyimpan alamat MAC sebenar secara langsung dan jika ia melakukannya, medan nod 48-bit menyahkod kepada pengecam kad rangkaian. IEEE mengekalkan pendaftaran awalan MAC; mengetahui bahawa kad rangkaian bermula dengan awalan tertentu mengecilkan pengilang dan kemungkinan model komputer yang sedang digunakan.

Bawa pulang: ketahui perkara yang didedahkan oleh ID anda — penjana ToolAcre mengeluarkan setiap pengecam daripada CSPRNG, jadi tiada alamat atau cap masa MAC untuk bocor

RFC 9562 versi 4 dan seterusnya sengaja mengelakkan kebocoran ini dengan sahaja menggunakan data rawak dan bukannya maklumat yang dikodkan. Versi 4 UUID ialah 122 bits data rawak kriptografi dengan 4 bits untuk medan versi dan 2 bits untuk medan varian. Membaca bit tidak mendedahkan apa-apa kecuali UUID adalah sah; tiada cap masa untuk dinyahkod, tiada data mesin untuk diekstrak. Versi 7 termasuk cap masa untuk mengisih faedah tetapi cap masa itu diperoleh daripada zaman Unix yang biasa dan diseragamkan dan bukannya nilai berasaskan 1582 yang tidak jelas, dan spesifikasi secara eksplisit mendokumenkan bahawa maklumat masa terdapat dalam pengecam. Sifat privasi berbeza secara asas antara versi.