NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s podporou uplatnění od 0 Kč. Více informací.

Diskuze: Ukládání hesel v SQL databázi

V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Neaktivní uživatel:28.12.2016 20:41

Ahoj,

chtěl bych se zeptat, kterým nejlepším způsobem lze uchovávat hesla uživatelů v databázi. Je mi jasné, že heslo musí být hashované a ideálně osolené, ale nejsem si úplně jistý se sloupci.

Díky

Odpovědět
28.12.2016 20:41
Neaktivní uživatelský účet
Avatar
Lu Kiss
Člen
Avatar
Odpovídá na Neaktivní uživatel
Lu Kiss:28.12.2016 21:40

podle mě to je úplně jedno, hlavně že tam bude uložený hash a ne přímo heslo. Já používám název sloupce password (tak to má v sandboxu Nette)

 
Nahoru Odpovědět
28.12.2016 21:40
Avatar
Odpovídá na Lu Kiss
Neaktivní uživatel:28.12.2016 21:59

Jo, jen mi jde o to, že jsem viděl příklady databází, kde byl sloupec se solí, což mi nepřijde úplně ok

Nahoru Odpovědět
28.12.2016 21:59
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Martin Štěpánek :28.12.2016 22:55

No to mi přijde (nevím jestli to tak skutečně je) bezpečnější. Protože pro každého uživatele máš i unikátní sůl a případnému útočníkovi to stejně nepomůže když bude znát sůl, protože u každého bude jiná zatímco kdyby se nějakým způsobem dostal k jedné soli používanou pro všechny uživatele. :-)

Nahoru Odpovědět
28.12.2016 22:55
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Martin Štěpánek
Petr Čech:28.12.2016 23:01

To dost záleží na prostředí. Třeba takové PHP produkuje řetězec, kde je jak osolený hash, tak sůl. Ale jinde to tak být nemusí, potom bys musel sůl samozřejmě uchovat v jiném sloupci.
A separátní sloupec je úplně ok, vždy musíš znát sůl, nejen hash. Možná by sis měl přečíst něco o tom, proč se solí.

Editováno 28.12.2016 23:03
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
28.12.2016 23:01
the cake is a lie
Avatar
Odpovídá na Petr Čech
Neaktivní uživatel:28.12.2016 23:56

O kryptografii se zajímám, jen mám trochu problém s tím, jestli ten sloupec se solí nebude zranitelností v případě odcizení databáze.

Oprava: Nevšiml jsem si předposlední odpovědi.

Editováno 28.12.2016 23:58
Nahoru Odpovědět
28.12.2016 23:56
Neaktivní uživatelský účet
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Petr Čech:29.12.2016 1:26

Ne, nebude. Proto by sis měl něco přečíst o tom, jak to přesně funguje.
Zkrátka jde o to, že potřebuješ mít pro každého uživatele jinou sůl. Je zcela bezpečné uložit ji v plaintextu, vlastně je to nutnost, abys byl schopen to heslo ověřit. Je jen otázka, jak to uděláš, některý přístup spočívá v tom, že spojíš sůl a hash do jednoho stringu (a při ověření rozdělíš), jindy ho uložíš do jiného sloupce, bezpečnost je úplně stejná.
Každopádně bys měl mít pro každého uživatele náhodnou sůl (ne nutně unikátní) a nepoužívat vždy tu samou, teoreticky je to lepší.

Nahoru Odpovědět
29.12.2016 1:26
the cake is a lie
Avatar
mixxy
Člen
Avatar
mixxy:29.12.2016 1:27

Můžeš si taky salt vygenerovat na zaklade nějakých vstupních informaci uživatele třeba cast jmena a cast příjmení a cast mailovky a mas pro každého uživatele unikátní salt ;-) Moznosti zalezi na zkušenostech v danem programovacím jazyku ;-)

Nahoru Odpovědět
29.12.2016 1:27
Neni dulezite mnoho vedet a znat. Dulezite je vedet, co je treba.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.