<?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>Jedrzej Schmeidel (aka Yunnan) &#187; openssl</title>
	<atom:link href="http://www.yunnan.tk/tag/openssl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yunnan.tk</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 09 Jan 2012 22:52:46 +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>Inwazja słabych kluczy</title>
		<link>http://www.yunnan.tk/pomoce/linux/inwazja-slabych-kluczy/</link>
		<comments>http://www.yunnan.tk/pomoce/linux/inwazja-slabych-kluczy/#comments</comments>
		<pubDate>Thu, 15 May 2008 21:17:43 +0000</pubDate>
		<dc:creator>Yunnan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[secure key]]></category>

		<guid isPermaLink="false">http://www.yunnan.tk/?p=94</guid>
		<description><![CDATA[Poważny problem ? dsa-1571 ? Kilka dni temu sieć została zaatakowana przez inwazje słabych kluczy. W skrócie chodzi o to że klucze prywatne generowane przez wersje openssl od 2006-09-17 do 2008-05-13 najprawdopodobniej są słabe. Słabe klucze ?&#8230; mianowicie zamiast faktycznych niezliczonych kombinacji, jedynym zrodlem losowosci byl PID procesu generujacego klucz, czyli faktycznych kombinacji bylo 32768 [...]]]></description>
			<content:encoded><![CDATA[<h3>Poważny problem ? dsa-1571 ?</h3>
<p>Kilka dni temu sieć została zaatakowana przez inwazje słabych kluczy. W skrócie chodzi o to że klucze prywatne generowane przez wersje openssl od 2006-09-17 do 2008-05-13 najprawdopodobniej są słabe.</p>
<p>Słabe klucze ?&#8230; mianowicie zamiast faktycznych niezliczonych kombinacji, jedynym zrodlem losowosci byl PID procesu generujacego klucz, czyli faktycznych kombinacji bylo 32768 (15 bit). Moze ta liczba wydawac sie duza, ale w dzisiejszych czasach 512 bitowy klucz jest troche slaby: 2<sup>512</sup> = 1.34078079 × 10<sup>154</sup>.<br />
Nie uzywam zwrotu &#8222;<a href="http://pl.wikipedia.org/wiki/S%C5%82aby_klucz" target="_blank">słaby klucz</a>&#8221; w stricte definicji, poniewaz sam problem nie dotyczy algorytmu, jedynie losowosci <strong>ziarna</strong> (<strong>random seed</strong>) <strong>generatora liczb pseudolosowych</strong>.</p>
<p>Ten problem mogł spotkać wszelkie rodzaje kluczy generowane przez <strong>openssl</strong>, <strong>ssh-keygen</strong> albo <strong>openvpn &#8211;keygen</strong>. Tak wiec w kazdym wypadku warto poczytac i sprawdzic czy wszystko gra.</p>
<ul>
<li><a href="http://www.debian.org/security/2008/dsa-1571" target="_blank">http://www.debian.org/security/2008/dsa-1571</a></li>
<li><a href="http://www.debian.org/security/key-rollover/" target="_blank">http://www.debian.org/security/key-rollover/</a></li>
<li><a href="http://wiki.debian.org/SSLkeys" target="_blank">http://wiki.debian.org/SSLkeys</a></li>
<li><a href="http://metasploit.com/users/hdm/tools/debian-openssl/" target="_blank">http://metasploit.com/users/hdm/tools/debian-openssl/</a><br />
(pomocna strona, zawiera blacklisty fingerprintow w roznych formatach i cale pakiety wygenerowanych kluczy, jak i rozne programy do testowania)</li>
</ul>
<h3>Zagrożenie</h3>
<p>Co to znaczy dla zwyklego zjadacza chleba&#8230; zasadniczo nic <img src='http://www.yunnan.tk/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Ale jesli uzywasz bezhaslowego logowania sie na shella, dostep do konta mozna uzyskac w ok 20 minut. Drugim zagrozeniem jest to, ze ktos moze sie podszyc pod twoj komputer, przedstawiajac sie falszywym (ale takim samym jak twoj) kluczem. Jest to raczej glownie problem dotyczacy bezpiecznych certyfikatow do szyfrowania lub bezpiecznej identyfikacji serwera.</p>
<p><span style="text-decoration: underline;">Tak wiec, w kazdym wypadku nalezy dziure zalatac.</span></p>
<h3>Ratunek</h3>
<p>Naturalnie pierwszym krokiem jak zawsze w takich sytuacjach jest zupgradowanie systemu:<br />
<code>apt-get update<br />
apt-get upgrade</code><br />
(dokładnie chodzi o <strong>apt-get install openssl openssh-server</strong>).</p>
<p>Krytycznym pakietem wymagajacym zupgradowania jest naturalnie <strong>openssl</strong>, a drugim w kolejce jest <strong>openssh-server</strong>. Zupgradowanie <strong>openssl</strong> poprawia blad blednie wygenerowanych kluczy, oraz automatycznie generuje nowy, silny klucz. Nowa wersja <strong>openssh-server</strong> natomiast, po pierwsze uniemozliwia bezhaslowe logowanie sie slabymi kluczami (zawartymi w specjalnych <strong>blacklistach</strong>), po drugie zaopatruje nas w narzedzie <strong>ssh-vulnkey</strong>, służące do sprawdzania istniejących kluczy.</p>
<p>Aby sprawdzic klucze pojedynczego uzytkownika, mozna po prostu uruchomic <strong>ssh-vulnkey</strong>. Mozna rowniez sprawdzic wszystkie klucze na serwerze (mieszczace sie w standardowych miejscach), wywolujac z konta <strong>roota</strong> polecenie <strong>ssh-vulnkey -a</strong>.</p>
<p>UWAGA: Wg autora, skrypt sie czasami moze mylic. Tzn czasami czasami ma false-positives, a czasami false-negatives.</p>
<p><code><span style="color: #339966;">Not blacklisted</span>: 1024 xx:xx:[...]:xx:xx /etc/ssh/ssh_host_dsa_key<br />
<span style="color: #ff6600;">Unknown (no blacklist information)</span>: 4096 xx:xx:[...]:xx:xx /home/costam1/.ssh/id_rsa.pub<br />
<span style="color: #ff0000;">COMPROMISED</span>: 2048 xx:xx:[...]:xx:xx /home/costam2/.ssh/authorized_keys</code></p>
<p>Ostatni klucz nalezy natychmiast wymienic/usunac, w szczegolnosci jesli jest to <strong>authorized_keys</strong>, sluzacy do logowania bezhaslowego. Pierwszy klucz jest najprawdopodobniej dobry i raczej nie trzeba go wymieniac, chyba ze jest sie pewnym ze zostal utworzony na trefnym systemie (posiadajacym wspomniany blad openssl).<br />
Jednak co zrobic ze srodkowym, swiezo utworzonym kluczem ? Czy on jest zly czy dobry ?<br />
Klopot w tym ze oficjalna blacklista zawiera jedynie rodzaje kluczy <strong>DSA 1024</strong> i <strong>RSA 2048</strong>, jako że są najpopularniejsze. Jednak co jeśli mam klucz <strong>RSA 4096</strong> ? Lub stary <strong>RSA 1024</strong> ?<br />
(Aby uniknać pytań wspomne, że DSA wystepuje tylko jako 1024 bitowy.)</p>
<p>Rozwiązanie jest niby proste&#8230; trzeba wygenerowac liste trefnych kluczy, na blednym systemie i wgrac ja do ssh-vulnkey. Nie moglem takiej listy znalezc w internecie, dlatego zdecydowalem sie na wyciagniecie fingerpintów z innych wygenerowanych list (<a href="http://metasploit.com/users/hdm/tools/debian-openssl/" target="_blank">http://metasploit.com/users/hdm/tools/debian-openssl/</a>).</p>
<p>Tak więc oto blacklisty <span style="text-decoration: underline;">do użycia z programem <strong>ssh-vulnkey (openssh-client 1:4.7p1-9)</strong></span>:</p>
<ol>
<li>Oficjalne
<ul>
<li><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/official/blacklist.DSA-1024.bz2" target="_blank"><span style="text-decoration: line-through;">blacklist.DSA-1024.bz2</span></a></li>
<li><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/official/blacklist.RSA-2048.bz2" target="_blank"><span style="text-decoration: line-through;">blacklist.RSA-2048.bz2</span></a></li>
</ul>
</li>
<li><span style="text-decoration: line-through;">Utworzone na architekturze x86 (utworzone z plikow <a href="http://metasploit.com/users/hdm/tools/debian-openssl/" target="_blank">metasploit</a>)</span>
<ul>
<li><span style="text-decoration: line-through;"><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/x86/blacklist.RSA-1024.bz2" target="_blank">blacklist.RSA-1024.bz2</a></span><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/blacklist.RSA-1024.bz2" target="_blank"><br />
</a></li>
<li><span style="text-decoration: line-through;"><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/x86/blacklist.RSA-4096.bz2" target="_blank">blacklist.RSA-4096.bz2</a></span></li>
</ul>
</li>
<li>Utworzone na architekturach x86 i amd64 (utworzone z plikow <a href="http://www.red-bean.com/~maxb/" target="_blank">Max Bowsher</a>) <span style="color: #ff0000;">ZALECANE</span>
<ul>
<li><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/x86amd64/blacklist.RSA-1023.bz2" target="_blank">blacklist.RSA-1023.bz2</a></li>
<li><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/x86amd64/blacklist.RSA-1024.bz2" target="_blank">blacklist.RSA-1024.bz2</a></li>
<li><a href="http://www.yunnan.tk/wp-content/files/linux/DSA-1571/x86amd64/blacklist.RSA-4096.bz2" target="_blank">blacklist.RSA-4096.bz2</a></li>
<li>RSA-8192&#8230; podobno 4096 to juz paranoja <img src='http://www.yunnan.tk/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
</ul>
</li>
</ol>
<p>Należy je umieścic w <strong>/etc/ssh/</strong> obok pozostałych oficjalnych plikow. Ważne jest żeby nie zmieniać nazwy.<br />
Po tym, program ssh-vulnkey od razu powinien odpowiednio rozpoznawac pozostale klucze.</p>
<p><code><span style="color: #339966;">Not blacklisted</span>: 4096 xx:xx:[...]:xx:xx /home/costam3/.ssh/authorized_keys</code></p>
<p>Ja juz jestem zabezpieczony, przy okazji pozamienialem klucze userow i serwerow na 4kbit&#8230;</p>
<h2>Powodzenia !</h2>
<p>AKTUALIZACJA: Wyszla nowa wersja openssh-blacklist, o numerze 0.1.2. Mozna zaczekac az pojawi sie w pakietach, albo od razu sciagnac <a href="http://love.hole.fi/atte/openssh-blacklist/" target="_blank">stad</a>. Wyglada na to ze format list sie zmienil, zaczekam na rozwoj sytuacji i aktualizuje swoje pakiety.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yunnan.tk/pomoce/linux/inwazja-slabych-kluczy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using apc
Object Caching 234/245 objects using apc

Served from: www.yunnan.tk @ 2012-02-09 11:03:00 -->
