it-swarm-tr.com

Neden üç başarısız parola denemesinden sonra siteler neden kilitleme uygular?

Sonsuz şifre girişimlerine izin vermemenin ardındaki mantığı biliyorum - kaba kuvvet girişimleri bir meatspace zayıflığı değil, bilgisayar güvenliğiyle ilgili bir sorun - ama üç numarayı nereden aldılar?

Kolayca etkinleştirilen bir kilitleme ilkesini uygularken hizmet reddi endişe yaratmıyor mu?

Gerçek güvenlik tehdidini kullanılabilirlik ile dengeleyen bir hesabı kilitlemeden önce seçilecek en uygun sayı veya aralığı gösteren herhangi bir araştırma var mı?

Bunu düşündüğümde, genellikle bugün kullanımda olan şifre karmaşıklığı ile üç deneme ve 20 deneme arasında ölçülebilir bir güvenlik farkı görmüyorum.

(Bu eteklerin öznelliğini biliyorum, ama ölçüm tabanlı görüşler arıyorum)

107
Bradley Kreider

Son zamanlarda, Orange County'deki OWASP AppSec 2010 konferansında AT&T'den Bill Cheswick bu konu hakkında uzun süre konuştu.

Kısacası, yeterli araştırma yok.

Uzun zamandır, daha az acı verici hesap kilitleme için fikirlerinden bazıları:

  • Yinelenen şifre girişimlerini saymayın (muhtemelen yanlış yazdıklarını düşündüler)
  • Birincil parola hakkında parola ipucu verin ve ikincil (zayıf)
  • Güvenilir bir tarafın kullanıcı için kefil olmasına izin verin, böylece şifresini değiştirebilir.
  • Artan zaman aralıklarında hesabı kilitleyin
  • Kullanıcıya şifre kurallarını hatırlatın.
75
Zian Choy

PCI Veri Güvenliği Standartları ile uyumlu tüm web sitelerinin bölümlere uyması gerekir

  • 8.5.13 (Altı denemeden sonra kullanıcı kimliğini kilitleyerek tekrarlanan erişim denemelerini sınırlayın)
  • 8.5.14 (Kilitleme süresini otuz dakikaya veya yönetici kullanıcı kimliğini etkinleştirene kadar ayarlayın).

Maalesef, tasarımcıları uyguladıkları şeyle aynı fikirde olmasalar bile, kredi kartlarını kabul eden birçok sitenin acımasız kilitleme politikalarına sahip olmasının nedeni budur.

Düzenleme: Bu gereksinimlerin yalnızca "tüketici olmayan kullanıcılar" sistemleri için geçerli olduğunu ve bu nedenle kart kabul eden müşteri sitelerini etkilememesi gerektiğini unutmayın.

37
realworldcoder

Deneyimlerim, kilitleme mekanizmalarının popülaritesinin azalmasıdır (en azından web uygulamaları için). Bir dizi başarısız denemeden sonra hesapları kilitlemek yerine, başarılı kimlik doğrulaması için ek bilgi istemeye başlarsınız.

22
Tate Hansen

Beyzbol "Üç grev" kural teknik bir şey yerine geldiğinde sürpriz olmaz.

Bir gerekçe (zaten alfasayısal şifreler için)

Genellikle başarısız bir girişim, yanlış tür veya CAPS açma/kapama sorunudur. Bu yüzden oturum açmaya ve reddedilmeye çalışıyorsunuz (1), yanlış yazdığınızı (2) düşündüğünüz için tekrar deneyin ve ardından üçüncü denemeye girdiğinizde CAPS anahtarının açık olduğunu anlayın.

Tipik olarak girilen sayısal bir kod olduğunda, cep telefonlarının bir ağdan kilidini açmak için gerçekten beklemez.

Daha iyi öneriler, ardışık başarısız giriş denemeleri arasında giderek artan bir gecikmedir. Önce anında yeniden denemeye izin verin, sonra 1 saniye, 2, dört, sekiz ... Herhangi bir kaba kuvvet saldırısını başlatmak için yeterli olan girişimler arasında bir dakika bekliyorsunuz.

18
Gary

OP'ye katılıyorum. Lokavtın sizi neye karşı koruduğunu düşünüyorsanız, 3 ila 20 deneme (veya bu konu için 100) arasında bir fark yoktur. Bu kilitlerle, unutkan kullanıcıları cezalandırmanın dışında elde ettiğiniz tek şey kaba kuvvet saldırısını önlemektir. Ayrıca, bir saldırının devam ettiğini bildiren bir uyarıyı tetiklemek için de kullanabilirsiniz, ancak bu birincil amaç değildir (eğer öyleyse, kasten kendi izleme işinizi kolaylaştırmak için kullanıcılarınızı kasıtlı olarak yaptığınız anlamına gelir. çok iyi uygulama).

Birisi şifre veritabanınıza sahipse ve çevrimdışı olarak hackleyebiliyorsa, sınırsız denemesi vardır. 20 tahmin limitiniz iyi değil.

Birisi çevrimiçi bir kaba kuvvet girişiminde bulunuyorsa, ihtiyacınız olan tek şey "yeterince uzun" süreye dayanabilecek bir paroladır: IRT'nizin yanıt vermesi için yeterince uzun veya saldırganınızın vazgeçmesi için yeterince uzun.

Conficker parola veritabanı, IIRC olan 200 parolanın biraz altında ve gezegendeki en aptal parolalarla dolu. Şimdi şifrenizin bu listede olmadığını varsayalım. Kilitlemeden, her 15 dakikada bir 20 şifre denemesine izin verirseniz, bir saldırganın bu listeyi alması iki saatten fazla sürecektir.

Aslında, tahmin listenizi kidsname02, birthday99 vb.Gibi kullanıcılarla ilgili bilgilerden yapılmış parolalarla daraltsanız bile, sözlük saldırısını bir saate kadar uzatabilecek en az birkaç parola elde edersiniz. Daha. Zaman içinde bu sürekli, hatalı tahmin, birkaç dakika içinde bir avuç yanlış şifre değil, alarmlarınızı tetiklemesi gereken şeydir.

Dolayısıyla, kullanıcılarınızı en temel şifre tuzaklarından uzak tutabiliyorsanız, birçok hatalı şifre girişimini memnuniyetle kabul edebilirsiniz.

Şahsen, 15'te çizgiyi çiziyorum. Tamamen keyfi ve çoğunlukla pratik bir şey: Herhangi bir gerçek kullanıcının bundan çok önce vazgeçtiğini görüyorum. Genellikle bu kadar çok deneme varsa, bu, eski kimlik bilgileriyle bir yere asılı duran bir süreç veya oturumdur. Ve eğer durum böyle değilse, saldırı aramaktan bahsedebiliriz.

15
itinsecurity

Bu, garip bir DDOS saldırısı riskiyle birlikte gelen aptalca keyfi bir kuraldır. Marv'ın web sitesi X'den nefret ettiğini ve X web sitesinin Y sayısının kilitlenme politikası olduğunu varsayalım. Marv, bir komut dosyasının sahte şifreleri otomatik olarak Y kez denemesini sağlayarak ciddi bir cehennem yaratabilir. Bir parola işe yarasa bile, Marv muhtemelen umursamayacak ve görmezden gelmeyecektir. Bu, web sitesi X için birçok kullanıcıyı etkili bir şekilde kilitler ve çok sayıda kullanıcı hayal kırıklığına neden olur ve tanrı, şifrenizi sıfırlamak için aramanız gereken bankalarsa onlara yardımcı olur. Kimsenin bunu denemediğine şaşırdım.

11
AmaDaden

Bu tartışmaya geç kaldığımı düşünüyorum, ama umarım buraya eklemek için faydalı bir şeyim olur.

Hesap kilitleme politikası (çoğu kuruluş için genellikle tek haneli aralıklarla yapılan ardışık geçersiz girişimlerin sayısı ile) yalnızca otomatik kaba kuvvet saldırılarına karşı tasarlanmamıştır.

İnsan saldırganları tarafından, özellikle de şifrenin bir kısmını zaten bilen kişiler tarafından yapılan parola tahminine karşı daha fazla koruma sağlar. Saldırganlar şu şekilde şifre parçaları kazanabilir:

  • omuz sörfü
  • bir bireyin şifrelerini seçmek için kullandığı kalıpları tahmin ederek. Sonuçta, şifre # 01 , şifre # gibi sırayla öğeleri olan şifrelerin kaç kez kullanıldığı 02 vb.

Tabii dezavantajı, düşük bir eşik değeri ile, bir hizmet reddi ve iş için ilişkili bir maliyetin olması gerektiğidir. Microsoft tarafından verilen Hesap Kilitleme En İyi Uygulamaları Teknik İncelemesi , önerilen 10 değerini sağlar. Ayrıca, Windows'un hesap kilitleme ilkesindeki parametreleri kullanarak başarılı bir saldırı olasılığının nasıl tahmin edileceğini açıklar:

Örneğin, hesap LockoutDuration kayıt defteri değeri 0 ile kilitlendiğinde yöneticinin parolayı sıfırladığını varsayalım. LockoutDuration kayıt defteri değeri 0 ve LockoutThreshold kayıt defteri değeri 20 olarak ayarlandığında, kötü niyetli kullanıcının buna karşı kullanacağı 20 tahmin vardır parola. Kilitleme süresi 30 dakikaysa, kötü niyetli kullanıcının, değiştirilene kadar bu şifre karşısında her 30 dakikada bir 20 tahmin vardır. Bu, kötü niyetli kullanıcının kullanabileceği toplam tahmin sayısında çok önemli bir farktır.

Buna karşılık, yönetici maksimum şifre yaşını 42 güne ayarlarsa, ilk kötü niyetli kullanıcının herhangi bir şifreye karşı yalnızca 20 tahminde bulunurken, ikinci kötü niyetli kullanıcının 40.320 tahminde bulunur (her gün kilitleme için 20 deneme, her gün 48 kilitleme ile çarpılır, kullanıcı parolayı değiştirmeden önce 42 gün ile çarpılır). Varsayılan şifre ayarlarında yaklaşık 10 ^ 12 olası şifre vardır. Bu, kötü niyetli kullanıcının şifreyi tahmin etme olasılığının yaklaşık yüzde 0,000004 (%) olduğu anlamına gelir. Optimize edilmiş bir tahmin şemasında, bu yüzde büyük olasılıkla daha büyük bir yüzde olacaktır.

Tabii ki, herhangi bir layman için uygun bir sayı seçmek kolay değildir ve bu tür kararlar dikkatle düşünülmelidir. Bu nedenle, bazı kuruluşların, hesap kilitleme politikalarının parasal etkilerini ve sağladığı güvenlik avantajını korurken politikalarını gevşetmenin ilgili faydasını hesaplamak için çaba göstermedikleri varsayılabilir.

10
Vineet Reynolds

Bunun iki yönü vardır; birincisi, sizin de bahsettiğiniz gibi, kaba kuvvet saldırılarını önlemektir.

Bu amaçla, gerçekten herhangi bir sayıda deneme yapmalıdır - 3, 5, 20, 2000 ... uygun bir şifre politikası (uzunluk + karmaşıklık + ...) ile yeterince büyük bir anahtar alan vermek, herhangi bir tür azaltma (saatte X deneme sayısı), tüm alanı zorlayan kaba kuvvetin birkaç on yıl sürmesini sağlayacaktır. (Matematik yap).

Kilitleme sadece geçicidir ve kısa bir süre sonra bile otomatik olarak açılır.

Bu nedenle, kilitleme öncesi deneme sayısı keyfi olur.

Bununla birlikte, burada oynamakta olan daha, daha ince, matematik dışı bir sorun var:

Tek bir kullanıcının arka arkaya 2000 kez tekrar tekrar yanlış şifre girmesi mantıklı değildir.

Yani, keyfi olarak 2000 seçerseniz, uzun uzun bir süre önce bunun meşru bir kullanıcı olmadığını bilirsiniz. Bu nedenle, gerçekten işin mantıklı olanı ve iş odaklı bir risk analizi ödünleşimi söz konusudur.

Bence tarihsel olarak değiş tokuş risk tarafına daha yatkındı - şifreler daha kısa ve daha az karmaşık olduğu için 3 veya 10 arasındaki fark daha büyüktü. Ayrıca, insanlar daha az şifreleri vardı, bu yüzden hatırlamaları daha kolaydı ... Ve kullanıcılar genel olarak teknik olarak daha anlayışlıydılar.

Günümüzde, iş etkisi göz önüne alındığında, üç kişi gerçekten mantıklı değil. Gerçekten sizin uygulaması için ne anlam ifade ediyor, hangi kullanıcı türleri, ne sıklıkla giriş yapıyorlar, vb. o.

( @realworldcoder'ın belirttiği gibi , PCI isteğe bağlı olarak altı tane seçti ve PCI'ye tabiseniz burada fazla kararınız yok. Aksi takdirde sizin için anlamlı bir sayı seçin.)

8
AviD

Ardı ardına gelen başarısız girişimleri geciktirmek ve böylece kaba zorlamayı önlemek için 'kilitlenmeleri' arttıran zaman önerileriyle ilgili olarak, bunun yalnızca hedeflenen kullanıcı saldırılarında işe yaradığını lütfen unutmayın.

Saldırgan yalnızca sisteme giriş kazanmayı umursa, bir genişlik ilk saldırısı gerçekleştirebilir (Bir sonraki şifreye geçmeden önce bilinen/tahmin edilen tüm kullanıcı adlarını döngüye alın). Doğru bir şekilde yapıldıysa, dağıtılmış bir makine ağından gelebileceğini, gecikme sisteminin de çalışmadığını görmek oldukça kolaydır.

Başkaları tarafından belirtildiği gibi, saldırıları erkenden keşfetme girişimlerinin başarısızlığının doğru bir şekilde izlenmesi çok önemlidir.

Evet, 3 deneme oldukça keyfi ve DoS riski oluşturuyor. İnsanların halka açık sistemler için kullanmayı bırakmasını gerçekten isterdim ...

Başka bir çözüm: 2 faktörlü tanımlama. RSA belirteçleri. Keşke kişisel olarak bir 'kimlik numarası' olan tek bir RSA jetonuna sahip olmanın bir yolu olsaydı. Daha sonra bu 'kimlik numarasını' herhangi bir sisteme kaydedebiliriz, bu da giriş yapmak için şifre ile birlikte jetondan geçerli değeri gerektirir.

Ancak bu, uygulama ve güven için bir sürü başka konu ortaya koyuyor ...

7
Dan McGrath

Halka açık şirketler (borsalarda hisse satışı) Sarbanes-Oxley Yasası kapsamında düzenlenir ve uygunluk açısından yılda birkaç kez denetlenir. Kritik yazılım uygulamaları, başarısız parola denemelerinden sonra hesapları kilitlemek için bunlardan biri olan belirli güvenlik özelliklerine uymalıdır.

Bu uygulamanın büyük çoğunluğu zaten özellikleri etkin olan şirket Active Directory ile entegre etmektir.

3
Jose

İşte aradığına inandığım şeyin üzerinden geçen gerçekten güzel bir okuma. Üç grev politikasını, on grev politikasını ve sonsuz grev politikasını kullanarak lisans öğrencilerinin verilerini, sayıyı üçten on'a çıkarmamızı önermek için aldılar (giriş yapmanın başarısını yaklaşık üç katına çıkardığı için).

Burada öznel bir görünüme geri dönme ...

Çoğu yer neden üç grev politikası kullanıyor? Kesinlikle zamanla gelişen bir buluşsal yöntemdir. Üç deneme, yöneticiler ve kullanıcılar için aşağı yukarı bir zemindir ve üç şansın fazlasıyla yeterli olduğu anlamına gelir.

Parolanın arkasındaki fikir, onu bilmeniz . Gerçekten birden fazla denemeye ihtiyacınız olmamalıdır. Hataların yapıldığını anlıyorum, ama bir savaşta ... gerçekten sadece bir müttefik olduğunu kanıtlamak için bir şansın var, değil mi?.

3
user124863

Rastgele 3 seçmiş olmalılar. Bu son derece düşük. Belki de geçmişte güvenlik sorunları yaşamışlar ve sorunu doğru bir şekilde çözmek veya düzeltmek yerine düşük bir kilitleme numarası seçmişlerdir.

Artan zaman aralıklarında kullanıcıyı kilitleme yöntemini tercih ederim. Ben kullanıcı adı kapalı anahtar olmaz, yerine kişi IP adresini kullanın, çünkü kişi birden fazla kullanıcı adı deniyor olabilir. Kullanıcı 5 geçersiz denemeye ulaştıktan sonra kilitleme süresini (geçersiz giriş denemesi sayısı) ^ 2 saniye olarak ayarladım. Kullanıcı, nispeten az sayıda denemede parolasını bilmiyorsa, site bir tane sağlıyorsa çoğunlukla bir parola kurtarma aracı kullanır. Eğer gerçek bir hack girişimi ise, hacker için o kadar sinir bozucu olacak ki sonunda vazgeçecekler. Botlar o kadar çok kez deneyecekler ki neredeyse hiç giriş yapmalarına izin verilmeyecek ... örneğin, 1000 şifreyi denediyse (ki bu zaten yapmak için uzun zaman alacaktır), yapabilmeleri için 11 1/2 gün beklemek zorunda kalacaklardı. 1001. şifreyi deneyin. Çarpanı ^ 3'e yükselterek caydırıcılığı kolayca artırabilirsiniz. Yukarıdaki herhangi bir şey, geçerli insan kullanıcıları için biraz fazla yükselebilir.

2
Rush Frisby

Çok uzun zaman önce bu temel kurallara uyan bir giriş güvenliği düzeni uyguladım:

  1. İlk başarısız girişim anında geri bildirim verir. Muhtemelen şişmanladılar.
  2. İkinci ila beşinci başarısız girişim, yanıtın her başarısız girişim için bir saniye gecikmesine neden oldu. örn. 2 saniye, 3 saniye, 4 saniye ...
  3. Beşinci deneme başarısız olursa, oturum sona erdirildi ve tarayıcılarını kapatıp tekrar denemek zorunda kalacaklarını belirten bir mesaj verildi.

Benim için bu kaba kuvvet saldırılarını önlemek için fazlasıyla yeterliydi; en son kullanıcılar için bir rahatsızlık olur ve destek için herhangi bir ek çalışma oluşturmaz.

2
Josh