随着国内盗版破解方面的日益猖獗,严重影响了产品开发商的利益,从技术角度保护开发商产品的知识产权已经越来越重要了。而市面上大批形形色色的软件加密锁,是不是只要用了随便一家软件加密锁,就能保证软件不被破解?答案是否定的。目前市面上常见的软件加密锁和核心就是其内部的加密芯片,很多低成本软件加密锁没有采用专业的安全芯片平台,只是采用普通的单片机来实现一些加密解密功能。这相当于把一座大厦建立在一个沙滩的地基上,可靠性可想而知。下面我们就多款软件加密锁中的加密芯片类型的安全性做一个分析。同时也将凌科芯安LKT系列软件加密锁的加密方案介绍给各位用户。
软件加密锁类型
单片机型软件加密锁
该类软件加密锁内部往往只有一个最便宜的单片机(51单片机居多),单片机完成USB接口通讯,同时在单片机上实现一些数据的存储和简单算法。这种软件加密锁最大的优势就是价格低,但安全漏洞特别多。
由于普通单片机是无法防拷贝,防复制和防剖片破解的,所以所有放在单片机上的数据,程序都是不安全的,可以简单被人复制、拷贝。盗版者不需要去研究上位机软件怎么解密,只要从最薄弱的软件加密锁的单片机攻击就能完成破解。
逻辑加密芯片型加密锁
这类如阿娇加密锁,往往是两款芯片构成,一个是USB单片机,一个是逻辑加密芯片,其中逻辑加密芯片负责数据的存储,和简单的口令认证。这种逻辑加密芯片芯片一般是由一个EEPROM加上外围逻辑电路,通过简单的ID号或者逻辑认证口令进行保护认证,这种芯片的特点就是便宜,开发也最简单,数据存储读取、口令认证都是明文方式,芯片本身破解难度最低。盗版商可以通过线路跟踪方式,对USB口输入输出数据做跟踪,找到认证的口令,以及存储读取的数据,完成破解。
固定加密算法型软件加密锁
该类软件加密锁,目前市面上也很多,基本就是采用了一个所谓的安全芯片,然后在芯片中预置了一种固定的对称或者摘要算法,比如DES、AES、SHA1、MD5等,这类芯片号称存储在芯片中的密钥是无法复制和读取的。这类软件加密锁在与上位机软件做认证的时候,上位机软件发起一个数据让软件加密锁用内部存储的密钥对其做加密得到一个密文,然后上位机软件也用内置的密钥用同样的算法计算出一个密文,在上位机软件端比较两个密文是否一致。
破解这类软件加密锁其实很简单,整套系统最薄弱的环节就是上位机软件是完整的,它与软件加密锁的关联就是几个比对加密结果的比对点,通过对程序的反编译找到比对点跳过,就可以完成破解,盗版商根本不用去破解所谓无法破解的软件加密锁。
LKT系列算法移植软件加密锁
我公司LKT系列软件加密锁均是采用高端智能卡芯片(EAL5+安全级别)内核为平台开发,用户可以将自己软件中一部分关键算法和代码采用标准C语言在我公司提供的工程上编译之后下载到LKT系列软件加密锁中运行。在软件实际运行过程中,通过调用函数方式运行智能芯片内的程序段,并获得运行结果,可将此结果作为用户程序进一步运行的输入数据。加密芯片成了软件产品的一部分。同时我公司LKT系列软件加密锁还具有3DES对比认证、NVM区存储启动参数等辅助加密方案。此时CPU中的程序是不完整的即使被破解得到的也只是系统中的部分代码此时要达到完全破解还需要对加密芯片进行破解。LKT系列软件加密锁又是如何做到芯片本身不被破解呢?
我公司采用的高端安全性智能卡芯片内核主要应用于银行等领域:比如信用卡、银行卡,目前欧洲的银行卡已经全面采用智能卡。其本身的安全性必须要高,此外我公司加密芯片能防范目前40多种常见的攻击和破解方式。芯片本身在受到刨片时会产生微电流,芯片检测到微电流后会启动自毁功能损坏内部COS和数据。从根本做到了芯片内部程序的安全。