加密锁是为软件开发商提供的一种智能型的具有软件保护功能的载体,它包含一个USB硬件设备,及一套适用于各种语言、操作系统的编程接口和工具软件。但是软件厂商在选择加密锁时经常遇到一些问题。选择
加密锁时会遇到哪些问题?
1.加密锁产品种类繁多
2.各大厂商对产品多度吹捧,大肆宣扬自家产品亮点
3.缺乏行业知识,即使是行业老兵也可能缺乏些关键信息而被误导
针对上述问题,我们在这里分享一些经验和建议给大家。在选择加密锁的过程中,有9条选择标准可以参考。
选择加密锁九大标准
1 安全性
选择加密锁初衷是为了保护软件资产,因此安全性是首要关注点。在安全性方面,要考虑三个方面:加密锁芯片、加密工具及配套的安全服务。
安全“核心”——芯片,选择安全等级高的芯片
市场上的主流加密锁都采用智能卡芯片。而智能卡芯片的安全强度按照等级(CC EAL)划分。CC (Common Criteria) 将评估等级分为EAL1、EAL2、EAL3、EAL4、EAL5、EAL6和EAL7共七个等级,等级越高则表示安全系数越高,等级越低,硬件越容易被克隆。如果您对安全性有要求,那么EAL4以下的加密锁就不要考虑了。如果选择非智能卡的单片机加密锁,更是无法满足软件的安全需求。
安全“宝甲”——虚拟化加壳工具,注意加密工具的安全强度。
安全工具在软件安全保护的过程中发挥着至关重要的作用,在芯片得到有效防护后,黑客的破解几乎百分之百会从软件入手,虚拟化加壳安全工具在防止软件工程逆向方面有重要作用,关系到开发商的源代码是否“裸奔”。因此挑选加密锁时,也要格外注意是否有配套的加密安全工具及其安全性能。这就意味着只提供了一个硬件和几个API的加密锁不需要考虑了。
配套安全服务,考验的是持续对抗的能力
安全是相对的,没有永恒的安全,只有持续的破解成本。我们要做的是持续不断的增加黑客的破解成本,让黑客无利可图。在软件发行之后,若出现破解的情况,那么就需要对盗版进行监控追溯,以及进一步提升加密安全性。这中间涉及的工作包括安全评估、设计、方案实施等,任务量巨大。隔行如隔山,软件开发商往往很难自己开发,这时候就非常考验加密厂商技术服务的经验和能力了。
2 方案扩展性
方案扩展性要考虑的是:不仅要有加密锁方案,还有考虑是否能拓展云授权和软授权方案。
开发商做软件加密,目的是更安全地卖软件,这就意味着开发商和用户之间需要的是一个软件运行的契约,也就是所谓的软件运行许可或授权。所以用加密锁或多或少都需要对许可进行管理。从授权管理的角度来看,除了加密锁之外,软件安全方案中还经常使用云授权和软授权的方式(有些客户无法使用硬件锁,或试用软件成本不能接受硬件等场景)。如果您也可能有这方面的需要,那么加密锁厂商能否提供灵活方便的切换方案也应该考虑。
加密方案的单一性造成的问题
实例: 试用版使用软加密版本,正式版使用加密锁版本。而如果方案单一,则需要用到不同厂商的加密方案,硬加密采用了A厂商的方案,软加密采用B厂商的方案。
造成问题:加密方案维护两份,产品发布两种版本,代码复杂度也要提升一倍,这对于产品的稳定性是极大的挑战
3 硬件质量
加密锁坏锁率标准:0.05%以下。
选择一款好的加密锁,锁本身的硬件质量一定要过关。某些加密锁用了一段时间就出现断裂,烧坏、读写失败等现象,这都是产品质量不过关的表现。而这些现象给用户带来的影响是“软件无法使用”,也就是影响开发商自己的商誉,从而导致软件开发商的口碑下降,用户流失等。所以大家在选择加密锁时,应该注意加密锁的硬件质量,包括外壳的材质,尽量选择采用合金或者高端PC等耐高温材质的加密锁。此外,好的制造工艺可以减少加密锁的电磁干扰。不要被加密厂商蒙骗,要多询问使用者,才会得到更实际的建议。
4 支持范围
要考虑加密锁支持的开发语言、操作系统。
加密锁硬件的开发接口基本都是基于C/C++ 开发的,所以开发库可以很好的支持多种开发语言。主流的开发语言例如C/C++、Java、C#、Delphi、VB、Python等都应该支持,接口封装得越上层,软件开发商的工作量也就越小。同时,好的加密锁同样支持主流的操作系统。如果有业务需要,也要关注厂商对Android和Arm的支持。选基础设施有一定前瞻性是很重要的,换加密锁是非常痛苦的一件事。
5存储空间
基于智能卡的加密锁,我们可以认为放到硬件里的数据是安全的,这也是加密锁的核心工作原理,所以理论上硬件里的“秘密”越多,加密方案越好。我们在选择加密锁的时候,在可承受的价格范围内,应该尽量去选择市面上容量较大的加密锁。
很多人总是混淆加密锁和U盘的存储功能。U盘的存储容量是GB甚至TB级别,而加密锁的存储容量是KB级别,市面上512KB的加密锁少之又少,不过通常256K对一般的加密需求就足够了。
6代码移植
“代码移植”或“锁内代码开发”是高端加密锁的一个重要特征,是指把关键代码放在加密锁内执行,参数由锁外传入,锁内执行结果,计算过程在加密锁内完成,锁内的代码可以认为是不可分析的。对于个性化的加密方案,这功能是必不可少的。有开发实力的开发商,在选择加密锁的时候,大家可以询问厂家是否支持该功能,一旦业务需要时,加密灵活性方面就不必担心了。
另外,现在很多厂商实现了“自动代码移植”,就是通过工具直接处理编译好的程序,自动抽取代码到锁内执行,这能极大提高加密方案的安全性,但是需要加密锁硬件和厂商软件技术实力的支持,这点也应该是超高端加密锁的标配。建议不希望开发加密锁底层代码,又想获得高安全性的开发商,选择带此功能的加密锁。
7易用性
很多情况下,用户拿到一款高安全性的加密锁,却由于易用性而没能将加密锁的作用发挥出来。大家选择加密锁的时候,要优先考虑配套工具界面直观、操作简单的产品,这样能够事半功倍,提升加密效率。
8品牌和服务
人们在大宗消费的时候都认可大品牌,因为品牌背后代表的更是质量、专业和服务。加密锁行业也不例外,厂家的技术水平、资质、口碑评价和服务质量都是我们应该关注的点。
购买一款产品同时也购买了该产品的售后服务。这个服务必须是专业的技术服务,包含:加密方案咨询,设计,实施及事后安全服务。有实力的厂商能够针对客户需求来定制加密方案,所以大家要选择技术底蕴雄厚的厂商。
还有一点大家可以纳入考虑范围,自从中美贸易战以来,国产化的呼声随之越来越高。若是有客户是国企或事业单位,或有类似需求,那么国产化的加密锁是必须要考虑的。
9价格
目前市场上的加密锁价格从几块钱到几百块钱不等。性价比高的产品不会贵的离谱也不会特别便宜,通常几块的加密锁不可能是高端智能卡的,几百块的加密锁则有过高的品牌溢价。大家在选择加密锁时候,多关注综合性价比。
来源:freebuf.com 2020-03-09 17:01:04 by: VirboxLM
请登录后发表评论
注册