Что касается ответа на этот вопрос, я не могу понять, как схема лицензирования программного обеспечения работает, если закрытый ключ хранится на сервере лицензий, а открытый ключ поставляется в исполняемом файле приложения, а не наоборот.
Я пытаюсь использовать следующую схему лицензирования ПО:
- Пользователь получает идентификатор продукта (на основе GUID) при покупке и использует его внутри приложения для активации Это.
- Приложение подключается к серверу лицензий, который отправляет обратно зашифрованный текст с использованием открытого ключа RSA. Этот текст (лицензия) будет храниться на жестком диске пользователя.
- Каждый раз, когда приложение запускается, ему необходимо расшифровать эту лицензию с помощью закрытого ключа RSA, чтобы извлечь различные параметры, такие как версия продукта, ограничения продукта, регистрация какой компании и т. Д.
Как приложение может расшифровать этот текст лицензии, если у него есть не закрытый ключ, а открытый ключ?
Спасибо!
РЕДАКТИРОВАТЬ:
- Если ключ, используемый для шифрования лицензии, доступен только на стороне сервера, а не для всех, можем ли мы назвать это закрытым ключом? В этом случае, если у одной стороны есть ключ для шифрования, а у другой стороны (общедоступной) есть ключ для дешифрования, может ли сторона, у которой есть ключ для дешифрования, получить ключ для шифрования? Обеспокоенность основана на различных темах о stackoverflow, что сгенерировать открытый ключ с помощью закрытого ключа не так уж и сложно. Если у вас есть закрытый ключ, вы фактически можете иметь оба ключа.
- Идея состоит в том, что после активации программного обеспечения больше не нужно подключаться к серверу лицензий.