sql >> Databáze >  >> RDS >> Sqlserver

ukládání hesel na SQL Server

Obvyklým způsobem uložení hesla je použití hashovací funkce na heslo, ale salt to předem. Důležité je heslo „osolit“, bránit se duhovému stolu útoky.

Takže váš stůl by měl vypadat nějak takto

._______._________________.______________.
|user_id|hash             |salt          |
|-------|-----------------|--------------|
|12     |[email protected]|13%!#tQ!#3t...|
|       |...              |...           |

Při kontrole, zda se dané heslo shoduje s uživatelem, byste měli zřetězit sůl k danému heslu a vypočítat hashovací funkci výsledného řetězce. Pokud se výstup hashovací funkce shoduje s hash sloupec - je to správné heslo.

Je však důležité pochopit, že myšlenka salt-hash má konkrétní důvod -- zabránit komukoli s přístupem k databázi, aby znal heslo kohokoli (to je považováno za obtížný problém zvrátit výstup hashovací funkce). Například DBA banky by se tedy nemohl přihlásit k vašemu bankovnímu účtu, i když má přístup ke všem sloupcům.

Měli byste také zvážit jeho použití, pokud se domníváte, že vaši uživatelé budou používat citlivé heslo (například heslo ke svému účtu gmail) jako heslo k vašemu webu.

IMHO to není vždy bezpečnostní prvek, který je potřeba. Měli byste se tedy zamyslet, zda to chcete nebo ne.

Viz tento článek pro dobré shrnutí tohoto mechanismu.

Aktualizace: Za zmínku stojí, že pro extra zabezpečení proti cílenému útoku na zvrácení hash individuálního hesla byste měli použijte bcrypt , což může být libovolně obtížné vypočítat. (Ale pokud se opravdu nebojíte tajemného muže v černém, který zacílí na vaši konkrétní databázi, myslím, že sha1 je dost dobrý. Nezaváděl bych pro svůj projekt další závislost pro toto extra zabezpečení. To znamená, že není důvod nepoužívat sha1 100krát, což by poskytlo podobný efekt).



  1. Nápověda k dotazu SQL - mají dvě podmínky kde v podmínce spojení

  2. Připojení Google Data Studio a AWS MySQL SSL

  3. Co je fulltextový index a kdy jej mám použít?

  4. Úpravy překódování MySQL pomocí formuláře HTML