Java: проверка подлинности и проверка лицензии с помощью программного обеспечения или сервера?

Мне нужно несколько советов о том, как аутентифицировать лицензии (пользователь / лицензионный ключ) .

Лучше делать то, что делают многие игры, что проверяет ключ cd с серверов компании. Есть ли руководство о том, как реализовать это, не становясь "взломанным" или "исправленным"?

ИЛИ лучше просто проверить пользовательский / лицензионный ключ в программном обеспечении? Разве вы не увидите кейгенов, плавающих вокруг сети через некоторое время?

Пожалуйста, порекомендуйте.

3 ответа

Решение

Если вы сделаете это на стороне клиента, тогда код можно будет декомпилировать и изучить алгоритм. Хранение этого на стороне сервера предотвращает это.

Если вы просто возвращаете тип "true / false", может быть разработан прокси-сервер, который просто возвращает "true" все время, так что клиент думает, что он включен, а когда нет.

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

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

Сколько стоит ваша программа и сколько продаж вы ожидаете получить? Если какой-либо ответ ниже 50, то, скорее всего, вам не стоит его обдумывать. Да, вы можете декомпилировать Java, но если вы продаете горстке людей, которых вы знаете, у них не будет знаний для этого (или они сделали бы это сами). Игры ломаются, потому что миллионы людей хотят в них играть. Какая-то случайная программа, которую вы пытаетесь продать за 10 долларов или что-то еще, должна ускользнуть от радаров:) И если она все же взломана, выпустите версию 2.0 с лучшей защитой...

Есть ли руководство о том, как реализовать это, не становясь "взломанным" или "исправленным"?

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

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

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

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