MASTG-TEST-0221: Algoritmos de Criptografia Simétrica Quebrados
Visão Geral¶
Para testar o uso de algoritmos de criptografia quebrados) em aplicativos Android, precisamos focar em métodos de frameworks e bibliotecas criptográficas usados para realizar operações de criptografia e descriptografia.
Cipher.getInstance: Inicializa um objeto Cipher para criptografia ou descriptografia. O parâmetroalgorithmpode ser um dos algoritmos suportados.SecretKeyFactory.getInstance: Retorna um objeto SecretKeyFactory que converte chaves em especificações de chave e vice-versa. O parâmetroalgorithmpode ser um dos algoritmos suportados.KeyGenerator.getInstance: Retorna um objetoKeyGeneratorque gera chaves secretas para algoritmos simétricos. O parâmetroalgorithmpode ser um dos algoritmos suportados.
Alguns algoritmos de criptografia simétrica quebrados incluem:
- DES (Data Encryption Standard): Chave de 56 bits, quebrável, retirado pelo NIST em 2005.
- 3DES (Triple DES, oficialmente Triple Data Encryption Algorithm (TDEA ou Triple DEA)): Tamanho de bloco de 64 bits, vulnerável a ataques Sweet32 de aniversário, retirado pelo NIST em 1º de janeiro de 2024.
- RC4: Fluxo de chave previsível, permite recuperação de texto simples Fraqueza do RC4, reprovado pelo NIST em 2014 e proibido pela IETF em 2015.
- Blowfish: Tamanho de bloco de 64 bits, vulnerável a ataques Sweet32, nunca aprovado pelo FIPS, e listado em "Algoritmos não aprovados" no FIPS.
O Android também fornece orientações adicionais sobre algoritmos criptográficos quebrados.
Etapas¶
- Execute Análise Estática no Android com uma ferramenta como semgrep no binário do aplicativo, ou use Rastreamento de Métodos (análise dinâmica) com uma ferramenta como Frida para Android, e procure por usos das funções criptográficas que realizam operações de criptografia e descriptografia.
Observação¶
A saída deve conter uma lista de locais onde algoritmos de criptografia simétrica inseguros são usados.
Avaliação¶
O caso de teste falha se você conseguir encontrar algoritmos de criptografia inseguros ou obsoletos) sendo usados.
Mitigations¶
Demos¶
MASTG-DEMO-0022: Usos de Algoritmos de Criptografia Simétrica Comprometidos em Cipher com semgrep