Certificado digital
Origem: Wikipédia, a enciclopédia livre.
Um certificado digital é um arquivo de computador que contém um conjunto de informações referentes a entidade para o qual o certificado foi emitido (seja uma empresa, pessoa física ou computador) mais a chave pública referente a chave privada que acredita-se ser de posse unicamente da entidade especificada no certificado.
Índice |
[editar] Uso
Um certificado digital normalmente é usado para ligar uma entidade a uma chave pública. Para garantir a integridade das informações contidas neste arquivo ele é assinado digitalmente, no caso de uma Infraestrutura de Chaves Públicas (ICP), o certificado é assinado pela Autoridade Certificadora (AC) que o emitiu e no caso de um modelo de Teia de Confiança (Web of trust) como o PGP o certificado é assinado pela própria entidade e assinado por outros que dizem confiar naquela entidade. Em ambos os casos as assinaturas contidas em um certificado são atestamentos feitos por uma entidade que diz confiar nos dados contidos naquele certificado.
A troca de chaves simétricas entre usuários para comunicação segura tornou-se impraticável, a criptografia de chaves públicas provê um meio de solucionar este problema. Resumindo, se Alice deseja que outros tenham a capacidade de enviar-lhe mensagens secretas, tudo que ela precisa fazer é publicar a sua chave pública. Qualquer pessoa que possua a chave pública de Alice poderá enviar-lhe informações secretas. Infelizmente, Davi também pode publicar uma chave pública (para a qual Davi sabe a chave privada relacionada) alegando ser a chave pública de Alice e assim tendo a capacidade de decifrar as mensagens secretas destinadas a Alice mas que foram cifradas pela chave pública de Davi. Mas se Alice possuir um certificado digital com a sua chave pública e este certificado for assinado digitalmente por João, qualquer pessoa que confie em João poderá sentir-se confortável em confiar no certificado de Alice. Em uma ICP, João será uma AC, a qual é confiada por todos os participantes daquela ICP. Em um modelo de Teia de confiança, João poderá ser qualquer usuário, e confiar ou não em um atestamento de um usuário que diz que uma chave pública específica pertence a Alice, está a cargo da pessoa que deseja enviar a mensagem para Alice.
Em situações reais, Alice pode não conhecer a AC de Bob (talvez seus certificados não foram emitidos pela mesma AC - se o certificado de Alice foi emitido pela AC da SERASA e o de Bob pela AC da SERPRO), então o certificado de Bob, também pode incluir a chave pública da sua AC assinada por uma AC de "maior nível" (Ex. A AC Raiz da cinnmkld que emitiu os certificados das ACs intermediárias SERASA e SERPRO). Este processo leva a uma hierarquia de certificados, e para relacionamentos de confiança ainda mais complexos. A maioria das vezes ICP se refere ao software que administra os certificados. Em sistemas ICP X.509, a hierarquia de certificados é sempre baseada em uma árvore de cima à baixo, com o certificado raiz no topo, representando a AC "principal" que não precisa ser assinado por um terceiro confiável (João), o certificado raiz é auto assinado.
Um certificado pode ser revogado se for descoberto que a sua chave privada relacionada foi comprometida, ou se o seu relacionamento (entre uma entidade e a sua chave pública) embutida no certificado estiver incorreta ou foi mudada; isto poderá ocorrer, por exemplo, se uma pessoa muda de nome ou CPF. Uma revogação não é comum, mas a possibilidade da ocorrência significa que quando um certificado é confiável, o usuário deverá sempre checar a sua validade. Isto pode ser feito comparando o certificado com uma Lista de certificados revogados (LCR). Seu objetivo é mostrar todos os certificados revogados ou cancelados no âmbito daquela AC. Garantir que a lista está correta e atualizada é a parte mais importante em uma ICP centralizada, o que as vezes não é feito corretamente. Para a LCR] ser efetiva, precisa estar disponível o tempo todo para qualquer um que a precisar e ser atualizada frequentemente. A outra maneira de conferir a validade de um certificado, é fazer uma consulta a AC usando o Online Certificate Status Protocol (OCSP) para saber o estado de um certificado específico.
Um certificado normalmente inclui:
- Informações refentes a entidade para o qual o certificado foi emitido (nome, email, CPF/CNPJ, PIS etc.)
- A chave pública referente a chave privada de posse da entidade especificada no certificado
- O período de validade
- A localização do "centro de revogação" (uma URL para download da CRL, ou local para uma consulta OCSP)
- A(s) assinatura(s) da(s) AC/entidade(s) que afirma que a chave pública contida naquele certificado confere com as informações contidas no mesmo
O padrão mais comum para certificados digitais no âmbito de uma ICP é o ITU-T X.509. O X.509 foi adaptado para a Internet pelo grupo da Internet Engineering Task Force (IETF) PKIX.
[editar] A anatomia de um certificado X.509
Um certificado padrão X.509 contém os seguintes campos
- Versão - Contem a versão do certificado X.509, atualmente versão 3
- Número serial - Todo certificado possui um, não é globalmente único, mas único no âmbito de uma AC, ac LCRs usam o serial para apontar quais certificados se encontram revogados
- Tipo de algoritmo - Contem um identificador do algoritmo criptográfico usado pela AC para assinar o certificado juntamente com o tipo de função de hash criptográfica usada no certificado
- Nome do titular - Nome da entidade para o qual o certificado foi emitido
- Nome do emitente - Autoridade Certificadora que emitiu/assinou o certificado
- Período de validade - Mostra o período de validade do certificado no formato "Não antes" e "Não depois" (Ex. "Não antes de 05/03/2006 - 14:35:02" "Não depois de 05/03/2007 - 14:03:2006")
- Informaçõs de chave pública da entidade
- Algoritmo de chave pública
- Chave pública
- Assinatura da AC - A garantia que a AC provê sobre a veracidade das informações contidas neste certificado de acordo com as políticas da AC
- Identificador da chave do titular - É uma extensão do X.509 que possui um identificador numérico para a chave pública contida neste certificado, especialmente útil para que programas de computador possam se referir a ela
- Identificador da chave do emitente - A mesma idéia mencionada anteriormente, só que se referindo a chave pública da AC que emitiu o certificado
- Atributos ou extensões - A vasta maioria dos certificados X.509 possui campos chamados extensões (OID) que proveêm algumas informações extras, como cadastros adicionais do titular e do emitente, especificações de propósito do certificado e etc.
[editar] Criando um certificado digital
Basicamente é assim:
- 1 - A entidade que deseja emitir o certificado gera um par de chaves criptográficas (uma chave pública e uma chave privada).
- 2 - Em seguida a entidade gera um arquivo chamado Certificate Signing Request (CSR) composto pela chave pública da entidade e mais algumas informações que a AC requer sobre a entidade e é assinado digitalmente pela chave privada da própria entidade e envia o CSR cifrado pela chave pública da AC.
- 3 - Então dependendo das políticas da AC é necessário ou não o comparecimento físico de um invíduo responsável por aquela entidade. Qualquer certificado que esteja no âmbito da ICP-BR é necessário que a entidade compareça pessoalmente a uma Autoridade Registradora (AR) (ou em alguns casos a AR comparece até o cliente) para confirmação dos dados contidos no CSR e se necessário o acréscimo de mais algum dado da entidade ao certificado.
- 4- Finalmente o CSR é "transformado" em um certificado digital assinado pela AC e devolvido ao cliente.
- 5- Então o browser/aplicativo de gerência de certificados combina o certificado + a chave privada criando o conceito de "Identidade digital", normalmente salvando a chave privada em um cofre protegido por uma frase senha que será necessária para o posterior acesso a chave privada.
Os maiores browsers existentes hoje em dia como Internet Explorer, Firefox e Mozilla fazem a parte do processo que depende do cliente (até o momento de enviar o CSR à AC) automaticamente. O processo também pode ser feito manualmente usando alguma biblioteca criptográfica como o OpenSSL por exemplo.
[editar] Obtendo um certificado digital
A forma mais simples de se obter um certificado digital, é por exemplo emitindo em algum portal de emissão de certificados digitais gratuítos como o projeto brasileiro FreeICP que emite certificados de vida curta (3 meses) chamados Entry-Level mas que podem ser extendidos baseados em um sistema de escores de confiança (um tipo de junção do X.509 com o Web of trust) a até 6 meses, passando a possuir um certificado Veryfied-Idendity que lhe provê algumas utilidades a mais e uma maior confiança, mas lembre-se que não há validade jurídica para este tipo de certificado; leia a Declaração de Prática de Certificação da FreeICP para mais detalhes (toda a AC deve possuir e disponibilizar uma DPC).
A Medida Provisória (MP) nº 2.200-2, de 24 de agosto de 2001 define as regras para a criação da ICP-BR e da DPC associada bem como a utilização de certificados digitais no Brasil, aspectos legais e aspectos necessários para uma entidade se tornar uma AC Intermediária (ou seja uma Autoridade Certificadora em um nível hierárquico abaixo da AC Raiz da ICP-BR) e assim emitir certificados digitais para outras entidades garantindo autencidade, integridade, não repúdio e validade jurídica de trâmites eletrônicos por essas entidades realizados.
[editar] O que fazer com o seu certificado digital
Estes são só alguns exemplos do que você pode fazer com o seu certificado digital
- Com a ajuda de um programa capaz de realizar operações de criptografia de chaves públicas como o OpenSSL
- Assinar digitalmente qualquer arquivo de computador seja um documento, e-mail ou programa, no caso de um documento, tendo a mesma validade jurídica de um documento assinado à mão.
- Criptografar um arquivo de computador arbitrário para que somente a(s) pessoa(s) destinada(s) tenha capacidade de decifrar o que se está querendo ocultar.
- Autenticação de cliente por certificado em um servidor HTTPS (Apache, IIS).
- No caso de um certificado de servidor
- O certificado pode ser usado para negociar uma conexão segura HTTPS com garantia de autenticidade para o cliente
- Caso o cliente possua um certificado compatível, ele pode apresenta-lo para o servidor e assim autenticar-se sem a necessidade do servidor armazenar a senha do usuário (usando o esquema de desafio-resposta), bastando apenas o servidor conter um banco de dados com os certificados dos clientes.
- Certificados tipo e-CPF e e-CNPJ emitidos por ACs autorizadas pela Receita Federal (AC SRF) podem ser usados para operações como
- Possibilidade às pessoas físicas consultar e atualizar seus dados cadastrais e de endereço.
- Possibilita às pessoas jurídicas consultar e emitir o comprovante de inscrição e de situação cadastral de sua empresa.
- Possibilita ao contribuinte certificado acessar e gerenciar as mensagens enviadas pela SRF para sua caixa postal.
[editar] Outros usos do certificado digital
- Assinatura de Códigos Executáveis (.exe, applet, etc..)
- Autenticação de Tempo: Selo Cronológico
[editar] Ver também
[editar] Ligações externas
- OpenSSL
- Projeto FreeICP
- Thawte Security
- CACert
- ICP-Brasil/ITI
- Media Provisória nº 2.200-2, de 24 de agosto de 2001
- e-CAC Receita Federal