Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2

İki faktörlü kimlik doğrulama

İçinde okuduğunuz her şey birinci bölüm gerçeğine dayalı olarak kimlik tespiti ile ilgili talep eden bilir. E-posta adresini biliyor, ona nasıl erişeceğini biliyor (yani e-posta şifresini biliyor) ve güvenlik sorularının yanıtlarını biliyor.

"Bilgi", bir kimlik doğrulama faktörü olarak kabul edilir; diğer iki ortak faktör neyin var, örneğin, fiziksel bir cihaz ve sen kimsinparmak izi veya gözün retinası gibi.

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2

Çoğu durumda, özellikle web uygulamalarının güvenliği hakkında konuşurken biyolojik tanımlama yapmak mümkün değildir, bu nedenle iki faktörlü kimlik doğrulamada (iki faktörlü kimlik doğrulama, 2FA), genellikle ikinci özellik kullanılır - "sahip olduğunuz şey". Bu ikinci faktörün popüler varyasyonlarından biri fiziksel bir belirteçtir, örneğin, RSA Güvenlik Kimliği:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Fiziksel belirteç genellikle kurumsal VPN'lerde ve finansal hizmetlerde kimlik doğrulama için kullanılır. Hizmette kimlik doğrulaması yapmak için, bir PIN ile birlikte hem parola hem de belirteç üzerindeki bir kod (sıklıkla değişir) kullanmanız gerekir. Teorik olarak, bir saldırganın tanımlanabilmesi için parolayı bilmesi, bir jetona sahip olması ve ayrıca jetonun PIN'ini bilmesi gerekir. Parola sıfırlama senaryosunda, parolanın kendisi kesinlikle bilinmez, ancak hesabın sahipliğini kanıtlamak için belirtecin mülkiyeti kullanılabilir. Elbette, herhangi bir güvenlik uygulamasında olduğu gibi, "aptal kanıtı" sağlamaz, ancak giriş engelini kesinlikle yükseltir.

Bu yaklaşımın temel sorunlarından biri uygulamanın maliyeti ve lojistiğidir; her müşteriye fiziksel cihazlar teslim etmekten ve onlara yeni süreci öğretmekten bahsediyoruz. Ek olarak, kullanıcıların yanlarında bir cihaza sahip olmaları gerekir ki bu, fiziksel bir belirteç için her zaman geçerli değildir. Başka bir seçenek, SMS kullanarak ikinci bir kimlik doğrulama faktörü uygulamaktır; bu, 2FA durumunda, sıfırlama işlemini gerçekleştiren kişinin hesap sahibinin cep telefonuna sahip olduğunun teyidi olarak hizmet edebilir. Google bunu şu şekilde yapar:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Ayrıca etkinleştirmeniz gerekir iki adımlı doğrulama, ancak bu, şifrenizi bir dahaki sefere sıfırladığınızda, cep telefonunuzun kimlik doğrulamanın ikinci faktörü olabileceği anlamına gelir. Yakında netleşecek nedenlerden dolayı bunu iPhone'umu örnek olarak kullanarak göstereyim:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Hesabın e-posta adresini belirledikten sonra Google, 2FA'nın etkinleştirildiğini belirler ve hesap sahibinin cep telefonuna SMS yoluyla gönderilen doğrulamayı kullanarak hesabı sıfırlayabiliriz:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Şimdi sıfırlama işleminin başlangıcını seçmemiz gerekiyor:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Bu eylem, kayıtlı adrese bir e-posta gönderir:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Bu e-posta sıfırlama URL'sini içerir:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Sıfırlama URL'sine erişirken bir SMS gönderilir ve web sitesi bunu ister:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
İşte SMS:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Tarayıcıya yazdıktan sonra, klasik parola sıfırlama bölgesine geri döndük:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Bu muhtemelen biraz ayrıntılı görünüyor ve öyle, ancak form, sıfırlamayı gerçekleştiren kişinin hesap sahibinin e-posta adresine ve cep telefonuna erişimi olduğunu onaylıyor. Ancak parolanızı yalnızca e-posta yoluyla sıfırlamaktan dokuz kat daha güvenli olabilir. Ancak sorunlar var...

Sorun akıllı telefonlarla ilgili. Aşağıda gösterilen cihaz yalnızca bir kimlik doğrulama faktörünü onaylayabilir - SMS alabilir ancak e-posta alamaz:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Ancak, bu cihaz SMS alabilir и şifre sıfırlama e-postaları almak:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Sorun şu ki, e-postayı kimlik doğrulamanın ilk faktörü ve SMS'i (hatta jeton üreten bir uygulamayı) ikinci faktör olarak görüyoruz, ancak bugün bunlar tek bir cihazda birleştirildi. Elbette bu, birisi akıllı telefonunuza ulaşırsa, tüm bu rahatlığın tekrar aynı kanala dönmemiz anlamına geldiği anlamına gelir; bu ikinci faktör "sahip oldukların", birinci faktöre de sahip olduğun anlamına gelir. Ve hepsi dört basamaklı tek bir PIN ile korunmaktadır... eğer telefonun bir PIN'i varsa. и bloke edildi.

Evet, Google'ın 2FA özelliği kesinlikle ek koruma sağlar, ancak kusursuz değildir ve kesinlikle tamamen özerk iki kanala bağlı değildir.

Kullanıcı adı ile sıfırlama vs e-posta adresi ile sıfırlama

Yalnızca e-posta adresiyle sıfırlamaya izin vermeli miyim? Yoksa kullanıcı isme göre de sıfırlayabilmeli mi? Kullanıcı adına göre sıfırlama ile ilgili sorun, kullanıcıyı geçersiz bir kullanıcı adı konusunda bilgilendirmenin bir yolu olmamasıdır. ifşa etmeden başka birinin bu isimde bir hesabı olabilir. Bir önceki bölümde, bir e-posta sıfırlama, o e-postanın gerçek sahibinin sistemdeki varlıklarını herkese açık bir şekilde ifşa etmeden her zaman geri bildirim almasını sağlıyordu. Bu sadece kullanıcı adı ile yapılamaz.

Yani kısa cevap: sadece e-posta. Yalnızca kullanıcı adıyla sıfırlamayı denerseniz, kullanıcının ne olduğunu merak edeceği durumlar olacaktır. veya hesapların varlığını ifşa edeceksiniz. Evet, bu sadece bir kullanıcı adı, bir e-posta adresi değil ve evet, herkes herhangi bir (mevcut) kullanıcı adını seçebilir, ancak yine de, kullanıcıların adı yeniden kullanma eğilimi nedeniyle hesap sahiplerini dolaylı olarak ifşa etme şansınız yüksektir.

Peki birisi kullanıcı adını unutursa ne olur? Kullanıcı adının hemen bir e-posta adresi olmadığını varsayarsak (ki bu genellikle böyledir), o zaman süreç parola sıfırlamanın başlamasına benzer - bir e-posta adresi girin ve ardından bu adrese varlığını ifşa etmeden bir mesaj gönderin. Tek fark, bu kez mesajın yalnızca kullanıcı adını içermesi ve parola sıfırlama URL'sini içermemesidir. Ya öyle, ya da e-posta bu adres için bir hesap olmadığını söyleyecektir.

E-posta Adreslerinin Kimlik Doğrulaması ve Doğruluğu

Parolaları sıfırlamanın önemli bir yönü ve belki de en çok kilit nokta, sıfırlamaya çalışan kişinin kimliğini doğrulamaktır. Bu gerçekten hesabın gerçek sahibi mi, yoksa birisi hesabı ele geçirmeye veya sahibine rahatsızlık vermeye mi çalışıyor?

Açıkçası, e-posta en uygun ve en yaygın kimlik doğrulama kanalıdır. Kusursuz değildir ve kimlik belirleme konusunda yüksek derecede güven gerekiyorsa (bu nedenle 2FA kullanılır), ancak hesap sahibinin adresinden posta alabilmenin yeterli olmadığı birçok durum vardır, ancak neredeyse her zaman başlangıç ​​noktası. sıfırlama işlemi.

E-posta güven sağlamada rol oynayacaksa, ilk adım e-posta adresinin gerçekten doğru olduğundan emin olmaktır. Birisi sembolle ilgili bir hata yaptıysa, o zaman açıkçası sıfırlama başlamayacaktır. Kayıt sırasındaki e-posta doğrulama işlemi, adresin doğruluğunu doğrulamanın güvenilir bir yoludur. Hepimiz bunu çalışırken gördük: Kaydolduğunuzda, o e-posta hesabının gerçek sahibi olduğunuzu onaylayan, tıklamanız için benzersiz bir URL içeren bir e-posta gönderilir. Bu süreç tamamlanana kadar giriş yapamamak, adresi doğrulama motivasyonunun olmasını sağlar.

Güvenliğin diğer birçok yönüyle olduğu gibi, bu model, kullanıcının kimliğine duyulan güvene göre daha yüksek bir güvenlik derecesi sağlama karşılığında kullanılabilirliği azaltır. Bu, kullanıcının kayda çok değer verdiği ve süreçte memnuniyetle bir adım daha ekleyeceği (ücretli hizmetler, bankacılık vb.) Bir site için kabul edilebilir, ancak bu tür şeyler, hesabı "bir-" olarak algılarsa kullanıcıyı itebilir. zaman" ve örneğin, bir gönderiye yorum yapmak için bir araç olarak kullanır.

Sıfırlama sürecini kimin başlattığının belirlenmesi

Açıkçası, sıfırlama özelliğini kötü amaçla kullanmak için nedenler vardır ve saldırganlar bunu birçok farklı şekilde kullanabilir. Bir isteğin kaynağını doğrulamak için kullanabileceğimiz basit bir numara (bu numara genellikle çalışır), istekte bulunanın IP adresini sıfırlama önerisi içeren mektuba bir ektir. Alıcıyı tedarik eder bazı talebin kaynağını belirlemek için bilgi.

Şu anda ASafaWeb'de oluşturmakta olduğum sıfırlama işlevinden bir örnek:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
"Daha fazla bilgi edinin" bağlantısı, kullanıcıyı siteye götürür ip-adres.com, sıfırlama talebinde bulunan kişinin konumu ve organizasyonu gibi bilgileri vererek:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Elbette, kimliğini gizlemek isteyen herkesin gerçek IP adresini gizlemek için birçok yolu vardır, ancak bu, istekte bulunanın kısmi kimliğini eklemek için uygun bir yoldur ve en Bazı durumlarda, bu size şifre sıfırlama talebini kimin tamamlayacağı konusunda adil bir fikir verecektir.

E-posta Değişiklik Bildirimi

Bu gönderiye tek bir tema nüfuz etti - iletişim; kötü niyetle kullanılabilecek hiçbir şeyi ifşa etmeden, sürecin her adımında neler olduğu hakkında hesap sahibine mümkün olduğunca çok şey anlatın. Aynısı, parolanın fiilen değiştiği durum için de geçerlidir - sahibine haber ver!

Parolayı değiştirmenin nedenleri iki kaynak olabilir:

  1. Kullanıcı yeni bir şifre istediği için oturum açtıktan sonra şifre değişikliği
  2. Kullanıcı unuttuğu için oturum açmadan parolayı sıfırla

Bu gönderi çoğunlukla sıfırlama ile ilgili olsa da, ilkini bilgilendirmek, birinin gerçek sahibinin bilgisi olmadan şifreyi değiştirme riskini azaltır. Bu nasıl olabilir? Çok yaygın bir senaryo, hak sahibinin parolasını (başka bir kaynaktan sızan yeniden kullanılan parola, keylogging ile elde edilen parola, tahmin edilmesi kolay parola vb.) E-posta bildirimi olmadan, gerçek sahibi şifre değişikliğinden haberdar olmayacaktır.

Tabii ki, şifre sıfırlama durumunda, şifre sahibinin süreci kendisi başlatmış (veya yukarıda açıklanan kimlik doğrulama araçlarını atlamış) olması gerekir, bu nedenle değişiklik olmamalı ancak, e-posta onayı olumlu geri bildirim ve ek doğrulama olacaktır. Ayrıca yukarıda anlatılan senaryo ile bütünlük sağlar.

Oh, ve henüz belli değilse diye - posta ile yeni bir şifre göndermeyin! Bazılarını güldürebilir ama böyle bir şey olur:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2

Günlükler, günlükler, günlükler ve daha fazla günlük

Parola sıfırlama özelliği, saldırganlar için caziptir: Saldırgan ya başka bir kişinin hesabına erişim elde etmek ister ya da hesap/sistem sahibine rahatsızlık vermek ister. Yukarıda açıklanan uygulamaların çoğu kötüye kullanım olasılığını azaltır, ancak engellemez ve kesinlikle insanların bir özelliği istenmeyen bir şekilde kullanmaya çalışmasını engellemez.

Kötü niyetli davranışı tespit etmek için günlük kaydı kesinlikle paha biçilmez bir uygulamadır ve demek istediğim çok detaylı kayıt. Başarısız oturum açma denemelerini, parolaları sıfırlamayı, parolaları değiştirmeyi (ör. kullanıcı zaten oturum açmışken) ve neler olup bittiğini anlamanıza yardımcı olabilecek hemen hemen her şeyi yakalayın; bu gelecekte çok faydalı olacaktır. Bireysel bile olsa günlüklerde düzeltin parçalar Örneğin, iyi bir sıfırlama özelliği, bir web sitesi aracılığıyla sıfırlama başlatmayı (sıfırlama talebini ve yanlış bir kullanıcı adı veya e-posta ile giriş denemelerini yakalamayı), sıfırlama URL'sinde bir web sitesine yapılan ziyareti kaydetmeyi (yanlış bir kullanıcı adı veya e-posta adresi kullanma girişimleri dahil) içermelidir. belirteç) ve ardından güvenlik sorusuna verilen yanıtın başarısını veya başarısızlığını günlüğe kaydedin.

Günlük tutmaktan bahsettiğimde, yalnızca bir sayfanın yüklendiği gerçeğini kaydetmeyi değil, aynı zamanda mümkün olduğunca fazla bilgi toplamayı da kastediyorum. gizli değilse. Çocuklar, lütfen şifreleri kaydetmeyin! Günlüklerin yetkili kullanıcının kimliğini kaydetmesi gerekir (eğer isterse yetkili olacaktır). değişim mevcut şifre veya sıfırlamaya çalışmak başkasının şifresi oturum açtıktan sonra), denediği tüm kullanıcı adları veya e-posta adresleri ve kullanmaya çalıştığı tüm sıfırlama belirteçleri. Ancak IP adresleri ve hatta mümkünse istek başlıkları gibi şeyleri günlüğe kaydetmeye değer. Bu, yalnızca yeniden oluşturmanıza izin vermez o kullanıcının (veya saldırganın) yapmaya çalıştığı ama aynı zamanda kim o öyle biri

Diğer sanatçılara sorumluluk devri

Tüm bunların çok büyük bir işi temsil ettiğini düşünüyorsanız, o zaman yalnız değilsiniz. Aslında hesaplarla çalışmak için güvenilir bir sistem oluşturmak kolay bir iş değildir. Teknik olarak zor değil, sadece birçok özelliği var. Bu sadece sıfırlama ile ilgili değil, tüm bir kaydolma, şifreleri güvenli bir şekilde saklama, birden fazla hatalı oturum açma girişimini yönetme vb. Rağmen ASP.NET üyelik sağlayıcısı gibi hazır işlevsellik kullanma fikrini destekliyorumbunun yanında daha yapılacak çok şey var.

Bugün, bunun acısını çekmekten ve hepsini tek bir yönetilen hizmete soyutlamaktan mutlu olan birçok üçüncü taraf satıcı var. Bu hizmetler OpenID, OAuth ve hatta Facebook'u içerir. Bazı insanlar bu modele sınırsız inanç (OpenID, Stack Overflow'ta gerçekten çok başarılı olmuştur), ancak diğerleri kelimenin tam anlamıyla bir kabus olarak kabul et.

Şüphesiz OpenID gibi bir servis geliştiricilerin pek çok sorununu çözer ama yenilerini de ekleyeceği kesindir. Herhangi bir rolleri var mı? Evet, ancak kimlik doğrulama hizmeti sağlayıcılarının hizmetlerinin yoğun bir şekilde kullanıldığını görmediğimiz açık. Bankalar, havayolları ve hatta mağazalar kendi kimlik doğrulama mekanizmalarını uygular ve bunun için çok iyi nedenler olduğu açıktır.

Kötü Amaçlı Sıfırlama

Yukarıdaki örneklerin her birinin önemli bir yönü, eski parolanın yalnızca işe yaramaz olarak kabul edilmesidir. hesap sahibinin kimliğini doğruladıktan sonra. Bu önemlidir, çünkü hesap sıfırlanabilseydi karşı kimlik kontrolleri, bu her türlü kötü niyetli faaliyet için fırsat sağlayacaktır.

İşte bir örnek: Birisi bir müzayede sitesinde teklif veriyor ve teklif verme sürecinin sonuna doğru, bir sıfırlama işlemi başlatarak rakipleri engelliyor ve böylece onları teklif vermekten çıkarıyor. Açıkçası, kötü tasarlanmış bir sıfırlama işlevi kötüye kullanılabilirse, ciddi olumsuz sonuçlara yol açabilir. Geçersiz giriş denemeleri olan hesapları engellemenin de benzer bir durum olduğunu belirtmekte fayda var ancak bu başka bir yazının konusu.

Yukarıda da belirttiğim gibi, anonim kullanıcılara sadece e-posta adreslerini bilerek herhangi bir hesabın şifresini sıfırlama olanağı verirseniz, bu hizmet reddi saldırısı için hazır bir durumdur. o olmayabilir DoS, hakkında konuştuğumuz, ancak bir hesaba erişimi engellemenin, kötü düşünülmüş bir parola sıfırlama işlevinden daha hızlı bir yolu yoktur.

En zayıf bağlantı

Tek bir hesabı koruma açısından yukarıda yazılan her şey harika, ancak koruduğunuz hesabı çevreleyen ekosistemi her zaman aklınızda bulundurmanız gerekiyor. Sana bir örnek vereyim:

ASafaWeb, AppHarbor tarafından sağlanan harika bir hizmette barındırılmaktadır. Bir barındırma hesabını sıfırlama işlemi aşağıdaki gibidir:

1. Aşama:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
2. Aşama:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
3. Aşama:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
4. Aşama:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Önceki tüm bilgileri okuduktan sonra, ideal bir dünyada hangi yönleri biraz farklı uygulayacağımızı anlamak zaten kolaydır. Bununla birlikte, burada söylemek istediğim, ASafaWeb gibi bir siteyi AppHarbor'da yayınlarsam ve ardından harika güvenlik soruları ve yanıtları bulursam, ikinci bir kimlik doğrulama faktörü eklersem ve diğer her şeyi kurallara göre yaparsam, bu değişmez. tüm süreçteki en zayıf halkanın hepsini kırabilecek olması gerçeği. Birisi bilgilerimi kullanarak AppHarbor'da başarılı bir şekilde kimlik doğrulaması yaparsa, herhangi bir ASafaWeb hesabının parolasını ihtiyacı olan parolayla değiştirebilecektir!

Mesele şu ki, bir güvenlik uygulamasının gücü bütünsel olarak düşünülmelidir: Tehditler, AppHarbor'da oturum açmak gibi yüzeysel bir süreç olsa bile, sistemdeki her giriş noktasında modellenmelidir. Bu, ASafaWeb şifre sıfırlama işlemi için ne kadar çaba sarf etmem gerektiğine dair bana iyi bir fikir vermeli.

Hepsini bir araya koy

Bu gönderi çok fazla bilgi içeriyor, bu yüzden onu basit bir görsel şemaya yoğunlaştırmak istiyorum:

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2
Bu öğelerin her birinin en ayrıntılı günlüğünü yapmanız gerektiğini unutmayın. İşte bu kadar basit!

sonuçlar

Gönderim kapsamlı görünüyor, ancak ekleyebileceğim birçok ek materyal var. could ekleyin, ancak kısaltma uğruna yapmamaya karar verdim: kurtarma e-posta adresinin rolü, hesabınızla ilişkili e-postaya erişiminizi kaybetme durumu (örneğin, işinizden ayrıldınız) vb. Daha önce de söylediğim gibi, sıfırlama işlevi o kadar karmaşık değil, sadece üzerinde birçok farklı bakış açısı var.

Sıfırlama o kadar karmaşık olmasa da genellikle yanlış uygulanır. Yukarıda, uygulamanın yapıldığı birkaç örnek gördük. kutu sorunlara yol açar ve yanlış sıfırlamanın olduğu daha birçok durum vardır. gerçekten sorunlara neden oldu. Son zamanlarda ortaya çıktı ki 87 $ değerinde bitcoin çalmak için kullanılan şifre sıfırlama. Bu ciddi bir olumsuz sonuçtur!

Bu yüzden sıfırlama işlevlerinize dikkat edin, tehdit simülasyonu çeşitli noktalarda ve bir özelliği tasarlarken siyah şapkanızı çıkarmayın çünkü başka birinin takması için büyük bir şans var!

Reklam gibi

VDSina ucuz teklifler kiralık sunucular günlük ödeme ile her sunucu 500 Mbps'lik bir İnternet kanalına bağlanır ve DDoS saldırılarına karşı ücretsiz olarak korunur!

Güvenli parola sıfırlama hakkında bilmek istediğiniz her şey. Bölüm 2

Kaynak: habr.com

Yorum ekle