Terminologia de segurança importante

Dois dos obstáculos que os desenvolvedores enfrentam ao migrar para HTTPS são os conceitos e a terminologia. Este guia fornece uma breve visão geral de ambos.

Chris Palmer
Chris Palmer

Resumo

  • Chaves públicas/privadas usadas para assinar e descriptografar mensagens entre o navegador e o servidor.
  • Uma autoridade certificadora (AC) é uma organização que garante o mapeamento entre as chaves públicas e os nomes DNS públicos (como "www.foobar.com").
  • Uma solicitação de assinatura de certificado (CSR) é um formato de dados que agrupa uma chave pública com alguns metadados sobre a entidade proprietária da chave.

O que são os pares de chaves pública e privada?

Um par de chaves pública/privada é um par de números muito grandes que são usados como chaves de criptografia e descriptografia e que compartilham uma relação matemática especial. Um sistema comum para pares de chaves é o sistema criptográfico RSA. A chave pública é usada para criptografar mensagens, e elas só podem ser descriptografadas com a chave privada correspondente. Seu servidor da Web anuncia a chave pública para o mundo, e os clientes (como navegadores da Web) usam isso para inicializar um canal seguro para seu servidor.

O que é uma autoridade certificadora?

Uma autoridade certificadora (AC) é uma organização que garante o mapeamento entre chaves públicas e nomes de DNS públicos (como "www.foobar.com"). Por exemplo, como um cliente pode saber se uma chave pública específica é a chave pública verdadeira para www.foobar.com? A priori, não há como saber. Uma AC garante que uma chave específica é a verdadeira para um site específico usando a própria chave privada para assinar criptograficamente a chave pública do site. Essa assinatura é computacionalmente inviável de falsificar. Os navegadores (e outros clientes) mantêm armazenamentos de âncoras de confiança com as chaves públicas pertencentes às ACs conhecidas e usam essas chaves públicas para verificar criptograficamente as assinaturas da AC.

Um certificado X.509 é um formato de dados que agrupa uma chave pública com alguns metadados sobre a entidade proprietária da chave. No caso da Web, o proprietário da chave é o operador do site, e os metadados importantes são o nome DNS do servidor da Web. Quando um cliente se conecta a um servidor da Web HTTPS, o servidor da Web apresenta o certificado para que o cliente faça a verificação. O cliente verifica se o certificado não expirou, se o nome do DNS corresponde ao nome do servidor ao qual o cliente está tentando se conectar e se uma AC de âncora de confiança conhecida assinou o certificado. Na maioria dos casos, as ACs não assinam diretamente os certificados do servidor da Web. Normalmente, há uma cadeia de certificados que vincula uma âncora de confiança a um signatário ou signatários intermediários e, por fim, ao próprio certificado do servidor da Web (a entidade final).

O que é uma solicitação de assinatura de certificado?

Uma solicitação de assinatura de certificado (CSR, na sigla em inglês) é um formato de dados que, assim como um certificado, agrupa uma chave pública com alguns metadados sobre a entidade que é proprietária da chave. No entanto, os clientes não interpretam CSRs; as ACs fazem isso. Quando você quer que uma AC garanta a chave pública do seu servidor da Web, você envia uma CSR para a AC. A AC valida as informações na CSR e as usa para gerar um certificado. A AC envia o certificado final, e você instala esse certificado (ou, mais provavelmente, uma cadeia de certificados) e sua chave privada no servidor da Web.