Studio Multimedialne ljasinski.pl

  • O mnie
  • Blog
  • Prelekcje
  • Portfolio
  • Kontakt
Jesteś tutaj: Strona główna / Komputery / Bezpieczeństwo przechowywania haseł – solony hasz

Bezpieczeństwo przechowywania haseł – solony hasz

26 marca 2010 by lucasyas Zostaw komentarz

Jak wspomniałem we wcześniejszym poście, nie należy umieszczać hasła w bazie danych w postaci jawnej. Zabezpiecza nas to przed uzyskaniem dostępu do haseł przez osoby nieuprawnione. Sam hash nie stanowi jednak pełnego zabezpieczenia. Dlaczego?

Słabym punktem w bezpieczeństwie haseł jest użytkownik. Ułoży on sobie dajmy na to hasło „Andzia” i uważa się za bezpiecznego. Tymczasem włamywacz po dostaniu się do bazy danych, będzie miał hashe wszystkich haseł użytkowników. Część z nich da sobie w tym momencie spokój. Jednak nie bądźmy zbytnimi optymistami – znikoma część. Jak już pisałem, programiście potrzebna jest zdrowa doza paranoi. Wracając do naszego włamywacza. Podstawową metodą działania będzie tutaj atak słownikowy lub brute-force. W przypadku „zdobytej” bazy danych są one dużo prostsze niż w przypadku formularza logowania – wystarczy przygotować sobie wcześniej lub ściągnąć tablicę hashy przygotowaną na podstawie słownika lub powiedzmy kombinacji do 8 znaków. W tym momencie porównujemy zahashowane hasło z bazy danych z naszą listą gotowych hashy. Gdy trafimy – znamy hasło ofiary. Najczęściej pasujące również do konta poczty elektronicznej i Bóg jeden wie do czego jeszcze.

Część serwisów stosuje jako zabezpieczenie hashowanie wielokrotne. Np. [cci]md5(sha1($haslo));[/cci]. Jest to pewne utrudnienie dla atakującego, choć prawdopodobnie, jeżeli uzyskał dostęp do bazy danych, jest on także w stanie uzyskać dostęp do kodu serwisu i sprawdzić sekwencję hashowania. Jeżeli nie to pozostają mu przygotowane tablice sekwencji hashujących.

Najlepszym zabezpieczeniem jest hashowanie czegoś więcej niż samego hasła użytkownika. Niektóre systemy dodają do hasha sól definiowaną w pliku konfiguracyjnym. Jest to dosyć kiepskie rozwiązanie ponieważ dostęp do kodu źródłowego wystarczy, by przygotować kolejną tablicę hashy gotowych do szukania w bazie. Można za to np. hashować ciąg znaków składający się z hasła + adres e-mail. Daje to przeciętnie długość ok. 25 znaków. Dla porównania, od ok. 10 znaków przygotowanie tablicy predefiniowanych hashy i porównywanie ich z bazą staje się dość mocno problematyczne – mówimy o biliardach kombinacji. Stosuje się tu praktycznie już tylko o ataki słownikowe. Hash zmienny ma jeszcze jedną zaletę – by go złamać, tablicę hashy trzeba generować osobno dla każdego rekordu w bazie. Z taką metodą przechowywania nasi użytkownicy mogą czuć się naprawdę bezpiecznie.

Podobne

W kategorii:Komputery Tagi:bezpieczeństwo, hash, PHP, salt, sql

Leave a Reply Cancel reply

WP Core Contributions

  • [47004] Shortcodes: Introduce `apply_shortcodes()` as an alias for ...

View the ticket on Trac.

Tagi

*.tk .htaccess android Apache apple bezpieczeństwo bing blog bumblebee chrome darmowe domeny e-mail facebook firefox ftp generator liczb pseudolosowych git gmail google google analytics Google apps google docs Google drive google logo hasła instagram kernel microsoft mysql PHP plugin prywatność rich snippet seo serp spam twitter ubuntu VMware webmaster windows wordcamp wordpress youtube

Najnowsze komentarze

  • Arek - Jak dodać swap do ubuntu
  • refy - Zakładanie darmowej domeny *.tk
  • bezrobotny niepełnosprawny magister - Darmowe domeny – one naprawdę istnieją
  • lucasyas - Jak Lenovo sobie leci…
  • lucasyas - Jak Lenovo sobie leci…

Obserwuj mnie na Twitterze

My Tweets

Copyright © 2022 · ljasinskipl-genesis on Genesis Framework · WordPress · Zaloguj się

Ta strona korzysta z ciasteczek w celach statystycznych oraz dla wyświetlania reklam. Jeżeli nie wyrażasz na to zgody, możesz to zmienić korzystając z ustawień swojej przeglądarki internetowej. Akceptuję
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT