<?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>Le blog de John Jean &#187; GPU</title>
	<atom:link href="http://www.john-jean.com/blog/tag/gpu/feed" rel="self" type="application/rss+xml" />
	<link>http://www.john-jean.com/blog</link>
	<description>Actualité de sécurité informatique</description>
	<lastBuildDate>Wed, 19 May 2010 09:19:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>John the ripper multi-core grâce à Open MPI&#8230;</title>
		<link>http://www.john-jean.com/blog/crypto/john-the-ripper-multi-core-grace-a-open-mpi-233</link>
		<comments>http://www.john-jean.com/blog/crypto/john-the-ripper-multi-core-grace-a-open-mpi-233#comments</comments>
		<pubDate>Mon, 28 Sep 2009 12:33:44 +0000</pubDate>
		<dc:creator>John JEAN</dc:creator>
				<category><![CDATA[Crypto]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[comparatif]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[john the ripper]]></category>
		<category><![CDATA[multi-core]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[open-mpi]]></category>

		<guid isPermaLink="false">http://www.john-jean.com/blog/?p=233</guid>
		<description><![CDATA[&#8230; ou comment multiplier la rapidité de bruteforce de John the Ripper par 8 ou plus. J&#8217;ai écrit il y a quelques temps, un billet présentant un comparatif des méthodes de bruteforce CPU / GPU sur des hashs de type MD5. J&#8217;avais expliqué que la méthode GPU (avec l&#8217;aide de cuda) explosait allègrement les méthodes [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="multicore" align="left" src="http://www.john-jean.com/blog/wp-content/uploads/2009/09/multicore-1.jpg" width="160" height="169" />&#8230; ou comment multiplier la rapidité de bruteforce de <a title="John the ripper" href="http://www.openwall.com/john/" target="_blank">John the Ripper</a> par 8 ou plus. J&#8217;ai écrit il y a quelques temps, un billet présentant un <a title="comparatif methode bruteforce md5 gpu cpu" href="http://www.john-jean.com/blog/crypto/bruteforcer-une-chaine-md5-nouvelles-methodes-et-comparatif-des-softs-159" target="_blank">comparatif des méthodes de bruteforce CPU / GPU</a> sur des hashs de type MD5. J&#8217;avais expliqué que la méthode GPU (avec l&#8217;aide de cuda) explosait allègrement les méthodes CPU, même avec du dual core. C&#8217;est toujours le cas. Sauf que cette méthode a ses limites: elle manque cruellement de softs permettant de bruteforcer tout et n&#8217;importe quoi. Le soft de référence pour avaler à peu près tous les hashs est John the ripper, mais il prend malheuresement assez cher face à des softs comme BarsWF. C&#8217;était sans compter sur un patch de <a title="bindshell.net" href="http://www.bindshell.net/" target="_blank">bindshell.net</a> qui permet d&#8217;exécuter autant d&#8217;instances du soft qu&#8217;on a de core.</p>
<p><span id="more-233"></span>
<p>Pour les besoins du boulot, nous avons monté un serveur relativement puissant et efficace: 16 Go de RAM et surtout du double quadruple coeurs (Intel Bi Xeon Quad 8x 2.00+ GHz). J&#8217;en ai donc profité pour tester l&#8217;objet de mes plus grands fantasmes :) (Bah oui, tout le monde n&#8217;a pas un 8 core sur son laptop, et les méthodes GPU sur un serveur sans CG&#8230;), et le résultat est sans appel:</p>
<p>Avant:</p>
<p><code>john-laptop:~/johntheripper/run# ./john -test<br />
Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE<br />
Many salts: 1912K c/s real, 1912K c/s virtual<br />
Only one salt: 1631K c/s real, 1631K c/s virtual</code></p>
<p>Après:</p>
<p><code>john-laptop:~/john-1.7.2-bp17-mpi8/run# mpirun -np 8 ./john -test<br />
Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE<br />
Many salts: 15269K c/s real, 15273K c/s virtual<br />
Only one salt: 12997K c/s real, 13000K c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: BSDI DES (x725) [128/128 BS SSE2-16]... DONE<br />
Many salts: 62387 c/s real, 62512 c/s virtual<br />
Only one salt: 60723 c/s real, 60723 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: BSDI DES (x725) [128/128 BS SSE2-16]... DONE<br />
Many salts: 497326 c/s real, 496954 c/s virtual<br />
Only one salt: 484527 c/s real, 484527 c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: FreeBSD MD5 [32/64 X2]... DONE<br />
Raw: 8592 c/s real, 8592 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: FreeBSD MD5 [32/64 X2]... DONE<br />
Raw: 68862 c/s real, 68844 c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: OpenBSD Blowfish (x32) [32/64 X2]... DONE<br />
Raw: 518 c/s real, 518 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: OpenBSD Blowfish (x32) [32/64]... DONE<br />
Raw: 2415 c/s real, 2416 c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: Kerberos AFS DES [48/64 4K]... DONE<br />
Short: 285330 c/s real, 285330 c/s virtual<br />
Long: 911564 c/s real, 911564 c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: Kerberos AFS DES [48/64 4K]... DONE<br />
Short: 2281K c/s real, 2279K c/s virtual<br />
Long: 7241K c/s real, 7241K c/s virtual</code></p>
<p>&nbsp;</p>
<p>Avant:</p>
<p><code>Benchmarking: LM DES [128/128 BS SSE2-16]... DONE<br />
Raw: 9688K c/s real, 9688K c/s virtual</code></p>
<p>Après:</p>
<p><code>Benchmarking: NT LM DES [128/128 BS SSE2-16]... DONE<br />
Raw: 79468K c/s real, 79587K c/s virtual</code></p>
<p>&nbsp;</p>
<p>Et en bonus, juste pour la version 8 core cette fois:</p>
<p><code>Benchmarking: Apache MD5 [32/64 X2]... DONE<br />
Raw: 68674 c/s real, 68674 c/s virtual</code></p>
<p><code>Benchmarking: mysql [mysql]... DONE<br />
Raw: 20638K c/s real, 20643K c/s virtual</code></p>
<p><code>Benchmarking: Netscape LDAP SHA [SHA1]... DONE<br />
Raw: 14961K c/s real, 14961K c/s virtual</code></p>
<p><code>Benchmarking: NT MD4 [TridgeMD4]... DONE<br />
Raw: 18830K c/s real, 18844K c/s virtual</code></p>
<p><code>Benchmarking: Lotus5 [Lotus v5 Proprietary]... DONE<br />
Raw: 1204K c/s real, 1205K c/s virtual</code></p>
<p><code>Benchmarking: M$ Cache Hash [mscash]... DONE<br />
Raw: 12567K c/s real, 12567K c/s virtual</code></p>
<p><code>Benchmarking: Raw MD5 [raw-md5]... DONE<br />
Raw: 19448K c/s real, 19448K c/s virtual</code></p>
<p><code>Benchmarking: IPB2 MD5 [Invision Power Board 2.x salted MD5]... DONE<br />
Raw: 10592K c/s real, 10587K c/s virtual</code></p>
<p><code>Benchmarking: Eggdrop [blowfish]... DONE<br />
Raw: 136593 c/s real, 136627 c/s virtual</code></p>
<p><code>Benchmarking: Raw SHA1 [raw-sha1]... DONE<br />
Raw: 14720K c/s real, 14720K c/s virtual</code></p>
<p><code>Benchmarking: MS-SQL [ms-sql]... DONE<br />
Raw: 15442K c/s real, 15446K c/s virtual</code></p>
<p><code>Benchmarking: HMAC MD5 [hmac-md5]... DONE<br />
Raw: 5473K c/s real, 5477K c/s virtual</code></p>
<p><code>Benchmarking: WPA PSK [wpa-psk]... DONE<br />
Raw: 472 c/s real, 472 c/s virtual</code></p>
<p><code>Benchmarking: Netscape LDAP SSHA [salted SHA1]... DONE<br />
Raw: 14922K c/s real, 14926K c/s virtual</code></p>
<p>Ca c&#8217;est pour la théorie. Maintenant pour la pratique, j&#8217;ai encodé via htpasswd le mot de passe suivant <em>blogjohn</em>; et j&#8217;ai testé la vitesse de bruteforce avec les deux logiciels, le classique et le multi-thread donc.</p>
<p><span style="TEXT-DECORATION: underline">John the ripper:</span></p>
<p><code>guesses: 1 time: 0:11:01:58 c/s: 1704K trying: blogji1X - blogjoek<br />
Loaded 1 password hash (Traditional DES [128/128 BS SSE2-16])<br />
blogjohn (john)</code></p>
<p><strong>Soit 11h01 de travail.</strong></p>
<p><span style="TEXT-DECORATION: underline">John the ripper n-core (ici 8, bindshell.net):</span></p>
<p><code>thread: 0 guesses: 1 time: 0:01:27:22 c/s: 1702K trying: blogjim9 - blogjone</code></p>
<p><strong>Soit 1h30 de travail !</strong></p>
<p>Je sors un petit graphique de munin pour l&#8217;occasion, le premier histo est donc le john classique et le second le multi-core. Pour la petite histoire, cela a bien duré 1h30, mais on continue de voir une utilisation CPU parce que je n&#8217;ai pas stoppé les 7 autres threads.</p>
<p><img alt="johntheripper" align="left" src="http://www.john-jean.com/blog/wp-content/uploads/2009/09/johntheripper.png" width="450" height="311" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Donc pour conclure, comment on utilise la bête ?</p>
<p>Tout d&#8217;abord on récupère le john tunné pour l&#8217;occasion (il est aussi disponible sous forme de diff à appliquer, au choix):</p>
<p><code>wget <a href="http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp17-mpi8.tar.gz">http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp17-mpi8.tar.gz</a></code></p>
<p>On untar:</p>
<p><code>tar zxvf john-1.7.2-bp17-mpi8.tar.gz</code></p>
<p>Ensuite on installe <a title="libopenmpi-dev" href="http://packages.debian.org/fr/sid/libopenmpi-dev" target="_blank">libopenmpi-dev</a> pour compiler cette version de john sinon on a pas mpicc et <a title="open mpi" href="http://www.open-mpi.org/" target="_blank">openmpi-bin</a> pour utiliser mpirun:</p>
<p><code>apt-get install libopenmpi-dev<br />
apt-get install openmpi-bin</code></p>
<p>Puis on compile john:</p>
<p><code>cd john-1.7.2-bp17-mpi8/src/<br />
make //ici il va vous lister les possibilités de compilation optimisée selon votre OS, ce qui donne chez moi:<br />
make clean linux-x86-64<br />
cd ../run</code></p>
<p>Et enfin, notre salvateur:</p>
<p><code>mpirun -np &lt;NUMPROCS&gt; ./john -i pass.txt //&lt;NUMPROCS&gt; correspond bien entendu au nombre de core que vous avez à disposition.</code></p>
<p>Voilà amusez vous bien, et ne le faites pas tourner n&#8217;importe où, comme vu sur le graph, ca fera hurler munin et tous les softs de monitoring du sysadmin ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-jean.com/blog/crypto/john-the-ripper-multi-core-grace-a-open-mpi-233/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bruteforcer une chaine MD5: Nouvelles méthodes et comparatif des softs</title>
		<link>http://www.john-jean.com/blog/crypto/bruteforcer-une-chaine-md5-nouvelles-methodes-et-comparatif-des-softs-159</link>
		<comments>http://www.john-jean.com/blog/crypto/bruteforcer-une-chaine-md5-nouvelles-methodes-et-comparatif-des-softs-159#comments</comments>
		<pubDate>Tue, 31 Mar 2009 19:52:24 +0000</pubDate>
		<dc:creator>John JEAN</dc:creator>
				<category><![CDATA[Crypto]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[cracker]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[Sécurité informatique]]></category>

		<guid isPermaLink="false">http://www.john-jean.com/blog/divers/bruteforcer-une-chaine-md5-nouvelles-methodes-et-comparatif-des-softs-159</guid>
		<description><![CDATA[La plupart des développeurs utilisent généralement le MD5 pour stocker les données sensibles de leurs utilisateurs (mot de passe, parfois numéro de carte bleu, et ainsi de suite&#8230;). Ces derniers ont tendance à considérer cette méthode de hachage comme fiable alors qu&#8217;elle ne l&#8217;est pas. En effet, dès 1996, des chercheurs en sécurité ont mis [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="nvidia logoblog" align="left" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/nvidia-logoblog-1.jpg" width="165" height="158" /></p>
<p>La plupart des développeurs utilisent généralement le MD5 pour stocker les données sensibles de leurs utilisateurs (mot de passe, parfois numéro de carte bleu, et ainsi de suite&#8230;). Ces derniers ont tendance à considérer cette méthode de hachage comme fiable alors qu&#8217;elle ne l&#8217;est pas. En effet, dès 1996, des chercheurs en sécurité ont mis en exergue la possibilité de créer des collisions. En 2004, les collisions complètes sont découvertes et le MD5 n&#8217;est dès lors plus considéré comme fiable d&#8217;un point de vue purement cryptographique. Cependant, sa facilité d&#8217;implémentation avec PHP à l&#8217;aide de md5(); et la méconnaissance des développeurs fait que cette méthode est encore très largement rependue au détriment de fonctions de hachage plus récentes et donc plus robustes comme SHA-256.</p>
<p>Suite à ces découvertes, plusieurs logiciels ont vu le jour afin de permettre de bruteforcer cette méthode de hachage (et pas uniquement celle-ci). Je suis souvent amené à devoir cracker ces chaines pour montrer au décideur pressé que le travail d&#8217;obfuscation des données par son développeur ou sysadmin n&#8217;est en réalité pas vraiment fiable. &laquo;&nbsp;Oui vous avez réussi à accéder à ma base de donnée, et alors ? Les données de nos clients sont cryptées&nbsp;&raquo;. Pour montrer au décideur qu&#8217;il fait fausse route, je me dois donc souvent de &laquo;&nbsp;bruteforcer&nbsp;&raquo; une ou plusieurs informations.</p>
<p><span id="more-159"></span>
<p>Les logiciels automatisant le bruteforce ont assez largement évolués récemment, passant d&#8217;une utilisation CPU, à CPU multi-core, et désormais CPU + GPU. En effet, le reversing des méthodes de hachage fascine, et remet chaque jour un peu plus en question la sécurité basée sur ces méthodes (surtout MD5 là pour le coup). Il suffit par exemple de voir l&#8217;excellent travail sur les certificats SSL: <a title="Creating a rogue CA certificate" href="http://www.win.tue.nl/hashclash/rogue-ca/" target="_blank">Creating a rogue CA certificate</a>. Un fail dans une méthode remet en question bien plus de choses que la méthode en elle-même.</p>
<p>GPU est l&#8217;acronyme de Graphics Processing Unit, grosso-modo, l&#8217;utilisation de la puissance de calcul de votre carte graphique. Ce vecteur de puissance était jusqu&#8217;alors inexploité pour la simple et bonne raison que leur utilisation était closed-source. Nvidia a largement ouvert et démocratisé l&#8217;accessibilité aux processeurs graphiques en mettant à disposition un environnement de développement nommé CUDA.</p>
<p>Voici donc un petit comparatif des logiciels, le but est avant tout de démontrer en quoi l&#8217;utilisation des GPUs constitue une avancée non négligeable (tiens ça me rappelle une histoire de PS3 montées en grappes), et surtout de montrer qu&#8217;à fonctionnement équivalent, ils ne sont pas tous aussi rapides. L&#8217;autre but est bien évidement de vous sensibiliser si vous utilisez toujours cette méthode de cryptage dans vos sites (je fais le malin, mais WordPress utilise le md5 pour stocker les passwords).</p>
<p><strong>Machine utilisée pour ce test:</strong><br />
Dell XPS M1530<br />
Intel Core 2 Duo CPU T9300 2,50 Ghz<br />
NVIDIA GeForce Go 8600M GT, 256 MB</p>
<p><strong>Comparatif des softs</strong><br />
J&#8217;étais parti pour inclure John the Ripper dans le test, mais il fallait employer un hack. Je me suis donc concentré sur les softs faisant bien nativement du bruteforce de MD5.</p>
<p><strong><em>CAIN</em></strong> (<a href="http://www.oxid.it/cain.html" target="_blank">http://www.oxid.it/cain.html</a>)<br />
Bon, à la décharge de CAIN, il ne sert pas uniquement à bruteforcer des hashs. C&#8217;est un couteau suisse qui permet de faire de l&#8217;ARP Poisoning, d&#8217;appliquer des filtres de snif etc. Donc bon, considérons que sa GUI ainsi que l&#8217;essence du soft font que ce n&#8217;est pas sa force, mais tout de même:<strong><em><br />
Résultat obtenu:</em></strong> <span style="COLOR: #ff0000">7 Millions h/s</span></p>
<p><img alt="CAIN" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/cain.jpg" width="450" height="333" /></p>
<p><img alt="CAIN2" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/cain2.gif" width="450" height="109" /> <img alt="CAIN3" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/cain3-1.gif" width="86" height="119" /></p>
<p><strong><em>MDcrack (Shot 1)</em></strong> (<a title="Download mdcrack" href="http://membres.lycos.fr/mdcrack/" target="_blank">http://membres.lycos.fr/mdcrack/</a>)<br />
Probablement l&#8217;un des plus anciens et des plus connus soft de bruteforce de MD5. Tout en command-line.<br />
Dans ce premier shot, pour simuler l&#8217;évolution, je l&#8217;ai limité à un seul CORE pour le CPU.<em><br />
<strong>Résultat obtenu:</strong></em> <span style="COLOR: #ff0000">12,5 Millions h/s</span></p>
<p><img alt="MDCRACK1" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/mdcrack1.jpg" width="450" height="235" /></p>
<p><img alt="MDCRACK12" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/mdcrack12.jpg" width="450" height="115" /> <img alt="MDCRACK13" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/mdcrack13.jpg" width="90" height="123" /></p>
<p>Le CPU est sollicité à 50% ce qui est parfaitement logique compte tenu du fait que j&#8217;ai un Dual CORE.</p>
<p><strong><em>MDcrack (Shot 2)</em></strong> (<a title="Download mdcrack" href="http://membres.lycos.fr/mdcrack/" target="_blank">http://membres.lycos.fr/mdcrack/</a>)<br />
Pour le second shot, je décide d&#8217;utiliser pleinement mon CPU. C&#8217;est à dire, avant que l&#8217;on utilise les GPU, ce qui se faisait de mieux en matière de bruteforce. J&#8217;ai un core DUO, je double sans surprise.<em><br />
<strong>Résultat obtenu:</strong></em> <span style="COLOR: #ff0000">24 Millions h/s</span></p>
<p><img alt="MDCRACK23" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/mdcrack23-2.jpg" width="450" height="235" /></p>
<p><img alt="MDCRACK2" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/mdcrack2-2.gif" width="450" height="111" /> <img alt="MDCRACK22" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/mdcrack22-3.gif" width="90" height="120" /></p>
<p><strong><em>GPU MD5 CRACK</em></strong> (<a href="http://bvernoux.free.fr/md5/index.php" target="_blank">http://bvernoux.free.fr/md5/index.php</a>)<br />
Cette fois nous utilisons un bruteforcer sollicitant les GPUs. Malhreusement il dispose d&#8217;une GUI qui doit impacter ses perfs mais voyons tout de même la différence:<em><br />
<strong>Résultat obtenu:</strong></em> <span style="COLOR: #ff0000">44 Millions h/s !<br /></span></p>
<p><img alt="GPUMD5" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/gpumd5.jpg" width="450" height="378" /></p>
<p><img alt="GPUMD52" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/gpumd52.gif" width="450" height="115" /> <img alt="GPU MD53" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/gpu-md53.gif" width="88" height="120" /></p>
<p><strong><em>Extreme GPU Bruteforcer</em></strong> (<a href="http://www.insidepro.com/eng/egb.shtml" target="_blank">http://www.insidepro.com/eng/egb.shtml</a>)<br />
Un autre GPU Bruteforcer,Â  cette fois en command-line, mais on remarque que lui non plus ne sollicte pas le CPU au maximum.<em><br />
<strong>Résultat obtenu:</strong></em> <span style="COLOR: #ff0000">53 Millions h/s !<br /></span></p>
<p><img alt="EGB3" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/egb3.jpg" width="450" height="237" /></p>
<p><img alt="EGB1" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/egb1.gif" width="450" height="108" /> <img alt="EGB2" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/egb2.gif" width="89" height="116" /></p>
<p><strong><em>BarsWF</em></strong> (<a href="http://3.14.by/en/md5" target="_blank">http://3.14.by/en/md5</a>)<em><br /></em>Là, on passe en mode uber-gore. On constate avec ce logiciel une réelle maximisation de l&#8217;utilisation CPU + GPU. La courbe d&#8217;utilisation CPU n&#8217;est plus sinusoidale ici. Je n&#8217;ai pas une grosse config pour le coup, reportez vous à la conclusion pour voir ce qu&#8217;il a vraiment dans le sac :-)<br />
<strong><em>Résultat obtenu:</em></strong> <strong><span style="COLOR: #ff0000">124 Millions h/s !<br /></span></strong></p>
<p><img alt="BarsWF1" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/barswf1.jpg" width="450" height="222" /></p>
<p><img alt="BarsW2" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/barsw2-1.gif" width="450" height="111" /> <img alt="BARSW3" src="http://www.john-jean.com/blog/wp-content/uploads/2009/03/barsw3-1.gif" width="91" height="114" /></p>
<p><strong>Conclusion</strong></p>
<p>Vous devez mieux comprendre pourquoi l&#8217;image illustrant ce billet est un logo <a href="http://www.nvidia.com/object/cuda_home.html">Nvidia</a>. La rapidité de bruteforce via GPU n&#8217;est en rien comparable à ce que l&#8217;on pouvait exploiter il y a encore quelques années. J&#8217;ai demandé à un collègue qui a un double CORE, et une CG ATI (ATI Radeon HD 4870) de réaliser le test pour moi:</p>
<p>*Â¦ Key: kshnmhwi Avg.Total: 1066.40 MHash/sec Â¦</p>
<p>Â¦ Hash:87a2f7772d361d70d4b43cb5141a50e1 Â¦</p>
<p>Â¦ Progress: 28.92 % ETC 0 days 0 hours 2 min 19 sec Â¦</p>
<p>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+</p>
<p>&#8211; Key is: johnjean&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<em><strong>Résultat obtenu avec BarWF</strong>:</em> <span style="COLOR: #ff0000"><strong>1 066 Millions h/s !<br /></strong><span style="COLOR: #000000">Deux minutes pour mettre à mal la chaine: johnjean</span><strong><br /></strong></span></p>
<p>Je n&#8217;ai évoqué ici que la maximisation de tentative de hash/s, pas le temps global que met une chaine à être forcée. Lors de mon prochain billet je tenterai d&#8217;établir un comparatif avec les méthodes d&#8217;attaque par rainbow table. A noter également que je n&#8217;ai pas parlé de la suite <a href="http://www.elcomsoft.com/edpr.html" target="_blank">Elcomsoft Distributed Password Recovery</a> qui permet de monter des grappes de travail. En gros l&#8217;application se divise en deux parties une cliente et une serveur. On peut donc créer un serveur et relier 20 machines dessus. Avec des machines comme celle de mon collègue (<strong>1 066 Millions h/s)</strong> bruteforcer une base de donnée client pour en extraire les pass et plus ne doit pas prendre bien longtemps. N&#8217;hésitez donc pas à modifier vos méthodes de stockage même si les énorme montage sont généralement reservé aux agences à trois lettres :-) Il va sans dire que les signatures de fichier en MD5 sont tout aussi faillible que ce que vous encryptez.</p>
<p>PS: Voici plus d&#8217;un mois que j&#8217;avais posté, mais je viens de trouver un logiciel me permettant de blogger depuis le train, cela devrait reprendre. (<a href="http://www.blogdesk.org/en/index.htm" target="_blank">BlogDesk</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.john-jean.com/blog/crypto/bruteforcer-une-chaine-md5-nouvelles-methodes-et-comparatif-des-softs-159/feed</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>
