web-dev-qa-db-fra.com

"Votre application contient des modèles de cryptage cryptographiques dangereux" - Comment puis-je vous débarrasser de cet avertissement?

Il y a quelques jours, dans "Rapport de pré-lancement pour APK" dans Google Play Console, il commence à me signaler

Unsafe encryption

Detected in APK ???

Your app contains unsafe cryptographic encryption patterns. Please see this Google Help Centre article for details.

Vulnerable classes:

c.j.a.s.J.b

enter image description here


Cependant, depuis le début de l'APK, je ne change rien dans le code de code de cryptage/description. Par conséquent, je ne suis pas sûr de savoir pourquoi Google commence à m'avérer sur l'APK récent?

Une idée de la détermination? Comme, les informations pour les classes vulnérables c.j.a.s.J.b n'est pas utile.

J'essaie d'utiliser proguard + mapping.txt à revenir c.j.a.s.J.b mais capable de comprendre quelle classe est-ce.

Avez-vous une idée de la façon dont je peux me débarrasser de Google Security Avertissement?

6
Cheok Yan Cheng

Le jeu Google suggère avec les classes vulnérables avec le nom de la fonction, vous pouvez voir dans la boîte de dialogue.

Passez en revue votre application pour des clés informatiques statiquement calculées, des vecteurs d'initialisation et/ou des sels utilisés dans les opérations de cryptage cryptographiques et assurez-vous que ces valeurs sont construites en toute sécurité

Par exemple :

public byte[] encryptionUtil(String key, String iv, byte[] plainText) {
    Cipher cipher = Cipher.getInstance(“AES/GCM/NoPadding”);
    SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), “AES”);
    GCMParameterSpec paramSpec = new GCMParameterSpec(256, iv.getBytes());
    cipher.init(Cipher.ENCRYPT_MODE, keySpec, paramSpec);
    return cipher.doFinal(plainText);
  }

Et vous appelez une fonction comme suit:

byte[] cipherText = encryptionUtil(“abcdef...”, “010203040506”, plainText);

Voici votre clé de cryptage “abcdef...” est fourni en tant que chaîne statique. Une valeur calculée statique est une valeur identique à chaque exécution de votre application. Les valeurs cryptographiques calculées statiquement peuvent être extraites de votre application et utilisées pour attaquer les données cryptées de votre application.

Afin que vous puissiez utiliser chiffrétedsharedpreferences pour stocker des données localement

Lien de référence https://developer.android.com/reference/androidx/security/crypto/encryptedsharedPrreferences

OR

Sécurité Jetpack

Pour plus de détails: assainissement du cryptage cryptographique dangereux

2
Vikram Kodag