Criptografia  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
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

    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.
    [MSN]
    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
    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.
    [MSN]
    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
     
    Índice dos Fóruns » Java Avançado
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team