Dúvidas na Assinatura Digital de documentos conforme ICP-Brasil

Olá pessoal, boa tarde.

Estou começando a ver algumas coisas sobre assinatura digital de documentos, pesquisei bastante aqui no fórum mas não consegui tirar todas minhas dúvidas.

Quando um documento é assinado digitalmente eu vi que é gerado um hash e um timestamp, e também é gravada a chave pública. Essas informações ficam no próprio documento (como se fosse um EXIF de uma imagem por exemplo) ou são geradas num anexo? Estou pensando em assinatura de qualquer tipo de arquivo, PDF, DWG/CAD, DOC, ZIP, etc.

Eu preciso de um assinador específico para usar com certificados do ICP-Brasil? Quais são os mais usados? Procurei algumas APIs java free para facilitar mas não achei nada, só vi um projeto SignThing mas parece que está parado.

Sabendo que essas assinaturas são feitas a partir de uma chave privada que usa token ou smartcard, fiquei pensando como uso essa informação ? É minha aplicação que precisa pegar o número do token, por exemplo, e passar ao assinador?

Agradeço desde já a quem puder dar umas dicas aí.

Vlw

E aí manowars blz???
Recentemente eu também pesquisava sobre o assunto e encontrei alguns links
interessantes acredito q essas leituras lhe ajuda-rá:

Trabalho de conclusão de curso completo sobre assinatura digital em dispositivos móveis
feito por Davi Garcia Pereira na UNIVERSIDADE FEDERAL DE SANTA CATARINA
http://projetos.inf.ufsc.br/arquivos_projetos/projeto_692/tcc-davigp-final.pdf

Apresentação feita por jeveaux sobre certificação digital abordando assuntos como criptografia chave assimétrica etc…
http://jeveaux.com/2009/apresentacao-sobre-certificacao-digital/

Espero que te ajude… Me ajudou bastante enquanto pesquisava o assunto, principalmente o Trabalho do Davi
pois pretendo utilizar assinatura digital num aplicativo de celular q se comunica com um webService.

Até mais… se encontrar mais coisas sobre assinatura digital posta aki no GUJ!!!

Honurb,

obrigado pelas dicas cara, a partir do material que você passou eu achei mais monografias voltadas pra assinatura/certificação digital de documentos, o melhor material que encontrei foi a monografia do Cristian Thiago Moecke, “ASSINATURA DIGITAL DE DOCUMENTOS ELETRÔNICOS NA ICP-BRASIL”, também da UFSC.

Percebi que o assinador não precisa ser específico pro ICP Brasil, ele pode usar qualquer certificado, o detalhe é que os certificados autorizados pela ICP Brasil tem alguns campos a mais como CPF, Título de Eleitor, etc.

A única coisa que não achei nada ainda foi sobre como usar um token, por exemplo, para assinar, não sei se eu precisaria validar a informação em algum servidor fornecido por quem gerou o certificado.

Vi também que eu precisaria ter uma base única com todos certificados das pessoas que vão usar minha aplicação web, isso pode dificultar um pouco.

Vlw

Encontrou alguma solução?

Pelo que pesquisei, o ideal seria que cada formato usasse sua própria aplicação para assinar um documento, exemplo: Adobe para PDF, AutoCAD para DWG. Acabei não dando continuidade.

Quanto a assinar em aplicações web, teria que usar um applet para ler o certificado de quem vai assinar, solicitar a senha, validar o token ou smartcard.

Sugiro ler:

http://www.developer.com/java/web/article.php/3083161/Digital-Document-Signing-in-Java-Based-Web-Applications.htm
http://www.developer.com/java/web/article.php/3298051/NakovDocumentSigner-A-System-for-Digitally-Signing-Documents-in-Web-Applications.htm

e procure no google por applets que lêem certificados à partir de tokens na USB, tem algumas opções.

Boa sorte.