Passkey Kayıtları İçin Taşınabilir Format ve Go API Önerisi
WebAuthn passkey kayıtları için taşınabilir bir string formatı ve Go tabanlı stateless API önerisi; kimlik bilgisi depolamada opaklık ve taşınabilirlik.
WebAuthn spesifikasyonu, kimlik bilgisi kayıtlarını soyut bir yapı olarak tanımlıyor; ancak sunucu tarafında bunu nasıl saklayacağı konusunda net bir standart yok. Google ve Adam Langley gibi kaynaklar farklı tablo şemaları önerse de, uygulamalar arasında taşınabilirlik sağlayan ortak bir kod çözme biçimi bulunmuyor. c2sp.org/passkey-record önerisi, Password Hashing Competition string sözdizimini ödünç alarak ve mevcut authenticator data CBOR kodlamasını yeniden kullanarak, passkey kayıtlarını parola hash'leri gibi opak string'ler olarak ele almayı öneriyor.
Bu yaklaşımda uygulama sadece kullanıcı hesabına bağlı passkey kayıtlarını takip etmekle sorumlu oluyor; asıl WebAuthn doğrulama mantığı kütüphaneye bırakılıyor. Bu sayede, alt yapıdaki kütüphane veya backend dili değişse bile kimlik bilgileri veritabanı korunabiliyor. Ayrıca yazar, bu kayıt formatı üzerine kurulu, durum tutmayan (stateless) bir crypto/passkey Go paketi API'si taslağı sundu; bu API Go 1.28 için resmi bir öneri haline gelmeden önce topluluktan geri bildirim topluyor.
Yazı ayrıca ilginç bir güvenlik noktasına da değiniyor: Credential ID üzerinde birincil anahtar indeksi tutmamak, saldırganların çakışan kimlik bilgisi ID'leri enjekte ederek başka hesaplara sızma saldırılarını tamamen ortadan kaldırıyor — çünkü giriş denemeleri zaten kullanıcı ID'si taşıyor ve doğrulama o kullanıcının kayıtlarına karşı yapılıyor.