Te informacje są przeznaczone dla deweloperów aplikacji, które używają szyfrowania za pomocą mniej bezpiecznego trybu AES/ECB. Szyfrowanie treści za pomocą takich trybów może prowadzić do generowania niewystarczająco zaszyfrowanych tekstów i potencjalnie narażać dane użytkowników. Miejsca wystąpienia mniej bezpiecznych trybów szyfrowania w aplikacji znajdziesz w powiadomieniu z Konsoli Play. Jeśli lokalizacja kończy się fragmentem „(w kodzie ładowanym dynamicznie)”, oznacza to, że znajduje się w kodzie dynamicznie ładowanym przez aplikację lub biblioteki używane przez aplikację. Aplikacje zwykle używają kodu ładowanego dynamicznie podczas dostarczania funkcji na żądanie, ale istnieją także inne niezalecane techniki (niektóre z nich naruszają zasady Google Play i nie należy ich używać). Również programy pakujące mogą przekształcać kod aplikacji w kod ładowany dynamicznie.
Usuwanie przyczyn alertów o potencjalnie niebezpiecznym trybie szyfrowania kryptograficznego
Sprawdź, gdzie w aplikacji powstaje instancja mechanizmu szyfrowania. Te tryby konfiguracji sugerują korzystanie z potencjalnie niebezpiecznych metod AES/ECB:
"AES"
"AES/ECB/NoPadding"
"AES/ECB/PKCS5Padding"
"AES/ECB/ISO10126Padding"
Na przykład ten kod domyślnie używa trybu AES/ECB, ponieważ występuje w nim „AES”:
// Alert konsoli odnosi się do tej metody
public byte[] encryptionUtil(String key, String iv, byte[] plainText) {
Cipher cipher = Cipher.getInstance(“AES”); // Domyślnie używany jest tryb AES/ECB
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 zaleca deweloperom korzystanie z trybu “AES/GCM/NoPadding”
zamiast powyższego potencjalnie niebezpiecznego trybu.
Dalsze kroki
- Zaktualizuj aplikację w opisany powyżej sposób.
- Zaloguj się w Konsoli Play i prześlij zaktualizowaną wersję aplikacji.
Do tego czasu nowa aplikacja lub aktualizacja aplikacji będzie miała status Czeka na publikację. Jeśli nie została poprawnie zaktualizowana, ostrzeżenie nadal będzie się pojawiać.
Chętnie Ci pomożemy
Jeśli masz pytania techniczne związane z tą luką, możesz je opublikować na Stack Overflow, używając tagu „android-security”.