一种手机盾访问记录存证和告警方法及计算机系统
文献发布时间:2023-06-19 11:16:08
技术领域
本申请涉及计算机领域,具体的涉及支付安全。
背景技术
目前移动支付已经普及,当用户需要使用手机执行需要较高安全级别的金融支付操作时,例如大额度的转账操作,用户需将手机连接U盾(USB keys)保证支付的安全性。
而手机盾是指将U盾的功能内置在手机中,从而在移动终端上实现较高安全级别的金融支付功能。对于内置有手机盾的手机,具有三个不同安全级别的、独立的操作系统运行环境,如图1所示:三个独立的操作系统运行环境分别是:富执行环境(rich executionenvironment,REE)、可信执行环境(trusted execution environment,TEE)和内置安全组件(Inside secure element,inSE)。REE(例如Android系统)运行安全性要求低的客户端应用程序(client application,CA),比如银行类应用等第三方支付应用;TEE则运行需要保障其安全性的可信应用程序(trusted application,TA),比如执行签名、加密、解密计算等关键服务的应用,TEE为授权的可信应用程序TA提供安全的执行环境。TEE的内存空间与REE的内存空间是隔离的。inSE,则指的是手机内置的U盾,简称手机盾。
出于安全性考虑,客户端应用程序CA无法直接访问inSE,可通过TEE间接访问inSE。在TEE中,可信应用程序TA提供接口供客户端应用程序CA访问,可信应用程序TA可以访问inSE的接口,使用U盾中的密钥来完成对交易的签名,从而完成该笔交易。目前可信应用程序TA无法有效区分来自REE侧的访问请求是否合法,因此虽然恶意应用程序无法窃取inSE中的密钥,但是恶意的CA可以通过对可信应用程序TA的调用,完成恶意交易的签名,或者通过持续攻击,使inSE无法正常工作。
发明内容
本申请提供了一种手机盾访问记录存证和告警方法及计算机系统,提高手机盾访问的安全性。
第一方面,本申请提供了一种计算机系统,包括终端设备和服务器,所述终端设备上部署有TEE可信执行环境和REE富执行环境以及内置安全组件(具体为实施例中提到的手机盾inSE),所述内置安全组件用于根据用户密钥执行金融交易,所述TEE部署有TA可信应用程序,所述REE部署有CA客户端应用程序,所述CA上部署有第一区块链客户端模块(例如实施例中提到的区块链客户端1),所述TA上部署有第二区块链客户端模块(例如实施例中提到的区块链客户端2),所述服务器上部署有智能合约单元,
所述第一区块链客户端模块用于:向所述TA发送对所述内置安全组件的访问请求;向所述服务器发送所述访问请求;所述访问请求包括所述CA的信息;
所述第二区块链客户端模块用于:将接收到的所有的对所述内置安全组件的访问请求发送至所述服务器;
所述智能合约单元用于:将所述第二区块链客户端模块发送的所述所有的对所述内置安全组件的访问请求以及所述第一区块链客户端模块发送的访问请求记录到存储在所述服务器上的区块链中;对比接收到的所述第二区块链客户端模块发送的访问请求与接收到的所述第一区块链客户端模块发送的访问请求,判断是否存在恶意的CA发起对所述内置安全组件的访问请求;若确定存在所述恶意的CA发起对所述内置安全组件的访问请求,向所述第一区块链客户端模块发送告警信息,所述告警信息用于提示存在恶意的CA发起访问所述内置安全组件。
恶意CA和合法的CA一样,也可以向TA发送对手机盾的访问请求。所以当REE中存在恶意CA时,TA向服务器发送的所有的来自REE侧的访问请求包括合法的CA与恶意的CA发起的访问请求;然而只有合法的CA才能通过区块链客户端向服务器发送访问请求,也就是说服务器上的区块链中存证的来自TEE侧的访问请求可包括合法的CA与恶意的CA发起的访问请求,服务器上的区块链中存证的来自REE侧的访问请求只包括合法的CA发起的访问请求。因此,服务器可以通过对比两个存证,判断存在恶意的CA,并向合法CA发出告警。同时,由于区块链的不可篡改的特性,也保证了存证不会被攻击篡改,保证了告警的准确性提高了手机盾使用的安全性。
在一种实现方式中,所述智能合约单元还用于:根据合法名单效验所述访问请求的合法性,并将效验结果发送给所述TA;所述效验结果表示发起所述访问请求的所述CA是否为恶意的;所述合法名单中存储有多个合法的CA的信息;
所述第二区块链客户端模块还用于:从所述智能合约单元接收所述效验结果;当所述效验结果表示发起所述访问请求的CA为恶意的时,拒绝所述恶意的CA的访问请求。
在一种实现方式中,所述第二区块链客户端模块还用于:向所述CA发送所述恶意的CA的信息。
第二方面,本申请提供了一种终端设备,所述终端设备上部署有TEE可信执行环境和REE富执行环境以及内置安全组件,所述内置安全组件用于根据用户密钥执行金融交易,所述TEE部署有TA可信应用程序,所述REE部署有CA客户端应用程序,所述CA上部署有第一区块链客户端模块,所述TA上部署有第二区块链客户端模块,
所述第一区块链客户端模块用于:向所述TA发送对所述内置安全组件的访问请求;向所述服务器发送所述访问请求;所述访问请求包括所述CA的信息;所述第一区块链客户端模块向所述服务器发送的访问请求被所述服务器存储在区块链中;
所述第二区块链客户端模块用于:将接收到的所有的对所述内置安全组件的访问请求发送至所述服务器;所述第二区块链客户端模块向所述服务器发送的所有的对所述内置安全组件的访问请求被所述服务器存储在区块链中;
所述第一区块链客户端模块还用于:接收所述服务器发送的告警信息,所述告警信息用于提示存在恶意的CA发起访问所述内置安全组件,所述告警信息为所述服务器对比接收到的所述第二区块链客户端模块发送的访问请求与接收到的所述第一区块链客户端模块发送的访问请求,确定存在恶意的CA发起对所述内置安全组件的访问请求后发送给所述CA的。
在一种实现方式中,所述第二区块链客户端模块还用于:从所述服务器接收所述效验结果;当所述效验结果表示发起所述访问请求的CA为恶意的时,拒绝所述恶意的CA的访问请求;所述效验结果为所述服务器根据合法名单效验所述访问请求的合法性得到的结果;所述效验结果表示发起所述访问请求的所述CA是否为恶意的;所述合法名单中存储有多个合法的CA的信息。
在一种实现方式中,所述CA接收到所述服务器发送的所述恶意的CA的信息。
第三方面,本申请提供了一种手机盾访问记录存证和告警方法,所述方法应用于终端设备,所述终端设备上部署有TEE可信执行环境和REE富执行环境以及内置安全组件,所述内置安全组件用于根据用户密钥执行金融交易,所述TEE部署有TA可信应用程序,所述REE部署有CA客户端应用程序,所述CA上部署有第一区块链客户端,所述TA上部署有第二区块链客户端,所述方法包括:
所述CA向所述TA发送对所述内置安全组件的访问请求;向服务器发送所述访问请求;所述访问请求包括所述CA的信息;所述CA向所述服务器发送的访问请求被所述服务器存储在区块链中;
所述TA向接收到的所有的对所述内置安全组件的访问请求发送至所述服务器;所述TA向所述服务器发送的所有的对所述内置安全组件的访问请求被所述服务器存储在区块链中;
所述CA接收所述服务器发送的告警信息,所述告警信息用于提示存在恶意的CA发起访问所述内置安全组件,所述告警信息为所述服务器对比接收到的所述TA发送的访问请求与接收到的所述CA发送的访问请求,确定存在恶意的CA发起对所述内置安全组件的访问请求后发送给所述CA的。
在一种实现方式中,所述智能合约单元还用于:根据合法名单效验所述访问请求的合法性,并将效验结果发送给所述TA;所述效验结果表示发起所述访问请求的所述CA是否为恶意的;所述合法名单中存储有多个合法的CA的信息;
所述第二区块链客户端模块还用于:从所述智能合约单元接收所述效验结果;当所述效验结果表示发起所述访问请求的CA为恶意的时,拒绝所述恶意的CA的访问请求。
在一种实现方式中,所述第二区块链客户端模块还用于:向所述CA发送所述恶意的CA的信息。
第四方面,本申请提供了一种服务器,所述服务器与终端设备通信连接,所述终端设备上部署有TEE可信执行环境和REE富执行环境以及内置安全组件,所述内置安全组件用于根据用户密钥执行金融交易,所述TEE部署有TA可信应用程序,所述REE部署有CA客户端应用程序,所述CA上部署有第一区块链客户端,所述TA上部署有第二区块链客户端,
所述服务器用于:
将所述TA发送的所述所有的对所述内置安全组件的访问请求以及所述CA发送的访问请求记录到存储在所述服务器上的区块链中;
对比接收到的所述TA发送的访问请求与接收到的所述CA发送的访问请求,判断是否存在恶意的CA发起对所述内置安全组件的访问请求;
若确定存在所述恶意的CA发起对所述内置安全组件的访问请求,向所述CA发送告警信息,所述告警信息用于提示存在恶意的CA发起访问所述内置安全组件。
第五方面,本申请提供了一种计算机系统,所述计算机系统包括终端设备和服务器,所述终端设备上部署有TEE可信执行环境和REE富执行环境以及内置安全组件,所述TEE部署有TA可信应用程序,所述REE部署有CA客户端应用程序,
所述CA用于:向所述TA发送对所述内置安全组件的访问请求;
所述TA用于:将接收到的所述访问请求发送至所述服务器;
所述服务器用于:根据合法名单效验所述访问请求的合法性,并将效验结果发送给所述TA;所述效验结果表示发起所述访问请求的所述CA是否为恶意的;所述合法名单中存储有多个合法的CA的信息;
所述TA用于:从所述服务器接收所述效验结果;当所述效验结果表示发起所述访问请求的CA为恶意的时,拒绝所述恶意的CA的访问请求。
在一种实现方式中,所述TA还用于:向所述CA发送所述恶意的CA的信息。
第六方面,本申请提供了一种计算机系统,包括存储器和处理器,其中,
所述存储器用于存储计算机可读指令;所述处理器用于读取所述计算机可读指令并实现如第三方面及其任一种实现方式所述的方法。
第七方面,本申请提供了一种计算机存储介质,存储有计算机可读指令,且所述计算机可读指令在被处理器执行时实现如第三方面及其任一种实现方式所述的方法。
附图说明
图1为本申请实施例提供的终端设备支付环境示意图;
图2为本申请实施例提供的系统架构示意图;
图3为本申请实施例提供的区块链系统架构示意图;
图4为本申请实施例提供的区块链系统的节点的系统架构图;
图5为本申请实施例提供的基于区块链的手机盾访问记录存证和告警系统示意图;
图6为本申请实施例提供的手机盾访问记录存证和告警方法流程示意图;
图7为本申请实施例提供的基于区块链的手机盾访问记录存证和告警系统示意图;
图8为本申请实施例提供的区块链客户端1模块的业务逻辑示意图;
图9为本申请实施例提供的区块链客户端1模块的业务逻辑示意图;
图10为本申请实施例提供的区块链客户端2模块的业务逻辑示意图;
图11为本申请实施例提供的智能合约单元的业务逻辑示意图;
图12为本申请实施例提供的计算机系统的结构示意图。
具体实施方式
为了保证终端设备的安全性,出现了以ARM(advanced RISC machines)
如图2所示,提供了一种系统架构,在该系统架构中包括可信执行环境TEE和富执行环境REE。该系统架构可以存在于电子设备中,具体的,电子设备可以为服务器或终端设备,终端设备可以为手机、平板电脑、笔记本电脑、台式机或智能穿戴设备等。在该系统架构中,将高安全敏感的应用与通用的软件环境进行隔离,提供专门的可信执行环境TEE,并保护应用的资源和数据的保密性、完整性和访问权限;对Android等容易被攻击的传统操作系统提供通用的富执行环境REE。REE运行安全性要求低的客户端应用程序(clientapplication,CA),比如银行类应用等第三方支付应用;TEE则运行需要保障其安全性的可信应用程序(trusted application,TA),比如执行签名、加解密计算等关键服务的应用,TEE为授权的可信应用程序TA提供安全的执行环境。由于TA运行在可信执行环境TEE中,TA的部署/升级操作需要严格遵循TEE发行方(通常是终端厂商)的安全验证规范,比如使用数字签名等措施,确保TEE各个环节是真正可信的。可信执行环境TEE中包括可信执行环境内部应用程序编程接口(trusted execution environment internal applicationprogramming interface,TEE Internal API)和可信操作系统部件,TEE Internal API的主要作用为:向上提供可信操作系统部件的功能、与客户端应用程序CA通信、实现TA与TA通信、提供安全存储、密码学功能、时间功能等;可信操作系统部件主要包括可信核心框架、可信功能、可信内核和可信执行环境TEE通信代理,其中,可信核心框架为TA提供类似操作系统的功能;可信功能为应用开发者提供支持能力;可信内核用于与平台硬件中的可信设备进行交互;可信执行环境通信代理为TA和CA提供一个安全的通信通道,例如,可信执行环境通信代理通过平台硬件将消息传递至富执行环境通信代理,实现TA和CA的交互。由CA端发起访问操作,两者通过REE通信代理、硬件层的消息通道以及TEE通信代理交互数据,三者为CA和TA建立了安全的通信通道,一定程度上确保了数据传输的安全性。富执行环境REE中包括可信执行环境客户端应用程序编程接口(trusted execution environment clientapplication programming interface,TEE Client API)、可信执行环境功能应用程序编程接口(trusted execution environment functional application programminginterface,TEE Functional API)和多媒体操作系统,多媒体操作系统部件主要包括公共设备驱动和富执行环境通信代理,其中,富执行环境通信代理用于与TEE进行通信,CA和TA提供一个安全的通信通道,公共设备驱动用于驱动平台硬件中的公共设备。CA使用TEEClient API、TEE Functional API接入到由TA提供的安全服务。以手机这一类终端设备为例,在金融支付场景下,手机需连接U盾(USBkeys)来实现较高安全级别的金融支付操作,例如大额度的转账操作。手机盾可以以inSE的形式内置于终端设备中,如图1所示保证金融支付的安全性。
现有技术,通过在REE和inSE之间,采用可信执行环境(TEE)进行隔离的访问的方式,提高了手机盾的安全性。但是,并不能针对恶意的访问进行准确的访问记录存证和告警,也无法有效的实现攻击防御。
本申请实施例提供的一种手机盾访问记录存正和告警方法,通过区块链技术记录TA访问手机盾的访问记录,利用TEE的可信执行环境和区块链账本记录的不可篡改的优点,实现手机盾访问记录的真实、可靠的存证,为后续的威胁分析和安全加固提供最准确的数据资料;通过区块链智能合约,对手机盾访问记录的存证进行分析和比对,发现恶意访问请求,并给予用户危险告警;通过将允许访问手机盾的合法CA的白名单,提前通过区块链进行可靠的存证,在TA程序中,通过调取CA白名单,对来自不同CA的访问请求做过滤,过滤掉不在白名单中的访问请求,从而达到攻击防御的效果。
为了便于对方案的理解,在介绍本申请具体实现方式之前,首先介绍的区块链网络架构中的一些概念。
客户端(Client):用户可以通过区块链系统中的客户端实现创建链码,发起交易等功能。客户端可以部署在任意的终端上,通过区块链系统相应的SDK(SoftwareDevelopment Kit,软件开发工具包)实现。该终端通过与区块链网络中的节点进行通信,从而实现客户端相应的功能。
区块(block):在区块链技术中,数据以电子记录的形式被永久储存下来,存放这些电子记录的文件我们就称之为“区块”。区块是按时间顺序一个一个先后生成的,每一个区块记录下它在被创建期间发生的所有价值交换活动,所有区块汇总起来形成一个链式的记录合集。
区块结构(BlockStructure):区块中会记录下区块生成时间段内的交易数据,区块主体实际上就是交易信息的合集。每一种区块链的结构设计可能不完全相同,但大结构上分为块头(header)和块身(body)两部分。块头用于链接到前面的块并且为区块链数据库提供完整性的保证,块身则包含了经过验证的、块创建过程中发生的价值交换的所有记录。
节点(peer):区块链网络中,构建了一个分布式结构的网络系统,让数据库中的所有数据都实时更新并存放于所有参与记录的网络节点中。同时,区块链网络构建一整套协议机制,让全网每一个节点在参与记录的同时也来验证其他节点记录结果的正确性。只有通过协议机制使得符合条件的节点(例如全部节点、大部分节点或者特定的节点)都同时认为这个记录正确时,或者所有参与记录的节点都比对结果一致通过后,记录的真实性才能得到全网认可,记录数据才允许被写入区块中。因此,在区块链网络中,所有节点共同构成了一个去中心化的分布式数据库。
在不同的区块链系统中,节点除了用于存储区块数据外,还存在部分特殊节点。例如背书节点,排序节点。其中,背书节点是执行智能合约状态机,模拟执行交易。背书节点包含预先指定的背书策略集,这些背书的策略集安装了特定的链代码,所有的交易都必须依据背书策略进行交易,因为只有经过背书处理的交易才是合法、被认可的交易。在具体的实现中,背书节点接收到客户端的交易请求后,对执行模拟交易,并根据模拟交易的结果生成背书签名,从而完成对交易的背书。
智能合约(Smart contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约的本质是通过交易行为所触发的计算机代码实现。在不同的区块链系统中,智能合约的实现有所差异。例如,在以太坊系统中,智能合约中的行为由code(代码)来控制,那么智能合约的账户存储合约的状态。在以太坊上核心就是EVM(以太坊虚拟机),合约代码的执行都在EVM中进行。当然每个节点都会有一个EVM,EVM是一个图灵完备的虚拟机。在Fabric系统中,智能合约称为链码(Chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能。链码被编译成一个独立的应用程序,运行于隔离的Docker容器中。和以太坊相比,Fabric链码和底层账本是分开的,升级链码时并不需要迁移账本数据到新链码当中,真正实现了逻辑与数据的分离,同时,链码采用Go、Java、Nodejs语言编写。
关系数据库(Relational Database,RDB):RDB数据库就是基于关系模型的数据库,也叫关系型数据库。在计算机中,关系数据库是数据和数据库对象的集合。所谓数据库对象是指表、视图、存储过程、触发器等。而管理关系数据库的计算机软件就是关系数据库管理系统(Relational Database Management System,RDBMS)。关系数据库是由数据表和数据表之间的关系组成的。在关系型数据库中,表的关联是一个非常重要的组成部分。表的关联是指数据库中的数据表与数据表之间使用相应的字段实现数据表的连接。
参考图3,是本发明一种实施例的区块链系统架构图。如图3所示,本发明实施例的区块链系统架构分为三层,包括协议层、扩展层和应用层,其中,协议层又可以分为存储层和网络层。在不同的具体区块链系统中,三层架构中每层架构的具体实现方式可能存在差异,在本实施例中,仅对区块链系统的基础架构进行介绍。
协议层提供区块链系统的底层能力,维护着网络节点,一般仅提供API供调用。协议层构建了区块链系统的网络环境,并搭建了交易通道,制定了节点奖励机制或者共识机制。从技术上讲,协议层主要包括网络编程、分布式算法、加密签名和数据存储等方面。
从功能和技术上可以进一步将协议层分为网络层和存储层。数据层主要描述区块链数据的存储形式。其中包括了区块数据的链式存储技术,包括时间戳技术、哈希校验技术等;还包含了数据库的实现方式,以及节点调用数据库的接口实现。
网络层的主要目的是实现区块链网络中节点之间的信息交流。区块链网络本质上是一个P2P(点对点)网络。每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块链来保持通信。区块链的网络中,节点可以创造新的区块,在新区块被创造后会以广播的形式通知其他节点,其他节点会对这个区块进行验证,当全区块链网络的节点达成共识后,新区块就可以被添加到主链上。
在协议层之上是扩展层,扩展层提供了基于协议层的该区块链系统的功能实现。通过协议层提供的基础能力,扩展层可以实现各类脚本代码、算法机制以及应用机制。例如,智能合约即是拓展层的一种典型应用,节点通过部署的智能合约,实现达到某个条件后自动执行合约。又例如,虚拟货币的交易市场通过脚本封装规定了虚拟货币的交易方式以及过程中的实现细节,这也是在扩展层实现的。
拓展层之上是应用层,封装了区块链的各种应用场景和案例。应用层的实现与用户直接交互的区块链功能,大多采用客户端的形式实现。
在本申请的实施例中,应用客户端部署在电子设备上,扩展层和协议层、网络层、存储层可以部署在云服务器上,云服务器与部署有应用客户端的电子设备进行通信连接,传输数据。
参考图4,是本发明一种实施例中一种区块链系统的节点的系统架构图。如图所示,区块链节点是区块链去中心化分布式体统中的一个去中心化节点。区块链节点20和客户端21相连接,处理客户端发起的交易指令,并在区块链系统中执行交易并存储交易结果。在本申请实施例中,区块链节点20为前述的云服务器。在节点中,背书单元201用于完成背书操作。智能合约单元202用于存储和执行智能合约。解析单元203用于解析接收到的交易指令。在一些实现方式中,区块链系统中需要排序节点204,则在具有排序功能的节点中,还包含排序单元,用于接收其他节点发送的带有背书签名的交易,并按照一定顺序打包交易成区块数据。节点还包含非对称加密单元205、数字证书单元206或者数字签名单元207以实现相应的区块链系统功能,以及处理与其他节点进行数据传输的网络单元208以及用于将交易存储到数据库的存储单元209。
如图5所示为本申请实施例提供的基于区块链的手机盾访问记录存证和告警系统。系统包括区块链云服务器和部署有REE和TEE以及内置安全组件inSE(手机盾)的终端设备。
REE中的客户端应用程序CA的执行金融交易的区块链客户端1用于:将合法app(合法的客户端应用程序CA)对手机盾的访问请求,发送至云端服务器,使得云端服务器的智能合约单元记录所有合法app发送的访问请求;还用于从智能合约模块获得恶意app(恶意的客户端应用程序CA)对手机盾的访问的告警提示。
TEE中的可信应用程序TA的区块链客户端2用于:接收来自REE的手机盾访问请求;将接收到的访问请求发送至云端服务器的智能合约单元,使得智能合约单元记录来自TEE的访问请求;通过智能合约单元对访问请求的合法性的判断,过滤来自REE的访问请求;将合法的访问请求发送给手机盾,并将手机盾返回的访问结果发送给REE中合法app。
区块链云服务器用于存储区块链数据,区块链云服务器上部署有智能合约单元(例如图4中的智能合约单元202);智能合约单元可以效验可信应用程序TA接收到的访问请求的合法性,根据白名单过滤客户端应用程序CA对手机盾的访问请求,防止恶意的客户端应用程序访问手机盾;存证合法的客户端应用程序CA的区块链客户端1发送的访问请求以及TEE中可信应用程序TA的区块链客户端2发送的访问请求;对比分析存证的合法的客户端应用程序CA的区块链客户端1发送的访问请求以及存证的TEE中可信应用程序TA的区块链客户端2发送的访问请求,确定是否有恶意app访问手机盾,并将确认结果反馈给REE的合法app,以向用户告警有恶意app访问。
如图6所示,本申请实施例提供了一种手机盾访问记录存证和告警方法。
步骤301:REE中的客户端应用程序CA向TEE中的可信应用程序TA发送对手机盾的访问请求;
步骤302:TEE中的可信应用程序TA接收到客户端应用程序CA发送的手机盾的访问请求,将该访问请求发送至区块链智能合约单元;
步骤303:智能合约单元验证该访问请求的合法性,将效验结果返回至TEE中的可信应用程序TA。
智能合约单元可获取区块链中已记录的合法名单,该合法名单中记录了合法的客户端应用程序CA的信息,该信息可以包括客户端应用程序CA的包名,包名为应用程序的唯一的标识,每个应用程序的包名互相不同,信息还可以包括客户端应用程序CA的版本号。智能合约单元效验发起访问请求的客户端应用程序CA是否在合法名单中,并将效验结果发送给TEE中的可信应用程序TA。
若发起访问请求的客户端应用程序CA不在合法名单中,则该客户端应用程序CA为恶意的客户端应用程序,则执行步骤304;若发起访问请求的客户端应用程序CA在合法名单中,则该客户端应用程序CA为合法的客户端应用程序,则继续执行步骤305。
步骤304:可信应用程序TA接收到效验结果,向发起访问请求的客户端应用程序CA发送拒绝访问的指令;
效验结果表明发起访问请求的客户端应用程序CA为恶意的,即不合法的,则可信应用程序TA向发起访问请求的客户端应用程序CA发送拒绝访问的指令,拒绝该客户端应用程序CA对手机盾的访问。
可选的,可信应用程序TA还可以将恶意的客户端应用程序的信息呈现在用户界面。
步骤305:可信应用程序TA接收到效验结果,将访问请求转发至手机盾;
步骤306:手机盾接收访问请求,向可信应用程序TA返回访问结果;
步骤307:可信应用程序TA将访问结果返回给客户端应用程序CA;
上述实施例中,根据记录在区块链中的合法名单对客户端应用程序CA发送的访问请求进行效验,避免恶意的客户端应用程序CA访问手机盾。
在另一实施例中,在步骤302之后还包括步骤308;
步骤308:智能合约单元存证可信应用程序TA发送的访问请求;
智能合约单元存证的可信应用程序TA发送的访问请求是将可信应用程序TA接收到的来自REE的访问请求均存证下来。也就是说,智能合约单元存证的可信应用程序TA发送的访问请求包括了REE侧合法app和恶意app发送的访问请求。
步骤309:智能合约单元比较已存证的REE侧的客户端应用程序CA发送的访问请求与存证的可信应用程序TA发送的访问请求,确定是否有恶意app访问手机盾;
对于合法的客户端应用程序CA来说,在执行步骤301的适合,合法的客户端应用程序CA通过区块链客户端1向智能合约单元发送访问请求。也就是说,智能合约单元上存证的REE侧的客户端应用程序CA发送的访问请求只包括了合法app的访问请求。如果REE侧存在恶意app向可信应用程序TA发送访问请求,则智能合约单元中存证的REE侧发送的访问请求与TEE侧发送的访问请求将会是不匹配的,例如数量不相同。
步骤310:智能合约单元向合法app告警存在恶意app访问手机盾。
智能合约单元将恶意app的信息发送至合法的客户端应用程序CA的区块链客户端1调用区块链智能合约;通知合法app,在本次合法访问与上次合法访问之间,有恶意的App也尝试访问过手机盾,并将告警信息呈现给用户。
如图7所示,为本申请实施例提供的基于区块链的手机盾访问记录存证和告警系统。
在合法App中,实现一个Fabric的客户端模块:Fabric client 1,可以正常访问Hyperledger Fabric区块链系统,调用区块链系统中的智能合约单元,完成合法App对手机盾访问记录的存证;
在TA程序中,实现一个Fabric的客户端模块:Fabric client 2,可以正常访问Hyperledger Fabric区块链系统,调用区块链系统中的智能合约,完成所有经过TA程序对手机盾访问记录的存证;
在Hyperledger Fabric区块链平台上,开发智能合约单元,完成如下功能:(1)完成合法App的区块链客户端模块Fabric client 1发出的手机盾的访问记录存证;(2)完成TA程序的区块链客户端模块Fabric client 2发出的手机盾访问记录存证;(3)完成以上两个存证记录的对比分析,并支持合法App区块链客户端模块获取分析结果。
Fabric client1模块访问手机盾记录在区块链上存证的具体软件业务逻辑如图8所示。
在合法App中,Fabric client1模块,通过以上流程,完成合法App访问手机盾的记录存证。其中存证信息的结构体定义如下:
需要说明的是,在区块链系统中,调用智能合约进行存证的时候,存证的结果并不会马上记录到区块链账本中,而是先把结果返回给Fabric client端,再由Fabric client端打包成一笔交易,发送到区块链系统的排序(orderer)节点,进行排序、打包成区块。
Fabric client1模块访问区块链智能合约单元中的存证,进行告警的逻辑如图9所示。
在Fabric client1模块中,提供API,供合法App访问手机盾的主流程调用。在API内部,集成Fabric的SDK(软件开发工具包),并通过SDK的调用接口,查询在本次访问手机盾和上次访问手机盾之间,是否有其它恶意App也访问过手机盾,并把恶意App的包名、访问时间信息以弹框告警的形式提示用户。
Fabric client2模块的具体软件业务逻辑如图10所示。
在Fabric client2模块中,提供API,供TA程序访问手机盾的主流程调用。在API内部,集成Fabric的SDK,并通过SDK的invoke接口,访问智能合约,将访问手机盾的App的信息的hash值,记录到区块链上;同时,通过query接口,访问智能合约,获取合法App的白名单(合法App的白名单,在智能合约中的记录方式,包括但不限于:将白名单信息写死在智能合约中),在白名单中查找本次访问手机盾的App的包名,如果查找到,说明是合法的App,则将访问转发给手机盾,如果未查找到,则说明是恶意的App,则拒绝此次访问。
智能合约单元的软件业务逻辑如图11所示。
针对Fabric client1和Fabric client2的访问请求,智能合约中,有4条业务流程分别进行处理:(1)针对合法访问记录的存证,智能合约以key-value的形式进行存储,并把存证结果返回给Fabric client1;(2)经过TA程序访问手机盾的全部访问记录存证,并把存证结果返回给Fabric client2;(3)对合法App访问手机盾的访问记录存证与TA程序记录的所有访问手机盾的访问记录存证进行比对,将比对结果反馈给Fabric client1;(4)将合法App的白名单,反馈给Fabric client2,供Fabric client2做恶意请求拦截。
通过以上技术方案,实现了手机盾访问记录的可靠存证,同时,可以根据区块链上的合法App白名单,实现一定的针对恶意App的攻击防御效果。在合法App访问手机盾时,可以根据存证记录比对,实现对手机盾恶意访问请求的告警。本发明实施例,对现有手机盾方案的改进,通过区块链账本不可篡改的属性,引入了访问记录存证和攻击防御能力。在提升手机盾攻击防御能力的同时,为手机盾威胁分析提供可靠的数据资料。本发明实施例,对现有手机盾方案的改进,在REE侧和TEE侧,同时引入了区块链的客户端模块,通过区块链账本的不可篡改的属性,实现了手机盾访问记录存证和攻击防御能力。
请参考图12,为本实施例提供的一种计算机系统的结构示意图。该计算机系统可以为终端设备。如图所示,该计算机系统包括通信模块810、传感器820、用户输入模块830、输出模块840、处理器850、音视频输入模块860、存储器870以及电源880。进一步的,本实施例提供的计算机系统还可以包括NPU890。
通信模块810可以包括至少一个能使该计算机系统与通信系统或其他计算机系统之间进行通信的模块。例如,通信模块810可以包括有线网络接口,广播接收模块、移动通信模块、无线因特网模块、局域通信模块和位置(或定位)信息模块等其中的一个或多个。这多种模块均在现有技术中有多种实现,本申请不一一描述。
传感器820可以感测系统的当前状态,诸如打开/闭合状态、位置、与用户是否有接触、方向、和加速/减速,并且传感器820可以生成用于控制系统的操作的感测信号。
用户输入模块830,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及接收与系统的用户设置以及功能控制有关的信号输入等。用户输入模块830包括触控面板和/或其他输入设备。
输出模块840包括显示面板,用于显示由用户输入的信息、提供给用户的信息或系统的各种菜单界面等。可选的,可以采用液晶显示器(liquid crystal display,LCD)或有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板。在其他一些实施例中,触控面板可覆盖显示面板上,形成触摸显示屏。另外,输出模块840还可以包括音频输出模块、告警器以及触觉模块等。
音视频输入模块860,用于输入音频信号或视频信号。音视频输入模块860可以包括摄像头和麦克风。
电源880可以在处理器850的控制下接收外部电力和内部电力,并且提供系统的各个组件的操作所需的电力。
处理器850包括一个或多个处理器,例如,处理器850可以包括一个中央处理器和一个图形处理器。中央处理器在本申请中具有多个核,属于多核处理器。这多个核可以集成在同一块芯片上,也可以各自为独立的芯片。
存储器870存储计算机程序,该计算机程序包括操作系统程序872和应用程序871等。典型的操作系统如微软公司的Windows,苹果公司的MacOS等用于台式机或笔记本的系统,又如谷歌公司开发的基于
存储器870可以是以下类型中的一种或多种:闪速(flash)存储器、硬盘类型存储器、微型多媒体卡型存储器、卡式存储器(例如SD或XD存储器)、随机存取存储器(randomaccess memory,RAM)、静态随机存取存储器(static RAM,SRAM)、只读存储器(read onlymemory,ROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、可编程只读存储器(programmable ROM,PROM)、回滚保护存储块(replay protected memory block,RPMB)、磁存储器、磁盘或光盘。在其他一些实施例中,存储器870也可以是因特网上的网络存储设备,系统可以对在因特网上的存储器870执行更新或读取等操作。
处理器850用于读取存储器870中的计算机程序,然后执行计算机程序定义的方法,例如处理器850读取操作系统程序872从而在该系统运行操作系统以及实现操作系统的各种功能,或读取一种或多种应用程序871,从而在该系统上运行应用。
存储器870还存储有除计算机程序之外的其他数据873。
NPU 890作为协处理器挂载到主处理器850上,用于执行主处理器850给它分配的任务。在本实施例中,NPU890可以被人脸识别TA的一个或多个子线程调用从而实现人脸识别中涉及的部分复杂算法。具体的,人脸识别TA的子线程在主处理器850的多个核上运行,然后主处理器850调用NPU890,NPU890实现的结果再返回给主处理器850。
以上各个模块的连接关系仅为一种示例,本申请任意实施例提供的方法也可以应用在其它连接方式的终端设备中,例如所有模块通过总线连接。
需要说明的是,前述实施例中提出模块或单元的划分仅作为一种示例性的示出,所描述的各个模块的功能仅是举例说明,本申请并不以此为限。本领域普通技术人员可以根据需求合并其中两个或更多模块的功能,或者将一个模块的功能拆分从而获得更多更细粒度的模块,以及其他变形方式。
以上描述的各个实施例之间相同或相似的部分可相互参考。本申请中的“多个”若无特殊说明,指两个或两个以上,或“至少两个”。本申请中的“A/B”包括三种情况:“A”、“B”和“A和B”。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一些具体实施方式,但本申请的保护范围并不局限于此。
- 一种手机盾访问记录存证和告警方法及计算机系统
- 一种基于区块链的UCON存证数据访问控制方法