Poslední dobou me začala docela trápit otázka bezpečnosti. Přihlašuju se na wifi ve škole. Není tam nastavené žádné šifrování ani nic. V dnešní době, kdy s Etherealem dokáže odchytit heslo i malé dítě, se mam proč bát. A když uvážím to, že někteří někteří moji spolužáci mají větší schponosti než malé dítě..
Tak jsem se rozhodl, že tam kde můžu s tím něco udělám. Bohužel většina free providerů neposkytuje https, takže můj sen o jednoduchém systémovém řešení se hodně rychle rozplynul.
Zkusil jsem si naprogramovat vlastní zabezpečené přihlašování v php. Moje požadavky:
- nemít možnost přečíst si heslo v databázi jako plain/text
- neposílat heslo plain/text vzduchem
- nemít možnost znovupoužití odchycených dat
Tak jsem napsal skript používající php a javascript, který funguje přibližně takhle:
- server vygeneruje sůl (nahodný řetězec a timestamp)
- uživatel zada jmeno a heslo do formuláře
- javascript zahashuje heslo
- javascript zahashuje první hash se solí
- hash(hash(heslo)+sul) se pošle serveru
- server zkontroluje platnost dat
K tomuhle navíc po 20 špatných přihlášeních zabanuju ip adresu na pul hodiny. Pro ostatní paranoiky je dobrá zpráva to, že jsem si to vystavil na stránce – je to zdroják, takže si to můžou překontrolovat a taky používat.
Dobre reseni a hlavne stranky plne dalsich zajimavych projektu, ci projektiku.
no v php 5 existuje v repozitari PEAR taka zaujimava trieda, ktora sa vola HMAC – tak si to nastuduj … GL