Os navegadores da Web armazenam em cache certificados SSL?

26

Algum navegador da Web armazena em cache certificados de servidor SSL? Por exemplo, se eu alterar o certificado SSL em um servidor web, todos os navegadores buscarão o novo certificado quando se conectarem via SSL ou é possível que eles possuam um certificado obsoleto?

Estou pensando no cenário em que um certificado SSL expira e é substituído por um novo no servidor web.

Lorin Hochstein
fonte
Eu assumiria que o navegador verifica a data no certificado para ver se precisa obter um mais novo, como faz para todo o resto, mas não tenho certeza.
soandos
Dê uma olhada aqui imperialviolet.org/2011/05/04/pinning.html sobre "certificado prendendo" e por iniciativa HSTS whis está relacionada com os antigos dev.chromium.org/sts
Shadok
1
A partir de 2019, meu Chrome 75 está armazenando em cache certificados SSL
Fabian Thommen 14/06

Respostas:

10

Bem, a resposta de RedGrittyBrick está correta, mas não está realmente respondendo à pergunta. A questão era, se os navegadores fazem isso, não se devem ou precisam fazê-lo.

Pelo que ouvi, o MSIE e o Chrome realmente fazem certificados de cache e não os substituem quando obtêm uma nova versão, desde que a antiga seja válida. Por que eles fazem isso não é para mim entender, pois diminui a segurança.

tuexss
fonte
A resposta atualmente aceita é bastante clara. Indica especificamente que, não , os navegadores não armazenam em cache os certificados. Conforme você indica que o cenário mudou, os motivos pelos quais o Chrome faz, estão bem documentados, seria bom que você vinculasse a esses motivos. Como o certificado ainda é válido, ele não "diminui" a segurança que não faria sentido.
Ramhound
3
Ele diminui, porque você não pode substituir uma chave SHA-1 antiga por uma nova, porque a antiga ainda é válida e o Chrome ignora a nova, se eu entendi tudo direito. Portanto, não há como impor uma mudança para um padrão de segurança mais alto - para que "diminua" em um sentido relativo, ao não permitir elevá-lo. Assim como a inflação não diminui seu valor designado em dinheiro, mas seu valor real de mercado.
tuexss
5
+1 Depois que o StartSSL misturou o fiasco da cadeia SHA1 / SHA2 , fica claro que o Chrome no Windows está realmente armazenando informações intermediárias, possivelmente por tempo indeterminado. O Chrome ignorará qualquer novo certificado intermediário enviado pelo servidor. Ainda não está claro se o armazenamento em cache é codificado pela identidade do servidor cert ou pela identidade intermediária do certificado e o que exatamente constitui essa identidade.
Robert Važan
3
hoje, o chrome e o firefox mostram certificados diferentes na janela normal (certificado antigo) e no modo de navegação anônima (correto). Utilitários de linha de comando, como curl ou openssl, certificam o certificado correto, é claro. Corrigido limpando o cache do navegador (ctrl + shift + del) - "cookies e outros dados do site" para o chrome e "dados offline do site" para o firefox.
Anilech # 23/17
1
Pelo menos a versão atual do Firefox (66.0) no OSX parece manter seu cache com bastante força. Ontem atualizei um certificado TLS para o meu site e o CLI openssle o Chromium me mostram o novo certificado. O Firefox me mostra o antigo, apesar de recarregar com o cache desativado, limpando todo o cache e os dados offline e reiniciando o navegador.
Tad Lispy 24/03
20

Não. Consulte a visão geral do IBM SSL

  1. O cliente SSL envia uma mensagem "olá cliente" que lista informações criptográficas, como a versão SSL e, na ordem de preferência do cliente, os CipherSuites suportados pelo cliente. A mensagem também contém uma sequência de bytes aleatória usada em cálculos subseqüentes. O protocolo SSL permite que o "hello cliente" inclua os métodos de compactação de dados suportados pelo cliente, mas as implementações SSL atuais não costumam incluir essa provisão.

  2. O servidor SSL responde com uma mensagem "server hello" que contém o CipherSuite escolhido pelo servidor na lista fornecida pelo cliente SSL, o ID da sessão e outra sequência de bytes aleatória. O servidor SSL também envia seu certificado digital . Se o servidor exigir um certificado digital para autenticação do cliente, o servidor envia uma "solicitação de certificado do cliente" que inclui uma lista dos tipos de certificados suportados e os Nomes Distintos de Autoridades de Certificação (CAs) aceitáveis.

  3. O cliente SSL verifica a assinatura digital no certificado digital do servidor SSL e verifica se o CipherSuite escolhido pelo servidor é aceitável.

...

O resumo da Microsoft é semelhante. O handshake TLS também é semelhante nesse sentido.

Na etapa 2, não parece haver uma maneira de o cliente dizer "não se preocupe em enviar um certificado de servidor, vou usar meu cache".

Observe que existem vários tipos de certificados, cliente, servidor e autoridade de certificação. Alguns deles são armazenados em cache.

RedGrittyBrick
fonte
Pergunta original alterada para esclarecer que é um certificado de servidor.
Lorin Hochstein
Isso não é verdade, e supor que não haja cache devido a uma visão geral de como o SSL funciona exclui o cache, é uma justificativa bastante ruim. youtube.com/watch?v=wMFPe-DwULM
Evan Carroll
O único cache que pode ser usado é para verificações de validade, embora isso seja uma troca de segurança.
Daniel B
0

Não tenho certeza se minha opinião ajudará de alguma forma, mas eis o que acabei de experimentar: tenho um site no azul com um domínio personalizado. Tentei acessá-lo com https nos cromos antes de configurar a ligação SSL para o meu nome de domínio. O Chrome estava me dizendo que o site não é seguro, o que perfeitamente faz sentido (ERR_CERT_COMMON_NAME_INVALID). Mas depois que eu carreguei meu certificado e configurei a ligação SSL no azul, ainda estava recebendo o mesmo erro. Nesse estágio, ao abrir uma nova janela do navegador particular (ou usar outro navegador), o https estava funcionando bem.

Mas nunca consegui fazê-lo funcionar na minha sessão aberta do Chrome. Eu tentei limpar o estado SSL, mesmo resultado. Funcionou depois de reiniciar o chrome por completo.

Provavelmente fui enganado por alguma coisa, mas quase parecia que o certificado estava em cache ...

Etienne
fonte
Esse erro implicaria que você acessou o site com um URI diferente do que estava na CN. Você realmente alterou o URI para acessar o site no chrome depois de configurar a ligação?
Seth
não, a única coisa que mudei na época foi a encadernação. Quando perguntei pela primeira vez, o https foi veiculado usando o certificado azure ssl padrão, mas ainda estava servindo este depois de alterar a ligação com o certificado correto no Azure.
Etienne
Como você disse que configurou a ligação SSL do seu domínio, isso significa que você acessou o servidor usando seu domínio desde o início ou não? O erro indicaria que havia uma diferença entre o URL que você usou e o URL para o qual o certificado era. Foi isso que eu quis dizer. Além disso, a configuração real do servidor pode importar bastante, se você pensar no HSTS e tal.
Seth
1
Etapa 1: site publicado para o azure. Nesse estágio, ele possui um URL azul padrão e um certificado padrão. Etapa 2: configurar o domínio personalizado para o aplicativo Web, agora mysite.com aponta corretamente para o site. O certificado SSL para mysite.com não está configurado neste estágio. Etapa 3: neste momento, ao tentar https do site, estou recebendo um erro de segurança dizendo que o certificado não corresponde (e faz todo o sentido) Etapa 4: Instale o certificado SSL para Mysite.com no azure e STILL o aviso de segurança aparece no Chrome. NÃO ocorre em nenhum outro navegador ou se eu abrir uma navegação privada.
Etienne
1
Etapa 5: reinicio o Chrome e agora (e somente agora) é o meu site veiculado usando o certificado SSL correto. Daí a minha conclusão é que houve de fato um problema de cache do certificado
Etienne
-1

Existem planos de alguns desenvolvedores de navegadores para implementar um sistema de detecção de ataques como o ataque ao Diginotar em 2011.

No momento, porém, o AFAIK não existe um sistema ativo nos navegadores atuais. Portanto, você não precisa pensar nessa situação ao atualizar o certificado do servidor.

Robert
fonte