VALIDAR

Orientações ao desenvolvedor

Documentos PDF - controle de atualizações incrementais

O padrão PDF (Portable Document File), criado pela empresa Adobe, e padronizado pela ISO (Organização Internacional para Padronização), é muito versátil, por isso há necessidade de proteger as informações já assinadas.

Para isso, o padrão admite o recurso MDP (Modification Detection and Prevention), representado pelo acrônimo DocMDP. Esse recurso, quando corretamente implementado, define se o documento poderá ou não ter alterações incrementais ou subsequentes à assinatura digital.

Caso o software utilizado para assinar documentos em formato PDF, não implemente o recurso, o serviço Validar poderá dar o resultado “Assinatura Indeterminada”.

Como orientação aos provedores de software ou serviço de assinaturas digitais, recomenda-se que implementem o recurso de controle de “atualizações incrementais” previsto na ISO 32000 - 1. Toda a orientação necessária está contida no referido padrão, especificamente o item 12.8.2.2 do Padrão PDF(ISO 3200 - 2008 pág 466).

A seguir, exemplo de uso do recurso Doc-MDP, a ser configurado no arquivo PDF gerado a partir da assinatura digital.

"Signature Reference”. Exemplo:
166 0 obj
<<
/Type /Sig
/Filter /Adobe.PPKLite
/SubFilter /adbe.pkcs7.detached
/M (D:20220705145549-03'00')
/Reference [168 0 R]
/Contents <24730....>
/ByteRange [0 36705 55651 8985]
>>
Endobj

O dicionário “Signature Reference”. conter as entradas conter as entradas “Transform Method” com o valor DocMDP; e, “TransformParams” com uma referência indireta para um dicionário de TransformParams. Exemplo:

<< /Type /SigRef
/TransformMethod /DocMDP
/TransformParams 170 0 R
>>

O dicionário “TransformParams” com uma entrada P com valor 2 e entrada V com valor 1.2.

170 0 obj
<<
/Type /TransformParams
/P 2
/V /1.2
>>

Importante: Não é recomendado o uso do dicionário /Perms com entrada /DocMDP por questões de compatibilidade com o Adobe. Ao configurar a primeira assinatura desta forma apenas serão permitidas as seguintes alterações: Preenchimento de formulários, templates e inclusão de novas assinaturas.

Outros valores de P possíveis de serem usados:

  • P = 1 -> Nenhuma alteração é admitida;
  • P = 2 -> Alterações permitidas em formulários, templates e inclusão de novas assinaturas; e
  • P = 3 -> Além das permissões admitidas para P = 2, admite-se também anotações, deleções e modificações.
Conteúdo acessível em Libras usando o VLibras Widget com opções dos Avatares Ícaro, Hosana ou Guga. Conteúdo acessível em Libras usando o VLibras Widget com opções dos Avatares Ícaro, Hosana ou Guga.