Como crio uma aplicação com certificado digital?

olá pessoal, gostaria de saber como crio uma aplicação básica que possua um certificado digital? Meu objetivo é fazer uma aplicação WEB básica, que faça com que a pessoa preencha um formulário e a aplicação disponibilize um arquivo com esses dados criptografados.

A outra parte desta aplicação, seria fazer com que ela pegasse um arquivo criptografado e o descriptografe-o.

Isso é possível? O meu maior foco neste tópico é aprender a criar a parte de certificado digital numa aplicação.

Aguardo a ajude de todos.

Abraço e fiquem com Deus. :slight_smile:

Prepare-se: isso vai dar um pouco de trabalho.

Uma dica é implementar um formato conhecido para criptografia, como o do PGP ou o formato CMS (PKCS#7). Esses formatos estão disponíveis na biblioteca BouncyCastle ( http://www.bouncycastle.org ) , que é descrita no livro que mencionei acima.

[quote=thingol]http://www.amazon.com/Beginning-Cryptography-Java-David-Hook/dp/0764596330

Prepare-se: isso vai dar um pouco de trabalho.

Uma dica é implementar um formato conhecido para criptografia, como o do PGP ou o formato CMS (PKCS#7). Esses formatos estão disponíveis na biblioteca BouncyCastle ( http://www.bouncycastle.org ) , que é descrita no livro que mencionei acima.
[/quote]

Eu consegui algumas coisas deste livro que você me passou Thingo, agora uma nova duvida:
Eu terei que baixar as bibliotecas a parte?

Você tem uma sugestão melhor e mais fácil para um sistema?

Obrigado pela ajuda…abraço.

Mais fácil é comprar isso pronto. Deve haver coisa melhor, mas você precisa procurar um pouco.

Cara, eu já revirei essa internet e não achei nehum código direito para mim testar, ô loco.

Olha, tem um código que peguei que não tá rodando por causa disso:

KeyStore kspkcs12 = KeyStore.getInstance("PKCS12");

– Não está aceitando o que está posto em parentese

Que tipo de projeto no Eclipse Europa eu crio para desenvolver uma aplicação que envolva a leitura de Certificados digitais existentes em meu computador?

E sobre a biblioteca que você mencionou, ela já vem no Eclipse Europa 3.3?

Uma idéia please…!!!

Abração e fica com Deus.

Se o certificado digital está em um arquivo em formato PKCS#12 (ou seja, normalmente é um arquivo terminado com .pfx ou .p12), então é esse o tipo de keystore a usar.

Se estiver instalado no Internet Explorer ou no Windows, ou então estiver em algum smartcard ou pendrive, então procure por SunMSCAPI.

Se estiver instalado em algum hardware que obedeça à especificação PKCS#11, então procure por SunPKCS11.

Não; você tem de baixá-la em http://www.bouncycastle.org .
A documentação na Web é um bocadinho escassa, portanto é aconselhável arranjar o tal livro, já que as informações do livro não estão na Web.

[quote=thingol][quote=hannibal_daturn]

E sobre a biblioteca que você mencionou, ela já vem no Eclipse Europa 3.3?
[/quote]

Não; você tem de baixá-la em http://www.bouncycastle.org .
A documentação na Web é um bocadinho escassa, portanto é aconselhável arranjar o tal livro, já que as informações do livro não estão na Web.
[/quote]

Para testar, eu iria mesmo apresentar os certificados do IE como teste, e como minha aplicaçã deverá ser em JAVA, gostaria de saber se eu posso fazer um Java Project mesmo ou se tem que ser um projeto específico para WEB ou para certificação?

Use um “Java Project” mesmo.
É bastante chato usar os certificados do IE (SunMSCAPI); é mais fácil trabalhar com certificados PKCS#12 (que são em arquivos, protegidos só por uma senha). Aprenda a usar o keystore padrão do Java (JKS), ou o do BouncyCastle (BKS), depois o keystore PKCS#12, e por último comece a investigar o SunMSCAPI.

vixi…certificado digital é embaçado…

ja mexi com isso, da uma dor de cabeça o caramba

[quote=thingol]Use um “Java Project” mesmo.
É bastante chato usar os certificados do IE (SunMSCAPI); é mais fácil trabalhar com certificados PKCS#12 (que são em arquivos, protegidos só por uma senha). Aprenda a usar o keystore padrão do Java (JKS), ou o do BouncyCastle (BKS), depois o keystore PKCS#12, e por último comece a investigar o SunMSCAPI.
[/quote]
Ok, irei dar uma estudada nestes quesitos.

So

Onde eu consigo certificados PKCS#12 para eu fazer teste? Este tipo de certificado eu posso criar com algum programa?

E se eles possuem senha, eu só os poderei lê-los se eu tiver as senhas?

Obrigado thingol…Abração e fica com Deus…

Um certificado PKCS#12 pode ser criado com o próprio keytool:

c:\jdk1.6.0\bin\keytool -genkeypair -v -dname "CN=www.guj.com.br;C=BR;ST=Sao Paulo;L=Sao Paulo" -validity 3600 -storetype PKCS12 -keystore guj.pfx -keyalg RSA -keypass SENHASECRETA -storepass SENHASECRETA 

[quote=thingol]Um certificado PKCS#12 pode ser criado com o próprio keytool:

c:\jdk1.6.0\bin\keytool -genkeypair -v -dname "CN=www.guj.com.br;C=BR;ST=Sao Paulo;L=Sao Paulo" -validity 3600 -storetype PKCS12 -keystore guj.pfx -keyalg RSA -keypass SENHASECRETA -storepass SENHASECRETA [/quote]

Valeu thingol, eu tinha conseguido criar um certificado utilizando o keytool, agora eu tenho que entender como eu crio a chave pública e privada, e em seguida como as utilizar.

Estes são meus próximos passos, além de criar um programinha bobo para fazer o uso das mesmas, pelo menos para leitura e aceitação do certificado.

hehehe…estou caminhando com sua ajuda meu amigo…

estou estudando sobre modelos de confiança, você tem algum material sobre isso? Pois verei se será possível criar um código que simule um dos modelos existentes…

Muito obrigado…Super abraço e que Deus te abençoe mano…Uma ótima semana para ti.