基于TrustZone的智能移动终端信任链安全传递方法及系统与流程

文档序号:14156213阅读:410来源:国知局

本发明涉及信息安全领域,特别涉及一种基于trustzone的智能移动终端信任链安全传递方法及系统。



背景技术:

随着移动互联网和智能移动终端的发展,极大提高了移动终端获取和处理信息的能力,部分原来只能由个人电脑处理的数据业务逐渐转移到了移动终端上,这使得移动终端越来越多地处理个人数据和敏感信息。因此,需要为智能移动终端提供安全防护手段,以应对移动互联网开放性和智能操作系统复杂性给智能移动终端带来的安全性问题。

arm公司推出了trustzone,trustzone是一个在计算机系统范围内各层次实施的安全方法,主要涉及平台包括手持设备、平板电脑、可穿戴设备和企业系统等,能够应用于大量实际场景,包括安全支付、数字版权管理等。

trustzone将硬件和软件资源划分两个执行环境,安全环境(secureworld)和普通环境(normalworld)。每个执行环境都有独立的系统软件、应用软件、内存区域和外围设备。通过trustzone的硬件逻辑,使得安全环境的资源不能被普通环境的组件访问,将安全环境与普通环境隔离开来,把敏感资源放在安全环境,使得现有的绝大多数攻击难以获取敏感资源。

基于trustzone的设备上电后,位于安全环境rom(readonlymemory)中的bootloader1对关键外设进行初始化,然后切换到外部flash的bootloader2,接着启动安全环境中的操作系统os1(operatingsystem)。os1启动后对操作环境进行初始化,启动安全环境中的应用程序app1,之后加载普通环境的bootloader3,bootloader3继续装载普通环境的os2,操作系统os2启动普通环境中的应用程序app2。

信任链是指系统启动后,组件和组件之间一级度量一级、一级信任一级,一般以硬件为信任根,建立从硬件、固件到软件的信任链。信任链应能抵御软件攻击和硬件攻击,目前基于trustzone的智能移动终端仅实现了从安全环境到普通环境的启动加载过程,未建立bootloader1→bootloader2→os1→app1/bootloader3→os2→app2的完整信任链,无法确保智能移动终端启动过程的安全性,并抵御软件攻击和硬件攻击。



技术实现要素:

有鉴于此,有必要提供一种能够确保智能移动终端启动过程的安全性,抵御软件攻击和硬件攻击的基于trustzone的智能移动终端信任链安全传递方法及系统。

本发明提供一种基于trustzone的智能移动终端信任链安全传递方法,所述基于trustzone的智能移动终端信任链安全传递方法包括如下步骤:

s1、可信第三方ttp分别与第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2进行安全启动预处理交互,得到公钥哈希值;

s2、将公钥哈希值分别存储至otp区域;

s3、按照第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证。

一种基于trustzone的智能移动终端信任链安全传递系统,所述基于trustzone的智能移动终端信任链安全传递系统包括如下功能模块:

预处理模块,用于使可信第三方ttp分别与第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2进行安全启动预处理交互,得到公钥哈希值;

公钥存储模块,用于将公钥哈希值分别存储至otp区域;

公钥认证模块,用于按照第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证。

本发明提供一种基于trustzone的智能移动终端信任链安全传递方法及系统,其通过安全认证启动,建立了从安全环境到普通环境的信任链安全传递流程,且由于otp具有可一次编程的特点,将公钥哈希值存储至otp区域,确保了公钥的唯一性,增强了启动过程组件的安全性,实现对智能移动终端启动过程的安全认证,从而保障了智能移动终端启动过程的安全性,能够抵御软件攻击和硬件攻击。

附图说明

图1是本发明所述基于trustzone的智能移动终端信任链安全传递方法的基本原理图;

图2是本发明所述基于trustzone的智能移动终端信任链安全传递方法及系统的流程框图;

图3是本发明所述安全启动预处理方法流程图;

图4是本发明中公钥存储和对应性示意图;

图5是本发明所述基于trustzone的智能移动终端信任链安全传递方法的安全环境中第一启动程序认证第二启动程序的流程图;

图6是本发明所述基于trustzone的智能移动终端信任链安全传递方法的安全环境中第二启动程序认证第一操作系统的流程图;

图7是本发明所述基于trustzone的智能移动终端信任链安全传递方法的安全环境中第一操作系统认证第一应用程序的流程图;

图8是本发明所述基于trustzone的智能移动终端信任链安全传递方法的安全环境中第一操作系统认证第三启动程序的流程图;

图9是本发明所述基于trustzone的智能移动终端信任链安全传递方法的普通环境中第三启动程序认证第二操作系统的流程图;

图10是本发明所述基于trustzone的智能移动终端信任链安全传递方法的普通环境中第二操作系统认证第二应用程序的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

otp(onetimeprogramming)是flash内部的一种特殊寄存器,otp寄存器是只可以编程一次的,编程后就再也不可以修改了。otp寄存器和flash数据区域类似,1能被改写为0,但0不能被写为1。

本发明利用otp寄存器的这项特性,提供一种基于trustzone的智能移动终端信任链安全传递方法,如图1和图2所示,所述基于trustzone的智能移动终端信任链安全传递方法包括如下步骤:

s1、可信第三方ttp分别与第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2进行安全启动预处理交互,得到公钥哈希值;

s2、将公钥哈希值分别存储至otp区域,即将公钥哈希值h(puk_bl1)、h(puk_bl2)、h(puk_os1)、h(puk_app1)、h(puk_bl3)、h(puk_os2)、h(puk_app2)分别存储至otp区域;

s3、按照第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证。

其中,所述进行安全启动预处理交互的方法如下:

可信第三方ttp生成相应的公私钥对puk_a、prk_a,计算公钥puk_a的哈希值h(puk_a),计算对应程序的哈希值h(a),用私钥prk_a对哈希值h(a)进行签名得到签名值s(h(a)),可信第三方ttp发送公钥puk_a和签名值s(h(a)))至对应程序;

上述a代表与可信第三方ttp进行安全启动预处理交互的对应程序,即第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2中其中一个。

具体的,如图3所示,可信第三方ttp生成公私钥对puk_bl1、prk_bl1,计算公钥puk_bl1的哈希值h(puk_bl1),计算第一启动程序bootloader1的哈希值h(bl1),用私钥prk_bl1对哈希值h(bl1)进行签名得到签名值s(h(bl1))。可信第三方ttp发送公钥puk_bl1和签名值s(h(bl1)))至第一启动程序bootloader1;

可信第三方ttp生成公私钥对(puk_bl2,prk_bl2),计算公钥puk_bl2的哈希值h(puk_bl2),计算第二启动程序bootloader2的哈希值h(bl2),用私钥prk_bl2对哈希值h(bl2)进行签名得到签名值s(h(bl2))。可信第三方ttp发送公钥puk_bl2和签名值s(h(bl2)))至第二启动程序bootloader2;

可信第三方ttp生成公私钥对(puk_os1,prk_os1),计算公钥puk_os1的哈希值h(puk_os1),计算第一操作系统os1的哈希值h(os1),用私钥prk_os1对哈希值h(os1)进行签名得到签名值s(h(os1))。可信第三方ttp发送公钥puk_os1和签名值s(h(os1)))至第一操作系统os1;

可信第三方ttp生成公私钥对(puk_app1,prk_app1),计算公钥puk_app1的哈希值h(puk_app1),计算第一应用程序app1的哈希值h(app1),用私钥prk_app1对哈希值h(app1)进行签名得到签名值s(h(app1))。可信第三方ttp发送公钥puk_app1和签名值s(h(app1)))至第一应用程序app1;

可信第三方ttp生成公私钥对(puk_bl3,prk_bl3),计算公钥puk_bl3的哈希值h(puk_bl3),计算第三启动程序bootloader3的哈希值h(bl3),用私钥prk_bl3对哈希值h(bl3)进行签名得到签名值s(h(bl3))。可信第三方ttp发送公钥puk_bl3和签名值s(h(bl3)))至第三启动程序bootloader3;

可信第三方ttp生成公私钥对(puk_os2,prk_os2),计算公钥puk_os2的哈希值h(puk_os2),计算第二操作系统os2的哈希值h(os2),用私钥prk_os2对哈希值h(os2)进行签名得到签名值s(h(os2))。可信第三方ttp发送公钥puk_os2和签名值s(h(os2)))至第二操作系统os2;

可信第三方ttp生成公私钥对(puk_app2,prk_app2),计算公钥puk_app2的哈希值h(puk_app2),计算第二应用程序app2的哈希值h(app2),用私钥prk_app2对哈希值h(app2)进行签名得到签名值s(h(app2))。可信第三方ttp发送公钥puk_app2和签名值s(h(app2)))至第二应用程序app2。

上述安全启动预处理是实现安全环境和普通环境信任链传递的前置条件,需要注意的是:

第一,可信第三方ttp具有生成公私钥对、计算出公钥哈希值、存储公钥哈希值至otp区域、计算出安全环境和普通环境各个组件的哈希值和签名值等功能;

第二,可信第三方ttp能够依次与第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2交互,图2的安全启动预处理方法是可信第三方ttp主动发送公钥和签名值至安全环境和普通环境各个组件,实际上公钥和签名值可公开,安全环境和普通环境各个组件也可主动向可信第三方ttp获取公钥和签名值;

第三,根据实际情况,可信第三方ttp可采用国际通用密码算法、我国商用密码算法、我国军队密码算法等。

如图4所示,当第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的公钥哈希值都存储在otp区域后,存储之后otp区域是不可被改写的,otp区域的公钥哈希值保证了安全环境和普通环境各个组件的公钥的唯一对应性,也保证了信任链传递过程中组件的可认证性。

由于所述哈希值h(puk_a)是公钥puk_a的哈希值,两者具有唯一对应性,因此,根据哈希值与公钥的唯一对应性,在默认第一启动程序bootloader1的公钥的情况下,哈希值h(puk_bl1)是公钥puk_bl1的哈希值,两者具有唯一对应性;

哈希值h(puk_bl2)是公钥puk_bl2的哈希值,两者具有唯一对应性;因此,第一启动程序bootloader1可以通过哈希值h(puk_bl2)对第二启动程序bootloader2提供的公钥puk'_bl2进行认证。

哈希值h(puk_os1)是公钥puk_os1的哈希值,两者具有唯一对应性;因此,第二启动程序bootloader2可以通过哈希值h(puk_os1)对第一操作系统os1提供的公钥puk'_os1进行认证。

哈希值h(puk_app1)是公钥puk_app1的哈希值,两者具有唯一对应性;因此,第一操作系统os1可以通过哈希值h(puk_app1)对第一应用程序app1提供的公钥puk'_app1进行认证。

哈希值h(puk_bl3)是公钥puk_bl3的哈希值,两者具有唯一对应性;因此,第一操作系统os1可以通过哈希值h(puk_bl3)对第三启动程序bootloader3提供的公钥puk'_bl3进行认证。

哈希值h(puk_os2)是公钥puk_os2的哈希值,两者具有唯一对应性;因此,第三启动程序bootloader3可以通过哈希值h(puk_os2)对第二操作系统os2提供的公钥puk'_os2进行认证。

哈希值h(puk_app2)是公钥puk_app2的哈希值,两者具有唯一对应性;因此,第二操作系统os2可以通过哈希值h(puk_app2)对第二应用程序app2提供的公钥puk'_app2进行认证。

所述公钥认证分别包括对安全环境下的程序进行认证和对普通环境下的程序进行认证:

其中,在安全环境下,按照第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证;

在普通环境下,按照第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证;

而所述第三启动程序bootloader3由第一操作系统os1通过第三启动程序bootloader3的公钥哈希值对第三启动程序bootloader3提供的公钥进行认证。

具体的,当可信第三方ttp分别与第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2进行安全启动预处理交互完毕之后。

在安全环境下,按照第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证,第一启动程序bootloader1认证第二启动程序bootloader2、第二启动程序bootloader2认证第一操作系统os1、第一操作系统os1认证第一应用程序app1、第一操作系统os1认证第三启动程序bootloader3。

如图5所示,运行安全环境rom中的第一启动程序bootloader1,第一启动程序bootloader1读取otp区域中的哈希值h(puk_bl2),第一启动程序bootloader1根据第二启动程序bootloader2提供的公钥puk'_bl2计算出哈希值h(puk'_bl2),第一启动程序bootloader1比较h(puk'_bl2)和h(puk_bl2)是否一致,若不一致则密钥验证失败,若一致则第一启动程序bootloader1用公钥puk'_bl2对第二启动程序bootloader2的签名值s(h(bl2))进行认证,若未通过则签名认证失败,若通过则加载安全环境flash中的第二启动程序bootloader2;

如图6所示,运行安全环境flash中的第二启动程序bootloader2,第二启动程序bootloader2读取otp区域中的哈希值h(puk_os1),第二启动程序bootloader2根据第一操作系统os1提供的公钥puk'_os1计算出哈希值h(puk'_os1),第二启动程序bootloader2比较h(puk'_os1)和h(puk_os1)是否一致,若不一致则密钥验证失败,若一致则第二启动程序bootloader2用公钥puk'_os1对第一操作系统os1的签名值s(h(os1))进行认证,若未通过则签名认证失败,若通过则加载安全环境中的第一操作系统os1;

如图7所示,运行安全环境中的第一操作系统os1,第一操作系统os1读取otp区域中的哈希值h(puk_app1),第一操作系统os1根据第一应用程序app1提供的公钥puk'_app1计算出哈希值h(puk'_app1),第一操作系统os1比较h(puk'_app1)和h(puk_app1)是否一致,若不一致则密钥验证失败,若一致则第一操作系统os1用公钥puk'_app1对第一应用程序app1的签名值s(h(app1))进行认证,若未通过则签名认证失败,若通过则加载安全环境中的第一应用程序app1;

同时,所述第三启动程序bootloader3由第一操作系统os1通过第三启动程序bootloader3的公钥哈希值对第三启动程序bootloader3提供的公钥进行认证。

即如图8所示,运行安全环境中的第一操作系统os1,第一操作系统os1读取otp区域中的哈希值h(puk_bl3),第一操作系统os1根据第三启动程序bootloader3提供的公钥puk'_bl3计算出哈希值h(puk'_bl3),第一操作系统os1比较h(puk'_bl3)和h(puk_bl3)是否一致,若不一致则密钥验证失败,若一致则第一操作系统os1用公钥puk'_bl3对第三启动程序bootloader3的签名值s(h(bl3))进行认证,若未通过则签名认证失败,若通过则加载普通环境中的第三启动程序bootloader3。

而在普通环境下,按照第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证,具体过程如下:

如图9所示,运行普通环境中的第三启动程序bootloader3,第三启动程序bootloader3读取otp区域中的哈希值h(puk_os2),第三启动程序bootloader3根据第二操作系统os2提供的公钥puk'_os2计算出哈希值h(puk'_os2),第三启动程序bootloader3比较h(puk'_os2)和h(puk_os2)是否一致,若不一致则密钥验证失败,若一致则第三启动程序bootloader3用公钥puk'_os2对第二操作系统os2的签名值s(h(os2))进行认证,若未通过则签名认证失败,若通过则加载普通环境中的第二操作系统os2;

如图10所示,运行普通环境中的第二操作系统os2,第二操作系统os2读取otp区域中的哈希值h(puk_app2),第二操作系统os2根据第二应用程序app2提供的公钥puk'_app2计算出哈希值h(puk'_app2),第二操作系统os2比较h(puk'_app2)和h(puk_app2)是否一致,若不一致则密钥验证失败,若一致则第二操作系统os2用公钥puk'_app2对第二应用程序app2的签名值s(h(app2))进行认证,若未通过则签名认证失败,若通过则加载普通环境中的第二应用程序app2。

需要说明的,第二操作系统os2除了认证第二应用程序app2,还可认证普通环境的其他应用程序。

根据上述基于trustzone的智能移动终端信任链安全传递方法,本发明还提供一种基于trustzone的智能移动终端信任链安全传递系统,所述基于trustzone的智能移动终端信任链安全传递系统包括如下功能模块:

预处理模块,用于使可信第三方ttp分别与第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2进行安全启动预处理交互,得到公钥哈希值;

公钥存储模块,用于将公钥哈希值分别存储至otp区域;

公钥认证模块,用于根据哈希值与公钥的唯一对应性,按照第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证。

其中,所述预处理模块的具体功能如下:

使可信第三方ttp生成相应的公私钥对puk_a、prk_a,计算公钥puk_a的哈希值h(puk_a),计算对应程序的哈希值h(a),用私钥prk_a对哈希值h(a)进行签名得到签名值s(h(a)),可信第三方ttp发送公钥puk_a和签名值s(h(a)))至对应程序;同时,所述哈希值h(puk_a)是公钥puk_a的哈希值,两者具有唯一对应性。

上述a代表与可信第三方ttp进行安全启动预处理交互的对应程序,即第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1、第三启动程序bootloader3、第二操作系统os2、第二应用程序app2中其中一个。

所述公钥认证模块的具体功能如下:

在安全环境下,按照第一启动程序bootloader1、第二启动程序bootloader2、第一操作系统os1、第一应用程序app1的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证;

在普通环境下,按照第三启动程序bootloader3、第二操作系统os2、第二应用程序app2的顺序依次由在先程序通过在后程序的公钥哈希值对在后程序提供的公钥进行认证;

其中,所述第三启动程序bootloader3由第一操作系统os1通过第三启动程序bootloader3的公钥哈希值对第三启动程序bootloader3提供的公钥进行认证。

本发明提供一种基于trustzone的智能移动终端信任链安全传递方法及系统,其通过安全认证启动,建立了从安全环境到普通环境的信任链安全传递流程,且由于otp具有可一次编程的特点,将公钥哈希值存储至otp区域,确保了公钥的唯一性,增强了启动过程组件的安全性,实现对智能移动终端启动过程的安全认证,从而保障了智能移动终端启动过程的安全性,能够抵御软件攻击和硬件攻击。

以上装置实施例与方法实施例是一一对应的,装置实施例简略之处,参见方法实施例即可。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其他形式的存储介质中。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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