2012-01-17 91 views
8

我想问的是,是否有人知道用于软件保护的硬件USB-dongle,它为跨平台Java部署提供了非常完整的开箱即用API支持。用于Java的USB软件保护加密狗,带有“真实”跨平台的SDK。它存在吗?

它的SDK应该提供一个jar(每个OS &位只有一个,而不是一个不同的库),可以作为库添加到项目中。

  • 罐子应该包含所有的各种操作系统原生的东西,bitnesses
  • 但从应用的角度来看,应该继续写(API调用)一次,到处运行,而不必关心其中最终用户将运行软件
  • 提供的罐子本身应该处理加载相应的本地库

难道这样的事情存在?

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

,我们不能指望最终用户是一名软件工程师,调整(并打破!)它的Linux服务器,链接库,乱用gcc,垃圾文件系统,等等

在一般来说,Java支持(以透明的跨平台方式)对我目前评估的加密狗SDK(例如KeyLok和SecuTech的UniKey)来说是非常糟糕的。 我甚至购买了(没有免费的评估套件)SecureMetric SDK &加密狗(根据市场推广材料,它们应该已经很“直接”地集成在一起),而且它们是有史以来最糟糕的:SecureDongle X没有64位支持, SecureDongle SD根本不是跨平台的。

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

注意:软件是低容量,高价值的;应用程序是脱机的(内联网没有互联网访问),所以没有在线激活的替代品等。

- 编辑

尝试了HASP加密狗(以前被称为“阿拉丁”),并增加了他们的禁忌清单:在这里,也没有外的开箱(非常用的)支持:例如end-linux-user必须手动将.so库(相应位的特定文件)放在他的文件系统的正确位置,然后导出一个env。相应地变化。

+0

问:是否假定最终用户已经安装了JRE,或者必须(特定于平台)JRE位于USB加密狗上? – paulsm4 2012-01-17 19:12:54

+0

Hi @ paulsm4,谢谢你的评论。我依靠安装在系统上的JRE。同时考虑到包含闪存的加密狗比单纯的加密狗(通常允许数百字节的数据存储)花费更多。 – 2012-01-17 20:26:55

+0

“软件保护”是一场艰苦的斗争:存在调试器,虚拟机等。任何方案最终都会被破解,尤其是当价值很高时。这就是为什么例如Oracle数据库不具有复杂的(如果有的话)复制保护。如果您无法提供可供依赖的在线服务器,则可以尝试提供离线服务器:安装安装了您的应用的完整计算机,即谷歌搜索设备。这也消除了平台兼容性的问题:) – 9000 2012-01-23 21:23:09

回答

3

完整免责声明:我为制作软件保护软件狗(CodeMeter)的company工作。但我相信我们可能有一个满足您需求的解决方案:我们针对所有平台(Win,Mac,Linux等32位和64位)提供单一API。每个最终用户机器只需要一个运行时(Windows上的服务; Linux上的守护进程)。我们使用本地Java API,它使用TCP/IP来调用我们的运行时,所以不需要特殊的设备驱动程序。您可以在发运软件狗之前(预编程)或通过文件交换(NikeNet)在部署时不进行Internet访问,也可以执行激活操作,也可以删除软件狗,将其连接到具有Internet连接的计算机并更新那里有执照。

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

我们有一个财富100强公司使用它来保护一个Java应用程序,在非Intel的Solaris跑,所以我们知道它已经压力测试作为一个跨平台的解决方案。

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

+0

感谢您的回复:我对通过TCP调用来调用运行时二进制文件的智能解决方案感到惊喜(大多数竞争加密狗使您直接与USB通信发生冲突),我一直在想一段时间内某公司是否真的提供。我对评估Wibu加密狗非常感兴趣,但是我无法在您的个人资料中看到您的电子邮件(我认为只能在自己的个人资料中看到他自己的邮件):您可以在评论中透露它吗? (或为我提供另一种联系方式) – 2012-01-24 19:25:46

+0

Hello Unai;你可以给我发电子邮件:wibu.us的john dot1l – 2012-01-24 20:59:24

+0

我收到了评估套件:最后,在尝试了8个竞争加密狗公司后,我发现了一个完全符合我需要的东西(即我在我的问题中提出的问题)! – 2012-02-17 02:08:39

2

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

+0

当我从我的代码中调用他们的API时,他们的类是否检测到我们正在运行的操作系统和位数,并自动调用相应的本机库? – 2012-01-27 15:44:43

+1

是的,它会自动处理 – 2012-01-27 17:11:36

1

我只能建议避免安全科技UniKey系统。在评估期间,产品符合我们所需的所有要求。我们开始整合这个解决方案,并发现一个接一个的问题 这里是属于SDK 6.2.7的部分重大问题的简短列表:保存和加载相同的解决方案(Video)时

  1. 封套机设置随意改变。
  2. 用包封器包装的DLL文件不加载。
  3. 基于脚本的版本的包络器的控制台版本不起作用。它无法打包可以用基于GUI的版本封装的exe/dll。

的支持是无功,但并没有真正解决问题。

毕竟我们几乎浪费了工作纳入该保护系统的一个月,但现在由于大量的质量问题进行切换。