Pular para o conteúdo
buybitcoinsmart

Glossário / Referência do desenvolvedor

Cadeia de certificados

O que é uma cadeia de certificados?
Uma cadeia de certificados é a lista ordenada de certificados que conecta o que um servidor apresenta a um certificado raiz em que seu dispositivo já confia, com cada elo assinado pelo seguinte.

As cadeias existem para que as chaves mais valiosas possam permanecer offline. Um certificado raiz assina alguns intermediários e depois volta para um cofre, e os intermediários fazem o trabalho diário de assinar servidores. A verificação percorre o caminho inverso, do certificado que você recebeu até algo que seu dispositivo já tinha, e falha se algum elo estiver faltando, expirado ou não reconhecido.

Como funciona

Três posições compõem uma cadeia típica, e um servidor transmite apenas duas delas.

Na base está o certificado folha, emitido para um conjunto específico de nomes de domínio. Acima dele ficam um ou mais intermediários, cuja finalidade é isolar o certificado raiz do uso cotidiano. No topo está o certificado raiz, autoassinado e presente no seu repositório de confiança desde muito antes de você visitar o site. O servidor envia o certificado folha e os intermediários, porque enviar o certificado raiz acrescentaria bytes e não provaria nada: um certificado raiz só conta se você já o tinha.

A validação não é um caminho reto para cima em uma lista. Um certificado pode ser assinado por mais de um emissor, prática chamada de assinatura cruzada, então um cliente pode enfrentar vários caminhos candidatos e precisa encontrar um que termine em um certificado raiz que ele possua. É por isso que o mesmo site carrega em um notebook novo e falha em um celular antigo. Os caminhos diferem porque os repositórios de confiança diferem.

A ilustração mais clara continua sendo a transição da Let's Encrypt. Seu próprio certificado raiz, o ISRG Root X1, recebeu assinatura cruzada do antigo DST Root CA X3 para que dispositivos que ainda não tinham adicionado o X1 pudessem construir um caminho. O DST Root CA X3 expirou em 30 de setembro de 2021. Dispositivos que tinham o X1 trocaram de caminho sem que ninguém percebesse, enquanto versões do Android anteriores à 7.1.1 e várias bibliotecas TLS antigas não o fizeram, e as conexões falharam no mundo todo em uma única tarde. Nada havia sido invadido e nenhuma chave havia vazado. Uma data havia passado.

Onde você vê isso

Problemas de cadeia parecem alarmantes e quase sempre são banais.

O erro de configuração de servidor mais comum é um intermediário esquecido. Os navegadores muitas vezes disfarçam isso guardando em cache intermediários de visitas anteriores ou buscando-os em uma URL dentro do certificado, então o site funciona para o administrador e falha em ferramentas de linha de comando e celulares, o que faz desse um erro memoravelmente irritante de localizar.

Para quem administra bitcoin, a leitura útil de um erro de cadeia é de diagnóstico. Quando uma corretora apresenta um erro de certificado em um dispositivo e funciona em outro, a diferença quase sempre está no dispositivo: um relógio do sistema errado, um sistema operacional antigo demais para ter recebido um certificado raiz mais recente, ou um antivírus que se intromete na conexão. Conserte o dispositivo antes de supor um ataque, e nunca clique para ignorar o aviso e entrar.

A atestação de carteiras de hardware usa a mesma forma em escala muito menor, com um certificado raiz do fabricante, às vezes um intermediário, e um certificado guardado no próprio dispositivo.

Cadeia de certificados vs certificado raiz

Uma cadeia é um caminho; um certificado raiz é onde o caminho tem que terminar. Todo certificado da cadeia, exceto o certificado raiz, é confiável apenas porque algo acima dele o assinou, enquanto o certificado raiz é confiável porque aparece em uma lista que seu dispositivo já trazia, e ele assina a si mesmo. Adicionar um certificado raiz a essa lista é, portanto, uma decisão muito maior do que aceitar qualquer outro certificado, que é exatamente o que redes corporativas e ferramentas de interceptação de tráfego pedem que você faça.

Não confundir com

Perguntas frequentes

Por que um site carrega em um dispositivo e mostra um erro de certificado em outro?

Porque os dois dispositivos têm repositórios de confiança diferentes ou relógios diferentes. Um celular mais antigo pode não ter um certificado raiz mais recente, então não consegue construir um caminho válido, e uma data do sistema errada faz certificados válidos parecerem expirados.

Você deve alguma vez ignorar um aviso de certificado para chegar a uma corretora?

Não. O aviso significa que o nome e a chave apresentados não se alinham de uma forma que seu dispositivo consiga verificar. Feche a aba, verifique o relógio e a grafia do domínio, e chegue ao site novamente a partir de um favorito salvo.

Termos relacionados

Mais em Referência do desenvolvedor

Ler esta página em inglês