Os hackers usaram uma vulnerabilidade do protocolo OpenPGP, que é conhecida há mais de dez anos.
Explicamos qual é a essência e por que não podem fechar isso.
/ Unsplash /
Problemas na rede
No meio de junho, desconhecidos na rede de servidores de chaves criptográficas , construído com base no protocolo OpenPGP. Este é um padrão IETF (), utilizado para criptografar e-mails e outras mensagens. A rede SKS foi criada há trinta anos para a disseminação de certificados públicos. Ferramentas como são conectadas para a criptografia de dados e criação de assinaturas digitais.
Os hackers comprometeram os certificados de dois mantenedores do projeto GnuPG — Robert Hansen e Daniel Gillmor. O download de um certificado comprometido do servidor leva a falhas na operação do GnuPG — o sistema simplesmente trava. Há motivos para suspeitar que os criminosos não vão parar por aí, e o número de certificados comprometidos deve aumentar. Atualmente, a magnitude do problema permanece desconhecida.
A essência do ataque
Os hackers exploraram uma vulnerabilidade no protocolo OpenPGP. Isso é conhecido pela comunidade há várias décadas. Até no GitHub existem exploits correspondentes. Mas até agora, ninguém se responsabilizou por fechar a 'brecha' (abordaremos as razões mais adiante).
Algumas seleções do nosso blog no Habr:
De acordo com a especificação do OpenPGP, qualquer um pode adicionar assinaturas digitais aos certificados para confirmar a propriedade. Além disso, o número máximo de assinaturas não é regulamentado. E aqui surge o problema — a rede SKS permite até 150 mil assinaturas em um único certificado, mas o GnuPG não suporta essa quantidade. Assim, ao fazer o download do certificado, o GnuPG (assim como outras implementações do OpenPGP) trava.
Um dos usuários — a importação do certificado levou cerca de 10 minutos. O certificado tinha mais de 54 mil assinaturas, e seu tamanho totalizou 17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: chave F20691179038E5C6: 4 assinaturas duplicadas removidas
gpg: chave F20691179038E5C6: 54614 assinaturas não verificadas devido a chaves faltantes
gpg: chave F20691179038E5C6: 4 assinaturas reordenadas
gpg: chave F20691179038E5C6: chave pública "Daniel Kahn Gillmor " importada
gpg: nenhuma chave ultimamente confiável encontrada
gpg: Total de processadas: 1
gpg: importada: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg
A situação é agravada pelo fato de que os servidores de chaves OpenPGP não removem informações sobre os certificados. Isso é feito para que seja possível rastrear toda a cadeia de ações com os certificados e evitar sua substituição. Portanto, não é possível eliminar elementos comprometidos.
Na verdade, a rede SKS é como um grande "servidor de arquivos", onde qualquer pessoa pode gravar dados. Para ilustrar o problema, no ano passado, um residente do GitHub , que armazena documentos na rede de servidores de chaves criptográficas.
Por que a vulnerabilidade não foi corrigida
Não havia motivo para corrigir a vulnerabilidade. Antes, ela não havia sido utilizada para realizar ataques hackers. Embora a comunidade de TI aos desenvolvedores do SKS e do OpenPGP que prestassem atenção ao problema.
Para ser justo, vale mencionar que em junho eles finalmente um servidor de chaves experimental . Ele implementa proteção contra esses tipos de ataques. No entanto, sua base de dados está sendo preenchida do zero, e o servidor não faz parte do SKS. Portanto, levará tempo até que possa ser utilizado.

/ Unsplash /
Quanto ao bug no sistema original, corrigi-lo é dificultado por um complexo mecanismo de sincronização. A rede de servidores de chaves foi inicialmente escrita como um proof of concept para proteger a dissertação de doutorado de Yaron Minsky. Para isso, foi escolhida uma linguagem bastante específica, OCaml. Segundo o mantenedor Robert Hansen, entender o código é difícil, então apenas pequenas correções são feitas. Para modificar a arquitetura do SKS, será necessário reescrevê-la do zero.
De qualquer forma, no GnuPG não acreditam que a rede consiga ser corrigida algum dia. Em um post no GitHub, os desenvolvedores até mencionaram que não recomendam trabalhar com o servidor de chaves SKS. De fato, essa é uma das principais razões pelas quais iniciaram a transição para o novo serviço keys.openpgp.org. Resta-nos apenas acompanhar o desenvolvimento dos acontecimentos.
Alguns materiais do nosso blog corporativo:
Fonte: habr.com
