Задать вопрос
mitaichik
@mitaichik

Как программно шифровать данные на Andriod?

Всем привет!

Интересует не реализация, а общий принцип.

Надо шифровать определенные данные. Если ключ и данные сохранять на устройстве - взломают без проблем.

Была мысль результат шифрования сохранять на устройстве, а ключ передавать на сервер. Но злоумышленник может декомпилировать приложение и посмотреть что откуда берется - то же не вариант.

Была мысль использовать в качестве ключа какой-либо пин-код (чтоб юзер вводил каждый раз) - но это обычно 4-6 цифр - там перебором элементарно вычислить.

Поэтому встает вопрос: можно ли надежно зашифровать и хранить данные на устройстве, так, чтоб при рут-достпе к устройству злоумышленник не мог расшифровать?
  • Вопрос задан
  • 1026 просмотров
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 3
@LenLord
android reverse
100% способа защиты при наличии рута - нет.
Это факт, есть только способы осложнить декомпиляцию и сделать ее не выгодной с точки зрения человеко-часов.
Можете подумать в сторону Android NDK еще.
Ответ написан
Комментировать
@LiguidCool
По факту при наличии рута в любом случае можно найти лазейку декомпилировав приложение и отключив например таймаут на количество неверно введенных паролей. Именно по этому тот же Сбербанк клиент при наличии рута на телефоне не позволяет производить денежные операции.
А вообще вы ответили на свой вопрос - используйте пинкод, а чтоб его не взломали делайте таймаут. Либо используйте сложный ключ, зашифрованный пинкодом. При определенном неверном количестве ввода пинкода, пароль удаляется безвозвратно.
Ответ написан
Комментировать
saintbyte
@saintbyte
Django developer
Так с Android 4.4 есть опция шифровать хранилище. А сбер скорее всего палит su и считает устройство порутеным. поставь на su чмод для всего и убери стики бит , потом можешь его перед запуском переименовывать например в su2 и смотреть палит ли его сбер =)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы