一、概论
在激烈竞争的电子以及通信产品行业,很多公司大概都有这样的经历,自己费尽心血设计的产品,投放市场不久,就被竞争对手分析透了,从硬件到软件原封不动地被克隆,换了一个外壳投放市场,自己成为了自己的竞争对手。还有一些公司在委托生产厂商进行产品生产时,被生产厂商额外地生产出大量的相同产品,换个品牌投放市场,不但扰乱了市场秩序,还严重地损害了产品设计者的利益。更有一些专业的单片机公司堂而皇之的把帮助别人破解各类单片机中的秘密作为主营之外的一种创收途径。在行业竞争日益激烈的今天,如何保护自己的产品设计方案以提高产品的市场占有率,如何在产品技术转让时有一个理想的、可以量化的计量标准已经成为很多公司和产品设计者日益关切的问题。
近两年,随着PDA,掌上电脑,机顶盒等信息终端逐渐走进人们的生活,嵌入式操作系统也像Windows一样为人们熟知,随着集成电路芯片技术的飞速发展,电子产品设计业也越来越像计算机行业,很多产品的硬件解决方案已成为一种公开的资料,产品设计者的核心技术实际上集中在嵌入式应用软件内。在硬件技术逐渐成熟和公开的今天,如何保护产品的设计,产品的版权,实际上转化成了对嵌入式应用软件的保护。
硬件设计版权保护的方法有很多,我们下面介绍一种非常灵活的方法:在产品设计上嵌入一种特殊的安全芯片,应用软件通过和该硬件芯片密钥认证的方式来控制程序的流程,以及将单片机主程序上的部分放到ESAM内部进行执行的方法保护嵌入式软件。ESAM芯片极高的安全特性和丰富的安全功能保证了该解决方案的高度安全性。
下面对该芯片以及基于该芯片的解决方案作一介绍
二、ESAM简介
三、软件保护原理
1、随机数认证
在数据安全领域,DES(DataEncryptionStandard)算法是一种被广泛使用的公开的数据加密算法,它采用对称密钥机制,即加密密钥和解密密钥是相同的,数据的安全性取决于密钥的安全性。ESAM主要是采用随机数理论,用DES算法计算认证码,通过比较认证码的方法进行芯片内部密钥与外部认证密钥的对比,从而达到判断与认证的目的。
ESAM通常内部预置相关的密钥和关键数据,内部具有安全寄存器,数据文件通常具有保密权限,只有通过相应的密钥认证才可以达到对应数据文件的安全权限,才能对数据文件进行读写,业内通常把这个过程叫做外部认证。
如某数据文件的读写权限为33(安全状态寄存器为4位,安全指针为00-FF),对应的外部认证密钥为12345678,后续状态可定义为33,安全状态寄存器的初始状态为最低00,当执行外部认证命令时,如外部认证通过,安全状态寄存器就会达到33状态,这时就可以对该数据文件进行读写了。
ESAM外部认证流程
在上述的认证过程中,ESAM和外部设备之间的信道只传递随机数和认证码,保证了数据的不可重复和难以跟踪,使外界无法得到任何密钥信息,通过信道侦听密钥的企图是没有任何意义的。
2、软件的移植和SMAKEY内部执行
SMAKEY提供内部软件平台供用户开发ESAM内部执行的子程序,内部系统软件特性:
片上操作系统(COS)进行通信、文件、存储、安全管理
用户可自行建立私有文件
支持用户程序下载
内置解释器,解释执行用户程序
支持255段子程序,每段子程序最大255行
支持4个参数的输入,并返回运算结果
开发工具特性:
提供专用开发指令集:支持加法、乘法、除法、与、异或、非、赋值、跳转、串处理等操作
提供专用开发工具:支持程序编辑、编译、调试过程,还可生成可执行代码
提供专用发行工具:可供用户批量快速生产
通过软件代码在SMAKEY内部的运行,防止了非法用户对软件的直接拷贝和分析。
四、SMAKEY的目标应用
1、产品版权保护
在硬件设计仿制比较容易的情况下,采用安装特定的安全芯片ESAM的方法,可以防止软件被拷贝后正常使用,使ESAM的运算和认证成为应用软件流程一部分,从而达到防止盗版的目的。
2、生产数量控制
在研发商和生产商利益分离的情况下,为了防止产品在生产过程中被生产商无偿的额外生产,使用ESAM可以控制生产商的生产数量,或用ESAM来收取版权费。
3、技术支持和售后服务的依据
可使用ESAM存储产品的序列号或版本号等产品关键信息,可根据该信息对产品进行在线服务或应用软件的在线升级,也可以作为提供相关技术服务的依据。 |