Система регистрации условного доступа, которую я сейчас разрабатываю, внедряет открытый ключ DSA в сам исполняемый файл, а закрытый ключ находится на сервере. (Для обсуждения допустим, что сервер на 100% безопасен, и никто не может получить доступ к закрытому ключу.)
Всякий раз, когда программа приобретается, сервер генерирует лицензию для пользователя, подписывая имя пользователя с помощью закрытого ключа. Затем эта лицензия отправляется пользователю по электронной почте. После того, как пользователь вручную вводит свое имя и лицензию в shareware-приложение, он проверяется открытым ключом в приложении как действительная или недействительная лицензия.
Однако для определенного человека было бы достаточно тривиальным с правом "ноу-хау", чтобы разобрать исполняемый файл и получить открытый ключ.
Мой вопрос здесь в том, что они могут с этим сделать? Является ли открытый ключ само по себе абсолютно безобидным? Является ли открытый ключ достаточной информацией для обратной инженерии генератора ключей?
Любопытные умы хотят знать. Спасибо заранее!