Quando desenvolvemos um sistema seguro, temos que supor que todas as pessoas possuem o c�digo fonte do sistema. Assim, se seu programa est� seguro somente enquanto o .class n�o for decompilado, ent�o n�o h� seguran�a nenhuma!
 
Falando em autentica��o de senha... o m�todo com Message Digest (MD5, SHA-1, etc..) � muito interessante, pois o server pode autenticar o cliente sem mesmo saber a senha... Mas cuidado! se o cliente calcula o digest e envia ao servidor.. basta um usu�rio "malicioso" conhecer o digest do cliente (interceptando mensagens, etc..), e ele (o usu�rio malicioso) pode simplesmente enviar diretamente o digest pro servidor, conseguindo uma autentica��o, mesmo sem saber a senha.
 
Isto pode ser resolvido se o servidor souber sim a senha. Ent�o o cliente faz um digest com a senha junto com um n�mero aleat�rio (por exemplo), e evia pro servidor o digest e o n�mero. O servidor por sua vez, pega o n�mero aleat�rio que o cliente enviou e faz um digest com a senha do cliente. Se o digest do servidor der igual ao digest do cliente, ent�o o cliente estar� autenticado. O �nico problema � que o servidor vai ter que saber as senhas dos clientes.. e a� vc teria que pensar num modo de garantir que as senhas estejam seguras no lado servidor.
 
Luiz Felipe Molina.
----- Original Message -----
Sent: Sunday, May 12, 2002 12:26 AM
Subject: Re: [java-list] Password

Paulo,
 
o que exatamente voc� n�o pode gravar no .class? A senha?
O que voc� poderia estar fazendo seria utilizar um algoritmo de criptografia para cifrar a senha antes de grav�-la no arquivo e decifr�-lo ao efetuar a conex�o com o banco de dados. Claro que n�o poderia ser um algoritmo f�cil de ser descoberto, voc� poderia ofuscar a classe para dificultar um pouco as coisas.
 
Algo mais sofisticado seria usar um algoritmo que use chaves sim�tricas e al�m de guardar a chave usada no .class, guard�-la tamb�m em um local seguro para ser usada sempre que a senha for trocada. O uso de chaves assim�tricas n�o traz nenhuma real vantagem, fora a desnecessidade de grande seguran�a para guardar a chave a ser usada para cifrar a palavra.
 
Bem, tudo isso n�o vai te proteger totalmente, nada impede que um bom conhecedor de Java decompile a sua classe e descubra como funciona o mecanismo, mesmo que ela esteja ofuscada (para tal esfor�o provavelmente seria algu�m mal intencionado). Mais do que uma criptografia, � necess�ria uma pol�tica de seguran�a, que impe�a o acesso ao sistema nos n�veis de hardware e software e que tamb�m involva as pessoas da empresa.
 
Samuel
 
----- Original Message -----
Sent: Friday, May 10, 2002 10:01 AM
Subject: Re: [java-list] Password


ola ALL,

Obrigado pela ajuda.
O meu problema � que preciso gravar a senha de acesso ao banco em um arquivo .properties por exemplo. Pois minha aplicacao lera desse arquivo para conectar ao banco. Isso que vc falou est� correto para os demais usu�rios, mas e o user que se logar� no banco como proceder? Eu nao posso deixar gravado dentro do .class, pois trata-se de uma aplicacao comercial, entao como fazer? Quero pegar a senha, criptografa-la, grava-la em um .properties, e quando precisar acessar o banco, ler o arquivo, descriptografar a senha, autenticar  no banco.

Caso vc tenha QUALQUER ajuda/exemplo agrade�o muito.


"Valeu ;) "

Atenciosamente
PAULO BRANCO
DIRETIVA DIGITAL




Garante sim.

A fun��o hash funciona assim:
Dado um texto de entrada, uma sa�da � gerada.
A partir da sa�da, � imposs�vel se chegar novamente ao
texto da entrada. Mas dada a mesma entrada, a mesma
sa�da � gerada.
Se vc aplica essa fun��o na senha do usu�rio quando o
est� cadastrando ou trocando de senha, o que fica
guardado � essa sa�da, que n�o significa nada para
ningu�m que venha a pegar esse arquivo. Quando o
usu�rio vai logar, vc aplica a fun��o na entrada dele
e, se bater o resultado com o que est� guardado, ele
bateu a senha correta.
Esse tipo de autentica��o � usado no UNIX.

JP

--- [EMAIL PROTECTED] wrote:
> Mas Marco, na realidade esse algoritmo nao garante

> seguranca nenhuma, ou
> nao?
> Como gravar em um arquivo essa "password" se quando
> transformada em string
> fica identica?
>
> Atenciosamente
> PAULO BRANCO
> DIRETIVA DIGITAL
>
>
>
>
> "Marco Aurelio Vilela Garcia" <[EMAIL PROTECTED]>
> 06/05/2002 12:54
> Please respond to java-list
>
>  
>         To:     <[EMAIL PROTECTED]>
>         cc:
>         Subject:        Re: [java-list] Password
>
>
> Caro Matheus;
> No caso de criptografar uma senha, eu sugiro que n�o
> utilize nada para
> criptografia. A documenta��o ainda est� fraca, pois
> a API de criptografia
> foi liberada para usu�rios fora dos EUA h� muito
> pouco tempo. � poss�vel
> obter uma funcionalidade parecida usando um digesto
> de mensagem.
> O procedimento � o seguinte: uma classe ir�, a
> partir da sua senha, criar
> uma string que parece ser criptografada. Mas n�o se
> trata de criptografia,
> �
> apenas uma forma de autentica��o. Eu estou usando
> isso para armazenar
> senhas
> numa base de dados. Estou satisfeito at� agora.
>
> Logo abaixo escrevo um c�digo para vc experimentar.
>
> Abra�os
> Marco
>
>
>
> import java.security.*;
>
> /**
>  *  @author  Marco Aur�lio Vilela Garcia
>  *  @version 1,0
>  */
> public final class PasswordEncDec {
>
>     public static String cryptSenha(String senha){
>         try{
>             MessageDigest md =
> MessageDigest.getInstance("SHA");
>             byte[] buf = senha.getBytes();
>             md.update(buf);
>             byte[] digest = md.digest();
>
>             return new String(digest);
>         }
>         catch(NoSuchAlgorithmException nsae){
>
>
System.err.println("===============================================");
>
>
System.err.println("===============================================");
>             System.err.println("      Erro
> acontecendo no
> PasswordEncDec");
>             System.err.println("              M�todo
> cryptSenha ");
>             System.err.println("Exce��o: "+ nsae);
>
>
System.err.println("===============================================");
>
>
System.err.println("===============================================");
>             return null;
>         }
>     }
> }
>
>
>
> ----- Original Message -----
> From: "MATHEUS Fabio O CONFAB"
> <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, May 06, 2002 8:54 AM
> Subject: [java-list] Password
>
>
> Pessoall,
>
> Algu�m teria um exemplo simples de criptografia de
> uma string, ou
> simplesmente s� o algoritimo??
> Qquer ajuda seria importante..
>
> Grato e boa semana!
> F�bio Oliveira Matheus
> Confab Industrial S/A. - Depto. Sistemas
> Pindamonhangaba - S�o Paulo - Brasil
> E-Mail: [EMAIL PROTECTED]
> Fone: 12-244-9316  Fax: 12-244-9304
>
>
>
> ------------------------------ LISTA SOUJAVA
> ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usu�rios
> Java da Sucesu-SP
> d�vidas mais comuns:
> http://www.soujava.org.br/faq.htm
> regras da lista:
> http://www.soujava.org.br/regras.htm

> historico:
>
http://www.mail-archive.com/java-list%40soujava.org.br
> para sair da lista: envie email para
> [EMAIL PROTECTED]
>
-------------------------------------------------------------------------
>
>
>
> ------------------------------ LISTA SOUJAVA
> ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usu�rios
> Java da Sucesu-SP
> d�vidas mais comuns:
> http://www.soujava.org.br/faq.htm
> regras da lista:
> http://www.soujava.org.br/regras.htm
> historico:
>
http://www.mail-archive.com/java-list%40soujava.org.br
> para sair da lista: envie email para
> [EMAIL PROTECTED]
>
-------------------------------------------------------------------------
>
>
>
>
>


__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------




Responder a