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