选择专用芯片构建嵌入式软件保护模块
发布时间:2008/5/27 0:00:00 访问次数:440
对嵌入式系统产品而言,由于其应用针对性强、更强调系统软硬件的紧密耦合等特点而不同于普通的pc系统,尤其在一些小型的嵌入式系统中,它不具备pc的丰富资源。因此,pc行业中常用的软件加密狗不能适用在这些系统中,进而需要一种全新的思想和方案来保护嵌入式系统的软件。
目前,有许多嵌入式系统中也加入由专用芯片构成的软件保护模块,这类芯片多为第三代e2prom存储型产品,缺点是在端口进行数据分析就容易被破解。为适应市场需求,福华先进微电子(上海)有限公司推出了一款嵌入式系统软件的安全保护方案——嵌入式软件安全卫士,其所用芯片fs88x6具有应用面广、功耗小、安全性高、无需带cpu等特点,潜在市场巨大。
该解决方案具有以下特点:
安全、采用国际公认的加密算法、多层保护机制;认证性:authentica-tion;完整性:检测code 的完整性;保密性:存取user 自订的
保密资料;便利:易于加入已开发系统中, 达到系统保护的作用;实用:不需再开发额外的mcu, 就能保护系统
整个方案由嵌入到用户程序中的库文件fs88x6lib和硬件芯片fs88x6两部分构成,fs88x6与系统cpu通过i2c总线相连,如图1所示:
将fs88x6lib整合到用户程序并编译连接生成目标文件(通常为hex或bin文件),然后通过fameg提供的code generator工具软件将该目标文件加密后再下载到用户嵌入式系统的code memory区(如外接的nor flash等),fs88x6lib负责整个系统与fs88x6芯片之间的通信和认证工作,通信数据都是经过加密的。
方案的认证功能是通过多方面表现出来的,下面介绍其主要的两个原理特性:
(1) 代码、数据移植保护
由于fs88x6中有96byte加密的e2prom区域,用户可自定义使用,因此,它具有类似上面加密锁的功能,即把系统中重要的数据或代码放在fs88x6中,系统脱离fs88x6将无法运行。
(2) 对嵌入式系统软件完整性的保护
当系统程序受到外部非法修改时(哪怕是修改1bit),方案能自动识别并做出相应的处理,这就保证了整个系统代码的完整性。在系统的代码区域实际包含3部分内容:用户嵌入式应用软件esw、fs88x6lib以及通过code generator加密目标文件时产生的加密信息digest,digest是esw经过hash运算的结果,即esw和digest是一一对应的,如果esw中有1bit code被修改,而digest没有跟着对应的改变,fs88x6将会检测出问题并报错。如图2所示:
在运行过程中,系统cpu将esw和digest根据设定的要求分批的送入fs88x6,fs88x6将根据对应的算法以及预存的密钥,对送进来的代码进行计算校验并反馈认证结果,以达到保护系统的目的。
目前,fameg的该嵌入式软件保护解决方案已广泛应用于机顶盒、pda、gps、pmp、bluetooth headset等系统中,其对应芯片fs88x6也已量产出货。
对嵌入式系统产品而言,由于其应用针对性强、更强调系统软硬件的紧密耦合等特点而不同于普通的pc系统,尤其在一些小型的嵌入式系统中,它不具备pc的丰富资源。因此,pc行业中常用的软件加密狗不能适用在这些系统中,进而需要一种全新的思想和方案来保护嵌入式系统的软件。
目前,有许多嵌入式系统中也加入由专用芯片构成的软件保护模块,这类芯片多为第三代e2prom存储型产品,缺点是在端口进行数据分析就容易被破解。为适应市场需求,福华先进微电子(上海)有限公司推出了一款嵌入式系统软件的安全保护方案——嵌入式软件安全卫士,其所用芯片fs88x6具有应用面广、功耗小、安全性高、无需带cpu等特点,潜在市场巨大。
该解决方案具有以下特点:
安全、采用国际公认的加密算法、多层保护机制;认证性:authentica-tion;完整性:检测code 的完整性;保密性:存取user 自订的
保密资料;便利:易于加入已开发系统中, 达到系统保护的作用;实用:不需再开发额外的mcu, 就能保护系统
整个方案由嵌入到用户程序中的库文件fs88x6lib和硬件芯片fs88x6两部分构成,fs88x6与系统cpu通过i2c总线相连,如图1所示:
将fs88x6lib整合到用户程序并编译连接生成目标文件(通常为hex或bin文件),然后通过fameg提供的code generator工具软件将该目标文件加密后再下载到用户嵌入式系统的code memory区(如外接的nor flash等),fs88x6lib负责整个系统与fs88x6芯片之间的通信和认证工作,通信数据都是经过加密的。
方案的认证功能是通过多方面表现出来的,下面介绍其主要的两个原理特性:
(1) 代码、数据移植保护
由于fs88x6中有96byte加密的e2prom区域,用户可自定义使用,因此,它具有类似上面加密锁的功能,即把系统中重要的数据或代码放在fs88x6中,系统脱离fs88x6将无法运行。
(2) 对嵌入式系统软件完整性的保护
当系统程序受到外部非法修改时(哪怕是修改1bit),方案能自动识别并做出相应的处理,这就保证了整个系统代码的完整性。在系统的代码区域实际包含3部分内容:用户嵌入式应用软件esw、fs88x6lib以及通过code generator加密目标文件时产生的加密信息digest,digest是esw经过hash运算的结果,即esw和digest是一一对应的,如果esw中有1bit code被修改,而digest没有跟着对应的改变,fs88x6将会检测出问题并报错。如图2所示:
在运行过程中,系统cpu将esw和digest根据设定的要求分批的送入fs88x6,fs88x6将根据对应的算法以及预存的密钥,对送进来的代码进行计算校验并反馈认证结果,以达到保护系统的目的。
目前,fameg的该嵌入式软件保护解决方案已广泛应用于机顶盒、pda、gps、pmp、bluetooth headset等系统中,其对应芯片fs88x6也已量产出货。