Bezpieczeństwo i haszowanie haseł WordPress

Opublikowany: 2017-11-10

Hasła są formą uwierzytelniania powiązaną z użytkownikami lub procesami. Służą do sprawdzania tożsamości użytkownika lub procesu w systemie komputerowym lub zasobach. W dzisiejszej, nowoczesnej sieci ultra-łączności, urządzeń IoT i urządzeń mobilnych, bezpieczeństwo haseł jest tematem poważniejszym niż kiedykolwiek. Wycieki bazy danych haseł zdarzają się cały czas, na co wpływają duże firmy, takie jak LinkedIn, Tumblr i Yahoo. Bob Diachenko z MacKeeper Security napisał na początku tego roku o gigantycznej liście 560 milionów adresów e-mail/hasła, która została znaleziona swobodnie w Internecie!

W tym artykule omówimy trzy rzeczy związane z hasłami i WordPress:

  1. Silne generowanie i zarządzanie hasłami.
  2. Jak WordPress robi haszowanie haseł.
  3. Wdrażanie własnego haszowania hasła.

Słabe i silne hasła

Siła hasła, pod względem złożoności siłowej, jest tematem wielu dyskusji, a pojęcie siły hasła zostało w dużej mierze przedefiniowane na przestrzeni dziesięcioleci, ponieważ mocniejsze zasoby obliczeniowe stają się łatwo dostępne dla jednostki. Światowej sławy ekspert ds. bezpieczeństwa Bruce Schneier napisał doskonały post omawiający bezpieczeństwo haseł i wybór bezpiecznych haseł.

Mówiąc o sile hasła, należy uwzględnić kontekst i poziom zagrożenia:

Inaczej jest i znacznie trudniej, gdy atakujący próbuje odgadnąć Twoje hasło do WordPressa, niż gdyby naruszył Twoje bezpieczeństwo i miał dostęp do całej listy zaszyfrowanych haseł.

W pierwszej sytuacji atakujący zostanie szybko zablokowany przez usługę uwierzytelniania z powodu zbyt wielu prób logowania w krótkim czasie. Zazwyczaj atakujący odkrywają hasła innymi sposobami, innymi niż brutalne wymuszanie, takie jak phishing, złośliwe oprogramowanie i tym podobne. Jeśli jednak cel wybrał hasło, używając stosunkowo publicznych informacji, takich jak data, imię/nazwisko itp., Atakującemu łatwiej będzie je odgadnąć.

W drugiej sytuacji, jeśli atakujący ma dostęp do pliku z hasłami, może to być tylko kwestią czasu, szczególnie jeśli użyta funkcja skrótu to MD5. Był zepsuty i okazał się niepewny już dawno temu. Atakujący może użyć nowoczesnego sprzętu (takiego jak karty graficzne) w połączeniu z wstępnie obliczonymi tabelami „tęczy”, aby odszyfrować cały plik haseł w bardzo krótkim czasie. Dodatkowo, w skrajnych przypadkach, hasła wszystkich użytkowników są przechowywane w bazie danych w postaci „zwykłego tekstu”. W obu tych przypadkach „siła” Twojego hasła zostaje unieważniona.

Jak generować i przechowywać silne hasła

Najlepiej pozostawić generowanie haseł i zarządzanie nimi zaufanemu komputerowi, zamiast próbować regularnie wymyślać silne hasła. Jesteś człowiekiem i nieuchronnie popełnisz błąd i wybierzesz coś, co komputer uważa za słaby wybór.

Korzystanie z menedżera haseł do generowania i przechowywania haseł dla każdej usługi jest wydajne i przy najmniejszym zagrożeniu. Chociaż myśl o przechowywaniu wszystkich haseł w jednym miejscu może być denerwująca, w rzeczywistości jest to plus: wiedząc, że wszystkie hasła znajdują się w jednym miejscu, możesz je łatwiej zabezpieczyć. Koniec z używaniem przypadkowych kartek papieru lub kombinacji słabych haseł, które można łatwo zapamiętać, ale które można łatwo odgadnąć. Ponadto menedżer haseł może pomóc w generowaniu silnych haseł bez żadnych problemów.

Najpopularniejszym (i najdroższym) wyborem jest 1Password, ale możesz spróbować użyć tego dostarczonego w systemie operacyjnym (takiego jak Apple iCloud KeyChain) lub skorzystać z wieloplatformowego rozwiązania typu open source, takiego jak KeePass.

Hostuj swoją stronę internetową z Pressidium

60- DNIOWA GWARANCJA ZWROTU PIENIĘDZY

ZOBACZ NASZE PLANY

Hashowanie hasła WordPress

Haszowanie hasła to technika, w której hasło w postaci zwykłego tekstu jest przekazywane do funkcji skrótu i ​​konwertowane na długą wartość alfanumeryczną. WordPress używa tego do przechowywania ich w bazie danych, zapobiegając bezpośredniemu odczytywaniu haseł WordPressa przez wścibskie oczy. Kiedy logujesz się do WordPressa i wysyłasz hasło, oblicza on hash i porównuje go z tym w bazie danych. Jeśli jest taki sam, otrzymujesz dostęp, jeśli nie, odmawiasz go. Ta metoda działa, ponieważ określony ciąg tekstowy (w tym przypadku hasło WordPress) zawsze wygeneruje tę samą wartość skrótu. Ponieważ wartości skrótu nie można przekonwertować z powrotem do oryginalnego tekstu, WordPress może wiedzieć, że wpisałeś poprawną wartość, tylko jeśli wartość skrótu podanego hasła i hasła przechowywanego w bazie danych są identyczne.

Domyślnie funkcja WordPress wp_hash_password() używa 8-przebiegowego algorytmu MD5 do generowania skrótów. Jednak MD5 został pomyślnie złamany przy użyciu połączenia nowoczesnego sprzętu i techniki zwanej tęczowymi tablicami, która przechowuje ogromną ilość wstępnie obliczonych wartości. Pomagają one atakującemu wypróbować miliardy kombinacji na sekundę na tylko jednym nowoczesnym procesorze graficznym.

Zaimplementuj własne hashowanie hasła WordPress

Możesz (i powinieneś) wybrać inną implementację, taką jak Bcrypt, przekazując krotkę (16, FALSE) do obiektu PasswordHash w instancji. Obie funkcje wp_hash_password() i wp_set_password() są podłączalne, więc możesz podać własną implementację. Można je znaleźć w wp-includes/pluggable.php.

Roots.io (osoby stojące za systemem Trellis, Bedrock i Sage boilerplate WordPress) wydali również wtyczkę WordPress, która implementuje funkcjonalność bcrypt dla domyślnych funkcji skrótu WordPress.

Wniosek

Aby mieć pewność, że używasz silnych haseł i często je zmieniasz, najlepiej jest użyć menedżera haseł. Dzięki temu wszystkie hasła są uporządkowane w jednym miejscu i przypominają o konieczności ich zmiany. Jeśli chodzi o haszowanie haseł, najlepiej jest użyć kryptograficznie bezpiecznego algorytmu, takiego jak SHA-2 lub Bcrypt, zamiast wracać do domyślnego WordPressa. Najlepiej jest unikać zmiany własnej funkcji skrótu, ponieważ jeden błąd może spowodować problemy z bezpieczeństwem.