Определить устройство было восстановлено
Я пытаюсь защитить автономные данные, хранящиеся на мобильных устройствах (Android / IOS), и часть защиты заключается в том, чтобы предотвратить восстановление пользователем своих старых данных.
Есть ли какое-то уникальное значение для android / ios, которое не изменится, если пользователь не выполнит сброс к заводским настройкам или не использует какое-либо резервное копирование или восстановление образа? И, конечно же, это значение должно быть доступно в некорневом устройстве.
Я знаю, что это довольно странный / неоднозначный вопрос, но я не смог ничего найти, пока гуглил.
Примечание: я не пытаюсь защитить от рутированных устройств, только устройства с официальными изображениями.
Обновление Что касается запроса в комментариях, вот простой пример:
У меня есть 2 мобильных устройства, с 2 приложениями, одно "клиентское" приложение и одно "серверное" приложение. 2 устройства общаются с помощью BT.
Когда приложение "клиент" впервые связывается с приложением "сервер", оно получает зашифрованный файл с номером Z.
После этого каждая транзакция между "клиентом" и "сервером" работает следующим образом:
- "Клиент" отправляет файл на "сервер" и удаляет файл.
- "Сервер" расшифровывает файл и уменьшает число на 1 (Z - 1)
- "Сервер" повторно зашифровывает файл и отправляет его обратно "клиенту".
- "Клиент" сохраняет файл для использования в следующей транзакции.
Я пытаюсь предотвратить "клиентское" восстановление данных. Например, пользователь "клиентского" устройства создаст изображение своего телефона после получения файла в первый раз и после транзакций E, когда файл содержит номер Z - E, пользователь восстановит свой телефон обратно, используя резервное изображение.
"Подвох" заключается в том, что это должно быть сделано в автономном режиме (онлайн решит это без сомнения).