宏狗圣天狗Rockey6HASP加密锁性能体验与分析
宏狗、圣天狗、Rockey6、HASP加密锁性能体验与分析
这几款加密锁都具备执行内嵌代码的能力,似乎安全性都很高。本文以质疑的态度对它们的性能加以分析。
一、硬件反克隆能力
- 宏狗
1.1 安全数据通道
没有内嵌类似RSA这样的公钥加密算法,因此,无法建立和计算机之间高安全级别的数据通道。可以认为,宏狗和计算机之间的交换的数据从技术上是可以被截获并解密的。
结论-1 宏狗数据通道安全性不高。
1.2 执行内嵌代码
Safenet称用户自定义算法可以写入宏狗,也可以被删除,但是无法读出来。不过我认为,这种“禁读”的保护措施是纯软件实现的。原因很简单,自定义算法和和数据文件一样保存在物理可读写存储区。既然数据文件可读,算法文件一定也可以读。
结论-2 用户自定义算法有可能以纯软件的方法复制出来。
- 圣天狗
2.1 安全数据通道
圣天狗支持内嵌ECC公钥加密算法,可以建立和计算机之间的高安全级别数据通道。
2.2 执行内嵌代码
用户可以调用圣天狗内嵌的ECC和AES算法。
结论-3 圣天狗的数据通道是可靠的。
由于密钥可以自己定义,带来了一个安全漏洞。原因和宏狗一样,因为密钥保存在物理可读的存储区,尽管Safenet似乎没有提供任何读取密钥的软件接口。
结论-4 圣天狗用户自定义ECC算法密钥、AES算法密钥可以用软件方法复制。
结论-5 由于ECC和AES算法是公开的,除非圣天狗对ECC和AES算法进行了某种变形,否则其内嵌ECC和AES算法有可能用软件方法克隆。
- Rockey6
3.1 安全数据通道
Rockey6支持RSA算法,可以建立安全数据通道。
结论-6 Rockey6可以建立安全数据通道。
3.2 执行内嵌代码
Rockey6可以内嵌用户自定义算法,在自定义算法中可以调用加密锁内嵌加密算法,原理上可以提供很好的软件加密保障。但实际上,由于算法文件、密钥与普通数据文件一样存放在物理可读存储区,因此,存在用纯软件方法破解的可能性。
另外Rockey6采用C51单片机编程语言,用第三方编译器编译,一旦破解者得到算法文件,有可能人工反编译算法文件。
结论-7 Rockey6内嵌式代码机制有可能用软件方法克隆。
- Hasp
4.1 安全数据通道
Hasp不支持内嵌公钥加密算法,不能建立安全数据通道。
结论-8 Hasp数据通道不安全。
4.2 执行内嵌代码
Hasp支持内嵌AES算法,算法密钥保存在加密锁内,计算机无法对其修改和读取。因此,Hasp的AES算法机制安全性比较高。
结论-9 Hasp内嵌式加密算法无法用软件方式克隆,除非能够读出其密钥。
另外,Hasp还提供了一款“软”形式的加密锁,通过授权可以和硬件锁完全等价。这一方面给开发商带来了便利,另一方面,有可能泄露开发商的加密密钥。
结论-10 Hasp的SL“软”加密锁可能泄露AES密钥,如果用户需要发行基于SL的试用件,最好另购和正式发行的HL硬加密锁不一样开发商代码的开法套装。
二、软件系统性能
前面讨论的硬件锁在防止“克隆”方面的差异。不过,克隆硬件的代价一般会很高。下面我们排出硬件系统被“克隆”的可能性,下面分析软件系统的性能。
- 宏狗
提供内嵌式自定义算法,但是,内嵌式算法不能访问加密锁内的数据文件,无法制作安全的试用或租用加密算法。但作为一次性发行的加密软够用了。
可恶的是,宏狗的自定义算法一直都存在BUG,尽管经历过一次硬件升级,消除了部分BUG,但是长整型乘法运算仍然经常出现计算错误(计算结果和Intel CPU不一样)。
- 圣天狗
不支持自定义算法,但是提供了ECC和AES内嵌是算法。实际上,这种机制从数学的角度来看,可以等价于内嵌式自定义算法,我会另外写一篇文章来论述这个话题。
ECC和AES算法可以被设置某种授权限制,例如使用次数和试用期等。因为使用次数和试用期的判断是在加密锁内部进行的,从软件角度来讲,这个机制相当不错,因为破解者无法在计算机内存看到相关代码。
圣天狗软件系统不是很容易理解,用户文档也不够清晰,总起来讲熟悉以后还是不错的。但是,让人不满意的是软件加壳后,启动速度巨慢,一般的延迟数秒钟。
- Rockey6
产品设计思路不错,甚至没提供外壳加密程序。从理论上讲,性能良好的内嵌式算法的确不需要外壳的保护。
内嵌式自定义算法可以访问加密锁内的其它数据文件,也可以调用内嵌的加密算法,这是很棒的功能。
不过,整个配套软件系统的设计似乎是硬件开发人员策划的,硬件技术色彩很浓,抽象程度远远不够。程序的远程升级机制相比宏狗和圣天狗,也有些不足。比如,软件死锁后可能无法远程维护。
Rockey6的软件系统是个拼盘,系统设计没有跳出底层硬件的层次,向软件开发人员提供更高层次的开发接口。自定义算法采用第三方编译系统。
- Hasp
Hasp提供了一套软件公司开发、生产、销售管理的网络版软件,有规模的软件公司用起来应该不错,可以有效对整个软件的开发、销售进行监管。对于个人用户来讲,这样的功能有显得有些复杂化。好在,这个软件不算很复杂。
Hasp支持内嵌AES算法,而且可以对AES算法进行使用次数、时间等限制,可以设计安全的试用或租用功能。
感觉Hasp定位比较明确,在满足加密需求的前提下,没有去做多余的功能。其实许多功能可以由软件开发商自己来做,加密锁成家需要提供一个可靠的基础就够了。就此而论,Hasp做的相当好。
三、关于内嵌式自定义算法和内嵌式AES算法的等价性
最初接触的是宏狗,感觉内嵌式自定义算法是一个很好的概念,后来又用了Rockey6,感觉也很不错。但是,二者的硬件安全问题始终让我放心不下。
后来看到圣天狗和Hasp都采用定义API特性的方法运行应用程序调用加密锁内嵌的AES等加密算法,感觉这种机制从硬件上是安全的,而且方便开发试用/租用产品。
圣天狗对内嵌式加密算法如何用于实际加密工作,提出的查询/响应机制。其实,这个概念容易误导程序员,让大家以为这类加密锁只能建立在查询/响应的机制之上。
事实上,内嵌式加密算法机制和内嵌式自定义算法机制,从数学的决渎来看是等价的。利用圣天狗和Hasp提供的AES加密功能完全可以做出和宏狗、Rockey6在软件级别上一样可靠的“自定义算法”,而在硬件级别上,安全性则远远超过宏狗和Safenet.
关于加密算法和自定义算法等价性的探讨,我会另写文章介绍。
结论
如果您问我会选择哪款产品,我可以说出我的判断。我曾经用过圣天狗、Rockey6,目前正在用宏狗(使用量还很大)。未来的软件产品,出于理想主义情节,我可能会选择Hasp。
原因很简单,Hasp的AES加密密钥是安全的,无法由计算机读出(根据目前了解的资料推断)。具备内嵌式AES算法,可以做出安全的“自定义算法”。
当然,如果选择Hasp的话,最好不去用它的SL“软”加密锁,因为这会泄露您的加秘密钥。
圣天狗我不满意的地方是用户自定义密钥机制卡能导致密钥泄露(基于目前掌握资料),如果Safenet在圣天狗内部算法是用ECC和AES之后又作了某种变形,比如说没有直接用用户自定义密钥加密,它的安全性就应该与Hasp一样好。
宏狗是个很不错的产品,软件系统设计非常合理,包括远程升级维护。我们目前一直在用这款产品。毕竟价钱比圣天狗和Hasp都便宜很多,而且克隆宏狗硬件代价也是巨高的。以后在公司的中低端产品上肯定会继续使用宏狗的。
Rockey6设计理念相当不错,可惜在产品设计方面我觉得比较失败。缺乏合理的配套软件系统,产品外形也给人一个次品的感觉,感觉有些可惜了。其实其硬件机制,基本的设计思路都是可取的,把水烧到99度,就差最后一度了,难道没有燃料了?