Cadeia de confiança de certificados

Nesta seção, faremos a explicação sobre como funciona a cadeia de confiança utilizado em certificados, abrangendo os temas: Certificado raíz, certificado TLS.

Certificado raíz

O certificado raíz é basicamente conhecido por muitos como CA. Entre as CA's podemos citar: Certsign, Microsoft, Let's encrypt, Trustsign, etc. O que diferencia um certificado raíz (CA) de um certificado convencional? Basicamente o campo issuer e subject são os mesmos. Certificados auto-assinados também possuem essa característica, a validação é feita pela distribuição do certificad para outros sistemas operacionais, navegadores, etc. Isso diferencia um certificado auto-assinado de um certificado CA oficial, pois este último é distribuido para navegadores e sistemas operacionais automaticamente para autenticar qualquer certificado gerado por sua chave pública.

Autenticação de Certificado SSL TLS

Em sistemas TLS, é necessário que o servidor envie um certificado como parte do handshake. No caso de conexões vindas de clientes, ocorrerá o seguinte caminho de validação do certificado:

  • O subject do certificado deve conferir com o hostname que o cliente está se conectando

  • O certificado está assinado por uma entidade certificadora confiável

O nome de host principal (primário) do website será listado como Common Name (CN), no campo Subject do certificado. Um certificado pode ser válido para múltiplos hostnames (ou diversos websites).

Certificados que possuem múltiplos nomes de hosts, são chamados de certificados SAN: Subject Alternative Names. ou Unified Communications Certificates (UCC). Estes certificados contém o campo Subject Alternative Name, assim mais CAs podem também ser colocadas no campo Subject Common Name do certificado para garantir retro-compatibilidade. Caso um dos hostnames contém um * o certificado também será chamado Certificado Wildcard.

Tipos de certificados

Aqui explicaremos a diferença entre os diversos tipos de certificados e onde eles podem ser usados

Certificado de clienteTLS/SSL

Os certificados usados para clientes autenticam um serviço ao invés de um servidor ao serviço remoto, garantindo mais segurança e granularidade que a autenticação por host. Seu uso é bem menos comum (as vezes chega a ser desconhecido) em comparação a certificado de servidores. Basicamente ele autentica o cliente ao servidor remoto de forma segura (substituindo ou complementando a autenticação via credenciais, token ou cookies).

Como forma de garantir mais segurança (e redução de custos), pode ser utilizado certificados Auto assinados para fazer a autenticação deste tipo de conexão. Para detalhes, veja a “Certificados Auto-Assinados”.

Certificado de Emails

Para aumento da segurança de e-mails, geralmente é utilizado certificados S/MIME. Esta técnica consiste que os remetentes possuem previamente a chave pública do destinatário, geralmente obtida por um certificado de e-mail ou autoridade de certificações confiáveis publicamente para e-mail. O uso mais comum é o uso de S/MIME dentro de uma empresa.

Uma outra técnica usando GPG pode ser usada para substituir o uso de S/MIME no e-mail, além de expandir as possibildiades de autenticação usando cadeia de confiança. Veja detalhes em “Usando o GPG para Autenticação e Criptografia”.

Assinatura de código

Uma das utilizações de certificados é durante a validação de assinatura de programas para ter certeza que eles não foram alterados no momento da etnrega. A autenticação é apenas um exemplo de um esquema de assinatura de código.

Certificado Qualificado

Este é um tipo de certificado que está ganhando popularidade aos poucos no Brasil, geralmente emitido pela SERASA para criar uma identificação chamada de CPF ou CNPJ Digital.

Tipicamente é usado para assinatura eletronica em sites do governo, e até documentos, sendo bastante comum na Europa.

Certificado CA raíz

Este certificado é um certificado auto-assinado (o campo subject é o mesmo do issuer), sendo é usado para assinar outros certificados, e criando uma relação de confiança quando distribuido no repositório de navegadores, sistemas operacionais, etc.

Certificado Intermediário

Este é um certificado assinado por um certificado raíz (veja “Certificado CA raíz”) ou outro certificado intermediário e serve apenas para assinar outros certificados.

Certificado Final

Este certificado é designado apenas a utilização em servidores, clientes, e-mails, assinatura de código, e não pode ser uitlizado para criar e assinar outros certificados.

Certificado Auto-Assinado

Basicamente é um certificado onde o campo issuer (Emissor) é igual ao subject (assunto), podendo validar a assinatura com sua chave pública. Ele não possui uma cadeia de confiança pública, mas isso não quer dizer que sejam menos seguros.

Significado de campos usados em certificados

Certificados X.509 possuem campos que definem os parametros de cadeia de confiança, validade e identidade. Seguem a apresentação de alguns campos usados na identificação de certificados:

Not Before

Intervalo inicial de validade do certificado. Antes desta data/hora o certificado não estará válido. Geralmente configurado com alguns dias ou horas antes do momento que o certificado foi emitido, para evitar problemas de configuração do relógio.

Not After

Data e hora de expiração do certificado. Após este intervalo, o certificado será exibido como expirado no navegador ou sistema que utiliza para autenticação.

Subject

Nome da máquina, da pessoa ou organização que recebeu o certificado.

Issuer

Identificação da entidade que emitiu e assinou o certificado.

Serial Number

O número serial é usado para identifição e revogação de um certificado dentro de um sistema de uma CA.

Key Usage

Determina os usos válidos para a chave pública. Valores geralmente usados incluem validação de assinatura, codificação da chave e assinatura de certificado.

Extended Key Usage

Uso extendido da chave indica as aplicações onde o certificado pode ser usado. Normalmente encontramos nesse campo assinatura de e-mail, assinatura de código e autenticação com servidores.

Public Key

A chave pública que foi gerada para o dono do certificado.

Signature Algorithm

Algoritmo usado para assinar a chave pública do certificado.

Signature

Corpo de assinatura do certificado (assinado pela chave privada do issuer)

Nívels de validação do certificado

Validação de Domínio - DV

A entidade certificadora emite um certificado de validação de dominio (DV) para quem provar que possui direito a gerenciar um domínio

Validação de Organização - OV

A entidade certificadora emite um certificado de Validação de Organização (OV) desde que atenda dois requisitos:

  • O direito de gerenciar administrativamente o domínio listado

  • Ser o representante legal da entidade

Validação Extendida - EV

Para conseguir um certificado de validação extendida, o comprador precisa provar ao emissor de certificao os seguintes pontos:

  • Sua identidade oficial, com verificação feita por outras pessoas.

Assim como certificados OV (veja “Validação de Organização - OV”) o emissor pode definir critérios para proibir a emissão de acordo com sua politica de certificação.

Quando você acessa um site com EV, o navegador exibe um aviso diferente comprovando que o site possui um certificado de validação extendida.

OBS: Alguns navegadores mais modernos não diferenciam mais na barra de endereços certificados EV de certificados convencionais, exibindo somente este detalhamento ao solicitar exibir os dados de certifidos.