Будет ли разумная безопасность этой политики в отношении LVL LVL?

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

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

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

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

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

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

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

Дополнительные пункты:

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

Ответы

Ответ 1

Что касается пиратства, всегда будет риск, ничто из того, что вы сделаете, полностью предотвратит его.

В отличие от других рисков, вы рискуете нарушить настроение своих клиентов с помощью приложения, которое они не могут использовать.

Я ожидал бы много отзывов 0% от несчастных клиентов, которые не могут даже использовать приложение, за которое они платили, поскольку оно было отключено, тогда как люди, получившие бесплатное приложение, скорее всего, не будут прерывать. Это нравится покупать DVD и получать ваше лицо, полное предупреждений об авторских правах, когда пираты получают непрерывный просмотр.

Я бы настаивал на лицензированном ответе при покупке приложения и не беспокоился о втором ответе. Если кто-то найдет способ обойти один ответ, он найдет их у второго.

Изменить: я согласен с kcoppock, что лицензионная проверка через 20 минут после покупки вызовет наименьшее вмешательство для клиентов и позволит избежать ошибки возврата, о которой вы упоминали