Como assinar envelopes com o Certificado Digital


A W3C e todos os fabricantes de browsers não permitem o acesso direto ao par de chaves contido em certificados pessoais (como os certificados ICP-Brasil). Em virtude disso, a DocuSign desenvolveu o Agente de Assinatura, objeto principal deste artigo.
 
As próximas seções explicam o que são certificados pessoais, o que é o Agente de Assinatura, bem como suas funcionalidades e requisitos que os usuários devem ter previamente instalado em seus computadores para que o Agente de Assinatura funcione de forma adequada.

O que são certificados pessoais?


Certificados pessoais são certificados que podem estar tanto instalados nos computadores dos usuários (A1) quanto armazenados em smartcards (cartões inteligentes) e tokens USB. Usuários de smartcards devem instalar os drivers de seus smartcards bem como de suas respectivas leitoras. Já usuários de tokens devem instalar apenas o driver do token.


 
Imagem adicionada pelo usuário


Alguns países como Brasil, Bélgica, EUA e setores específicos como a indústria farmacêutica norte-americana, exigem que seus usuários assinem documentos com certificados pessoais.
 
Certificados pessoais carregam consigo três itens principais:
  • Certificado X.509

  • Chave pública anexada ao certificado

  • Chave privada anexada ao certificado

 
A informação contida em um certificado pessoal é emitida e assinada por um provedor conhecido e confiável, e permite que os usuários se identifiquem para acessar espaços físicos ou imprimir sua identidade em documentos através de assinaturas digitais.
 
A DocuSign é uma plataforma de gerenciamento de transações digitais que está disponível via browsers e aplicativos móveis e que permite que usuários - dentre outras ações - assinem documentos. Em virtude disso, tornou-se necessário prover a habilidade de acessar tais certificados e permitir seu uso dentro da plataforma.

O que é o Agente de Assinatura?


O Agente de Assinatura é um componente atualmente escrito em JAVA que funciona como uma ponte entre os browsers e os certificados pessoais. Este componente roda no computador do usuário e executa duas operações principais:
  • Listar os certificados pessoais encontrados no computador do usuário que não estejam expirados e cujo uso da chave seja igual a “Assinatura Digital” ou “Não-Recusa”;

  • Realizar assinaturas digitais utilizando certificados pessoais.

 
O Agente de Assinatura funciona no Windows com Chrome, Firefox e IE. Funciona também no Mac com Chrome, Firefox e Safari, mas com algumas restrições - por exemplo, algumas mensagens de erro são indevidamente exibidas caso o JAVA não esteja instalado.

Como o Agente de Assinatura funciona?


O Agente de assinatura funciona de formas diferentes e requer diferentes requisitos de acordo com o browser utilizado pelo usuário. Isto acontece porque o NPAPI - tecnologia anteriormente utilizada para acessar certificados pessoais - não é mais suportado pelo Google Chrome nem pelo Firefox. A instalação do JAVA é obrigatória para todos os browsers

Google Chrome/Firefox


Como o Google Chrome e o Firefox não suportam mais o NPAPI, a DocuSign teve que desenvolver um novo mecanismo para acessar certificados pessoais. A solução atual inclui a instalação de uma extensão de browser e de uma aplicação nativa (.exe para Windows e .pkg para Mac).
 
Os requisitos para realizar uma assinatura no Google Chrome/Firefox são:
  • Driver do token USB/smartcard

  • Driver da leitora do smartcard

  • Extensão do Chrome/Firefox

  • Aplicação nativa DocuSign PKI

  • JAVA

 
Os usuários abrirão um envelope e a DocuSign verificará se seus computadores estão preparados para realizar assinaturas digitais. Caso não estejam, os usuários verão um modal contendo as seguintes instruções:


Imagem adicionada pelo usuário


Inicialmente, eles instalarão a extensão do browser:


Imagem adicionada pelo usuário


Imagem adicionada pelo usuário


E em seguida, irão instalar a aplicação nativa:

Imagem adicionada pelo usuário


Imagem adicionada pelo usuário


Durante a instalação da aplicação nativa, a plataforma DocuSign verificará se o JAVA está instalado. Se não estiver, a plataforma interromperá a instalação da aplicação nativa, redirecionará o usuário para o site do JAVA e solicitará que o JAVA seja instalado. Após isso, o usuário deverá retornar à DocuSign e iniciar a instalação da aplicação nativa novamente.
 
Uma vez que o JAVA, a extensão do browser e a aplicação nativa estejam instalados, o usuário poderá clicar em Continuar e o Agente de Assinatura listará todos os certificados pessoais encontrados em seu computador pessoal.
 
Vale ressaltar que a instalação destes componentes ocorrerá apenas uma vez.

Internet Explorer/Safari


Como o IE e o Safari ainda suportam o NPAPI, os usuários não precisarão instalar extensões de browser ou aplicações nativas.
 
Os requisitos para assinar utilizando IE/Safari são:
  • Driver do token USB/smartcard

  • Driver da leitora do smartcard

  • JAVA

 
O usuário abrirá o envelope, clicará em Continuar e a plataforma DocuSign tentará listar os certificados pessoais. Se o JAVA não estiver instalado, o IE mostrará o seguinte popup:


Imagem adicionada pelo usuário


O usuário deve então clicar em OK e, de forma proativa, acessar o site do JAVA para realizar o download e instalar o JAVA.
 
Obs: O browser Safari não exibirá nenhuma mensagem, portanto seus usuários devem identificar se o JAVA está instalado ou não, e acessar o site do JAVA para realizar seu download e instalá-lo caso seja necessário.
 
Uma vez que o JAVA esteja instalado, o usuário deve reabrir o envelope e reiniciar a cerimônia de assinatura clicando em Continuar. Em seguida, o Agente de Assinatura listará todos os certificados pessoais encontrados em seu computador pessoal.

Como o Agente de Assinatura lista certificados?


É importante que os usuários tenham previamente instalado ou conectado seus certificados pessoais e suas leitoras a seus computadores. A plataforma DocuSign não é responsável por instalar drivers de certificados ou de leitoras. Como lembrete, a DocuSign exibirá um modal assim que os usuários abrirem um envelope:


Imagem adicionada pelo usuário


Depois da instalação de todos os requisitos necessários, o Agente de Assinatura listará todos os certificados pessoais encontrados no computador do usuário:


Imagem adicionada pelo usuário


O usuário pode visualizar os detalhes dos certificados clicando no ícone ao lado de cada certificado listado. Além disso, pode atualizar os certificados caso não tenha instalado ou conectado o seu próprio.

Como o Agente de Assinatura realiza assinaturas?


O usuário poderá selecionar um certificado da lista de certificados, clicará em Continuar e informará o PIN:


Imagem adicionada pelo usuário


Obs: O usuário pode não ter que informar o PIN caso esteja usando certificados pessoais que foram instalados em seus computadores, em vez de tokens USB ou smartcards.
 
A plataforma DocuSign exibirá mensagens de erro para avisar que o usuário pode bloquear seu certificado pessoal caso o PIN seja informado mais que a quantidade de vezes permitida para o certificado.
 
Se o PIN estiver correto, o Agente de Assinatura realizará a assinatura e em seguida realizará sua validação.

Como o Agente de Assinatura valida assinaturas?


Durante o processo de validação, a plataforma DocuSign deve garantir que:
  • O certificado digital utilizado para assinar e todos os certificados que fazem parte de sua cadeia não estão expirados. Um certificado digital não está expirado quando sua data de validade é maior ou igual à hora/data da validação.

  • O certificado digital utilizado para assinar e todos os certificados que fazem parte de sua cadeia não estão revogados. Um certificado digital não está revogado quando ele e todos os certificados contidos em sua cadeia não fazem parte da LCR (lista de certificados revogados) de suas respectivas ACs (autoridades de certificação) na data/hora da validação.

  • O certificado digital utilizado para assinar foi emitido por uma autoridade de certificação confiável.

  • A assinatura digital é íntegra, isto é, o hash do documento original e o hash do documento contido dentro da assinatura são iguais.

 
Se uma ou mais das condições acima falhar, ou se um erro inesperado acontecer, a assinatura estará inválida e a DocuSign exibirá uma mensagem de erro apropriada. Se todas as condições acima forem bem sucedidas, a assinatura digital será considerada válida e a plataforma DocuSign encerrará a cerimônia de assinatura.

Qual é o resultado de uma assinatura realizada pelo Agente de Assinatura?

 

O formato PAdES (PDF Advanced Electronic Signature) é um formato específico para assinaturas realizadas sobre o padrão PDF ISO 32000-1, que foi criado com o objetivo de prover assinaturas digitais que permitam sua validação por longo prazo. O Agente de Assinatura gera assinaturas PAdES. O resultado é um arquivo PDF que contém nativamente todas as assinaturas bem como suas representações gráficas em posições pré-determinadas no documento, o que torna a experiência do usuário mais amigável. Ao abrir um PDF assinado pelo Agente de Assinatura, o usuário visualizará a assinatura conforme a figura abaixo:


Imagem adicionada pelo usuário
Documento assinado na nova experiência da DocuSign exibindo os detalhes da assinatura na aba de assinaturas do leitor.

Obs: Para mais informações sobre assinaturas PAdES, clique aqui.