Hesap numarası etiketi taşıyan bir alan otomatik olarak herkese açık bir referans değildir ve etiket test değildir. Test, sahipliğin neye izin verdiğidir: numarayı bilmek birini oturum açtırıyorsa, bir bağlantı profili indiriyorsa veya bir cihazı yetkilendiriyorsa, bu numara yaşam döngüsü olan bir kimlik bilgisidir. Bir hizmet sayısal bir kimlik verip onu zararsız diye adlandırdığında aşağıdaki beş kontrolü yaparım. Her biri kısa bir kayıtta bir satır üretir ve kayıt, ürün hakkında bir hüküm değil, teslim edilebilir sonuçtur.

Sahipliğin gerçekte ne verdiğini envanterleyin

Numaranın açtığı her eylemi ayrı ayrı yazın. Bir portala giriş yapmak, bir yapılandırma dosyası almak, yeni bir cihazı yetkilendirmek ve kabul edilmiş bir tünel oturumu sunmak farklı yetkilerdir ve bir hizmet birini diğerleri olmadan uygulayabilir. Numarayı tek alan olarak kabul eden bir portal, tünelin eşini nasıl doğruladığı hakkında sonradan ya da trafik anahtarlarının nasıl türetildiği hakkında hiçbir şey söylemez.

Genel modeli ifade etmek kolaydır: bearer kimlik bilgisi, sahibinin ayrı bir kriptografik anahtara sahip olduğunu kanıtlamadan kullanabildiği bilgidir ve bu, RFC 6750 belgesinde tokenlar için çizdiği ayrımdır. Bu bir karşılaştırmadır, numaraya dayalı bir hizmetin OAuth uyguladığı iddiası değildir. Sahibin başka bir şeye ihtiyacı yoksa numarayı bearer sırrı olarak ele alın ve tasarımın geri kalanını buna göre sınıflandırın.

Onu referans gibi değil, sır gibi koruyun

Depolama sınıflandırmadan doğar. Oturum açtıran bir değer parola yöneticisine aittir; ekran görüntüsüne, pano geçmişine, sohbet mesajına veya tarayıcı notuna değil. Ekran görüntüleri olağan sızıntıdır: numara kısadır ve zararsız görünür, bu yüzden geldiği cihazdan daha uzun yaşayan bir destek konusunda son bulur.

Oltalama diğer arıza modudur ve numaranın ne kadar rastgele olduğu umurunda değildir. Değeri isteyen bir dolandırıcı onu bir forma yapıştırmanızı ister ve hiç süresi dolmayan, ikinci faktörü olmayan bir kimlik bilgisi çabaya değer. Giriş yoluna bir yer iminden veya bilinen bir adresten ulaşın, numarayı da isteyen bir mesajdaki bağlantıdan değil.

Kurtarma materyalini sırrın parçası olarak ele alın. Operatör ayrıca bir kurtarma kodu, PIN veya hesabı sıfırlayabilen bir e-posta adresi verdiyse, bunlar aynı koruma gereksinimine sahip ayrı kimlik bilgileridir. Tek bir korumasız sıfırlama kanalı diğer tüm kontrolleri süslemeye dönüştürür.

Tahmin direncini ve hız sınırlamasını birlikte denetleyin

Uzunluk yalnızca üretim yönteminin yanında anlamlıdır. Öngörülebilir bir diziden üretilen uzun bir numara, kriptografik bir üreteçten çıkan kısa bir değerden daha zayıftır ve etkileyici bir basamak sayısı öngörülemezliği kanıtlamaz. Değerin nasıl üretildiğini sorun, onu tahmin etmenin ne kadar zor olduğunu düşünmeden önce.

Yalnızca tahmin direnci de sınırsız bir deneme hızına dayanmaz. Önemli olan kontroller operatörün uyguladıklarıdır: başarısız deneme sayaçları, kilitlemeler, kaynak başına sınırlama ve yanlış bir numaranın var olmayandan ayırt edilip edilmediği. Hizmet bunu destekliyorsa, tek bir başarısız deneme hatanın nasıl göründüğünü ve yeniden deneme sayacının görünüp görünmediğini gösterir:

# one attempt, then read the response and any counter or delay
# do not script repeated guesses against a live account
curl -i -X POST https://portal.example.invalid/login -d "account=000000000000"

Yanıtın neyi açığa çıkardığını kaydedin. Bilinmeyen bir hesap için ayrı bir hata, numara tahmin edilemez olsa bile bir numaralandırma kehanetidir ve bu bulgu, istemci tarafında düzeltebilseniz de düzeltemeseniz de kayda aittir.

Rotasyonu ve iptali ihtiyaç duymadan planlayın

Kayıp veya açığa çıkmış bir numara için desteklenen süreci bulun ve her şey çalışırken yazın. Hesabın kimlik bilgisi hiç değiştirilebilir mi? Değiştirme, zaten kayıtlı cihazları, etkin oturumları veya indirilmiş yapılandırmayı geçersiz kılar mı? Süreç hangi kurtarma materyalini talep eder? E-postaya bağımlılığı olmayan bir hizmet, kullanıcıya daha fazla kurtarma sorumluluğu aktarabilir, bu da süreci daha önemli kılar, daha az değil.

Hesap değişimini kimlik bilgisi iptalinden ayırın. Numara bir anahtarın, sertifikanın veya profilin indirilmesini yetkilendiriyorsa, numaranın değiştirilmesi indirilen materyali geçerli bırakabilir ve indirilen materyalin iptali farklı bir sahibi olan farklı bir işlem olabilir. Tek bir değişen alanın her bağlantıyı sonlandırdığını varsaymayın; operatörün gerçek modelini kontrol edin ve nerede doğruladığınızı not edin.

Kararı belgeleyin ve sonra yeniden denetleyin

Hizmet başına tek sayfalık bir kayıt tutun: numaranın hangi yetkileri verdiği, nerede saklandığı, kimin sıfırlayabileceği, hangi kullanım kanıtlarının bulunduğu ve açığa çıkmadan sonraki ilk saatte ne yapacağınız. Bu kayıt, terminoloji tartışmasını birinin denetleyebileceği bir karara dönüştürür.

Gizlilik iddialarının kendi kapsamı olmalıdır. Rastgele üretilmiş bir numara yine de hesap olaylarını zaman içinde bağlayan kararlı bir tanımlayıcı olabilir; öngörülemezlik, bağlantısızlık değildir ve iki özellik de saklanan ağ üstverisi hakkında hiçbir şey söylemez. Giriş ekranındaki alanları saymak yerine bütün tasarımları karşılaştırın.

Kaydetmeden önce:

  • Numaranın verdiği her yetki listelenir, indirmeler ve cihaz yetkilendirmesi dahil.
  • Depolama ve kurtarma kanalları numaranın kendisiyle aynı standartta korunur.
  • Üretim yöntemi ve hız sınırları bilinir, uzunluktan varsayılmaz.
  • Bir değiştirme süreci ve bir iptal süreci vardır ve hangisinin hangisini iptal ettiğini bilirsiniz.
  • Kayıt, değeri kimin sıfırlayabileceğini ve kullanımdan sonra hangi kanıtların kaldığını belirtir.

İlgili makaleler