9

我想问的是,是否有人知道用于软件保护的硬件 USB 加密狗,它为跨平台 Java 部署提供了非常完整的开箱即用 API 支持。

它的 SDK 应该提供一个 jar(每个操作系统和位数只有一个,而不是一个不同的库)准备作为库添加到一个项目中。

  • jar 应该包含各种操作系统和位数的所有本机内容
  • 从应用程序的角度来看,应该继续编写(api 调用)一次并在任何地方运行,而不必关心最终用户将在哪里运行软件
  • 提供的 jar 本身应该处理加载适当的本机库

这样的事情存在吗?

到目前为止我已经尝试过,你有不同的 API 和为 win32、linux32、win64、linux64 等编译的库(或者你甚至必须在目标机器上自己编译东西),但是嘿,我们在这里做 Java ,我们不知道(也不关心)程序将在哪里运行!

而且我们不能指望最终用户成为软件工程师,调整(并破坏!)它的 linux 服务器、链接库、弄乱 gcc、乱扔文件系统等等......

一般来说,Java 支持(以透明的跨平台方式)对于我目前评估过的加密狗 SDK(例如 KeyLok 和 SecuTech 的 UniKey)来说非常糟糕。我什至购买了(没有可用的免费评估套件)SecureMetric SDK 和加密狗(根据营销材料,它们应该是“soooo”直接集成的:\),它们是有史以来最糟糕的:SecureDongle X 不支持 64 位,而 SecureDongle SD 是根本不是跨平台的。

那么,有没有人经历过这个并找到了用于跨平台部署的终极 Java 安全 USB 加密狗?

注:软件是小批量、高价值的;应用程序处于离线状态(无法访问互联网的内联网),因此没有在线激活替代方案等。

- 编辑

试用了 HASP 加密狗(以前称为“Aladdin”),并将它们添加到禁止列表:这里也没有开箱即用(out-of-the-jar)支持:例如end-linux-user 必须手动将 .so 库(适当位数的特定文件)放在他的文件系统上的正确位置,然后导出一个 env。相应地变化。

4

3 回答 3

3

完全免责声明:我在一家生产软件保护加密狗 (CodeMeter) 的公司工作。但我相信我们可能有一个满足您要求的解决方案:我们有一个适用于所有平台(Win、Mac、Linux 等 32 位和 64 位)的单一 API。每台最终用户机器只需要一个运行时(Windows 上的服务;Linux 上的守护程序)。我们使用原生 Java API,它使用 TCP/IP 来调用我们的运行时,因此不需要特殊的设备驱动程序。您可以在发送加密狗之前进行激活(预编程),或通过文件交换 (NikeNet) 在无法访问 Internet 的部署中进行,或者您可以移除加密狗,将其带到具有 Internet 连接的机器上并更新那里的许可证。

在比 API 更高的级别上,我们有 AxProtector,它是一种自动保护/加密工具,您可以使用它来测试我们的保护系统,而无需更改源代码。这将使您可以在您感兴趣的所有平台上测试实现——您不需要为不同的平台创建多个版本。

我们让一家财富 100 强公司使用它来保护在非英特尔 Solaris 上运行的 Java 应用程序,因此我们知道它已经作为跨平台解决方案进行了压力测试。

我们有一个免费的全功能评估系统,我们可以尽快为您服务。如果您通过我个人资料中的电子邮件地址向我发送电子邮件,我们可以向您发送一个 SDK,并帮助您快速确定这是否能解决您的问题。

于 2012-01-24T18:48:08.410 回答
2

您可以使用Dinkey Pro 加密狗来实现这一点。虽然他们确实为每个操作系统和架构使用单独的本地库,但您只需要调用他们的 Java API,它会处理任何特定于平台的位。使用 .class(API)将库包装在一个 JAR 文件中,您就有了一个简洁的解决方案。加密狗本身是无人驾驶的。

于 2012-01-27T12:51:29.423 回答
0

我只能建议避免使用SecuTech UniKey系统。在评估期间,产品满足了我们需要的所有要求。我们开始集成此解决方案,并发现一个接一个的问题。以下是 SDK 6.2.7 中主要问题的简短列表:

  1. 保存和加载相同的解决方案(视频)时,信封设置会随机更改。
  2. 使用信封包装的 DLL 文件不会加载。
  3. 用于基于脚本的构建的信封的控制台版本不起作用。它无法包装可以用基于 GUI 的信封版本包装的 exe/dll。

支持是被动的,但并不能真正解决问题。

毕竟我们浪费了将近一个月的时间来集成这个保护系统,但现在由于大量的质量问题不得不切换。

于 2016-10-13T13:41:13.020 回答