Política de Assinatura AD-RB

Dando continuidade ao assunto de políticas de assinatura, neste post examinaremos a política de assinatura mais simples da ICP-Brasil – e por isso mesmo, a mais amplamente adotada pelas instituições e entidades usuárias de assinatura digital.

A política AD-RB em CAdES é oficialmente conhecida como ‘Política ICP-Brasil para Assinatura Digital com Referência Básica no formato CMS’. No momento da redação deste post, a última versão disponível para esta política era a versão 2.1.

Ela é definida no documento normativo DOC-ICP-15.03, seção 2 e anexos 1 e 2.

Segundo do DOC-ICP-15.03, o objetivo da AD-RB é ser usada em “aplicações ou processos de negócio, assinatura digital, segurança, a autenticação de entidades, verificação de integridade e validação durante o prazo de validade dos certificados signatários”.

No campo aplicação da política de assinatura está declarado: “Este tipo de assinatura deve ser utilizado em aplicações ou em processos de negócio nos quais a assinatura digital agrega segurança à autenticação de entidades e verificação de integridade, permitindo sua validação durante o prazo de validade dos certificados dos signatários. Uma vez que não são usados carimbos de tempo, a validação posterior só será possível se existirem referências temporais que identifiquem o momento em que ocorreu a assinatura digital. Nestas situações, deve existir legislação específica ou um acordo prévio entre as partes definindo as referências a serem utilizadas. Segundo esta PA, é permitido o emprego de múltiplas assinaturas”.

Referências temporais

Como na política AD-RB não são utilizados carimbos de tempo, é necessário incluir referências temporais no momento da geração da assinatura para futura validação. A política não especifica explicitamente qual referência utilizar, o que abre a possibilidade de incluir os campos que forem mais adequados aos processos de negócio específicos. No entanto, a política determina que para a inclusão destes referenciais, deve existir legislação específica ou acordo prévio entre as entidades que são interessadas nesta assinatura, para efeitos de estabelecimento de um protocolo comum para validação no futuro.

Versões

As versões de políticas têm o objetivo de permitir a evolução das regras que se aplicam às políticas com o passar do tempo, não afetando os documentos que foram criados sob a vigência de regras anteriores. Assim, cada política tem sua data de emissão e o período no qual as assinaturas geradas podem se utilizar de suas regras.


(vrs -        OID          - emissão    - expiração)

v1.0 - 2.6.76.1.7.1.1.1    - 31/10/2008 - 31/12/2014
v1.1 - 2.16.76.1.7.1.1.1.1 - 26/12/2011 - 29/02/2012
v2.0 - 2.16.76.1.7.1.1.2   - 26/12/2011 - 21/06/2023 (revogada)
v2.1 - 2.16.76.1.7.1.1.2.1 - 06/03/2012 - 21/06/2012

É interessante notar que para novas assinaturas, no momento da redação deste post, só é possível utilizar a versão da política de assinatura 2.1, pois as versões 1.0 e 1.1 já encontravam-se vencidas e a versão 2.0 foi revogada pela IN 03, 22 de março de 2012. No entanto, uma assinatura gerada na data hipotética de 08/11/2011 utilizando a versão 1.1 é perfeitamente válida, pois esta versão estava em plena validade quando da geração da assinatura digital.

As diferenças entre as quatro versões da política de assinatura AD-RB referem-se, majoritariamente, quanto aos algoritmos e tamanhos mínimos de chaves admitidos por cada versão.

As versões 1.0 e 1.1 exigem chaves de no mínimo 1024 bits, enquanto que as versões 2.0 e 2.1 exigem ao menos 2048 bits. Outra diferença é quanto aos algoritmos de hash e de assinatura digital. As versões 2.0 e 2.1 exigem o algoritmo sha256withRSAEncryption (1.2.840.113549.1.1.11), enquanto a versão 1.1 admite tanto o algoritmo sha256withRSAEncryption quanto sha1withRSAEncryption (1.2.840.113549.1.1.5), e a versão 1.0 admite exclusivamente o algoritmo sha1withRSAEncryption. Outra importante diferença diz respeito ao atributo assinado signingCertificate. Para as versões 1.0, 1.1 e 2.0 deve se usar o atributo id-aa-signingCertificate (1.2.840.113549.1.9.16.2.12); a partir da versão 2.1, inclusive, deve ser utilizado o atributo id-aa-signingCertificateV2 (1.2.840.113549.1.9.16.2.47).

Artefatos de Assinatura Digital da Política AD-RB.

O site do ITI mantém um repositório com os artefatos de assinatura digital que são relevantes para a política de assinatura AD-RB. Para cada versão da política, existe um artefato DER (política baseada em CAdES), um XML (política baseada em XAdES) e seus respectivos hashes para verificação de integridade.

v 1.0 - b921016bd03a721c61010beaec5341a00406a5cbc2f3800589b9cb1d727df06a PA_AD_RB.der
v 1.1 - af69b65b3090ec21baaf21ffb42c6ace9c9dbeb1443cffe8dc322c0bf5cdf0b9 PA_AD_RB_v1_1.der
v 2.0 - ac51fe96ecf0a7a5ac7e21a18be305c0180c6e8bb15ac5a66fb88137693a8983 PA_AD_RB_v2_0.der
v 2.1 - 3259f8a99b35393afadfa681fc381cd1eb6925c68718a8e92f7a658f253d3ba5 PA_AD_RB_V2_1.der

Um fato que causa confusão e que é importante de ser observado é que o DOC-ICP-15.03, no Anexo 1, nota 2, determina que “O hash da política de assinatura no atributo id-aa-ets-sigPolicyId da assinatura deve ser o hash interno que está na própria PA e não o hash da PA que se encontra publicada na LPA”. Com isso, a ICP-Brasil quer dizer que ao gerar um envelope, o campo de message digest que deve ser incluído no atributo id-aa-ets-sigPolicyId deve ser lido de dentro da estrutura da PA, e não calculado sobre o conteúdo total do arquivo. Para efeito de comparação, abaixo colocamos os hashes que devem ser usados na codificação de envelopes AD-RB, que são diferentes dos hashes de verificação mostrados anteriormente.

v 1.0 - 20D6789325513BBC8C29624E1F40B61813EC5CE7 (sha1)
v 1.1 - 397E6EA850C78AC44E7F3872DB369EDFECB50E63 (sha1)
v 2.0 - 5311E6CE55665C87F6085EF11C82FA3FB1341CADE7981ED9F51D3E56DE5F6AAD (sha256)
v 2.1 - DD57C98A4313BC1398CE6543D3802458957CF716AE3294EC4D8C26251291E6C1 (sha256)

Além disso, a política admite as formas de assinatura attached (documento anexado, ou interno) e dettached (documento associado, ou externo). Na forma attached, o conteúdo do documento que foi assinado está anexado ao envelope digital, enquanto que na forma dettached o documento é associado de forma lógica, por meio da assinatura do seu hash nos atributos assinados.

Referências

DOC-ICP-15 – Visão Geral sobre Assinaturas Digitais na ICP-Brasil
DOC-ICP-15.01 – Requisitos Mínimos para a Geração e Verificação de Assinaturas Digitais na ICP-Brasil – v2.
DOC-ICP-15.03 – Requisitos das Políticas de Assinatura na ICP-Brasil – v6.1.
Artefatos de assinatura digital – http://www.iti.gov.br/index.php/component/content/article/144-icp-brasil/repositorio/3974-artefatos-de-assinatura-digital
RFC3447 – Public-Key Cryptography Standards #1 – RSA Cryptography Specifications version 2.1 http://www.ieft.org/rfc/rfc3447.txt
RFC3370 e RFC3852 – Cryptographic Message Syntax (CMS) http://www.ieft.org/rfc/rfc3370.txt
http://www.ieft.org/rfc/rfc3852.txt
RFC5126 – CMS Advanced Eletronic Signatures (CAdES) http://www.ieft.org/rfc/rfc5126.txt

OIDs

sha1 - 1.3.14.3.2.26
sha256 - 2.16.840.1.101.3.4.2.1
sha512 - 2.16.840.1.101.3.4.2.3
sha1withRSAEncryption - 1.2.840.113549.1.1.5
sha256withRSAEncryption - 1.2.840.113549.1.1.11

id-aa-signingCertificate – 1.2.840.113549.1.9.16.2.12
id-aa-signingCertificateV2 – 1.2.840.113549.1.9.16.2.47

Raiz Políticas 2.16.76.1.7.1.1
AB-RB v1.0 – 2.16.76.1.7.1.1.1
AD-RB v1.1 – 2.16.76.1.7.1.1.1.1
AD-RB v2.0 – 2.16.76.1.7.1.1.2
AD-RB v2.1 – 2.16.76.1.7.1.1.2.1

Anúncios

Políticas de Assinatura da ICP-Brasil

Vamos começar a falar sobre a aplicação de assinaturas digitais nos processos de negócio empresariais e governamentais, sob a ótica da ICP-Brasil.

Quando tratamos de assinaturas digitais, o grande desafio a ser vencido para viabilizar a sua ampla adoção, diz respeito à questão da geração e validação de assinaturas digitais por diferentes entidades.

Como podemos garantir que uma assinatura digital gerada por uma entidade possa, a médio e longo prazo, ser recuperada, verificada e associada a um determinado documento, e principalmente determinar sua autoria e integridade?

Para isso, é necessário que todas as entidades envolvidas ou interessadas nos processos de geração e verificação utilizem um protocolo em comum. A adoção deste protocolo garante a interoperabilidade dos sistemas de assinatura digital, bem como a sua não utilização implica em um grande risco de as assinaturas não serem reconhecidas ou não reunirem elementos suficientes para que os diversos interessados possam valida-las.

Mas o que é um protocolo? Do que se trata afinal?

Um protocolo nada mais é que uma combinação de procedimentos, padrões e etapas que duas ou mais entidades ajustam cumprir entre si. Esta combinação define um conjunto de normas e condutas técnicas que auxiliam as entidades a uniformizar seus respectivos sistemas e criar a interoperabilidade que garante, no médio e no longo prazo, a eficácia probante e a capacidade que as assinaturas digitais e documentos têm de comprovar a autoria e a integridade de seus conteúdos.

No Brasil, de acordo com a Medida Provisória 2200-2 de 2001, para que uma assinatura digital goze de valor jurídico equivalente ao da assinatura manuscrita, ela deve ser gerada e ser capaz de ser verificada em conformidade com o protocolo de assinatura definido pela ICP-Brasil, conhecido como PBAD – Padrão Brasileiro de Assinatura Digital.

A principal formulação do Padrão Brasileiro de Assinatura Digital é o estabelecimento de um conjunto de políticas de assinatura, que definem as diretrizes técnicas para a geração e codificação das assinaturas digitais e seus respectivos arquivos. Estas políticas têm níveis gradualmente mais rigorosos quanto à guarda de informações complementares que auxiliem na verificação futura das assinaturas digitais. As políticas de assinatura são, da menos para a mais rigorosa:

  • AD-RB – Assinatura Digital Referência Básica.
  • AD-RT – Assinatura Digital Referência de Tempo.
  • AD-RV – Assinatura Digital Referência de Validação.
  • AD-RC – Assinatura Digital Referência Completa.
  • AD-RA – Assinatura Digital Referência para Arquivamento.

Além das políticas, o PBAD define os Padrões de Codificação para Assinaturas Digitais. Estes padrões estabelecem a forma como as assinaturas digitais e seus elementos acessórios devem ser codificados para a guarda por longos períodos de tempo. Na ICP-Brasil, atualmente são admitidos dois padrões de codificação: o CAdES, baseado na codificação CMS, e o XAdES, baseado na codificação em XML.

O padrão CMS detalha uma estrutura de dados que serve para armazenar assinaturas digitais, dados cifrados, dados autenticados e dados de message digest. Para o contexto da assinatura digital, a estrutura de dados relevante é a estrutura Signed-Data.

O padrão XML utiliza-se do padrão XMLSignature para registrar as assinaturas digitais. Apresenta sobre o CMS as vantagens da linguagem XML, que é extensível e adaptável, desde que as regras de formação das tags sejam respeitadas.

Nos próximos posts, descreveremos cada um dos padrões e das políticas de assinatura digital da ICP-Brasil, iniciando pela política AD-RB.

Referências:

Medida Provisória 2200-2 de 2001 – Institui a ICP-Brasil e dá outras providências. 

DOC-ICP-15.03 – Requisitos das Políticas de Assinatura Digital na ICP-Brasil.