代码之家  ›  专栏  ›  技术社区  ›  Jake Wilson

有关版权保护/软件授权的意见/讨论,请致电总部[闭馆]

  •  3
  • Jake Wilson  · 技术社区  · 14 年前

    我正在开发一些软件,我最终会把它们卖出去。我一直在考虑不同的拷贝保护机制,包括自定义和第三方。我知道没有版权保护是100%完全证明,但我至少需要尝试。所以我在寻找一些我正在思考的方法的观点:

    我正在考虑的一种方法是,让我的软件在启动时连接到远程服务器,以便根据以太网端口的MAC地址验证许可证。

    • 如果软件不能连接到服务器,我会让它继续工作。我不想因为某个人当时不能上网就把他关在门外。如果你想知道,我正在开发的软件是非常依赖互联网/网络的。因此,用户在使用它时不可能没有互联网接入。事实上,没有互联网/网络接入是很没用的。
    • 有人知道我会怎么处理有多个MAC地址的计算机吗?现在很多主板都有2个以太网端口。大多数笔记本电脑都有1个以太网、1个wifi和蓝牙MAC地址。我想我可以选择一个MAC端口来运行它。不确定这是否真的重要
    • 聪明而狡猾的用户可以确定软件连接到的服务器,并可能将其添加到他们的主机文件中,以便它总是尝试连接到localhost。你认为这种可能性有多大?你认为软件有没有可能检查这一点?我想解析主机文件总是可以的。在那里查找您的服务器地址,看看它是否连接到localhost或其他什么。
    • 我考虑过加密狗,但我尽量避免它们,因为我知道它们是一个痛苦的工作。让他们保持更新,可能要求客户运行自己的许可证服务器对我来说有点太多了。我经历过这种情况,我不想让我的客户经历这种痛苦。此外,我还试图避免使用第三方加密狗的额外开销。
    • 另外,一个重要的注意事项是,对于该软件,我将向EULA中的用户非常清楚地说明,该软件连接到远程服务器以验证许可,并且不发送任何个人信息。我知道我不太喜欢那些在我不知道的情况下就做这种事情的软件。

    不管怎样,我只是想为那些走上这条路的人征求一些意见。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Yann Ramin    14 年前

    记住,如果有人想盗版你的软件,他们会的。一般来说,他们甚至不用费心去模拟许可证服务器,只需插入一个 jmp 所有许可证检查代码。您可以使这变得更加困难(自我修改代码、到处检查、直到许可证检查成功才交付的代码等),但这将成为执行许可证的全职工作。

    你是想阻止随便的海盗,这很好。对许可证服务器执行简单的HTTP请求,将许可证代码和MAC ID放在哈希中是一种合法的方法。有一个简单的方法来“注销”计算机(合理的做法是在计算机之间移动许可证或将其安装在某人的笔记本电脑上),并且不要在发生变化时进行硬锁定。不错的模式是itunesdrm(5台计算机,取消授权,并进行全局重置)和Windows(模糊因素取决于计算机的不同)。

    如果软件不能通过互联网访问或者组织不喜欢它,一般的做法是在客户网络上有一个许可服务器来管理授权部分。已经有了用于此的中间件(FlexLM等)。维护一个许可证服务器是大多数IT部门都不愿意做的事情,因此,如果您能够利用现有的基础设施,那么您的解决方案就越容易被接受。