# Infraestrutura de chaves públicas

Uma Infraestrutura de Chaves Públicas, cuja sigla é PKI (do inglês public key infrastructure; ou ICP, em português), é um conjunto de técnicas, regras, políticas, hardware, software e procedimentos necessários para emitir, gerenciar, usar, armazenar e revogar certificados digitais e gerenciar criptografias de chaves pública. O propósito do PKI é facilitar a segurança da informação das transferências por meio eletrônico, como transações por e-commerce, internet banking ou emails confidenciais. O PKI é necessário em atividades em que senhas são um método inadequado de autenticação e provas mais rigorosas são requisitadas para confirmar a identidade das partes envolvidas na comunicação e para validar a informação transferida.
Na criptografia, um PKI é um arranjo que vincula chaves públicas com suas respectivas entidades de identidade (como pessoas ou organizações). A vinculação é estabelecia através de um processo de registro e emissão de certificados com e por uma autoridade de certificação (CA, do inglês certificate authority). Dependendo do nível de garantia da vinculação, se pode fazer um processo automatizado ou sob supervisão humana. Quando emitido para a rede, é necessário usar um protocolo de gestão de certificados, como o CMP.
O papel do PKI que pode ser delegado pela CA para garantir a validade e a integridade do registro é nomeado de autoridade de registro (RA, do inglês registration authority). Basicamente, um RA é responsável por aceitar pedidos de certificados digitais e autenticar a entidade que fez o pedido. O RFC 3647 da Internet Engineering Task Force define um RA como "uma entidade que é responsável por uma ou mais das seguintes funções: a identificação e autenticação dos solicitantes de certificado, a aprovação ou rejeição do solicitantes de certificado, revogar ou suspender certificados em determinadas circunstâncias, processar pedidos dos inscritos para revogar ou suspender seus próprios certificados e/ou aprovar ou rejeitar pedidos de inscritos para renovar ou reemitir certificados. Os RA, entretanto, não assinam ou emitem certificados". Enquanto a Microsoft pode ter se referido uma CA subordinada como uma RA, isso é incorreto de acordo com os padrões X.509 PKI. RA não devem ter autoridade de um CA para assinar e devem, portanto, apenas gerenciar as revogações e autorizações de certificados. Então, no caso dos PKI da Microsoft, a funcionalidade de um RA é provida tanto pelo website da Microsoft Certificate Services, quanto através do Active Directory Certificate Services que assegura o CA da Microsoft Enterprise e políticas de certificado através de modelos de certificados e gerencia as inscrições (manuais ou automáticas) dos certificados. No caso da Microsoft Standalone CAs, a função dos RA não existem, uma vez que todos os procedimentos que controlam o CA são baseados na administração e acesso à procedimentos associados com o sistema hospedeiro do CA e o CA em si, no lugar do Active Directory. A maioria das soluções PKI comerciais que não são da Microsoft oferecem um componente RA independente.
Uma entidade deve ser identificada unicamente dentro de cada domínio CA na base da informação daquela entidade. Uma autoridade de validação (VA, do inglês validation authority) de terceiros pode prover a essa entidade informações em nome do CA.
O padrão X.509 define a maioria dos formatos de certificados de chave pública comumente utilizados.

## Capacidades

O PKI oferece a funcionalidade de "serviços de confiança" - ou seja, confiança nas ações ou resultados da entidade, sejam elas pessoas ou computadores. Serviços de confiança tem como objetivo respeitar uma ou mais das seguintes capacidades: Confidencialidade, Integridade e Autenticidade (CIA).
Confidencialidade: Garantia de que nenhuma entidade possa maliciosa ou despretensiosamente ver os conteúdos em texto simples. Todos os dados são criptografados para os manter em segredo, de forma que mesmo se for lido, pareça apenas letras sem sentido. Possivelmente o uso mais comum de PKI com propósitos de confidencialidade é na utilização do Transport Layer Security (TLS). O TLS tem a capacidade de sustentar a segurança da informação em trânsito (p.ex.: durante a comunicação de um navegador com um website). Um exemplo clássico da utilização do TLS para confidencialidade é quando usando um navegador de internet para fazer login em algum serviço online utilizando uma senha.
Integridade: Garantia de que se alguma entidade adulterar algum dado durante a transmissão, por menor que seja a adulteração, será notório que a informação não está íntegra e que, portanto, houve um comprometimento da informação. O mais importante não é prevenir que a informação seja comprometida (a prova de fraudes), mas sim que caso haja adulteração, se torne evidente que a informação foi adulterada (evidência de adulteração).
Autenticidade: Garantia de que você está se conectando ao serviço autêntico, ou assegurar sua legitimidade quando se conectando a um serviço protegido. O primeiro é chamado de autenticação server-side - tipicamente usado quando autenticando em um serviço web usando uma senha. O último se chama autenticação client-side - usado quando, por exemplo, autenticando utilizando um cartão inteligente (que contém um certificado digital e uma chave secreta).

## Design

A criptografia de chave pública é uma técnica de criptografia que permite entidades se comunicarem seguramente utilizando uma rede pública insegura, além de permitir a verificação da identidade das entidades de forma confiável utilizando assinaturas digitais.
Uma infraestrutura de chaves públicas (PKI) é um sistema de criação, armazenamento e distribuição de certificados digitais que são utilizados para verificar que uma determinada chave pública pertence a uma entidade. O PKI cria certificados digitais que disponibiliza chaves públicas às entidades, armazenando de forma segura esses certificados em um repositório central e os revoga quando necessário.
Um PKI consiste em:
* Uma autoridade de certificação (CA) que armazena, emite e assina os certificados digitais;
* Uma autoridade de registro (RA) que verifica a identidade das entidades requisitando suas respectivas assinaturas digitais que serão armazenadas na CA;
* Um diretório central (p.ex.: um lugar seguro em que as chaves serão armazenadas e indexadas);
* Um sistema de gestão de certificados que deverá fazer, por exemplo, a gestão dos acessos aos certificados armazenados ou a entrega de certificados que estão sendo emitidos;
* Uma política de certificados que deverá descrever os requerimentos e procedimentos requeridos pelo PKI. Seu propósito é permitir que terceiros avaliem a confiabilidade do PKI em questão;

## Métodos de certificação

De forma geral, existem três abordagens para conseguir uma certificação: Autoridades de Certificação (CA), Redes de Confiança (WoT) e Infraestrutura Simples de Chave Pública (SPKI).

### Autoridades de Certificação

O papel primário do CA é de assinar digitalmente e publicar uma chave pública associada a um determinado usuário. Isso é feito utilizando a própria chave privada do CA, então a confiança na chave do usuário depende na confiança que se tem na validade da chave do CA. Quando um CA é de terceiros que não seja o usuário ou o sistema, então é chamado de Autoridade de Registro (RA), que pode ou não ser separado do CA. A associação da chave-usuário é estabelecida, dependendo do nível de garantia que a associação tem, por software ou sob supervisão humana.
O termo sistema de confiança tripla (TTP, do inglês Trusted Third Party) também pode ser usado por uma autoridade de certificação (CA). Ainda, o PKI em si é utilizado como sinônimo para uma implementação CA.

#### Revogação de certificado

Autoridades no WebPKI fornecem serviços de revogação que permitem a invalidação de certificados anteriormente emitidos. De acordo com os Requerimentos de Base do CA/Browser fórum, os CA devem manter os status de revogação até a expiração do certificado. O status deve ser entregue utilizando o protocolo de status de certificado online (OCSP). A maioria dos status de revogação na internet desaparecem logo após a expiração do certificado.

#### Participação no mercado de emissores

Neste modelo de relação de confiança, um CA é um sistema de confiança tripla, ou seja, é um terceiro no qual é depositado a confiança de sua fidedignidade por ambos, o dono do certificado e aquele que está conferindo a assinatura digital.
De acordo com o relatório NetCraft de 2015, o padrão da indústria para monitorar os certificados TLS ativos, é afirmado que "apesar do ecossistema global [TLS] ser competitivo, é dominado em sua maioria por CA de grande porte — três autoridades de certificação (Symantec, Comodo Group, GoDaddy) correspondem por 75% de todas as emissões [TLS] de certificado nos webservers públicos. A maior parte sendo da Symantec (ou VeriSign antes de sua compra pela Symantec) mesmo antes de nosso levantamento começar, como ele respondendo por pouco menos de um terço de todos os certificados. Para ilustrar os efeitos das diferentes metodologias, dentre os milhões dos sites mais ocupados, a Symantec emitiu 44% dos certificados válidos e de confiança que estão em uso — significantemente mais que a média das participações no mercado."
Seguido de problemas críticos em como a emissão de certificados eram gerenciadas, grandes participantes do mercado gradualmente desacreditaram os certificados emitidos pela Symantec a partir de 2017.

#### Certificados temporários e assinaturas únicas

Essa abordagem envolve um servidor que age como uma autoridade de certificado offline com um sistema de assinatura única. Um servidor de assinatura única irá emitir um certificado digital no sistema do cliente, mas nunca irá os armazenar. Usuários podem executar programas com certificados temporários. É comum encontrar essa forma de certificado com certificados baseados no modelo X.509.

### Rede de confiança

Artigo principal: Rede de confiança
Em criptografia, uma rede de confiança é um conceito utilizado em PGP, GnuPG, e outros sistemas compatíveis com OpenPGP para estabelecer a autenticidade da ligação entre uma chave pública e o seu proprietário. O seu modelo de confiança descentralizado é uma alternativa ao modelo de confiança centralizado de uma infraestrutura de chave pública (PKI), que depende exclusivamente de uma autoridade de certificação (ou uma hierarquia de tais autoridades). Como ocorre com redes de computadores, existem muitas redes de confiança independentes, e qualquer usuário (através do seu certificado de identidade) pode ser uma parte, e uma ligação, entre várias redes.
O conceito de rede de confiança foi apresentado pela primeira vez pelo criador do PGP, Phil Zimmermann, em 1992, no manual da versão 2.0 do PGP:
   Conforme o tempo passa, vão se acumulando chaves de outras pessoas que pode querer designar como introdutores confiáveis. Cada um dos demais escolherá os seus próprios introdutores confiáveis. E todos gradualmente acumularão e distribuirão com suas chaves uma coleção de assinaturas de certificados de outras pessoas, com a espectativa de que qualquer um recebendo-as confiarão em pelo menos uma ou duas das assinaturas. Isso causará o surgimento de uma rede de confiança descentralizada tolerante a falhas para todas as chaves públicas.

### Infraestrutura simples de chave pública

Outra alternativa, que não lida com autenticação pública de informação de chave pública, é a infraestrutura simples de chave pública (SPKI) que cresceu a partir de três esforços independentes para superar complexidades relacionadas às teias de confiança nos X.509 e PGP. SPKI não associa usuários com pessoas, uma vez que são as chaves que são confiadas, no lugar da pessoa. SPKI não utiliza noção de confiança, afinal o verificador também é o emissor. Isso é chamado de "loop de autorização" em terminologias do SPKI, onde autorização é integrada ao seu design. Esse tipo de PKI é especialmente útil para fazer integrações de PKI que não dependem de autorização de certificado de terceiros, certificados de informação, etc. Um bom exemplo é uma rede de lacunas de ar em um escritório.

### PKI descentralizado

Identificadores descentralizados (DID, do inglês descentralized identifiers) eliminam a dependência de registros centralizados por identificadores também centralizados de autoridades de certificação para gestão de chaves, o que é um padrão no PKI hierárquico. Nos casos onde o registro DID é um registro distribuído, cada entidade pode servir como sua própria raiz de autoridade. Essa arquitetura é referida como PKI descentralizada (DPKI).

## No Brasil

A infraestrutura de chaves públicas do Brasil, definida pela Medida Provisória Nº 2.200-2, de 24 de Agosto de 2001, é denominada Infra-Estrutura de Chaves Públicas Brasileira (ICP-Brasil). A ICP-Brasil é um conjunto de entidades governamentais ou de iniciativa privada, padrões técnicos e regulamentos, elaborados para suportar um sistema criptográfico com base em certificados digitais e visa assegurar as transações entre titulares de certificados digitais e detentores de chaves públicas.
Para assegurar que uma determinada chave pertence a você é necessário que uma CA confira sua identidade e seus respectivos dados. Ela será a entidade responsável pela emissão, suspensão, renovação ou revogação de seu certificado digital, além de ser obrigada a manter sempre disponível a Lista de Certificados Revogados (CRL).
A ICP–Brasil é formada por uma Autoridade Certificadora Raiz (AC RAIZ) que é representada pelo Instituto Nacional de Tecnologia da Informação (ITI), sendo este órgão responsável pela autenticação das demais Autoridades Certificadoras, além de executar atividades de fiscalização e auditoria das AC e Autoridades de Registro (AR) para que possa certificar-se de que a entidade está seguindo todas as Políticas de Certificação.

### Vantagens

A Certificação Digital permite que informações transitem pela Internet com maior segurança. Utilizando-se da Certificação Digital, é possível, por exemplo, evitar que crackers interceptem ou adulterem as comunicações realizadas via Internet. Também é possível saber, com certeza, quem foi o autor de uma transação ou de uma mensagem, ou, ainda, manter dados confidenciais protegidos contra a leitura por pessoas não autorizadas.
Principais vantagens:
    Garantia de sigilo e privacidade – Quando você visita um site "seguro" da web, o seu computador recebe o certificado contendo a chave pública desse site, o que é suficiente para criar um túnel criptográfico, tornando os dados incompreensíveis durante o tráfego, sendo possível apenas ao servidor web recuperar a informação original.
    Controle de acesso a aplicativos – O servidor web pode solicitar ao usuário que apresente um certificado digital, em vez de digitar usuário e senha. Os usuários não poderão colocar em perigo a aplicação pela falta de cuidado no uso e armazenamento da senha.
    Assinatura de formulários e impossibilidade de repúdio – Os usuários poderão assinar os formulários que submetem preenchidos pela web da mesma maneira que fariam pessoalmente em um balcão de atendimento. Além disso, qualquer documento digital passa a valer como documento assinado, com validade jurídica, dispensando-se o uso de papel.
    Garantia de sigilo e privacidade – O sistema de correio eletrônico utilizado para troca de mensagens através da Internet não possui recursos nativos para impedir a violação da correspondência eletrônica. Com o uso de certificados digitais, você pode selar a sua correspondência em um envelope digital criptográfico e certificar-se de que apenas o destinatário será capaz de compreender seu conteúdo.
    Identificação do remetente – Não existirá mais dúvidas sobre a origem de uma mensagem, pois será possível certificar-se da identidade do emissor.

### Como fazer parte

Qualquer pessoa física ou jurídica pode obter uma certificação, através de uma Autoridade de Registro (AR), portando documentos necessários. É importante salientar que é indispensável a identificação pessoal do futuro titular do certificado, uma vez que este documento eletrônico será a sua "carteira de identidade" no mundo virtual. Assim, para a emissão do certificado tanto o interessado pode ir à AR como a AR pode ir ao cliente identificá-lo.
Um arquivo com a estrutura detalhada da ICP-Brasil, assim como a estrutura resumida - contendo apenas as Autoridades Certificadoras de 1º Nível e de 2º Nível - é fornecido pelo ITI em .