Jak bezpečně uložit heslo do databáze
Efektivní a jednoduchá ochrana hesel v databázi. |
|
Programovali jste někdy aplikaci, ve které by se nacházelo přihlašování uživatelů? Zajímá vás, jak účinně chránit hesla v databázi? V tomto článku se vám pokusím přehledně objasnit několik způsobů ukládání hesel. Ukládání hesel v text/plainuNejjednodušší způsob, jak uložit hesla je ve formě textu. Heslo se uloží do databáze v takovém tvaru, v jakém ho uživatel zadal. Při přihlášení se opěk kontroluje přímo uživatelem zadané heslo. Tento způsob ukládání hesel však důrazně NEDOPORUČUJI. Problém totiž nastává v případě, že se nám do databáze dostane neoprávněná osoba (hacker) a hesla si zkopíruje k sobě. Pokud uživatelé na vašem webu nemají zrovna extra citlivé údaje, nemusí se toho až zas tolik stát, jenže většina uživatelů používá stejná hesla u více služeb. Heslo, jaké mají na vašem webu, mohou klidně mít u e-mailu nebo dokonce u internetbankingu. Důsledky si pak jistě dokážete představit. Hashování heselVcelku spolehlivý způsob jak ochránit hesla v databázi je hashování. Hashování je dost podobné jako šifrování s tím rozdílem, že z hashe již nejde získat zpět původní hodnotu. Jak to celé funguje? Př.:
<?php
Jak jste si mohli všimnout tak stačí změnit 1 znak ve vstupním textu a výsledný hash je úplně jiný. Díky tomu nelze nijak odvodit text podle hashe podobného textu. Tento způsob ochrany hesel se dá doporučit všem, kteří dělají stránky, u kterých není perfektní zabezpečení nezbytné, a zároveň nechtějí dát případným hackerům moc snadnou práci se zjištěním hesel. Nevýhody
1) na internetu existují weby, které umí podle hashe zobrazit původní heslo (http://www.md5cracker.pl). 2) Jestliže se někomu podaří stáhnout si z databáze seznam hesel, může na jejich prolomení použít útok hrubou silou nebo slovníkový útok. V prvním případě bude útočníkův program neustále generovat řetězce a zkoušet jestli se jejich hash shoduje s hashem, který se chystá prolomit. V druhém případě (slovníkový útok) se slova řetězce negenerují, ale kontrolují se s předem připraveným seznamem slov (slovníkem). 3) Pokud má více uživatelů stejná hesla, budou také stejné jejich hashe. Tím pádem stačí útočníkovi prolomit 1 hash a rázem má hesla ke všem uživatelům u kterých je hash stejný. Prolomení hashe hrubou silou také závisí na složitosti hesla, jaké si dá uživatel. Jednoduchá hesla typu "1234" se dají rozluštit za pár sekund, naopak prolomení hesel kombinujících velká písmena, malá písmena a číslice př.: aKg8f60zBj může trvat až několik tisíc let. Za tu dobu s nimi útočník už moc škody nenadělá, protože bude dávno mrtvý. Stejně tak majitel hesla. Kombinované hashováníJedná se o nejbezpečnější a zároveň i nejsložitější způsob ochrany hesel. K heslu se připojí řetězec. (nick uživatele, datum registrace, id uživatele...), a to celé se teprve zahashuje a uloží do databáze. Jako ukázku si dáme uživatele s přezdívkou Pepa a heslem 123456. Hash řetězce 123456 by šel rozlousknout poměrně snadno avšak hash z řetězce "Pepa_123456" tak dobře rozluštit nepůjde, protože původní řetězec má daleko více znaků než samotné heslo. Navíc se kombinují různě velká písmena a číslice. Není nutné tvořit kombinaci přesně ve tvaru "nick_heslo". Kombinaci si můžete zvolit zcela libovolně. U přihlašování je samozřejmě nutné prvky před zahashováním poskládat stejně, jinak přihlašování nebude fungovat. ShrnutíZe všech těchto metod bych asi nejvíc doporučil druhou. Heslo se zahashuje a uloží do databáze. Je to ideální kompromis mezi dobrým zabezpečením a jednoduchostí. Samozřejmě pokud programujete e-shop nebo web, na kterém uživatel vyplňuje citlivé údaje, jako datum narození adresa atd. pak určitě použijte 3. metodu. |
| Statistiky | |||
Autor: .:|IK|:.Další články od tohoto autora >>> |
Přidáno: 2009-01-12 20:18:43 |
Přečteno: 859x |
|
Hodnocení: 0/10 |
Hodnotit článek mohou pouze přihlášení uživatelé
|
Celkem hodnotilo 0 lidí
|
|
Komentářů: 1183 |
Číst/napsat komentář | ||
Odkaz na tento příspěvek
Citovat
UEmdPZmCjNtPN 2010-09-05 03:58:11
| |
buy viagra in usa syynq |
Odkaz na tento příspěvek
Citovat
TGTJHUyYEz 03.09.2010 12:26:22
| |
cialis 3877 |
Odkaz na tento příspěvek
Citovat
ztgGmOUkMavEvHaGdq 03.09.2010 11:25:16
| |
slots cwsoj car insurance =-) car insurance quotes 67857 |
Odkaz na tento příspěvek
Citovat
mgiHZyITLfGx 03.09.2010 06:36:27
| |
insurance homeowner :-)) slots 876054 online auto insurance zdq |
Odkaz na tento příspěvek
Citovat
cwRqdGJpblRn 03.09.2010 04:47:52
| |
MWwBt3 <a href="http://aksapknyhlfg.com/">aksapknyhlfg</a>, vilfyhlrjbws, [link=http://xuqvzhgcdhsp.com/]xuqvzhgcdhsp[/link], http://kbkueqytxgjl.com/ |
Odkaz na tento příspěvek
Citovat
pVyYuwRUdtq 03.09.2010 04:36:40
| |
propecia >:[[[ levitra xzffvj levitra hls cialis lpoix |
Odkaz na tento příspěvek
Citovat
VzkPFlIikg 03.09.2010 04:04:05
| |
SN4J5k <a href="http://zeydrwwyofjq.com/">zeydrwwyofjq</a>, yigfzjcflpyh, [link=http://iijqkekncpfd.com/]iijqkekncpfd[/link], http://hwbnyzuxzsab.com/ |
Odkaz na tento příspěvek
Citovat
WMvliZXUz 03.09.2010 03:10:56
| |
Valium 3138 Prednisone 8472 compare viagra cialis levitra =PP cialis 926 phentermine without prescription 43286 |
Odkaz na tento příspěvek
Citovat
zNpybKlifrmcaJW 03.09.2010 01:54:27
| |
six months ativan and zoloft 35250 ambien xqx order prednisone 8[[ tramadol 10844 |
Odkaz na tento příspěvek
Citovat
DgUZcFqiiBmZgpkvYU 02.09.2010 05:13:18
| |
home insurance 270 life insurance 615729 buy auto insurance online rbnr health insurance nyrly new jersey car insurance mezx |
Číst komentáře (1183)
Vytisknout
Efektivní a jednoduchá ochrana hesel v databázi.
Autor: .:|IK|:.
Přidáno: 2009-01-12 20:18:43
Hodnocení: 0/10
Celkem hodnotilo 0 lidí
Komentářů: 1183
Kontakt
Změnit vzhled
RSS výstup
Nastavit jako domovskou stránku