- Akun Bluesky tidak terikat pada aplikasi tertentu dan dapat digunakan di berbagai aplikasi berbasis atproto; DID (decentralized identifier) menyediakan fondasi verifikasi identitas yang terpisah dari aplikasi
- DID memiliki format
did:<method>:<identifier>, dan keterkaitan antara penulis postingan dan akun diverifikasi menggunakan kunci publik dan lokasi PDS yang terdapat dalam DID Document
did:web adalah metode sederhana yang mengambil /.well-known/did.json pada sebuah domain, tetapi rentan terhadap ketergantungan pada DNS dan registrar, penghentian server web, serta keterlambatan propagasi perubahan dokumen
did:plc yang dibuat Bluesky memisahkan ID dari domain tertentu dan membuat plc.directory menangani beban operasional, tetapi alih-alih DNS kita harus memercayai plc.directory, dan di Bluesky metode DID berbasis blockchain dan sejenisnya tidak dapat digunakan
- Pengguna dapat menghapus kunci yang dibuat Bluesky dan secara nyata mengendalikan identitas mereka sendiri melalui pendaftaran kunci tambahan, rotasi kunci, dan menjalankan PDS sendiri; ini tidak memaksa semua orang mengelola kunci yang rumit, tetapi memberi pilihan bagi yang menginginkannya
Akun Bluesky dan identitas berbasis DID
- “Akun Bluesky” bukanlah akun yang hanya dipakai di Bluesky, melainkan akun yang dapat digunakan di berbagai aplikasi dalam ATmosphere
- atproto, protokol dasar untuk Bluesky dan aplikasi lain, menggunakan DID untuk menunjukkan siapa pengguna dan untuk memverifikasi login atau penulis postingan
- DID yang distandardisasi W3C pada 2022 adalah identifier terdesentralisasi yang dapat digunakan aplikasi sebagai fondasi identitas
- Sifat terdesentralisasi DID terletak pada kenyataan bahwa, alih-alih satu institusi menentukan jenis DID yang valid, pengguna dapat memilih metode DID untuk memverifikasi identitas mereka sendiri
- Namun aplikasi tidak otomatis dapat menangani semua metode DID
- Kode dukungan harus diimplementasikan secara terpisah untuk tiap metode
- Jika aplikasi tidak mendukung metode
foo, maka meski did:foo:1243 diajukan, aplikasi tidak dapat menafsirkannya
DID dan DID Document
- Contoh DID
did:plc:3danwc67lo7obz2fmdg6jxcr terdiri dari tiga bagian yang dipisahkan titik dua
- Skema:
did
- Metode:
plc
- Identifier khusus metode:
3danwc67lo7obz2fmdg6jxcr
- Untuk menggunakan DID, DID tersebut harus di-resolve menjadi DID Document
- DID Document memuat data seperti kunci publik kriptografis agar subjek DID atau pihak yang diberi delegasi dapat mengautentikasi diri dan membuktikan keterkaitannya dengan DID tersebut
- Dokumen contoh mencakup informasi yang diperlukan untuk verifikasi identitas
id: DID itu sendiri
alsoKnownAs: at://steveklabnik.com
verificationMethod: tipe Multikey dan publicKeyMultibase
service: endpoint PDS bertipe AtprotoPersonalDataServer
- Ketika sebuah postingan sembarang mengklaim ditulis oleh pengguna tertentu, informasi verifikasi dalam dokumen dapat digunakan untuk memeriksa kebenaran klaim tersebut
- Prosedur untuk menafsirkan DID menjadi dokumen ditentukan oleh standar masing-masing metode
did:plc mengikuti standar PLC
- Metode lain yang didukung Bluesky,
did:web, ditafsirkan dengan metode Web
Cara did:web di-resolve
- Sangat sedikit orang memakai
did:web, tetapi strukturnya sederhana sehingga proses resolve DID mudah dipahami
did:web:lizthegrey.com milik Liz Fong-Jones ditafsirkan dengan memasukkan lizthegrey.com, identifier khusus metodenya, ke dalam template URL berikut
https://<id>/.well-known/did.json
- DID Document yang diterima dari URL tersebut memuat informasi berikut
id: did:web:lizthegrey.com
alsoKnownAs: at://web.lizthegrey.com, did:plc:i4tfenpfog244rxry5uz4vtk
verificationMethod: kunci publik Multikey untuk atproto
serviceEndpoint: https://pds.lizthegrey.com
Keterbatasan yang dimiliki did:web
did:web bergantung pada DNS dan registrar domain
- Jika registrar menarik kembali domain, kontrol atas DID juga hilang
- Identitas juga bisa hilang jika domain tidak lagi digunakan, atau setelah kedaluwarsa dibeli orang lain
- Hal yang sama berlaku jika akun registrar diretas dan domain diambil alih
- Server web yang menyediakan DID Document harus terus dijalankan, dan jika server berhenti, dokumen juga tidak dapat diambil
- Tidak ada cara untuk segera memberi tahu klien bahwa DID Document telah berubah
- Aplikasi dapat terus menggunakan dokumen yang sudah usang
- Karena jeda antara pembaruan dokumen dan penerapannya oleh aplikasi, masalah sementara dapat terjadi sampai dokumen terbaru diambil lagi
Bagaimana did:plc mengubah cara mempertahankan identitas
- Bluesky mengembangkan
did:plc untuk mengurangi masalah pada did:web
did:plc mengambil DID Document dengan memasukkan seluruh DID ke dalam template URL berikut
https://plc.directory/<did>
- Sama seperti
did:web, metode ini mengambil URL, tetapi cara operasi dan pemeliharaan identitasnya berbeda
- DID tidak terikat pada domain tertentu, sehingga meski
steveklabnik.com dibiarkan kedaluwarsa dan dipindahkan ke steve.klabnik.com, DID yang sama tetap dapat dipertahankan
- Operasi server web ditangani
plc.directory atas nama pengguna, sehingga beban operasional berkurang
- Namun objek kepercayaan itu sendiri tidak hilang
- Pada
did:web, kita harus memercayai DNS dan registrar domain
- Pada
did:plc, kita harus memercayai bahwa plc.directory tidak akan mengambil ID dan tidak akan diambil alih
- Pengguna yang menganggap DNS maupun
plc.directory tidak dapat dipercaya dapat memilih metode DID lain yang me-resolve nama melalui blockchain dan sebagainya
- Namun karena Bluesky tidak mendukung metode semacam itu, metode tersebut tidak dapat digunakan dalam aplikasi Bluesky
Masalah aksesibilitas dan metode DID baru
- Untuk mengatur
did:web sendiri, pengguna non-ahli harus melakukan pekerjaan yang membebani
- Mendaftarkan domain dan terus membayar biayanya
- Menyiapkan server web dan menulis JSON untuk DID Document
- Menjaga server tetap berjalan
- Menyimpan dan mengelola private key dengan aman
- Proses ini jauh lebih rumit daripada pendaftaran aplikasi web biasa, sehingga tidak sejalan dengan tujuan Bluesky untuk memungkinkan pengguna non-ahli memakai platformnya
- Jika
plc.directory mengelola pekerjaan terkait, pengguna tidak perlu melakukan langkah-langkah ini sendiri
did:webvh adalah metode yang memperluas did:web untuk menutupi sebagian kelemahannya dan telah mencapai 1.0, tetapi spesifikasi detailnya tidak termasuk dalam perbandingan ini
Cara memiliki identitas sendiri secara langsung di Bluesky
- Dalam konfigurasi default, Bluesky membuat pasangan kunci pengguna dan dapat mengakses secret key, sehingga dalam arti tertentu Bluesky dapat dianggap memiliki identitas tersebut
did:plc dapat mendaftarkan pasangan kunci tambahan pada ID dan merotasi signing key
- Kunci yang dibuat Bluesky dapat dihapus
- Kunci itu dapat diganti dengan kunci yang dibuat langsung oleh pengguna
- Mengganti kunci saja tidak sepenuhnya memisahkan pengguna dari infrastruktur Bluesky
- Agar PDS dapat menandatangani postingan, PDS harus menggunakan kunci pengguna
- Jika menggunakan PDS yang dikelola Bluesky, biasanya kunci disimpan di infrastruktur Bluesky
- Untuk memisahkan identitas dari Bluesky, pengguna harus menjalankan PDS sendiri lalu merotasi kunci
- Kunci disimpan di infrastruktur milik pengguna
- Setelah itu, Bluesky tidak dapat mengendalikan kunci tersebut
- Meskipun sebagian besar pengguna tidak memilih menjalankan PDS sendiri dan mengelola kunci, fakta bahwa pengguna yang termotivasi dapat benar-benar memiliki identitasnya adalah sifat desain yang penting
- Daripada memaksa semua pengguna mengelola kunci sendiri, pendekatan yang memungkinkan pengguna yang menginginkannya memilih opsi tersebut lebih tepat bagi sebagian besar pengguna
1 komentar
Pendapat di Lobste.rs
did:plc:, dan meski dimiliki organisasi nirlaba, tetap perlu dipikirkan apakah otoritas pusat bisa dipercaya sepenuhnyaSaya sedang mengembangkan proyek yang mengimplementasikan ulang Keybase sambil mendukung W3C DID dan W3C Verifiable Credentials (VC). Tujuannya adalah membuktikan bahwa seseorang itu manusia secara unik namun tetap privat, dan membuat mereka memiliki identitas terdesentralisasi yang mereka kendalikan sendiri
https://foks.pub/
dindyang malah lebih membingungkan; saya tidak tahu apakah itu hanya kebiasaan di tempat kerja saya atau memang penulisan yang umumIni tidak sama dengan instance Mastodon, dan konsep di AT serta ActivityPub tidak berkorespondensi satu banding satu secara rapi
did:webmengharuskan hosting server.well-knowndan datanya juga nyaris statis, mengapa tidak langsung menggunakan DNS yang, seperti record TXT, bisa dibaca mirip URL, kemungkinan besar di-cache, dan kecil kemungkinan berhenti secara tidak sengaja?Ketergantungan pada DNS dan masalah bahwa pembaruan
did.jsontidak mudah dideteksi memang tetap ada, tetapi jika tujuannya adalah menghubungkan domain tertentu dengan identitas seseorang, rasanya lebih baik meminimalkan komponen dan terhubung langsung ke fungsi DNS. Saya penasaran apakah ada alasan mengapa pendekatan ini tidak bekerja atau sulit diterapkan di dunia nyataNamun batasan nyatanya sedikit lebih rumit: https://news.ycombinator.com/item?id=38419272
Saya juga menemukan dua usulan atau draf
did:dns: https://danubetech.github.io/did-method-dns/ dan https://datatracker.ietf.org/doc/html/draft-mayrhofer-did-dns-01