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

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

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

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

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

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

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

  1. При первом запуске выполните проверку лицензии и настаивайте на ответе LICENSED, прежде чем предоставлять полную функциональность. После получения установите относительно короткий срок действия (но дольше, чем период возврата, который предоставляет Google Play, в настоящее время 15 минут). Также зарегистрируйте льготный период в несколько дней после этого.
  2. Приложение начнет проверку снова после истечения срока действия лицензии. Если ему не удалось подключиться (режим полета и т. Д.), Он все равно будет функционировать до истечения льготного периода.
  3. После истечения льготного периода настаивайте на втором ЛИЦЕНЗИРОВАННОМ ответе, прежде чем разрешить нормальное функционирование приложения.
  4. Получив второй ЛИЦЕНЗИОННЫЙ ответ, надолго включите все функции приложения и никогда больше не проверяйте.
  5. Если в любой момент получен НЕОГРАНИЧЕННЫЙ ответ, полностью отключите полную функциональность. (Конечно, пользователь может вернуться к шагу 1, удалив все данные приложения.)

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

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

1 ответ

Решение

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

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

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

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

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

Другие вопросы по тегам