ESPU安全模块实现嵌入式版权保护
2011-03-11 21:26:35 本站原创 概论
在竞争激烈的电子及信息技术产品行业,新产品的设计周期已从原来的5年缩短为1~2年,同时产品寿命也在缩短,使得上市时间压力增大,随着创新能力的扩展,公司间竞争越来越大,盗板现象却越来越严重,如何保护自己的产品设计以提高市场占有率和延长生命周期,如何在许可生产过程中有效控制和量化版权收益,已经成为很多公司和产品设计者日益关注的问题。 本文介绍的解决方案的核心是在产品硬件设计上嵌入专用加密芯片,在应用软件设计上通过随机密钥认证的方法控制程序流程,比一般概念上的软件狗在软硬件安全特性、指令功能和性能价格比具有明显的优势。
一.专用加密芯片与嵌入式安全操作系统
本方案选用的专用加密IC是内置TimeCOS/ESPU嵌入式安全操作系统的专用微处理器芯片,又称ESPU嵌入式软件保护模块。ESPU安全模块采用标准的DIP8或SOP8封装,除了具有防检测、抗攻击、自毁等硬件特性外,还具有安全的文件密钥管理,完善的安全机制、标准的加解密运算功能。ESPU安全模块主要的应用模式是嵌入到其他专用或通用设备中,除了可作为设备的唯一标识(每个模块具有全球唯一硬件序列号码)并提供安全密钥和重要数据存储之外,还可以利用内置算法完成数据加密解密、双向身份认证、访问权限控制、通信线路保护、临时过程密钥导出等多种功能。下面分别介绍ESPU安全模块硬件和软件特性。
1.硬件安全特性:
•采用智能卡做为硬件平台
• 唯一序列号
• 芯片硬件安全性获得EAL4 级认证
• 芯片防篡改设计,具有防止SEMA/DEMA 、 SPA/DPA、 DFA和时序攻击的措施
• 数据安全存储,高低压检测,高低频率检测
• 真随机数发生器:利用芯片内部的电磁白噪声产生,不会重复
• 硬件加密协处理器:内部硬件逻辑电路实现对称算法3DES,加解密速度快
2. 软件安全特性:
安全芯片采用TimeCOS/ESPU嵌入式安全操作系统
COS(芯片操作系统)是ESPU安全模块的核心。该操作系统针对不同的应用具有不同的版本,主要有普通DES、3DES算法的PBOC版本,具有RSA算法的,还可根据用户的需要增加不同的算法和功能,可作为身份的标识进行身份认证,也可以作为安全的平台存储各种安全密钥和关键数据,以及产生随机数,进行加解密运算等,可以帮助终端设备实现很多安全功能。
2.1TimeCOS/ESPU的结构
TimeCOS/ESPU由传输管理、文件管理、安全体系、命令解释四个功能模块组成。
2.2典型认证过程
在数据安全领域,DES(数据加密标准)算法是一种被广泛使用的公开的数据加密算法,它采用对称密钥机制,即加密密钥和解密密钥是相同的,数据的安全性取决于密钥的安全性。ESPU安全模块用DES算法计算认证码,通过比较认证码的方法进行芯片内部密钥与外部认证密钥的对比,从而达到判断与认证的目的。ESPU安全模块通常内部预置相关的密钥和关键数据,内部具有安全状态寄存器,数据文件通常具有保密权限,只有通过相应的密钥认证才可以达到对应数据文件的安全权限,才能对数据文件进行读写,这个过程称为外部认证。
二. 基于ESPU软件保护模块的版权保护方案
ESPU软件保护模块的目标应用
1.产品版权保护
在硬件设计仿制比较容易的情况下,采用安装特定的加密芯ESPU安全模块的方法,可以防止软件被拷贝后正常使用。
2.生产数量控制
使用ESPU可以控制生产商的生产数量,按照真实数量收取版权费。
3.技术支持和售后服务的依据
使用ESPU存储产品的序列号或版本号等产品关键信息,可根据该信息对产品进行在线服务或应用软件的在线升级,也可以作为提供相关技术服务的依据。
三. 硬件结构设计
ESPU的硬件结构非常简单,时钟频率1~5MHz,工作电压2.7V~5V,其简单的结构,良好的兼容性使其同主要硬件设备的接口容易,编程也非常简单.用户可以轻松地将处理器芯片集成到应用中.
四. 软件应用流程介绍
1.系统要求:
·应用软件需要支持DES算法,支持产生伪随机数的算法。
·应用软件安装系统主密钥MK,可以通过ESPU安全模块硬件唯一序列号S/N分散生成认证主密钥。
·ESPU安全模块安装有主密钥SK=DES(MK,S/N)。
2.软件安全认证过程
·ESPU安全模块中存储与自身硬件序列号相关的主密钥,通过主密钥和软件ID号加密可生成过程密钥,过程密钥存储在ESPU安全模块的RAM区中,掉电后消失。
·应用软件在不同批次ID的情况下,可以更改系统主密钥。
·在应用软件密钥存储系统主密钥,认证主密钥通过读取ESPU安全模块硬件序列号临时分散产生,认证密钥通过应用软件批次ID号二次分散临时产生。
·分散过的ESPU安全模块认证主密钥,经应用软件批次ID号分散密钥产生临时认证密钥与应用软件的临时认证密钥完成最终的认证过程。
五.一种防止程序被反编译的方法
根据设备采用的主CPU的特点,还可以采用程序分割的方法将部分系统源程序用密钥加密后存储,防止存储在ROM或EEPROM中的程序被读出后反编译。
首先将源程序中的部分子程序或重要参数用ESPU中的密钥加密后安装,在调用该部分程序或参数时需先将数据送ESPU解密后再放到FLASH或RAM中执行,掉电后解密后的数据将消失。这样可以更有效地防止源程序被反编译后被破解。
结语
ESPU软件保护模块的核心实际上是专用的智能卡芯片,随着智能卡技术的成熟和应用的普及,国外大厂商的智能卡芯片制造和销售成本也在不断的降低,使得应用这种先进的微处理器来进行版权保护在成本上成为可行。
目前已经有一些电子设备厂商运用此方案,保护自己的电路设计及应用软件,同时还用ESPU安全模块存储设备的各种参数和信息,作为产品在线更新和售后服务的唯一安全标识。作为嵌入式版权保护的一种解决方案,北京宝兴达信息技术有限公司希望本方案能够给众多设计者提供一个新的思路和借鉴。