Mudanças entre as edições de "Assinatura Digital"
(→Qual modelo utilizar?) |
(→Qual modelo utilizar?) |
||
Linha 65: | Linha 65: | ||
:Primeiramente, é preciso identificar o ambiente que será utilizado a assinatura digital de laudos, para identificar qual é o modelo recomendado, pois cada modelo possui limitações. | :Primeiramente, é preciso identificar o ambiente que será utilizado a assinatura digital de laudos, para identificar qual é o modelo recomendado, pois cada modelo possui limitações. | ||
− | :*'''AssDig32.dll''' não funciona para Windows XP e Linux, porém caso as máquinas que forem liberar laudos forem todas com Windows 7 ou superior, terá a vantagem de que basta os arquivos AssDig32.dll | + | :*'''AssDig32.dll''' não funciona para Windows XP e Linux, porém caso as máquinas que forem liberar laudos forem todas com Windows 7 ou superior, terá a vantagem de que basta os arquivos AssDig32.dll, AsDig32.tlb e iTextSharp.dll estarem no mesmo nível de pasta do executável do Unilab, e todas as máquinas conseguirão assinar laudos sem a necessidade de uma configuração individual por máquina. |
:*'''uPdfSign.jar''' tem a vantagem de que funciona também para Windows XP e Linux, porém a desvantagem é que para este modelo, é necessário realizar a configuração do java em toda máquina que for liberar laudos. | :*'''uPdfSign.jar''' tem a vantagem de que funciona também para Windows XP e Linux, porém a desvantagem é que para este modelo, é necessário realizar a configuração do java em toda máquina que for liberar laudos. |
Edição das 10h12min de 26 de abril de 2017
Índice
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
-
- No Unilab foi decidido que será utilizado o modelo A1 para a assinatura dos laudos.
- 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, 8.1 ou 10 e linux e algumas certificadoras..
Como configurar assinatura digital no Unilab
Cadastro de usuários
- Para vincular uma assinatura a um usuário, primeiramente é preciso que o CPF preenchido seja exatamente o mesmo da assinatura que será configurada.
- Após preenchido o CPF do usuário, clicar no botão "Incluir Arquivo de Assinatura"
- Em seguida, basta navegar até o local da assinatura, selecioná-la e clicar em "Abrir".
- Obs.: Os arquivos de assinatura digital possuem extensão ".PFX".
- Após a assinatura selecionada, preencher a senha.
- Após a confirmação da senha, será exibido o nome "Responsável da assinatura digital" e a "Data de validade da assinatura digital"
Configuração do rodapé do laudo
- Na configuração do rodapé do laudo, existe uma seção "Código do Laudo Assinado", onde é gerado um novo código a cada nova geração de PDF com assinatura digital, e também existe o "Texto Assinado Digitalmente", onde é configurado um texto padrão para aparecer em todo laudo que estiver assinado.
- Estas configurações são opcionais e podem ser feitas em "Cadastros > Configurações de relatórios > Laudo - rodapé", basta alterar o rodapé desejado, e incluir as seções que preferir.
Configurar assinatura do Responsável pelo Laudo
- A partir da versão 3.03.022 do Unilab, existe o recurso para configurar um usuário (com assinatura digital) para ser o "Responsável pelo Laudo".
- Este recurso serve para que saia apenas uma assinatura no PDF, que é apenas a que estiver configurada como Responsável pelo laudo, independente de o usuário que liberar o exame ter ou não assinatura.
- Para configurar, basta ir em "Cadastros > Configurações > Assinatura digital", e no campo "Responsável pelo laudo", basta selecionar o usuário, após isso, a assinatura digital vinculada ao usuário selecionado, será utilizada em todos os próximos laudos.
Qual assinatura será utilizada para assinar os laudos?
- Após a assinatura vinculada ao usuário do Unilab, 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, é 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.
Assinar laudos utilizando AssDig32.dll e uPdfSign.jar
Qual modelo utilizar?
- Primeiramente, é preciso identificar o ambiente que será utilizado a assinatura digital de laudos, para identificar qual é o modelo recomendado, pois cada modelo possui limitações.
- AssDig32.dll não funciona para Windows XP e Linux, porém caso as máquinas que forem liberar laudos forem todas com Windows 7 ou superior, terá a vantagem de que basta os arquivos AssDig32.dll, AsDig32.tlb e iTextSharp.dll estarem no mesmo nível de pasta do executável do Unilab, e todas as máquinas conseguirão assinar laudos sem a necessidade de uma configuração individual por máquina.
- uPdfSign.jar tem a vantagem de que funciona também para Windows XP e Linux, porém a desvantagem é que para este modelo, é necessário realizar a configuração do java em toda máquina que for liberar laudos.
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.
- Só baixar no site https://www.microsoft.com/pt-br/download/confirmation.aspx?id=49981
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)
Configurar "Liberador" no exame
Nas configurações de exames, existe uma seção com nome "Liberado por - Nome", onde indica o nome de quem liberou o exame, e outra seção com "Código da liberação".
Código da liberação é um código de segurança do laudo, onde toda vez que o status do exame passar para Liberado, será gravado um novo código de liberação.
Na versão 3.03.022 foi criado um facilitador para acrescentar estas duas seções em todos os exames.
Para isso, é preciso acessar o Unilab utilizando o usuário UNIWARE, através do menu "Outros > Manutanção", na aba "Manut. 2", existe um botão com nome "Adiciona código de liberação em todos os exames".
- Obs.: Antes de utilizar este recurso, recomendamos que realize um backup dos exames e também da base para caso queira voltar como estava antes, pois esta ação estará disponível para ser realizada APENAS UMA VEZ, e não será possível desfazê-la automaticamente.
Após realizado a rotina para adicionar código de liberação em todos os exames, será adicionado na última linha de cada configuração de exame (divida em duas colunas) a primeira coluna: "Liberado por - Nome" e a segunda "Código da liberação".