Isenção de responsabilidade: sou novo no SSL, acho um pouco confuso e preciso de uma resposta rapidamente.
Disseram-me que havia o perigo de meu "armazenamento de chaves" estar corrompido, por isso estou tentando examiná-lo e entendê-lo. Estou usando Arch Linux.
Vejo muitas coisas divertidas /etc/ssl/certs
(e suponho que a pergunta nº 1 seja "é isso que é o 'keystore'?"), mas essa lista se tornou muito mais sensata quando passei por tudo readlink -f
e removi as duplicatas. Parece que todos os meus certificados são de /usr/share/ca-certificates/
. A maior parte deles está no mozilla/
subdiretório, mas existem outros subdiretórios como:
brazil.gov.br/
cacert.org/
debconf.org/
gouv.fr/
signet.pl/
spi-inc.org/
Meu principal problema é que não sei como identificar um certificado suspeito. Simplesmente acessar esses sites parece contra-intuitivo (ou seja, eles podem ter o mesmo malware que potencialmente corrompeu meu armazenamento de chaves).
ca-certificates
é um pacote instalado pelo meu gerenciador de pacotes; eu poderia simplesmente limpá-lo e reinstalar? Isso é seguro?
ATUALIZAR:
O problema que motivou esta investigação foi um certificado VeriSign não reconhecido. Especificamente, recebi uma assinatura com um certificado que eu não tinha (mas provavelmente deveria) ter e confiar.
Encontrei esta página no site da VeriSign que lista vários certificados: http://www.verisign.com/support/roots.html ...e então comecei a comparar as impressões digitais dos certificados que instalei com as do site.
for cert in /etc/ssl/certs/Veri[Ss]ign*; do
printf "%s: " $cert
openssl x509 -noout -in $cert -fingerprint
done
O resultado: um não corresponde. Também parece importante: "VeriSign Class 1 Public Primary CA".
Complicações: Meu gerenciador de pacotes me diz que minha soma de verificação de certificados existentes está correta. Além disso, a impressão digital no certificado que devo ter correspondenenhumo que eu tenho nem o listado no site da VeriSign.
Responder1
Os certificados emitidos para entidades finais (por exemplo, servidor web) por uma CA são geralmente emitidos através de uma CA intermediária (também conhecida como cadeia). Há várias razões para isso. Era muito comum, quando as CAs começaram a emitir certificados desta forma, que os operadores de servidor não conseguissem instalar a CA intermediária, visitando assim usuários que não tinham uma cópia em cache (ou instalada) do certificado de cadeia em uma situação em que eles tinham tanto o certificado raiz e o certificado EE, mas não há como conectá-los. Isso é muito menos comum hoje, mas pode ser o problema que você está enfrentando - é ao visitar um servidor público - se for o caso, darei uma olhada para você. Você sempre pode dar uma olhada no issuerName do certificado EE que não pode verificar e ver se consegue encontrar um certificado de 'CA intermediária' correspondente no site da VeriSign. Nesse caso, você poderá verificar o EE com o intermediário e o intermediário com a raiz. Se você estiver fazendo isso manualmente, sugiro que você faça a validação do certificado também - o OCSP é suportado pela VeriSign em todas as suas CAs... a maioria (todas?) CAs premium nesta forma de tempo real/quase real. validação de tempo... caso contrário, o próximo melhor seria CRLs.