Внешние модули безопасности - PullRequest
1 голос
/ 28 февраля 2011

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

Эти модули являются файлами BPL, и, если они присутствуют в папке приложения, приложение загружает их и использует все, что доступно внутри.

Как я могу предотвратить совместное использование этих модулей моими клиентами?

Мне нужно, чтобы они были авторизованы для использования модулей (модуль за модулем).

Для получения какой-либо лицензии, регистрации модуля, какой метод лучше?

Спасибо

1 Ответ

2 голосов
/ 28 февраля 2011

Простая идея (1):

Я предполагаю, что у всех ваших клиентов есть какой-то уникальный идентификатор (серийный номер, номер лицензии). Когда вы законно предоставляете BPL одному из своих клиентов, дайте ему два файла: сам BPL + файл, который содержит хэш имени BPL + номер лицензии пользователя. Если хеш не может быть проверен, не загружайте BPL. Удостоверьтесь, что вы не хэшируете сам BPL, у вас будут расстроенные клиенты, которые не могут использовать ваш BPL, потому что они подхватили вирус!

Простая идея (2):

Сделайте так, чтобы ваш BPL экспортировал функцию, которая выглядит следующим образом function OkForClient(ClientID:string):Boolean. Это позволяет изменить проверку с BPL на BPL.

Сложная идея:

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

...