Pular para o conteúdo

Armazenamento de senhas no Linux

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!
Elgio Schlemer elgio
Hits: 267.759 Categoria: Linux Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar

Parte 9: Conclusões e referências

A forma como o Linux (por favor, sim, sim, Unix e FreeBSD também. É uma boa herança) armazena senhas é extremamente segura. Os ataques possíveis são por culpa do usuário que insiste em por uma senha fácil.

Como objetivo principal deste artigo espero que os programadores armazenem senhas de uma forma mais segura em seus sistemas. Um simples função de HASH md5 já melhora muito, mas para quem quiser ir mais além, não custa nada implementar salt numbers. Pode ser até concatenando os salt numbers na senha do usuário. Já inviabiliza os ataques, exceto, evidentemente, os de senha fácil.

Em uma universidade que ajudei a administrar implementamos uma página para trocar senha. Ela não aceitava senhas fáceis, como somente números, somente letras, baseadas em login. Usuário é usuário e muitos ficavam horas tentando por uma senha ou mesmo desistiam. Usuário é sempre o ponto mais fraco. Como convencê-lo a não usar a placa do carro como senha? Se você o obriga por força do seu cargo (eu sou o administrador, eu determino que a senha seja assim), você terá um eterno inimigo ou ainda terá que eles passarão a anotar a senha em algum lugar, como no celular por exemplo. Obrigar eles a trocar a senha a cada seis meses então... xiiii...

Como referência para este artigo confesso que realmente não consultei nada para escrevê-lo. É um assunto bem conhecido meu e claro que na minha formação li vários livros e sites que explicavam. Para escrever este artigo usei como base um email meu que enviei para os alunos de segurança. Este email não é igual a este artigo. Ele é mais técnico e dentro de um conceito de aula específico. Mesmo assim se alguém quiser ver o email eu o coloquei no meu site:
(podia simplesmente ter adaptado o email ao VOL, mas preferi escrever outro)

Um site para quebrar hashes MD5 ou SHA1 pode ser encontrado em http://passcracking.com/

Tente com estes HASHES:

698DC19D489C4E4DB73E28A713EAB07B = teste
2FE04E524BA40505A82E03A2819429CC = ola

Muita gente se surpreende com este site e acha que o mundo acabou, que não existe senha segura... Bobagem...

Por fim, eu me empolguei mais do que gostaria neste artigo. Alguns itens, caso seja do interesse, podem ficar para um segundo artigo. Não descrevi como realmente e matematicamente a senha é gerada (está no email) e nem porque o MD5 já é depreciado.

Uma boa leitura é o artigo Introdução a Criptografia aqui no VOL.
   1. Introdução
   2. Senha em um simples arquivo texto
   3. Senha em um arquivo criptografado
   4. Algoritmos de HASH
   5. Armazenando senhas com segurança
   6. Ataques ao Sistema de HASH
   7. Uso de salt number
   8. Como o Linux armazena
   9. Conclusões e referências

255.255.255.0: A matemática das máscaras de rede

Autenticação por desafio e resposta no SSH

Introdução a criptografia

Guerra Infinita, uma análise da Ciência da Computação

Parâmetros interessantes do scanf e do printf em C

Quebrando chave WEP (Wired Equivalent Privacy) - parte 1

Convergência entre segurança física e lógica

Analizando os logs do IPTables

Wow! O que esta câmera de segurança está fazendo aí?

Instalando o antivírus BitDefender no Linux

#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 é.
#3 Comentário enviado por everton3x em 08/02/2008 - 11:36h
Excelente o seu artigo.
Realmente, o maior problema no caso de senhas é o BIOS (Bicho [*****] Operando o Sistema).
#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.

obrigado pela colaboração.
#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.
#7 Comentário enviado por f_Candido em 08/02/2008 - 23:58h
Muito Bom. É um campo realmente interessante.
Parabéns.
Abraços
#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!

huahuahua

Parabéns
#9 Comentário enviado por sombriks em 09/02/2008 - 15:22h
belo artigo, nota 10!
#10 Comentário enviado por arlindom.correa em 10/02/2008 - 04:48h
Um artigo bem interessante e claro. Parabéns Elgio.
#11 Comentário enviado por grodriguesq em 10/02/2008 - 18:25h
Excelente artigo.. adorei a parte.. em q o usuário coloca asenha embaixo do teclado...

Acho q vou até enviar isso por email para alguns usuários da minha rede...
Ou seria mais fácil... tacar os usuarios da minha rede pela janela... ..
#12 Comentário enviado por bitencourt em 10/02/2008 - 18:39h
Muito legal o artigo, parabéns!
#13 Comentário enviado por dailson em 11/02/2008 - 14:53h
Artigo de ótimo nível aqui no VOL.
Parabéns Elgio
#14 Comentário enviado por asterix-super em 29/09/2008 - 18:30h
Elgio

De repente, passei a gostar do assunto criptografia, depois de ler seu artigo, muito obrigado.

Pergunto: O hash é mais eficaz do que aquela criptografia que é feita inserindo informação dentro de imagens (esteganografia)?
#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

Parabéns!!!

#17 Comentário enviado por samuel.abeu em 01/06/2009 - 00:23h
Assunto me esclareceu muito, me despertou a curiosidade e dissernimento ao escolher uma senha.
agradeço.
#18 Comentário enviado por _d4rks1d3_ em 07/06/2009 - 22:49h
Um excelente artigo!!
nao sabia destas coisas nao, valeu pelo artigo, ajudo muito a entender como funciona o armazenamento das senhas no linux!!

Parabéns!!
#19 Comentário enviado por XimenesWambach em 09/06/2009 - 16:22h
Gostei muito do artigo, achei muito explicativo.
parabêns
#20 Comentário enviado por Lisandro em 07/07/2009 - 12:32h
Excelente!
#21 Comentário enviado por Daemonio em 22/07/2009 - 10:11h
Excelente!! Você já tem o meu apoio caso você queira fazer a parte II deste artigo.
#22 Comentário enviado por mdenison em 30/07/2009 - 20:46h
Muito bom o seu artigo. Dê continuidade ao tema.
#23 Comentário enviado por guidobert em 02/08/2009 - 18:42h
Parabens ....... go on .....
#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
#25 Comentário enviado por kabelovga em 19/05/2014 - 12:32h
Show demais !!! Valeu pelo artigo !!!
#26 Comentário enviado por brunotisatto em 25/09/2014 - 09:00h
Boa Prof!!

Contribuir com comentário

Entre na sua conta para comentar.