Co to jest sól i jak ją stosować?

Szukałem i nadal Nie wiem, co to jest " sól " i jak ją wykorzystać/wdrożyć. Przepraszam za noobish pytanie, sam się uczę php.

 41
Author: jwir3, 2011-04-07

6 answers

Zdecydowanie nie jestem ekspertem, ale naprawdę krótka odpowiedź jest taka, że "solenie" linijki tekstu oznacza przyklejenie kilku dodatkowych znaków na końcu. Można solić " sól "z " abcdefg", aby uzyskać "saltabcdefg". Może to być przydatne, jeśli " sól " stanie się hasłem, które chcesz utrudnić do odgadnięcia.

Zazwyczaj hasło + salt jest przekształcane ('hashowane') przez trudny do odwrócenia proces w zupełnie inny ciąg znaków. Ten przekształcony łańcuch jest następnie przechowywany jako hasło, wraz z tekstem jawnym soli, i oryginalny tekst zwykły hasła WŁAŚCIWEGO jest wyrzucany. Jeśli chcesz sprawdzić, czy ktoś wprowadził poprawne hasło, połącz to, co wpisał, z salt, który jest wymieniony w pliku hasła, a następnie hashuj wynik. Jeśli wynik odpowiada hashowi hasła, który masz w Rejestrze, to wiesz, że wprowadzili odpowiednie hasło.

Wdrożenie soli może być tak proste, jak wybranie Sznurka służącego jako sól, a następnie upewniając się, że masz ją śledzić. Ale możesz zmieniać sól z każdym hasłem, a następnie będziesz musiał mieć sposób na śledzenie kombinacji hasło+sól, a także generowanie zmian. Oczywiście prawdopodobnie będziesz chciał również hashować hasło, zamiast zapisywać zwykły tekst hasła, więc będziesz musiał wybrać funkcję skrótu. W tym momencie problem zaczął się od właściwego zasolenia do wdrożenia schematu bezpieczeństwa hasła.

Dla PHP, ty warto przyjrzeć się, w jaki sposób niektóre z frameworków to wdrożyły. Dwa Szybkie linki, odpowiednio dla CakePHP i Zend:

Http://www.jotlab.com/2010/04/18/cakephp-rainbow-table-protection-behaviour/

Http://www.zimuel.it/blog/2009/07/build-a-secure-login-with-zend-framework/

 43
Author: Approximately Linear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-22 06:57:04

Kiedy po raz pierwszy zadałem to pytanie, wiele lat temu, zapytano mnie w odpowiedzi: "co sól robi dla żywności?"Odpowiedź jest taka, że dodaje różnorodności żywności. Idea cryptographic salt polega na tym, że jest to coś, co dodaje się do końca lub początku ciągu znaków, aby dwa hasła, które są identyczne, nie mieszały się do tej samej wartości kryptograficznej.

Rozważ to-gdybym miał hasło, które było naprawdę powszechne, jak 'hello123', a następnie hashował do dokładnie tego samego kryptograficznego hasha, co wszystkie inne hasła 'hello123', czy nie mógłbym po prostu zajrzeć na listę hashowanych haseł, aby zobaczyć, kto jeszcze miał ten sam hash kryptograficzny i użyć mojego hasła na swoim koncie?

 25
Author: jwir3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-07 16:53:32

Dobrze jest w komentarzach, dzięki ceejayoz

Http://en.wikipedia.org/wiki/Salt_

Sól to coś, co dodajesz do ciągu znaków przed jego hashowaniem, dodaje kolejną warstwę bezpieczeństwa do haseł i tym podobnych.

 6
Author: Neal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:05

Salt to (krótki) łańcuch, który jest dodawany do łańcucha, który chcesz zaszyfrować lub hashować. Przykład:

<?php
 $password = 'abcdefg';
 $salt = 'anythingyouwant_';
 $pw_hash = md5($salt.$password);
?>

To dodaje bezpieczeństwo hashowi, ponieważ jest mało prawdopodobne, aby "anythingyouwant_abcdefg" był już przechowywany w bazie danych hash ( http://en.wikipedia.org/wiki/Rainbow_tables )

 6
Author: Sutuma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-07 16:52:01

Z jakiegoś powodu. Sole są zwykle trudne do uchwycenia dla osób początkujących w kryptografii. Po kliknięciu koncepcja jest niezwykle prosta. Spójrz na ten artykuł. Myślę, że to wyjaśnia pojęcie lepiej niż większość.

Http://cryptodox.com/Salt_%28cryptography%29

 0
Author: Matthew Vines,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-07 16:50:47

Urozmaicmy trochę rzeczy, łącząc kilka algorytmów haszujących, tworząc podwójny algorytm haszujący:

$password = "myPassword";
$salt = sha1(md5($password)).'k32duem01vZsQ2lB8g0s'; 
$password = md5($password.$salt);

Jak widzisz, najpierw zahaszowaliśmy hasło za pomocą algorytmu podwójnego haszowania (md5 i sha1) i połączyliśmy z kluczem utworzonym przez wartość salt. Następnie połączyliśmy prawdziwe hasło z wygenerowaną wartością salt i ponownie zahaszowaliśmy je za pomocą md5. Zaletą jest to, że w ten sposób wartość alt jest losowa i zmienia się, co czyni ją prawie niemożliwą do złamania. To znaczy, jeśli możesz poczekaj milion lat i masz super komputer na rękach, spróbuj go złamać.

 0
Author: Mahendra Jella,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-21 07:06:47