Den här informationen är avsedd för utvecklare vars appar använder den mindre säkra krypteringsmetoden AES/ECB. Den här svaga krypteringsmetoden kan leda till svaga chiffer så att användarnas uppgifter utsätts för risk. Var du hittar de mindre säkra krypteringslägena i appen finns i aviseringen om appen på Play Console. Om en plats slutar med (”i dynamiskt inläst kod”) är platsen i kod som läses in dynamiskt av appen eller av bibliotek som används av appen. Oftast används appar med dynamiskt inläst kod via leverans av funktioner på begäran, även om det finns andra tekniker som inte rekommenderas (vissa tekniker som inte rekommenderas strider mot Google Plays policy och ska inte användas). Packers kan dessutom omvandla appkoden till dynamiskt inläst kod.
Så här åtgärdar du varningar om osäker krypteringsmetod
Se efter var ett Cipher instansieras i appen. Följande konfigurationer innebär att det osäkra AES/ECB används:
AES
AES/ECB/NoPadding
AES/ECB/PKCS5Padding
AES/ECB/ISO10126Padding
Med följande kod används t.ex. AES/ECB som standard eftersom AES har angetts:
// Aviseringen från Play Console hänvisar till den här metoden
public byte[] encryptionUtil(String key, String iv, byte[] plainText) {
Cipher cipher = Cipher.getInstance(“AES”); // Använder AES/ECB-läge som standard
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 rekommenderar att AES/GCM/NoPadding
används i stället för den osäkra metoden ovan.
Nästa steg
- Uppdatera appen enligt anvisningarna ovan.
- Logga in på Play Console och skicka in en uppdaterad version av appen.
Medan granskningen pågår har appen eller appuppdateringen statusen väntar på publicering. Om uppdateringen inte gjordes korrekt kommer varningen att kvarstå.
Vi hjälper dig gärna
Om du har tekniska frågor som handlar om säkerhetsbristen kan du ställa dem på Stack Overflow. Använd taggen android-security.