Como funciona a Transparência de certificados?
A Transparência de certificados (CT) funciona na infraestrutura da autoridade de certificação (CA) existente como uma maneira de fornecer validação pós-emissão da autorização de uma entidade para a emissão de certificados SSL.
O processo de emissão de certificados é mostrado abaixo, com as novas etapas introduzidas pela CT destacadas em azul.
- O operador do servidor adquire o certificado da CA
- A CA valida o operador do servidor
- A CA cria uma pré-certificado
- A CA registra o pré-certificado no servidor de log, que retorna um carimbo assinado de data e hora de certificado (SCT)
- A CA emite o certificado SSL
- O certificado SSL pode incluir o carimbo assinado de data e hora de certificado (SCT)
- O navegador valida o certificado SSL durante o handshake TLS
- O navegador valida o SCT fornecido durante o handshake TLS, seja pelo grampeamento OCSP, por uma extensão TLS ou a partir de informações incorporadas no certificado.
- O navegador faz a conexão com o servidor
- O certificado SSL criptografa todos os dados conforme passam do navegador para o servidor
Existem três maneiras possíveis de fornecer o SCT durante o handshake TLS, conforme explicado aqui. Abaixo está incluído um diagrama desse processo para um dos métodos de fornecimento do SCT.
Componentes da Transparência de certificados
O sistema CT tem quatro componentes: a CA, o log de certificados, o monitor de certificados e o auditor de certificados. Abaixo é mostrado um diagrama com a configuração provável desses componentes. Cada um desses componentes é explicado em mais detalhes abaixo.
Autoridade de certificação
A CT funciona dentro do sistema de CA com confiança pública. Com a CT, as CAs podem incluir evidências da emissão de certificados em um log público, e os navegadores podem verificar esses SCTs durante o handshake. O log de certificados comprova a operação correta da CA e apresenta insights sobre as operações da CA.
Log de certificados
Idealmente, os logs de certificados preservarão um registro de todos os certificados SSL emitidos, embora a implantação inicial seja limitada a certificados EV. Múltiplos logs independentes são necessários por vários motivos: 1) Logs múltiplos proporcionam um backup em caso de falha de log, 2) Logs independentes significam que, se um log ou operador de log for comprometido, os certificados ainda poderão ser validados; 3) Logs independentes significam que uma ação oficial única não pode remover evidências de emissão de todos os logs; e 4) Logs independentes múltiplos significam que uma CA e um operador de log não podem conspirar para ocultar uma emissão incorreta e embaraçosa.
Todos os logs são:
- Somente inclusão - Só é possível adicionar certificados a um log; eles não podem ser excluídos, modificados ou inseridos retroativamente.
- Garantidos por criptografia - Os logs usam um mecanismo criptográfico chamado Hash de Árvore de Merkle para impedir violações.
- Publicamente auditáveis - Qualquer pessoa pode consultar um log e procurar certificados falsos ou emitidos incorretamente. Todos os logs de certificados devem divulgar suas URLs e chave pública.
Monitor de certificados
Um monitor de certificados é qualquer entidade, como proprietários de grandes marcas ou CAs, que verifique os logs de certificados em busca de atividade suspeita.
Os monitores podem obter informações dos logs usando um comando HTTP GET. Cada cliente pode agir como seu próprio serviço de monitoramento de log ou pode delegar isso a uma outra parte. A DigiCert planeja fornecer serviços de monitoramento de logs para seus clientes.
Auditor de certificados
Auditores de certificados consultam os logs para verificar se ele está consistente com outros logs, se foram adicionadas novas entradas e se o log não foi corrompido retroativamente por uma inserção, exclusão ou modificação de certificado.
Provavelmente, a auditoria se tornará um processo automatizado que será integrado aos navegadores. Entretanto, os auditores podem se tornar um serviço independente ou uma função secundária de um monitor.