4 puan yazan GN⁺ 2024-01-01 | 1 yorum | WhatsApp'ta paylaş
  • Bir sistem içinde uzun vadeli hesap kimliği oluştururken, OIDC bir e-posta adresi döndürüyor diye bunu kalıcı kimlik olarak kullanmak; değişiklik ve yeniden kullanım sorunlarını birlikte üstlenmek anlamına gelir
  • E-posta adresleri, aynı kurum içinde bile ad veya giriş bilgisi gibi değişebilir; bu yüzden hesabın temel referansı olmaya yeterince stabil değildir
  • Eski adrese e-posta erişimi veya yönlendirme sürse bile, bu adresin OIDC kimlik doğrulaması gibi e-posta dışı amaçlarda çalışmaya devam edeceğinin garantisi yoktur
  • Hesap kurtarma için e-posta adresi gerekebilir, ancak kimlik doğrulama sistemi ayrı, benzersiz ve kalıcı bir ID sağlıyorsa iç kimlik olarak bu değer kullanılmalıdır
  • Kullanıcıya görünmeyen bir değer olsa bile, hesap içi tanımlayıcıyı anlamsız bir ID olarak tutmak uzun vadeli işletim ve güvenlik açısından daha basittir

E-posta adreslerini kalıcı ID olarak kullanmak istemenin nedeni

Değişebilen adresler temel referans olmaya uygun değildir

  • En büyük sorun, e-posta adreslerinin değişebilmesidir
    • Aynı kurum içinde bile bir kişinin e-posta adresi değişebilir
    • Bu, kişinin günlük hayatta kullandığı adının veya giriş bilgisinin değişmesiyle benzer nedenlerle olabilir
    • Kurum tarafından atanmış e-posta adreslerinin değiştirilmesini veya yeniden verilmesini reddetmek, birçok yerde hukuken sürdürülmesi zor olacak kadar katı olabilir
  • Eski e-posta adresi tamamen ortadan kalkmasa bile, kalıcı tanımlayıcı olarak yine de yetersizdir
    • Eski adrese erişim veya yönlendirme devam ediyor olabilir
    • Yine de eski adres, OIDC kimlik doğrulaması gibi e-posta dışı kullanımlarda çalışmayı sürdüremeyebilir
    • Kullanıcılar, rahatsız edici olabilecek eski e-posta adresi yerine mevcut yeni adreslerini kullanmak ister

Yeniden kullanım ve kurtarma e-postası ayrı ele alınmalıdır

  • Daha küçük ama gerçek bir sorun da, kurumun e-posta adreslerini yeniden kullanmayacağını garanti etmemesidir
    • Genel olarak yeniden kullanılabilirler
    • Özellikle tercih edilen adresler, etkili birinin istemesi halinde istisnai olarak yeniden kullanılabilir veya başka birine atanabilir
  • Hesap kurtarma kayıtlı e-posta adresi üzerinden yapılacaksa, e-posta adresini saklamak gerekebilir
    • Ancak OIDC gibi teorik olarak benzersiz ve kalıcı bir iç ID varsa, iç kimlik olarak bu kullanılmalıdır
  • Hesap kurtarma için e-posta saklanması gerekse bile, hesabın iç tanımlayıcısı anlamsız bir ID olmalıdır
    • Bu değer kullanıcıya gösterilmese bile, uzun vadede işletimi daha basit hale getirir
  • E-posta adresine gereğinden fazla anlam yüklemek, güvenlik sorunlarını da içinde barındırabilir

1 yorum

 
GN⁺ 2024-01-01
Hacker News yorumları
  • İyi bir kimlik tanımlayıcısı diye bir şey yok
    E-posta değişir, eski e-postaya erişim hakkı da kaybedilebilir
    Kullanıcı adlarından da hoşlanmayan çok kişi var; user53267 gibi anlamsız benzersiz bir ad yerine benzersiz olmayan bir ad seçmek istiyorlar
    Cihazlar da kaybolduğu için çerezde gizli bir UUID saklamak ya da yalnızca cihazın passkey'lerini kullanmak da çözüm değil
    İdeal bir çözüm yok; birden fazla yöntemi karıştırmak gerekiyor. Bazıları için e-posta uzun süre istikrarlı kalır ve iyi bir kimlik tanımlayıcısıdır; başkaları içinse kullanıcı adı istikrarlıdır ve onu tercih ederler. Ancak on yıllar bir yana, birkaç yıldan fazla aynı ana cihazı kullanan çok az kişi gördüğüm için cihaz tabanlı kimlik belirleme muhtemelen pek iyi çalışmayacak
    Bu özellikle iş e-postası first.last@company.com biçiminde sıkça ortaya çıkıyor. Pek çok tedarikçi yazılımı Sign in with Google kullanıyor ve bu e-posta adresini tedarikçi uygulamasının içinde tanımlayıcı olarak saklıyor
    Evlilik, boşanma, geçiş süreci, kültür değiştirme, yeni bir ad seçme gibi nedenlerle adlar değişir, e-posta adresleri de değişir
    Belki OIDC gibi şeyler için kullanıcı adı değiştirme standart API'si ve e-posta adresi değiştirme standart API'si gibi yeni uzantılara ihtiyaç vardır

    • Erişebildiğim en eski e-posta 20 yıldan eski. Şu an kullanmıyorum ama bugüne kadarki herhangi bir telefon numaramdan ya da fiziksel adresimden daha eski
      Resmî kimlik ya da sosyal güvenlik numarası gibi kamusal tanımlayıcılar dışında bundan daha iyisini yapmak zor görünüyor
    • İnsanların her şeyi kaybedip yeni bir hayata başlama hakkı da var. Sadece birkaç on yıl önce bu gerçekten mümkün olan bir şeydi
    • OIDC, sub claim'inin yeniden atanamayacak ve benzersiz olması gerektiğini zaten şart koşarak bu sorunu ele alıyor: https://openid.net/specs/openid-connect-core-1_0.html#IDToke...
      Elbette bu, ID token'ın sub alanına e-posta adresi konmaması gerektiği anlamına geliyor
    • Bu tür e-posta değişiklikleri içinde en “sevdiğim” örnek, sözleşmeli çalışan eki değişikliği gibi kendi kendine yaratılmış sorunlar
      Çalışana dönüştürüldüğünde tamamen yeni bir hesap oluşturulması gereken bir şirket gördüm; basit ve birleşik bir yetki sistemi olmadığı için, dönüşümden hemen sonra bir önceki güne kadar eriştiği sistem yetkilerini geri almak yaklaşık 3 hafta sürdü
      Daha da komiği, o şirketin müşterilere karmaşık hesap sistemleri sunma konusunda çok iş yapması ve bu tür sorunları kolayca ele alan haricî bir kimlik sistemine de sahip olmasıydı. Ama o haricî kimlik sistemini bakımını yapan iç çalışanlara uygulamıyorlardı
    • Discord'un eski yöntemi, yani e-posta ile görünen adı ayrı tutan yapı hoşuma gidiyordu
      Herkesin yanında bir sayı olduğu için sayının pek bir anlamı yoktu. Benzersiz hesap ID'sine geçilince biraz üzüldüm; neden değiştirdiklerini hâlâ merak ediyorum
  • Bir birey olarak bu sorunu ele almanın en iyi yaklaşımı ne olabilir?
    Gmail, yapay zeka algoritmaları yüzünden aniden kilitlenebilir ya da hesap yasaklanabilir; bir şey ters giderse de başvurulabilecek bir telafi yolu yok
    Yahoo kısa süre önce giriş yaparken 15 yıldır erişemediğim etkin olmayan bir e-posta ile doğrulama yapmamı istediği için erişimi kaybettim. Şans eseri e-posta istemcisine erişebiliyordum, bu sayede önemli hesapları taşıyabildim
    Yahoo/AOL/Tutanota/Protonmail/ve daha pek çoğu, yeterince sık giriş yapmazsanız hesabı otomatik olarak siliyor. Protonmail henüz yapmıyor ama şartları buna izin veriyor
    Kendi kendine barındırma da en başta tüm altyapı için e-posta gerektiriyor. O e-postaya erişimi kaybederseniz ödeme bildirimlerini de kaçırabilir, hosting hesabınızı da kaybedebilirsiniz. IMAP desteklemediği için neredeyse hiç kontrol etmediğim bir e-postaya ödeme bildirimleri gidiyordu ve alan adımı kaybetmenin eşiğinden döndüm. Profesyonel bir sistem yöneticisi değilseniz ve bakım için yeterli zamanınız yoksa hack'lenme riski de artıyor
    Duo push, telefon bozulursa biter; SMS doğrulamada ise telefonun kırılması, tarifeye erişimi kaybetme, içeriden bir çalışanın kod sızdırması gibi sorunlar var
    Sonunda üniversite Gmail adresimi kullanmaya karar verdim. Mezunların da bunu koruyabileceğine söz verdiler; bir şey ters giderse — muhtemelen telefonu kaybedip iki aşamalı doğrulamayı yitirmek gibi — makul bir mezun destek merkezi var
    Bir yerlerde konuşabileceğiniz insan destek kanalı mutlaka gerekiyor. Yine de bunun en iyi seçenek olduğundan emin değilim ve hâlâ Google tarafında bir risk kalıp kalmadığını merak ediyorum

    • Atladığın en iyi çözüm, kendi alan adını ve Gmail gibi barındırılan bir e-posta hizmetini kullanmak
      Söylediğin gibi kilitlenirsen “sadece” sağlayıcıyı değiştirirsin; en fazla birkaç saatlik e-postayı kaybedersin
    • iCloud nasıl olur? Teorik olarak hesabın yasaklanması mümkün olabilir, ama en azından Apple'da genelde bir telafi yolu olduğu ve bir insanla konuşabildiğin hissi var
  • E-postanın kalıcı tanımlayıcı olarak iyi olmadığına katılıyorum. Ancak tanımlamanın bir parçası olarak telefon numarası kullanmak daha da kötü
    Kendi alan adımla neredeyse 20 yıldır aynı e-postayı kullanıyorum, ama aynı sürede telefon numaram herhâlde 12 kez değişti. Web sitelerinin eski numarayla iki aşamalı doğrulamayı açık bıraktığını ya da en başta o siteye eski numarayı kaydettiğini unutanları sık görüyorum
    Yurt dışında yaşarken hâlâ o numaraya giriş kodu gönderen siteler yüzünden ve numarayı bırakırsam güncellemeyi unuttuğum ya da ABD numarası gerektirdiği için değiştiremediğim önemli hizmetlere erişimi kaybetmekten korktuğum için AT&T’ye her ay yaklaşık 150 dolar vergi ödeyerek ABD numaramı tutuyorum

    • Numarayı DIDww gibi bir VoIP sağlayıcısına taşırsanız aylık 2,50 dolara koruyabilirsiniz; isterseniz gelen SMS’leri gelen kutunuza da yönlendirebilirsiniz
      Daha sonra bu numarayı yeniden bir mobil hesapta kullanmak isterseniz istediğiniz operatöre geri taşırsınız
    • Yurt dışında kullanmak için ABD numarası tutmaya bu kadar çok ödemenize gerek yok
      Mümkün olan iki aşamalı doğrulamaları Google Authenticator gibi bir uygulamaya çevirin, numarayı da Google Voice’a taşırsanız eski numaraya gelen SMS’leri ücretsiz alabilirsiniz
      Google’ı hiç işin içine katmak istemiyorsanız zaman tabanlı başka birçok kimlik doğrulama uygulaması var; SMS için de www.tossabledigits.com’u kullanabilirsiniz
    • Neden bu kadar çok ödediğinizi anlamıyorum. Numarayı bir VoIP sağlayıcısına taşırsanız ayda birkaç dolara olur
      Normal cep telefonu hizmeti olarak bakınca da aşırı bir tutar. İki hat için ayda 100 dolar bile ödemiyorum
    • VoIP’ye taşımayı denemeniz gerektiğine katılıyorum
      Eskiden taşınırken kişisel ofis telefon numaram yeni bölgede izinli değildi ama VoIP hesabına taşıyabildiğim için şanslıydım
      O zamanlar internet yavaştı; bir süre Ethernet telefon adaptörü kullandım, sonra bu numarayı yalnızca gelen aramalar için kullandım. Sesli aramalar ve faksların tamamı e-postaya yönlendiriliyor
      20 yılı aşkın süredir sorunsuz çalışıyor. Bağlanacak cihaz olmadığı için yıllık maliyeti de oldukça düşük
      Bir gün bir telefon bağlayıp modern internetten yararlanabilirim ama şu anki yöntemi seviyorum ve belirli bir konuma bağlı olmaması hoşuma gidiyor
    • Operatör değiştirseniz bile telefon numaranızı yanınızda götürebilirsiniz. E-posta adresi için bu geçerli değil
  • Benim deneyimim de aynı. Kişisel olarak en iyisinin rastgele UUID olduğunu düşünüyorum
    Kullanıcının ilk e-postasının hash’i bile ideal değil. Yalnızca salt kullanmak yeterli olmayabilir ve başkaları herhangi bir giriş e-postasını güvenle hash’leyebileceklerini varsayabilir

    • Veritabanı derslerinde öğrendiğimiz doğal anahtar gibi şeylerin mantıklı olduğu durumlar gerçekten var mı?
      Pratikte birincil anahtar olarak her zaman otomatik artan tamsayı ya da rastgele string/UUID kullanıyorum
    • Bir tanımlayıcının “kalıcı” olacağını garanti etmenin tek yolu, insanların onu değiştirmesi için hiçbir neden kalmayacak şekilde seçmektir
      Telefon numarası, e-posta adresi, nüfus kimliği türü ulusal ID, ad, parmak izi gibi insanların önem verdiği gerçek dünya özellikleriyle hiçbir ilişkisi olmamalı
      Rastgele string bu koşula tam uyar. Sıralı tamsayı da fena değil ama tahmin edilmesi kolay olduğundan ek güvenlik önlemleri gerekebilir
    • UUID yerine sıralı UID’yi tercih ederim, ama temel nokta yine aynı
  • Açık anahtarlı e-posta adreslerini desteklemeye ne dersiniz? Örneğin . gibi bir şeyle . gibi bir şeyi eşdeğer kabul etmek gibi
    Biriyle kayıt olduktan sonra diğeriyle de giriş yapabilmeyi veya hesap kurtarabilmeyi sağlar. Google beni yasaklasa ya da Hotmail batsa bile başka bir hizmete gidip özel anahtarla doğrulanarak aynı hesabı açabilirim
    Elbette kullanışlı bir ad kullanmak için bir takma ad süreci gerekir, ama e-posta istemcisinin böyle adresleri eşlemesi ya da en azından açık anahtarla birlikte takip etmesi gerekecek gibi
    Uçtan uca şifreli e-postayı araya sokmak için de bir vesile olabilir. Bu, büyük ölçekte neredeyse hiç yerleşmedi
    Gerçekten çalışması için büyük oyuncuların desteklemesi gerekir, ama hızlıca düşününce oldukça sağlam görünüyor. Henüz kimsenin desteklememesi dışında

    • Bu başlıkta Decentralized Identity Foundation’dan hâlâ söz edilmemiş olmasına şaşırdım: https://identity.foundation/
      Sağlayıcılara veya merkezi otoritelere bağlı olmadan, kimliğinize kendinizin sahip olduğu şekilde web’de tanımlanmak ve iletişim kurmak için yeni yöntemler geliştiriliyor
  • Önceki enerji tedarikçim British Gas (Centrica’ya ait), bir e-posta adresinin birden fazla gerçek adreste kullanılmasına izin vermiyordu
    Taşındıktan sonra çevrimiçi hesabı “kurmaya” çalıştığımda, mevcut adres ayrıntılarını her görüntülediğimde HTTP 500 alıyordum
    Telefonla sorduğumda, önceki adresteki enerji hesabı kapalı olsa bile “aynı e-posta adresi birden fazla posta adresinde kullanılamaz” dediler

    • +whatever numarasını kullanabilirsiniz. Gmail ise nokta . numarası da mümkün
    • Kötü bir yöntem ama e-postada kendi alan adınızı kullanıyorsanız pratikte sorun değil
  • Şu anda e-posta sistemini, tek bir hesapta birden çok bağlı e-posta adresine izin verecek şekilde değiştiriyoruz
    Bunun başlıca nedenlerinden biri öğrenci indirimi sunmamız. İndirimi hesaba uygulamanın en kolay yolu e-postanın bir eğitim kurumu adresi olup olmadığını kontrol etmek. .edu, .ac.uk gibi
    Ancak çoğu kişi aslında o e-postayla kaydolmak istemiyor gibi görünüyor. Birden çok e-postaya izin verirseniz iki tarafın da avantajını elde ediyorsunuz
    Keşke en baştan böyle yapsaydık

    • ABD’de birçok kişinin üniversiteden mezun olduktan sonra da .edu mezun yönlendirme adresi alabildiğini bilmek gerek
      Oldukça havalı bir adresim var. Erken başvurduğum için yalnızca adımı içeren bir adres
      Yine de pek kullanmıyorum. İlk zamanlarda yönlendirme ara sıra güvensizdi ama artık daha iyi olmuştur diye düşünüyorum
      Gerçekte Gmail adresim zaten onlarca yıla yakın süredir istikrarlı ve değişecek gibi de görünmüyor
      Her hâlükârda edu adresimi yalnızca çok az kişiye veriyorum
  • En zarif çözüm olmasa da istemci taraflı bir çözüm var
    Alan adını kendi cebinizden tutarsanız e-posta takma adlarını %100 kontrol edebilirsiniz
    Mevcut sağlayıcınız Google batsa bile, hesabı kurtarmak ve takma ad sahipliğini korumak için e-postayı kendiniz barındırabilirsiniz

    • Alan adının süresi dolarsa ne olacak?
  • Bence bu bir backend sorunu. Kullanıcıya görünen ID e-posta olabilir, ama sistem verilerindeki birincil anahtar e-posta olmamalı
    Hâlâ bunu yapan yerler var mı? E-posta gibi şeyleri tanımlayıcı olarak kullanmak yerine, gerçek benzersiz ID’ye (UUID ya da sıra tabanlı otomatik artan değer) eşleyen bir arama tablosu tutmak en temel veritabanı tasarımı meselesi
    Yazıda bu ayrım pek iyi yapılmadığı için, kullanıcının bu soyutlamanın farkında olması gerekiyormuş gibi de okunabiliyor

    • Doğru. Bu, lise düzeyinde bir veritabanı dersi sınav sorusu gibi bir şey ama şaşırtıcı derecede çok sayıda yetişkin geliştirici veritabanı tarafını durup düşünmüyor
  • Sonsuz olan hiçbir şey yok. Bir insanın tüm ömrü boyunca istikrarlı kalan şeyler bile neredeyse yok
    Kolayca taranabilen biyometrik işaretler de yeterince büyük nüfus gruplarında güvenilir biçimde benzersiz değildir
    E-posta adresleri oldukça uzun süre boyunca istikrarlı biçimde benzersiz kaldıkları için bu tür kullanım için seçildiler
    Telefon numaraları da eskisine göre daha yapışkan tanımlayıcılar hâline geldi ve artık kullanışlı bir tanımlayıcı olarak e-postaya benziyor
    Hem e-posta hem telefon numarası sık sık kaybedilir, çoğu zaman da aynı anda kaybedilir
    Cevap, yedek e-posta adresidir
    GitHub’ın kimlik yönetimini iyi yaptığını düşünüyorum, ama hâlâ parola kullanıyor. Parolalar kötüdür