Criptografia

4 respostas
G

Ai Galera,

Estou desenvolvendo uma aplicacao em Java q gera certificados request, e estou utilizando o exemplo PKCS10CertRequestExample do livro “Beginning Cryptography with Java”.
Este exemplo utilizado a biblioteca bouncycastle, mas agora o que eu estou precisando mesmo, é de gerar um certificado RSA 1024. E de todos os exemplos que eu vi encontrei estes algoritmos menos de AES:

[list]SHA1withDSA[/list]
[list]SHA1withECDSA[/list]
[list]SHA224withECDSA[/list]
[list]SHA256withECDSA[/list]
[list]SHA384withECDSA[/list]
[list]SHA512withECDSA[/list]
[list]MD2withRSA[/list]
[list]MD5withRSA[/list]
[list]SHA1withRSA[/list]
[list]SHA224withRSA[/list]
[list]SHA256withRSA[/list]
[list]SHA384withRSA[/list]
[list]SHA512withRSA[/list]
[list]RIPEMD160withRSA[/list]
[list]RIPEMD128withRSA[/list]
[list]RIPEMD256withRSA[/list]

Será que alguem pode dar uma ajuda e dar sugestões de como eu posso resolver isto???

Outra coisa que gostaria de saber é se a lib bouncycastle é fidedigna e pode ser utilizada em qualquer situação onde se queira impelementar segurança. Ex(Banca, Telecomunicaçoes, Estado, Etc)???

Aguardo entao que alguem me possa dar uma maozinha.
[]'s

//Graveyard

4 Respostas

J

Você quer utilizar a criptografia RSA ou AES, elas são diferentes.

O tamanho máximo do AES é de 256.

Até mais.

G

Desde já, obrigado pela ajuda.

O algoritmo que quero é RSA de 1024 bits.

Agora levanto outra questão, implementando isto numa applet, como é que o java guarda a Private Key na keystore?

Será que funciona bem em todos os browsers, independentemente do sistema operativo, devido à diferente estrutura de pastas???

Depois de ter o Certificate Request e depois de ter gerado o Certificado PKCS7, como é que atraves da applet eu posso instalar o certificado no browser???

[]'s
//Graveyard

J

Olá, aqueles algoritmos que você expôs na primeira mensagem são algorimos de “digest” utilizados na assinatura dos certificados.

O bouncycastle tem suporte para esse algoritmo e também esse tamanho de chave, olha vou ser sincero com você eu não conheço muito sobre applet mais posso te ajudar um pouco sobre a parte da criptografia.

Então a sua chave privada está dentro de um arquivo .jks, então esse arquivo deve estar dentro do projeto, porém isso não é recomendado, ou seja não é seguro deixar a chave privada acessivel dessa forma, seja em disco ou dentro do projeto, para isso existe HSM (Hardware Security Module) que cuidam dessa questão, porém o seu caso é um pouco diferente, então procurei um pouco e achei o seguinte link que deve ajudar a não implementar a ideia acima haha.

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

Quando a estrutura de pastas é só guardar o jks na raiz da maquina e acessar utilizando a sintexe (caso for seguir o exemplo do site acima): “/jks/meukeystore.jsk”. e tudo estará resolvido.

Na verdade você vai assinar a applet com um certificado homologado por uma CA que já contém um root certificate instalado. (Verisign, … ).

Abraços.

G

Mais uma vez, o meu obrigado pela ajuda.

Na realidade aquilo que eu quero fazer é invocar métodos de uma applet a partir do javascript, isto porque o javascript gerar o CertificateRequest nao funciona bem em todos os browsers, logo optamos por implementar a partir de uma applet, porque inicialmente os dois metodos estavam do lado do javascript(metodo de geraçao de pkcs10 e instalacao do certificado), o metodo de geraçao do pkcs7(certificado) é gerado a partir de codigo que corre do lado do servidor.

Por aquilo que li, a chave privada fica guardada no browser, dai o codigo nunca poder correr do lado do servidor, mas sim sempre do lado do cliente(as opçoes q encontrei seriam: ou fazer em javascript ou com uma applet, como o javascript n corre bem em todos os browsers, optei pela applet). Já consegui replicar o CertificateRequest pkcs10 com base nos algoritmos q me tinham recomendado, dps disso o objectivo é pegar nesse CertificateRequest e envialo para “baixo”(codigo q corre do lado do servidor) para gerar o pkcs7.

A minha grande questão continua a ser: Em q sitio é q o browser guarda a private key??? Cada browser possui uma keystore(armazem de chaves), só n sei onde é q é. Queria garantir q a applet escreve mesmo nessa keystore a chave privada.

O objectivo é quando for instalar o certificado digital(pkcs7) no browser, certificado esse que está encriptado com a chave publica, fazer match com a chave privada e a instalaçao do certificado correr bem.

É nessa parte que estou menos à vontade.

Se me puder dar uma maozinha agradeço.

[]'s
//Graveyard

Criado 9 de janeiro de 2011
Ultima resposta 11 de jan. de 2011
Respostas 4
Participantes 2