SST89E/V58RD2和SST89E/V516RD2的安全性设计
发布时间:2008/5/27 0:00:00 访问次数:1134
    
    
    来源:单片机及嵌入式系统应用 作者:泰山学院 王春玲
    
    sst89e/v58rd2/sst89e/v516rd2加密系统里有两种不同加密方式:硬件加锁(hard lock)和软件加锁(somftlock)。用这两种安全加密方式对内部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/sstb9e/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的整片擦除指令chipr-erase不受安全等级的限制。
    
    4 安全等级
    
    4.1 安全等级1——不加锁
    
    当全部3个加密位都没有被烧写时,就是安全等级l。这也是通过外部主机模式或iap执行整片擦除指令chip-erase后的默
    
    
    来源:单片机及嵌入式系统应用 作者:泰山学院 王春玲
    
    sst89e/v58rd2/sst89e/v516rd2加密系统里有两种不同加密方式:硬件加锁(hard lock)和软件加锁(somftlock)。用这两种安全加密方式对内部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/sstb9e/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的整片擦除指令chipr-erase不受安全等级的限制。
    
    4 安全等级
    
    4.1 安全等级1——不加锁
    
    当全部3个加密位都没有被烧写时,就是安全等级l。这也是通过外部主机模式或iap执行整片擦除指令chip-erase后的默