sábado, 22 de abril de 2017

Conjunto de testes de código aberto do Google para encontrar bugs de criptografia

Os desenvolvedores podem usar o Projeto Wycheproof para testar algoritmos criptográficos contra uma biblioteca de ataques conhecidos para descobrir possíveis fraquezas
Trabalhar com bibliotecas criptográficas é difícil e um único erro de implementação pode resultar em sérios problemas de segurança . Para ajudar os desenvolvedores a verificar seu código para erros de implementação e encontrar falhas em bibliotecas de software criptográfico, o Google lançou um conjunto de testes como parte do Projeto Wycheproof .
"Na criptografia, erros sutis podem ter conseqüências catastróficas e os erros em bibliotecas de software criptográfico de código aberto repetem com freqüência e permanecem por muito tempo descobertos", escreveram os engenheiros de segurança do Google, Daniel Bleichenbacher e Thai Duong, em um post anunciando o Google Security blogue . 
Wycheproof, a montanha mais pequena do mundo, é projetada de acordo com a montagem Wycheproof da Austrália, que fornece aos desenvolvedores uma coleção de testes unitários que detectam fraquezas conhecidas em algoritmos criptográficos e verificam comportamentos esperados. O primeiro conjunto de testes é escrito em Java porque Java tem uma interface criptográfica comum e pode ser usado para testar vários provedores.
"Reconhecemos que os engenheiros de software corrigem e previnem bugs com testes de unidade e descobrimos que muitos problemas criptográficos podem ser resolvidos pelos mesmos meios", escreveu Bleichenbacker e Duong.

A suíte pode ser usada para testar algoritmos criptográficos como RSA, criptografia de curva elíptica e criptografia autenticada, entre outros. O projeto também tem ferramentas prontas para usar para verificar fornecedores de Java Cryptography Architecture, como Bouncy Castle e os provedores padrão no OpenJDK. Os engenheiros disseram que estão convertendo os testes em conjuntos de vetores de teste para simplificar o processo de portá-los para outros idiomas.
Os testes nesta versão são de baixo nível e não devem ser usados ​​diretamente, mas ainda podem ser aplicados para testar os algoritmos contra ataques conhecidos publicamente, disseram os engenheiros. Por exemplo, os desenvolvedores podem usar o Wycheproof para verificar se os algoritmos são vulneráveis ​​a ataques de curva inválidos ou não-aceites em esquemas de assinatura digital.
Até agora, o projeto foi usado para executar mais de 80 casos de teste e identificou mais de 40 vulnerabilidades, incluindo um problema em que a chave privada dos algoritmos DSA e ECDHC poderia ser recuperada em circunstâncias específicas. A fraqueza no algoritmo estava presente porque as bibliotecas não estavam verificando os pontos da curva elíptica que receberam de fontes externas.
"Codificações de chaves públicas tipicamente contêm a curva para o ponto de chave pública.Se tal codificação é usada na troca de chaves, então é importante verificar que o público e chave secreta usada para calcular o segredo ECDH compartilhado estão usando a mesma curva Algumas bibliotecas não conseguem fazer essa verificação ", de acordo com a documentação disponível.
As bibliotecas criptográficas podem ser bastante difíceis de implementar, e os atacantes freqüentemente procuram implementações criptográficas fracas ao invés de tentar quebrar a matemática real subjacente à criptografia. Com a Wycheproof, os desenvolvedores e usuários podem verificar suas bibliotecas contra um grande número de ataques conhecidos sem precisar pesquisar documentos acadêmicos para descobrir que tipo de ataques eles precisam se preocupar.
Os engenheiros examinaram a literatura criptográfica pública e implementaram ataques conhecidos para construir o conjunto de testes. No entanto, os desenvolvedores não devem considerar a suíte para ser abrangente ou capaz de detectar todos os pontos fracos, porque novos pontos fracos estão sempre a ser descoberto e divulgado.
"O projeto Wycheproof não é de forma alguma completo: passar os testes não implica que a biblioteca seja segura, apenas significa que não é vulnerável aos ataques que o Projeto Wycheproof tenta detectar", escreveram os engenheiros.
Wycheproof vem duas semanas depois que o Google lançou um fuzzer para ajudar os desenvolvedores a descobrir erros de programação em software de código aberto. Como o OSS-Fuzz , todo o código para Wycheproof está disponível no GitHub. O OSS-Fuzz ainda está em versão beta, mas já trabalhou com 4 trilhões de casos de teste e descobriu 150 bugs em projetos de código aberto desde que foi anunciado publicamente.

Nenhum comentário:

Postar um comentário