老古开发网首页
导航:老古开发网首页文章索引文章分类嵌入式系统→[SST89E/V58RD2和SST89E/V516RD2的安全性设计]
| -文章搜索 - 最新文章 - |

SST89E/V58RD2和SST89E/V516RD2的安全性设计

发布时间:2006年3月4日 点击次数:566
来源:单片机与嵌入式系统应用   作者:上海复旦大学 杨庆森
 

  SST89E/V58RD2/SST89E/V516RD2加密系统里有两种不同加密方式:硬件加锁(Hard Lock)和软件加锁(SoftLock)。用这两种安全加密方式对内部2块Flash加密共有6种不同的组合。

1  硬件加锁

  当SST89E/V58RD2/SST89E/V516RD2内部存储器的一个存储块被硬件加锁后,有下面的安全特性:

  ①  MOVC命令从驻留在非加锁区(外部程序空间通常也是认为没加锁)执行或者以软加密的Flash空间执行,不允许访问在硬件保护Flash块的目标地址。这可使硬件保护区的代码难以接触,防止软件被非法复制。 
  ②  所有外部主机模式和IAP指令(除了ChipErase/ProgSBx)禁止操作硬件加锁的Flash块。 
  ③  在复位时EA被锁存,防止在代码执行中被切换和跳到外部程序空间。

2  软件加锁

  软件加锁允许Flash内容在安全的环境下被读取和改写。被软件加密的Flash块有以下安全特性:

  ①  MOVC命令从驻留在非加锁区(外部程序空间通常也是认为没加锁)执行,不允许访问在软件加锁Flash块的地址空间。这可使硬件保护区的代码难以接触,防止软件被非法复制。 
  ②  从非加锁区产生的IAP指令被禁止。 
  ③  从软件加锁区产生的IAP指令对另外一个相同安全等级或相比较低的Flash块是允许的。从硬件加锁区产生的IAP指令对另一个软件加锁的Flash块的访问也是允许的。 
  ④  在复位时EA被锁存,防止在代码执行中被切换和跳到外部程序空间。

3  安全加密指导

3.1  安全加密位的编程

  在烧写安全加密位时有6个注意要点:

  ①  SST89E/V58RD2/SST89E/V516RD2的加密由三个安全加密位SB1、SB2和SB3控制。 
  ②  3个安全加密位可以通过外部主机模式或IAP的ProgSB1、ProgSB2和ProgSB3来编程改写。安全加密位可以随意改变,不用考虑当前安全等级。 
  ③  一旦某个加密位已经被编写后,只能通过外部主机模式或IAP的ChipErase命令来擦除所有3位加密位。 
  ④  在任何时候的安全加密位状态都是透过特殊功能寄存器SFST[7:5]查询的。 
  ⑤  安全加密位有8种组合,安全等级3有两个选择,每个选择有两种组合。这样就共有6种不同安全加密选择。 
  ⑥  6个安全加密选择分成4个不同安全等级。

3.2  IAP指令的影响

  IAP指令对安全加锁功能的影响如下:

  ①  从更高安全等级执行的IAP命令可以访问低安全等级Flash块的内容。 
  ②  从软加密或不加密安全等级的IAP命令可以访问相同等级的其他Flash块。 
  ③  从Flash块1或外部的程序空间执行IAP的安全指令不受安全等级的限制。
  ④  外部程序空间执行IAP的整片擦除指令ChipErase不受安全等级的限制。

4  安全等级

4.1  安全等级1——不加锁

  当全部3个加密位都没有被烧写时,就是安全等级1。这也是通过外部主机模式或IAP执行整片擦除指令ChipErase后的默认安全状态。在安全状态1,安全状态位SFST[7:5]是000b,内部Flash块的安全特性被禁止,MOVC指令和外部主机模式和IAP指令可以访问内部的2块Flash空间。

4.2  安全等级2——防止代码的误操作

  在安全等级1下,通过外部主机模式或IAP ProgSB1烧写加密位SB1,其余两个加密位不烧写,可以去到安全等级2。在安全等级2: 

  ①  2个Flash块都被软加密。 
  ②  安全状态位SFST[7:5]是100b。 
  ③  外部主机模式和IAP的字节校验指令ByteVerify command可以执行。允许在Block1和Block2的程序执行IAP指令。 
  ④  不允许从外部程序空间执行对内部Flash块的MOVC命令,但是从BLOCK0或BLOCK1可以执行对自己或另外Flash块和外部程序空间的MOVC命令。

4.3  安全等级3

  安全等级3是对代码误操作和软件版权的保护,可控制代码升级,包括了6个安全加密选择的3个等级。在每一种加密方式中,从外部程序空间执行的MOVC命令都被禁止,EA在复位时被取样和锁存,防止有人在代码执行中间切换并跳带外部代码。

(1)  Soft Lock/Soft Lock

  这个安全状态只能从安全等级1通过外部主机模式或IAP ProgSB2指令烧写加密位SB2而获得,其他2个加密位没有烧写。在安全等级3: 
  ①  2个Flash块被软加密。 
  ②  安全状态位SFST[7:5]是010b。 
  ③  所有主机模式命令(除了ChipErase和ProgSBx)都被禁止。 
  ④  所有Block0和Block1执行的IAP命令(除了IAP ChipErase)都是允许的。 
  ⑤  外部程序空间执行对内部Flash空间的MOVC指令都被禁止,而在内部Block0或Block1执行对内部或外部程序空间的MOVC指令都允许。

  驻留在内部Flash块的程序代码可以防止被复制,因为外边的资源不能访问到内部代码,而2个块的代码还是可以在可控制的环境中升级的。在Block1执行的代码可以升级Block0的代码,反之亦然。不管什么方式,由于在每个BLOCK的代码可以通过IAP被改写,实现这些IAP指令的代码存在会被误用的可能性。

(2)  Hard Lock/Soft Lock

  这个安全加密选择可以从安全等级1、2和3升级上来。在安全等级3: 
  ①  Block1被硬件加密,Block0被软件加密。 
  ②  加密状态位SFST[7:5]是001b或110b。 
  ③  所有主机模式命令(除了ChipErase和ProgSBx)都被禁止。 
  ④  只有Block1对Block0做IAP操作。在外部存储空间IAP ChipErase可以对内部Flash块操作。 
  ⑤  Block0对Block1的MOVC命令被禁止,但是Block1对Block0的MOVC命令是允许的。由于在Block1的代码被硬件加密,不能被改写,可以防止代码的误操作。由于外部不能访问,在Block 1和Block 0的代码完全被保护,防止被复制。不过,用户还可以运行Block1的IAP命令对Block0修改实现代码的升级。

(3)  Hard Lock/Hard Lock

  这个安全等级可以从安全等级1、2和3升级。如果SST89E/V58RD2/SST89E/V516RD2的当前状态是等级3(110b),它能升级的状态只有安全等级4 Hard Lock/Hard Lock。在安全等级3: 
  ①  2个Flash块都被硬件加密。 
  ②  加密状态位SFST[7:5]是011b或101b。 
  ③  所有主机模式命令(除了ChipErase和ProgSBx)都被禁止。 
  ④  从外部程序空间对内部Flash的MOVC被禁止,但是Block0或Block1对内部或外部的MOVC指令是允许的。

  在这个模式,由于所有的编程和擦除命令(除了ChipErase和ProgSBx)被禁止,2个Flash块都被保护。

5  安全等级4

  安全等级4是Hard Lock/Hard Lock最高加密等级。它可以从任何一个安全设置通过外部主机模式或IAP指令烧写3个加密位SB1、SB2和SB3。在安全等级4:

  ①  内部2个Flash块被硬加密。 
  ②  加密状态位SFST[7:5]是011b或101b。 
  ③  外部主机模式的所有命令(除了ChipErase命令)被禁止。 
  ④  所有IAP指令被禁止。 
  ⑤  从外部程序空间对内部Flash块的MOVC指令被禁止,但是从Block0和Block1执行的对内部Flash和外部存储空间可以执行。 
  ⑥  不允许执行外部程序代码,不管EA是1或0,除非代码调到内部空间不存在的地址代码(对SST89E/V58RD2,从8000H到DFFFH)。

  因为禁止内部Flash被擦除和编程,而且内部代码不能被访问到,在这个加密状态,内部代码可以防止被误改写或复制。另外,这时MCU只可以从内部Flash空间用户代码开始启动。


欢迎进入老古论坛进行讨论
[嵌入式系统] 相关文章:
基于uITRON操作系统的嵌入式GUI设计
简介:
  随着嵌入式系统技术的不断发展,各类嵌入式应用对人机交互界面的要求也越来越高,这就使得对嵌入式图形用户界面的需求越来越迫切。与一般系统上的图形用户界面相比,嵌入式系统图形用户界面要求轻型、占用资源少、高性能、高可靠性、可配置等特点。   本设计是在东南大学国家专用集成电路系统工程技术研究中心自主研发的,并在遵循uITRON 3.0标准的RTOS-ASIX OS基础上设计出一套适合于手持设备、仪器仪表等应用的图形用户界面——ASIX Window。该图形用户界面采用面向对象的设计思想,基于消息循环和事件驱动机制,构建了比较完整的窗口系统,为用户提供了类Win32 API的用户编程接口。考......

飞思卡尔不断领先高度集成电场技术
基于RFID的预付费电能表的研制
基于μC/OS-II的备用电源自动投入装置设计
SMD2000表面贴焊设备在科研生产中的应用
从Tornado到Workbench——风河公司的新一代嵌入式软件集成开发环境
数字信号控制器(DSC)适用于成本敏感的应用需求
飞思卡尔为消费电子应用提供双轴向传感器
嵌入式系统在PDA中的技术解决方案
Altera公司第二代软核嵌入式处理器NiosII
 
下一个:[技术文章]智能卡的边频攻击分析及安全防范措施
简介:
摘要 边频攻击技术是近年来新流行的一种智能卡攻击方法。与以往方法不同,它通过观察或干扰电路中物理量的变化来分析或操纵智能卡的行为,危害极大。文中比较几种主要的智能卡安全攻击方法的收益成本比;重点分析差分能量分析与能量短脉冲干扰的攻击原理与关键步骤,并从软件、硬件和应用层面提出相应的安全防范措施。 关键词 智能卡 边频攻击 安全防范措施   在智能卡应用日益广泛的今天,智能卡应用系统的安全问题非常重要。通常认为智能卡具有较高的安全性[1],但随着一些专用攻击技术的出现和发展,智能卡也呈现出其安全漏洞,导致整个应用系统安全性降低。分析智能卡面临的安全攻击,研究相应的防御措施,对于......
 

上一个:[嵌入式系统]煤矿安全生产监测系统解决方案

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒