<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Import%C3%A0ncia_d%27elegir_la_clau_de_pas</id>
	<title>Importància d'elegir la clau de pas - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Import%C3%A0ncia_d%27elegir_la_clau_de_pas"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Import%C3%A0ncia_d%27elegir_la_clau_de_pas&amp;action=history"/>
	<updated>2026-08-30T10:25:53Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Import%C3%A0ncia_d%27elegir_la_clau_de_pas&amp;diff=250704&amp;oldid=prev</id>
		<title>Joan: /* Desenvolupament */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Import%C3%A0ncia_d%27elegir_la_clau_de_pas&amp;diff=250704&amp;oldid=prev"/>
		<updated>2013-10-08T18:34:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Desenvolupament&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introducció/Objectius=&lt;br /&gt;
Prendrem consciència de la importància d'elegir una clau de pas. Analitzarem un dels algorismes més utilitzats per encriptar les claus de pas.&lt;br /&gt;
=Referències=&lt;br /&gt;
*http://es.kioskea.net/contents/attaques/passwd.php3&lt;br /&gt;
*10 consells per elegir una contrassenya segura: http://www.grupodeboss.com/blog/10-consejos-para-elegir-una-contrasena-segura/&lt;br /&gt;
*generar una contrassenya segura: http://password.es/&lt;br /&gt;
*MD5, algorisme de reducció criptogràfic de 128 bits molt utilitzat: http://es.wikipedia.org/wiki/MD5&lt;br /&gt;
*http://acacha.org/mediawiki/index.php/Contrasenyes (Sergi Tur)&lt;br /&gt;
*TODO: mirar sistemes biomètrics&lt;br /&gt;
&lt;br /&gt;
=Desenvolupament=&lt;br /&gt;
Si tenim accés a una base de dades d'un gestor de continguts, segurament veurem els xifrats MD5 de les corresponents claus de pas de la taula d'usuaris. Per exemple:&lt;br /&gt;
&lt;br /&gt;
*una clau fàcil: joan -&amp;gt; dd54d716aaa387acf14d145d0c89d106&lt;br /&gt;
*una clau difícil: Df3Jh4Bo56VcB34 -&amp;gt; e92f01d3e23caf6acb2d19f672de4ff2&lt;br /&gt;
&lt;br /&gt;
Tenim dues webs de referència per trobar les claus de pas a partir del Hash:&lt;br /&gt;
*http://www.authsecu.com/decrypter-dechiffrer-cracker-hash-md5/decrypter-dechiffrer-cracker-hash-md5.php&lt;br /&gt;
*http://cravenupdate.wordpress.com/2012/02/25/desencriptar-md5-online/&lt;br /&gt;
&lt;br /&gt;
El primer té truco. Tenen guardat en una base de dades 500 milions de claus de pas basades en diccionaris francesos amb variacions dels caràcters. I com que és una base de dades, si el hash existeix en la bd, et garanteixen  un temps de resposta inferior a 3 segons.&lt;br /&gt;
&lt;br /&gt;
En el segon cas, si no es troba la clau a partir del Hash, queda en espera i els servidors es posen a calcular fins a trobar la clau (fins a un límit de temps).&lt;br /&gt;
&lt;br /&gt;
En el primer cas d'una clau molt fàcil (pwd=''joan'') es troba molt fàcilment en les dues webs referides. Però en el segon ja no es troba:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Le resultat n'a pas été trouvé&lt;br /&gt;
&lt;br /&gt;
HASH MD5 demandé : e92f01d3e23caf6acb2d19f672de4ff2&lt;br /&gt;
Chaîne correspondante :&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hash MD5 	                    Password 	Añadido 	Estado 	&lt;br /&gt;
e92f01d3e23caf6acb2d19f672de4ff2 		28/09/2011 	En Espera hasta 15/10/2011 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fins el 15 d'octubre hem d'anar provant a veure si els servidors han desencriptat la clau.&lt;br /&gt;
&lt;br /&gt;
'''Update!'''. A dia 10/10/2011 la clau  ja s'ha rebentat: ''Df3Jh4Bo56VcB34''.&lt;br /&gt;
&lt;br /&gt;
D'aquí ve la importància de posar una clau de pas ben complicada. A part de què l'algorisme MD5 ja no és 100% fiable, és important elegir bé una clau de pas complicada.&lt;br /&gt;
&lt;br /&gt;
'''Feina per a l'alumne''': tu també hauràs d'elegir una clau de pas fàcil i una altra de difícil, i comprovar com la fàcil es pot creaquejar, i la difícil no (o bé haurem d'esperar uns dies a veure si un supercomputador la pot desencriptar).&lt;br /&gt;
&lt;br /&gt;
==php i md5==&lt;br /&gt;
*http://php.net/manual/en/function.md5.php&lt;br /&gt;
Per veure els paquets relacionats amb '''php''' utilitzarem el synaptic en mode gràfic (''sudo apt-get install synaptic'' si encara no el tens instal.lat), o bé en línia de comandes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-cache search php5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si volem executar el php des de la línia de comandes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php5-cli - command-line interpreter for the php5 scripting language&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si vols executar el codi des del navegador web necessitaràs: (si encara no ho has fet)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-cache search php | grep apache&lt;br /&gt;
...&lt;br /&gt;
libapache2-mod-php5 - server-side, HTML-embedded scripting language (Apache 2 module)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per executar les funcions de MD5 (algorisme d'encriptació):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php5-mcrypt - MCrypt module for php5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fitxer ''apple.php'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$str = 'apple';&lt;br /&gt;
&lt;br /&gt;
echo md5($str);&lt;br /&gt;
echo &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {&lt;br /&gt;
    echo &amp;quot;Would you like a green or red apple?&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
El que hauràs de fer en aquesta part de la pràctica és fer aquest petit script de php: donada una cadena, generar el codi hash. Amb una mica de discreció comprovaràs si la contrassenya que utilitzes habitualment és fàcil d'endevinar o no a partir del seu codi hash.&lt;br /&gt;
&lt;br /&gt;
Fica el codi anterior en un fitxer nou, ''md5.php'', que crearàs en la carpeta de l'assignatura, que és accessible des d'un navegador web:&lt;br /&gt;
*http://localhost/md5.php&lt;br /&gt;
*http://localhost/sad/md5.php&lt;br /&gt;
*http://www.sad.org/md5.php&lt;br /&gt;
Ara bé, també el pots executar directament des de la línia de comandes (i així t'evites obrir el Firefox):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ php5 md5.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man php5&lt;br /&gt;
&lt;br /&gt;
NAME&lt;br /&gt;
       php - PHP Command Line Interface ’CLI’&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS&lt;br /&gt;
       php [options] [ -f ] file [[--] args...]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==utilitat pwgen==&lt;br /&gt;
*http://hackingthesystem4fun.blogspot.com/2011/04/generador-de-password-seguros-gnulinux.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install pwgen&lt;br /&gt;
&lt;br /&gt;
$ pwgen&lt;br /&gt;
$ pwgen -s -N 1&lt;br /&gt;
&lt;br /&gt;
$ man pwgen&lt;br /&gt;
PWGEN(1)                                                              PWGEN(1)&lt;br /&gt;
&lt;br /&gt;
NAME&lt;br /&gt;
       pwgen - generate pronounceable passwords&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS&lt;br /&gt;
       pwgen [ OPTION ] [ pw_length ] [ num_pw ]&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
       The  pwgen  program generates passwords which are designed to be easily&lt;br /&gt;
       memorized by humans, while being as secure  as  possible.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anem a estudiar/llegir/compilar el codi font d'aquest programa.&lt;br /&gt;
&lt;br /&gt;
El paquet que acabes d'instal.lar el pots trobar en la teva màquina a&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls -la /var/cache/apt/archives/pwgen*&lt;br /&gt;
-rw-r--r-- 1 root root 18068 2010-03-07 07:06 /var/cache/apt/archives/pwgen_2.06-1ubuntu2_i386.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cp /var/cache/apt/archives/pwgen_2.06-1ubuntu2_i386.deb /home/usuari&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un cop copiat, si vols pots alliberar espai de disc fent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(s'eliminen els paquets descarregats)&lt;br /&gt;
&lt;br /&gt;
El paquet deb el pots descomprimir (per exemple, botó dret &amp;gt; descomprimir), i pots observar els directoris i fitxers que es generen. Has de trobar el binari  ''pwgen'' i la ''man page'', entre d'altres. Però aquí no està el codi font: ''sudo apt-get install'' el que fa és compilar, no instal.lar.&lt;br /&gt;
&lt;br /&gt;
Si volem el codi font hem d'anar directament al projecte:&lt;br /&gt;
*http://sourceforge.net/projects/pwgen/&lt;br /&gt;
descarregar i descomprimir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar xvzf pwgen-2.06.tar.gz&lt;br /&gt;
$ cd pwgen-2.06/&lt;br /&gt;
&lt;br /&gt;
$ ./configure&lt;br /&gt;
...&lt;br /&gt;
creating Makefile&lt;br /&gt;
&lt;br /&gt;
$ make -&amp;gt; es llegeix el Makefile, que conté les ordres de compilació, i es genera el binari&lt;br /&gt;
$ ./pwgen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
normalment hi ha el fitxer README que en aquest cas es troba a faltar. Llegir el codi font. Ets capaç d'entendre alguna cosa? Compila pwgen. (Abans de compilar instal.la el paquet build-essential).&lt;br /&gt;
&lt;br /&gt;
'''Nota'''. Normalment no compilarem a partir de les fonts els programes que utilitzem, però és bo tenir sempre present que dels programes que utilitzem, que són de codi obert, en podem estudiar el codi font, adaptar-los a les nostres possibilitats, i compilar-los nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
==Trucos==&lt;br /&gt;
===bash: stty -echo===&lt;br /&gt;
Si jo executo un script que em demana el password, he d'evitar que aquest es vegi per la pantalla:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
read -p &amp;quot;Username: &amp;quot; uname&lt;br /&gt;
stty -echo&lt;br /&gt;
read -p &amp;quot;Password: &amp;quot; passw&lt;br /&gt;
stty echo&lt;br /&gt;
echo&lt;br /&gt;
echo $uname&lt;br /&gt;
echo $passw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ofuscar el password en un bash script===&lt;br /&gt;
*[[Scripting._Alertes._Accés_a_BD_i_enviament_de_mails_des_de_bash#Encriptar_m.C3.ADnimament_el_password]]&lt;br /&gt;
===ofuscar el password en PHP===&lt;br /&gt;
*http://stackoverflow.com/questions/1977237/how-to-encrypt-mysql-passwrod-in-php-or-how-to-defeat-automated-code-scanner-re&lt;br /&gt;
la clau és ''monkey'', i la volem ofuscar. Necessitem una paraula que fa de llavor: ''foobar''&lt;br /&gt;
&lt;br /&gt;
Primer de tot generem l'encriptació (Com es comenta en el link, en principi $pass i $key han de tenir el mateix número de caràcters)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$pass = 'foobar';&lt;br /&gt;
$key = 'monkey';&lt;br /&gt;
$secret = $pass XOR $key;&lt;br /&gt;
$list = array($key, $secret);&lt;br /&gt;
foreach($list as $x) {&lt;br /&gt;
    print &amp;quot;Keypart: &amp;quot;;&lt;br /&gt;
    print implode(unpack('H*',$x));&lt;br /&gt;
    print &amp;quot;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
Keypart: 6d6f6e6b6579 &lt;br /&gt;
Keypart: 666f6f626172 &lt;br /&gt;
*/&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i ara en el programa ja no surt per enlloc el password real&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/* &lt;br /&gt;
Keypart: 6d6f6e6b6579 &lt;br /&gt;
Keypart: 666f6f626172 &lt;br /&gt;
*/&lt;br /&gt;
$secret = '666f6f626172';&lt;br /&gt;
$key = '6d6f6e6b6579';&lt;br /&gt;
$pass = pack('H*', $key) XOR pack('H*', $secret);&lt;br /&gt;
print &amp;quot;$pass\n&amp;quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Entrega=&lt;br /&gt;
Has d'entregar un fitxer de text on m'ensenyis els codis ''hash'' de les dues claus de pas que has elegit (la fàcil i la difícil).&lt;br /&gt;
&lt;br /&gt;
Escriu-me també la sortida de les proves que has fet amb la utilitat ''pwgen'',i la sortida per pantalla de la compilació i execució de ''pwgen''.&lt;br /&gt;
&lt;br /&gt;
Recorda la '''normativa''' per entregar les pràctiques al Moodle: [[ASIX-M11-SAD#Normativa_d.27entrega_de_les_pr.C3.A0ctiques_al_Moodle]]&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2011&lt;br /&gt;
[[Categoria: IES Jaume Balmes]]&lt;br /&gt;
[[Categoria: ASIX-M11-SAD]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>