SIGN - Manual do Usuário > Certificado Digital > PAdES (PDF Advanced Electronic Signatures)

PAdES (PDF Advanced Electronic Signatures)

O PAdES (PDF Advanced Electronic Signatures) é um conjunto de perfis definidos pelo ETSI (European Telecommunications Standards Institute) com o objetivo de assegurar a validade e integridade de assinaturas eletrônicas em documentos PDF.

Esse padrão é especificado na norma ETSI TS 102 778-1, a qual expande o padrão PDF da ISO 32000-1 para incluir informações adicionais que permitem a verificação contínua da assinatura, mesmo após o vencimento ou revogação do certificado digital original.

A norma ISO 32000-1 define o Portable Document Format (PDF), um formato digital para representação de documentos que facilita a troca e visualização de arquivos eletrônicos de maneira confiável, independentemente do ambiente de criação, visualização ou impressão.

Os perfis PAdES integram várias camadas de segurança, como carimbos de tempo, dados de revogação de certificados e validação de longo prazo. Esses elementos asseguram que as assinaturas possam ser verificadas mesmo anos após sua criação. O PAdES é amplamente adotado em setores que exigem alta segurança e conformidade regulatória, como os setores financeiro, jurídico e governamental, fornecendo uma solução confiável para assinaturas digitais em documentos PDF.

Termos importantes

Definições que podem auxiliar no entendimento dos termos abordados:

Principais Características

Assinaturas de PDF (PDF Signatures)

Assinaturas digitais na ISO 32000-1 atualmente suportam três atividades:

  1. Adicionar uma assinatura digital imediatamente a um documento.
  2. Fornecer um campo de espaço reservado onde as assinaturas irão no futuro.
  3. Verificar a validade das assinaturas.

A assinatura, juntamente com diversas informações opcionais, está contida em uma estrutura de dados do PDF conhecida como dicionário de assinaturas (ISO 32000-1, cláusula 12.8.1).

O valor da assinatura é codificado como um objeto binário utilizando CMS (Cryptographic Message Syntax) ou formatos de assinatura relacionados, como PKCS #7 e CAdES. A formatação e o conteúdo específicos do valor da assinatura dependem do perfil adotado. Assim como em outras implementações de assinatura baseadas em CMS, um resumo é calculado em um intervalo específico de bytes do arquivo.

No contexto do PDF, as informações de assinatura devem estar incorporadas diretamente ao documento. Esse intervalo abrange o arquivo completo, incluindo o dicionário de assinaturas, mas exclui a própria assinatura do PDF.

Esse intervalo é especificado pela entrada ByteRange no dicionário de assinaturas. Ao definir o ByteRange dessa maneira, assegura-se que todos os bytes do PDF estejam cobertos pelo digest, com exceção da própria assinatura do PDF, conforme ilustração a seguir:

O valor binário da assinatura do PDF é inserido na entrada Contents do dicionário de assinaturas.

O tamanho da entrada Contents é definido com base em uma estimativa do espaço máximo necessário para abrigar a assinatura do PDF, incluindo eventuais informações de revogação e registro de data e hora. Inicialmente, o conteúdo da string é gravado em disco como uma sequência de valores hexadecimais 0x00, sendo posteriormente preenchido com o conteúdo efetivo da assinatura.

Tipos de Assinaturas PDF (PDF Signature Types)

Além da assinatura tradicional de documentos, as assinaturas em PDF introduzem o conceito de assinaturas de certificação, que operam com permissões de detecção de modificações (Modification Detection and Prevention - MDP, conforme ISO 32000-1, cláusula 12.8.4).

A funcionalidade MDP em PDFs, especificada por meio de um dicionário de referência de assinatura, permite que o documento seja modificado de maneiras controladas, como o preenchimento posterior de formulários ou a adição de comentários, mantendo a validade da assinatura original.

Por fim, o PDF utiliza assinaturas de uma terceira forma, denominada Direitos de Uso (ISO 32000-1, cláusula 12.8.2.3), que permite aprimorar o documento com direitos e privilégios adicionais em um fluxo de trabalho específico. A assinatura, nesse caso, assegura que o documento e os direitos associados não foram adulterados de nenhuma maneira.

Manipuladores de Assinatura PDF (PDF Signature Handlers)

A norma ISO 32000-1 define múltiplas implementações para a inclusão de assinaturas digitais baseadas em CMS em um documento PDF. Cada uma dessas implementações é especificada por um par de valores no dicionário de assinaturas, denominados Filter e SubFilter.

O Filter determina o nome do manipulador de assinatura preferencial a ser utilizado na validação da assinatura, enquanto o SubFilter é um identificador que descreve a codificação da assinatura PDF e as informações essenciais contidas no dicionário de assinaturas.

Os perfis definidos utilizam duas codificações, ambas baseadas em CMS:

Assinaturas em série (PDF serial signatures)

A norma ISO 32000-1 não oferece suporte para formas de assinaturas paralelas, nas quais vários indivíduos assinam o mesmo intervalo de bytes (e, consequentemente, o mesmo hash), agrupando essa coleção de certificados de assinatura em um único envelope PKCS#7. Assim, cada assinatura de PDF deve conter apenas um único signatário, ou seja, uma única estrutura SignerInfo.

Em contrapartida, a norma propõe uma solução alternativa para múltiplos signatários em um documento, o que oferece vantagens para determinados tipos de fluxos de trabalho. Embora cada assinatura em um PDF possa incluir apenas um único certificado de assinatura, é possível adicionar múltiplos dicionários de assinatura, cada qual com seu próprio intervalo de bytes (ByteRange) associado.

O fluxo de trabalho padrão para assinaturas seriais em PDFs prevê que, após o primeiro indivíduo assinar o documento, ele seja encaminhado aos signatários subsequentes, que não apenas assinam o documento, mas também incluem as assinaturas PDF anteriores.

Adicionalmente, em se tratando de um formulário PDF, os signatários subsequentes podem preencher campos adicionais (como data e hora) e, em seguida, assinar tanto os dados inseridos quanto o restante do documento.

A norma ISO 32000-1 determina que, ao verificar assinaturas seriais, cada assinatura seja verificada individualmente, mas que o resultado combinado dessas validações seja considerado o estado final do documento. Isso implica que podem ocorrer situações em que algumas assinaturas falham na validação (seja por modificações no documento ou questões de confiabilidade), enquanto outras são validadas com sucesso, exigindo uma avaliação consolidada do status do documento com base na coleção de assinaturas.

Validação e Time-stamping de Assinaturas (PDF signature Validation and Time-stamping)

O uso de timestamp com certificados CA e informações de status de revogação na validação de assinaturas PDF varia entre os perfis empregados.

Perfis PAdES

Os perfis PAdES podem ser separados, a grosso modo, em perfis para assinatura de PDF e para assinatura de XML.

Perfil baseado na ISO 32000-1 - PAdES Básico

Este perfil define uma assinatura PDF conforme especificado na norma ISO 32000-1 e está detalhado na TS 102 778-2. As principais características deste perfil são:

Perfil PAdES-BES - PAdES Melhorado

Este perfil define uma assinatura avançada em PDF baseada em CAdES-BES, com a opção de inclusão de um carimbo de data e hora de assinatura (CAdES-T). As funcionalidades oferecidas por este perfil são bastante semelhantes às do perfil PAdES, mas com algumas distinções importantes:

Em resumo, este perfil adapta os princípios do PAdES para aproveitar os benefícios e especificidades de CAdES, garantindo uma assinatura avançada que mantém a integridade e a autenticidade do documento PDF enquanto minimiza redundâncias.

Este perfil especifica uma assinatura avançada em PDF com as seguintes características:

Este perfil, portanto, oferece uma solução robusta para assinaturas avançadas em PDFs, combinando segurança com flexibilidade para atender a uma ampla variedade de fluxos de trabalho e requisitos legais.

Perfil PAdES-EPES - PAdES Melhorado

Este perfil define uma assinatura avançada de PDF baseada no padrão CAdES-EPES. Ele é semelhante ao perfil PAdES-BES, mas com a adição de um identificador de política de assinatura e, opcionalmente, uma indicação de tipo de compromisso.

As funcionalidades oferecidas por esse perfil se assemelham muito ao perfil PAdES-CMS. No entanto, utiliza-se o CAdES em substituição ao CMS, com orientações específicas para evitar a inclusão redundante de informações.

Perfil PAdES-LTV - PAdES Longo Termo

Este perfil oferece suporte à validação de longo prazo (LTV) de assinaturas em PDF, podendo ser usado em conjunto com os perfis PAdES-CMS, PAdES-BES ou PAdES-EPES.

Ele é adequado para situações em que uma assinatura precisa ser confiável por um período superior ao da validade do certificado de assinatura. O perfil pode ser aplicado tanto pela parte que recebe e valida o documento quanto pela parte que realiza a assinatura, garantindo a verificação do documento ao incorporar a LTV.

Além disso, este perfil adiciona funcionalidades específicas aos recursos dos perfis PAdES-CMS, PAdES-BES e PAdES-EPES descritos anteriormente.

Os perfis voltados para conteúdo XML estão listados abaixo. Para mais detalhes, consulte a ETSI TS 102 778-1.

Implementação Atual do SIGN

Atualmente, o SIGN já adota o PAdES para assinaturas com certificado digital, utilizando o perfil PAdES Básico, baseado na norma ISO 32000-1.

Referências

As referências utilizadas para a elaboração deste artigo foram as seguintes:

Este artigo ajudou você?