Glossário / Referência do desenvolvedor
Certificado raiz
- O que é um certificado raiz?
- Um certificado raiz é a âncora de confiança autoassinada no topo de uma cadeia de certificados, e só é considerado confiável porque o fornecedor do seu sistema operacional ou do seu navegador o colocou ali.
Toda verificação de certificado termina em uma raiz. Um certificado raiz assina a si mesmo e só é considerado confiável porque veio no armazenamento de raízes do seu dispositivo; o DST Root CA X3, o exemplo mais conhecido, foi emitido em 30 de setembro de 2000 e expirou exatamente 21 anos depois. Se você julga uma corretora apenas pelo cadeado, está confiando nessa lista de raízes e não em algo próprio da corretora.
Como funciona
Um certificado raiz nomeia a mesma organização tanto no campo de emissor quanto no campo de titular, e a chave que o assinou é a chave que ele certifica. Essa circularidade é justamente o ponto. Nada acima de uma raiz a avaliza, então um verificador não pode conferi-la contra nada mais alto; ele só pode procurar o certificado em uma lista local e tratar essa lista como autoridade.
Essas listas são organizadas por um punhado de empresas. Apple, Microsoft, Mozilla e Google mantêm cada uma um programa de raízes com critérios de inclusão, exigências de auditoria e procedimentos de remoção publicados, e o armazenamento no seu notebook ou celular é o que o seu fornecedor incluiu junto com o software. A inclusão dura muito tempo, porque retirar uma raiz significa enviar uma atualização a cada dispositivo que a contém. O ISRG Root X1, a âncora por trás do Let's Encrypt, foi emitido em 4 de junho de 2015 e só expira em 4 de junho de 2035.
A fraqueza estrutural é que qualquer raiz no armazenamento pode avalizar qualquer nome. Nenhuma regra vincula uma autoridade neerlandesa a domínios neerlandeses, então uma única autoridade comprometida enfraquece todos os sites de uma vez. A DigiNotar provou isso em 2011: um atacante emitiu um certificado fraudulento para google.com em 10 de julho daquele ano e o usou para interceptar tráfego de usuários iranianos. Mozilla, Google e Microsoft retiraram as raízes da DigiNotar nos primeiros dias de setembro de 2011, e a empresa faliu antes do fim do mês.
Onde você vê isso
Os certificados raiz entraram no bitcoin pelo BIP70, que pedia às carteiras que validassem a cadeia de certificados de um comerciante até uma raiz confiável antes de mostrar o nome de uma empresa na tela de pagamento. O software de desktop pegou emprestado o armazenamento do sistema operacional para fazer isso, o software móvel frequentemente errava, e o Bitcoin Core excluiu o recurso por completo na versão 0.20.0. A referência para desenvolvedores do bitcoin.org ainda lista o termo, e é a principal razão pela qual alguém o procura hoje.
A comparação mais útil é com a âncora do próprio bitcoin. Um nó completo parte de um bloco gênesis datado de 3 de janeiro de 2009, gravado no código do software, e verifica cada regra por si mesmo a partir dali. Ninguém adiciona uma entrada a essa âncora enviando uma atualização para o seu celular, e nenhuma autoridade pode ser invadida ou pressionada a avalizar um bloco que viole as regras. Os armazenamentos de raízes funcionam na direção oposta: a confiança flui para baixo a partir de uma lista que você não escreveu e não pode auditar.
Certificado raiz vs certificado folha
Um certificado raiz identifica uma autoridade de certificação; um certificado folha identifica um servidor. A raiz é autoassinada, vive por duas décadas e guarda sua chave privada em um módulo de hardware offline trazido algumas vezes por ano sob testemunhas. O certificado folha nomeia o host ao qual você realmente se conectou, vive por meses, e sua chave privada fica em um servidor web em funcionamento exposto à internet. As pessoas dizem “o certificado é válido” quando querem dizer que o certificado folha foi processado e que as datas batem, mas a pergunta que decide se a conexão é confiável é em qual raiz a cadeia termina.