现在的位置: 首页 > 综合 > 正文

MC9S12XEP100RMV10打印_第九章_安全加密

2018年03月16日 ⁄ 综合 ⁄ 共 4150字 ⁄ 字号 评论关闭

第九章安全

9.1  引言

这份说明描述了S12XE芯片系列的安全机构的功能作用(9SEC.

注意:没有安全功能是绝对的安全。然而不管怎样,飞思卡尔的策略是使对于未授权的用户很难读和复制Flash和或EEPROM

9.1.1         
特征

用户必须知道安全部分必须跟应用程序代码放在在一起。一个极端的例子是转储内部存储中的内容的应用程序代码,这会破坏安全的目的。同时,用户也可能希望开个后门程序(放一个秘密???)在应用程序中。一个这样的例子是用户通过SCI下载一个安全密钥。这个SCI允许有权访问上传存储在Flash存储器中的另一部分的参量(参数)的程序调度程序。

S12XE系列芯片的安全特征是(在安全模式下):

l       保护非易失性存储器(Flash,EEPROM)中的内容。

l       受限制的执行NVM命令。

l       经过背景调试模式(BDM)不能存取内部存储???

l       在扩展模式不能存取内部Flash/EEPROM

l       CPUXGATE关闭调试特征

9.1.2         
运行方式

Table 9-2给出了一个在不安全模式和安全模式下安全相关的特征的可利用性的概述。

NS:正常单片模式

SS:特殊单片模式

NX:正常扩展模式

ES:仿真单片模式

EX:仿真扩展模式

ST:特殊测试模式

 

 

 

 

 

 

NS

SS

NX

ES

EX

ST

NS

SS

NX

ES

EX

ST

Flash阵列存储

1

1

1

1

--

--

--

--

EEPROM阵列存储

--

--

--

--

NVM命令

2

2

2

2

2

2

2

2

2

2

背景调试模式BDM

--

3

--

--

--

--

背景调试模式BDM跟踪

--

--

--

--

--

--

协处理器XGATE调试

--

--

--

--

--

--

外部总线接口

--

--

--

--

复用外部总线时内部的状态可见

--

--

--

--

--

--

--

--

内部存取对外部总线可见

--

--

--

--

--

--

--

--

--

--

 

  1 在存储映像中的Flash阵列的可利用性依赖于ROMCTL/EROMCTL引脚和或者存储管理控制模块控制寄存器1(MMCCTL1)中的ROMON/EROMON位的状态。请查阅S12X_MMC模块以得到详细的说明。

  2 仅设置受限的NVM命令,请查阅NVM章节以得到详细的说明。

  3 BDM硬件命令仅受限于外围寄存器。

9.1.3         
使控制器安全

一旦用户已经对FlashEEPROM编程,芯片可以通过对位于Flash存储阵列里的选项或安全字节里的安全位来编程以确保芯片安全。这些非易失性位会通过复位和断电来保持设备的安全。

Flash存储阵列中,这些选项和安全字节位于地址0xFF0F(也即全局地址0x7F_FF0F),。就像其它任何的Flash的位置一样,这个字节可以被擦除和编程。这个字节的两个位被用作安全位(SEC[1:0])。在有存储页面窗口的设备上,通过PPAGE寄存器选择0x3F页,Flash选项和安全字节在地址0xBF0F也是可用的。在复位序列期间,这个字节的内容会被复制到FLASH安全寄存器里(FSEC)。

KEYEN[1:0]两位的意思在“Table 9-3
后门存取键使能位”中列出来了。请查阅9.1.5.1节“使用后门存取键解密MCU”以得到更多的信息。

安全位SEC[1:0]的意思在“Table 9-4
安全位”中烈了出来。由于安全原因,设备安全的状态由两个位控制。是这个设备处于不安全模式,这两位必需被编程设置为SEC[1:0]=10”。所有其他的情况使设备处于安全模式。使设备处于安全状态的推荐值是不安全状态的相反,即SEC[1:0]=
01”。

注意:请查阅Flash模块以得到实际的安全配置(在Flash模块安全章节)

9.1.4         
被保护的微控制器的操作

通过保护设备,对EEPROMFlash存储内的内容的未经授权的访问会被阻止。然而,必须认识到EEPROMFlash存储内的内容的安全也取决于应用程序的设计。例如,如果应用程序有通过串口下载代码并且执行这些代码的能力(例如一个包含bootloader代码的应用程序),这种能力可以用来读EEPROMFlash存储内的内容,即使当微控制器在安全的状态。在这个例子中,在任何代码可以下载之前,应用程序的安全性可以通过要求质疑和响应身份验证来提高。

安全操作对微控制器有如下的影响:

9.1.4.1     正常单片模式(NS

l       背景调试模式(BDM)操作被完全关闭。

l       执行Flash和或EEPROM命令受限,请查阅NVM模块介绍以得到详细信息。

l       使用DBG单元的跟踪代码的执行被关闭。

l       调试协处理器(XGATE)代码(断点调试,单步调试)被关闭。

9.1.4.2  特殊单片模式(SS

l       背景调试模式(BDM)固件命令关闭。

l       背景调试模式(BDM)硬件命令对寄存器空间受限。

l       执行Flash和或EEPROM命令受限,请查阅NVM模块的介绍以得到详细信息。

l       使用DBG单元的跟踪代码的执行被关闭。

l       调试协处理器(XGATE)代码(断点调试,单步调试)被关闭。

特殊单片模式意味着在复位后背景调试模式(BDM)是起作用的。背景调试模式(BDM)固件命令的可用性依赖于设备的安全状态。背景调试模式(BDM)安全固件首先对Flash存储和EEPROM执行一个空白的检查。如果空白检查成功,安全将暂时关闭,并且安全位的状态在适当Flash存储位置可以改变。如果空白检查失败,安全将一直起作用,只有背景调试模式(BDM)硬件命令将使能,并且可访问的内存空间被限制在外围寄存器区,这将允许背景调试模式(BDM)被用来在没有访问EEPROMFlash存储的内容时擦除EEPROMFlash存储。在擦除Flash存储和EEPROM之后,另外一个进入特殊单片模式的复位将导致空白检查成功,和选项/安全字节可通过背景调试模式(BDM)被编程成不安全状态。当背景调试模式(BDM)正在执行空白检查时,背景调试模式(BDM)接口是完全阻塞的,这意味着所有背景调试模式(BDM)命令是暂时阻塞的。

9.1.4.3      
扩展模式(普通扩展模式NX,仿真单片模式ES,仿真扩展模式EX,和特殊测试模式ST)

l       背景调试模式(BDM)操作被完全关闭。

l       内部Flash存储和EEPROM是不使能的(关闭的)。

l       执行Flash和或EEPROM命令受限,请查阅FTM模块的介绍以得到详细信息。

l       使用DBG单元的跟踪代码的执行被关闭。

l       调试协处理器(XGATE)代码(断点调试,单步调试)被关闭。

9.1.5         
 解密微控制器

解密微控制器可以通过三个不同的方法做到:

   1.秘密存取建(后门存取键?)

   2.重新编程安全位

   3.完整的(完全的/彻底的)存储器擦除(特殊模式)

9.1.5.1  使用后门存取键解密MCU

在正常模式(单片和扩展),使用后门存取键的方法,加密可以短暂的关闭。这个方法要求如下:

l       0xFF00-0x FF07=全局地址0x7F_FF00-0x 7F_FF07)的后门存取键已编程为一个有效的值。

l       Flash的选项和安全字节位KEYEN[1:0]两位设置为“使能”(KEYEN[1:0]=10)。

l       在单片模式中,应用程序编程到微控制器必须设计成有能力写放后门存取键的位置的位。

后门存取键的值本身通常不会被存储在应用程序的数据中,这意味着应用程序将不得不被设计成从外部源接收后门存取键的值(例如通过一个串口)。

后门存取键的方法允许调试一个加密的,无须擦除Flash的微控制器。这对故障分析是特别有用的。

注意:无价值的的后门键允许有0x00000xFFFF的值。

9.1.6         
重新编程安全(加密)位

在普通单片模式(NS),加密也可以被擦除和重新编程在Flash选项/安全字节中的加密位的不安全的值关闭。因为擦除操作将删除从0xFE000xFFFF0x7F_FE000x7F_FFFF)的整个的扇区,后门的钥匙和中断向量也将被删除;对于普通单片模式,不建议采用这种方法。应用软件可以仅仅擦除和编程Flash选项/加密(安全)字节,如果这个Flash扇区包含的Flash选项/加密(安全)字节是未被保护的(见Flash的保护章节)。因此,Flash保护的是一个防止这种方法的有用的手段。在对安全位编程不安全的值后的下一次复位后,微控制器将进入不安全的状态。这个方法要求如下:

l       事先编程写入微控制器的应用软件被设计成有能力擦除和编程Flash选项/加密(安全)字节,或加密已被使用后门存取键的方法关闭,允许背景调试模式(BDM)被用来发出擦除和编程Flash选项/加密(安全)字节的命令。

l       这个包含Flash选项/加密(安全)字节的Flash扇区是未被保护的。

9.1.7         
 完整的存储擦除(特殊模式)

微控制器在特殊模式下可以通过擦除整个EEPROMFlash存储的内容来解密。

当一个加密的微控制器复位进入特殊单片模式(SS),背景调试模式(BDM)固件验证核实EEPROMFlash存储是否被擦除了。如果EEPROMFlash存储的地址是没有被擦除的,仅背景调试模式(BDM)硬件命令使能。背景调试模式(BDM)硬件命令可用来写入EEPROMFlash存储寄存器以达到大规模擦除EEPROM和所有的Flash存储块。

当下一次复位进入特殊单片模式,背景调试模式(BDM)固件又将验证核实EEPROMFlash存储是否被擦除了,而在这种情况下,将使能所有的背景调试模式(BDM)命令,允许Flash选项/安全加密字节被编程成解密(不安全)的值。Flash的安全加密寄存器中的安全加密位SEC[1:0]将会在下一次复位后标示出(指示出)解密(不安全)的状态。

抱歉!评论已关闭.