SolidusIdentity

Bir Kimlik Bilgisi İsteği QR Kodunu Taradığınızda Ne Oluyor

Tarama size kimin sorduğunu söylemiyor. Tarayıcı, kodun beklenen şekilde iyi biçimlendirilmiş JSON içerdiğini ve bir alanın did: ile başlayan bir dizgi olduğunu kontrol ediyor, ve isteyenin kimliği üzerindeki kontrolün tamamı budur.

Sayfanın geri kalanı taramanın ne yaptığıdır, kodun yaptığı sırayla.

Adım adım, koddan

  1. Kamera bir QR kodu okuyor. Bu gerçek bir kamera ve gerçek bir çözücüdür, tarayıcınızda çalışan getUserMedia ve jsQR kitaplığı. Burada hiçbir şey benzetim değil.
  2. Yük JSON olarak ayrıştırılıyor ve kendini bir solidus-credential-request olarak bildirmek zorunda. Başka her şey geri çevriliyor.
  3. Üç alan gerekiyor: did: ile başlayan bir isteyen tanımlayıcısı, bir isteyen adı ve istenen kimlik bilgisinin türü.
  4. Hesabınıza bekleyen bir istek yazılıyor, siz hiçbir şeyi kabul etmeden önce.
  5. Size kimin sorduğu ve ne istediği gösteriliyor, ve bir kimlik bilgisi ile belirli iddiaları seçiyorsunuz ya da reddediyorsunuz.
  6. Onay üzerine 30 günlük süre dolumu olan bir paylaşım kaydı oluşturuluyor.

3. adım bir doğrulama değil ve ona öyle demek yalan olurdu

did: bir önektir. Tanımlayıcı hiçbir zaman çözümlenmiyor, hiçbir zaman getirilmiyor ve bilinen verenler ya da doğrulayıcılar sicilinin hiçbirine karşı kontrol edilmiyor.

Bankanızdan olduğunu söyleyen bir QR kodu, bankanızdan olduğunu söyleyen bir QR kodudur. Tarama bunu doğru yapmıyor ve bu akışın devamındaki hiçbir şey de doğru yapmıyor.

Uç noktanın adı validate ve doğruladığı şey iletinin şeklidir, gönderenin kimliği değil. Bunlar farklı şeylerdir ve ad bu karışıklığa davet ediyor.

Ürünün bu konuda doğru yaptığı şey, eleştiriden önce, çünkü hak etti

Arka uç numara yapmıyor. Yanıtı, DID belgesi doğrulamasının ertelendiğini söyleyen açık bir yorumla birlikte yanlışa sabit kodlanmış bir doğrulama bayrağı taşıyor. Sessizce doğruya varsaymadı ve kimse sormasın diye alanı atlamadı.

Ve arayüz bayrağa uyuyor. Doğrulama rozeti yalnızca o bayrak doğruyken gösteriliyor, yani bugün hiçbir zaman. Ekranda yanlış bir güven işareti yok. Pek çok ürün "QR kodunu başarıyla ayrıştırdık" için yeşil bir kalkan gösterirdi, bu göstermiyor.

Doğru arıza kipi budur. Boşluk, kontrolün eksik olmasıdır, eksik bir kontrolün geçmiş gibi süslenmesi değil, ve bunlar sahip olunacak çok farklı türden problemlerdir.

Taramanın kendisi bir yazma

4. adım üzerinde durmaya değer. Kameranızı geçerli görünen bir koda doğrultmak, herhangi bir rıza ekranından önce hesabınıza bekleyen bir satır ekliyor. Size kapsamlanmış, kendi başına hiçbir şey yapmıyor ve onay/ret adımını adreslenebilir kılan şey o, makul bir uygulama seçimi, ve yine de istemediğiniz bir yazma. Meraktan on kod tararsanız, bekleyen on isteğiniz olur.

Onaylamanın gerçekte ne yaptığı ve ne yapmadığı

Onaylamak, isteğin durumunu güncelliyor ve bir kimlik bilgisi ile iddialar seçtiğinizde 30 gün sonra süresi dolan bir paylaşım kaydı ekliyor. Korumalar doğrudur: size ait olmayan bir istek "bulunamadı" döndürüyor ve artık bekleyen olmayan bir istek bir çakışma döndürüyor, dolayısıyla aynı şeyi iki kez onaylayamıyorsunuz.

Ve sonra hiçbir şey gönderilmiyor. Hiçbir sunum kurulmuyor, isteyene hiçbir ileti gitmiyor, hiçbir geri çağrı tetiklenmiyor. Bu akışın bitiş durumu veritabanımızdaki bir satırdır. Size QR kodunu gösteren kişi ondan hiçbir şey almıyor; ne alıyorlarsa, sizin ve onların ayarladığı başka bir yolla alıyorlar.

Arka ucu giden herhangi bir teslim için kontrol ettik ve bulamadık, aramanın koda ulaştığını doğrulayan bir kontrolle. Yani "tara ve paylaş" bugün "paylaşmayı kabul ettiğini kaydetmek için tara" demek.

İkinci bir akış var ve gerçekten teslim eden o

Yukarıdaki paragrafı hikâyenin tamamı olarak yayımlardık ve kendi ürünümüzü eksik tarif ederdi. Yalnızca arka uca bakan bir arama arka uç davranışını görüyor. Tarayıcı kodunu kontrol etmek farklı bir yüzey buldu, /present, ki orada bir doğrulayıcının isteği tarayıcı üzerinden değil bir bağlantı olarak varıyor ve açıklama doğrulayıcının kendi uç noktasına geri gönderiliyor.

Onunla ilgili iki şey gerçekten iyi kurulmuş, biri de sert bir sınırlama:

  • Geri çağrı, isteyenin alan adına bağlı. Yanıt adresi https olmak zorunda ve ana bilgisayar adı istekteki alan adıyla tam olarak eşleşmek zorunda, hem istek ayrıştırılırken hem de gönderme anında yeniden kontrol ediliyor, dolayısıyla bir açıklama başka bir ana bilgisayara yönlendirilemiyor. Koddaki yorum derinlemesine savunma iddia ediyor; uygulama yorumla eşleşiyor. Kontrol ettik, çünkü bir yorum kanıt değildir.
  • Açıklama sizin tarayıcınızda kuruluyor, bu tarayıcının zaten tuttuğu kimlik bilgisi malzemesinden.
  • Ki sınırlama da budur: bu tarayıcı onu tutmuyorsa, akış çalışamıyor. Onu sizin için kurmamızı sağlayacak hiçbir sunucu tarafı yedeği yok.

Sayfa ayrıca kanıtı nasıl üreteceğine karar vermek için cihazınızı ölçüyor. O ölçümü yayımlamıyoruz, ne burada ne başka yerde: tek bir tarayıcıdan gelen bir sayı bir başarım iddiası değildir ve onu bir iddiaya çevirmek tam olarak bu sitenin önlemek için var olduğu hamledir.

İki akış birbirine bağlı değil. Tarayıcı, teslim edeni sürmüyor. Buna karşı geliştirme yapıyorsanız, o ayrım bu sayfadaki en kullanışlı cümledir.

Kendiniz neyi kontrol edemezsiniz

Tarayıcı kimlik doğrulamasının arkasında, /qr-scanner oturum açmaya yönlendiriyor ve kasıtlı olarak sahte bir yol 404 döndürüyor, dolayısıyla yönlendirme, her şeyin yönlendirildiği değil sayfanın gerçek olduğu anlamına geliyor. Bu sayfa kod okuması kanıtıdır, kendiniz çalıştırın türünden değil.

İçerik planımız bu sayfayı /scan-to-share olarak adlandırıyor. Böyle bir rota yok: 404 döndürüyor. Gerçek yüzeyler /qr-scanner ve /share. Bu, bu üründe uygulamayla eşleşmeyen beşinci plan rotasıdır ve bunu sizi sessizce yönlendirmektense sayfada söylemeyi tercih ederiz.

Okumaya devam edin

Bir Kimlik Bilgisi İsteği QR Kodunu Taradığınızda Ne Oluyor · Solidus — Solidus Identity