NF-e — Certificação Digital
Introdução
A Internet tem sido largamente utilizada para a troca de mensagens e documentos entre cidadãos, governo e empresas. Quando se trata de documentos e mensagens oficiais, estas transações eletrônicas necessitam de alguns requisitos de segurança, a saber:
- Autenticação ou Autenticidade: garantia de identificação das pessoas ou organizações envolvidas na comunicação e na autoria do documento eletrônico;
- Integridade: garantia de que o conteúdo de uma mensagem ou resultado de uma consulta não será alterado durante seu tráfego e armazenagem;
- Confidencialidade (Privacidade ou Sigilo): garantia de que somente as pessoas ou organizações envolvidas na comunicação possam ler e utilizar as informações transmitidas de forma eletrônica pela rede;
- Não-Repúdio (Não-recusa): garantia que o remetente ou pessoa que executou determinada transação de forma eletrônica, não poderá posteriormente negar sua autoria;
- Âncora Temporal (Temporalidade ou Irretroatividade): certeza e imparcialidade de quando o documento eletrônico foi criado e da relação de precedência com outros.
A certificação digital é a tecnologia que provê estes requisitos. No núcleo da certificação digital está o certificado digital, um documento eletrônico que contém o nome, um número público exclusivo denominado chave pública e muitos outros dados que mostram quem somos para as pessoas e para os sistemas de informação.
A certificação digital traz inúmeros benefícios para os cidadãos e para as instituições que a adotam. Com a certificação digital é possível utilizar a Internet de forma segura para disponibilizar diversos serviços com maior agilidade, facilidade de acesso e substancial redução de custos. Imagine como seriam os serviços bancários hoje em dia se não fosse a Internet. Outro exemplo interessante são os Home Brokers das corretoras de valores que permitem que qualquer pessoa possa comprar ações facilmente e de forma segura. A tecnologia da certificação digital foi desenvolvida graças aos avanços da criptografia nos últimos 30 anos.
Criptografia
Definição
A palavra criptografia (Do Grego kryptós, “escondido”, e gráphein, “escrita”) significa a arte de escrever em códigos de forma a esconder a informação na forma de um texto incompreensível ou ilegível. É um ramo da Matemática, parte da Criptologia. A informação codificada é chamada de texto cifrado. O processo de codificação ou ocultação é chamado de cifragem, e o processo inverso, ou seja, obter a informação original a partir do texto cifrado, chama-se decifragem.
Histórico
Antigamente a criptografia era feita manualmente através de algum processo predeterminado. Exemplos:
- Cifras Hebraicas;
- Bastão de Licurgo;
- Crivo de Erastótenes;
- Código de Políbio;
- Cifra de César.
Cifras hebraicas
Os hebreus tinham alguns sistemas manuais de cifragem: ATBASH, ALBAM e ATBAH.
O ATBASH funciona da seguinte maneira: a primeira letra do alfabeto hebreu (Aleph) é trocada pela última (Taw), a segunda letra (Beth) é trocada pela penúltima (Shin) e assim sucessivamente. Destas quatro letras deriva o nome da cifra: Aleph Taw Beth SHin — ATBASH.
Bastão de Licurgo
Foi usado pelos gregos de Esparta. O primeiro algoritmo mecânico de criptografia por transposição. O remetente escreve a mensagem ao longo do bastão e depois desenrola a tira, a qual então se converte numa seqüência de letras sem sentido. O mensageiro usa a tira como cinto, com as letras voltadas para dentro. O destinatário, ao receber o “cinto”, enrola-o no seu bastão, cujo diâmetro é igual ao do bastão do remetente. Assim, pode ler a mensagem.
Crivo de Erastótenes
Uma das formas mais eficientes para encontrar todos os números primos pequenos, por exemplo, os menores de 10.000.000.
O algoritmo funciona da seguinte forma:
Fazer uma lista com todos os números inteiros maiores que um e menores ou igual a “n”, onde “n” é o número topo, ou seja, queremos achar todos os primos menores que “n”;
Riscar os múltiplos de todo número primo da relação que é menor ou igual à raiz quadrada de “n” (n½). Os números que não forem riscados são os números primos.
Acompanhe o raciocínio na imagem abaixo, onde determinamos os números primos menores que 20:
Código de Políbio
Cada letra é representada pela combinação de dois números, os quais se referem à posição ocupada pela letra. Assim, A é substituído por 11, B por 12, etc. Veja na imagem abaixo:
Por exemplo, o texto:
ALBERT EIJE
Pelo Código de Políbio ficaria assim:
11–32–12–15–42–44 15–24–25–15
Código de César
Cada letra da mensagem original é substituída pela letra que a seguia em três posições no alfabeto: a letra A substituída por D, a B por E, e assim por diante até a última letra, cifrada com a primeira. O deslocamento padrão é de 3 letras, mas pode-se adaptar o algoritmo para qualquer deslocamento de letras.
Criptografia por máquinas
Como tempo a criptografia foi evoluindo e máquinas passaram a serem utilizadas. Alguns exemplos de máquinas de criptografia:
- O Cilindro de Jefferson;
- O Código ASCII;
- A Máquina Enigma.
O Cilindro de Jefferson
Na época em que era secretário de estado de George Washington, Thomas Jefferson, futuro presidente dos Estados Unidos, criou um método simples, engenhoso e seguro de cifrar e decifrar mensagens: o cilindro cifrante.
O Cilindro de Jefferson (Jefferson’s wheel cipher em Inglês), na sua forma original, é composto por 26 discos de madeira que giram livremente ao redor de um eixo central de metal. As vinte e seis letras do alfabeto são inscritas aleatoriamente na superfície mais externa de cada disco de modo que cada um deles possua uma seqüência diferente de letras. Girando-se os discos obtêm-se as mensagens.
Observe a imagem abaixo:
Observe na figura acima que, numa das linhas, é possível ler “COOL JEFFERSON WHEEL CIPHER”. Esta seria a mensagem clara. O remetente, no entanto, escolhe qualquer outra linha e a envia ao destinatário. Tomemos como exemplo a linha imediatamente abaixo da mensagem clara. Neste caso, a mensagem cifrada enviada seria:
WWPN HKKRWYZWK YGSJI LGZDNN
O destinatário, que possui um cilindro com a mesma seqüência de discos, transfere a mensagem recebida para o seu cilindro e procura uma linha que possua texto que faça sentido.
O Código ASCII
Os códigos ASCII representam texto em computadores, equipamentos de comunicação, entre outros dispositivos que trabalham com texto. Desenvolvida a partir de 1960, grande parte das codificações de caracteres modernas a herdaram como base.
Observe nas imagens abaixo os caracteres definidos da Tabela ASCII:
A tabela foi desenhada para ter duas colunas com caracteres de controle, uma coluna com caracteres especiais, uma coluna com números e quatro colunas com letras.
Devemos contar os bits da direita para a esquerda. Portanto, o código ASCII da letra E é o seguinte: 1000101. Tente formar a palavra casa a partir da tabela acima.
Criptografia hoje
A cifragem e a decifragem são realizadas por programas de computador chamados de cifradores e decifradores. A cifra é um ou mais algoritmos que cifram e decifram um texto. A operação do algoritmo costuma ter como parâmetro uma chave. Tal parâmetro costuma ser secreto (conhecido somente pelos envolvidos em trocar a mensagem).
Os cifradores e decifradores se comportam de maneira diferente para cada valor da chave. Sem o conhecimento da chave correta não é possível decifrar um texto cifrado. Assim, para manter uma mensagem secreta basta cifrá-la e manter a chave em sigilo.
Na criptografia, o tamanho das chaves são expressos em expoentes, como 2n, onde n é o tamanho da chave. Se n for igual a 8 (8 bits), gerará 256 possíveis chaves diferentes. Já se n for igual a 256 gerará 7,2*1016 chaves possíveis.
Para compreendermos melhor o conceito, vamos a um exemplo prático.
Vamos escrever a palavra casa a partir da tabela ASCII vista anteriormente:
C — 1000011
A — 1000001
S — 1010011
A — 1000001
Nossa mensagem ficaria assim:
1000011 1000001 1010011 1000001
Se informarmos ao destinatário que a mensagem não está cifrada e que ele deve apenas comparar os bits com a tabela ASCII, ele facilmente descobrirá o texto da mensagem: CASA. Vamos agora utilizar uma chave para cifrar a mensagem.
A chave que utilizaremos será a letra “Z” da tabela ASCII: 1011010.
Para cifrar a mensagem faremos uso de uma simples operação matemática chamada “ou exclusivo”, também chamada de “disjunção exclusiva”, conhecida geralmente por XOR.
Observe a tabela verdade do XOR:
Vamos interpretar a tabela acima da forma mais simples possível: quando se executa um XOR entre “elementos iguais” o resultado é falso. Quando se executa o XOR entre “elementos diferentes” o resultado é verdadeiro. Vamos substituir o F por 0 e o V por 1. Vejamos como fica a tabela:
XOR entre “elementos iguais” será igual a zero.
XOR entre “elementos diferentes” será igual a um.
Agora faremos o XOR entre a palavra CASA e a letra Z. Sendo que aplicaremos a chave para cada letra da palavra CASA:
Após a cifragem, com a utilização da letra “Z” da tabela ASCII como a chave, temos a seguinte mensagem cifrada:
0011001 0011011 0001001 0011011
Se tentarmos decifrar a mensagem apenas substituindo os caracteres pela tabela ASCII teremos o seguinte texto:
0011001 — Caractere de controle (EM)
0011011 — Caractere de controle (ESC)
0001001 — Caractere de controle (HT)
0011011 — Caractere de controle (ESC)
Ou seja, texto nenhum, ilegível. Para que o destinatário consiga decifrar a mensagem ele precisa da Chave: a letra “Z”: 1011010. De posse da chave ele deve realizar um XOR entre cada letra cifrada e a chave passada. Somente dessa forma o destinatário chegará à mensagem clara.
Tipos de criptografia
Atualmente existem dois tipos de criptografia: a simétrica e a assimétrica (de chave pública). A criptografia simétrica realiza a cifragem e a decifragem de uma informação através de algoritmos que utilizam a mesma chave. Como a mesma chave deve ser utilizada na cifragem e na decifragem, ela deve ser compartilhada entre quem cifra e quem decifra os dados. O processo de compartilhar uma chave é conhecido como troca de chaves. A troca de chaves deve ser feita de forma segura, uma vez que todos que conhecem a chave podem decifrar ou mesmo reproduzir uma informação cifrada.
Os algoritmos assimétricos (de chave pública) operam com duas chaves distintas: chave pública e chave privada. Essas chaves são geradas simultaneamente e estão relacionadas entre si, o que possibilita que a operação executada por uma seja revertida pela outra. A chave privada deve ser mantida em sigilo e protegida por quem gerou as chaves. A chave pública é disponibilizada e tornada acessível a qualquer pessoa que deseje se comunicar com o proprietário da chave privada correspondente. Quando uma chave é utilizada para cifrar, apenas a outra pode ser usada para decifrar, se for utilizada a mesma chave que cifrou a informação o resultado é totalmente diferente.
Criptografia simétrica
No exemplo que utilizamos no tópico “Criptografia Hoje”, onde ciframos a palavra CASA, utilizamos criptografia simétrica, onde apenas uma chave é utilizada para cifrar e decifrar a mensagem. Para esse exemplo utilizamos uma chave de 7 bits: a letra “Z” da tabela ASCII.
O ruim da criptografia simétrica é que a chave deve ser do conhecimento tanto do remetente quanto do destinatário. Isso torna o processo frágil.
Criptografia assimétrica (de chave pública)
Em 1976, Whitfield Diffie e Martin Hellman mudaram os rumos da criptografia, criando o algoritmo Diffie-Hellman. Eles propuseram um sistema para cifrar e decifrar uma mensagem com duas chaves distintas: a chave pública que pode ser divulgada e a chave privada que deve ser mantida em segredo.
Funciona da seguinte forma: cifrando a mensagem com a chave privada ela somente será decifrada pela chave pública e vice-versa.
O algoritmo de chave pública não substitui a criptografia simétrica, pois eles são lentos e vulneráveis a alguns ataques. Geralmente a criptografia de chave pública é usada para distribuir com segurança as chaves simétricas, pois esta será usada para cifrar as mensagens.
Os algoritmos criptográficos de chave pública permitem garantir tanto a confidencialidade quanto a autenticidade das informações por eles protegidas.
Confidencialidade
O remetente que deseja enviar uma informação sigilosa deve utilizar a chave pública do destinatário para cifrar a informação. Para isto é importante que o destinatário disponibilize sua chave pública, utilizando, por exemplo, diretórios públicos acessíveis pela Internet.
O sigilo é garantido, já que somente o destinatário que possui a chave privada conseguirá decifrar e recuperar as informações originais. Por exemplo, para Alice compartilhar uma informação de forma secreta com Beto, ela deve cifrar a informação usando a chave pública de Beto. Somente Beto pode decifrar a informação já que apenas Beto possui a chave privada correspondente.
Autenticidade
No processo de autenticação, as chaves são aplicadas no sentido inverso ao da confidencialidade. O autor de um documento utiliza sua chave privada para cifrá-lo de modo a garantir a autoria em um documento ou a identificação em uma transação. Esse resultado só é obtido porque a chave privada é conhecida exclusivamente por seu proprietário.
Dessa forma, se Alice cifrar uma informação com sua chave privada e enviar para Beto, ele poderá decifrar esta informação já que tem acesso à chave pública de Alice. Qualquer pessoa poderá decifrar a informação, uma vez que todos conhecem a chave pública de Alice. Por outro lado, o fato de ser necessário o uso da chave privada de Alice para produzir o texto cifrado caracteriza uma operação que somente Alice tem condições de realizar. Pode-se ter certeza de que foi Alice quem cifrou a informação, garantindo a sua autenticidade.
Em 1977, Ron Rivest, Adi Shamir e Len Adleman (três professores do MIT) desenvolveram um algoritmo assimétrico denominado RSA, em referência aos seus sobrenomes. O algoritmo RSA é a base, atualmente, da maioria das aplicações que utilizam criptografia assimétrica. O tamanho da chave varia de 512 a 2048 bits.
O RSA baseia-se da grande dificuldade dos computadores de fatorarem números grandes. As chaves são geradas matematicamente através do produto de dois números primos gigantes. Mesmo que se tenha esse produto (que faz parte da chave pública divulgada), a segurança ainda é garantida devido a grande dificuldade de se fatorá-lo e obter os números primos que são essenciais para o algoritmo.
Integridade — Resumo Criptográfico — Hash
Hash quer dizer “picar, misturar, confundir”. É uma função criptográfica que tem como finalidade computar um resumo de mensagem ao criar uma assinatura digital. A função hash é usada em conjunto com a criptografia assimétrica, e é utilizada para garantir a integridade de um documento digital.
O hash tem a função parecida com a do digito verificador do CPF. Pode ser chamada de impressão digital ou “message digest”. O resumo criptográfico é o resultado retornado por uma função de hash. As funções de resumo criptográfico são usadas para garantir a integridade dos dados.
Algumas das propriedades desta função são:
- Deve ser computacionalmente inviável fazer a operação inversa, ou seja, dado um resumo, deve ser inviável obter uma mensagem original;
- Duas mensagens semelhantes devem produzir um resumo completamente diferente;
- Deve ser fácil e rápido produzir o resumo.
Assinatura digital
Quando usamos a criptografia assimétrica juntamente com uma função de resumo (hash), estamos criando uma assinatura digital.
A vantagem da utilização de resumos criptográficos no processo de autenticação é o aumento de desempenho, pois os algoritmos de criptografia assimétrica são muito lentos. A submissão de resumos criptográficos ao processo de cifragem com a chave privada reduz o tempo de operação para gerar uma assinatura por serem os resumos, em geral, muito menores que o documento em si. Assim, consomem um tempo baixo e uniforme, independente do tamanho do documento a ser assinado.
A assinatura digital é uma modalidade de assinatura eletrônica, resultado de uma operação matemática que utiliza criptografia e permite aferir, com segurança, a origem e a integridade do documento. A assinatura digital fica de tal modo vinculada ao documento eletrônico que, caso seja feita qualquer alteração no documento, a assinatura se torna inválida.
A técnica permite não só verificar a autoria do documento, como estabelece também uma “imutabilidade lógica” de seu conteúdo, pois qualquer alteração do documento, como, por exemplo, a inserção de mais um espaço entre duas palavras, invalida a assinatura.
Na assinatura digital, o documento não sofre qualquer alteração e o Hash cifrado com a chave privada é anexado ao documento.
Para comprovar uma assinatura digital é necessário inicialmente realizar duas operações:
- Calcular o resumo criptográfico do documento;
- Decifrar a assinatura com a chave pública do signatário.
Se forem iguais, a assinatura está correta, o que significa que foi gerada pela chave privada corresponde à chave pública utilizada na verificação e que o documento está íntegro. Caso sejam diferentes, a assinatura está incorreta, o que significa que pode ter havido alterações no documento ou na assinatura pública.
A assinatura digital pode ser aplicada de diversas formas, dentre elas encontram-se as seguintes:
- Comércio eletrônico;
- Processos judiciais e administrativos em meio eletrônico;
- Facilitar a iniciativa popular na apresentação de projetos de lei, uma vez que os cidadãos poderão assinar digitalmente sua adesão às propostas;
- Assinatura da declaração de renda e outros serviços prestados pela Secretaria da Receita Federal;
- Obtenção e envio de documentos cartorários;
- Transações seguras entre instituições financeiras, como já vem ocorrendo desde abril de 2002, com a implantação do Sistema de Pagamentos Brasileiro — SPB;
- Diário Oficial Eletrônico;
- Identificação de sites na rede mundial de computadores, para que se tenha certeza de que se está acessando o endereço realmente desejado.
Documento eletrônico
Faremos uma analogia entre o documento em papel e o documento eletrônico para uma total compreensão do termo “Documento Eletrônico”.
Assinatura manual
A semelhança da assinatura digital e da assinatura manual restringe-se ao princípio de atribuição de autoria a um documento. Na manual, as assinaturas seguem um padrão, sendo semelhantes entre si e possuindo características pessoais e biométricas de cada indivíduo.
Esse tipo de assinatura é feito sobre algo tangível, o papel, e vincula a informação impressa à assinatura. A veracidade da assinatura manual é feita por uma comparação visual com uma assinatura verdadeira tal como aquela do RG da pessoa.
Assinatura digital
Nos documentos eletrônicos não existe um modo simples para relacionar o documento com a assinatura. Ambos são compostos apenas pela representação eletrônica de dados, ou seja, por uma seqüência de bits (0s e 1s), que necessitam de um computador para a sua visualização e conferência. Na assinatura digital, a assinatura gerada é diferente para cada documento, pois está relacionada ao resumo do documento.
Apesar das diferenças, a técnica de assinatura digital é uma forma eficaz de garantir a autoria dos documentos eletrônicos. Em agosto de 2001, a Medida Provisória 2.200 garantiu a validade jurídica de documentos eletrônicos. Este fato tornou a assinatura digital um instrumento válido juridicamente.
O fornecimento de autenticação em documentos eletrônicos é tecnicamente viável, mas ainda restam duas questões fundamentais:
- Como conseguir as chaves públicas?
- Como garantir a identidade do proprietário do par de chaves?
A resposta a ambas as questões é o Certificado Digital.
Certificado digital
Vamos supor a seguinte situação:
- Uma transação bancária;
- O banco lhe divulga a chave pública dele;
- Você cifra a sua chave simétrica usando a chave pública do banco;
- Essa chave simétrica será utilizada durante aquela seção de uso — determinado tempo conectado ao site do banco;
- Você fornece sua chave, agora cifrada, para o banco;
- Apenas o banco, que possui a chave privada equivalente à sua própria chave pública poderá decifrá-la;
- A partir daí a comunicação será segura.
Mas quem garante que aquela chave pública divulgada como se fosse do banco seja realmente dele?
Para resolver essa questão, entra a figura do Certificado Digital.
O Certificado Digital funciona como uma espécie de carteira de identidade virtual que permite a identificação segura do autor de uma mensagem ou transação em rede de computadores. O processo de certificação digital utiliza procedimentos lógicos e matemáticos bastante complexos para assegurar confidencialidade, integridade das informações e confirmação de autoria.
O Certificado Digital é um documento eletrônico, assinado digitalmente por uma terceira parte confiável, que identifica uma pessoa, seja ela física ou jurídica, associando-a a uma chave pública. As principais informações que constam em um certificado digital são: chave pública do titular; nome e endereço de e-mail; período de validade do certificado; nome da Autoridade Certificadora — AC que emitiu o certificado; número de série do certificado digital; assinatura digital da AC.
ICP-Brasil
A Infra-Estrutura de Chaves Públicas Brasileira (ICP-Brasil) é uma cadeia hierárquica e de confiança que viabiliza a emissão de certificados digitais para identificação do cidadão quando transacionando no meio virtual, como a Internet.
Estrutura da ICP-Brasil
A ICP-Brasil é composta por uma cadeia de autoridades certificadoras, formada por uma Autoridade Certificadora Raiz (AC-Raiz), Autoridades Certificadoras (AC) e Autoridades de Registro (AR) e, ainda, por uma autoridade gestora de políticas, ou seja, o Comitê Gestor da ICP-Brasil.
Vamos aos conceitos de cada um desses entes.
COMITÊ GESTOR — O Comitê Gestor da ICP-Brasil está vinculado à Casa Civil da Presidência da República. É composto por cinco representantes da sociedade civil e um representante de cada um dos seguintes órgãos: Ministério da Justiça; Ministério da Fazenda; Ministério do Desenvolvimento, Indústria e Comércio Exterior; Ministério do Planejamento, Orçamento e Gestão; Ministério da Ciência e Tecnologia; Casa Civil da Presidência da República e Gabinete de Segurança Institucional da Presidência da República. Sua principal competência é determinar as políticas a serem executadas pela Autoridade Certificadora-Raiz.
AUTORIDADE CERTIFICADORA RAIZ (AC RAIZ) — A AC-Raiz da ICP-Brasil é o Instituto Nacional de Tecnologia da Informação — ITI, autarquia federal vinculada à Casa Civil da Presidência da República.
AUTORIDADES CERTIFICADORAS (AC) — As Autoridades Certificadoras são entidades públicas ou pessoas jurídicas de direito privado credenciadas à AC-Raiz e que emitem certificados digitais vinculando pares de chaves criptográficas ao respectivo titular. Nos termos do art. 60 da MP 2.200/01, compete-lhes “emitir, expedir, distribuir, revogar e gerenciar os certificados, bem como colocar à disposição dos usuários listas de certificados revogados e outras informações pertinentes e manter registro de suas operações”.
AUTORIDADES DE REGISTRO (AR) — As Autoridades de Registro também podem ser tanto entidades públicas ou pessoas jurídicas de direito privado credenciadas pela AC-Raiz e sempre serão vinculadas operacionalmente à determinada AC. Nos termos do art. 70 da MP 2.200–2, compete-lhes “identificar e cadastrar usuários na presença destes, encaminhar solicitações de certificados às AC e manter registros de suas operações”.
A Autoridade Certificadora Raiz da ICP-Brasil é a primeira autoridade da cadeia de certificação. Executa as Políticas de Certificados e as normas técnicas e operacionais aprovadas pelo Comitê Gestor da ICP-Brasil. Compete à AC-Raiz emitir, expedir, distribuir, revogar e gerenciar os certificados das autoridades certificadoras de nível imediatamente subseqüente ao seu.
A AC-Raiz também está encarregada de emitir a lista de certificados revogados e de fiscalizar e auditar as Autoridades Certificadoras (ACs), Autoridades de Registro (ARs) e demais prestadores de serviço habilitados na ICP-Brasil. Além disso, verifica se as ACs estão atuando em conformidade com as diretrizes e normas técnicas estabelecidas pelo Comitê Gestor.
Na próxima imagem podemos ver a estrutura resumida da ICP-Brasil, apenas com as Autoridades Certificadoras de 1º Nível e de 2º Nível
Vamos a um breve resumo sobre cada uma das ACs de 1º nível.
A Caixa Econômica Federal — atualmente única instituição financeira credenciada como Autoridade Certificadora ICP-Brasil — utiliza, desde 1999, a tecnologia de certificação digital para prover a comunicação segura na transferência de informações referentes ao FGTS e à Previdência Social, dentro do projeto Conectividade Social.
Com o apoio da Certisign, empresa fundada em 1996 com foco exclusivamente no desenvolvimento de soluções de certificação digital para o mercado brasileiro, importantes instituições vem adotando a tecnologia nas mais diversas formas.
A Imprensa Oficial é a Autoridade Certificadora Oficial do Estado de São Paulo e está credenciada e preparada para oferecer produtos e serviços de certificação digital para os poderes executivo, legislativo e judiciário, incluindo todas as esferas da administração pública, direta e indireta, nos âmbitos federal, estadual e municipal.
A Autoridade Certificadora da Justiça (AC-JUS) é Gerenciada por um Comitê Gestor que a partir de outubro de 2005 é composto por representantes do STF, STJ, TST, TSE, STM, CNJ, CJF e o CSJT. Trata-se da primeira autoridade certificadora do Poder Judiciário no mundo. Sua implementação possibilitou a definição de regras e perfis de certificados, específicos para aplicações do Judiciário e resulta da necessidade crescente de transpor a mesma credibilidade e segurança existentes hoje no “mundo do papel” para o “mundo digital”.
A Autoridade Certificadora da Presidência da República — ACPR foi criada em abril de 2002, por uma iniciativa da Casa Civil, no âmbito do governo eletrônico (e-Gov) e tem como objetivo emitir e gerir certificados digitais das autoridades da Presidência da República, ministros de estado, secretários-executivos e assessores jurídicos que se relacionem com a PR.
Para a Serasa, a tecnologia de certificação digital é o instrumento que viabiliza a inserção dos diversos agentes econômicos e cidadãos brasileiros em uma sociedade digital. A Serasa fornece a segurança dos certificados digitais para quase todos os grupos financeiros participantes do Sistema de Pagamentos Brasileiro (SPB).
O Serpro foi a primeira autoridade certificadora credenciada pela ICP-Brasil. A empresa busca desde a criação de seu Centro de Certificação Digital — CCD, em 1999, divulgar o uso dessa tecnologia para os vários segmentos com que trabalha.
A Receita Federal do Brasil (RFB) disponibiliza uma grande quantidade de serviços na Web, com o objetivo de simplificar ao máximo a vida dos contribuintes e facilitar o cumprimento espontâneo das obrigações tributárias. Por meio do serviço Receita222, a RFB presta atendimento aos contribuintes de forma interativa, via Internet, com uso de certificados digitais, garantindo a identificação inequívoca dos usuários.
A AC-Raiz, mantida pelo Instituto Nacional de Tecnologia da Informação — ITI, assina digitalmente os certificados das Autoridades Certificadoras de primeiro nível, por sua vez essas assinam os de segundo nível. As ACs são responsáveis pelos certificados emitidos pelas Autoridades de Registro — unidades que fazem o serviço de balcão, ou seja, o atendimento direto ao cidadão.
Observa-se que o modelo adotado pelo Brasil foi o de certificação com raiz única. Cabe ao ITI:
- Desempenhar o papel de Autoridade Certificadora Raiz — AC Raiz;
- Credenciar e descredenciar os demais participantes da cadeia;
- Supervisionar e fazer auditoria dos processos.
Do ponto de vista legal, a ICP-Brasil foi instituída pela Medida Provisória 2.200–2, de 24 de agosto de 2001. O mesmo regramento jurídico definiu as atribuições e a composição do Comitê Gestor da ICP-Brasil, responsável por aprovar as normas de atuação e funcionamento da Infra-estrutura.
A partir dessa medida foram elaborados os regulamentos que regem as atividades das entidades integrantes da ICP-Brasil, como as Resoluções do Comitê Gestor da ICP-Brasil, as Instruções Normativas e outros documentos, que podem ser consultados no site da ITI — www.iti.gov.br.
Tipos de certificado
Os certificados digitais são agrupados nos seguintes tipos:
Certificados de assinatura digital (A1, A2, A3 e A4): São os certificados usados para confirmação da identidade na web, correio eletrônico, transações on-line, redes privadas virtuais, transações eletrônicas, informações eletrônicas, cifração de chaves de sessão e assinatura de documentos com verificação da integridade de suas informações.
Certificados de sigilo (S1, S2, S3 e S4): São os certificados usados para cifração de documentos, bases de dados, mensagens e outras informações eletrônicas.
Certificado do tipo A1 e S1
É o certificado em que a geração das chaves criptográficas é feita por software e seu armazenamento pode ser feito em hardware ou repositório protegido por senha, cifrado por software. Sua validade máxima é de um ano, sendo a freqüência de publicação da LCR no máximo de 48 horas e o prazo máximo admitido para conclusão do processo de revogação de 72 horas.
Certificado do tipo A2 e S2
É o certificado em que a geração das chaves criptográficas é feita por software e as mesmas são armazenadas em Cartão Inteligente ou Token, ambos sem capacidade de geração de chave e protegidos por senha. As chaves criptográficas têm no mínimo 1024 bits. A validade máxima do certificado é de dois anos, sendo a freqüência de publicação da LCR no máximo de 36 horas e o prazo máximo admitido para conclusão do processo de revogação de 54 horas.
Certificado do tpo A3 e S3
É o certificado em que a geração e o armazenamento das chaves criptográficas são feitos em cartão inteligente ou token, ambos com capacidade de geração de chaves e protegidos por senha, ou hardware criptográfico aprovado pela ICP-Brasil. As chaves criptográficas têm no mínimo 1024 bits. A validade máxima do certificado é de três anos, sendo a freqüência de publicação da LCR no máximo de 24 horas e o prazo máximo admitido para conclusão do processo de revogação de 36 horas.
Certificado do tpo A4 e S4
É o certificado em que a geração e o armazenamento das chaves criptográficas são feitos em cartão inteligente ou token, ambos com capacidade de geração de chaves e protegidos por senha, ou hardware criptográfico aprovado pela ICP-Brasil. As chaves criptográficas têm no mínimo 2048 bits. A validade máxima do certificado é de três anos, sendo a freqüência de publicação da LCR no máximo de 12 horas e o prazo máximo admitido para conclusão do processo de revogação de 18 horas.
Formatos de certificados
PKCS — Public-Key Cryptography Standards
Especificações produzidas pelos Laboratórios RSA, em cooperação com desenvolvedores de sistemas de segurança do mundo, com o propósito de acelerar a implantação de criptografia de chave pública. Publicado pela primeira vez em 1991 como resultado de reuniões com um pequeno grupo de pioneiros da tecnologia de chaves públicas, os documentos PKCS tornaram-se amplamente referenciados e implementadas. Segue abaixo uma tabela que traz um sumário dos padrões PKCS:
Formato PEM — Privacy Enhaced Mail
É o formato mais comum fornecido por uma AC. Normalmente tem as seguintes extensões: “.pem”, “.crt”, “.cer” e “.key”. Eles são codificados em Base64 em formato ASCII e contém declarações “ — — — BEGIN CERTIFICATE — — -“ e “ — — — END CERTIFICATE — — -“. Os certificados de servidor, certificados intermediários, e as chaves particulares podem todos ser colocados no formato PEM. É um DER codificado em Base64.
Formato DER — Distinguished Encoding Rules
É uma forma binária de um certificado ao contrário do formato PEM ASCII. Às vezes tem a extensão “.der”, mas freqüentemente utiliza-se a extensão “.cer”. Como existem certificados com a extensão “.cer” tanto no formato DER quando no formato PEM, a única forma de saber de qual tipo se trata é abrir o arquivo e verificar se o mesmo é um ASCII ou um binário. Todos os tipos de certificados e chaves privadas podem ser codificados no formato DER. O DER é normalmente utilizado na plataforma Java.
Tipos de arquivos — Extensões
Os tipos a seguir se referem às extensões dos arquivos de certificados digitais:
- CER — Certificado CER codificado. Algumas vezes trata-se de uma seqüência de certificados;
- DER — Certificado DER codificado;
- PEM — Certificado codificado em Base64;
- P7B — Segue o padrão PKCS#7. Estrutura SignedData sem dados, apenas os certificados ou as LCRs;
- P7C — Mesmo que P7B;
- P12 — Segue o padrão PKCS#12, pode conter certificados públicos e chaves privadas (protegidas por senha);
- PFX — Mesmo que P12.
Como obter um certificado digital
Seguem os passos para conseguir um certificado digital:
- Escolher uma Autoridade Certificadora (AC) da ICP-Brasil;
- Solicitar no próprio portal da Internet da AC escolhida a emissão de certificado digital de pessoa física (ex: e-CPF) e/ou jurídica (ex: e-CNPJ). Os tipos mais comercializados são: A1 (validade de um ano — armazenado no computador) e A3 (validade de até três anos — armazenado em cartão ou token criptográfico). A AC também pode informar sobre aplicações, custos, formas de pagamento, equipamentos, documentos necessários e demais exigências;
- Para a emissão de um certificado digital é necessário que o solicitante vá pessoalmente a uma Autoridade de Registro (AR) da Autoridade Certificadora escolhida para validar os dados preenchidos na solicitação. Esse processo é chamado de validação presencial e será agendado diretamente com a AR que instruirá o solicitante sobre os documentos necessários. Quem escolher o certificado tipo A3 poderá receber na própria AR o cartão ou token com o certificado digital;
- A AC e/ou AR notificará o cliente sobre os procedimentos para baixar o certificado;
- Quando o seu certificado digital estiver perto do vencimento, este poderá ser renovado eletronicamente, uma única vez, sem a necessidade de uma nova validação presencial.
Cuidados
Primeiramente, deve-se lembrar que o certificado digital representa a “identidade” da pessoa no mundo virtual. Assim, é necessária a adoção de alguns cuidados para se evitar que outra pessoa utilize o seu certificado digital:
- A senha de acesso da chave privada e a própria chave privada não devem ser compartilhadas com ninguém;
- Caso o computador onde foi gerado o par de chaves criptográficas seja compartilhado com diversos usuários, não é recomendável o armazenamento da chave privada no disco rígido, pois todos os usuários terão acesso a ela, sendo melhor o armazenamento em disquete, smart card ou token;
- Caso a chave privada esteja armazenada no disco rígido de algum computador, deve-se protegê-lo de acesso não-autorizado, mantendo-o fisicamente seguro. Nunca deixe a sala aberta quando sair e for necessário deixar o computador ligado. Utilize também um protetor de tela com senha. Cuidado com os vírus de computador, eles podem danificar sua chave privada;
- Caso o software de geração do par de chaves permita optar entre ter ou não uma senha para proteger a chave privada, recomenda-se a escolha pelo acesso por meio de senha. Não usar uma senha significa que qualquer pessoa que tiver acesso ao computador poderá se passar pelo titular da chave privada, assinando contratos e movimentando contas bancárias. Em geral, é bem mais fácil usar uma senha do que proteger um computador fisicamente;
- Utilize uma senha de tamanho considerável, intercalando letras e números, uma vez que existem programas com a função de desvendar senhas. Deve-se evitar o uso de dados pessoais como nome de cônjuge ou de filhos, datas de aniversários, endereços, telefones, ou outros elementos relacionados com a própria pessoa. A senha nunca deve ser anotada, sendo recomendável sua memorização.
Certificação digital no projeto NF-e
Padrão de certificado digital
O manual de integração do contribuinte é claro quando ao padrão, quando informa:
O certificado digital utilizado no Projeto Nota Fiscal eletrônica será emitido por Autoridade Certificadora credenciada pela Infra-estrutura de Chaves Públicas Brasileira — ICP-Brasil, tipo A1 ou A3, devendo conter o CNPJ da pessoa jurídica titular do certificado digital no campo otherName OID =2.16.76.1.3.3.
Os certificados digitais serão exigidos em 2 (dois) momentos distintos para o projeto:
a. Assinatura de Mensagens: O certificado digital utilizado para essa função deverá conter o CNPJ do estabelecimento emissor da NF-e ou o CNPJ do estabelecimento matriz. Por mensagens, entenda-se: o Pedido de Autorização de Uso (Arquivo NF-e), o Pedido de Cancelamento de NF-e, o Pedido de Inutilização de Numeração de NF-e e demais arquivos XML que necessitem de assinatura. O certificado digital deverá ter o “uso da chave” previsto para a função de assinatura digital, respeitando a Política do Certificado.
b. Transmissão (durante a transmissão das mensagens entre os servidores do contribuinte e do Portal da Secretaria de Fazenda Estadual): O certificado digital utilizado para identificação do aplicativo do contribuinte deverá conter o CNPJ do responsável pela transmissão das mensagens, mas não necessita ser o mesmo CNPJ do estabelecimento emissor da NF-e, devendo ter a extensão Extended Key Usage com permissão de “Autenticação Cliente”.
Padrão de assinatura digital
Em relação ao padrão da assinatura digital o manual de integração do contribuinte nos informa:
As mensagens enviadas ao Portal da Secretaria de Fazenda Estadual são documentos eletrônicos elaborados no padrão XML e devem ser assinados digitalmente com um certificado digital que contenha o CNPJ do estabelecimento matriz ou o CNPJ do estabelecimento emissor da NF-e.
Os elementos abaixo estão presentes dentro do Certificado do contribuinte tornando desnecessária a sua representação individualizada no arquivo XML. Portanto, o arquivo XML não deve conter os elementos:
<X509SubjectName>
<X509IssuerSerial>
<X509IssuerName>
<X509SerialNumber>
<X509SKI>
Deve-se evitar o uso das TAGs abaixo, pois as informações serão obtidas a partir do Certificado do emitente:
<KeyValue>
<RSAKeyValue>
<Modulus>
<Exponent>
O Projeto NF-e utiliza um subconjunto do padrão de assinatura XML definido pelo W3C, que tem o seguinte layout:
A assinatura do Contribuinte na NF-e será feita na TAG <infNFe> identificada pelo atributo Id, cujo conteúdo deverá ser um identificador único (chave de acesso) precedido do literal “NFe” para cada NF-e conforme layout descrito no Anexo I do Manual de Integração do Contribuinte. O identificador único precedido do literal “#NFe” deverá ser informado no atributo URI da TAG <Reference>. Para as demais mensagens a serem assinadas, o processo é o mesmo, mantendo sempre um identificador único para o atributo Id na TAG a ser assinada.
Observe no exemplo abaixo que a TAG Signature e as suas TAGs filhas estão preenchidas:
A assinatura digital do documento eletrônico deverá atender aos seguintes padrões adotados:
a. Padrão de assinatura: XML Digital Signature, utilizando o formato Enveloped (http://www.w3.org/TR/xmldsig-core/);
b. Certificado digital: Emitido por AC credenciada no ICP-Brasil (http://www.w3.org/2000/09/xmldsig#X509Data);
c. Cadeia de Certificação: EndCertOnly (Incluir na assinatura apenas o certificado do usuário final);
d. Tipo do certificado: A1 ou A3 (o uso de HSM é recomendado);
e. Tamanho da Chave Criptográfica: Compatível com os certificados A1 e A3 (1024 bits);
f. Função criptográfica assimétrica: RSA (http://www.w3.org/2000/09/xmldsig#rsasha1);
g. Função de message digest: SHA-1 (http://www.w3.org/2000/09/xmldsig#sha1);
h. Codificação: Base64 (http://www.w3.org/2000/09/xmldsig#base64);
i. Transformações exigidas: Útil para realizar a canonização do XML enviado para realizar a validação correta da assinatura digital. São elas:
(1) Enveloped (http://www.w3.org/2000/09/xmldsig#enveloped-signature);
(2) C14N (http://www.w3.org/TR/2001/REC-xml-c14n-20010315).
Validação de assinatura digital pela SEFAZ
Para a validação da assinatura digital, seguem as regras que serão adotadas pelas Secretarias de Fazenda Estaduais:
- Extrair a chave pública do certificado;
- Verificar o prazo de validade do certificado utilizado;
- Montar e validar a cadeia de confiança dos certificados validando também a LCR (Lista de Certificados Revogados) de cada certificado da cadeia;
- Validar o uso da chave utilizada (Assinatura Digital) de tal forma a aceitar certificados somente do tipo A (não serão aceitos certificados do tipo S);
- Garantir que o certificado utilizado é de um usuário final e não de uma Autoridade Certificadora;
- Adotar as regras definidas pelo RFC 3280 para LCRs e cadeia de confiança;
- Validar a integridade de todas as LCR utilizadas pelo sistema;
- Prazo de validade de cada LCR utilizada (verificar data inicial e final).
A forma de conferência da LCR fica a critério de cada Secretaria de Fazenda Estadual, podendo ser feita de 2 (duas) maneiras: On-line ou Download periódico. As assinaturas digitais das mensagens serão verificadas considerando a lista de certificados revogados disponível no momento da conferência da assinatura.
O melhor certificado para uso com NF-e
Como vimos, existem vários tipos de certificados digitais. No entanto, no projeto na Nota Fiscal Eletrônica podem ser utilizados apenas os tipos A1 e A3. Desses tipos, qual a melhor escolha?
Certificado A3
Os certificados digitais A3 são portáveis. São armazenados em cartão inteligente (smart card), acessado através de uma leitora USB ou em token (dispositivo USB semelhante a um pen-drive). São válidos por três anos.
O certificado digital A3 oferece maior segurança, pois o par de chaves é gerado em hardware (cartão inteligente ou token) que não permite a exportação ou qualquer outro tipo de reprodução ou cópia da chave privada. A chave pública é enviada para a Autoridade Certificadora (AC), com a solicitação de emissão do certificado, enquanto a chave privada ficará armazenada no cartão ou token protegida por senha de acesso, impedindo tentativas de acesso de terceiros. Com o cartão inteligente ou o token, você pode transportar a sua chave privada de maneira segura, podendo utilizá-la onde você desejar.
Certificado A1
Certificados digitais A1 são válidos por um ano e ficam armazenados no próprio computador do cliente, ou seja, não são portáveis. É recomendável que esse tipo de certificado tenha uma cópia de segurança (backup) em qualquer mídia portável (CD, DVD, pen-drive, etc).
O certificado digital A1 tem o par de chaves pública/privada gerado em seu computador no momento da emissão do certificado. A chave pública é enviada para a Autoridade Certificadora (AC), com a solicitação de emissão do certificado, enquanto a chave privada fica armazenada no seu computador, devendo, obrigatoriamente, ser protegida por senha de acesso.
Esse tipo de certificado só poderá ser instalado no mesmo computador em que foi efetuada a solicitação.
Tecnicamente, dentro do processo de envio de NF-e para as Secretarias de Fazenda Estaduais, o certificado A1 possui um melhor desempenho se comparado ao certificado A3. O acesso ao meio físico do A3 (cartão ou token), depende do tempo de resposta do driver do fabricante do dispositivo, o que pode fazer o processo se tornar mais lento. Para empresas que possuem um volume de emissão de Notas considerável, é aconselhável o uso tipo A1.
e-CNPJ, e-PJ e e-NFe
A empresa poderá utilizar um dos seguintes tipos de certificado para trabalhar com a NF-e:
e-CNPJ
O e-CNPJ é emitido pelas Autoridades Certificadoras (AC) subordinadas à AC da Receita Federal do Brasil (AC-RFB). Assim, além das normas da ICP-Brasil, a emissão desse certificado segue também as normas estabelecidas pela AC-RFB, que exigem que o certificado digital fique sob a responsabilidade do responsável legal da entidade. No e-CNPJ, é o responsável legal que assina o Termo de Responsabilidade e é ele que deve manter, exclusivamente, a senha e a posse do certificado. Todos os serviços on-line fornecidos pela RFB na Internet podem ser executados com este certificado, tantos os serviços para pessoa jurídica, em relação à entidade, quanto os serviços para pessoa física, em relação ao responsável legal.
O e-CNPJ é vinculado ao CPF do responsável legal tributário cadastrado na Receita Federal e é utilizado em todos os serviços que exigem certificado digital de pessoa jurídica.
e-PJ
O e-PJ é emitido pelas demais AC do ICP-Brasil. Ele pode ser emitido para ficar sob responsabilidade de uma outra pessoa física, normalmente alguém da área de tecnologia da informação da empresa, autorizado formalmente pelo responsável legal da entidade. A autorização fica anexada ao processo, e é esta pessoa autorizada que assina o Termo de Responsabilidade e que fica de posse do certificado digital.
Do ponto de vista técnico, tanto o e-PJ quanto o e-CNPJ podem ser usados, indistintamente. A decisão entre um ou outro é uma questão de conveniência da empresa. A empresa pode utilizar apenas um certificado digital para assinar NF-e de todas as suas filiais, independente da UF em que estejam. Este certificado digital pode ser o da matriz ou de uma das filiais.
e-NFe
Criado especialmente para emitir notas fiscais eletrônicas (garantindo sua conformidade na Lei) e atribuir ao funcionário responsável da empresa a alçada necessária e restrita para emissão e gerenciamento de NF-e.
A menos que você seja o representante legal e ao mesmo tempo a pessoa que emite as notas ficais (faturista) de sua empresa é melhor ter dois certificados: um e-CNPJ para utilização nos serviços necessários a esse certificado e o e-NFe registrado em nome do faturista responsável pela emissão de Notas Fiscais Eletrônicas. Se você fornece o seu e-CNPJ para o faturista, ele terá uma procuração em branco de sua empresa. Com o e-NFe, suas atribuições ficam limitadas a representar a empresa no processo de emissão de documentos fiscais.
No entanto, cada faturista deve ter um e-NFe individual e, caso ele seja desligado da empresa, deve-se providenciar a revogação do certificado.
Passo a passo para a solicitação de um certificado digital
Você pode acessar a página de cada AR ou AC do ICP-Brasil vistos nos diagramas anteriores. Será mostrado a seguir o passo a passo que deve ser realizado caso você procure os Correios. Os Correios é uma AR vinculada a AC da Serasa RFB que é vinculada diretamente à AC-RFB.
No site dos Correios existem as informações necessárias para a emissão do Certificado Digital. Acesse o seguinte endereço:
http://www.correios.com.br/produtos_servicos/certificacaodigital/default.cfm
O passo a passo é mais ou menos o que está na imagem a seguir:
Abaixo do passo a passo os Correios ainda faz o seguinte alerta:
Os valores cobrados pelos Correios para a emissão do Certificado Digital estão entre os mais baratos.
Referências Bibliográficas
NF-eletrônica nacional
http://nf-eletronica.com/blog/
Portal da Nota Fiscal Eletrônica
http://www.nfe.fazenda.gov.br/portal
Ararat Synapse
http://www.synapse.ararat.cz/doku.php/start
Criptografia Numaboa
http://numaboa.com.br/criptografia/
Infra-Estrutura de Chaves Públicas Brasileira — ICP-Brasil
http://www.icpbrasil.gov.br
Instituto Nacional de Tecnologia da Informação
http://www.iti.gov.br
OpenSSL: The Open Source toolkit for SSL/TLS
http://www.openssl.org/
RSA, The Security Division of EMC, Security Solutions for Business Acceleration
http://www.rsa.com/
T2Ti ERP — Aprenda a Desenvolver um ERP
O T2Ti ERP 2.0 é feito em C#, Delphi, Java (RIA e Web) e Lazarus. São cinco projetos diferentes. Que tal aprender a desenvolver esse ERP totalmente grátis? Parece bom?
Acompanhe o canal da T2Ti no Youtube. A T2Ti está postando todos os vídeos do T2Ti ERP 2.0 no Youtube. São quase 300 módulos!
Os vídeos estão organizados em Playlists. Então se inscreva no canal e ative o sininho para receber atualizações sobre as postagens.