O que é uma assinatura digital

Uma assinatura digital é uma forma de garantir que determinado documento eletrônico, como e-mails, planilhas, arquivos de texto, etc, seja autêntico. Ou seja, significa que sabemos quem criou e que este documento eletrônico não sofreu qualquer alteração desde a sua criação.

Para alcançar esse objetivo as assinaturas digitais devem confiar em certos tipos de criptografia que garantam a autenticação. A criptografia por sua vez é um processo que recebe dados que o remetente deseja enviar para um determinado receptor e codifica esses dados num determinado formato que somente o destinatário seja capaz de decodificar. Outro conceito importante da assinatura digital é a autenticação. A autenticação é o processo de verificar se a informação vem de uma fonte confiável. Portanto, os dois processos acima, a criptografia e a autenticação, trabalham juntas nas assinaturas digitais.

A assinatura digital de um documento deve prover três características básicas das assinaturas, são elas:

  • Autenticidade: É onde confirmamos a autenticidade de um documento, ou seja, somente o remetente deve ser capaz de gerar sua assinatura digital para aquele documento.
  • Não repúdio: É onde temos um documento assinado digitalmente por um autor que não pode negar a autoria do mesmo.
  • Integridade: Onde para sustentar as características anteriores é fundamental que um documento assinado digitalmente não possa ser alterado sem inviabilizar o reconhecimento da assinatura digital.
  • Os algoritmos para a assinatura digital podem ser divididos em dois grupos, são eles:
  • Diretos: Nos algoritmos diretos o processo de assinatura digital envolve somente a origem e o destino, ou seja, somente as partes interessadas. Estes métodos normalmente utilizam algoritmos de criptografia simétricos.
  • Arbitrados: Nos algoritmos arbitrados o documento assinado é enviado a um "arbitro" que é responsável por checar as três características fundamentais da assinatura digital (Autenticidade, Não repúdio e Integridade). Se as três características forem satisfeitas o arbitro envia o documento assinado ao destino garantindo que o mesmo atende a todos os requisitos necessários.

As assinaturas digitais podem ser utilizadas para diferentes fins como:

  • Assinatura de mensagens de correio eletrônico, o que acarretaria com o fim dos spams, pois os emissores poderiam ser responsabilizados pelos seus atos e permitiria que os e-mails fossem utilizados como provas em processos judiciais.
  • Assinatura de pedidos em comércio eletrônico.
  • Identificação de sites na Internet, comprovando a autenticidade do endereço sendo acessado pelo usuário.
  • Acompanhamento e aditamento de processos judiciais ou administrativos através de meios eletrônicos.
  • Recepção do Diário Oficial Eletrônico da União.
  • Viabilização da apresentação de projetos de lei diretamente pelos cidadãos, pois estes podem assinar digitalmente sua adesão ao projeto.
  • Assinatura da declaração do IR (Imposto de Renda) e outros serviços da Receita Federal.
  • Enviar e receber documentos eletrônicos para cartórios.
  • Permitir transações seguras entre instituições financeiras, como por exemplo, o Sistema de Pagamentos Brasileiro (SPB), que está em uso desde o ano de 2002.
  • Assinatura eletrônica de documentos em geral, em substituição ao enorme número de senhas que as pessoas passaram a ter que criar e guardar com o uso cada vez mais crescente da informática e dos problemas decorrentes de segurança.
  • E muito mais.

Um certificado digital é basicamente uma informação que diz que o servidor de rede é confiável por uma fonte independente conhecida como Autoridade de Certificado. Essa Autoridade de Certificado age como uma intermediária em que ambos os computadores confiam. Outra função que ela faz é confirmar que cada computador é o que eles realmente dizem ser e então, libera as chaves públicas de cada computador para o outro.

O Digital Signature Standard (DSS) ou Padrão de Assinatura Digital baseia-se em um método de criptografia com chave pública que utiliza o algoritmo Digital Signature Algorithm (DSA) ou Algoritmo de Assinatura Digital. DSS é um padrão de assinaturas digitais que é apoiado pelo governo dos Estados Unidos e está definido no FIPS (Federal Information Processing Standards) 186-4, também disponível em http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf. O algoritmo DSA consiste de uma chave privada que somente o criador do documento digital, o assinante, conhece e de uma chave pública que ambos conhecem.

Outro algoritmo de assinatura digital é o Elliptic Curve Digital Signature Algorithm (ECDSA) que em português significa Algoritmo de Assinatura Digital de Curvas Elípticas. Esse algoritmo oferece uma variante do Digital Signature Algorithm (DSA) onde neste se usa criptografia de curva elíptica que emprega operações sobre pontos de curvas elípticas em lugar das exponenciações que o DSA utiliza.

Os algoritmos tradicionais de chave pública como o RSA e os algoritmos de assinatura digital que utilizam esses algoritmos tradicionais, como é o caso do DAS, utilizam chaves de muitos bits. Dessa forma, no ano de 1985 Victor Miller e Neal Koblitz propuseram o uso de sistemas criptográficos baseados em curvas elípticas (ECC). Verificou-se que essas curvas apresentavam a vantagem de utilizarem chaves de tamanhos menores provendo o mesmo nível de segurança que os demais. O grande benefício é que essas chaves de tamanho menor são mais ágeis e consomem menos espaço para armazenamento, sendo assim bastante indicados para equipamento com poucos recursos.

Assim sendo, o ECDSA apresenta as seguintes vantagens sobre o DSA e outros algoritmos de assinatura digital que se baseiam no RSA:

  • Utiliza chaves menores.
  • Utiliza soma ao invés de multiplicações.
  • Utiliza multiplicações (soma cumulativa) ao invés de exponenciações.
  • É mais eficiente em termos de tempo de resposta.
  • Consome menos espaço de armazenamento.
  • É adequado para equipamentos com poucos recursos de hardware disponíveis.

Apesar das vantagens do ECDSA, o DSA é igualmente considerado um algoritmo bastante seguro, sendo inclusive mais utilizado que o ECDSA.

Dessa forma, a Assinatura Digital é um conjunto de operações criptográficas aplicadas a um determinado arquivo digital, tendo como resultado o que se convencionou chamar de Assinatura Digital. Por sua vez, o Certificado Digital é um documento digital, que comprova que uma chave privada realmente pertence à determinada pessoa. Numa Assinatura Digital utiliza-se o Certificado Digital e a chave privada.

Nas próximas seções veremos mais sobre assinatura digital, certificados e veremos como podemos obter um certificado digital.

Processo de Assinatura Digital

Para assinar um arquivo aplicamos inicialmente uma função matemática a esse arquivo, e como resultado disso teremos um resumo criptográfico, ou hash, desse arquivo. Essa função matemática utilizada é chamada função hash que é responsável por garantir a integridade de um documento de forma que qualquer alteração no conteúdo do documento altera o resultado da função hash aplicada sobre o mesmo. Após isso o hash é então criptografado com a chave privada do signatário, com isso o signatário estará juntando ao hash a sua própria "impressão digital" garantindo a autoria ou autenticidade do documento. Até este exato momento teremos a mensagem original e a assinatura digital que é o hash do documento criptografado. Para completar este pacote o Certificado Digital do signatário é agregado permitindo verificar a identidade do mesmo. O certificado é responsável por permitir a imediata verificação da Assinatura Digital.

Primeiramente analisamos o certificado, que é assinado por uma autoridade certificadora que identificou o titular do certificado, para verificar a identidade do autor da assinatura. Feito isso, utilizaremos a chave pública que ele contém para descriptografar o hash que foi criptografado com a chave privada do signatário. Se for possível realizar essa operação está comprovada a autenticidade (autoria) deste arquivo.

Assim sendo, um arquivo assinado digital possui três componentes chaves: a mensagem original, a assinatura digital e o certificado do signatário.

A única forma de descriptografar a assinatura se dá apenas se a chave pública for correspondente a chave privada que foi utilizada para a assinatura do documento. Após a operação criptográfica ser concretizada estará estabelecida a autoria da assinatura e assim sendo obtemos o hash do documento. Na sequencia aplica-se a função hash ao original e compara-se com o hash assinado, com isso estabelecemos a integridade do documento. Obviamente que a função dos softwares de assinatura digital é fazer tudo isso de forma transparente e enviar avisos quando ocorrerem falhas na validação do documento ou do certificado.

O certificado digital pode ser armazenado em mídia como um arquivo, Smart Card ou Token. Segue nas Figuras 1 a 4 um Token, um Smart Card e uma leitora e gravadora de Smart Card.

exemplo do USB

Figura 1. Exemplo do Token USB ePass2000NG.

exemplo de smart card

Figura 2. Exemplo de um Smart Card.

exemplo de uma leitora de cartão smart card

Figura 3. Exemplo de uma leitora de cartão Smart Card.

exemplo de um leitor e gravador de um smart card

Figura 4. Exemplo de um leitor e gravador de Smart Card compatível com o padrão ICP-Brasil.

O Token é um hardware que gera e armazena as chaves que irão compor os certificados digitais. Depois de geradas as chaves elas estarão totalmente protegidas não sendo possível exportá-las ou retirá-las do Token. Os Tokens são conectados através de uma porta USB depois de instalar seu driver e um gerenciador criptográfico (software).

O Smart Card é um cartão criptográfico capaz de gerar e armazenar as chaves criptográficas que irão compor os certificados digitais. Quando essas chaves forem geradas elas estão totalmente protegidas, impossibilitando exportá-la para outra mídia nem retirá-las do Smart Card. Se o computador for atacado por vírus ou por um hacker essas chaves ainda assim estão seguras e protegidas, sem estarem expostas a risco de roubo ou violação. Dessa forma, os múltiplos níveis de proteção que essa solução oferece asseguram a identificação do assinante, permitindo assim que a integridade e o sigilo das informações sejam protegidos e impossibilitando também o repúdio do documento.

A leitora é um dispositivo que foi projetado para que possamos conectar os Smart Cards a um computador. Assim, a leitora se encarrega de fazer a interface com o computador, enquanto o computador suporta e gerencia as aplicações.

A Autoridade Certificadora é responsável por garantir a identidade do titular do certificado, que o mesmo foi responsável por gerar o seu próprio par de chaves e que o titular do certificado se comprometeu pela segurança e inviolabilidade de sua chave privada. Assim, outra propriedade garantida é o não repúdio que é determinado pela relação do titular de um certificado e a Autoridade Certificadora. A Autoridade Certificadora também emite, renova, revoga e gerencia certificados digitais.

No Brasil temos como autoridade certificadora a ICP-Brasil que é responsável por fiscalizar e auditar o processo de emissão de certificados digitais das autoridades certificadoras integrantes, com o intuito de garantir a total confiabilidade do processo de certificação. A AC-JUS foi criada com intuito de criar regras específicas tanto para emissão como para as informações internas dos certificados. A AC-JUS assim como a AC-RAIZ e AC-SRF, não emite certificados para usuários finais, apenas credencia AC’s para que, seguindo as regras específicas da AC-JUS faça a emissão dos certificados aos usuários finais.

O ICP-Brasil foi criado através da Medida Provisória 2.200-2, de 24/08/2001. Dentre os artigos da MP temos o Artigo 1º que institui a ICP-Brasil para garantir através da certificação digital a autenticidade, a integridade e a validade jurídica de documentos em forma eletrônica, aplicações de suporte e aplicações habilitadas; além da realização de transações eletrônicas seguras. O Artigo 3º cria o Comitê Gestor, responsável pelas políticas de certificação. Outro artigo importante é o Artigo 10º que não impede a utilização de certificados não emitidos pela ICP-Brasil para comprovar autoria e integridade, desde que admitidos pelas partes como sendo válidos.

Ainda temos leis estaduais que dentre outras coisas criam uma AC. Um exemplo disso é a Lei Estadual 12.469 de 03/05/2006 no estado do Rio Grande do Sul que definiu a criação da AC-RS com a competência de gerir o ciclo de vida dos certificados digitais da cadeia AC-RS, regular a certificação digital no âmbito da administração pública estadual e desempenhar as demais atividades relativas à certificação digital. A mesma lei também autorizou o Banrisul a atuar como AR.

Os certificados emitidos na cadeia de certificação da AC-JUS recebem a marca Cert-JUS. Os certificados Cert-JUS são de uso exclusivo de servidores públicos, e ao utilizá-los o titular estará se identificando como servidor de determinada instituição pública. Um dos tipos de certificados é o Cert-JUS Institucional que é de uso exclusivo de servidores do poder judiciário. O Cert-JUS Poder Publico é para utilização dos servidores de órgãos externos ao poder judiciário. O Cert-JUS Equipamento Servidor destina-se a aplicações e equipamentos servidores de órgãos públicos, e o Cert-JUS Código Seguro destina-se a assinatura de código fonte de programas.

Outra entidade importante é a Autoridade de Registro ou AR que é responsável pelo processo final na cadeia de certificação digital, realizando assim a identificação presencial dos interessados em adquirir certificados, coletando os documentos e encaminhando-os à Autoridade Certificadora (AC). Essas Autoridades Certificadoras estão subordinadas à AC de nível imediatamente superior e as Autoridades de Registros estão vinculadas a uma ou mais Autoridades Certificadoras. Segue na Figura 5 um exemplo de hierarquia de uma ICP.

Hierarquia de uma ICP

Figura 5. Hierarquia de uma ICP.

Atualmente temos a hierarquia presente na Figura 6.

hierarquia da ICP-Brail

Figura 6. Hierarquia da ICP-Brasil.

A Autoridade Certificadora Raiz (AC Raiz) é a primeira autoridade da cadeia de certificação. A AC Raiz assina digitalmente os certificados das Autoridades Certificadoras de primeiro nível, que por sua vez assinam os de segundo nível.

Todo certificado digital tem uma linha de tempo, conforme podemos verificar na Figura 7.

Ciclo de vida de um Certificado Digital

Figura 7. Ciclo de vida de um Certificado Digital.

Tudo começa com a requisição de um usuário ou organização numa AR e após isso temos a emissão do certificado digital e com isso temos então o inicio da validade do certificado. De posse do certificado com validade podemos assinar documentos. Outra possibilidade é a revogação de certificados que é quando necessitamos alterar qualquer informação que consta no certificado ou no caso de comprometimento da chave privada ou da mídia armazenadora. A revogação somente pode ser solicitada pelo titular do certificado ou responsável, pelo AC emitente, pela AR vinculada, pela AC Raiz ou pelo CG da ICP-Brasil. Com isso temos uma Lista de Certificados Revogados (LCR) que é uma relação de certificados que foram revogados e que fica armazenada em um arquivo eletrônico na AC, para consulta das aplicações. Cada certificado contém a informação do endereço para a consulta da LCR e essa lista é publicada de acordo com a periodicidade definida pela AC, em consonância com as normas da ICP-Brasil. Podemos ainda consultar a LCR completa ou um único certificado através de protocolo on-line.

Portanto, a ICP garante o certificado com a cadeia de confiança e com a lista de certificados revogados (LCR).

Como Obter um Certificado Digital

O procedimento para que qualquer pessoa ou empresa consiga uma assinatura digital, é primeiramente ir até uma entidade autorizada pelo Instituto Nacional de Tecnologia da Informação (ITI), chamadas de Autoridades Certificadoras (AC), e requisitar uma chave privada. O ITI, Instituto Nacional de Tecnologia da Informação é uma autarquia federal vinculada à Casa Civil da Presidência da República, cujo objetivo é manter a ICP Brasil e sua AC Raiz desde a publicação da Medida Provisória 2.200-2 de 24 de agosto de 2001. O site do Instituto Nacional de Tecnologia da Informação está disponível em http://www.iti.gov.br/. No site podemos encontrar documentação, orientações, padrões, certificado da AC Raiz e LCR (Lista de Certificados Revogados), lista de AC e AR credenciados, legislação, entre outras informações.

O ITI segue regras de funcionamento estabelecidas pelo Comitê Gestor da ICP Brasil, cujos membros são nomeados pelo Presidente da República, entre representantes dos poderes da República, bem como, de segmentos da sociedade e da academia, como forma de dar estabilidade, transparência e confiabilidade ao sistema. Este Comitê Gestor da Infra-Estrutura de Chaves Públicas Brasileira (CG ICP Brasil) tem por finalidade atuar na formulação e controle da execução das políticas públicas relacionadas à Infraestrutura de Chaves inclusive nos aspectos de normatização e nos procedimentos administrativos, técnicos, jurídicos e de segurança, que formam a cadeia de confiança da ICP Brasil.

Dessa forma, essas chaves disponibilizadas pelas Autoridades Certificadoras são usadas para habilitar apenas algumas pessoas para emitir e receber certos arquivos. Se tivermos uma chave privada podemos emitir dados com uma identidade própria, sem haver qualquer chance de alguém tentar forjar a nossa identidade. Se tivermos uma chave pública podemos apenas acessar um documento recebido e repassar essa informação. Porém, o nome do emissor original estará sempre atrelado ao arquivo ou serviço, de forma que não haja qualquer dúvida de quem produziu o documento, ou seja, o verdadeiro responsável pelo documento.

Por exemplo, se tivermos um certificado fornecido pelo AR Banrisul podemos adquirir o driver da leitora/gravadora e do CSP (Cryptographic Service Provider) diretamente no site, outros utilitários são encontrados no site da AC que forneceu o certificado. Um CSP é uma biblioteca que implementa o Crypto API da Microsoft. O fornecedor do certificado possui um CSP referente a mídia fornecida, portanto ele fornecerá o software que deve ser instalado para que o certificado seja utilizado. O CSP deve ser homologado pela ICP-Brasil. A leitora/gravadora por sua vez é um periférico que permite acesso de hardware ao chip do certificado digital, possibilitando a gravação e a exclusão de um certificado. O Token criptográfico também deve ter seu driver instalado, mesmo que ele esteja conectado em uma entrada USB. Mais adiante no artigo veremos mais detalhes sobre esses periféricos.

Segue na Tabela 1 os tipos de certificados ICP-Brasil.

Tipo de certificado

Tamanho (bits)

Processo de geração

Mídia armazenadora

Validade máxima do certificado (anos)

A1 e S1

1024

Software

Arquivo

1

A2 e S2

1024

Software

Smart card ou Token, sem capacidade de geração de chave

2

A3 e S3

1024

Hardware

Smart card ou Token, com capacidade de geração de chave

3

A4 e S4

2048

Hardware

Smart card ou Token, com capacidade de geração de chave

3

Tabela 1. Tipos de certificados disponibilizados pelo ICP Brasil.

O documento que deve ser carregado para assinatura deve ser um documento do tipo PDF. Existem ferramentas que geram PDF como o PDF Creator e outras ferramentas já exportam em formato PDF como é o caso do Office.

Bibliografia

[1] MessageDigest, disponível em http://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html

[2] STALLINGS, William. Criptografia e segurança de redes: Princípios e práticas, 4 ed. São Paulo: Prentice Hall, 2008.

Links Úteis

  • ICP-Brasil:
    A Infraestrutura de Chaves Públicas Brasileira – ICP-Brasil é uma cadeia hierárquica de confiança que viabiliza a emissão de certificados digitais para identificação virtual do cidadão.
  • Instituto Nacional de Tecnologia da Informação:
    Site oficial do instituto de tecnologia do Brasil
  • Certificado Digital:
    Na prática, o certificado digital ICP-Brasil funciona como uma identidade virtual que permite a identificação segura e inequívoca do autor de uma mensagem ou transação feita em meios eletrônicos, como a web.

Saiba mais sobre Assinaturas Digitais