Wycieki baz danych nie muszą być straszne

Wycieki baz danych nie muszą być straszne

Zastanawiałem się dlaczego wciąż saltowane są przestarzałe rodzaje hashy (MD5 – vB), wmawiane jest ludziom, że to uniemożliwi utrudni odzyskanie hasła w razie wycieku bazy danych.
Czemu nie używa się prostej metody używania kodowania informacji, a następnie szyfrowania jej. Pomyślałem o tym przeglądając 
źródło base64:

function decode64(input) {
   var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0;
   input = input.replace(/[^A-Za-z0-9+/=]/g, "");
   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));
 
      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;
 
      output = output + String.fromCharCode(chr1);
 
      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);
   return output;
}

Szyfr ten zwiększa długość danych na wejściu o ~30%, więc zwiększa znacząco poziom trudności szyfrowanego hasła (w przypadku wycieku bazy danych).

Z hasła, które ma 8 znaków:

tygrysek

base64, tworzy hasło które ma 12znaków, składa się z małych, dużych liter i znaku specjalnego:

dHlncnlzZWs=

Następnie wrzucenie tego na wejście do MD5 da wynik

d876121641a8db88842cf7ccb8a8e82d

Zwiększenie trudności hasła jest bardzo duże, hasła wydłużone zostają o 2/3, dodane/zmienione znaki z których się ono składa. Zaszyfrowana wersja hasła jest niesłownikowa, złamanie jej zajmie dużo więcej czasu i energii obliczeniowej używając metody brute-froce.

Znikoma jest trudność hasła “tygrysek“, natomiast by brute-forcem złamać wersję base64 trzeba przeszukiwać 12znakowe hasła używając dużych, małych liter, cyfr i znaków specjalnych co daje 75^12=31676352024078369140625 możliwości!

Programu używające algorytmu, który opisuje w tej metodzie używające do przeliczeń GPU, wielowątkowe CPU nie istnieją, więc o takie zabezpieczenie jest praktyczne, teoretyczne, a na dodatek banalne w implementacji w Twoim CMS.

Nawet jeśli baza danych zostanie wyciągnięta (głównie user+mail+pass), to i tak na niewiele się to zda, bo odzyskanie 10% haseł będzie wielkim wysiłkiem. A żeby poznać algorytm pełnego szyfrowania wymagany będzie dostęp do plików źródłowych!



Wyszukiwarka

Podobne podstrony:
Szkolenia nie muszą być nudne
Rachunkowość - wykłady - 11, Błędy księgowe muszą być poprawione, tak aby nie została naruszona moc
Systemy Baz Danych (cz 1 2)
bd cz 2 jezyki zapytan do baz danych
Modele Baz Danych 2
cwiczonko drugie z baz danych na stopieniek
Access 2002 Projektowanie baz danych Ksiega eksperta ac22ke
Opis baz danych zgodny z TERYT
Oracle8i Podrecznik administratora baz danych or8pab
Okres dojrzewania - nie taki nastolatek straszny, Psychologia rozwoju, Ćwiczenia
Instrukcja korzystania z eduk baz danych iScala Enterprise WSB Wrocław
problematyka masoowego dostepu do baz danych mity i fakty mqsixoztwl26gv7afh6a6hsnoalkzz6a5q7na7a M
Projektowanie baz danych
WYKLAD I - wprowadzenie modele baz danych, Uczelnia, sem V, bazy danych, wyklad Rudnik
Projektowanie baz danych Wykłady Sem 5, pbd 2006.01.07 wykład03, Podstawy projektowania
Oracle9i Podrecznik administratora baz danych or9pab
Materia dodatkowy nt Baz Danych encr
KOMENDY BAZ DANYCH, edu, bazy
Dlaczego depresja nie może być Bożą pedagogią

więcej podobnych podstron