SolidusIdentity

SD-JWT VC: Solidus'un Gerçekte Verdiği Kimlik Bilgisi Biçimi

Bir IETF taslağıdır, yayımlanmış bir RFC değil, ve onu gerçekleştirimimiz denetlenmemiştir.

Ve doğru seçimdi, ki bu cümlenin diğer yarısıdır: SD-JWT VC, Avrupa cüzdan ekosisteminin üzerinde birleştiği biçimdir, ve verdiğimiz şey, bizim işbirliğimiz olmadan uyumlu herhangi bir doğrulayıcı tarafından okunabilir, bu oturumda temiz bir dizinden doğrulandı.

Biçimin ne olduğu

Tek tek iddiaların tuzlanmış özetlerle değiştirildiği imzalı bir JSON jetonu, değerler ayrı açıklamalar olarak yanında sunulmuş hâlde. Tutan, hangi açıklamaları vereceğini seçiyor; doğrulayıcı özetleri yeniden hesaplıyor ve imzanın içindekilerle eşleştiklerini denetliyor.

İmza, değerleri değil özetleri kapsıyor, ki bir tutanın ondan üç iddiayı hiçbir şeyi geçersiz kılmadan açıklamasını sağlayan şey budur. Düzenek, ve özetin hâlâ neyi sızdırdığı, burada.

Sıkışık serileştirme <jws>~<d1>~<d2>~ gibi görünüyor: tek bir jeton, açıklamaların arasında tildeler, ki bir karekodu ve bir HTTP başlığını daha ağır biçimlerin atlatamadığı yerde atlatmasının sebebi budur.

"Taslak"ın sizin için gerçekte ne anlama geldiği

draft-ietf-oauth-sd-jwt-vc 17. taslakta. Bu gerçek, benimsenmiş, geniş gerçekleştirimi olan çalışma grubu işidir, ve yayımlanmış bir RFC değildir, ve hâlâ değişebilir.

Satıcıların nadiren ifade ettiği pratik sonuçlar:

  • Farklı taslaklara karşı yazılmış iki gerçekleştirim birlikte çalışmayabilir. Bizimki belirli bir revizyonu izliyor; herkesinki de öyle, ve numaralar her zaman aynı değil.
  • Taslak numarası olmayan bir "SD-JWT VC destekliyor" iddiası bir iddia değildir. Hangi revizyon olduğunu sorun. Bize sorun.
  • Kararlılık, herhangi bir satıcıya değil çalışma grubuna oynanan bir bahistir, bizim oynadığımız bahis dâhil.

Gerçekleştirimimizin özgül olarak ne yaptığı

Yayımlanmış pakette doğrulanmış hâliyle, ileri sürülmüş değil:

  • İmzalama EdDSA'dır. Açıklama özetleme yalnızca SHA-256'dır, özetleyici başka herhangi bir algoritmada istisna fırlatıyor. Bu kriptografik esneklik değildir; tek bir sabit seçimdir, ve gelecekteki bir göç bir yapılandırma değil bozucu bir değişiklik olurdu.
  • Kimlik bilgisi türü opak bir dizgedir ve uzak tür üstverisi kapalıdır, dolayısıyla bir doğrulayıcı, türün verenin söylediği anlama geldiğini teyit edemiyor.
  • Tutan bağlaması ve bir iptal referansı, ikisi de isteğe bağlıdır, ve ilkini atlamak hamiline yazılı bir kimlik bilgisi veriyor, ki öntanımlı olan budur.
  • İç içe nesneler kendiliğinden açılmıyor, dolayısıyla verme sırasında noktalı yollar verilmedikçe bir adres ya hep ya hiçtir.

Davranış tek bir kurulumla denetlenebilir:

$ npm i @solidus-network/[email protected]        # clean directory, no account

Yanlış bir veren anahtarı "Verify Error: Invalid JWT Signature" döndürüyor. Süresi dolmuş bir kimlik bilgisi "Verify Error: JWT is expired" döndürüyor. İkisi de bu oturumda çalıştı, geçen durumu anlamlı kılan şey kontrollerdir.

Ve hiç standart olmayan bir biçimimiz

Canlı verenimiz iki kimlik bilgisi yapılandırması duyuruyor. Biri vc+sd-jwt. Diğeri solidus-bbs-v2.

İkincisi bizim. Bir IETF taslağı değil, bir W3C herhangi bir şeyi değil, ve özellikle Solidus'a karşı yazılmamış hiçbir cüzdan onunla ne yapacağını bilmeyecek.

Onu adlandırıyoruz, çünkü kendi tescilli biçimimizi sessizce atlayan bir standartlar sayfası, bu sitenin kaçınmak için var olduğu şeyi yapıyor olurdu. Var olmasının sebebi, bağlantılandırılamaz yolumuzun standart biçimlerin henüz tanımlamadığı bir zarfa ihtiyaç duymasıdır, gerçek bir mühendislik sebebi, ve yine de bir bağımlılık yüzeyi (satıcıya bağımlılığın gerçekte neye benzediği).

Buraya birlikte çalışabilirlik için geldiyseniz, standart olanı kullanın.

Bu biçimi seçmenin bize ne kazandırdığı, dürüstçe

  • Bizsiz okunabilirlik. Uyumlu bir doğrulayıcının verenin açık anahtarına ve jetona ihtiyacı var. Solidus'a hiçbir zaman bir API çağrısı yok.
  • Avrupa ekosisteminin gittiği yerle hizalanma. Bu, bir kimlik bilgisi biçimi icat etmeye karşı gerçek, bilinçli bir üstünlüktür, ve o çerçeve altında tanınmakla aynı şey değildir, ki tanınmıyoruz.
  • Taşınacak kadar küçük. Karekodlar ve başlıklar, çok megabaytlık yükler değil.

Ne kazandırmadığı: bağlantılandırılamazlık. Aynı kimlik bilgisinin iki sunumu aynı veren imzasını taşıyor ve önemsiz biçimde ilişkilendirilebilir. Bağlantılandırılamaz yol farklı, denetlenmemiş bir düzenektir, ve ikisini birbirine karıştırmak bu alandaki en yaygın hatadır.

Okumaya devam edin

SD-JWT VC: Solidus'un Gerçekte Verdiği Kimlik Bilgisi Biçimi · Solidus — Solidus Identity