首页> 中国专利> 一种适用于多应用之间安全访问的MPU及其多应用之间安全访问的方法

一种适用于多应用之间安全访问的MPU及其多应用之间安全访问的方法

摘要

本发明创造提供了一种适用于多应用之间安全访问的MPU,包括用于存放异常向量表和核心代码并只供超级用户访问的存储区域及用于仅供超级用户访问的MPU的控制存储区域。此外还根据此种适用于多应用之间安全访问的MPU提供了风险敏感进入敏感应用的方法及防止风险应用对敏感信息所在区域读取及修改的方法。采用了本技术方案,能够有效的解决在各种应用及系统中互相访问的安全问题,且本技术方案相应成本较低,便于应用。

著录项

  • 公开/公告号CN103699434A

    专利类型发明专利

  • 公开/公告日2014-04-02

    原文格式PDF

  • 申请/专利权人 天津国芯科技有限公司;

    申请/专利号CN201310726489.6

  • 发明设计人 艾方;肖佐楠;文胜利;

    申请日2013-12-17

  • 分类号G06F9/46;G06F9/54;

  • 代理机构天津滨海科纬知识产权代理有限公司;

  • 代理人杨慧玲

  • 地址 300457 天津市滨海新区经济技术开发区第四大街80号天大科技园软件大厦北楼306室

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-08

    授权

    授权

  • 2014-04-30

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20131217

    实质审查的生效

  • 2014-04-02

    公开

    公开

说明书

技术领域

本发明创造涉及计算机微处理器领域,尤其涉及一种适用于多应用之间 安全访问的MPU及其多应用之间安全访问的方法

背景技术

随着信息安全技术的发展和智能卡硬件性能的不断地提升,更多 的智能卡要求做到一卡多用或一卡通用,如银行发行的公交联名卡 (金融卡和公交卡的耦合)、金融社保卡(金融卡和社保卡的耦合) 和手机支付卡(电信SIM卡和金融卡的耦合)等。但是与智能卡硬 件处理能力突飞猛进的发展相比,支持多应用的智能卡操作系统的发 展却相对滞后。这种滞后产生的一个很重要的原因就是缺乏一种不同 应用间的安全访问方法。

发明内容

本发明创造要解决的问题是提供一种能够有效的适用于多应用之间安 全访问的MPU及其应用之间安全访问的方法

为解决上述技术问题,本发明创造采用的技术方案是:一种适用于多应 用之间安全访问的MPU,所述的MPU包括:

用于存放异常向量表和核心代码并只供超级用户访问的存储 区域;

用于仅供超级用户访问的MPU的控制存储区域;

用于存储用户可编程的32位数据/地址加密密钥的存储区域。

进一步的,述的用于用户可编程的32位数据/地址加密密钥区域还 包括:

用于记录访问异常的属性的存储区域。

进一步的,所述的控制区域的前4KB部分为引导程序(loader)存储区域。

根据本发明的另一方面,还提供了一种基于所述的MPU的从敏感应用进 入风险应用的方法,其特征在于所述的方法包括以下步骤:

执行引导程序(loader);

将除了所有风险应用可能用到的空间以外的空间加密并设置为不可 读、不可写、不可执行;

将MPU控制存储区域由0xffff0000开始的64k存储区域设置为不可 读写。

进一步的,所述的MPU的从风险敏感进入敏感应用的方法,其特征在于 所述的方法包括以下步骤:

执行引导程序(loader);

进入敏感应用。

根据本发明的另一方面,还提供了一种基于所述的MPU的防止风险应 用对敏感信息所在区域读取及修改的方法,所述的方法包括以下步骤:

将敏感信息所在区域的权限设置为不可读、不可写、不可执行;

将风险应用正常情况下使用不到的剩余的存储空间全部(包括Flash、 EPROM、以及未使用的外芯片外部总线区)设置为不可读、不可写、不可 执行。

进一步的,所述的防止风险应用对敏感信息所在区域读取及修改的方 法,所述的方法包括以下步骤:

将风险应用可能非法访问到而正常情况下应用不到的剩余存储空间全 部加密。

进一步的,所述的防止风险应用对敏感信息所在区域读取及修改的方 法,所述的方法包括以下步骤:

在进入风险应用前,将MPU控制存储区域由0xffff0000开始的64k存 储区域设置为非可读非可写状态。

进一步的,所述的防止风险应用对敏感信息所在区域读取及修改的方 法,所述的方法包括以下步骤:

对敏感信息进行加密。

进一步的,所述的防止风险应用对敏感信息所在区域读取及修改的方 法,所述的对敏感信息进行加密的秘钥和芯片的唯一序列号相关。

根据本发明的另一方面,还提供了一种基于所述的MPU的风险应用读取 敏感应用中可以开放给风险应用的资源的方法,所述的方法包括以下步骤:

设定加密的公共区域;

对公共区域信息进行访问权限设置;

可直接对设定的公共区域存储的数据进行读取。

根据本发明的另一方面,还提供了一种基于所述的MPU的风险应用修改 敏感应用中可以开放给风险应用的资源的方法其特征在于所述的方法包括 以下步骤:

设定加密的公共区域;

对公共区域信息进行访问权限设置;

进行修改操作时通过公共函数提供的接口来完成。

进一步的,述的风险应用修改敏感应用中可以开放给风险应用的资源的 方法其特征在于所述的方法包括以下步骤:

将所述的公共函数存储于风险应用只能够执行,不能读和写的存储区 域。

进一步的,所述的风险应用修改敏感应用中可以开放给风险应用的资源 的方法所述的方法包括以下步骤:

将公共函数中设置为不能出现全局变量、公共函数中不能对局部变量 进行赋初值、及公共函数中不能定义静态变量。

进一步的,所述的风险应用修改敏感应用中可以开放给风险应用的资源 的方法于所述的方法包括以下步骤:

为公共函数提供用于对公共区域进行擦写和编程的函数、用于将风险应 用跳转到loader的跳转函数及用于将loader代码跳转到风险代码的跳转函 数。

本发明创造具有的优点和积极效果是:采用了本技术方案,能够有效的 解决在各种应用及系统中互相访问的安全问题,且本技术方案相应成本较 低,便于应用。

附图说明

图1是本发明中一个应用实例中适用于多应用之间安全访问的MPU存储 结构示意图

图2是发明中一个应用实例中loader代码跳转到风险代码的流程示意图

1、MPU的控制存储区域    2、向量表以及引导程序    3、不可进入区域                                (loader)存储区域

4、敏感应用区、敏感SRAM 5、风险应用区、风险SRAM  6、公共函数区、公        区                      区                       共SRAM区

具体实施方式

为了对本发明创造更加深入的了解,下面列举一具体实施例,并结合附 图,对本发明创造做进一步的详细说明。

首先对本发明创造中风险应用及敏感应用进行说明,风险应用是指 运行中有可能会破环系统,非法访问敏感应用中敏感信息的代码。本 文中的敏感应用含有被保护的信息。在敏感应用中,除了预留给风险 应用可调用的信息之外,其他的代码,数据,变量等敏感信息均不应 被风险应用读取、修改以及执行(上述敏感信息中典型的为:受国家 管制的某种算法、PKI体系中的私钥、不允许被外部篡改的安全操作 系统等等)。

本实例中采用了国芯MPU技术作为基础,国芯MPU具有如下特 征:

·可设置8个超级用户可编程的存储器区

■每个区空间可以从1K字节到4G字节

■区基地址可以位于4G存储空间的任意位置

■每个区基地址根据区空间自动对齐

■可编程的数据/地址加密/解密机制

■灵活的访问属性:

-超级用户/用户访问

-读/写访问

-执行访问(指令取指)

·一个超级用户访问区域用于存放异常向量表和核心代码

■固定空间:4K字节

■固定地址:0x00000000

■地址、数据加密

■固定访问属性

-只允许超级用户访问

·一个超级用户访问区域作为MPU的控制区

■固定尺寸:64K字节

■固定位置:0xFFFF0000

■固定访问属性

-只允许超级用户访问

·一个用户可编程的32位数据/地址加密密钥

·状态寄存器可以记录访问异常的属性

·MPU可以由超级用户使能或者关闭

■可编程的区域在CPU复位后是无效的,必须首先由超级用 户设置才有效

■异常向量表和核心代码以及MPU的控制区始终被保护

由图1可以看出本方案使用的MPU段包括:2个特殊MPU段即 前4KB用以存储向量表及loader代码区(含loader中赋初值的全局变 量)后64KB为MPU的控制区,即将核心重要部分区域与其他存储 区域严格划分出来。

基于上述特点,本实例可以实现多应用之间安全访问。首先,上电首先 执行引导程序(loader),引导程序所要完成的工作包括:

(1)进行MPU的初步设置,为敏感应用及风险应用的进入提供基础条件。 这里的基础条件是指对于给敏感应用的安全性提供保障。

(2)引导智能卡进入特定应用(敏感应用或风险应用)。

引导程序牵扯到对MPU进行配置等敏感操作,所以应该防止风险代码对此 区域的访问。保护方法是对此区域进行权限限定。采用的方法为,将loader 放在前4KB中运行,即可实现自动加密并将权限设置为不可读、不可写、 仅可执行。能够有效的保证loader部分不被修改和读取,避免其它恶意程序 通过读取对loader进行反向破解或者对loader部分进行修改。

敏感应用和风险应用之间相互切换在工作中经常发生,为防止切换过程 中

从敏感应用进入风险应用的方法是:MPU的设置是将除了所有风险应 用可能用到的空间以外的空间加密并设置为不可读、不可写、不可执行。此 后,对MPU上锁(MPU模块寄存器区域(0xffff0000开始的64k设置为不 可读写)。

从风险应用跳到敏感应用区域的方法为:使用软复位的方式,直接从 0x00地址开始执行loader(实现MPU的解锁)。然后,loader在合适的条 件下,进入敏感应用。

为防止风险应用对敏感信息所在区域读取及修改,首先,应通过MPU 采用权限控制的方式。将敏感信息所在区域的权限设置为不可读、不可写、 不可执行。

为了防止风险应用通过未使用的SRAM或Flash进行数据搬移,将风险 应用正常情况下使用不到的剩余的存储空间全部(包括Flash、EEPROM、 以及未使用的外芯片外部总线区)设置为不可读、不可写、不可执行。

采用权限控制的策略之后:

此时,风险应用对敏感信息的非法访问只有通过两条途径实现:(1) 将MPU关闭,(2)将MPU的段属性重新修改。

对于第一条,将风险应用可能非法访问到而正常情况下应用不到的剩余 存储空间(包括Flash、EPROM、以及未使用的外芯片外部总线区)全部加 密,这样,风险代码如果进行关闭MPU的操作,程序立刻跑飞。

对于第二条,在进入风险应用前,将MPU控制寄存器区域(从 0xffff0000开始的64K)全部设为非可读非可写状态,这样超级用户也无法 对此区域进行操作。注意这个过程是对MPU进行上锁,MPU的解锁只有通 过复位来实现了。

除此之外,为了防止通过对存储区进行逆向(采用物理的方式引出存储 区的接口,直接读取相关的数据)的方法来读出敏感信息,MPU需要对敏 感信息进行加密,且加密秘钥需要设计的和芯片的唯一序列号相关。

在实际应用中,风险应用会有相应的数据开放供风险应用进行使用, 一般来讲,只允许风险应用读取敏感应用中可以共享的信息,而不能改写敏 感应用的信息。本实例中还提供了一种风险应用读取、修改以及执行敏感应 用中可以开放给风险应用的资源的方法。在本实例中风险应用可以通过公共 函数来执行敏感应用中可以开放给风险应用的函数。

风险应用可以通过公共区域的方式来实现对敏感应用相关信息的访问, 公共区域必须加密,访问权限可根据需要进行设置。公共区域优先采用Flash 作为存储介质,因为Flash对写操作可以方便的进行控制,而SRAM对写进 行控制,则会困难很多。风险应用对于公共区域进行读操作时可以直接进行, 进行擦除或写操作时必须通过公共函数提供的接口来完成。

公共函数位于敏感应用中,公共函数是风险应用可以调用的敏感应用中 的函数区域,这个区域风险应用只能够执行,不能读和写。这里涉及到了函 数中的变量和常量的问题。由于这里的函数是敏感应用创建,此时又被风险 应用调用。那么如果函数中又访问敏感应用的sram区或者访问敏感应用的 常量存储区,那么会发生访问异常(此时,这些区域的权限应为不可读、不 可写、不可执行)。在写这些函数时,应满足如下要求:(1)函数中不能 出现全局变量。(2)函数中不能对局部变量进行赋初值,因为这个初值, 会保存在代码区。(3)不能定义静态变量。这样函数就可以在不同的应用 之间进行调用了。

关于公共函数,进一步说明如下:

1)本区域为明文区域,因为本区域需要对MPU进行重新配置。

2)至少提供3个函数。对公共flash区域的编程函数;敏感应用和风险应 用之间的跳转函数。

3)敏感应用对风险应用提供的任何其他函数,都可以放在此区域。

4)本区域的函数对于风险应用而言都是只可执行,不能读不能写的状态。

各公共函数的函数说明如下:

特别需要说明的是,该方法不仅可以应用在智能卡领域,对于任何需要 应用之间互相安全访问的系统,该方法均适用。对于本领域技术人员来说, 在本发明创造思想的启示下,可以通过软件,硬件或者软硬结合的方式将该 方法应用于对安全操作系统进行访问的情况,仍归属于本专利涵盖范围之 内。

以上对本发明创造的实施例进行了详细说明,但所述内容仅为本发明创 造的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明创造 范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号