Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 16849|Resposta: 0

Cadeia de certificados SSL incompleta: Certificados intermediários são realmente um poço

[Copiar link]
Publicado em 15/08/2017 21:08:39 | | |
Já pisei nesse poço antes. Esqueci como praticar, mas ainda lembro desse princípio. Explique de forma aproximada:


O pacote de instalação do navegador armazena alguns dos certificados raiz (chaves públicas) em que ele confia.

Para segurança, os emissores de certificados geralmente armazenam as chaves privadas correspondentes a esses certificados raiz em um cofre absolutamente desconectado. Essas chaves privadas raiz são usadas no cofre para emitir alguns certificados "intermediários", e as chaves privadas desses certificados intermediários têm autoridade para emitir o certificado de próximo nível. Essas chaves privadas intermediárias são instaladas em servidores online para ganhar dinheiro emitindo certificados de sites. Uma vez que esses servidores sejam hackeados, o publisher pode emitir uma ordem de revogação usando a chave privada do certificado raiz fisicamente isolada no vault para eliminar a confiança desses certificados intermediários sem precisar desconfiar completamente do certificado raiz do publisher. Assine um novo certificado intermediário de emissão, e você será um bom homem que pode ganhar dinheiro.

Aqui vem a pergunta.

O navegador reconhece apenas o certificado raiz. Para a certificação do certificado intermediário, você (o site) precisa emitir seu próprio certificado.

Um site HTTPS devidamente configurado deve incluir toda a cadeia de certificados no certificado.
Por exemplo, use o comando openssl s_client -connect www.wosign.com:443 para visualizar a configuração do próprio site do Wosign.
O restante do conteúdo pode ser ignorado, basta olhar o parágrafo da cadeia de certificados:
---
Cadeia de certificados
0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.6.1.4.1.311.60.2.1.1=Shenzhen/empresaCategoria=Privado Organization/serialNumber=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postalCode=518067/street=\xE6\xB7\xB1\ xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA4\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\ x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xAE\xA4\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\ xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com
   i:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA
1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Classe 4 EV CA
   i:/C=CN/O=WoSign CA Limited/CN=Autoridade de Certificação da WoSign
2 s:/C=CN/O=WoSign CA Limited/CN=Autoridade de Certificação da WoSign
   i:/C=IL/O=StartCom Ltd./OU=Assinatura Segura de Certificados Digitais/CN=Autoridade de Certificação StartCom
---

0, 1 e 2 são os números de série de cada nível de certificado na cadeia de certificados. 0 é o certificado usado pelo site a ser verificado. Seu CN deve corresponder ao nome de domínio do site.
Após cada número de série, a linha que começa com s refere-se ao certificado, e a linha que começa com i refere-se a quem emitiu o certificado.

Pode-se ver que o CN de 0 contém um nome de domínio chinês suspeito e um domínio em inglês www.wosign.com. É emitido pela WoSign CA Limited/CN=WoSign Classe 4 EV Server CA.

Um certificado de 1 é o emissor de 0. O próprio 1 é emitido por outro certificado, a Autoridade de Certificação da WoSign.
Vamos olhar para o próximo nível, 2. Diz que a Autoridade de Certificação da WoSign é emitida pela StartCom (haha, na verdade é um subcontratado!). )

Depois de analisar em um nível assim, o navegador diz: ah, eu sei qual é o emissor do 2, e isso é mencionado no pacote de instalação, StartCom. Assinatura e validação corretas, então confie 2. Depois, você também deve confiar no 1 emitido pelo 2 e no 0 emitido pelo 1. Então, este site pode ser confiável.

--

No entanto, se o site estiver configurado para conter apenas a si mesmo no arquivo CRT e não uma cadeia de certificados completa o suficiente para ser verificada pelos dados embutidos do navegador, ele pode ser rejeitado pelo navegador. Como o quê
openssl s_client -conectar touko.moe:443
---
Cadeia de certificados
0 s:/CN=touko.moe
   i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Certificado SSL Gratuito G2
---
Só há 0 em um grupo. Descrição O touko.moe na linha s é emitido pelo WoSign CA Free SSL Certificate G2 na linha i. Sumiu.

Essa é a coisa mais surpreendente sobre essa armadilha: nem sempre é verdade se o navegador falha em verificar neste momento. Existem 2 situações:
R. Nunca vi isso desde que o navegador foi instalado. Então a validação falha.
B. Se o navegador já viu e verificou i antes, então a verificação será bem-sucedida.

Normalmente, o administrador vai ao site https do emissor do certificado para comprar o certificado, e o navegador o verifica, e então armazena em cache todos os certificados intermediários que foram verificados com sucesso, economizando tempo no futuro. Quando o administrador (por engano) configurou seu site e foi navegar pelo teste, ele não encontrou nenhum problema. Porque o navegador dele já reconhece esse certificado intermediário.

No entanto, muitos usuários podem não ter visitado outros sites devidamente configurados emitidos por esse certificado intermediário. Portanto, a validação falha porque não consegue encontrar um emissor confiável.


É comparável ao controle de emissões dos escapamentos dos veículos diesel Volkswagen. Estava tudo bem quando chequei. Assim que saem, colocam veneno.


EDIT: Como consertar ...... Provavelmente é adicionar a configuração SSLCertificateChainFile ao configurar o servidor e usar o arquivo bundle fornecido pelo site do emissor do certificado (o arquivo contém vários certificados intermediários para estabelecer a conexão entre seu certificado e um certificado de alta confiança).




Anterior:O OpenSSL converte o formato PFX para arquivos .key e .crt
Próximo:Navegadores Android indicam que o certificado não é confiável
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com