《基于ESAM的嵌入式应用软件版权保护解决方案.doc》由会员分享,可在线阅读,更多相关《基于ESAM的嵌入式应用软件版权保护解决方案.doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于ESAM的嵌入式应用软件版权保护解决方案一、概论计算机应用的普及,带来了软件产业的蓬勃发展,编制软件艰辛和拷贝软件轻易之间的强烈反差,使很多人享受了免费午餐的喜悦,而软件的编制者和所有者看着自己得不到的劳动成果却只能慨叹无可奈何。如何保护软件的版权,保护所有者的权益,除了必要的法律保护,软件所有者在技术上的自我防护也成为了必要的手段。近两年,随着PDA,掌上电脑,机顶盒等信息终端逐渐走进人们的生活,嵌入式操作系统也象Windows 一样为人们熟知,同样,作为应用软件,嵌入式软件虽然面对的不是最终的消费者,而是硬件生产厂商,尽管不会轻易发生盗版软件的现象,但如何量化软件的使用量,如何保护软件
2、厂商的利益,如何避免长期合作中不必要的纠纷,也是软件厂商必须面对和解决的问题。北京握奇智能科技有限公司是智能卡与嵌入式数据安全领域首屈一指的专业公司,公司的主导产品ESAM- 嵌入式安全控制模块在很多嵌入式产品领域为用户解决了关键数据存储、身份认证、数据加解密、线路保护等很多安全问题。在嵌入式软件的产权保护上,公司使用ESAM为很多嵌入式软件厂商设计了版权保护的方案。下面是这一方案的简要说明。二、ESAM 简 介ESAM (Embedded Secure Access Module)嵌入式安全控制模块,采用专用的智能卡芯片模块封装,操作系统采用握奇公司自主知识产权的TimeCOS嵌入式安全操作
3、系统,除了具有防检测、抗攻击、自毁等硬件特性外,还具有安全的文件密钥管理,完善的安全机制、标准的加密运算功能等特性,ESAM的硬件平台采用德国亿恒科技公司(Infineon原西门子半导体)的保密控制器系列产品SLE44CXX 系列或SLE66CXX 系列芯片作为硬件平台,安全性能达到国际ITSEC E4级标准,芯片操作系统TimeCOS 通过了中国人民银行行业标准的检测和国家密码委员会的认证,尤为一提的是,超过2000万片的总发行量使TimeCOS成为国内智能卡行业的第一,得到了市场和用户的广泛认同。 ESAM最主要的应用模式是嵌入到其他专用或通用设备中,完成数据的加密解密、双向身份认证、访问
4、权限控制、通信线路保护、临时密钥导出、软件版权保护、数据文件存储等多种功能。可广泛应用于具有加密功能的智能设备中。三、简单的硬件设计CPUI/O I/OCLKESAM简单的硬件结构使其同主要硬件设备的结合非常简单,兼容性好,编程容易。四、系统要求:l 系统或应用软件需要支持DES/3DES算法。l 系统或应用软件全部或按批次预装主密钥MK。(每批的MK可以不同)l ESAM中安装根据ESAM的唯一硬件序列号S/N分散加密产生的认证密钥CSK,软件批次号可以存储在ESAM或软件中。l 采用随机数RND作为载体实现安全认证,RND可以有如下三个来源:1) 系统或应用软件伪随机数发生(完全避免随机数
5、重放)。2) 从ESAM中取随机数,应用软件作简单运算(基本避免随机数重放)。3) 从ESAM中取随机数(理论上存在随机数重放的可能)。l ESAM 中密文存储一些软件运行参数等敏感数据(可选)。加密算法: 采用Single DES、Triple DES算法;五、软件安全认证过程原理图:单片机程序软件:预置主密钥MK,能够产生随机数RND并进行DES运算ESAM:预置根据ESAM序列号S/N分散的加密认证密钥CSK:DES(MK,S/N) PDA、掌上电脑,机顶盒或其他计算机外设单片机程序软件认证模块ESAMS/N软件:1、对ESAM做复位取得ESAM的S/N号2、计算分散密钥CSK=DES(
6、MK,S/N)ESAMRNDESAM:用认证密钥CSK对随机数RND加密产生认证码X=DES(CSK,RND)软件:1、产生随机数RND2、将RND 送至ESAM进行加密取认证码X3、计算分散密钥CSK4、对随机数RND加密计算认证码YDES(SK,RND)XNo软件判断Y=?X应用软件拒绝执行应用软件正常执行Yes六、一种防止程序被反编译的方法 根据设备采用的主CPU的特点,可以采用将系统源程序加密存储的方法,防止存储在ROM或EEPROM中的程序被读出后反编译。将源程序中的部分子程序或重要参数用ESAM中的密钥加密后安装,在执行该部分程序或参数时需先将数据送ESAM解密后再放到FLASH或
7、RAM中执行,掉电后解密后的数据将消失。这样可有效地保护源程序被破解。七、应用软件认证命令序列:1、对ESAM做复位取得ESAM硬件序列号S/N2、调用软件DES函数计算临时密钥CSK=DES(MK1,S/N),放内存暂存3、软件产生随机数RND4、将RND 送至ESAM的认证密钥CSK对随机数RND加密产生认证码X0088 00 01 08 2332345546765976随机数RND6、用临时密钥CSK调用DES函数对随机数RND加密Y=DES(CSK,RND)7、比较X是否等于Y,决定软件的后续操作六、安全性分析l ESAM 安全硬件平台保证了存储于其中的密钥及数据文件的高度安全。l E
8、SAM文件和密钥系统的发行由需要保护的系统或应用软件供应商完成。l ESAM独特的密钥认证方式,使得认证过程中,ESAM与主CPU 的通讯时,线路上只是传输了序列号、随机数、认证码,根本没有密钥的传输,分析者对线路通讯的跟踪分析是没有意义的。l 系统或应用软件运行的合法性取决于与ESAM的认证过程是否正确,系统或应用软件的发行间接的变成了ESAM的发行和销售,软件的销售有了量化的标准,保护了软件的版权和应得利益。l 软件在不同批次,或不同应用的情况下,可以更改软件的主密钥MK以及ESAM的认证密钥CSK,安全性更加增强。l 还可以利用ESAM的其他功能,比如安全数据存储,线路保护,数字签名等。
9、七、具体应用现在已有一些电路设计厂商采用该方案,保护自己的电路设计及应用软件,在OEM 委托生产的过程中,使用ESAM防止生产商对产品的无偿拷贝。握奇公司可以针对用户软件和硬件的特点设计具体的解决方案。八、ESAM密钥的设置:ESAM的初始加密密钥CSK为:00000用户在使用ESAM作软件保护的时候应该重新为ESAM设定新的加密密钥设置步骤是:1、为单片机程序软件设定一个8字节的主密钥MK 例如:11223344556677882、对ESAM作复位操作取得复位信息的最后8字节数据为ESAM序列号S/N复位信息后8字节是ESAM序列号 例如 3B 69 00 00 57 44 26 05 02 09 26 45 2B3、计算出ESAM的加密密钥 CSK=DES(MK,S/N) 例如:CSK=DES(1122334455667788 , 44 26 05 02 09 26 45 2B)需要写入的密钥4、把计算出的ESAM加密密钥写入ESAM 使用以下命令序列:80D4300108 8CA64DE9C1B123A7