外部模块安全性

时间:2011-02-28 12:59:34

标签: delphi licensing bpl

我正在为应用程序开发一些外部模块。

这些模块是BPL文件,如果存在于应用程序文件夹中,则应用程序会加载它们并使用内部可用的任何内容。

如何防止客户共享这些模块?

我需要他们被授权使用模块(逐个模块)。

要获得某种许可,注册模块,最好的方法是什么?

由于

1 个答案:

答案 0 :(得分:2)

简单的想法(1):

我假设您的客户都有某种唯一ID(序列号,许可证号)。当您合法地向您的某个客户提供BPL时,请给他两个文件:BPL本身+包含BPL名称的哈希值+用户许可证号的文件。如果无法验证哈希值,请不要加载BPL。确保你没有对BPL本身进行散列,你最终会因为他们感染了病毒而无法使用你的BPL的烦恼客户!

简单的想法(2):

让您的BPL导出一个类似于function OkForClient(ClientID:string):Boolean的函数。这允许您将验证从BPL更改为BPL。

复杂的想法:

花一周时间学习非对称加密,将第一个选项中的哈希文件替换为攻击者无法复制的内容,即使他们确实知道算法。