2015-04-23 5 views
0

Предположим, что я (как разработчик приложения) хочу что-то зашифровать ключом, который хранится где-то в моем приложении. В конечном счете, я должен загрузить этот ключ в память и передать его вместе с текстовыми данными на некоторый Java-класс в javax.crypto. Поскольку эти классы предоставляются JVM во время выполнения, если злоумышленник может управлять JVM и заменять реализацию этих классов на своем собственном устройстве Android, он сможет увидеть как ключ, так и обычный текст, который мой приложение хочет зашифровать. И поскольку Android является открытым исходным кодом, любой может изменить его и построить для запуска на своем собственном устройстве и запустить на нем мое приложение. Разве это не означает, что они могут украсть ключ моего приложения и увидеть мой простой текст?Безопасно ли использовать встроенный API crypto для Android/Java?

Если да, можно ли защититься от этого? Например, используйте стороннюю криптографическую библиотеку, включенную в мой APK? (Хотя кто-то мог так же легко декомпилировать APK и обменять эти классы тоже, не так ли?)

ответ

2

Не беспокойтесь об этом. Как только безопасность Android будет прервана до такой степени, что злоумышленник может начать замену классов в пути загрузки вашей системы, ваши мертвые. Есть много атак, которые они могли бы установить на ваше приложение или на ОС в целом.