MASTG-KNOW-0048: KeyChain

A classe KeyChain é usada para armazenar e recuperar chaves privadas de âmbito do sistema e seus certificados correspondentes (cadeia). O usuário será solicitado a definir um PIN ou senha de bloqueio de tela para proteger o armazenamento de credenciais se algo estiver sendo importado para o KeyChain pela primeira vez. Observe que o KeyChain é de âmbito do sistema; todos os aplicativos podem acessar os materiais armazenados no KeyChain.

Inspecione o código-fonte para determinar se os mecanismos nativos do Android identificam informações sensíveis. Informações sensíveis devem ser criptografadas, não armazenadas em texto claro. Para informações sensíveis que devem ser armazenadas no dispositivo, várias chamadas de API estão disponíveis para proteger os dados por meio da classe KeyChain. Complete as seguintes etapas:

  • Certifique-se de que o aplicativo está usando os mecanismos Android KeyStore e Cipher para armazenar informações criptografadas com segurança no dispositivo. Procure pelos padrões AndroidKeystore, import java.security.KeyStore, import javax.crypto.Cipher, import java.security.SecureRandom e usos correspondentes.
  • Use a função store(OutputStream stream, char[] password) para armazenar o KeyStore em disco com uma senha. Certifique-se de que a senha seja fornecida pelo usuário, não embutida em código.