Criptografia e Senha

17 respostas
eric_jf

Estava pensando sobre a utilização de criptografia de chave publica em uma senha de um sistema web e sua eficacia.

Se mensagem de login com a senha for capturada, não seria possivel re-enviar a mesma mensagem e acessar o sistema?? se sim, qual a vantagem de se criptografar a senha??

17 Respostas

Anderson_Leite

A vantagem da criptografia obviamente é a segurança. Não se entendi direito, mas quanto ao problema do reenvio de senha, ele pode ser tratado de duas formas:

Opção 1 - Criptografia por Message Digest - MD5 //Obs: -Não pode ser descriptografada // -Deve-se criptogravar a senha digitada pelo usuário e então compará-las
private static byte[] digest(byte[] input, String algoritmo)
			throws NoSuchAlgorithmException {
		MessageDigest md = MessageDigest.getInstance(algoritmo);
		md.reset();
		return md.digest(input);
}
Opção 2 - Vc criar seu proprío algoritimo de criptografia
private static String descriptografa(String senha) throws UnsupportedEncodingException{

		byte descSenha[] = senha.getBytes();
                //Criar regras utilizando os caracteres da tabela ASCII

...}
[/b]

Espero q ajude...

eric_jf

É uma questão teorica…

A questão é o seguinte:
Temos 3 divisões:

  • o cliente que está rodando a pagina html e/ou javascript;
  • a web que é alguem oderia interceptar a pagina enviada do cliente;
  • o servidor rodando java.

O cliente envia uma pagina que contem o login e a senha (que pode ou não estar criptografada).
Alguém intercepta essa pagina enviada pelo cliente, e a re-envia de um cliente invasor.
Ao chegar no servidor com o login e a senha (que pode ou não estar criptografada), como o login e a senha são validos, o invasor entra no sistema.

É possivel isso??
… e aonde a criptografia vai fazer a diferença??

renatosilva

com assinaturas digitais, o servidor poderia verificar que o cliente é falso…

eric_jf

Eu gostaria de saber se o que eu disse procede?? Se colocar uma senha criptografada daria na mesma q uma senha não criptografada??

Mas num cliente web essa assinatura não funcionaria da mesma forma que a criptografia?? a não ser que ela fosse calculada com uma variavel de tempo?certo?!

renatosilva

Cara, eu já me debati com uma questão mais ou menos igual à sua. Se me lembro bem, acho que cheguei à mesma conclusão, vou dar uma lida em casa…

eric_jf

Eu estou suspeitando que criptografar senha, não adianta em nada.

:arrow: …serrá!!!

renatosilva

Isso mesmo que eu pensei outro dia! Você intercepta a senha e envia para o servidor, mesmo que ela esteja criptografada e o impostor não saiba qual ela é.

Agora em aplicações web, acho que o HTTPS deve ter alguma espécie de segurança em relação à isso, não? De repente ele usa assinatura digital…

Mas será que existe alguma coisa do tipo com BDs por exemplo? Tipo, numa app cli/serv que se baseie apenas em criptografar a senha com hash não seria seguro, porque com um sniffer você pega o próprio hash, sem saber a senha, e a utiliza pra acessar o servidor!

Esquisito!

renatosilva

Dei uma lida na Wikipedia, o HTTPS usa assinatura digital sim…

eric_jf

Pelo que eu entendi o HTTPS envia TODA a mensagem criptografada + uma assinatura digital, que tambem deve estar criptografada.

Mesmo que alguem capture a mensagem não tem como utilizar.
Primeiro porque ele vai ter que saber o que está sendo requisitado, o q dependendo do site pode até ser facil de descombrir, como por exemplo um login no sistema, pois é o unico lugar q está criptografado.
Só que como ela está assinada, o servidor vai ver o pedido e verificar que é um pedido falso.

Conclusão:
Utilizar criptografia em senha não faz nenhum sentido.
O certo é utilizar TODA a mensagem criptografada+assinatura, como é feito pelo HTTPS.

Alguém concorda??

renatosilva

Não examatente, mas é por ae…

eric_jf

Não exatamenete porq???

boaglio

Leituras sugeridas:

Links sobre criptografia em Geral
:arrow: http://pt.wikipedia.org/wiki/Criptografia
:arrow: http://en.wikipedia.org/wiki/Cryptographic
:arrow: http://en.wikipedia.org/wiki/History_of_cryptography
:arrow: 3am Malta | Crypto-Toolbox | online cryptography, hash and PIN block checking (criptografia online!)

RSA

MD5
:arrow: http://en.wikipedia.org/wiki/MD5

DES
:arrow: http://pt.wikipedia.org/wiki/DES
:arrow: http://en.wikipedia.org/wiki/Data_Encryption_Standard

PGP

:arrow: <a href="http://en.wikipedia.org/wiki/PGP">http://en.wikipedia.org/wiki/PGP</a>

:arrow: <a href="http://www.pgp.com/">http://www.pgp.com/</a> - até versão 6.0 freeware, da 7 em diante é  pago! A versão atual é 9.0.

:arrow: <a href="http://public.www.planetmirror.com/pub/pgp/6.0/6.0.2i/PGPfreeware602i.exe">http://public.www.planetmirror.com/pub/pgp/6.0/6.0.2i/PGPfreeware602i.exe</a>

:arrow: <a href="http://www.gnupg.org/">http://www.gnupg.org/</a> - open source!

:arrow: <a href="http://download.unesp.br/documentos/tutoriais/tutorial-pgp.pdf">http://download.unesp.br/documentos/tutoriais/tutorial-pgp.pdf</a>   (ótimo tutorial de PGP em português)

:arrow: <a href="http://developer.kde.org/~kgpg/screenshots.html">http://developer.kde.org/~kgpg/screenshots.html</a> (um dos vários clients de PGP para linux)

Chaves
:arrow: http://en.wikipedia.org/wiki/Key_(cryptography)
:arrow: http://en.wikipedia.org/wiki/Symmetric_key_algorithm
:arrow: http://en.wikipedia.org/wiki/Asymmetric_key_algorithm
:arrow: http://en.wikipedia.org/wiki/Digital_signature
:arrow: http://en.wikipedia.org/wiki/Message_digest

renatosilva

Não exatamenete porq???

Eu estava bêbado, é isso mesmo…

fmeyer

Boaglio, voce podeira montar um Sticky para o forum sobre criptografia, oq voce acha ?

boaglio

O que exatamente além do que eu já postei ?

fmeyer

um topico separado pra gente poder por como sticky :smiley:

boaglio

Ok coloquei aqui: http://www.guj.com.br/posts/list/41987.java

Criado 20 de setembro de 2006
Ultima resposta 21 de set. de 2006
Respostas 17
Participantes 5