CERTIFICAÇÃO DIGITAL
O que é um Certificado Digital?
Um Certificado Digital é um arquivo de computador que contém um conjunto de informações utilizadas em procedimentos que necessitam de integridade, autenticidade e confidencialidade como comércio, emissão de documentos, informações sigilosas e etc.

Quais são os tipos de certificados digitais?
A ICP-Brasil oferece duas categorias de certificados digitais: A e S, sendo que cada uma se divide em quatro tipos: A1, A2, A3 e A4; S1, S2, S3 e S4. A categoria A é direcionada para fins de identificação e autenticação, enquanto que o tipo S é direcionado a atividades sigilosas.

A1 e S1: Geração das chaves é feita por software; chaves de tamanho mínimo de 1024 bits; armazenamento em dispositivo de armazenamento (como um HD); validade máxima de um ano;

A2 e S2: Geração das chaves é feita por software; chaves de tamanho mínimo de 1024 bits; armazenamento em cartão inteligente (com chip) ou token (dispositivo semelhante a um pendrive); validade máxima de dois anos;

A3 e S3: Geração das chaves é feita por hardware; chaves de tamanho mínimo de 1024 bits; armazenamento em cartão inteligente ou token; validade máxima de três anos;

A4 e S4: Geração das chaves é feita por hardware; chaves de tamanho mínimo de 2048 bits; armazenamento em cartão inteligente ou token; validade máxima de três anos.

Os certificados A1 e A3 são os mais utilizados, sendo que o primeiro é geralmente armazenado no computador do solicitante, enquanto que o segundo é guardado em cartões inteligentes (smartcards) ou tokens protegidos por senha.

Qual a diferença entre "e-CPF", "e-CNPJ" e "e-Nfe"?
O e-CPF é um certificado digital direcionado a pessoas físicas, sendo uma espécie de extensão do CPF (Cadastro de Pessoa Física), enquanto que o e-CNPJ é um certificado digital que se destina a empresas ou entidades, de igual forma, sendo um tipo de extensão do CNPJ (Cadastro Nacional da Pessoa Jurídica).

Ao adquirir um e-CPF, uma pessoa tem acesso pela internet a diversos serviços da Receita Federal, muitos dos quais até então disponíveis apenas em postos de atendimento. É possível, por exemplo, transmitir declarações de imposto de renda de maneira mais segura, consultar detalhes das declarações, pesquisar situação fiscal, corrigir erros de pagamentos, entre outros. No caso do e-CNPJ, os benefícios são semelhantes.

O e-NFe é o Certificado Digital utilizado somente para emissão da NF-e podendo ser usado pelos funcionários da empresa e não apenas pelo seu representante legal (e-CNPJ). Tanto e-NFe como também o e-CNPJ podem ser usados para validação das NF-e.

O "e-CPF", "e-CNPJ", e o "e-NFe" estão disponíveis nos tipos A1 e A3.

Sobre a legalidade do Certificado Digital
A Medida Provisória nº 2.200-2, de 24 de agosto de 2001 define as regras para a criação da ICP-Brasil (Infra-estrutura de Chaves Públicas ou, em inglês, Public Key Infrastructure - PKI) bem como a utilização de certificados digitais, aspectos legais e aspectos necessários para uma entidade se tornar uma AC Intermediária e assim emitir certificados digitais para outras entidades garantindo autenticidade, integridade, não repúdio e validade jurídica de trâmites eletrônicos por essas entidades realizados.

A Lei 11.419 de 19 de dezembro de 2006 fundamenta os processos judiciais eletrônicos no Brasil. Nela, existe o artigo 20 do capítulo 4, que altera o artigo 38 do Código de Processo Civil (Lei 5.869, de 11 de janeiro de 1973) de forma que a autenticação por certificados digitais também seja legalmente válida.

Cada país estabelece as suas normas para a legalidade do certificado digital. No Brasil contamos com a ICP-Brasil e o ITI (Instituto Nacional de Tecnologia da Informação).

Como obter um Certificado Digital?
O primeiro passo é procurar uma Autoridade Certificadora (AC) ou uma Autoridade de Registro (AR). Uma AC tem a função de associar uma identidade a uma chave e "inserir" esses dados em um certificado digital. O solicitante deve comprovar sua identificação presencialmente. Uma AR tem função intermediária, ela pode solicitar certificados digitais a uma AC, mas não pode emitir esse documento diretamente.

Como é a hierarquia institucional da ICP-Brasil?
A ICP-Brasil trabalha com uma hierarquia onde a AC-Raiz, isto é, a instituição que gera as chaves das ACs e que regulamenta as atividades de cada uma, é o Instituto Nacional de Tecnologia da Informação (ITI).

Serpro, Caixa Econômica Federal, Serasa, Receita Federal, Certisign, Imprensa Oficial, AC-JUS (Autoridade Certificadora da Justiça), ACPR (Autoridade Certificadora da Presidência da República), Casa da Moeda do Brasil...

São essas instituições que devem ser procuradas por quem deseja obter certificado digital legalmente reconhecido no Brasil. Note que cada uma dessas entidades pode ter critérios distintos para a emissão de certificados, o que inclusive resulta em preços diferentes, portanto, é conveniente ao interessado saber qual AC é mais adequada às suas atividades. Repare também que essas entidades podem ter ACs "secundárias" ou ARs ligadas a elas.

O que é Criptografia?
Do grego kryptós, "escondido", e gráphein, "escrita" é a técnica pela qual a informação é transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas pelo destinatário (receptor) após ser decodificada.

Como funciona a Certificação Digital?
A Certificação Digital funciona com base numa (ou mais) Chave Criptográfica que permite somente ao emissor e ao receptor o entendimento da informação.

O que é Assinatura Digital?
É o mecanismo eletrônico que faz uso da criptografia (Chave Criptográfica) para que somente emissor e receptor façam uso das informações transmitidas, não permitindo que outros alterem este conteúdo. Veja "Como funcionam as Chaves Assimétricas (Chaves Públicas)?".

Como funcionam as Chaves Simétricas?
A criptografia simétrica baseia-se em dois componentes: um algoritmo e uma chave. Um algoritmo é uma transformação matemática. Ele converte uma informação em uma informação cifrada e vice-versa. Quando o emitente cifra uma informação, ele utiliza um algoritmo de ciframento e o receptor utiliza o algoritmo de deciframento correspondente. Antigamente, a segurança do ciframento era baseada somente no sigilo do algoritmo criptográfico. Se um intruso descobrisse o algoritmo utilizado poderia decifrar todas as informações. Atualmente utiliza-se em conjunto a "Chave Criptográfica" que é uma cadeia de bits utilizada em conjunto com um algoritmo. Cada chave distinta faz com que o algoritmo trabalhe de forma diferente. Existem algoritmos que dispensam o uso de chaves, mas a utilização da chave oferece duas importantes vantagens. A primeira é permitir a utilização do mesmo algoritmo criptográfico para a comunicação com diferentes receptores, apenas trocando a chave. A segunda vantagem é permitir trocar facilmente a chave no caso de uma violação, mantendo o mesmo algoritmo. A segurança agora reside na chave e não mais no algoritmo, mesmo que o intruso conheça o algoritmo não conseguirá decifrar a informação. A chave deverá ser de conhecimento somente do emissor e do receptor.

O número de possibilidades de uma chave depende do tamanho (número de bits) da chave. Uma chave de 8 bits permite 256, de 16 bits 65.536, de 64 bits 18.446.744.073.709.551.616 combinações de diferentes. Quanto maior o tamanho da chave, mais difícil será quebrá-la, pois aumentamos o número de combinações. Alguns algoritmos simétricos:
Algoritmo Simétrico Bits Descrição
DES 56 O Data Encryption Standard (DES) é o algoritmo simétrico mais disseminado no mundo. Foi criado pela IBM em 1977 e, apesar de permitir cerca de 72 quadrilhões de combinações (256), seu tamanho de chave (56 bits) é considerado pequeno, tendo sido quebrado por "força bruta" em 1997 em um desafio lançado na Internet.
Triple DES 112 ou 168 O 3DES é uma simples variação do DES, utilizando-o em três ciframentos suscessivos, podendo empregar versão com duas ou com três chaves diferentes. É seguro, porém muito lento para ser um algoritmo padrão.
IDEA 128 O International Data Encryption Algorithm  foi criado em 1991 por James Massey e Xuejia Lai e possui patente da suíça ASCOM Systec. O algoritmo é estruturado seguindo as mesmas linhas gerais do DES. Mas na maioria dos microprocessadores, uma implementação por software do IDEA é mais rápida do que uma implementação por software do DES. O IDEA é utilizado principalmente no mercado financeiro e no PGP, o programa para criptografia de e-mail pessoal mais disseminado no mundo.
Blowfish 32 a 448 Algoritmo desenvolvido por Bruce Schneier, que oferece a escolhe entre maior segurança ou desempenho através de chaves de tamanho variável. O autor aperfeiçoou-o no Twofish, concorrente ao AES.
RC2 8 a 1024 Projetado por Ron Rivest (o R da empresa RSA Data Security Inc.) e utilizado no protocolo S/MIME, voltado para criptografia de e-mail corporativo. Também possui chave de tamanho variável. Rivest também é o autor do RC4, RC5 e RC6, este último concorrente ao AES.
Apesar da simplicidade, existem diversos problemas na criptografia simétrica:
- Cada emissor-receptor necessita de uma chave, com n usuários precisamos de n² chaves, dificultando a gerência das chaves;
- A chave deve ser enviada ao receptor e armazenada de forma segura, o que nem sempre é garantido;
- Não garante a identidade de emissor e receptor (autenticidade e não-repudiação).

Como funcionam as Chaves Assimétricas (Chaves Públicas)?
Está baseada no conceito de par de chaves: uma chave privada e uma chave pública. Qualquer uma das chaves é utilizada para cifrar uma informação e a outra para decifrá-la. As informações cifradas com uma das chaves do par só podem ser decifradas com a outra chave correspondente. A chave privada deve ser mantida secreta, enquanto a chave pública disponível para qualquer interessado.

De forma simplificada funciona assim: O receptor gera uma chave de ciframento e uma de deciframento. Mantêm secreta a chave de deciframento (chave privada). Torna público a chave de ciframento (chave pública). O emissor fará o ciframento da informação, utilizando a chave pública, que será decifrada pela chave privada do receptor. A segurança está na chave privada que só o receptor possui. Mesmo que um intruso consiga ter a informação e a chave pública sem a chave privada ele nada fará porque não conseguirá decifrar a mensagem. Como a chave pública estará amplamente disponível se torna desnecessário o envio de chaves como é feito no modo simétrico. A confidencialidade da informação é garantida, enquanto a chave privada (deciframento) estiver de posse somente do receptor da informação. Alguns algoritmos assimétricos:
Algoritmo Descrição
RSA O RSA é um algoritmo assimétrico que possui este nome devido a seus inventores: Ron Rivest, Adi Shamir e Len Adleman, que o criaram em 1977 no MIT. É, atualmente, o algoritmo de chave pública mais amplamente utilizado, além de ser uma das mais poderosas formas de criptografia de chave pública conhecidas até o momento. O RSA utiliza números primos.

A premissa por trás do RSA é que é fácil multiplicar dois números primos para obter um terceiro número, mas muito difícil recuperar os dois primos a partir daquele terceiro número. Isto é conhecido como fatoração. Por exemplo, os fatores primos de 3.337 são 47 e 71. Gerar a chave pública envolve multiplicar dois primos grandes; qualquer um pode fazer isto. Derivar a chave privada a partir da chave pública envolve fatorar um grande número. Se o número for grande o suficiente e bem escolhido, então ninguém pode fazer isto em uma quantidade de tempo razoável. Assim, a segurança do RSA baseia-se na dificuldade de fatoração de números grandes. Deste modo, a fatoração representa um limite superior do tempo necessário para quebrar o algoritmo. 

Uma chave RSA de 512 bits foi quebrada em 1999 pelo Instituto Nacional de Pesquisa da Holanda, com o apoio de cientistas de mais 6 países. Levou cerca de 7 meses e foram utilizadas 300 estações de trabalho para a quebra. Um fato preocupante: cerca de 95% dos sites de comércio eletrônico utilzam chaves RSA de 512 bits.
ElGamal O ElGamal é outro algoritmo de chave pública utilizado para gerenciamento de chaves. Sua matemática difere da utilizada no RSA, mas também é um sistema comutativo. O algoritmo envolve a manipulação matemática de grandes quantidades numéricas. Sua segurança advém de algo denominado problema do logaritmo discreto. Assim, o ElGamal obtém sua segurança da dificuldade de se calcular logaritmos discretos em um corpo finito, o que lembra bastante o problema da fatoração.
Diffie-Hellman Também baseado no problema do logaritmo discreto, é o criptosistema de chave pública mais antigo ainda em uso. O conceito de chave pública aliás foi introduzido pelos autores deste criptosistema em 1976. Contudo, ele não permite nem ciframento nem assinatura digital. O sistema foi projetado para permitir a dois indivíduos entrarem em um acordo ao compartilharem um segredo tal como uma chave, muito embora eles somente troquem mensagens em público.
Curvas Elípticas Em 1985, Neal Koblitz e V. S. Miller propuseram de forma independente a utilização de curvas elípticas para sistemas criptográficos de chave pública. Eles não chegaram a inventar um novo algoritmo criptográfico com curvas elípticas sobre corpos finitos, mas implementaram algoritmos de chave pública já existentes, como o algoritmo de Diffie e Hellman, usando curvas elípticas. Assim, os sistemas criptográficos de curvas elípticas consistem em modificações de outros sistemas (o ElGamal, por exemplo), que passam a trabalhar no domínio das curvas elípticas, em vez de trabalharem no domínio dos corpos finitos. Eles possuem o potencial de proverem sistemas criptográficos de chave pública mais seguros, com chaves de menor tamanho. 

Muitos algoritmos de chave pública, como o Diffie - Hellman, o ElGamal e o Schnorr podem ser implementados em curvas elípticas sobre corpos finitos. Assim, fica resolvido um dos maiores problemas dos algoritmos de chave pública: o grande tamanho de suas chaves. Porém, os algoritmos de curvas elípticas atuais, embora possuam o potencial de serem rápidos, são em geral mais demorados do que o RSA.
Uma das grandes vantagens do uso das chaves assimétricas é o uso em conjunto da assinatura digital que permite garantir a autenticidade e a integridade de quem envia a mensagem. A assinatura digital se processa da seguinte forma:

O emissor cifra a informação com sua chave privada e o receptor a decifra com a chave pública do emissor. Se alguém modificar um bit o sistema não reconhecerá como válida a informação. Fica assim garantida a autenticidade, integridade e não-repudiação da informação, mas não é confidencial. Qualquer intruso poderá visualizar a informação. Veja que é preciso utilizar este processo (assinatura digital) em conjunto com o processo da chave assimétrica para obter também confidencialidade. Alguns algoritmos para assinatura digital:
Algoritmo Descrição
RSA Como já mencionado, o RSA também é comutativo e pode ser utilizado para a geração de assinatura digital. A matemática é a mesma: há uma chave pública e uma chave privada, e a segurança do sistema baseia-se na dificuldade da fatoração de números grandes.
ElGamal Como o RSA, o ElGamal também é comutativo, podendo ser utilizado tanto para assinatura digital quanto para gerenciamento de chaves; assim, ele obtém sua segurança da dificuldade do cálculo de logaritmos discretos em um corpo finito.
DSA O Digital Signature Algorithm, unicamente destinado a assinaturas digitais, foi proposto pelo NIST em agosto de 1991, para utilização no seu padrão DSS (Digital Signature Standard). Adotado como padrão final em dezembro de 1994, trata-se de uma variação dos algoritmos de assinatura ElGamal e Schnorr. Foi inventado pela NSA e patenteado pelo governo americano.

A importância da Função Hashing.
A assinatura digital através da criptografia assimétrica ou de chave pública não pode ser empregada na prática (acima descrevemos didaticamente o processo). Os processos assimétricos são 1.000 vezes mais lentos que os simétricos. Se torna implaticável utilizar puramente algoritmos de chave pública para assinaturas digitais. Utilizamos então a função hashing, também chamada de Message Digest, One-Way Hash Function, Função de Condensação ou Função de Espalhamento Unidirecional. Esta função gera um valor fixo pequeno, o digest ou valor hash, a partir de uma entrada de tamanho variável (a informação antes de ser cifrada). O digest está para a informação cifrada como o dígito verificador está para o número do CPF. Qualquer alteração na informação será rapidamente detectada. Funções hashing empregadas em processos criptográficos:
Funções Descrição
MD5 É uma função de espalhamento unidirecional inventada por Ron Rivest, do MIT, que também trabalha para a RSA Data Security. A sigla MD significa Message Digest. Este algoritmo produz um valor hash de 128 bits, para uma mensagem de entrada de tamanho arbitrário. Foi inicialmente proposto em 1991, após alguns ataques de criptoanálise terem sidos descobertos contra a função Hashing prévia de Rivest: a MD4. O algoritmo foi projetado para ser rápido, simples e seguro. Seus detalhes são públicos, e têm sido analisados pela comunidade de criptografia. Foi descoberta uma fraqueza em parte do MD5, mas até agora ela não afetou a segurança global do algoritmo. Entretanto, o fato dele produzir uma valor hash de somente 128 bits é o que causa maior preocupação; é preferível uma função Hashing que produza um valor maior.
SHA-1 O Secure Hash Algorithm, uma função de espalhamento unidirecional inventada pela NSA, gera um valor hash de 160 bits, a partir de um tamanho arbitrário de mensagem. O funcionamento interno do SHA-1 é muito parecido com o observado no MD4, indicando que os estudiosos da NSA basearam-se no MD4 e fizeram melhorias em sua segurança. De fato, a fraqueza existente em parte do MD5, citada anteriormente, descoberta após o SHA-1 ter sido proposto, não ocorre no SHA-1. Atualmente, não há nenhum ataque de criptoanálise conhecido contra o SHA-1. Mesmo o ataque da força bruta torna-se impraticável, devido ao seu valor hash de 160 bits. Porém, não há provas de que, no futuro, alguém não possa descobrir como quebrar o SHA-1.
MD2 e MD4 O MD4 é o precursor do MD5, tendo sido inventado por Ron Rivest. Após terem sido descobertas algumas fraquezas no MD4, Rivest escreveu o MD5. O MD4 não é mais utilizado. O MD2 é uma função de espalhamento unidirecional simplificada, e produz um hash de 128 bits. A segurança do MD2 é dependente de uma permutação aleatória de bytes. Não é recomendável sua utilização, pois, em geral, é mais lento do que as outras funções hash citadas e acredita-se que seja menos seguro.

Protocolos Criptográficos (simétricos e assimétricos).
Na prática utiliza-se um processo híbrido composto de: simétria, assimétria e hashing.
Criptografia Simétrica. Criptografia Assimétrica.
Rápida. Lenta.
Gerência e distribuição das chaves é complexa. Gerência e distribuição simples.
Não oferece assinatura digital Oferece assinatura digital.
Este processos criptográficos viabilizam a troca de informações eletrônicas com: disponibilidade, sigilo, controle de acesso, autenticidade, integridade e não-repúdio.
Protocolo Descrição
IPSec Padrão de protocolos criptográficos desenvolvidos para o IPv6. Realiza também o tunelamento de IP sobre IP. É composto de três mecanismos criptográficos: Authentication Header (define a funçãoHashing para assinatura digital), Encapsulation Security Payload (define o algoritmo simétrico para ciframento) e ISAKMP (define o algoritmo assimétrico para Gerência e troca de chaves de criptografia). Criptografia e tunelamento são independentes. Permite Virtual Private Network fim-a-fim. Futuro padrão para todas as formas de VPN.
SSL e TLS Oferecem suporte de segurança criptográfica para os protocolos NTTP, HTTP, SMTP e Telnet. Permitem utilizar diferentes algoritmos simétricos, message digest (hashing) e métodos de autenticação e gerência de chaves (assimétricos).
PGP Inventado por Phil Zimmermman em 1991, é um programa criptográfico famoso e bastante difundido na Internet, destinado a criptografia de e-mail pessoal. Algoritmos suportados: hashing: MD5, SHA-1, simétricos: CAST-128, IDEA e 3DES, assimétricos: RSA, Diffie-Hellman/DSS. Versão mais recente: 6.5.3.
S/MIME O S/MIME (Secure Multipurpose Internet Mail Extensions) consiste em um esforço de um consórcio de empresas, liderado pela RSADSI e pela Microsoft, para adicionar segurança a mensagens eletrônicas no formato MIME. Apesar do S/MIME e PGP serem ambos padrões Internet, o S/MIME deverá se estabelecer no mercado corporativo, enquanto o PGP no mundo do mail pessoal.
SET O SET é um conjunto de padrões e protocolos, para realizar transações financeira seguras, como as realizadas com cartão de crédito na Internet. Oferece um canal de comunicação seguro entre todos os envolvidos na transação. Garante autenticidade X.509v3 e privacidade entre as partes.
X.509 Recomendação ITU-T, a especificação X.509 define o relacionamento entre as autoridades de certificação. Faz parte das séries X.500 de recomendações para uma estrutura de diretório global, baseada em nomes distintos para localização. Utilizado pelo S/MIME, IPSec, SSL/TLS e SET. Baseado em criptografia com chave pública (RSA) e assinatura digital (com hashing).