| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/01/2011 23:15:34
|
graveyard
JavaBaby
Membro desde: 17/09/2007 18:18:37
Mensagens: 83
Offline
|
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:
SHA1withDSA
SHA1withECDSA
SHA224withECDSA
SHA256withECDSA
SHA384withECDSA
SHA512withECDSA
MD2withRSA
MD5withRSA
SHA1withRSA
SHA224withRSA
SHA256withRSA
SHA384withRSA
SHA512withRSA
RIPEMD160withRSA
RIPEMD128withRSA
RIPEMD256withRSA
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
This message was edited 1 time. Last update was at 10/01/2011 21:53:46
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2011 12:31:29
|
jgavazzisp
JavaBaby
Membro desde: 21/07/2008 17:25:43
Mensagens: 88
Offline
|
Você quer utilizar a criptografia RSA ou AES, elas são diferentes.
O tamanho máximo do AES é de 256.
Até mais.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2011 21:52:15
|
graveyard
JavaBaby
Membro desde: 17/09/2007 18:18:37
Mensagens: 83
Offline
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2011 12:25:33
|
jgavazzisp
JavaBaby
Membro desde: 21/07/2008 17:25:43
Mensagens: 88
Offline
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2011 21:55:20
|
graveyard
JavaBaby
Membro desde: 17/09/2007 18:18:37
Mensagens: 83
Offline
|
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
|
|
|
 |
|
|
|
|