Используйте RSA для подписания файла лицензии - PullRequest
5 голосов
/ 15 июня 2011

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

Теперь, насколько я понимаю, у меня есть некоторые данные (файл лицензии), и я использую метод SignData RSACryptoServiceProvider для создания подписи для данных с открытым и закрытым ключом, созданным с помощью ExportParameters (true).

Затем я передал бы файл лицензии и открытый ключ с программным обеспечением, чтобы я мог проверить данные (лицензию) на клиенте, используя VerifyData, но что мешает пользователю создать свою собственную пару открытого / закрытого ключа и воссоздать данные и просто перезаписать открытый ключ и данные?

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

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

Может ли кто-нибудь указать мне правильное направление или дать совет?

Спасибо.

1 Ответ

4 голосов
/ 15 июня 2011

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

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

...