- Bluesky hesabı belirli bir uygulamaya bağlı değildir; atproto tabanlı birden fazla uygulamada kullanılabilir ve DID (merkeziyetsiz tanımlayıcı), uygulamadan ayrılmış bir kimlik doğrulama temeli sağlar
- DID,
did:<method>:<identifier> biçimindedir ve DID Document içinde yer alan açık anahtarlar ile PDS konumu kullanılarak gönderi yazarıyla hesabın ilişkisi doğrulanır
did:web, alan adının /.well-known/did.json dosyasını sorgulayan basit bir yöntemdir; ancak DNS ve kayıt kuruluşu bağımlılığına, web sunucusu kesintilerine ve belge değişikliklerinin yansımasındaki gecikmelere açıktır
- Bluesky’nin oluşturduğu
did:plc, kimliği belirli bir alan adından ayırır ve işletim yükünü plc.directory üstlenir; ancak DNS yerine plc.directoryye güvenmek gerekir ve Bluesky’de blokzincir tabanlı DID yöntemleri gibi alternatifler kullanılamaz
- Kullanıcılar ek anahtar kaydı, anahtar döndürme ve kendi PDS’lerini çalıştırma yoluyla Bluesky’nin oluşturduğu anahtarları kaldırabilir ve kimliklerini fiilen doğrudan kontrol edebilir; bu da karmaşık anahtar yönetimini herkese zorunlu kılmadan isteyenlere seçim hakkı sunar
Bluesky hesabı ve DID tabanlı kimlik
- “Bluesky hesabı”, yalnızca Bluesky’de kullanılan bir hesap değil; ATmosphere içindeki çeşitli uygulamalarda kullanılabilen bir hesaptır
- Bluesky’nin ve diğer uygulamaların temel protokolü olan atproto, kullanıcının kim olduğunu göstermek ve giriş ya da gönderi yazarını doğrulamak için DID kullanır
- W3C’nin 2022’de standartlaştırdığı DID, uygulamalarda kimliğin temeli olarak kullanılabilen merkeziyetsiz bir tanımlayıcıdır
- DID’nin merkeziyetsizliği, tek bir kurumun geçerli DID türünü belirlemesi yerine kullanıcının kendi kimliğini doğrulamak için kullanacağı DID yöntemini seçebilmesinden gelir
- Ancak uygulamalar tüm DID yöntemlerini otomatik olarak işleyemez
- Her yöntem için destek kodunun ayrıca uygulanması gerekir
- Uygulama
foo yöntemini desteklemiyorsa did:foo:1243 sunulsa bile bunu yorumlayamaz
DID ve DID Document
- Örnek DID
did:plc:3danwc67lo7obz2fmdg6jxcr, iki nokta üst üste ile ayrılan üç bölümden oluşur
- Şema:
did
- Yöntem:
plc
- Yönteme özgü tanımlayıcı:
3danwc67lo7obz2fmdg6jxcr
- Bir DID’yi kullanmak için onu DID Document olarak çözümlemek gerekir
- DID Document, DID öznesinin ya da onun tarafından yetkilendirilmiş bir tarafın kendini doğrulamasına ve ilgili DID ile bağlantısını kanıtlamasına imkân veren kriptografik açık anahtarlar gibi verileri içerir
- Örnek belgede kimlik doğrulama için gerekli bilgiler bulunur
id: DID’nin kendisi
alsoKnownAs: at://steveklabnik.com
verificationMethod: Multikey türü ve publicKeyMultibase
service: AtprotoPersonalDataServer türünde PDS uç noktası
- Rastgele bir gönderinin belirli bir kullanıcı tarafından yazıldığı iddia edildiğinde, belgedeki doğrulama bilgileri kullanılarak bu iddianın doğru olup olmadığı kontrol edilebilir
- DID’yi belgeye çözümleme süreci, yönteme özgü standart tarafından tanımlanır
did:plc, PLC standardını izler
- Bluesky’nin desteklediği diğer yöntem olan
did:web, Web yöntemiyle çözülür
did:web nasıl çözülür
did:web kullanan kişi sayısı çok azdır, ancak yapısı basit olduğu için DID çözümleme sürecini anlamayı kolaylaştırır
- Liz Fong-Jones’un
did:web:lizthegrey.com tanımlayıcısı, yönteme özgü tanımlayıcı olan lizthegrey.com değerini aşağıdaki URL şablonuna yerleştirerek çözülür
https://<id>/.well-known/did.json
- Bu URL’den alınan DID Document şu bilgileri içerir
id: did:web:lizthegrey.com
alsoKnownAs: at://web.lizthegrey.com, did:plc:i4tfenpfog244rxry5uz4vtk
verificationMethod: atproto için Multikey açık anahtarı
serviceEndpoint: https://pds.lizthegrey.com
did:webin taşıdığı kısıtlar
did:web, DNS ve alan adı kayıt kuruluşlarına bağımlıdır
- Kayıt kuruluşu alan adını geri alırsa DID üzerindeki kontrol de kaybedilir
- Alan adı artık kullanılmazsa ya da süresi dolduktan sonra başka biri tarafından satın alınırsa kimlik de kaybedilebilir
- Kayıt kuruluşu hesabı ele geçirilip alan adı çalınırsa sonuç yine aynıdır
- DID Document’i sunan web sunucusunun sürekli çalışır durumda olması gerekir; sunucu durursa belge de alınamaz
- DID Document değişikliklerini istemcilere anında bildirmenin bir yolu da yoktur
- Uygulamalar eski belgeyi kullanmaya devam edebilir
- Belgenin güncellenmesi ile uygulamaların bunu yansıtması arasındaki gecikme, en güncel belge yeniden alınana kadar geçici sorunlara yol açabilir
did:plc kimliğin sürdürülme biçimini nasıl değiştiriyor
- Bluesky,
did:webin sorunlarını azaltmak için did:plc geliştirdi
did:plc, DID Document’i almak için tüm DID’yi aşağıdaki URL şablonuna yerleştirir
https://plc.directory/<did>
- URL sorgulama mantığı
did:web ile aynı olsa da işletim ve kimliği sürdürme biçimi farklıdır
- DID belirli bir alan adına bağlı olmadığından,
steveklabnik.com süresi dolup steve.klabnik.com alan adına geçilse bile aynı DID korunabilir
- Web sunucusunu kullanıcı yerine
plc.directory işlettiği için operasyonel yük azalır
- Güvenilmesi gereken taraf ortadan kalkmış değildir
did:webte DNS’e ve alan adı kayıt kuruluşlarına güvenmek gerekir
did:plcte ise plc.directorynin kimliği ele geçirmeyeceğine ve kendisinin ele geçirilmeyeceğine güvenmek gerekir
- Hem DNS’e hem de
plc.directoryye güvenilemeyeceğini düşünen kullanıcılar, isim çözümlemesi için blokzincir gibi alternatifler kullanan başka DID yöntemlerini seçebilir
- Ancak Bluesky bu yöntemleri desteklemediği için Bluesky uygulamalarında kullanılamazlar
Erişilebilirlik sorunu ve yeni DID yöntemleri
did:webi doğrudan kurmak, uzman olmayan kullanıcılar için külfetli işler gerektirir
- Alan adı kaydetmek ve bunun için sürekli ödeme yapmak gerekir
- Bir web sunucusu kurup DID Document için JSON yazmak gerekir
- Sunucunun sürekli çalışması gerekir
- Özel anahtarları saklamak ve güvenli biçimde yönetmek gerekir
- Bu süreç, sıradan bir web uygulamasına kaydolmaktan çok daha karmaşıktır; dolayısıyla uzman olmayan kullanıcıların da platformu kullanabilmesini hedefleyen Bluesky yaklaşımıyla örtüşmez
plc.directory ilgili işleri yönettiğinde kullanıcıların bu adımları doğrudan yapması gerekmez
did:webvh, did:webi genişleterek bazı dezavantajlarını gidermeyi amaçlayan ve 1.0 sürümüne ulaşmış bir yöntemdir; ancak burada ayrıntılı belirtimi karşılaştırma kapsamına alınmamıştır
Bluesky’de kimliğe doğrudan sahip olma yolu
- Varsayılan ayarlarda Bluesky kullanıcının anahtar çiftini oluşturur ve gizli anahtara erişebilir; bu yüzden bir bakıma kimliğin sahibi Bluesky sayılabilir
did:plc, kimliğe ek anahtar çiftleri kaydetmeye ve imza anahtarlarını döndürmeye imkân tanır
- Bluesky’nin oluşturduğu anahtar kaldırılabilir
- Kullanıcının kendisinin oluşturduğu bir anahtarla değiştirilebilir
- Anahtarı değiştirmek tek başına Bluesky altyapısından tamamen ayrılmak anlamına gelmez
- PDS’nin gönderileri imzalayabilmesi için kullanıcının anahtarını kullanması gerekir
- Bluesky tarafından yönetilen bir PDS kullanıldığında anahtar genellikle Bluesky altyapısında saklanır
- Bluesky ile kimliği ayırmak için önce kendi PDS’nizi çalıştırıp ardından anahtarı döndürmeniz gerekir
- Böylece anahtar kullanıcıya ait altyapıda saklanır
- Sonrasında Bluesky bu anahtarı kontrol edemez
- Kullanıcıların çoğu kendi PDS’sini ve anahtar yönetimini seçmese bile, isteyen kullanıcıların kimliklerine fiilen sahip olabilmesi önemli bir tasarım özelliğidir
- Doğrudan anahtar yönetimini tüm kullanıcılara zorunlu kılmak yerine, bunu isteyen kullanıcılara seçenek olarak sunmak çoğu kullanıcı için daha uygundur
1 yorum
Lobste.rs yorumları
did:plc:gibi sıradan insanların da kullanabilmesi gerekir; sahibi kâr amacı gütmeyen bir kuruluş olsa bile merkezi bir kuruma tamamen güvenip güvenmeyeceğimiz üzerine düşünmek gerekirKeybase’i yeniden uygularken W3C DID ve W3C Doğrulanabilir Kimlik Bilgileri’ni (VC) destekleyen bir proje geliştiriyorum. Amaç, bir kişinin insan olduğunu benzersiz ama gizli biçimde kanıtlayabilmesini ve kendi kontrolünde merkeziyetsiz bir kimliğe sahip olmasını sağlamak
https://foks.pub/
dindşeklinde kısaltıldığını duymuştum; bunun iş yerindeki bir alışkanlık mı yoksa yaygın yazım mı olduğunu bilmiyorumMastodon’daki instance’larla aynı şey değildir; AT ve ActivityPub kavramları bire bir, temiz bir şekilde eşleşmez
did:web, bir.well-knownsunucusu barındırmayı gerektiriyorsa ve veriler de neredeyse statikse, neden TXT kaydı gibi URL’ye benzer şekilde okunabilen, önbelleğe alınma olasılığı yüksek ve kazara kesintiye uğrama olasılığı düşük olan DNS’i doğrudan kullanmıyoruz?DNS bağımlılığı ve
did.jsongüncellemelerini kolayca algılayamama sorunu yine kalır, ancak amaç belirli bir alan adını bir kişinin kimliğiyle ilişkilendirmekse, bileşenleri en aza indirip doğrudan DNS işlevlerine bağlanmak daha iyi görünüyor. Bu yaklaşımın çalışmamasının ya da pratikte zor olmasının bir nedeni var mı merak ediyorumAncak gerçek kısıtlar biraz daha karmaşık: https://news.ycombinator.com/item?id=38419272
İki tane
did:dnsönerisi ya da taslağı da bulmak mümkün: https://danubetech.github.io/did-method-dns/ ve https://datatracker.ietf.org/doc/html/draft-mayrhofer-did-dns-01