Skip to content

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 classe KeyGenerator é 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étodo init(int keysize).
  • KeyPairGenerator: A classe KeyPairGenerator é usada para gerar pares de chaves para criptografia assimétrica (por exemplo, RSA, EC). O tamanho da chave pode ser especificado usando o método initialize(int keysize).

Para mais informações, consulte a seção do MASTG sobre "Geração de Chaves").

Etapas

  1. 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