Você sabe como são armazenadas as senhas no Linux? O que é e para que serve o salt number? O que é MD5? Este artigo não pretende ir muito a fundo no mundo da criptografia, mas sim explicar os conceitos necessários para entender o arquivo de senhas, os reais ataques. Quem programa para a WEB poderá achar este artigo além de curioso, muito útil!
O primeiro método que se possa pensar é ter um arquivo com as senhas. Cito este método porque infelizmente ele ainda é amplamente usado em sites. Usarei exemplos de arquivos, mas o conceito vale para banco de dados (alguém pode pensar que o BD tem maior segurança porque exige autenticação. Ora, em um ataque supõe-se que o atacante invadiu a máquina e teve plenas condições de ler os fontes de teu PHP para ver a senha do Banco de Dados!).
Se este método fosse o usado no Linux, poderíamos imaginar um arquivo /etc/passwd deste jeito:
O formato do arquivo /etc/passwd realmente é este, com cada campo separado com dois pontos, mas a senha não fica armazenada assim em texto claro.
A autenticação seria fácil: usuário fornece seu login, sistema lê o arquivo de senhas e lá pega a senha dele (teste123). Usuário fornece senha, se for realmente "teste123" ele acertou a senha e pode se logar.
Contudo é muito fácil imaginar os problemas: qualquer um que tivesse acesso de leitura no arquivo /etc/passwd (e no Linux TODOS precisam ter este acesso) poderia ver a senha de todos. Além do mais se alguém roubasse este arquivo teria ali, sem dificuldade a senha até do root.
Sem dúvida um método extremamente ingênuo e não deveria ser usado para nada, absolutamente nada.
[1] Comentário enviado por leandrorocker em 08/02/2008 - 10:26h
Legal o artigo, meu TCC quando me formei em ciência da computação foi um estudo sobre hashes, fiz um programa pra quebrá-los (md5,sha1,sha224,sha256,sha384 e sha512) e apresentei os resultados é uma área interessantíssima e como sempre tem o dedo do Ronald Rivest no meio, o cara é um gênio.
[2] Comentário enviado por tenchi em 08/02/2008 - 11:17h
Cara, simplesmente demais. Imagino quantos milhares de computadores deve ter um destes esteriótipos de hackers de filmes americanos que conseguem quebrar a criptografia de qualquer servidor do governo... hauahua
São artigos assim que fazem do VOL o site que é.
[4] Comentário enviado por kabalido em 08/02/2008 - 11:42h
Cara,
Sem palavras! O artigo foi mais que sensacional.
Li seu artigo e gostei muito mesmo.
Esse tipo de artigo é aquele que dá prazer de ler.
Parabéns e "Viva o Linux".
[5] Comentário enviado por kalib em 08/02/2008 - 17:06h
Parece até brincadeira mas ainda é bastante comum encontrar sites diversos que armazenam suas szenhas em arquivos, bancos de dados ou mesmo no próprio código da página toscamente implantados em java script por exemplo...Infelizmente ainda é comum encontrar este tipo de ingenuidade na internet...
Excelente o seu artigo Elgio, digno de destaque aqui no vol bem como suas demais contribuições.
[6] Comentário enviado por borgetha em 08/02/2008 - 19:35h
No FreeBSD, antigamente (anos 90 - não sei se ainda é assim), o sistema liberava login e senha, caso o usuário errasse a senha, o sistema esperava 1 segundo e liberava o login novamente. Então se o usuário errasse novamente a senha, o sistema esperava 2 segundos para liberar de novo o login, e a cada erro o tempo dobrava. Era uma forma interessante de se evitar ataques de força bruta, pois o tempo de espera começa a ficar looooongo rapidamente. Claro que só funciona para quem não está logado e nem conhece o hash.
[8] Comentário enviado por removido em 09/02/2008 - 09:44h
Muito bom o artigo. Geralmente não leio um artigo todo, somente as partes mais interessantes (é uma forma de adquirir apenas as partes importantes e poupar tempo!), mas esse li todo e com prazer. Digno de figurar entre os melhores artigos destas revistas famosas que falam de informática.
... e ainda existe quem coloque a senha 0123456789!
[16] Comentário enviado por removido em 19/05/2009 - 18:04h
Artigo excelente, bem claro para um assunto muitas vezes complicado.
Um paper interessante de cientistas chineses mostra exemplos de colisão em funções de hash MD4, MD5, HAVAL-128 e RIPEMD: http://eprint.iacr.org/2004/199.pdf
[24] Comentário enviado por hmacedo em 24/11/2011 - 10:52h
Elgio, o seu "Hash by Elgio" é utilizado no cálculo de checksum das mensagens trocadas através do protocolo FIX. Praticamente todas as bolsas de valores mundiais utilizam esta técnica. Já não é tão ruim assim hehehehe