Assinatura Digital

De UniWiki
Revisão de 15h45min de 25 de abril de 2017 por FranciscoCampos (Discussão | contribs) (Configurações do Unilab)
Ir para: navegação, pesquisa

O que é Assinatura Digital?

Assinatura Digital é o processo eletrônico de assinatura, baseado em sistema criptográfico assimétrico, que permite ao usuário usar sua chave privada para declarar a autoria de documento eletrônico a ser entregue à Receita Federal do Brasil, garantindo a integridade de seu conteúdo.

Modelo Utilizado

Certificado dig a1.jpg
  • Validade de um ano e instalado em seu computador;
  • Protegido por uma senha de acesso (opcional);
  • Recomenda-se fazer cópia de segurança externa ao computador;
  • Emissão do Certificado somente em Windows Vista, 7 ou 8.1 e linux e algumas certificadoras..

Configurações do Unilab

No Unilab foi decidido que será usado o modelo A1 para a assinatura dos laudos.
Após a assinatura vinculada ao usuário do Unilab e o rodapé do laudo ser configurado os documentos de PDF que forem gerados terão a assinatura digital incluída automaticamente.
Quem assina o PDF?
  • Se no unilab possuir um "Responsável pelo laudo" configurado em "Cadastros > Configurações > Assinatura digital" (Recurso disponível a partir da versão 3.03.022), é esta assinatura que será utilizada no PDF, independente de o liberador possuir ou não outra assinatura.
  • Se não possuir "Responsável pelo laudo" configurado, é utilizado a assinatura de quem liberou o exame.
  • Caso quem tenha liberado o exame também não possua assinatura, é utilizado a assinatura padrão que estiver configurada em algum dos usuários.
  • Se a assinatura padrão está expirada (ou não tem uma padrão), pegar alguma válida.
  • Se não houver válida emitir sem assinatura.

Configurações na maquina que ira assinar digitalmente

Na maquina que for configurar o certificado digital terá que registrar uma dll usando o caminho.

C:\Windows\Microsoft.NET\Framework\"VERSAO"\RegAsm.exe "LOCAL_DA_DLL"\AssDig32.dll /tlb

  • Substituir os campos entre aspas pela pasta correta. O local da dll é o caminho da pasta do uniwarew.
Caso de erro na hora de registrar a dll tem que instalar o .net framework atualizado.

Exportação do certificado A1

Atenção !!!

Não basta qualquer certificado para assinar um documento (mesmo que o certificado esteja instalado no windows).

Existem regras para utilização dos certificados.

Para exportar seu certificado tipo A1 para uso no Unilab ou saber mais sobre certificados e a assinatura digital de documentos, consulte o Manual para assinatura digital no Unilab em um dos links abaixo:

Interno: http://svw-uniware2/_wiki_docs/manuais/Assinatura-Digital-Unilab.ctb.pdf
Público: http://uniware-lda.no-ip.net:3080/_wiki_docs/manuais/Assinatura-Digital-Unilab.ctb.pdf

Assinatura Digital Java (uPdfSign)

Instalação

A instalação do uPdfSign para utilização no Unilab deverá ser feita da seguinte forma:
  • Copiar a pasta jassdig (Nota abaixo) para a pasta na qual está localizado o unilab (geralmente uniwarew)
    NOTA:  \\svw-uniware2\UNIWARE\UnilabVersoes\VersaoAtual\AssinaturaDigital\uPdfSign
  • Configurar o java (JRE) em cada terminal que utilize o unilab da seguinte forma:
    NOTA:  No linux, o JRE deve ser instalado no wine (java para Windows), os arquivos de instalação encontram-se
           na pasta  \\svw-uniware2\STORAGE\Linux-desenvolvimento\Java\JRE\jre-i386-wine
               jre-6u45-windows-i586.exe       - JRE 1.6
           É altamente recomendável que o Wine (32) deve estar configurado para "Windows 2008 R2" e deve ser a versão 
           mais recente disponível.
           Instale o pacote jre-6u45-windows-i586.exe
    NOTA:  No Windows, verificar a versão do Java (JRE) e caso seja inferior a 1.6, baixar e instale a versão 8 do Java.
           Para conferir a versão do JRE digite o seguinte comando no prompt (windows ou linux):  java -version. 
           Instalação do JRE em:   http://www.oracle.com/technetwork/pt/java/javase/downloads/jre8-downloads-2133155.html
    OBS:   As versões apontadas nas notas acima, são as mínimas exigidas pelo assinador e são o cenário ideal.

Configuração Adicionais Linux

  • Editar o arquivo [java_dir]\jre\lib\security\java.security e adiconar o provider "org.bouncycastle.jce.provider.BouncyCastleProvider" na lista de permitidos
    OBS:   Normalmente a pasta padrão de instalação do java se encontra em C:\Program Files (x86)\Java\ correspondente ao [java_dir]    
    NOTA:  A entrada no arquivo deverá ficar parecida com isso:
           security.provider.1=sun.security.provider.Sun
           security.provider.2=sun.security.rsa.SunRsaSign
           security.provider.3=sun.security.ec.SunEC
           security.provider.4=com.sun.net.ssl.internal.ssl.Provider
           security.provider.5=com.sun.crypto.provider.SunJCE
           security.provider.6=sun.security.jgss.SunProvider
           security.provider.7=com.sun.security.sasl.Provider
           security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
           security.provider.9=sun.security.smartcardio.SunPCSC
           security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
  • Substituir o "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files"
     Windows:
         Para o JRE 1.8x, usar o pacote no arquivo jce_policy-8.zip nesta pasta ou fazer o download
         diretamente do site da Oracle: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
         Obs: Para versões do Java superiores a 8x, localize o dowload informando a string
              "Java Cryptography Extension (JCE) Unlimited Strength"  na pesquisa do site.
  
     Linux:
         Utilize os arquivos do pacote jce_policy-6.zip 
     NOTA:
         \\svw-uniware2\STORAGE\Linux-desenvolvimento\Java\JRE\jre-i386-wine   
         jce_policy-6.zip - JCE security para chaves menores  (Certificado A1)
  • Descompactar o zip
  • Copiar os arquivos "local_policy.jar" e "US_export_policy.jar" para a pasta "[java_dir]\jre\lib\security\"
    NOTA: é recomendável salvar os arquivos originais antes da substituição
  • Boa pratica: Adicione uma nota em arquivo texto (por ex.: jce-unlimited-leia-me.txt) na pasta "[java_dir]\jre\lib\security\", indicando que o JCE foi substituido (quem, quando e porque)

Configurações no Unilab

Em "Cadastros > Configurações > Assinatura digital", selecionar o campo "Assina laudos usando", com as opções:
- AssDig32.dll (default)
- uPdfSign.jar

Erros Comuns

Erro: java.lang.SecurityException: JCE cannot authenticate the provider BC
Causa: java.security não configurado. (ver item 2.2 da instalação)


Erro: java.io.IOException: exception unwrapping private key - java.security.InvalidKeyException: Illegal key size
Causa: java Cryptography Extension (JCE) Unlimited Strength" não instalado (ver item 2.3 da instalação)