Czy na podstawie hashu i wiedzy tego co jest pod nim można poznać hasło ?

Odpowiedz Nowy wątek
2016-01-09 23:45
Wielki Pomidor
0

Witam

Dajmy na to mam słowo "tak" zaszyfrowane 32 bitowym algorytmem. Czy na podstawie hashu i wiedzy iż pod tym hashem jest słowo "tak" można w łatwy sposób odgadnąć hasło jakim to słowo zostało zaszyfrowane?

Pozostało 580 znaków

2016-01-09 23:56
3
  1. Hashowanie to nie jest szyfrowanie i nie wymaga zwykle żadnego klucza. Jednocześnie jest nieodwracalne i niejednoznaczne. Oznacza to że wiele różnych tekstów sprowadza sie do identycznego hasha. W zasadzie dla hashów o stałej długości (jak md5 czy rodzina sha) istnieje nieskończenie wiele ciągów które generują identyczne hashe.
  2. Są szyfrowania podatne na atak ze znanym tekstem jawnym (choćby proste xorowanie przez stały klucz), ale są też takie które na taki atak nie są podatne. Nie ma odpowiedzi "ogólnej", jest tylko odpowiedź dotycząca konkretnego algorytmu szyfrowania.

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2016-01-09 23:57
Pokaż pozostałe 5 komentarzy
@S-cat ale taką kolizję musisz znaleźć a to nie jest wcale takie trywialne ;) Wszystkich możliwych ciągów jakiegoś sha-256 jest mimo wszystko bardzo bardzo dużo. A jak hasła są do tego solone to musisz łamać je pojedyńczo. - Shalom 2016-02-20 21:23
Okey dzięki :) 28 znaków? To prędzej wprowadzone do użytku zostaną myszki z czytnikami linii papilarnych na klawiszach i żadne hasło już nie będzie potrzebne :p - S-cat 2016-02-20 22:00
@S-cat możliwe, że będzie. Oczywiście słabym punktem będzie kodowanie i protokół przesyłu sygnatury odcisku palca. - xfin 2016-02-20 23:40
No cóż, wszystko przed nami. :) - S-cat 2016-02-21 01:53
@S-cat btw, jak znajdziesz kolizje w sha2 to pisz najpierw do mnie :D - pingwindyktator 2016-02-21 03:38

Pozostało 580 znaków

2016-01-10 00:28
Wielki Pomidor
0

Dzięki @Shalom.

Pozostało 580 znaków

2016-02-20 20:10
0

No dobra ale weźmy dla przykładu SHA256 i hash_hmac z PHP:

$input_str = 'Foo boo';
$hash_key = 'gdzx7rX22ncK8Ne';
$hash_method = 'sha256';
$output_str = hash_hmac($hash_method, $input_str, $hash_key);

Ten hash_key wygenerowany jakimś generatorem losowych haseł i zapisany gdzieś w config.php w aplikacji webowej, w przypadku jego zmiany nie zalogujecie się bo hasła były zapisane w bazie na hash_key który przez nie uwagę albo przypadek zmieniliście. Tzn. na ile ten hash key ma przełożenie na bezpieczeństwo i jak długi powinien być?

edytowany 2x, ostatnio: drorat1, 2016-02-20 20:12

Pozostało 580 znaków

2016-02-20 20:26
0

No i jeszcze to:
http://stackoverflow.com/ques[...]nerate-the-same-md5-hash-code
http://stackoverflow.com/ques[...]le-to-get-identical-sha1-hash

Czyli na ile jest prawdopodobne że ktoś innym hasłem się zaloguje i jak to się ma do praktyki? Wiki podaje że w nowych aplikacjach nie powinno się stosować SHA1 a co dopiero MD5.

https://pl.wikipedia.org/wiki/SHA-1

Czy to znaczy że SHA256, SHA384 albo SHA512 z odpowiednim hash key wykorzystanym w hash_hmac daje na tyle względne bezpieczeństwo że nie ma co się tym przejmować, bo prawdopodobieństwo włamania jest znikome?

Pozostało 580 znaków

2016-02-20 21:34
0

Ten hash_key to prawdopodobnie sól, która ma udaremnić stosowanie tablic tęczowych. Sól tak skomplikowana jak ta podana jest spoko.

Dobry hash to taki, w którym znalezienie kolizji jest trudne.

Jeśli ktoś się włamie i pozna hash_key to co z tego? Przy użyciu dobrego hasha i tak odtworzenie haseł powinno być trudne (tzn możliwe tylko brute-forcem).

Solenie haseł nie jest po to, by utrudnić włamania, tylko po to by utrudnić odtworzenie haseł z hashy.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2016-02-20 21:34

Pozostało 580 znaków

2016-02-20 22:36
Krwawy Lew
0

Znacie jakieś książki, w których wspomniane zagadnienia są szczegółowo opisane, wyjaśnione?

Pozostało 580 znaków

2016-02-20 22:40
0

Solenie jest po to żeby nie złamać całej bazy jednymi tablicami tęczowymi ;) Jeśli każdy user ma unikalną sól to trzeba generować tablice / szukać kolizji dla każdego usera z osobna. Jesli soli nie ma to możemy porównywać otrzymane hashe ze wszystkim w bazie więc szansa że coś złamiemy jest dużo większa.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-02-21 13:03
0

Coś jest tutaj na temat md5:
http://stackoverflow.com/ques[...]3/examples-of-hash-collisions
http://www.mscs.dal.ca/~selinger/md5collision/

Sprawdzałem to co w tym artykule, faktycznie dwa pliki exe: hello.exe oraz erase.exe mają te same sumy kontrolne md5. Ciekawe :-)

I teraz najlepsze :-) Frameworki PHP mają np. cache danych do plików i tak np. Laravel ma md5 jako nazwy plików cache które są ustalane na podstawie nazwy klucza tego co ma być zapisane w cache.

Fragment z FileStore.php

    /**
     * Get the full path for the given cache key.
     *
     * @param  string  $key
     * @return string
     */
    protected function path($key)
    {
        $parts = array_slice(str_split($hash = md5($key), 2), 0, 2);

        return $this->directory.'/'.implode('/', $parts).'/'.$hash;
    }

I teraz gdyby wystąpiła taka kolizja to teoretycznie albo aplikacja działała by niepoprawnie, coś by się może wywaliło albo użytkownik widziałby nie te dane które powinien. Pytanie, na ile to prawdopodobne?

Pozostało 580 znaków

2016-02-22 11:35
1

Na tyle mało prawdopodobne że nikt się tym nie przejmuje. md5 ma 128 bitów czyli generuje 2128 różnych ciągów. Szansa że dla dwóch losowych plików hash się powtórzy jest jak 1/2128 czyli dość niewielka. Nawet biorąc pod uwagę wiele plików w których szukasz konfliktu i stosując zasadę znaną paradoksu dnia urodzin, nadal masz raptem prawdopodobieństwo n(n-1)/2129 że jakaś para plików ma ten sam hash. Czyli zeby to było realne zagrożenie musiałbyś mieć tyle plików że n2 jest zbliżone do 2129 czyli n jest zbliżone 264.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2016-02-22 11:35

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0