Skip to content

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.* e android.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.