Criptografia com MD5 [RESOLVIDO]

1. Criptografia com MD5 [RESOLVIDO]

Ricardo Cardoso
ricardo cardoso

(usa Debian)

Enviado em 20/04/2010 - 18:56h

Olá pessoal!

Bem, estou colocando esse post aqui para trocar informações sobre segurança. Então vamos lá.

Estava eu ontem a noite, aqui em casa, sem nada pra fazer e resolvi fazer uns testes de segurança em Desenvolvimento para Web. Fiz o seguinte criei uma pequena tabela em uma banco de dados mysql em um servidor aqui em casa. Essa tabela tem apenas dois campos, usuario e senha.

Fiz um pequeno formulario em HTML para o Usuário fazer seu cadastro e outro em php para efetuar login. Obviamente criei dois arquivos em PHP, um para poder fazer o cadastramento e outro para fazer a autenticação.

No formulario que envia os dados para o servidor, eu coloquei a função para criptografar a senha em MD5 e por isso tive que colocar a mesma função no formulario de autenticação para que ele possa criptografar a senha informada pelo usuário e comparar com a que está salva no BD.

Até aí tudo bem.

Mas comocei a pensar. Digamos que alguem tente logar no sistema, ou seja, adivinhar a senha do usuário vai ter trabalho já que ela esta criptografada e mesmo que o suposto invasor tente descobrir vai dar trabalho...

Porém tem os detalhes que me deixam com um pé atrás.

1. Se por acaso alguem supor que a senha do usuario é um nome de mulher, ele vai digitando vários até encontrar o correto, aí o sistema vai criptografar para verificar e vai conseguir logar e por aí vai.

2. Se alguem tiver acesso ao servidor ou então invadir o mesmo localmente ou pela internet, vai ter acesso ao banco de dados. um exemplo claro são os hosts na Net que hospedam sites. Quando a gente loga ou acessa o diretorio do nosso domínio o famoso PhpMyAdmin está lá, com livre acesso e aí o cara nem precisa ter trabalho porque já vai ter todas as informações dos usuários na mão.

3. Agora vem o mais chato, o cara tá lá dentro do servidor, dentro do banco de dados o que ele faz? vai até o campo senha e pega a senha criptografada. Ex. digamos que o numero 1 é a senha, criptografado seria 13fa1975cbfaa4444446acdef87966, basta pegar esses 32 caracteres e somente digita-los no formulario de login no local para a senha e ele vai logar no sistema. simples!

4. O Hacker que sacanear e copia todas as senhas e usuários do banco de dados e espalha pela internet. Já dá para saber o que acontece né? a criptografia nesse caso não vale de nada.


Então cadê a forma eficiente e sem furos de usar a criptografia sem ser específico em MD5, ou seja, em todos os métodos?


  


2. Re: Criptografia com MD5 [RESOLVIDO]

Jefferson Diego
Diede

(usa Debian)

Enviado em 20/04/2010 - 19:30h

Não sei se compreendi seus pontos, mas:

1. Isso ocorreria de qualquer forma em qualquer algorítimo. A não ser que você faça algo como "O usuário que errar a senha só

pode tentar novamente 2 anos depois" qualquer algorítimo será fraco perante força bruta. Mas a culpa não é o sistema, e sim

da peça entre o teclado e a cadeira que colocou uma senha simples. O MD5 é até bom por ser unilateral... olhando o hash você

não sabe se o que o gerou é 1 caractere ou 1 bilhão deles.

2. Nesse caso ele terá o hash apenas. Igual se roubarem o shadow aí da sua máquina... o que o cara poderá fazer? ficar uns 2

anos "brute-forceando" no john?
De qualquer forma, se já têm acesso ao ser server não há muito o que possa ser feito. Não importa seu algorítmo. É o mesmo em

um sistema qualquer: Se o cara já tem acesso ao server por que perder tempo tentando quebrar a senha se ele já está lá

dentro?

3. Bem, só se houver um furo no seu formulário de login. Se a função do formulário é aplicar hash no campo de senha e o cara

digitar "13fa1975cbfaa4444446acdef87966" o hash gerado será "d1eb65515ca8aa77139d5444030788ed" e não

13fa1975cbfaa4444446acdef87966 novamente. O que ele pode fazer é gerar um formulário próprio que não aplique o hash, mas

compare os campos diretamente... mas, a mesma pergunta: Se ele já está no servidor e têm acesso ao banco de dados de

senhas... pra que tentar quebrar a senha que ele já não mais precisa? (Ok, há situações onde isto é viável...)


3. Huun

Pedro
pedrodaltoe

(usa Fedora)

Enviado em 20/04/2010 - 19:48h

Bom, em alguns casos até concordo, maaaaaaassss, a criptografia é pra proteger a senha, umtimo recuso, pra proteger um server linux por exemplo temos um IPtables, usuario e senha entre outros, pra proteger o banco de dados mysql, temos também usuario e senha.. claaaaaroooo que existe um cara que pode chega ali no sistema e fazer um brute force, mais existe metodo pra nao permitir isso também, ou seja, cada ferramenta de protecao serve pra uma coisa.
Alem de que MD5 ta meio passado, e tambem nao precisamos divulgar o tipo de criptografia que estamos usando o que tambem dificultaria na descriptografia.. é o meu ponto de vista neh..


4. Re: Criptografia com MD5 [RESOLVIDO]

Ricardo Cardoso
ricardo cardoso

(usa Debian)

Enviado em 20/04/2010 - 19:55h

Só que o phpMyAdmin em hosts não exige senha para acesso ele entra direto. A única conta é a de usuário que devemos criar vincular ao banco de dados que queremos e coloca-lá no codigo php onde faz a conexão.

Tudo isoo é possível de ser feito. E furos não existem mas podem ser facilmente criados.

obrigado a todos!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts