Zbyt długie hasła okazały się skutecznym atakiem DoS

dodał 16 września 2013 o 23:38 w kategorii Krypto  z tagami:
Zbyt długie hasła okazały się skutecznym atakiem DoS

Popularna platforma programistyczna Django przeznaczona do tworzenia aplikacji internetowych okazała się podatna na ciekawy atak. Utworzenie zbyt długiego hasła użytkownika mogło spowodować tymczasową niedostępność serwera aplikacji.

Zewsząd słychać nawoływania do używania długich haseł i solidnych funkcji skrótu do ich przechowywania. Twórcy platformy Django wzięli sobie te nawoływania do serca, czego skutkiem okazał się łatwy do przeprowadzenia atak DoS. Wczoraj opublikowana została łatka dla platformy, usuwająca źródła problemu. Jak i czemu można było wyłączyć Django?

Po pierwsze, Django stosuje do przechowywania haseł funkcję skrótu PBKDF2. Charakteryzuje się ona możliwością łatwego zdefiniowania złożoności obliczeniowej, dzięki czemu można ją dostosowywać do rosnącej mocy kart graficznych i procesorów. Użycie tej funkcji wraz z odpowiednim parametrem złożoności (np. program do przechowywania haseł używa 10,000 iteracji) gwarantuje, że próby ataku będą bardzo kosztowne – zarówno w formie mocy obliczeniowej, jak i czasu.

Negatywną stroną dużej liczby iteracji jest długi czas obliczania funkcji w trakcie tworzenia konta lub weryfikacji podanego hasła. Z tym problemem spotkało się Django, którego autorzy nie pomyśleli o konieczności ograniczenia długości hasła. Gest wspaniałomyślny dla użytkowników (jak ktoś lubi hasło o długości megabajta, nie ma problemu), jednak serwery nie były zadowolone. Dwa dni temu jeden z użytkowników zwrócił uwagę na możliwość przeprowadzania ataków DoS przy użyciu bardzo długich haseł. Hasło o długości megabajta mogło zawiesić serwer na ok. minutę, a atak można było łatwo zautomatyzować. By uniknąć tego ryzyka długość hasła została ograniczona do rozsądnych 4096 bajtów. Przykład ten pokazuje, że nie zawsze dłuższe oznacza lepsze.