<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kubiczek devblog &#187; programowanie</title>
	<atom:link href="http://blog.kubiczek.eu/tag/programowanie/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kubiczek.eu</link>
	<description>I&#039;m lovin&#039; it ;)</description>
	<lastBuildDate>Thu, 19 Jan 2012 12:09:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Kto nie szyfruje ten trąba</title>
		<link>http://blog.kubiczek.eu/2009/09/kto-nie-szyfruje-ten-traba/</link>
		<comments>http://blog.kubiczek.eu/2009/09/kto-nie-szyfruje-ten-traba/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 20:13:54 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Artykuły i felietony]]></category>
		<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[programowanie]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=185</guid>
		<description><![CDATA[Jak wiele serwisów, w których założyłeś konto, nie szyfruje twoich haseł? Niewiele? Wiele? A może bardzo wiele? Wydawać by się mogło, że serwisy www przechowujące w swoich bazach jawnie zapisane hasła, to jedynie margines internetu. Bo któż, kto nie ma niecnych zamiarów, naraża swoich użytkowników na poważne niebezpieczeństwo? Jednak po ostatnich aferach związanych z wyciekiem [...]]]></description>
			<content:encoded><![CDATA[<p>Jak wiele serwisów, w których założyłeś konto, nie szyfruje twoich haseł?</p>
<p>Niewiele? Wiele? A może bardzo wiele? Wydawać by się mogło, że serwisy www przechowujące w swoich bazach jawnie zapisane hasła, to jedynie margines internetu. Bo któż, kto nie ma niecnych zamiarów, naraża swoich użytkowników na poważne niebezpieczeństwo?</p>
<p>Jednak po ostatnich aferach związanych z wyciekiem haseł na Wykopie, akcji <a id="yo4o" title="&quot;Bezpieczne konto&quot; na Allegro" href="http://di.com.pl/news/28001,0,Allegro_kontrowersje_wokol_sposobu_przechowywania_hasel.html">&#8220;Bezpieczne konto&#8221; na Allegro</a> czy sprawie związanej z dostępnością haseł na platformie Istore (<a id="ty2n" title="pisał o tym E-Komers" href="http://www.e-komers.pl/index.php/2009/09/istore-z-allegro-ma-niezakodowane-hasla/">pisał o tym E-Komers</a>) okazuje się, że nawet poważni gracze pozwalają sobie na niepoważne zachowanie. Co więcej, okazuje się, że nie tylko ci najwięksi: podczas przeprowadzanego niedawno audytu średniej wielkości serwisu, natrafiłem w nim na podobną <em>przypadłość</em>. Serwis napisany stosunkowo poprawnie, zabezpieczony przed typowymi atakami, ale obsługa haseł zrealizowana wybitnie nieprawidłowo. I nie był to pierwszy raz, gdy stwierdziłem tego typu zaniedbanie. Tak więc poniżej krótkie przypomnienie dla projektantów, project managerów i inszych programistów. Ludzie, to są podstawy!</p>
<p><strong>Zagrożenia jakie niesie za sobą przechowywanie haseł w formie jawnej:</strong></p>
<p>1. Administrator serwisu, administrator serwera oraz prawie każdy programista zajmujący się utrzymaniem czy rozbudową serwisu otrzymują nieskrępowany wgląd w hasła użytkowników.</p>
<p>2. Istnieje możliwość wycieku haseł na wskutek włamania czy kradzieży bazy danych.</p>
<p>3. Istnieje możliwość wycieku haseł w wyniku błędu oprogramowania.</p>
<p>4. Istnieje możliwość wycieku haseł w wyniku błędnej konfiguracji serwera, np. gdy inny użytkownik bazy danych otrzyma uprawnienia do przeglądania cudzych zasobów.</p>
<p>5. Istnieje możliwość przechwycenia hasła wysyłanego w mailu &#8211; efekt nieprawidłowo zrealizowanej funkcji &#8220;Przypomnij hasło&#8221;.</p>
<p><strong>Czy szyfrowanie haseł algorytmem dwustronnym zwiększa bezpieczeństwo?</strong></p>
<p>Tak, ale tyle co nic. :) Jest wielce prawdopodobne, że włamując się na serwer hacker zdobędzie również informacje potrzebne do odszyfrowania haseł. Powiedzmy zresztą sobie jasno &#8211; w 99.999% przypadków serwisów webowych nie ma takiej potrzeby, aby hasło użytkownika mogło być odczytane w oryginalnej postaci. Nie ma i basta.</p>
<p><strong>Jak mantrę należy więc powtarzać podstawowe zasady:</strong></p>
<p>1. Hasła szyfrujemy algorytmem jednostronnym (generujemy skrót MD5 czy SHA) i tylko w takiej postaci przechowujemy je w bazie.</p>
<p>2. W celu zapobieżenia wykorzystaniu przez włamywacza <a id="omca" title="Rainbow Tables" href="http://pl.wikipedia.org/wiki/T%C4%99czowe_tablice">Rainbow Tables</a> w łamaniu haseł metodą Brute Force, przed utworzeniem skrótu hasła dodajemy do niego tzw. salt, czyli przypadkowy ciąg znaków przechowywany gdzieś poza samą bazą danych.</p>
<p>3. Nie wysyłamy hasła w poczcie email, nawet zaraz po rejestracji. Użytkownicy nie kasują takich wiadomości, przez co ich hasła stają się podatne na zdobycie w kolejny sposób (atak na skrzynkę pocztową).</p>
<p>4. Funkcję &#8220;przypomnij hasło&#8221; najbezpieczniej jest zrealizować poprzez generowanie unikalnego linku (z trudnym do odgadnięcia identyfikatorem &#8211; np. z użyciem funkcji <a id="jsav" title="uniqid" href="http://us2.php.net/uniqid">uniqid</a> w PHP), którego ważność jest ograniczona czasowo do np. 3 godzin. Wygenerowany link wysyłamy na adres email zarejestrowany w serwisie. Po jego kliknięciu użytkownik uzyskuje możliwość wpisania nowego hasła do swojego konta.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2009/09/kto-nie-szyfruje-ten-traba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

