Os membros da equipe de segurança do Google, lançado através de uma postagem no blog tomaram a decisão de liberar o código fonte da biblioteca “Paranoid”, projetado para detectar fraquezas conhecidas em um grande número de artefatos criptográficos não confiáveis, como chaves públicas e assinaturas digitais criadas em sistemas de hardware e software vulneráveis (HSM).
O projeto pode ser útil para avaliação indireta do uso de algoritmos e bibliotecas que possuem lacunas e vulnerabilidades conhecidas que afetam a confiabilidade das chaves e assinaturas digitais geradas, sejam os artefatos que estão sendo verificados gerados por hardware inacessível para verificação ou componentes fechados que são uma caixa preta.
Além disso, o Google também menciona que uma caixa preta pode gerar um artefato se, em um cenário, não foi gerado por uma das próprias ferramentas do Google, como o Tink. Isso também aconteceria se fosse gerado por uma biblioteca que o Google pudesse inspecionar e testar usando Wycheproof.
O objetivo de abrir a biblioteca é aumentar a transparência, permitir que outros ecossistemas a usem (como Autoridades Certificadoras, CAs que precisam realizar verificações semelhantes para cumprir a conformidade) e receber contribuições de pesquisadores externos. Ao fazer isso, estamos pedindo contribuições, na esperança de que, depois que os pesquisadores encontrarem e relatarem vulnerabilidades criptográficas, as verificações sejam adicionadas à biblioteca. Dessa forma, o Google e o resto do mundo podem responder rapidamente a novas ameaças.
A biblioteca também pode analisar conjuntos de números pseudo-aleatórios para determinar a confiabilidade de seu gerador e, usando uma grande coleção de artefatos, identificar problemas anteriormente desconhecidos que surgem devido a erros de programação ou ao uso de geradores de números pseudo-aleatórios não confiáveis.
Por outro lado, também é mencionado que Paranoid apresenta implementações e otimizações que eles foram extraídos da literatura existente relacionada à criptografia, o que implica que a geração desses artefatos foi falha em alguns casos.
Ao verificar o conteúdo do registro público CT (Certificate Transparency), que inclui informações sobre mais de 7 bilhões de certificados, utilizando a biblioteca proposta, não foram encontradas chaves públicas problemáticas baseadas em curvas elípticas (EC) e assinaturas digitais baseadas no algoritmo. ECDSA, mas as chaves públicas problemáticas foram encontradas de acordo com o algoritmo RSA.
Após a divulgação da vulnerabilidade ROCA, questionamos quais outras fraquezas poderiam existir nos artefatos criptográficos gerados pelas caixas pretas e o que poderíamos fazer para detectá-las e mitigá-las. Em seguida, começamos a trabalhar neste projeto em 2019 e construímos uma biblioteca para realizar verificações em um grande número de artefatos criptográficos.
A biblioteca contém implementações e otimizações de trabalhos existentes encontrados na literatura. A literatura mostra que a geração de artefatos é falha em alguns casos; Abaixo estão exemplos de publicações nas quais a biblioteca se baseia.
Em particular, 3586 chaves não confiáveis foram identificadas gerado por código com a vulnerabilidade CVE-2008-0166 não corrigida no pacote OpenSSL para Debian, 2533 chaves associadas à vulnerabilidade CVE-2017-15361 na biblioteca Infineon e 1860 chaves com a vulnerabilidade associada a encontrar o máximo divisor comum ( DCM ).
Observe que o projeto pretende ser leve no uso de recursos computacionais. As verificações devem ser rápidas o suficiente para serem executadas em um grande número de artefatos e devem fazer sentido no contexto de produção do mundo real. Projetos com menos restrições, como RsaCtfTool , podem ser mais apropriados para diferentes casos de uso.
Por fim, menciona-se que as informações sobre os certificados problemáticos que permaneceram em uso foram enviadas aos centros de certificação para sua revogação.
Para os interessado em saber mais sobre o projeto, eles devem saber que o código está escrito em Python e é lançado sob a licença Apache 2.0. Você pode consultar os detalhes, bem como o código-fonte no link a seguir.