2014-09-12 4 views
0

Я пытаюсь создать лицензионный ключ для своего приложения, и я читал о RSA.Как использовать RSA для лицензионного ключа?

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

До сих пор я понял, что RSA имеет два ключа, общедоступный для шифрования данных, а частный - для дешифрования данных.

В моем случае я хочу избегать наличия ключа, хранящегося в приложении, и который может быть легко обнаружен хакером.

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

Кто-нибудь знает, как я могу избежать хранения закрытого ключа в приложении, пожалуйста? Я что-то упускаю ?

Приветствия заранее.

+0

Вам нужно будет использовать сигнатуры, которые в случае RSA составляют не менее 100 байт. Не то, что ваш пользователь захочет напечатать. С подписями DSA/ECDSA вы получаете около 30 байт. С фантастическими подписями BLS (трудно найти реализации для него) вы получаете около 15 байт. – CodesInChaos

+0

И, конечно же, независимо от того, насколько вы себя чувствуете в криптографии, злоумышленник всегда может исправить ваше приложение, чтобы удалить проверку ключа. Это предотвращает только генераторы ключей, а не трещины. – CodesInChaos

+0

Ввод ключа - это деталь ... Я планирую создать файл с кодом в нем независимо от размера кода ... Значит, размер кода на самом деле меня не беспокоит. И снова я не пытаюсь сделать мое приложение непогрешимым, что невозможно (я знаю). Я просто пытаюсь избежать первого уровня взлома, который хранит ключ в приложении. Любые идеи, пожалуйста? –

ответ

0

Вы можете создать простой XML-формат для лицензии с определенной идентификационной информацией в XML. Затем вы можете добавить подпись XML, используя свою любимую библиотеку XML здесь с вашей парой ключей RSA.

«Код» - это простой текстовый XML-файл, содержащий в себе подпись XML. Просто будьте осторожны, чтобы символы новой строки в текстовом файле не были преобразованы при транспортировке файла.

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

Смежные вопросы