Assinar com Applet

Pessoal !!!

Necessito enviar um uma String qualquer (um desafio) e este ser assinado (utilizando a chave privada do certificado) através de uma applet.

A sistemática da applet estar assinada para rodar no navegador solicitante do serviço já está ok e funcionando,
O que não estou conseguindo realizar é que ela assine algo.

Alguém já teve que assinar algo no navegador solicitante usando uma applet ?

Onde é que está o tal certificado? Instalado no browser?
Se ele estiver instalado no browser Internet Explorer, você só conseguiria fazer isso usando JNI (para Java <= 5.0) ou então um pacote (cujo nome infelizmente esqueci, mas não é barato). Se o seu Java puder ser 6.0, então é possível usar o provedor SunMSCAPI, mas é difícil até achar referências sobre ele na Internet.
Se ele estiver instalado no browser Mozilla / Firefox, você precisa usar Java 5.0 ou posterior, e usar o provedor SunPKCS11, e mexer em um arquivo de configuração do Sun Plugin da máquina do cliente (java.security).

  • Atenção - estou falando a parte teórica da coisa; nunca fiz efetivamente isso.

sim, o certificado estaria instalado no browser solicitante ( cliente )
quando ao JAVA, poderei usar a versão que for necessária no Servidor, mas e no cliente solicitante ?
e também poderá ser tando acessado pelo Internet Explorer, como pelo Mozilla / Firefox, pois o serviço estará disponível via web

Que lindo - se seu chefe quer pôr a mão no bolso, deve ter de comprar um pacotão que permita fazer isso, já que você está assumindo que “pode ser qualquer browser que esteja usando Java” - até aquele Java da Microsoft…
É que dá um trabalho desgraçado. Se não comprar o tal pacotão (Phaos), provavelmente você terá de escrever uma DLL JNI e um pequeno instalador para copiar as DLLs para um lugar onde as applets possam acessá-la.

http://www.oracle.com/technology/products/id_mgmt/phaos/index.html
http://www.phaos.com/IMsecurity/identity_m.html
http://java.sun.com/products/jce/javase_providers.html

… pois é caro companheiro !!!, estou iniciando neste “mundinho” das certificações digitais !

e pelo que podemos ver, os certificados serão obrigatórios em todos os serviços: pelo menos os governamentais.
Já está respaldado por Lei a ICP-Brasil.

Por isto me parece básico o “browser-cliente” poder assinar algo (como um desafio-resposta),

Pois a única forma de comprovar (perante a lei) sua conexão é que ele assine um desafio enviado pelo servidor e este guarde o “desafio” e a “resposta”* do cliente (juntamente com a chave pública dele).
…ou mesmo poder assinar por exemplo um artigo (em um formulário)
*(“desafio” é uma Strig qualquer e “resposta”: é o desafio criptografado com a chave privada do cliente)

admitindo que estas questões legais são relativamente novas para o Brasil, mas esta tecnologia já é de muito usada.

“Atento” aos companheiros de labuta, que este é um assunto que não poderá ser negligenciado.