引言
PC软件的盗版一直是困扰软件行业发展的主要问题,同样,在嵌入式应用领域,随着近些年黑客技术和芯片解剖技术的发展,嵌入式系统所面临的攻击也越来越多,随之而生的防抄板技术也引起了产品设计者的重视。
产品设计者目前所面临的问题主要是黑客对产品的仿制,其目的是获得产品设计技术或者降低产品设计成本,攻击手段主要是抄袭产品设计者的线路板布线图和拷贝获得产品运行程序。目前市场通用的ARM,DSP、单片机通常的安全防护手段很少,更多的程序暴露在透明的Flash或EEPROM中,面对不断发展的攻击技术以及黑客之间的竞争,产品的破解时间和成本越来越低,相对于产品仿制者获得的巨大利益,有时其破解成本甚至可以忽略不计。尤其在一些非行业用户的产业,如游戏机业,消费电子业,甚至出现了仿制产品大大多于自有产权产品的现象。因此,如何保护自身的利益,是产品设计者目前经常面对的问题,魔道相争,也促进了嵌入式系统防抄板技术的发展。
嵌入式系统更高的防护技术意味着更高的成本,但对于受到攻击的产品而言,往往是产销量大的消费电子产品,为增加防护技术所增加的产品成本会削弱产品的价格竞争能力,因此,市场上流行的防抄板安全技术及产品多属于低成本的解决方案。下文将对这些主流方案做一些技术解析。
1 早期的口令认证防护技术
几年以前,产品设计者通常使用一个逻辑加密卡芯片来给产品定义唯一序列号或者存储序列号,这种逻辑加密存储器必须通过口令认证后才能进行读写,这种防护技术面对黑客的示波器,口令和明文传输的数据可轻易被获得,防护技术已经完全失效和过时。
2 动态口令认证防护技术
为了避免线路监控固定口令的缺陷,一些防护芯片采用动态口令技术,基本原理是防护芯片和MCU内置相同的密钥和相同的对称算法,利用随机数作为通讯数据,MCU判断防护芯片的计算结果正确与否,来决定程序是否继续运行。这种产品和技术解决了认证过程线路监控的问题,但实际防护作用微乎其微。因为MCU本身没有硬件防护功能才选用防护芯片,而这种防护芯片的硬件安全性甚至不如MCU,其内部存储的密钥可以很容易的被获取。更重要的一点,MCU在安全防护上仅仅做了一个认证流程,可以很容易地被能够修改程序的黑客轻松跳过。目前市场上这种芯片的销量虽然很大,但缺乏真正防护效果,实际上无偿增加了产品设计者的成本。
3 动态口令认证+数据存储技术
为了解决仅仅简单认证的问题,有些公司继续使用安全存储技术,防护芯片内置动态口令和认证算法,并具有数据存储功能,首先使用复杂的动态双向认证技术,获得存储器的读写权限,然后读写敏感的数据信息。这种防护芯片,硬件具有一定的安全性,因此具有一定的防护作用。但是MCU端的安全性并没有解决,黑客可以通过攻击MCU端的程序获取算法和密钥,通过认证后监控读写通道获取敏感数据,因此其安全性也受到了一定的局限。
4 CPU卡通用COS保护技术
CPU卡在SIM领域和金融领域的广泛应用,使得其安全性得到了很大的认知。金融应用以及SIM卡巨大的发卡量所带来的潜在安全风险,使CPU卡面临的安全挑战是最大的,因此CPU卡的硬件安全防护技术是比较全面的,而且在不断的升级,国际权威机构也有针对CPU卡的安全认证,其认证费用非常昂贵,使得CPU卡的设计和生产商往往是国际性的大公司,这也增加了人们对CPU卡的信任。
目前常用CPU卡的安全性往往体现在硬件和软件两个方面:
CPU卡的硬件设计通常增加了很多的传感器,如高压和低压传感器,频率传感器、滤波器、光传感器、脉冲传感器、温度传感器等,这些传感器可以清晰地感觉到外部环境的变化,可以有效防止黑客利用改变硅片外部环境而诱导芯片误感应的半入侵攻击。为了对付物理攻击,CPU卡在芯片内部对存储器和总线系统进行加密,存在芯片上的数据本身用强大的密码算法进行加密,即便是攻击者能够得到这些数据,也只能获得无用的信息。另一方面,采用有效的屏蔽网对攻击者构成有效的屏障。采用微米级的超细保护线来覆盖安全控制器。这些保护线被连续地监控,如果某些线与其它短路、切断或损坏,就会启动报警。采用这么多层次的保护措施,就可以对控制器起到相当的保护作用,以免于遭受物理攻击。另外,CPU卡往往内部还具有真随机数发生器和硬件加密协处理器,以增加计算的安全性和速度。
除了CPU卡硬件安全性,CPU卡还使用内部操作系统COS来实现数据的安全管理,如使用安全状态机来实现数据读写的权限管理,通过随机数认证机制获取存储器的权限,卡内存储的数据也可以使用密文或者动态密文的方式进行线路通讯,这些技术基本能够解决在防护芯片一端的数据安全性。
目前,采用CPU卡进行防护已经成为一种领先技术,CPU卡在SIM领域的巨量应用使得其成本也能够逐渐下降到被设计者接受的程度。
但是,CPU卡尽管比较安全,但依然还没有解决MCU一端的安全问题,对称算法的使用使得在MCU端依然要暴露算法和密钥,另外,对于CPU卡的使用者而言,COS功能已经设计好,只能被动使用固定指令,功能扩展困难,而且第三方COS的权威性也会受到人们的担心和质疑。
5 开放的CPU卡加密协处理器技术
CPU卡实际上依然是一个单片机,尽管其加载了各种安全技术,但其等同于一个迷你接口的安全单片机,针对COS厂商的软件开发人员而言,COS编程等同于单片机开发,所使用的开发工具和编程语言与单片机甚至是相同的。因此,如果采用CPU卡做为主MCU的一个安全协处理器,辅助MCU工作,使得一些重要程序或者数据处理过程在CPU卡内部完成,将解决MCU一端的安全问题,同时CPU卡内部通常也具备很大的数据存储空间(20K-120K字节),安全计算加大容量安全存储,也大大提高了CPU卡应用的性能价格比。
但是对于单片机工程师而言,编写COS或者与CPU卡进行通讯的过程中,面临的最大困扰是复杂的ISO7816协议,为了解决这个问题,有些技术使用先在CPU卡内部放置通讯固件,将ISO7816协议变成普通的串口协议,这样工程师就能够象针对单片机编程一样轻松自如地对安全单片机进行编程了。
开放的CPU卡加密协处理器技术加密芯片ESPU0808相对于传统的认证技术具有非常大的优势,依托安全的CPU卡硬件平台作为安全协处理器,设计工程师可以在安全协处理器内部随意自如的实现自己的设计思路,不受第三方COS的制约,将设计思想和敏感数据完全控制在自己手中。
6 结语
目前,北京宝兴达信息技术有限公司开发的这种新兴产品加密芯片ESPU0808已经在很多领域得到了成功的应用,如在游戏机内部,使用加密芯片ESPU0808来计算人机博弈的中奖概率,在门禁应用领域,利用安全芯片ESPU0808对正常用户和黑名单进行管理,这项技术不仅增加了算法的安全性,同时减少了主MCU的负担。
使用这项技术依然有一些问题需要考虑,在CPU卡加密协处理器内部运行的程序要具有很好的随机性,简单的程序和过少的数据交互会增加黑客的攻击机会。