sql >> Databáze >  >> RDS >> Mysql

Vylepšete hašování hesel pomocí náhodné soli

Útočník je "povolen" znát sůl – vaše zabezpečení musí být navrženo tak, aby i se znalostí soli bylo stále bezpečné.

Co dělá sůl?

Sůl pomáhá při obraně proti útokům hrubou silou pomocí předem vypočítaných „duhových tabulek“.
Sůl činí hrubou sílu pro útočníka mnohem dražší (z hlediska času/paměti).
Výpočet takové tabulky je drahé a obvykle se provádí pouze v případě, že jej lze použít pro více než jeden útok/heslo.
Jestliže použijete stejnou sůl pro všechna hesla, útočník by mohl předem vypočítat takovou tabulku a pak brutálně vnutit vaše hesla do čistého textu ...
Pokud vygenerujete novou (nejlépe kryptograficky silnou) náhodnou sůl pro každé heslo, jehož hash chcete uložit, není problém.

Pokud chcete zabezpečení dále posílit
Můžete vypočítat hash několikrát (hash hash atd.) - nestojí vás to moc, ale útok hrubou silou / výpočet "duhových tabulek" to bude ještě dražší... prosím don Nevymýšlejte se – existují osvědčené standardní metody, jak to udělat, viz například http://en. wikipedia.org/wiki/PBKDF2 a http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard

POZNÁMKA:

Použití takového mechanismu je v dnešní době povinné protože „CPU time“ (použitelný pro útoky typu rainbow tables/brute force atd.) je stále více dostupný (viz například skutečnost, že cloudová služba Amazonu patří mezi 50 nejrychlejších superpočítačů na světě a může ji používat kdokoli za poměrně malou částku)!



  1. Rozdělení řetězce na serveru SQL

  2. Zkontrolujte, zda pole Postgres JSON obsahuje řetězec

  3. Význam transakčního protokolu na SQL Serveru

  4. Kde je můj neplatný znak (ORA-00911)