MASTG-TEST-0014: Teste da Configuração de Algoritmos Padrão de Criptografia
Visão Geral¶
Análise Estática¶
Identifique todas as instâncias de primitivas criptográficas no código. Identifique todas as implementações personalizadas de criptografia. Você pode procurar por:
- classes
Cipher,Mac,MessageDigest,Signature - interfaces
Key,PrivateKey,PublicKey,SecretKey - funções
getInstance,generateKey - exceções
KeyStoreException,CertificateException,NoSuchAlgorithmException - classes que usam os pacotes
java.security.*,javax.crypto.*,android.security.*eandroid.security.keystore.*.
Identifique se todas as chamadas para getInstance usam o provider padrão dos serviços de segurança ao não especificá-lo (isso significa AndroidOpenSSL, também conhecido como Conscrypt). O Provider só pode ser especificado em código relacionado a KeyStore (nessa situação, o KeyStore deve ser fornecido como provider). Se outro provider for especificado, ele deve ser verificado de acordo com a situação e o caso de negócio (por exemplo, versão da API Android), e o provider deve ser examinado quanto a possíveis vulnerabilidades.
Certifique-se de que as melhores práticas descritas no capítulo "Criptografia para Aplicativos Móveis)" sejam seguidas. Consulte algoritmos inseguros e obsoletos) e problemas comuns de configuração).
Análise Dinâmica¶
Você pode usar Rastreamento de Métodos em métodos criptográficos para determinar valores de entrada/saída, como as chaves que estão sendo utilizadas. Monitore o acesso ao sistema de arquivos enquanto operações criptográficas são realizadas para avaliar onde o material da chave é gravado ou lido. Por exemplo, monitore o sistema de arquivos usando o API monitor do RMS Runtime Mobile Security.