Queste informazioni sono rivolte agli sviluppatori di app che contengono crittografia che utilizzano la modalità meno sicura AES/ECB. La crittografia dei contenuti con questa modalità debole può portare a testi crittografati inefficaci e mettere a rischio i dati utente. Puoi trovare le posizioni delle modalità di crittografia meno sicure nella tua app nella notifica di Play Console relativa all'app. Se una posizione termina con "(in codice caricato dinamicamente)", questa viene caricata in modo dinamico dal codice dell'app o dalle librerie utilizzate dall'app. Le applicazioni in genere utilizzano il codice caricato dinamicamente tramite la distribuzione di funzionalità on demand, anche se esistono altre tecniche non consigliate (alcune tecniche non consigliate violano anche le norme di Google Play e non devono essere utilizzate). Inoltre, i packer possono trasformare il codice dell'applicazione in codice caricato dinamicamente.
Come correggere gli avvisi relativi a modalità di crittografia non sicure
Controlla se nella tua app è presente la posizione in cui è stata creata un'istanza di Cipher. Le seguenti modalità di configurazione implicano l'utilizzo di formati AES/ECB non sicuri:
"AES"
"AES/ECB/NoPadding"
"AES/ECB/PKCS5Padding"
"AES/ECB/ISO10126Padding"
Ad esempio il seguente codice utilizza la modalità AES/ECB per impostazione predefinita poiché è stata fornita la modalità di configurazione "AES":
// L'avviso nella Console si riferisce a questo metodo
public byte[] encryptionUtil(String key, String iv, byte[] plainText) {
Cipher cipher = Cipher.getInstance(“AES”); // Utilizza la modalità AES/ECB per impostazione predefinita
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), “AES”);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, paramSpec);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, paramSpec);
return cipher.doFinal(plainText);
}
Google consiglia agli sviluppatori di utilizzare "AES/GCM/NoPadding"
al posto della modalità non sicura indicata sopra.
Passaggi successivi
- Aggiorna la tua app seguendo i passaggi precedenti.
- Accedi a Play Console e invia una versione aggiornata della tua app.
In questo lasso di tempo, la tua nuova app o l'aggiornamento dell'app presenterà lo stato In attesa di pubblicazione fino al termine dell'esame della tua richiesta. Se l'app non è stata aggiornata correttamente, continuerai a vedere l'avviso.
Siamo a tua disposizione
Puoi pubblicare eventuali domande tecniche relative alla vulnerabilità su Stack Overflow con il tag "android-security".