本发明实施例属于电子技术领域,尤其涉及一种终端及其绑定校验方法。
背景技术:
随着电子技术的不断发展,各种终端不断普及,如何保护终端的信息安全成为亟待解决的重要问题。现有的终端大多采用硬件连接的方式,通过物理接口或总线使某些被绑定硬件与终端的主处理器连接绑定,例如,将终端的主处理器(CPU,Central Processing Unit)与加密芯片连接绑定,然后通过加密芯片内部存储的具有唯一性的安全秘钥对重要数据进行加密或解密,使运行在主处理器上的系统仅能在重要数据解密时访问该重要数据,从而保护终端的信息安全。
然而,现有的这种通过硬件绑定来实现数据加密的方式,非常容易破解,只需要按照相同的物理连接方式,将被绑定硬件从与其绑定的主处理器上拆解下来,再连接到其他主处理器上,然后拷贝原始加密数据,就能轻易破解加密数据,安全性较低。
技术实现要素:
本发明实施例提供一种终端及其绑定校验方法,可以通过软件方法实现终端的硬件绑定校验,可有效提高终端的安全性能。
本发明实施例一方面提供一种终端的绑定校验方法,所述方法包括:
通过开放操作系统向可信操作系统发送绑定校验指令,所述开放操作系统运行在所述主处理区,所述可信操作系统运行在所述安全区;
所述可信操作系统根据接收到的所述绑定校验指令获取主处理区标识、安全区标识和被绑定硬件标识;
所述可信操作系统对所述主处理区标识、所述安全区标识和所述被绑定硬件标识进行校验,并将校验结果发送给所述开放操作系统;
若所述校验结果为校验成功,则所述开放操作系统将被绑定硬件设置为可用状态,否则将被绑定硬件设置为不可用状态。
本发明实施例另一方面还提供一种终端,所述终端还包括:
校验指令发送单元,用于通过开放操作系统向可信操作系统发送绑定校验指令,所述开放操作系统运行在所述主处理区,所述可信操作系统运行在所述安全区;
标识获取单元,用于所述可信操作系统根据接收到的所述绑定校验指令获取主处理区标识、安全区标识和被绑定硬件标识;
校验单元,用于所述可信操作系统对所述主处理区标识、所述安全区标识和所述被绑定硬件标识进行校验,并将校验结果发送给所述开放操作系统;
设置单元,用于若所述校验结果为校验成功,则所述开放操作系统将被绑定硬件设置为可用状态,否则将被绑定硬件设置为不可用状态。
本发明实施例通过开放操作系统向可信操作系统发送绑定校验指令;可信操作系统根据绑定校验指令获取主处理区标识、安全区标识和被绑定硬件标识;可信操作系统对主处理区标识、安全区标识和被绑定硬件标识进行校验,并将校验结果发送给开放操作系统;若校验结果为校验成功,则开放操作系统将被绑定硬件设置为可用状态,否则将被绑定硬件设置为不可用状态。可以通过软件方法实现终端的硬件绑定校验,可有效提高终端的安全性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的终端的硬件结构框图;
图2是本发明一实施例提供的终端的绑定校验方法的基本流程框图;
图3是本发明另一实施例提供的终端的绑定校验方法的流程框图;
图4是本发明一实施例提供的终端的基本结构框图;
图5是本发明另一实施例提供的校验单元的结构框图;
图6是本发明一实施例提供的终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。
本发明实施例提供的终端的绑定校验方法基于终端的硬件结构实现。如图1所示,终端100包括主处理器(Central Processing Unit,CPU)10、存储控制器(Embedded Multi Media Card,EMMC)20和被绑定硬件(Chip)30。其中,存储控制器20包括特殊保护区(Replay Protected Memory Block,RPMB)21,主处理器10包括安全区(trustzone)11和主处理区12,存储控制器20与安全区11连接,主处理器10与被绑定硬件30连接,安全区11、主处理区12和被绑定硬件30均具有唯一标识。
本实施例中,被绑定硬件30是指通过物理接口或总线与主处理器10连接绑定,内部写入了具有唯一性的安全密钥的芯片。
在具体应用中,该芯片可以为内部固化存储有加密数据的加密芯片。
如图2所示,本发明实施例提供的终端的绑定校验方法包括:
步骤S101:通过开放操作系统(Rich Execution Environment,REE)向可信操作系统(Trust Execution Environment,TEE)发送绑定校验指令,所述开放操作系统运行在所述主处理区,所述可信操作系统运行在所述安全区。
在一实施例中,步骤S101之前包括:
运行开放操作系统和可信操作系统。
在具体应中,开放操作系统主要用于提供开放公开的运行环境,用于运行公开度较高的程序;可信操作系统主要用于数据保存、数据加密/解密或签名校验类安全性要求较高的程序,例如:支付宝、微信钱包等银联支付类程序。
步骤S102:所述可信操作系统根据接收到的所述绑定校验指令获取主处理区标识(CPUID)、安全区标识(TEEID)和被绑定硬件标识(ChipID)。
在具体应用中,主处理区标识、安全区标识和被绑定硬件标识指的是各芯片的唯一身份验证信息,仅能通过各芯片的唯一身份验证信息验证各芯片的身份是否合法,该身份验证信息具体可以是基于任意常规加密算法生成的能唯一识别验证各芯片身份的唯一机密密钥或唯一加密因子。
在具体应用中,步骤S102中的被绑定硬件标识可以由开放操作系读取之后再发送给可信操作系统,也可以由可信操作系统直接读取。
在一实施例中,若被绑定硬件标识由开放操作系读取之后再发送给可信操作系统,则步骤S102之前可以包括:
通过开放操作系统读取被绑定硬件标识,并将所述被绑定硬件标识发送给可信操作系统;
对应的,所述可信操作系统根据接收到的所述绑定校验指令获取主处理区标识、安全区标识和被绑定硬件标识,包括:
所述可信操作系统接收所述被绑定硬件标识,并根据接收到的所述绑定校验指令读取主处理区标识和安全区标识。
在另一实施例中,若被绑定硬件标识由可信操作系统直接读取,则步骤S102具体可以包括:
所述可信操作系统根据接收到的所述绑定校验指令读取主处理区标识、安全区标识和被绑定硬件标识。
步骤S103:所述可信操作系统对所述主处理区标识、所述安全区标识和所述被绑定硬件标识进行校验,并将校验结果发送给所述开放操作系统。
在具体应用中,校验的结果包括校验成功和校验失败。
在具体应用中,步骤S103具体可以由可信操作系统中的指定可信应用(Trusted APP)来执行,该指定可信应用为专用的身份信息验证应用。
步骤S104:若所述校验结果为校验成功,则所述开放操作系统将被绑定硬件设置为可用状态,否则将被绑定硬件设置为不可用状态。
在具体应用中,可用状态具体是指,其他设备或程序可以访问、修改、增加或更换被绑定硬件中的数据;不可用状态具体是指,其他设备或程序不可对被绑定硬件执行任何操作。当被绑定硬件为内部存储有具有唯一性的安全密钥的加密芯片时,可用状态具体是指,其他设备或程序可以正常运行加密芯片中的安全加密算法,以对加密数据进行加密或解密;不可用状态具体是指,其他设备或程序无法正常运行加密芯片中的安全加密算法,从而无法对加密数据进行加密或解密。
在具体应用中,开放操作系统主要根据可信操作系统的返回值来确定校验是否通过,如果返回值大于等于第一预设值,则认为当前的运行环境是正常的,校验成功;如果返回值大于第一预设值且等于第二预设值,则表示还没有通过软件方式对终端100的主处理器10、存储控制器20和被绑定硬件30进行绑定,此时则对主处理器10、存储控制器20和被绑定硬件30进行第一次绑定;如果返回值小于第一预设值,则认为当前运行环境不正常,校验失败。
在具体应用中,第一预设值为0,第二预设值为1。
在具体应用中,运行环境正常指的是终端100的主处理器10、存储控制器20和被绑定硬件30之间的硬件绑定关系没有发生改变,运行环境不正常则是指终端100的主处理器10、存储控制器20和被绑定硬件30之间的硬件绑定关系发生变化,有硬件被损坏或被替换。
本发明实施例可以通过软件方法实现终端的硬件绑定校验,可有效提高终端的安全性能。
如图3所示,本实施例是对图2中步骤S103的进一步细化,其具体包括:
步骤S201:对所述主处理器标识、所述安全区标识和所述被绑定硬件标识进行计算,得到校验值。
在具体应用中,可通过哈希运算的方式对主处理器标识、安全区标识和被绑定硬件标识进行计算,以输出唯一的校验值。哈希运算的特点就是当输入相同的数据时,可输出具有唯一性的数据,当输入的数据发生变化时,输出的数据也相应发生改变。通过输出唯一数据有利于后续根据该唯一数据简单方便的判断校验是否成功,可有避免输出较复杂的数据或者重复输出大量数据的运算方式所带来的数据量大,难以分析和处理的问题。在实际应用中,也可以采用其他计算方法对主处理器标识、安全区标识和被绑定硬件标识进行计算,本发明不对该计算方法作特别限定。
步骤S202:读取所述特殊保护区的指定区域中的预存校验值。
在具体应用中,若指定区域中没有预存校验值,则表明指定区域中没有写入过数据,即主处理器100上还未绑定过任何被绑定硬件30,此时则需要将计算得到的校验值写入该指定区域并保存,以通过写入数据的方式实现主处理器10、存储控制器20和被绑定硬件30之间的硬件绑定。如果主处理器10、存储控制器20和被绑定硬件30之间的硬件绑定关系发生变化,则下次计算得到的校验值也会发生变化,将会导致校验值与预存校验值不一致,从而校验失败。
对应的,在一实施例中,步骤S202之前具体可以包括:
检测所述特殊保护区的指定区域中是否已写入数据;
若所述指定区域中未写入数据,则将所述校验值写入所述指定区域并存储,建立所述主处理器标识、所述安全区标识和所述被绑定硬件标识之间的绑定关系;
若所述指定区域中已写入数据,则进入步骤S202。
步骤S203:判断所述校验值与所述预存校验值是否一致;
步骤S204:若所述校验值与所述预存校验值一致,则生成表示校验成功的校验结果,否则生成表示校验失败的校验结果。
本实施例通过对所述主处理器标识、所述安全区标识和所述被绑定硬件标识进行计算,得到校验值,然后通过判断校验值与预存校验值是否一致,可以简单方便的通过数据比较方法来验证终端的硬件设备之间的硬件绑定关系是否发生变化。
本实施例所提供的终端用于执行图2所对应的实施例中的方法步骤,如图4所示,本实施例所提供的终端100在图1所示的硬件结构的基础上,还包括:
校验指令发送单元101,用于通过开放操作系统向可信操作系统发送绑定校验指令,所述开放操作系统运行在所述主处理区,所述可信操作系统运行在所述安全区;
标识获取单元102,用于所述可信操作系统根据接收到的所述绑定校验指令获取主处理区标识、安全区标识和被绑定硬件标识;
校验单元103,用于所述可信操作系统对所述主处理区标识、所述安全区标识和所述被绑定硬件标识进行校验,并将校验结果发送给所述开放操作系统;
设置单元104,用于若所述校验结果为校验成功,则所述开放操作系统将被绑定硬件设置为可用状态,否则将被绑定硬件设置为不可用状态。
在一实施例中,终端100还包括:
运行单元,用于运行开放操作系统和可信操作系统。
在一实施例中,终端100还包括:
第一标识读取单元,用于通过开放操作系统读取被绑定硬件标识,并将所述被绑定硬件标识发送给可信操作系统;
对应的,标识获取单元102具体用于:
所述可信操作系统接收所述被绑定硬件标识,并根据接收到的所述绑定校验指令读取主处理区标识和安全区标识。
在另一实施例中,标识获取单元102具体用于:
所述可信操作系统根据接收到的所述绑定校验指令读取主处理区标识、安全区标识和被绑定硬件标识。
本发明实施例可以通过软件方法实现终端的硬件绑定校验,可有效提高终端的安全性能。
本实施例所提供的终端用于执行图3所对应的实施例中的方法步骤,如图5所示,在本实施例是对图4中校验单元103的进一步细化,该校验单元103包括:
计算单元201,用于所述可信操作系统对所述主处理器标识、所述安全区标识和所述被绑定硬件标识进行计算,得到校验值;
读取单元202,用于所述可信操作系统读取所述特殊保护区的指定区域中的预存校验值;
判断单元203,用于所述可信操作系统判断所述校验值与所述预存校验值是否一致;
校验结果生成单元204,用于若所述校验值与所述预存校验值一致,则所述可信操作系统生成表示校验成功的校验结果,否则生成表示校验失败的校验结果。
在具体应用中,所述校验结果返回传递给开放操作系统,该校验结果具体可以以字符、数字或符号等形式显示。
在一实施例中,校验单元还包括:
数据检测单元,用于检测所述特殊保护区的指定区域中是否已写入数据;
绑定关系建立单元,用于若所述指定区域中未写入数据,则将所述校验值写入所述指定区域并存储,建立所述主处理器标识、所述安全区标识和所述被绑定硬件标识之间的绑定关系;
所述读取单元还用于,若所述指定区域中已写入数据,则执行读取所述特殊保护区的指定区域中的预存校验值。
本实施例通过对所述主处理器标识、所述安全区标识和所述被绑定硬件标识进行计算,得到校验值,然后通过判断校验值与预存校验值是否一致,可以简单方便的通过数据比较方法来验证终端的硬件设备之间的硬件绑定关系是否发生变化。
如图6所示,本实施例提供的终端100,其包括:
处理器(processor)110,通信接口(Communications Interface)120,存储器(memory)130、总线140和被绑定硬件150。
处理器110,通信接口120,存储器130,被绑定硬件150通过总线140完成相互间的通信。
通信接口120,用于与外界设备,例如,个人电脑、智能手机等通信。
被绑定硬件150,通过物理接口与处理器110连接,具体可以为加密芯片。
处理器110,用于执行程序131;
具体地,程序131可以包括程序代码,所述程序代码包括计算机操作指令。
处理器110可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器130,用于存放程序131。存储器130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序131具体可以包括:
校验指令发送单元1311,用于通过开放操作系统向可信操作系统发送绑定校验指令,所述开放操作系统运行在所述主处理区,所述可信操作系统运行在所述安全区;
标识获取单元1312,用于所述可信操作系统根据接收到的所述绑定校验指令获取主处理区标识、安全区标识和被绑定硬件标识;
校验单元1313,用于所述可信操作系统对所述主处理区标识、所述安全区标识和所述被绑定硬件标识进行校验,并将校验结果发送给所述开放操作系统;
设置单元1314,用于若所述校验结果为校验成功,则所述开放操作系统将被绑定硬件设置为可用状态,否则将被绑定硬件设置为不可用状态。
在一实施例中,程序131还可以包括:
计算单元,用于所述可信操作系统对所述主处理器标识、所述安全区标识和所述被绑定硬件标识进行计算,得到校验值;
读取单元,用于所述可信操作系统读取所述特殊保护区的指定区域中的预存校验值;
判断单元,用于所述可信操作系统判断所述校验值与所述预存校验值是否一致;
校验结果生成单元,用于若所述校验值与所述预存校验值一致,则所述可信操作系统生成表示校验成功的校验结果,否则生成表示校验失败的校验结果。
在一实施例中,程序131还可以包括:
数据检测单元,用于检测特殊保护区的指定区域中是否已写入数据;
绑定关系建立单元,用于若所述指定区域中未写入数据,则将所述校验值写入所述指定区域并存储,建立所述主处理器标识、所述安全区标识和所述被绑定硬件标识之间的绑定关系;
所述读取单元还用于,若所述指定区域中已写入数据,则执行读取所述特殊保护区的指定区域中的预存校验值。
在一实施例中,程序131还可以包括:
第一标识读取单元,用于通过开放操作系统读取被绑定硬件标识,并将所述被绑定硬件标识发送给可信操作系统;
对应的,所述标识获取单元具体用于:
所述可信操作系统接收所述被绑定硬件标识,并根据接收到的所述绑定校验指令读取主处理区标识和安全区标识。
在一实施例中,程序131还以包括:
所述可信操作系统根据接收到的所述绑定校验指令读取主处理区标识、安全区标识和被绑定硬件标识。
本实施例所提供的终端100中的程序131与图2和图3所对应的实施例中的方法步骤相对应。
本发明所有实施例中的单元,可以通过通用集成电路,例如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application Specific Integrated Circuit,专用集成电路)来实现。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。