Bahasa Indonesia

Alat pengembang · generator UUID

Versi 1 UUID Dapat Membocorkan MAC Alamat dan Waktu Pembuatan Anda

· Mengapa itu penting

uuid kriptografi browser-apis

Perincian struktur UUIDv1 yang menunjukkan bidang stempel waktu dan bit alamat MAC
Ilustrasi vektor ToolAcre asli

UUID berbasis waktu menyematkan stempel waktu 60-bit dan pengidentifikasi node 48-bit yang sering kali merupakan alamat kartu jaringan sebenarnya. Posting ini menunjukkan apa yang dapat dibaca oleh orang luar dan mengapa pembuatan acak menghindari masalah.

Pengidentifikasi yang memberi nama laptop Anda — mengapa ID dalam dokumen yang diekspor bisa lebih dari sekadar ID

Versi 1 UUID dibuat dari stempel waktu, alamat MAC, dan nilai urutan jam. Stempel waktu 60-bit mewakili jumlah interval 100-nanodetik sejak 15 Oktober 1582, tanggal reformasi kalender Gregorian. Bidang simpul 48-bit biasanya berisi alamat IEEE 802 MAC dari antarmuka jaringan yang menghasilkan UUID. Saat Anda mengekspor dokumen, menjalankan alat atau menyimpan file yang menyematkan versi 1 UUID, siapa pun yang kemudian menerjemahkan kode UUID tersebut dapat membaca kapan file tersebut dibuat dan, jika bidang simpul adalah alamat MAC yang sebenarnya, mesin mana yang membuatnya. Informasi ini bocor secara diam-diam dari apa yang tampak sebagai pengidentifikasi yang tidak jelas.

Anatomi v1 UUID — bidang stempel waktu, urutan jam, dan bidang simpul, serta lokasi masing-masing dalam karakter 36

Kebocoran informasi tidak kentara namun berdampak pada privasi dan atribusi. Jika Anda berkolaborasi dengan rekan penulis pada dokumen dan alamat MAC kartu jaringan Anda ada dalam UUID v1 yang tertanam, pengamat akan mempelajari perangkat keras yang digunakan di institusi atau lokasi tertentu. Jika Anda mengekspor dokumen pada waktu tertentu, stempel waktu di setiap v1 UUID terikat pada saat pekerjaan dilakukan. Seorang penulis yang mencoba mempertahankan nama samaran dapat dideanonimkan dengan menghubungkan stempel waktu UUID dengan tanggal publikasi yang diketahui atau peristiwa pembuatan dokumen. Pengidentifikasi tampak tidak berbahaya karena diformat sebagai string karakter 36 buram, namun tidak buram sama sekali bagi siapa pun yang mengetahui format v1 dan ingin memecahkan kodenya.

Apa yang dipelajari pengamat — kapan rekaman dibuat dan, jika node adalah alamat perangkat keras, mesin atau vendor mana yang membuatnya

Anatomi v1 UUID memperjelas apa yang dapat diekstraksi karena strukturnya bersifat deterministik dan didokumentasikan secara publik. RFC 9562 mendefinisikan tata letak: 32 bits untuk waktu_rendah, 16 bits untuk waktu_tengah, 4 bits untuk versi yang disetel ke 1, 12 bits untuk waktu_tinggi, 2 bits untuk varian, 14 bits untuk clock_seq dan 48 bits untuk node. Bidang waktu terdiri dari total 60 bits, yang jika digabungkan dan diinterpretasikan sebagai interval 100-nanodetik sejak 1582 menghasilkan pembuatan instan yang tepat dalam 100 nanodetik. Bidang simpul 48-bit biasanya menyimpan alamat MAC sebagai bilangan bulat 48-bit. Penguraian kode bersifat deterministik: membaca byte, menutupi dan menggeser bidang, serta menafsirkan nilainya. Tidak ada kriptografi yang terlibat; struktur UUID membuat pengkodean sepenuhnya transparan dan dapat dibalik.

Sejarah peringatan — bagaimana pengidentifikasi yang tertanam dalam dokumen digunakan untuk melacak kepenulisan, dijelaskan tanpa spekulasi

RFC 9562 mengakui riwayat privasi dan merekomendasikan versi 1 untuk aplikasi baru karena biayanya lebih besar daripada manfaatnya. Spesifikasinya mencakup alternatif urutan waktu v4 dan v7 dengan pertimbangan privasi yang didokumentasikan. Versi 1 dipertahankan untuk kompatibilitas dengan sistem yang diterapkan, namun kode baru tidak boleh menghasilkan UUID v1 tanpa tinjauan keamanan yang cermat dan pembenaran eksplisit atas paparan tersebut. Kerentanan ini bukanlah suatu kekeliruan; ini adalah pilihan desain yang disengaja pada tahun 1980an ketika kebocoran privasi bukan masalah utama dan pelacakan merupakan fitur yang dapat diterima untuk identifikasi sistem terdistribusi.

Contoh praktis — mendekode sampel v1 UUID dengan tangan ke dalam stempel waktu dan bidang simpulnya

Garis waktu penting untuk memahami paparan karena v1 UUID dalam dokumen yang dibuat di 1998 menyertakan stempel waktu yang mengkodekan waktu era 1998, yang berguna untuk forensik namun merupakan masalah itu sendiri. Jika Anda memiliki dokumen historis dengan UUID v1 dan kemudian Anda membagikannya, stempel waktunya akan tetap ada. Anda tidak dapat menghapus fakta historis bahwa UUID dibuat pada waktu tertentu; Anda hanya dapat berhenti membuat UUID v1 baru. Beberapa aplikasi mencoba mengurangi kebocoran alamat MAC dengan mengganti MAC asli dengan nama samaran acak, namun stempel waktunya tetap dapat dibaca dan didekodekan sepenuhnya.

Perubahan apa yang terjadi pada v4 dan v7 — UUID acak tidak membawa data mesin; v7 masih mengungkapkan waktu pembuatan, yang mungkin dapat diterima atau tidak

Contoh praktis menunjukkan decoding dalam praktik menggunakan vektor contoh RFC 9562. Ambil v1 UUID seperti f81d4fae-7dec-11d0-a765-00a0c91e6bf6 dari spesifikasi. Byte yang diurutkan adalah f81d4fae 7dec 11d0 a765 00a0c91e6bf6. Bidang versi ada di grup ketiga: 11d0 dalam hex adalah 0001 0001 1101 0000 dalam biner. 4 bits pertama adalah 0001, yaitu versi 1. Stempel waktu dibagi menjadi kelompok pertama, kedua, dan bagian dari grup ketiga: time_low adalah f81d4fae dalam desimal 4170404526, time_mid adalah 7des dalam desimal 32236, time_high adalah 1d0 dari grup ketiga setelah menghapus versi nibble dalam desimal 464. Menggabungkannya ke dalam nilai 60-bit menghasilkan angka yang mewakili interval 100-nanodetik sejak 1582.

Apa yang tidak tercakup dalam hal ini — opsi node acak yang ditawarkan oleh beberapa implementasi v1, yang mengurangi namun tidak menghilangkan kebocoran stempel waktu

Bidang simpul di grup keempat dan kelima adalah a765 00a0c91e6bf6, yang mengkodekan informasi mesin jika bit 0 menunjukkan keaslian. Jika bit paling tidak signifikan dari oktet pertama bidang simpul adalah nol, ini menunjukkan alamat IEEE yang sebenarnya; jika disetel ke satu, ini menunjukkan nilai pseudorandom yang dihasilkan untuk privasi. Dalam contoh ini, a765 dalam hex adalah 10100111 01100101 dalam biner; bit paling tidak signifikan adalah 1, jadi ini adalah pseudonode acak, bukan MAC yang sebenarnya. Namun, implementasi yang lebih lama terkadang menyimpan alamat MAC yang sebenarnya secara langsung, dan jika demikian, bidang simpul 48-bit diterjemahkan ke dalam pengenal kartu jaringan. IEEE memelihara registri awalan MAC; mengetahui bahwa kartu jaringan dimulai dengan awalan tertentu mempersempit produsen dan kemungkinan model komputer yang digunakan.

Kesimpulan: ketahui apa yang diungkapkan oleh ID Anda — generator ToolAcre mengambil setiap pengenal dari CSPRNG, sehingga tidak ada alamat MAC atau stempel waktu yang bocor

RFC 9562 versi 4 dan seterusnya dengan sengaja menghindari kebocoran ini dengan hanya menggunakan data acak dan bukan informasi yang dikodekan. Versi 4 UUID adalah 122 bits data acak secara kriptografis dengan 4 bits untuk kolom versi dan 2 bits untuk kolom varian. Membaca bagian-bagiannya tidak mengungkapkan apa pun kecuali bahwa UUID valid; tidak ada stempel waktu untuk didekode, tidak ada data mesin untuk diekstraksi. Versi 7 menyertakan stempel waktu untuk menyortir manfaat tetapi stempel waktu tersebut berasal dari zaman Unix yang familiar dan terstandarisasi, bukan nilai berbasis 1582 yang tidak jelas, dan spesifikasinya secara eksplisit mendokumentasikan bahwa informasi waktu ada dalam pengidentifikasi. Properti privasi pada dasarnya berbeda antar versi.