Настройка шифрования Android - PullRequest
1 голос
/ 07 марта 2011

Для моего приложения для Android я хочу выпустить его бесплатно, но с рекламой.Затем я хочу дать пользователю возможность удалить рекламу за номинальную плату с помощью библиотеки PayPal.Таким образом, мне не нужно иметь две отдельные версии моего приложения, которые я должен отслеживать, разрабатывать и т. Д.

В любом случае, после того, как пользователь заплатит мне за удаление рекламы, мне нужно что-то безопасно хранитьэто указывает на то, что они заплатили, так что подделать мое приложение нелегко.Как мне это сделать?Я думал о шифровании строки и сохранении этого зашифрованного значения в SharedPreferences.Это жизнеспособный вариант?Если кто-то снимает apk со своего устройства и передает его кому-то другому, перемещается ли SharedPreferences вместе с ним или он сохраняется вне apk?А что, если у кого-то есть root-доступ?Могут ли они подделать SharedPreferences?

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

Спасибо!

Ответы [ 4 ]

1 голос
/ 07 марта 2011

Я бы сказал несколько пунктов:

  1. Переведите ваше приложение в бесплатную версию с рекламной поддержкой и платную версию. Вы можете упаковать вещи так, что вы сможете поделиться практически всеми частями приложения. Тогда просто выложите бесплатные и платные версии в маркете.

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

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

1 голос
/ 07 марта 2011

Что вы можете сделать, это взять некоторые уникальные данные с телефона (идентификатор устройства, версия приложения ... и т. Д.) В вашем приложении и объединить их в сообщение.

Затем используйте пару открытый / закрытый ключ. Публичная часть может быть в вашем приложении, а частная часть - у вас.

Когда пользователь платит за ваше приложение, он отправляет вам строку с идентификатором устройства и т. Д., А когда вы получили платеж, вы отправляете обратно блок данных, содержащий сертификат.

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

Есть еще много деталей, над которыми вам нужно разобраться (как данные отправляются туда-сюда ... и т. Д.), Но с помощью таких инструментов вы сможете достичь того, что вам нужно. ищем.

Вы можете посмотреть здесь, как управлять сертификатами: http://developer.android.com/reference/java/security/cert/package-summary.html

Конечно, насколько изощренным вы хотите быть, зависит от вашего приложения и от того, сколько людям придется платить. Обратный инжиниринг, чтобы обойти все, что возможно, но я сомневаюсь, что многие люди справятся с этой задачей, если им придется заплатить всего 0,99 доллара, чтобы избавиться от рекламы.

0 голосов
/ 07 марта 2011

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

0 голосов
/ 07 марта 2011

Если пользователь определен достаточно, он сможет перепроектировать ваше приложение и получить ключ дешифрования, или просто полностью исправить вашу защиту. SharedPreferences хранятся в файле, который доступен любому (хорошо, может быть, любой получит root-доступ ...).

Таким образом, сэкономьте свои усилия и даже не пытайтесь защитить свое приложение ... кто собирается перестроить ваше приложение, чтобы в любом случае просто избавиться от рекламы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...