一种安全芯片及其访问控制方法与流程

文档序号:12123488阅读:374来源:国知局
一种安全芯片及其访问控制方法与流程

本发明芯片领域,特别涉及一种安全芯片及其访问控制方法。



背景技术:

随着银行卡、射频标签、密码钥匙、智能卡、POS终端、手机SIM卡等支付设备的广泛使用,这些设备的安全性备受关注。另一方面,在物联网应用中,许多终端设备如信号采集设备,监控设备等,都具备了较强的计算能力和联网能力,由于布置分散,无人监管,这些设备的安全性更存在一定风险。

目前的防护手段也从早期的基于传感器的防护方法到如今的系统性、多层次防护理念。在防护设计中,开放的存储体系结构来说存在着严重的安全隐患,可以考虑将芯片划分为若干安全区域,为了保证不同安全区域的相互隔离性,通过安全认证来进行数据和程序的访问。



技术实现要素:

为了解决现有技术的上述问题,有必要提供一种防止数据被非法读写的安全芯片。

本发明还提供一种安全芯片的访问控制方法。

本发明解决技术问题提供的技术方案是:

一种安全芯片,其包括存储控制器和MCU和逻辑存储空间,所述存储控制器将所述逻辑存储空间划分出数据缓存、加密缓存和机密存储区三个物理存储空间,

应用程序具有对所述数据缓存的数据读写权限;

应用程序对所述机密存储区进行读写时,需要通过安全认证后才能获得对所述机密存储区的读写权限,所述安全认证的运算过程由所述MCU采用专用的安全指令集进行,所述安全认证的运算过程中产生的数据存储在所述加密缓存中,所述加密缓存的数据需所述MCU采用所述安全指令集进行读取。

本发明实施例中,所述芯片的逻辑存储空间包括MCU的寄存器、SRAM和NOR flash。

本发明实施例中,所述寄存器和所述SRAM可用于被划分为所述加密缓存去和所述数据缓存,所述NOR flash可被划分为所述机密存储区。

本发明实施例中,所述机密存储区中还存储了用户ID信息和初始密钥,所述用户ID信息和初始密钥可更改,且需要所述MCU通过所述专用的安全指令集进行读取。

本发明实施例中,所述安全认证采用下列加密算法的一种或多种:SHA-1、M4SHA-256、SM3、MD5、AES、DES、SM4。

本发明实施例中,所述安全认证计算之前,所述加密缓存域缓存字节数据,所述安全认证计算之后,所述加密缓存输出认证摘要。

本发明还提供一种安全芯片的访问控制方法,其将将所述芯片的逻辑存储空间数据缓存、加密缓存和机密存储区三个物理存储空间,

应用程序具有对所述数据缓存的数据读写权限;

应用程序对所述机密存储区进行读写时,需要通过安全认证后才能获得对所述机密存储区的读写权限,所述安全认证的运算过程由MCU采用专用的安全指令集进行,所述安全认证的运算过程中产生的数据存储在所述加密缓存中,所述加密缓存的数据需MCU采用所述安全指令集进行读取。

本发明实施例中,所述机密存储区中还存储了用户ID信息和初始密钥,所述用户ID信息和初始密钥可更改,且需要通过所述专用的安全指令集进行读取。

本发明实施例中,所述安全认证采用下列加密算法的一种或多种:SHA-1、M4SHA-256、SM3、MD5、AES、DES、SM4。

本发明实施例中,所述安全认证计算之前,所述加密缓存域缓存字节数据,所述安全认证计算之后,所述加密缓存输出认证摘要。

本发明实施例中,所述安全认证的过程包括:

将输入的消息认证码加载到所述数据缓存;

将所述输入的消息认证码从所述数据缓存加载到所述加密缓存;

加载密钥和用户ID到所述加密缓存,启动加密算法生成消息认证码;

在所述加密缓存中比较所述输入的消息认证码与所述生成的消息认证码是否一致,一致则认证通过,否则认证不通过。

本发明实施例中,对所述机密存储区写入数据的过程包括:

对写入发起方的消息认证码进行所述安全认证;

认证通过,则将写入的数据加载到所述数据缓存;

将所述数据缓存中的数据加载到所述机密存储区中。

本发明实施例中,所述机密存储区写入数据后还生成新密钥,所述生成新密钥的过程包括:

写入用户数据到所述数据缓存,加载密钥和用户ID到所述加密缓存,加载用户数据和常数到所述加密缓存,启动加密算法生成消息认证码,最后将消息认证码的一部分作为密钥。

与现有技术相比较,本发明提供的安全芯片及其数据方法控制方法,将将所述芯片的逻辑存储空间数据缓存、加密缓存和机密存储区三个物理存储空间,不同的存储空间具有不同的读取权限,当用户或外部程序要对所述机密存储区的数据进行读取或刷新时,需要通过安全认证才具有读写权限,保障了所述机密存储区的数据安全,进一步地,所述安全认证的数据存取过程在所述加密缓存中进行,并且采用专用的安全指令集对所述加密缓存的数据进行读取,保证了安全认证过程中的数据安全性。

附图说明

图1是本发明的安全芯片的地址映像结构图结构示意图。

图2是本发明的安全芯片装载初始密钥和ID的指令流程示意图。

图3是本发明的安全芯片更新数据的指令流程示意图。

图4是本发明的安全芯片进行安全认证的指令流程示意图。

图5是本发明的安全芯片更新数据的指令流程示意图。

图6是本发明的安全芯片读数据的指令流程示意图。

具体实施方式

本发明的安全芯片及其访问控制方法中,所述安全芯片包括存储控制器、MCU和逻辑存储空间,所述存储控制器将所述逻辑存储空间划分出数据缓存、加密缓存和机密存储区三个物理存储空间。所述数据缓存、加密缓存和机密存储区具有不同的读写权限:所述数据缓存的数据读写权限完全对应用程序开放;所述加密缓存的数据需所述MCU采用专用的安全指令集读取;应用程序对所述机密存储区进行读写时,需要通过安全认证后才能获得对所述机密存储区的读写权限,所述安全认证的运算过程由所述MCU采用专用的安全指令集进行,所述安全认证的运算过程中产生的数据存储在所述加密缓存中,所述加密缓存的数据需所述MCU采用所述安全指令集进行读取。

需要说明的是,所述逻辑空间包括MCU的寄存器、SRAM和NOR flash。所述寄存器和所述SRAM可用于被划分为所述加密缓存和所述数据缓存,所述NOR flash可被划分为所述机密存储区。所述机密存储区中还存储了用户ID信息和初始密钥,所述用户ID信息和初始密钥可更改,且需要通过所述专用的安全指令集进行读取。

所述安全认证采用下列加密算法的一种或多种:SHA-1、M4SHA-256、SM3、MD5、AES、DES、SM4。所述安全认证计算之前,所述加密缓存域缓存字节数据,所述安全认证计算之后,所述加密缓存输出认证摘要。所述安全认证的过程包括:

将要认证的用户或应用程序输入的消息认证码加载到所述数据缓存;

将所述输入的消息认证码从所述数据缓存加载到所述加密缓存;

所述MCU通过专用的安全指令集从所述机密存储区中加载密钥和用户ID到所述加密缓存,启动加密算法生成消息认证码;

在所述加密缓存中比较所述输入的消息认证码与所述生成的消息认证码是否一致,一致则认证通过,否则认证不通过。

通过上述认证后,用户或应用程序就具有了对所述机密存储区的读写权限,可以读取所述机密存储区的数据或者刷新数据。

下面以所述安全芯片内置NOR flash为例,对所述安全芯片及其访问控制方法进行说明。

请参阅图1,对安全芯片的寄存器和NOR flash区域进行统一的逻辑地址映射,并划分安全区域。其中,机密存储区对应芯片内的NOR flash区域,加密缓存和数据缓存分别对应于芯片内的和寄存器区域或者SRAM区域。数据缓存域可以用SRAM或者寄存器组来实现,它与安全芯片的寄存器直接相连,可以无限制被访问,加载到加密缓存和机密存储区的数据均需要从数据缓存中用专用指令进行操作。

所述机密存储区为机密数据存储空间,外部程序在通过认证前,不能对所述机密存储区进行读写,如果要更新其中的内容需要进行认证操作。机密存储区中还存储了用户ID信息,初始密钥。初始密钥和ID只能被写入一次,不能再修改,这个初始密钥和ID可以作为安全芯片的信任根,所述初始密钥和ID需MCU通过所述专用的安全指令集进行读取。

在进行安全认证之前,所述加密缓存域缓存字节数据,当认证计算结束后,加密缓存输出认证摘要。所述认证计算可以采用如SHA-1、M4SHA-256、SM3、MD5等杂凑算法,也可以采用AES、DES、SM4等分组加密算法。

所述安全芯片的安全存储访问机制需要完成功能包括:装载初始密钥和ID、更新数据、安全认证、生成新密钥、读取数据操作。下面以加密认证算法是SHA-1为例,对上述功能进行说明。

所述安全芯片可以被一次写入初始密钥和ID值,这个初始密钥和ID是不可更改的,同时也不能被直接读取;它只能被所述MCU采用所述专用的安全指令集读取以用作认证运算。装载初始密钥和ID操作过程包括:写入初始密钥和ID数据到数据缓存,检测初始密钥或者ID是否已经写入,如果没有写入,则写入初始密钥或ID。

所述安全认证的过程为:将输入的消息认证码加载到所述数据缓存;将所述输入的消息认证码从所述数据缓存加载到所述加密缓存;加载密钥和用户ID到所述加密缓存,启动加密算法生成消息认证码;在所述加密缓存中比较所述输入的消息认证码与所述生成的消息认证码是否一致,一致则认证通过,否则认证不通过。

安全芯片中机密存储区的数据可被更新,更新数据之前,进行数据更新的用户或应用程序需要通过安全认证,如果安全认证通过,则将需要更新的数据写入数据缓存,最后将数据缓存中数据加载到机密存储区中,如果安全认证不通过,则不允许进行数据更新。

所述机密存储区写入数据后还可以根据用户的设置生成新密钥,所述生成新密钥的过程包括:

写入用户数据到所述数据缓存,加载密钥和用户ID到所述加密缓存,加载用户数据和常数到所述加密缓存,启动加密算法生成消息认证码,最后将消息认证码的一部分作为密钥。

用户或应用程序进行读取数据操作时,需要通过安全认证,通过安全认证后,将数据从机密存储区送到数据缓存中,然后读数据缓存即可。

因为上述安全芯片的每一个功能包括多个步骤的子操作,如果全部用硬件直接实现代价巨大。同时,上述5种操作中有多个子操作重复出现,因此可以将5种功能操作分解为基本的安全指令,利用基本的安全指令的组合完成上述5种功能,安全指令集如下表所示。

表1中的指令Ld_sct2buf,Ld_sct2mem会使得机密信息消息认证码暴露在外界可以直接访问的缓存区内,因此存在安全隐患。因此实际设计中将这两条指令隐藏在安全芯片内部,只能Compute_mac和Gernerate_key指令完成后自动加载,而不能由外部加载。基于上述表1,安全芯片可完成装载初始密钥和ID、安全认证、更新数据、生成新密钥、读数据等操作,如图2到图6所示。

需要说明的是,在所述安全芯片的设计中,所述机密存储区的数据为敏感数据,嵌入式MCU和DMA控制器不能直接访问所述机密存储区中的敏感数据,从而保证的数据的安全隔离。一旦所述安全指令集中的指令开始执行,除非复位或者断电才能停止指令执行;一旦断电或者复位,已经计算的结果全部被复位。所述芯片中逻辑地址和物理地址也采用一定映像规则,并采取相应策略防止地址越界访问,可采用固定的指令的源和目的地址,固定发送的数据长度的方法进行。

综上所述,本发明提供的安全芯片及其数据方法控制方法,将将所述芯片的逻辑存储空间数据缓存、加密缓存和机密存储区三个物理存储空间,不同的存储空间具有不同的读取权限,当用户或外部程序要对所述机密存储区的数据进行读取或刷新时,需要通过安全认证才具有读写权限,保障了所述机密存储区的数据安全,进一步地,所述安全认证的数据存取过程在所述加密缓存中进行,并且采用专用的安全指令集对所述加密缓存的数据进行读取,保证了安全认证过程中的数据安全性。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1