Защита моего приложения - PullRequest
5 голосов
/ 21 мая 2011

В конце концов (скрестив пальцы) Я хотел бы увидеть мое приложение на рынке.Я предполагаю продажу своего приложения со своевременными лицензиями (ежемесячно, ежегодно и т. Д.) И разрешаю доступ пользователям, только если они находятся в пределах их лицензии.Например, если бы я приобрел лицензию на мою программу на один месяц, по истечении 32 дней с даты покупки мне больше не предоставили бы полный доступ к приложению.

Некоторые вещи, которые у меня естьмысль о:

1) Запись / чтение ключей реестра (не рекомендуется) - в этом сценарии я создаю раздел реестра, используя зашифрованную информацию о покупке клиента, и проверяю свое приложение взад-впередс реестром, проверяя, исчерпал ли пользователь свою лицензию.

2) Чтение с веб-страницы (безопасно? НЕТ!) - я думал о создании таблицы, которая будет включать информацию обо всех моихклиенты (идентификатор клиента, купленная лицензия, дата покупки и т. д.).Опять же, эта информация должна быть зашифрована / расшифрована, что не является проблемой вообще.Что если, однако, клиент отключил свое интернет-соединение?



Что бы вы сказали, самый эффективный И самый интеллектуальный способ хранения / чтения информации о клиенте?

Безопасность - это ключ!

Спасибо, Эван

1 Ответ

7 голосов
/ 21 мая 2011

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

Я бы пошел с простым хранилищем в реестре или в файле в% appdata% (например, хранение всех деталей покупки в виде простого текста вместе со значением контрольной суммы в поле DWORD).Большинству пользователей платить проще, чем пытаться взломать систему безопасности.

Чтобы действительно защитить приложение от того, кто хочет его взломать, вам придется поместить некоторую существенную часть логики приложения ввеб-сервис, на серверах под вашим контролем, а затем заставить всех клиентов использовать его.Обратите внимание, что при наличии веб-службы недостаточно просто проверить правильность приложения, веб-службе необходимо выполнить важную операцию, без которой программа не будет работать.Тогда остается «единственная» проблема - как аутентифицировать и авторизовать клиентов для использования веб-службы и справиться с проблемой, когда приложению необходим доступ в Интернет.Вы также должны принимать во внимание любые проблемы конфиденциальности / секретности с данными, передаваемыми на ваш сервер для расчетов.

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

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