В чем смысл шифрования чего-либо в Android (или Java), если исходный код можно реконструировать?

Android и Java предоставляют криптографический API , который относительно легко использовать для неспециалистов в области криптографии.

] Но поскольку мы знаем, что никакой код на самом деле не может быть защищен от реверс-инжиниринга, особенно строковые константы, используемые как начальные числа или общие секреты, мне интересно: какой смысл проходить через испытания шифрования и дешифрования в приложениях Android?

Я что-то упускаю?

Пытаюсь сделать свой вопрос более ясным и конкретным: Предположим, у меня есть приложение, в котором определенные строки использовали с помощью кода и в кода (т.е. , а не пользовательские данные) должны быть секретными: один из подходов состоит в том, чтобы хранить их в зашифрованном виде в скомпилированном .apk и расшифровать их (используя запутанный жестко закодированный пароль) по адресу время выполнения. Другой подход - хранить их в зашифрованном виде на удаленном сервере, получать их (через Интернет) и расшифровывать (используя общий пароль) во время выполнения.

Я не вижу большой разницы между ними, поскольку оба требуют наличия «секретного ключа» в коде (с возможностью обратного проектирования).

Есть ли решение этой проблемы?

Если решения нет, зачем вообще шифрование?

8
задан Cœur 28 June 2018 в 13:01
поделиться