Будет ли такая реализация политики Google LVL достаточно безопасной?

По умолчанию ServerManagedPolicy, которую Google предоставляет в своей библиотеке проверки лицензий , полагается на ответы сервера для определения интервала повторной проверки лицензии. Это приводит к необходимости повторной проверки каждые несколько дней на неограниченный срок. Это не только неприятность для пользователей, но и может стать серьезной проблемой для пользователей, которые длительное время не могут подключиться. (Мы только что получили запрос от пользователя, который ожидает, что будет без подключения к Интернету в течение нескольких недель, что и мотивирует этот вопрос.)

Подводя итог, я ищу алгоритм, который позволит выполнить две вещи:

  1. резко снизить требования к подключению по сравнению с ServerManagedPolicy;
  2. обеспечивают такой же уровень защиты от -пиратства.

В ответе на этот вопрос предлагаемый алгоритм политики состоит в том, чтобы игнорировать время, указанное в ответе с сервера Google, и вместо этого использовать срок действия ЛИЦЕНЗИИ около месяца с попытками проверки лицензии каждые несколько дней (, чтобы продлить срок действия, если получен ответ LICENSED ).

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

Следующий алгоритм достигает первой цели, но я не знаю о второй. Приветствуются любые комментарии, указывающие на недостатки этого алгоритма, или предложения по другому подходу.

  1. При первом запуске выполните проверку лицензии и настаивайте на ответе LICENSED, прежде чем предоставлять полную функциональность. Получив однажды,установите относительно короткий срок действия (, но больше, чем период возврата, который предоставляет Google Play, в настоящее время 15 минут ). Также зарегистрируйте льготный период на несколько дней сверх этого.
  2. Приложение начнет проверку снова после истечения срока действия лицензии. Если не удалось подключить (режим полета и т. д. ), он все равно будет работать до истечения льготного периода.
  3. По истечении льготного периода настаивайте на втором ответе LICENSED, прежде чем разрешить нормальное функционирование приложения.
  4. После получения второго ответа LICENSED, включите все функции приложения навсегда и никогда больше не проверяйте.
  5. Если в какой-либо момент получен ответ UNLICENSED, полностью отключите полную функциональность. (Разумеется, пользователь может вернуться к шагу 1, удалив все данные приложения.)

Дополнительные баллы:

  • Было предложено отказаться от первой проверки лицензии и дождаться истечения периода возврата, прежде чем выполнять проверку лицензии. Цель настаивания на первом ответе LICENSED состоит в том, чтобы предотвратить эксплойт, когда после сбоя проверки лицензии пользователь просто останавливает процесс приложения, очищает данные приложения и перезапускает приложение. (Приложение приносит пользу, даже если его можно использовать всего 15 минут за раз.)
  • Цель настаивания на втором ответе LICENSED состоит в том, чтобы обойти эксплойт buy -run -backup -return -restore.
  • Я не спрашиваю, является ли хорошей идеей возврат -проверки лицензии или нет (это то, что Google предлагает вместо своего устаревшего механизма защиты от копирования ). Я также прекрасно понимаю, что ни одна защита от -пиратства не является надежной, и весь механизм лицензирования Google можно обойти (, и в этом случае все вопросы о разработке алгоритма политики не имеют значения ).Суть этого вопроса заключается в относительных рисках (для нас )и преимуществах (для пользователя )вышеуказанного алгоритма по сравнению с другими политиками (. такие какServerManagedPolicy).

15
задан Machavity 29 March 2019 в 15:26
поделиться