Prova de assinatura verificável sem confiar no fornecedor
Como verificar uma assinatura eletrónica sem depender do fornecedor? Explicações sobre o dossiê de prova assinado Ed25519, o selo PAdES e o carimbo temporal RFC 3161.
Uma prova de assinatura verificável sem confiar no fornecedor
Quando uma empresa adota um serviço de assinatura eletrónica, apoia-se no fornecedor para conservar as provas. Em caso de litígio, tem frequentemente de pedir ao fornecedor que forneça uma exportação ou uma atestação. Esta dependência nem sempre é satisfatória: o que acontece se o fornecedor cessar a atividade ou se os seus servidores forem comprometidos?
Existe uma alternativa: um dossiê de prova assinado criptograficamente, cuja chave pública é publicada, permite a qualquer pessoa verificar a autenticidade dos documentos, sem ter de confiar no fornecedor. É o que propõe a Sign-Hub.
O que é uma prova de assinatura verificável?
Uma assinatura eletrónica tem por objetivo garantir a integridade do documento e o consentimento do signatário. Mas para que esta assinatura faça fé, é preciso poder verificá-la posteriormente. As soluções clássicas fornecem um ficheiro PDF assinado e um registo de auditoria interno. Ora, este registo é armazenado no fornecedor: não é diretamente verificável por um terceiro.
Uma prova verificável é um conjunto de dados (impressões digitais, carimbos temporais, identificadores) que pode ser controlado independentemente, com a ajuda de uma chave pública. Assim, um juiz, um perito ou um cliente pode assegurar-se de que o documento não foi modificado e que a assinatura ocorreu efetivamente numa data determinada.
O dossiê de prova assinado Ed25519: uma inovação da Sign-Hub
A Sign-Hub distingue-se ao publicar uma chave pública Ed25519 num URL dedicado: https://sign-hub.newvisionofapps.fr/.well-known/sign-hub-keys.json. Esta chave serve para assinar cada dossiê de prova, chamado proof.json. Este ficheiro contém os metadados da assinatura: data, hora, endereço IP (anonimizado), identificador do documento, etc.
Graças a esta chave pública, qualquer pessoa pode verificar um proof.json offline, com ferramentas padrão, ou online em https://sign-hub.newvisionofapps.fr/verify. Esta abordagem é rara: a maioria dos intervenientes, como a Yousign ou a DocuSign, não fornecem uma chave pública verificável para os seus registos. Contentam-se com uma exportação PDF e um registo interno, não verificável por um terceiro.
Como funciona a verificação?
- A aplicação cliente recebe um webhook assinado HMAC após cada assinatura.
- Descarrega o PDF assinado e o dossiê de prova
proof.json. - Pode então verificar a assinatura do dossiê com a chave pública publicada.
- Pode também verificar o PDF, que é selado no formato PAdES.
Esta verificação não requer qualquer ligação ao servidor da Sign-Hub: pode ser feita a qualquer momento, mesmo que o serviço já não exista. É uma garantia de perenidade para as suas provas.
O selo PAdES: uma proteção reforçada do PDF
O PDF assinado pela Sign-Hub é selado no formato PAdES (PDF Advanced Electronic Signatures). Trata-se de uma norma europeia que define como integrar uma assinatura eletrónica num PDF de forma segura. O selo PAdES garante que qualquer modificação posterior do documento invalidará a assinatura.
Concretamente, o PDF contém uma assinatura digital baseada num certificado. Esta assinatura cobre o conjunto do documento, incluindo os metadados. Assim, se alguém tentar modificar o conteúdo, a assinatura torna-se inválida.
O carimbo temporal RFC 3161: uma data fiável
Para provar que uma assinatura foi aposta num momento preciso, a Sign-Hub propõe opcionalmente um carimbo temporal RFC 3161. Esta norma permite obter um token de carimbo temporal junto de uma autoridade terceira de confiança. Este token está ligado à impressão digital do documento num instante T, e é ele próprio assinado por esta autoridade.
Assim, mesmo que o seu computador ou o servidor da Sign-Hub tivesse uma data errada, o carimbo temporal faz fé. É um elemento importante em caso de litígio sobre a data de assinatura.
Comparação com os outros intervenientes
- Yousign: propõe uma assinatura eletrónica avançada, com um certificado qualificado para algumas ofertas. No entanto, a prova fornecida é principalmente um PDF e um registo de auditoria acessível na sua plataforma. Sem chave pública publicada para uma verificação independente.
- DocuSign: líder mundial, oferece registos de auditoria completos, mas a verificação assenta na confiança na DocuSign. Sem mecanismo de prova aberta como Ed25519.
- Universign: especialista da assinatura qualificada, apoia-se em certificados reconhecidos. A sua prova é robusta, mas depende da autoridade de certificação.
A Sign-Hub posiciona-se de forma diferente: não pretende fornecer uma assinatura avançada ou qualificada, mas oferece uma prova técnica verificável por todos. Esta transparência é uma mais-valia para as empresas que querem controlar as suas provas.
Limites a conhecer
A Sign-Hub fornece uma assinatura eletrónica simples na aceção do regulamento eIDAS, reforçada pela verificação do email e pelo selo PAdES. Não é nem avançada, nem qualificada. Para certos usos (atos notariais, contratos públicos), pode ser exigida uma assinatura qualificada. Nesse caso, é necessário recorrer a intervenientes como a Universign.
Além disso, o serviço é proposto apenas em França metropolitana e nos DROM. Os dados são alojados na União Europeia, o que está em conformidade com o RGPD.
Porque é que isto muda as regras para os programadores?
Para um programador, integrar uma assinatura eletrónica implica frequentemente confiar numa caixa negra. Com a Sign-Hub, a API está documentada (OpenAPI 3.1), é fornecido um SDK TypeScript, e um ficheiro llms.txt foi concebido para ser lido por um assistente de código. Mas, sobretudo, a verificação das provas pode ser automatizada: um script pode verificar o proof.json e o PDF assinado sem intervenção humana.
Conclusão: uma prova que lhe pertence
A assinatura eletrónica não se resume a um clique. Deve deixar um vestígio fiável e verificável. A Sign-Hub permite-lhe conservar uma prova independente do fornecedor, graças à assinatura Ed25519 e ao formato PAdES. Não tem de acreditar na Sign-Hub sob palavra: pode verificar por si mesmo, a qualquer momento.
Experimente a verificação você mesmo
Dirija-se à página de demonstração de verificação: https://sign-hub.newvisionofapps.fr/verify. Poderá descarregar um exemplo de proof.json e verificá-lo com a chave pública publicada. Ou, se for programador, utilize o SDK TypeScript para integrar esta verificação na sua própria aplicação. A oferta Découverte é gratuita para 10 atos por mês, sem compromisso. Teste e julgue por si mesmo.