-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Argeu Carlos Thiesen wrote:
>Na m�quina X, o usu�rio root tem a senha 'exemplo', que gerou no arquivo
>/etc/shadow uma "senha" criptografada como '12345'
ok.
>Na m�quina Z, o usuario teste tem a senha 'exemplo', que gerou no
>arquivo /etc/shadow uma "senha" criptografada como 'qwerty'
ok, normal.
>Copiei da maquina X, o '12345' do usuario root e colei para o usuario
>banana na maquina Z.
>
>Ao me autenticar como banana na maquina Z, usando a senha 'exemplo', me
>autentiquei sem problemas.
ok, normal.
>Realmente n�o conhe�o dos processos de criptografia, mas sendo que a
>mesma string que uso pra senha gera um resutado diferente depois da
>criptografia para o mesmo usu�rio pergunto... como pode uma string
>gerada por uma senha na maquina X para o usuario fulano, funcionar sem
>problemas para o usuario beltrano na maquina Z ?
Uma mesma senha pode gerar v�rios resultados criptografados. N�o h�
segredo nenhum nisso.
Vamos pelo caso mais simples: senhas DES. O resultado que voc� v� da senha
criptografada no /etc/shadow � mais do que a pr�pria senha que voc�
digitou. O DES permite que voc� escolha uma de 4096 possibilidades de
criptografias da senha.
A�, o que escolheram foi pegar dois caracteres que, juntos, formam 4096
combina��es (64 possibilidades por caracter, 64 * 64 = 4096). Esses dois
caracteres s�o chamados de "sal".
O processo de auto-criptografia da senha pega a senha e o sal e junta
tudo, dando um resultado. Para verificar se a senha est� correta, voc�
pega o mesmo sal e a senha digitada. Se o resultado for o mesmo, a senha
est� digitada.
A� voc� me pergunta: onde � gravado o sal? A resposta: na pr�pria senha
criptografada: s�o os dois primeiros caracteres.
Exemplos:
$ perl -e 'print crypt("senha","ab")'
abZuduP4nUHHM
$ perl -e 'print crypt("senha","cd")'
cdCDao1aS20CQ
$ perl -e 'print crypt("senha","ef")'
efF7y1Cz10DPw
$ perl -e 'print crypt("senha2","ab")'
abYqY77L1j2WA
$ perl -e 'print crypt("senha3","ab")'
abcjckdHH71m2
Verificar se "senha" � a senha correta para a senha criptografada
"abZuduP4nUHHM":
$ perl -e 'print crypt("senha","abZuduP4nUHHM")'
abZuduP4nUHHM
Isso que expliquei acima vale para DES. Para senhas MD5, o sal � um pouco
mais longo, mas � basicamente a mesma coisa:
$ perl -e 'print crypt("senha","\$1\$ab")'
$1$ab$qLsFqeuUdaC/dJ2DtRSRC0
$ perl -e 'print crypt("senha","\$1\$cd")'
$1$cd$i6jrfcmwRA.9iyHbzqUoU.
Exerc�cio: gerador de senhas (e sais) aleat�rio:
dd if=/dev/random bs=1 count=12 2>/dev/null | \
openssl base64 | \
perl -pe \
'/^(......)(.*)$/;
print "Senha para $2 �: ";
print crypt($2, "\$1\$$1");'
Rodando cinco vezes:
Senha para f3iDyv �: $1$ORIYBW$QY/CvRSg36txhrHEgOCUX1ORIYBWf3iDyv
Senha para RGdTv+ �: $1$7UCr8p$blIyKplr3w2W4LcLmxIDS07UCr8pRGdTv+
Senha para 5mCtNf �: $1$NqznS+$AiHXbeUnEOVEGDIMbRuh00NqznS+5mCtNf
Senha para 45d/n6 �: $1$4oRTaT$PkHZKisVJcFSByYqAjKG5.4oRTaT45d/n6
Senha para LUKJqY �: $1$RLAtpW$TthlckYtoeqMRalyDZwM5/RLAtpWLUKJqY
Pode ser �til para gerar senhas para usu�rios.
- --
Thiago Macieira - Registered Linux user #65028
thiago (AT) macieira (DOT) info
ICQ UIN: 1967141 PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
iD8DBQFBpSv4M/XwBW70U1gRApGQAJsE3LZT9QLWRgkdDBXFzxU//tOl7wCeMQYT
8PpBntU+DDKEnM/rZZu0HIc=
=p7GR
-----END PGP SIGNATURE-----
---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br
Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html