Como são verificados os certificados ssl?

Qual é a série de passos necessários para verificar de forma segura um certificado ssl? Meu (muito limitado) entendimento é que quando você visita um site https, o servidor envia um certificado para o cliente (o navegador) e o navegador recebe as informações do emissor do certificado a partir desse certificado, em seguida, usa isso para entrar em contato com o emissor, e de alguma forma compara os certificados para a validade.

    Como é que isto se faz?
  • e o processo torna-o imune a ataques de homens no meio?
  • O que impede uma pessoa aleatória de criar o seu próprio serviço de verificação para usar em ataques de homens no meio, para que tudo pareça seguro?
Author: matt b, 2008-10-09

5 answers

Aqui está uma explicação muito simplificada:

  1. O seu navegador Web transfere o certificado do servidor web, que contém a chave pública do servidor web. Este certificado é assinado com a chave privada de uma autoridade de certificação aprovada.

  2. Seu navegador Web vem instalado com as chaves públicas de todas as principais autoridades de certificados. Ele usa esta chave pública para verificar se o certificado do servidor web foi realmente assinado pelo certificado confiável autoridade.

  3. O certificado contém o nome de domínio e/ou endereço ip do servidor web. O seu navegador da web confirma com a autoridade do certificado que o endereço listado no certificado é aquele para o qual ele tem uma conexão aberta.

  4. O seu navegador Web gera uma chave simétrica partilhada que será usada para cifrar o tráfego HTTP nesta ligação; isto é muito mais eficiente do que usar a encriptação de chave pública/privada para tudo. O seu navegador criptografa a chave simétrica com a chave pública do servidor web, em seguida, envia-a de volta, garantindo assim que apenas o servidor web pode decriptá-la, uma vez que apenas o servidor web tem sua chave privada.

Note que a Autoridade de certificação (CA) é essencial para prevenir ataques do homem no meio. No entanto, mesmo um certificado não assinado irá impedir alguém de escutar passivamente em seu tráfego criptografado, uma vez que eles não têm nenhuma maneira de obter acesso à sua chave simétrica compartilhada.

 226
Author: Eli Courtwright, 2016-11-30 20:25:39

Vale a pena notar que, além de comprar um certificado (como mencionado acima), você também pode criar o seu próprio de graça; isso é referido como um "certificado auto-assinado". A diferença entre um certificado auto-assinado e um que é comprado é simples: o adquirido foi assinado por uma Autoridade de certificado que o seu navegador já conhece. Em outras palavras, seu navegador pode facilmente validar a autenticidade de um certificado comprado.

Infelizmente, isto ... tem levado a um equívoco comum de que os certificados autossignados são inerentemente menos seguros do que aqueles vendidos pelas CA comerciais como GoDaddy e Verisign, e que você tem que viver com avisos/exceções do navegador se você usá-los; Isso é incorreto.

Se você distribuir de forma segura um certificado auto-assinado (ou CA cert, como bobince sugeriu) e instalá-lo nos navegadores que irão usar o seu site, é tão seguro quanto aquele que é comprado e não é vulnerável a ataques de homens no meio e falsificação de cert. Obviamente, isso significa que só é viável se apenas algumas pessoas precisam de acesso seguro ao seu site (por exemplo, aplicativos internos, blogs pessoais, etc.).

No interesse de aumentar a conscientização e encorajar colegas blogueiros de pequeno-tempo como eu a se protegerem, eu escrevi um tutorial de nível de entrada que explica em mais detalhes os conceitos por trás dos certificados e como criar e usar com segurança um certificado auto-assinado (completo com amostras de código e screenshots). Aqui está um link para o caso de ser útil a mais alguém no futuro: http://www.clintharris.net/2009/self-signed-certificates/.

 43
Author: Clint Harris, 2009-02-05 02:16:53
Disseste que ...

O navegador Obtém a informação do emissor do certificado a partir desse certificado, então usa isso para contatar o emissor, e de alguma forma compara os certificados com a validade.

O cliente não tem que verificar com o emissor porque duas coisas:

  1. todos os navegadores têm uma lista pré-instalada de todas as principais chaves públicas CAs
  2. o certificado está assinado, e essa assinatura é prova suficiente de que o certificado é válido porque o cliente pode certificar-se, por si mesmo, e sem entrar em contato com o servidor do emitente, que esse certificado é autêntico. Essa é a beleza da encriptação assimétrica.

Note que 2. não pode ser feito sem 1.

Isto é melhor explicado neste diagrama Grande que fiz há algum tempo

(Saltar para "o que é uma assinatura ?"no Fundo)

blob

 14
Author: ychaouche, 2018-05-02 09:48:20

O cliente tem uma reserva pré-semeada das Chaves Públicas das autoridades de certificação SSL. Deve haver uma cadeia de confiança do certificado para o servidor através de autoridades intermediárias até um dos chamados certificados "root" para que o servidor seja confiável.

Pode examinar e / ou alterar a lista de autoridades de confiança. Muitas vezes você faz isso para adicionar um certificado para uma autoridade local que você sabe que você confia-como a empresa para que você trabalha ou a escola que você freqüenta ou o que não.

A lista pré-semeada pode variar dependendo do cliente que usar. Os grandes vendedores de certificados SSL asseguram que os seus certificados de raiz estão em todos os principais navegadores ($$$).

Os ataques do macaco no meio são" impossíveis " a menos que o atacante tenha a chave privada de um certificado de raiz confiável. Uma vez que os certificados correspondentes são amplamente utilizados, a exposição de uma tal chave privada teria implicações graves para a segurança do comércio electrónico em geral. Por causa disso., essas chaves privadas estão muito, muito bem guardadas.
 6
Author: nsayer, 2008-10-09 17:39:36

Se você tem uma mente mais tecnicamente, este site é provavelmente o que você quer: http://www.zytrax.com/tech/survival/ssl.html

Atenção: a Toca do coelho é profunda.
 6
Author: Mike Frysinger, 2016-06-22 19:27:16