Yanlış bir şifre girişiminin işlenmesi neden doğru olandan daha uzun sürüyor?


17

Bunu fark ettiğim en göze çarpan yer SSH-işteyken, ama bu davranışı başka bir yerde de gözlemlediğimi hissediyorum.

İş yerinde Windows masaüstümden Linux sunucularına giriş yapmaya çalıştığımda, şifremi yanlış yazdığımda "Erişim Reddedildi" i geri almanın 5 saniye kadar sürdüğünü fark ettim. Sonra şifremi doğru yazdığımda, giriş (karşılama mesajları vb. İle) neredeyse anında olur.

Bunun mantıklı bir nedeni var mı, yoksa buradaki iş makinelerine özgü bazı garip bir yapılandırmaya bağlı mı?


1
Stackoverflow.com/questions/712339/… üzerinde bu konuda iyi bir tartışma / yanıt var, özellikle burada ve burada
drzaus 18:13

Windows'a yanlış bir parola ile giriş yaptığınızda da aynı şey olur, ancak zamanın birkaç saniyeden 1-2 dakikaya kadar geniş bir aralıkta değiştiğini fark ediyorum
phuclv

Yanıtlar:


21

Muhtemelen bir kaba kuvvet saldırısının başarılı olmasını zorlaştıracak yapay bir zaman aşımı vardır.

Bunu, güvenli kimlik doğrulaması içeren birçok giriş isteminde göreceksiniz ...


1
Ah, bunu düşünmemişti. Bu çok mantıklı ve neden başka bir yerde aynı gecikmeyi görmüş gibi hissettiğimi açıklıyor.
Cam Jackson

diğer adıyla tarpitting. Teşekkürler, Michael Kjörling ( superuser.com/questions/916187/… )
rfportilla

10

Bu, kaba kuvvet saldırılarını önlemek için tasarlanmış bir gecikmedir. Daha uzun bir gecikme, saldırganın kullanıcı adı ve şifre yanlış olduğunu tahmin etmesini de önler (parolayı karma yapmak ve kontrol etmek, kullanıcı adını kontrol etmekten daha uzun sürebilir).


1

Teknik olarak, bu kasıtlı gecikme "Doğrusallaştırma saldırısı" gibi saldırıları önlemektir (başka saldırılar ve nedenler de vardır) .

Saldırıyı göstermek için, girilen bir seriyi doğru seri ile eşleşip eşleşmediğini kontrol eden bir program (bu kasıtlı gecikme olmadan) düşünün, bu durumda " xyba " olur . Verimlilik için programcı, uzunlukları da kontrol edilmeden önce bir kerede bir karakter kontrol etmeye ve yanlış bir karakter bulunur bulunmaz çıkmaya karar verdi.

Doğru seri uzunluğunun işlenmesi yanlış seri uzunluğundan daha uzun sürer. Daha da iyisi (saldırgan için), ilk karakteri doğru olan seri numarası, ilk karakteri yanlış olandan daha uzun sürer. Bekleme süresindeki birbirini izleyen adımlar, her döngüde bir döngü olduğunda, karşılaştırmanın doğru girdiden geçmesidir.

  • Böylece, saldırgan dört karakterli bir dize seçebilir ve x ile başlayan dize en fazla zaman alır. (tahmin çalışmasına göre)
  • Saldırgan daha sonra karakteri x olarak düzeltebilir ve ikinci karakteri değiştirebilir, bu durumda y'nin en uzun süreyi alacağını görürler .
  • Saldırgan daha sonra ilk iki karakteri xy olarak düzeltebilir ve üçüncü karakteri değiştirebilir, bu durumda b'nin en uzun sürdüğünü görürler .
  • Saldırgan daha sonra da ilk üç karakteri çözebilirsiniz xyb ve onlar olduğunu göreceksiniz bu durumda dördüncü karakteri değişebilir bir uzun sürer.

Böylece, saldırganlar seriyi birer birer kurtarabilir.

Linearization.java.

Linearization.docx, örnek çıktı

Seri numarası dört karakter uzunluğundadır ve her karakterin 128 olası değeri vardır. Sonra 128 4 = 2 28 = 268,435,456 olası seri var . Saldırganın seri numaralarını rastgele tahmin etmesi gerekiyorsa, seri numarasını yaklaşık 2 27 = 134,217,728 denemede tahmin ederdi ki bu çok büyük bir iştir . Öte yandan, yukarıdaki doğrusallaştırma saldırısı kullanılarak, her harf için ortalama sadece 128/2 = 64 tahmin gereklidir , yaklaşık 4 * 64 = 2 8 = 256 tahmin olmak üzere, önemsiz bir miktardır. işin.

Yazılı dövüş çoğu den uyarlanmıştır bu (Mark Stamp yönettiği ": İlkeler ve Uygulama Bilgi Güvenliği" den alınmıştır). Ayrıca yukarıdaki hesaplamalar, doğru seri uzunluğunu bulmak için gerekli tahmin miktarını dikkate almaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.