Como assinar digitalmente um ficheiro não PDF

Validação de um ficheiro PDF assinado no Acrobat Reader

Uma das maravilhas da digitalização da sociedade são as assinaturas digitais. Estas são virtualmente impossíveis de falsificar e triviais de validar a autenticidade. Infelizmente, o seu uso só agora começa e ser comum, mas apenas quando se trata de assinar ficheiros PDF. A razão pela qual o uso de assinaturas digitais se tornou mais comum em PDF é simples: a maior parte dos documentos que se pretendem assinar são de texto, e a Adobe correctamente identificou essa necessidade do mercado.

Actualmente, a maior parte das faturas enviadas em formato digital já é assinada digitalmente, mesmo que esse facto não seja imediatamente óbvio para os utilizadores. No entanto, a maioria dos utilizadores que interage com um banco ou com alguma entidade do estado já está familiarizada com o selo da assinatura digital do cartão do cidadão.

Isto acontece porque a maior parte dos casos de uso de assinatura digital corresponde a documentos escritos, como formulários e contratos.

E se o documento que se pretende assinar não é um PDF?

Imagine o caso de um projecto técnico anexo a um contrato. Como assinar esse ficheiro de forma garantir que este se mantêm inalterado e pode ser reconhecido por todas as partes? A solução é uma função pouco conhecida da aplicação do cartão do cidadão, apenas descrita como “Outros Ficheiros”.

Na verdade trata-se de uma implementação de XAdES (ou XML Advanced Electronic Signatures), num pacote ASIC (que na verdade é outro ficheiro ZIP).

Advertisements

Como funciona?

Opção “Outros Ficheiros” dentro da aplicação do Cartão do Cidadão

Em primeiro lugar, se se pretender assinar mais que um ficheiro, é conveniente agrupar todos os ficheiros um ZIP, ou similar, de forma permitir assinar tudo de um única vez. Depois, na aplicação do cartão do cidadão (e não na versão web) basta seleccionar “Outros ficheiros”, e carregar em “Assinar com Chave Móvel” ou “Assinar com Cartão do Cidadão”. A única diferença neste passo, é que o ficheiro nunca é mostrado assinado.

Este processo pode ser repetido tantas as vezes como as necessárias, até que todas as assinaturas sejam adicionadas (quando é necessário a assinatura de vários intervenientes).

O resultado deste ficheiro assinado é um outro ficheiro com a terminação “_xadessign.asics”

O problema é que a aplicação do cartão do cidadão ainda não permite validar estas assinaturas.

Como validar a assinatura deste ficheiro ?

Advertisements

A forma mais fácil é ir um site de validações como o https://verifysignature.eu, que produz um relatório sobre a autenticidade do ficheiro.

Se tudo tiver corrido bem, o resultado é similar a este:

Exemplo de um ficheiro cuja assinatura foi correctamente validada

Depois de comprovada a validade da assinatura, basta mudar o nome do ficheiro para terminar em .ZIP, e descomprimir os ficheiros. O ficheiro ZIP estará nessa pasta.