MASTG-TEST-0208: Tamanhos de Key Insuficientes
Visão Geral¶
Neste caso de teste, procuraremos o uso de tamanhos de chaves insuficientes em aplicativos Android. Para isso, precisamos focar nos frameworks e bibliotecas criptográficos disponíveis no Android e nos métodos utilizados para gerar, inspecionar e gerenciar chaves criptográficas.
A Java Cryptography Architecture (JCA) fornece classes fundamentais para geração de chaves, que são frequentemente usadas diretamente quando a portabilidade ou compatibilidade com sistemas mais antigos é uma preocupação.
KeyGenerator: A classeKeyGeneratoré usada para gerar chaves simétricas, incluindo AES, DES, ChaCha20 ou Blowfish, além de várias chaves HMAC. O tamanho da chave pode ser especificado usando o métodoinit(int keysize).KeyPairGenerator: A classeKeyPairGeneratoré usada para gerar pares de chaves para criptografia assimétrica (por exemplo, RSA, EC). O tamanho da chave pode ser especificado usando o métodoinitialize(int keysize).
Para mais informações, consulte a seção do MASTG sobre "Geração de Chaves").
Etapas¶
- Execute uma ferramenta de análise estática, como semgrep, no código e procure por usos das funções criptográficas que geram chaves.
Observação¶
A saída deve conter uma lista de locais onde são utilizados comprimentos de chave insuficientes.
Avaliação¶
O caso de teste falha se for possível encontrar o uso de tamanhos de chave insuficientes no código-fonte. Por exemplo, um tamanho de chave de 1024 bits é considerado insuficiente para criptografia RSA, e um tamanho de chave de 128 bits é considerado insuficiente para criptografia AES considerando ataques de computação quântica.
Demos¶
MASTG-DEMO-0012: Geração de Chaves Criptográficas com Comprimento Insuficiente