CN113468606A - 一种应用程序的访问方法及电子设备 - Google Patents

一种应用程序的访问方法及电子设备 Download PDF

Info

Publication number
CN113468606A
CN113468606A CN202010237163.7A CN202010237163A CN113468606A CN 113468606 A CN113468606 A CN 113468606A CN 202010237163 A CN202010237163 A CN 202010237163A CN 113468606 A CN113468606 A CN 113468606A
Authority
CN
China
Prior art keywords
service
application program
application
access request
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010237163.7A
Other languages
English (en)
Inventor
周冲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010237163.7A priority Critical patent/CN113468606A/zh
Publication of CN113468606A publication Critical patent/CN113468606A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Abstract

一种应用程序的访问方法及电子设备,涉及终端技术领域。该方法应用于电子设备,具体包括:接收指令,该指令用于指示第一应用程序请求访问第一服务;响应指令,对第一应用程序进行完整性度量,得到第一完整性度量值;当第一完整性度量值与第二完整性度量值相同时,允许第一应用程序向第一服务发送访问请求;第二完整性度量值是在电子设备安装第一应用程序时对第一应用程序进行完整性度量得到的;允许第一服务响应于访问请求,向第一应用程序返回访问请求所请求的数据。从而有助于防止应用程序被篡改或攻击导致越权访问的可能性,降低用户信息泄露的风险。

Description

一种应用程序的访问方法及电子设备
技术领域
本申请涉及终端技术领域,特别涉及一种应用程序的访问方法及电子设备。
背景技术
随着移动互联网的发展以及电子设备的智能化,涌现了各种各样的应用程序,使得用户可以根据自身的需求安装在电子设备(如手机、平板电脑)上,从而丰富了电子设备的功能,便利了人们的生活。然而,当电子设备上安装了植入有恶意盗取用户信息的应用程序时,在用户不易察觉的情况下这些应用程序可以自动获取用户信息,例如短信、通信录、通话记录、照片等,容易导致用户信息的泄露。
因此,现有技术中,为了降低用户信息泄露的可能性,引入了应用程序的权限管理。具体的,如图1所示,应用程序当访问服务时,是否能够从该服务获取用户信息,与该应用程序的权限有关。当该应用程序的权限允许该应用程序访问该服务时,则该服务允许该应用程序访问,使得该应用程序可以从该服务获取用户信息。当该应用程序的权限禁止该应用程序访问该服务时,则该服务限制该应用程序访问,使得该应用程序无法从该服务获取用户信息。而该应用程序的权限通常是用户根据自己的需求设置的。其中,服务是根据该应用程序的用户标识(user ID,UID),获取该应用程序的权限,并根据该应用程序的权限,决策是否允许应用程序访问的。电子设备采用上述技术方案,一旦应用程序的UID被篡改或攻击,容易使得服务对是否允许应用程序的访问的决策出错,导致越权访问,带来用户信息泄露的风险。
发明内容
本申请实施例提供了一种应用程序的访问方法及电子设备,有助于防止应用程序被篡改或攻击导致越权访问的可能性,降低用户信息泄露的风险。
第一方面,为本申请实施例提供的一种应用程序的访问方法,应用于电子设备,该方法具体包括:接收指令,所述指令用于指示所述电子设备中安装的第一应用程序请求访问所述电子设备中安装的第一服务;响应所述指令,对所述第一应用程序进行完整性度量,得到第一完整性度量值;当所述第一完整性度量值与第二完整性度量值相同时,允许所述第一应用程序向所述第一服务发送访问请求;所述第二完整性度量值是在所述电子设备安装所述第一应用程序时对所述第一应用程序进行完整性度量得到的;允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据。
本申请实施例中,由于当第一应用程序请求访问第一服务时,当第一完整性度量值和第二完整性度量值相等时,才允许第一应用程序向第一服务发送访问请求,而第一完整性度量值是接收到第一应用程序请求访问第一服务的指令时对第一应用程序进行完整性度量得到的,而第二完整性度量值是第一应用程序安装时对第一应用程序进行完整性度量得到的,从而有助于防止应用程序被篡改或攻击导致越权访问的可能性,降低用户信息泄露的风险。
在一种可能的设计中,当所述第一完整性度量值与所述第二完整性度量值不同时,可以禁止所述第一应用程序向所述第一服务发送所述访问请求。从而有助于避免应用程序被篡改后继续访问第一服务,从而有助于提高用户信息的安全性。
在一种可能的设计中,可以基于下列方式实现允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据:
对所述第一服务进行完整性度量,得到第三完整性度量值;当所述第三完整性度量值与第四完整性度量值相同时,允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据;其中,所述第四完整性度量值是在所述电子设备安装所述第一应用程序后、且所述第一应用程序访问所述第一服务的权限为允许访问的情况下,对所述第一服务进行完整性度量得到的;或者,所述第四完整性度量值是将所述第一应用程序访问所述第一服务的权限由禁止访问修改为允许访问时对所述第一服务进行完整性度量得到的。
本申请实施例中,由于第一服务当接收到来自第一应用程序的访问请求时,需要先对第一服务进行完整性度量,当第三完整性度量值和第四完整性度量值相同时,才允许第一服务响应于访问请求,向第一应用程序返回访问请求所请求的数据,从而更有助于避免第一服务被篡改后继续返回数据,导致第一应用程序被攻击或篡改等,从而更有助于进一步提高用户信息的安全性。
在一种可能的设计中,允许所述第一应用程序向所述第一服务发送访问请求,可以包括:基于所述第一完整性度量值,对与所述第一应用程序的标识对应的第一信息进行解析,得到第一私钥;所述第一信息由所述第二完整性度量值与第一私钥运算得到;所述第一私钥是在所述电子设备安装所述第一应用程序时生成的;控制所述第一应用程序使用所述第一私钥对向所述第一服务发送的访问请求加密或签名;允许所述第一应用程序向所述第一服务发送所述第一应用程序的标识和使用所述第一私钥加密或签名的访问请求。相应地,允许所述第一服务响应于所述访问请求,向所述第一应用程序返回请求访问的数据,可以包括:控制所述第一服务获取与所述第一服务的标识对应的至少一个第二信息,每个第二信息包括一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥;从所述至少一个第二信息中获取与所述第一应用程序的标识对应的第一公钥;所述第一公钥是在所述电子设备安装所述第一应用程序时生成的,所述第一公钥与所述第一私钥互为非对称密钥对;在所述第一服务使用所述第一公钥对所述第一应用程序发送的所述访问请求解密或解签名成功时,允许所述第一服务响应于解密或解签名后的所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据。
由于第一信息为由第一完整性度量值与第一私钥运算得到的,从而可以避免第一完整性度量值的泄露,进一步提高对第一应用程序校验的可靠性。
在一种可能的设计中,所述方法还可以在基于所述第一完整性度量值,对与所述第一应用程序的标识对应的第一信息解析失败时,禁止所述第一应用程序向所述第一服务发送所述访问请求。
在一种可能的设计中,每个第二信息可以是由一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥、与第四完整性度量值运算得到的;另外,所述第四完整性度量值可以是在所述电子设备安装所述第一应用程序后、且所述第一应用程序访问所述第一服务的权限为允许访问的情况下,对所述第一服务进行完整性度量得到的;或者,所述第四完整性度量值可以是将所述第一应用程序访问所述第一服务的权限由禁止访问修改为允许访问时对所述第一服务进行完整性度量得到的;在这种情况下,可以基于下列方式,从所述至少一个第二信息中获取与所述第一应用程序的标识对应的第一公钥:
根据第三完整性度量值,对与所述第一服务的标识对应的至少一个第二信息解析,得到至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥;所述第三完整性度量值是当所述第一服务在接收到所述第一应用程序的所述访问请求后,对所述第一服务进行完整性度量得到的;并根据所述第一应用程序的标识,从所述至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥中,获取与所述第一应用程序的标识对应的公钥作为所述第一公钥。
通过上述技术方案,使得能够访问第一服务的应用程序的标识和应用程序的公钥能够分别与第四完整性度量值运算,得到第二信息,可以避免第四完整性度量值以及应用程序的公钥的泄露,有助于进一步提高对第一服务和第一应用程序校验的可靠性,进一步提高用户信息的安全性。
在一种可能的设计中,所述方法还可以在根据所述第三完整性度量值,对与所述第一服务的标识对应的至少一个第二信息解析失败时,禁止所述第一服务向所述第一应用程序返回所述访问请求所请求的数据;和/或,在所述至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥中不包括所述第一应用程序的标识时,禁止所述第一服务向所述第一应用程序返回所述访问请求所请求的数据。从而有助于进一步提高信息的安全性。
在一种可能的设计中,允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据,可以包括:控制所述第一服务响应于所述访问请求,对所述访问请求所请求的数据使用第二密钥加密;所述第二密钥为系统密钥,或者为根据所述第一应用程序的标识生成的密钥;控制所述第一服务向所述第一应用程序返回使用所述第二密钥加密后的所述数据。从而助于提高数据传输的安全性。当采用第一应用程序的标识生成第二密钥时,还有助于实现数据隔离,使得除第一应用程序以外的其它应用程序无法对该数据进行访问。
在一种可能的设计中,第一应用程序的标识可以是根据第一应用程序的UID和系统账号的标识(例如系统用户标识)确定的。
在一种可能的设计中,所述方法还可以包括保存所述第一服务向所述第一应用程序返回的数据。
第二方面,本申请实施例提供一种电子设备,包括处理器和存储器;所述存储器中存储有程序指令,所述程序指令包括第一应用程序;所述处理器,用于调用所述存储器中存储的所述程序指令,使得所述电子设备执行上述第一方面以及第一方面涉及的任一可能设计的方法。
第三方面,本申请实施例提供一种电子设备,包括执行本申请实施例上述第一方面以及第一方面涉及的任一可能设计的方法的装置。该装置可以通过软件实现,也可以通过硬件实现,当然也可以通过软件结合硬件来实现。
第四方面,本申请实施例提供的一种芯片,包括:处理器和接口,所述处理器用于通过所述接口从存储器中调用并运行所述存储器中存储的程序指令,以执行本申请实施例上述第一方面以及第一方面涉及的任一可能设计的方法。
第五方面,本申请实施例的一种计算机存储介质,该计算机存储介质存储有程序指令,当所述程序指令在电子设备上运行时,使得电子设备执行本申请实施例上述第一方面以及第一方面涉及的任一可能设计的方法。
第六方面,本申请实施例的一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本申请实施例上述第一方面以及第一方面涉及的任一可能设计的方法。
另外,第二方面至第六方面中任一种可能设计方式所带来的技术效果可参见方法部分相关方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例的一种应用场景的示意图;
图2A为本申请实施例的另一应用场景的示意图;
图2B为本申请实施例的另一应用场景的示意图;
图3为本申请实施例一种电子设备的结构示意图;
图4为本申请实施例的一种电子设备的软件结构示意图;
图5为本申请实施例的一种应用程序的访问方法的流程示意图;
图6为本申请实施例的一种应用程序的访问方法的示意图;
图7为本申请实施例的另一应用程序的访问方法的示意图;
图8为本申请实施例的另一应用程序的访问方法的示意图;
图9为本申请实施例的另一应用程序的访问方法的场景示意图;
图10为本申请实施例的一种界面的示意图;
图11为本申请实施例的另一应用程序的访问方法的流程示意图;
图12为本申请实施例的一种电子设备的结构示意图。
具体实施方式
电子设备是通过应用程序为用户提供各种功能的,例如打电话、发短信、上网或游戏等。其中,应用程序可以是用户根据自身需求安装在电子设备上的。然而,由于应用程序的来源众多,应用程序的可靠性无法保证,因此容易导致不可信应用程序恶意从电子设备上盗取用户信息,造成用户信息泄露。
目前,通过引入应用程序的权限管理,来降低不可信应用程序恶意从电子设备上盗取用户信息的可能性。具体的,用户可以根据自身的需求设置应用程序的权限,使得应用程序当访问某一服务时,如果该应用程序的权限允许该应用程序访问该服务,则该服务允许该应用程序访问,则应用程序才可以使用服务,从该服务中获取用户信息。在该应用程序的权限禁止该应用程序访问该服务时,应用程序无法使用该服务,不能够从该服务中获取用户信息。通常情况下,电子设备可以在应用程序安装时或者应用程序访问服务时,向用户提示设置应用程序的权限,从而使得用户可以根据自身的需求进行应用程序的权限设置。
然而,现有技术中,服务基于应用程序的用户标识(user ID,UID),获取该应用程序的权限,并根据该应用程序的权限,决策是否允许该应用程序访问。电子设备采用上述技术方案,一旦应用程序的UID被篡改或攻击,容易使得服务对是否允许应用程序的访问的决策出错,导致越权访问,带来用户信息泄露的风险。
例如,以应用程序1的权限禁止访问服务1为例。其中,应用程序1的UID为01。如图2A所示,当应用程序1的UID为01时,服务1基于应用程序1的UID,获取到的应用程序的权限为禁止访问,因此,当应用程序1响应于用户的某一操作,请求访问服务1时,服务1会禁止应用程序1访问,从而使得应用程序1无法从服务1获取用户信息。然而,一旦应用程序1的UID被篡改,例如,应用程序1的UID被篡改为02,因此,如果服务1基于被篡改后的应用程序1的UID,获取到的应用程序的权限为允许访问,则当应用程序1响应于用户的某一操作,请求访问服务1时,服务1允许应用程序1访问,从而使得应用程序1可以从服务1获取用户信息,导致越权访问,容易带来信息泄露的风险。
此外,如果应用程序的权限被篡改,也会导致越权访问,容易带来信息泄露的风险。例如,以应用程序1的权限禁止访问服务1为例。其中,应用程序1的UID为01。如图2B所示,当应用程序1的UID为01时,服务1基于应用程序1的UID,获取到的应用程序的权限为禁止访问,因此,当应用程序1响应于用户的某一操作,请求访问服务1时,服务1禁止应用程序1访问,从而使得应用程序1无法从服务1获取用户信息。然而,一旦应用程序1的权限被篡改,例如,应用程序1的权限被篡改为允许访问,因此,在应用程序1的权限被篡改后,服务1基于应用程序1的UID,获取到的应用程序的权限为允许访问,则当应用程序1响应于用户的某一操作,请求访问服务1时,服务1允许应用程序1访问,从而使得应用程序1可以从服务1获取用户信息,导致越权访问,容易带来信息泄露的风险。
有鉴于此,本申请实施例提供了一种应用程序的访问方法,使得电子设备可以结合完整性度量值和非对称密钥对实现应用程序对服务的访问,从而有助于防止应用程序的标识和/或应用程序的权限被篡改或攻击导致越权访问的可能性,降低用户信息泄露的风险。
应理解,下述本申请实施例中“至少一个”是指一个或者多个。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的三种情况。其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c七种情况。其中a、b、c中的每一个本身可以是元素,也可以是包含一个或多个元素的集合。
在本申请中,“示例的”、“在一些实施例中”、“在另一些实施例中”等用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
需要指出的是,本申请实施例中涉及的“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
需要说明的是,本申请实施例中,应用程序和服务可以位于同一电子设备上,也可以位于不同的电子设备上,对此不作限定。另外,本申请实施例还可以应用于分布式场景。示例的,在分布式场景下,电子设备可以为虚拟机,应用程序和服务可以位于不同的虚拟机上,在此不再赘述。
示例的,本申请实施例的电子设备可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,本申请实施例对电子设备的具体类型不作任何限制。
示例的,如图3所示,为本申请实施例的一种电子设备的硬件结构示意图。具体的,如图所示,电子设备包括处理器110、外部存储器接口120、内部存储器121、通用串行总线(universal serial bus,USB)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、传感器模块180、按键190、马达191、指示器192、摄像头193、显示屏194、以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
处理器110可以包括一个或多个处理单元。例如:处理器110可以包括应用处理器(application processor,AP)、调制解调器(modem)、图形处理器(graphics processingunit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,或者,两个或更多个不同的处理单元也可以集成在一个器件中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。例如,处理器110包括通用串行总线(universal serial bus,USB)接口130、用户标识模块(subscriber identitymodule,SIM)接口195。再例如,处理器110还可以包括集成电路(inter-integratedcircuit,I2C)接口、集成电路内置音频(inter-integrated circuit sound,I2S)接口、脉冲编码调制(pulse code modulation,PCM)接口、通用异步收发传输器(universalasynchronous receiver/transmitter,UART)接口、移动产业处理器接口(mobileindustry processor interface,MIPI)、和/或通用输入输出(general-purpose input/output,GPIO)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口、Micro USB接口、USB Type C接口等。USB接口130可以用于连接充电器为电子设备充电,也可以用于电子设备与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备的接触和分离。电子设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡、Micro SIM卡、SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备中,不能和电子设备分离。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142、充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110、内部存储器121、外部存储器、显示屏194、摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量、电池循环次数、电池健康状态(漏电、阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等制式的无线通信的解决方案。移动通信模块150可以包括至少一个滤波器、开关、功率放大器、低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160包括可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络)、蓝牙(bluetooth,BT)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址接入(code divisionmultiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、时分码分多址(time-division code division multiple access,TD-SCDMA)、长期演进(long term evolution,LTE)、BT、GNSS、WLAN、NFC、FM和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS)、全球导航卫星系统(globalnavigation satellite system,GLONASS)、北斗卫星导航系统(beidou navigationsatellite system,BDS)、准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备通过GPU、显示屏194以及应用处理器等实现显示功能。显示屏194用于显示图像、视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD)、有机发光二极管(organic light-emitting diode,OLED)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED)、柔性发光二极管(flex light-emitting diode,FLED)、Miniled、MicroLed、Micro-oLed、量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光、色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将用户信息(如音乐、视频等文件)保存在外部存储卡中。
内部存储器121包括运行内存(memory)和内置存储器。其中,运行内存可以用于存储计算机可执行程序代码或数据等。所述可执行程序代码包括指令。处理器110通过运行存储在运行内存的指令,从而执行电子设备的各种功能应用以及数据处理。例如,运行内存可以包括高速随机存取存储器。而内置存储器又可以称之为内置外存等,可以用于存储程序和/或数据。例如,内置存储器可以存储操作系统、应用程序等。电子设备通常将内置存储器中的程序和/或数据加载到运行内存后,使得处理器110运行相应的程序和/或数据,实现相应的功能。再例如,内置存储器还可以用于存储用户信息(如通信录、备忘录、提醒信息等)。此外,内部存储器121可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,UFS)等。
电子设备可以通过音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、以及应用处理器等实现音频功能。例如音乐播放、录音等。
按键190包括开机键、音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照、音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒、接收信息、闹钟、游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态、电量变化,也可以用于指示消息、未接来电、通知等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请实施例中电子设备的软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构、或云架构。其中,分层架构(如,安卓(android)系统)将软件分成若干个层,每一层都有清晰的角色和分工,层与层之间通过软件接口通信。
具体的,图4示出本申请实施例的电子设备的一种软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层、应用程序框架层、安卓运行时(Android runtime)和系统库、以及内核层。应用程序层可以包括一系列应用程序。
如图4所示,应用程序可以包括相机、图库、日历、通话、地图、导航、WLAN、蓝牙、音乐、视频、短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器、内容提供器、视图系统、电话管理器、资源管理器、通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、通信录等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通、挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件、视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机(如Dalvik,是一种Java虚拟机)。Androidruntime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理、以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager)、媒体库(Media Libraries)、三维图形处理库(例如:OpenGL ES)、2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4、H.264,MP3、AAC、AMR、JPG、PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染、合成和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动、摄像头驱动、音频驱动、传感器驱动。
首先,对本申请实施例中涉及的部分名词进行解释,以便于本领域技术人员理解。
1、应用程序。本申请实施例中应用程序在启动或运行的过程中,可以用于主动发起访问服务实现某一个或多个功能,又可以称之为主体。
其中,应用程序的UID、包名、签名、应用程序的权限等为应用程序的属性信息。具体的,应用程序的权限包括申请权限和声明权限。声明权限可以理解为预先在应用程序的安装包中定义好的权限,而申请权限为需要用户根据自己的需要选择是否允许或禁止的权限。
以应用程序为短信息为例。短信息可以响应于用户的操作,访问通信录,并根据用户的需求从通信录中选择一个或多个收件人,实现向一个或多个收件人发送短信息的功能。而短信息访问通信录的权限可以是声明权限,也可以是申请权限。当短信息访问通信录的权限为声明权限时,用户可以无需进行操作。而当短信息访问通信录的权限为申请权限时,用户可以根据自身的需要进行选择。如果用户选择允许访问通信录,则短信息可以访问通信录,如果用户选择禁止访问通信录,则短信息无法访问通信录,进而无法从通信录中获取收件人的信息。
2、服务。本申请实施例中,服务又可以称之为客体,可以包括公共文件(例如不同应用程序之间的共享文件(比如相册、音视频文件等))、系统资源(通信录、定位服务、摄像头、麦克风等)、私有文件(例如应用程序的历史使用记录(比如聊天记录、通信记录、上网记录等)、或者应用程序使用服务产生的新的数据)。需要说明的是,本申请实施例中对服务具体包括的内容不做限定。
下述以基于图3和图4所示结构的手机为例,对本申请实施例的应用程序的访问方法进行详细介绍。
示例的,如图5所示,为本申请实施例的一种应用程序的访问方法的流程示意图,具体包括以下步骤。
步骤501,手机在第一应用程序启动后,对第一应用程序进行完整性度量,得到第一完整性度量值。
示例的,处理器可以在第一应用程序启动后,响应于第一操作,对第一应用程序进行完整性度量,得到第一完整性度量值。其中,第一操作可以用于触发第一应用程序访问第一服务。又示例的,处理器可以响应于用户启动第一应用程序的操作,启动第一应用程序,则对第一应用程序进行完整性度量,得到第一完整性度量值。其中,用户启动第一应用程序的操作可以为用户点击第一应用程序的图标的操作、语音操作或快捷操作等,对此不作限定。
可以理解的是,处理器在响应于第一操作,该第一操作可以看成是一个指令,处理器在接收到这个指令时,执行步骤501。
示例的,处理器响应于用户启动第一应用程序的操作,触发执行步骤501,可以响应于触发第一应用程序访问第一服务的操作,触发执行步骤502~步骤508。或者,处理器响应于触发第一应用程序访问第一服务的操作,触发执行步骤501~步骤508。
例如,处理器可以基于哈希算法,对第一应用程序进行完整性度量,得到第一完整性度量值。比如,处理器可以基于哈希算法,对第一应用程序的属性信息和/或程序指令等进行完整性度量,得到第一完整性度量值。
需要说明的是,本申请实施例中对第一应用程序进行完整性度量所使用的算法、以及对第一应用程序执行运算所使用的第一应用程序的信息均不作限定。
步骤502,手机根据第一应用程序的第一标识,从第一密钥库中获取第一标识对应的第一信息。
在手机安装第一应用程序时,处理器会对第一应用程序进行完整性度量得到第二完整性度量值。比如,处理器也可以基于哈希算法,在安装第一应用程序时对第一应用程序的属性信息和/或程序指令等进行完整性度量,得到第二完整性度量值。这里需要说明的是,处理器在对第一应用程序进行完整性度量得到第二完整性度量值和第一完整性度量值所使用的算法、以及对第一应用程序执行运算所使用的第一应用程序的信息相同。当然,第二完整性度量值可以为手机在第一应用程序首次安装时对第一应用程序进行完整性度量得到的,也可以是手机在已安装的第一应用程序的版本更新时,对第一应用程序进行完整性度量得到的,本申请这里不做限定。
此外,在手机安装第一应用程序时,处理器基于某一密钥生成算法,得到第一应用程序的第一公钥和第一私钥。当然,第一应用程序的第一私钥和第一公钥可以是第一应用程序首次安装时得到的,也可以是手机在第一应用程序的版本更新的得到的。例如,处理器可以基于某一密钥生成算法,对第一应用程序的属性信息(例如第一应用程序的UID)运算得到第一应用程序的第一私钥和第一公钥。其中,第一私钥和第一公钥为第一应用程序的非对称密钥对。
处理器执行上述过程在得到第二完整性度量值和第一私钥之后,可以基于某一算法或策略对第二完整性度量值与第一私钥进行运算得到的一个信息,作为上述的第一信息。也就是说第一信息中隐含着第一私钥和第二完整性度量值,但是并不是明文展示第一私钥和第二完整性度量值,所以对第一私钥和第二完整性度量值的保密性可以提供较好的保证。例如,处理器可以对第二完整性度量值和第一私钥进行异或运算,得到第一信息。处理器后续可以将第一应用程序的第一标识、第一信息以及第一公钥预先对应存储到第一密钥库中,第一密钥库可以位于手机的内部存储器中。
在本申请的另一些实施例中,上述第一信息还可以使用系统密钥加密后再存储到第一密钥库中的,从而进一步提高第一私钥存储的安全性。需要说明的是,系统密钥可以为手机出厂之前预置在手机中的密钥,也可以是手机在首次开机时,基于某一密钥生成算法得到的,对此不做限定。例如,手机可以响应于开机操作,根据设备标识,基于某一密钥生成算法,得到系统密钥。
此外,需要说明的是,当第一应用程序的版本更新后,可以不更新第一应用程序的第一私钥和第一公钥,但可以重新对第一应用程序进行完整性度量,更新第二完整性度量值,并使用更新后的第二完整性度量值与第一私钥进行运算,得到一运算结果作为新的第一信息,然后将第一密钥库中存储的与第一应用程序的第一标识对应的第一信息更新为新得到的第一信息。由于无需更新第一私钥和第一公钥,因而有助于减少手机的运算量,提高任务处理效率。当然,可以理解的是,当第一应用层序的版本更新后,也可以同步更新第一应用程序的第一私钥和第一公钥,并使用更新后的第二完整性度量值与更新后的第一私钥进行运算,得到一运算结果作为新的第一信息,然后将第一密钥库中存储的与第一应用程序的第一标识对应的第一信息更新为新得到的第一信息。
例如,如图6所示,手机可以在第一应用程序安装时,先对第一应用程序进行完整性度量,得到第二完整性度量值,再根据第一应用程序的属性信息(例如第一应用程序的第一标识、或包名等),基于密钥生成算法,生成第一应用程序的非对称密钥对,即第一应用程序的第一公钥和第一私钥。然后,手机对第二完整性度量值和第一私钥进行运算,得到第一信息,再使用系统密钥对第一信息加密。最后,手机将第一应用程序的第一标识、加密的第一信息以及第一公钥存储到第一密钥库中。
或者,在另一些实施例中,手机还可以在第一应用程序安装时,先生成非对称密钥对,即第一私钥和第一公钥,再对第一应用程序进行完整性度量,得到第二完整性度量值。又或者,手机也可以同时执行密钥生成算法,以及对第一应用程序进行完整性度量的步骤,本申请实施例对此不作限定。
示例的,第一密钥库可以以列表的形式存储在手机的内部存储器和/或与外部存储器接口连接的外部存储器中。例如,第一密钥库可以如表1所示。
表1
应用程序的标识 隐含私钥的信息 公钥
第一应用程序的标识1 第一信息或加密后的第一信息 第一公钥
第二应用程序的标识2 第一信息或加密后的第一信息 第一公钥
…… …… ……
这样基于上述过程可以将第一应用程序的第一标识以及第一信息对应存储到第一密钥库,在步骤502中手机就可以根据第一应用程序的第一标识,从第一密钥库中获取第一标识对应的第一信息。
第一应用程序的第一标识可以为第一应用程序的UID,或者第一应用程序的第一标识为第一应用程序的包名等,可以用于唯一标识第一应用程序的标识,对此不作限定。此外,第一应用程序的第一标识还可以为基于第一应用程序的UID和手机的系统用户标识得到的,其中,系统用户标识用于指示手机当前的系统账号,从而有助于实现手机在登录不同系统账号时,针对同一应用程序设置不同的权限。需要说明的是,不同的系统账号下,同一应用程序的UID可以是相同的,也可以是不同的。在不同系统账号下,如果同一应用程序的UID不同,第一应用程序的第一标识也可以为在手机当前使用的系统账号下的第一应用程序的UID。另外,可以理解的是,不同的系统账号下安装的应用程序可以是相同的,也可以是不同的。
还需要说明的是,手机在启动第一应用程序后,可以先对第一应用程序进行完整性度量,再执行步骤502,也可以先执行步骤502,再对第一应用程序进行完整性度量,还可以同时执行步骤502和对第一应用程序进行完整性度量的步骤,对此不作限定。
步骤503,手机根据第一完整性度量值,对第一信息解析,得到第一私钥。
即,手机的处理器基于第一完整性度量值对第一信息,执行与根据第二完整性度量值和第一私钥运算得到第一信息所使用的算法互逆的算法,从第一信息中提取出第一私钥。具体的,手机对第一应用程序的第二完整性度量值和第一私钥进行运算,得到第一信息所使用的算法与手机使用第一完整性度量值对第一信息执行解析运算所使用的算法为互逆算法。
例如,手机通过将第二完整性度量值与第一私钥相加得到第一信息,则手机可以通过对第一信息与第一完整性度量值相减,得到第一私钥。即第一完整性度量值和第二完整性度量值相同时,第一私钥不会发生变化。如果第一完整性度量值与第二完整性度量值不同,则解析得到的第一私钥会相对于初始安装第一应用程序时为第一应用程序生成的第一私钥发生变化。
进一步的,在一些实施例中,在第一信息是基于系统密钥加密的情况下,手机还可以先对第一密钥库中存储的第一信息执行使用系统信息解密得到解密后的第一信息后,再执行步骤503。
步骤504,手机使用第一私钥对第一应用程序的访问请求加密,调用第一应用程序向第一服务发送第一应用程序的第二标识和使用第一私钥加密后的第一应用程序的访问请求。第一应用程序的访问请求用于第一应用程序请求访问第一服务。
其中,第一应用程序的第二标识用于唯一标识第一应用程序,可以与第一应用程序的第一标识相同,也可以与第一应用程序的第一标识不同。例如,第一应用程序的第一标识可以是基于第一应用程序的UID和手机的用户标识得到的,而第一应用程序的第二标识可以为第一应用程序的UID。再例如,第一应用程序的第一标识和第二标识均为第一应用程序的UID。
步骤505,当第一服务接收到第一应用程序的第二标识和使用第一私钥加密后的第一应用程序的访问请求后,手机根据第一服务的标识,从第二密钥库中获取至少一个第二信息。其中每个第二信息可以包括一个能够访问第一服务的应用程序的第二标识和该应用程序的公钥。
具体的,手机可以根据用户的设置,使得第一服务允许手机中安装的哪些应用程序进行访问,比如用户可以设置相册允许微信和邮箱访问。在应用程序安装后,手机可以响应于用户将应用程序访问第一服务的权限设置为允许访问,将第一服务的标识、能够访问第一服务的各个应用程序的标识和应用程序的公钥对应存储到第二密钥库中,以便于后续第一服务接收到来自应用程序的访问请求后,能够对访问请求解密,实现对第一应用程序的合法性的验证。其中,手机生成允许访问第一服务的应用程序的公钥的生成方式可以参见上述步骤502中,针对第一应用程序生成第一公钥的过程描述,这里不再赘述。
或者,在本申请的另一些实施例中,手机的处理器还可以在安装第一应用程序后、且第一应用程序访问第一服务的权限为允许访问的情况下,或者将所述第一应用程序访问所述第一服务的权限由禁止访问修改为允许访问时,对第一服务进行完整性度量计算得到第四完整性度量值。例如,处理器可以基于哈希算法或其他算法,对第一服务的属性信息和/或部分内容或全部内容等进行完整性度量,得到第四完整性度量值。
需要说明的是,本申请实施例中对第一服务进行完整性度量所使用的算法、以及对第一服务执行运算所使用的信息均不作限定。
处理器就可以按照某一算法或策略,对第四完整性度量值和允许访问该第一服务的应用程序的标识进行运算、以及对第四完整性度量值和应用程序的公钥进行运算,从而得到的第二信息。也就是说一个第二信息中隐含着允许访问第一服务的某个应用程序的标识、该应用程序的公钥和第四完整性度量值,并不是明文展示允许访问第一服务的某个应用程序的标识、该应用程序的公钥和第四完整性度量值,所以对允许访问第一服务的应用程序的标识、该应用程序的公钥和第四完整性度量值的保密性可以提供较好的保证。然后,处理器将第一服务的标识和第二信息对应存储到第二密钥库中。以便于后续第一服务接收到来自应用程序的访问请求后,能够对访问请求解密,实现对第一应用程序的合法性的验证。
例如,以第一应用程序为例对将第一服务的标识和第二信息对应存储到第二密钥库中进行介绍。如图7所示,手机可以响应于第二操作安装第一应用程序,示例的,第二操作可以为安装或更新第一应用程序的操作,在安装完第一应用程序后,对第一应用程序的访问权限进行解析。当第一应用程序访问第一服务的权限为允许访问时,请求第一服务加载权限,处理器对第一服务进行完整性度量运算,得到第一服务的第四完整性度量值。例如,手机可以对第一服务的属性信息和/或程序指令等进行完整性度量,得到第一服务的第四完整性度量值。然后,手机对第四完整性度量值和第一应用程序的第二标识进行运算、以及对第四完整性度量值与第一应用程序的第一公钥进行运算,得到第二信息。其中,该第二信息隐含着第一应用程序的第二标识、第一应用程序的第一公钥和第四完整性度量值。手机可以进而将得到的第二信息和第一服务的标识对应存储到第二密钥库中,第二密钥库可以与上述第一密钥库位于相同的内部存储介质中,也可以位于不同的存储介质中,本申请对此不做限定。
进一步的,在一些实施例中,手机还可以使用系统密钥对第二信息进行加密,然后再将第二信息存储到第二密钥库中。从而进一步提高第一应用程序的标识、第一应用程序的公钥和第四完整性度量值存储的安全性。或者,手机还可以先使用系统密钥分别对第一应用程序的第二标识、第一应用程序的第一公钥加密,然后再对第四完整性度量值和加密后的第一应用程序的第二标识进行运算、以及对第四完整性度量值和加密后的第一应用程序的第一公钥进行运算,得到第二信息。
需要说明的是,系统密钥可以为手机出厂之前预置在手机中的密钥,也可以是手机在首次开机时,基于某一密钥生成算法得到的,对此不做限定。例如,手机可以响应于开机操作,根据设备标识,基于某一密钥生成算法,得到系统密钥。
当然,当第一应用程序访问第一服务的权限为禁止访问时,手机可以不再对第一服务进行完整性度量得到第四完整性度量值。即当第一服务为第一应用程序安装完成后禁止第一应用程序访问第一服务时,第二密钥库中不会存储第一应用程序的第二标识和第一公钥。
其中,第二密钥库可以是以列表的形式存储在手机的内部存储器和/或与外部存储器接口连接的外部存储器中。示例的,第二密钥库可以如表2所示。
表2
Figure BDA0002431378160000151
需要说明的是,第一密钥库和第二密钥库可以为同一密钥库,也可以为不同的密钥库,对此不作限定。
又示例的,以第一应用程序为例,手机还可以在用户对第一应用程序的权限进行变更时,对更新第二密钥库进行更新。例如。如图8所示,手机在用户设置第一应用程序访问第一服务的权限由禁止访问变更为允许访问的情况下,请求第一服务重新加载权限。手机再次对第一服务进行完整性度量,得到第一服务的第四完整性度量值。然后,手机对第一服务的第四完整性度量值和第一应用程序的第二标识进行运算、以及对第一服务的第四完整性度量值和第一应用程序的第一公钥进行运算,得到第二信息,并将第一服务的标识和第二信息对应更新存储到第二密钥库中。
这样,基于上述过程将第一服务的标识和第二信息对应存储到第二密钥库,手机在接收到第一应用程序的第二标识和使用第一私钥加密后的第一应用程序的访问请求后,就可以根据第一应用程序待访问的第一服务的标识,从第二密钥库中查找与第一服务的标识对应的至少一个第二信息。
步骤506,手机对第一服务进行完整性度量运算,得到第一服务的第三完整性度量值。然后,使用第三完整性度量值对与第一服务的标识对应的至少一个第二信息解析,得到至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥。
需要说明的是,第一服务的第三完整性度量值和第一服务的第四完整性度量值可能相同也可以不同,由于第三完整性度量值是手机在所述第一服务接收到所述第一应用程序的访问请求后,对第一服务执行完整性度量运算所得到的,而第四完整性度量值是手机在安装第一应用程序后、且第一应用程序访问第一服务的权限为允许访问的情况下,或者将第一应用程序访问第一服务的权限由禁止访问修改为允许访问时,对第一服务进行完整性度量计算得到的。因此,当手机上的第一服务在初始安装后到接收到第一应用程序的访问请求期间,如果第一服务被恶意篡改,则可能就会导致第一服务的第三完整性度量值和第四完整性度量不同,则后续使用第三完整性度量值对上述步骤505得到的多个第二信息执行解析运算,可能就解析不成功,从而获得不到第一应用程序的第一公钥,从而对第一服务接收到的第一应用程序的访问请求不能正确验证,就会拒绝第一应用程序访问第一服务。当然如果当手机上的第一服务在初始安装后到接收到第一应用程序的访问请求期间,如果第一服务没有恶意篡改,则第一服务的第三完整性度量值和第四完整性度量就是相同的,则后续使用第三完整性度量值对上述步骤505得到的多个第二信息执行解析运算,就可以解析成功,从而能够得到第一应用程序的第一公钥,并使用第一公钥对第一服务接收到的所述第一应用程序的访问请求进行正确验证,从而可以允许第一应用程序访问第一服务。
应理解,对手机在第一服务接收到第一应用程序的访问请求后,对第一服务进行完整性度量运算得到第三完整性度量值时所使用的算法、以及对第一服务执行运算所使用的信息,可以与上述介绍的对所述第一服务进行完整性度量运算得到第四完整性度量值时所使用的算法、以及对第一服务执行运算所使用的信息相同,这里不再赘述。
进一步说明,本申请实施例中,当第一服务接收到使用第一私钥加密后的第一应用程序的访问请求和第一应用程序的第二标识后,手机可以先对第一服务进行完整性度量,得到第三完整性度量值,再根据第一服务的标识,从第二密钥库中查找与第一服务的标识对应的第二信息。或者,当第一服务接收到使用第一私钥加密后的第一应用程序的访问请求和第一应用程序的第二标识后,手机可以同时执行对第一服务进行完整性度量得到第三完整性度量值,以及根据第一服务的标识,从第二密钥库中查找与第一服务的标识对应的第二信息的步骤。对此不作限定。
在另一些实施例中,当从第二密钥库中未查找至少一个与第一服务的标识对应的第二信息时,手机可以判定第一服务禁止第一应用程序访问,即手机禁止第一服务响应于访问请求,向第一应用程序返回访问请求所请求返回的数据。进一步的,手机可以通过第一服务向第一应用程序返回禁止访问指令,第一应用程序在接收到禁止访问指令后,可以进而向用户提示:第一服务禁止访问,是否开启第一服务的访问权限,以便于提高用户的知情权。该提示可以基于消息框的形式在显示屏界面展示,也可以基于声音播放的方式提示给用户,本申请这里不做限定。
又示例的,在手机根据第三完整性度量值,对与第一服务的标识对应的至少一个第二信息进行解析,未得到任何一个可以访问第一服务的应用程序的标识和应用程序的公钥时,即对与第一服务的标识对应的第二信息解析失败,也可以向用户提示第一服务被攻击或篡改。以便于提高用户的知情权。该提示可以基于消息框的形式在显示屏上展示,也可以基于声音播放的方式提示给用户,本申请这里不做限定。
需要说明的是,手机使用第三完整性度量值对每个第二信息执行解析的过程,可以与上述描述中使用第四完整性度量值对每一个允许访问第一服务的应用程序的标识和公钥进行加密运算的过程相逆,这里不再过多赘述。
还需要说明的是,步骤506可以在步骤505之后执行,也可以是当第一服务接收到第一应用程序的第二标识和使用第一私钥加密后的第一应用程序的访问请求后,同时执行步骤506和根据第一服务的标识,从第二密钥库中获取至少一个第二信息的步骤,还可以是,当第一服务接收到第一应用程序的第二标识和使用第一私钥加密后的第一应用程序的访问请求后,先执行步骤506,在执行根据第一服务的标识,从第二密钥库中获取至少一个第二信息的步骤,对此不作限定。
需要说明的是,在第一应用程序访问第一服务的权限由允许访问变更为禁止访问的情况下,手机请求第一服务重新加载权限,可以先从第二密钥库中查找与第一服务的标识对应的第二信息。当从第二密钥库中查找到与第一服务的标识对应的第二信息时,再对第一服务进行完整性度量得到第四完整性度量值。或者,手机同时执行查找与第一服务的标识对应的第二信息、以及对第一服务进行完整性度量的步骤,对此不作限定。
步骤507,手机根据第一服务接收到的第一应用程序的第二标识,从上述步骤506中解析得到的至少一个能够访问第一服务的应用程序的标识和公钥的信息对中,查找第一应用程序的第二标识对应的第一公钥。其中,第一公钥为能够访问第一服务的第一应用程序对应的公钥。
需要说明的是,步骤505~步骤507可以理解为:第一应用程序的合法性验证过程,其中,在步骤507中,手机根据第一应用程序的第二标识,从至少一个能够访问第一服务的应用程序的公钥中查找到第一应用程序的第一公钥时,判定第一应用程序是合法的。在至少一个能够访问第一服务的应用程序的公钥中不包括第一应用程序的第一公钥时,判定第一应用程序是不合法的,禁止第一应用程序继续访问第一服务。从而有助于降低第一应用程序被攻击或篡改后,继续访问第一服务的可能性,有助于提高手机中用户信息的安全性。
步骤508,手机使用第一应用程序的第一公钥对使用第一私钥加密后的第一应用程序的访问请求进行解密,得到第一应用程序的访问请求,则调用第一服务响应于第一应用程序的访问请求,向第一应用程序返回第一数据。第一数据为第一应用程序的访问请求所请求的数据。
需要说明的是,示例的,步骤501~步骤504可以是由处理器调用第一应用程序执行的,即步骤501~步骤504可以是在第一应用程序所在的进程上执行的,步骤505~步骤508是由处理器调用第一服务执行的,即步骤505~步骤508是由处理器在第一服务所在的进程上执行的。或者,步骤501~步骤508还可以是由处理器调用系统指令或者程序管理进程执行的,对此不作限定。
示例性的,手机可以控制第一服务不对第一数据加密,也可以对第一数据加密,然后将未加密或加密后的第一数据反馈给第一应用程序。
示例的,第一服务可以使用系统密钥对第一数据加密,并向第一应用程序发送使用系统密钥加密后的第一数据,从而有助于提高第一应用程序从第一服务获取第一数据的安全性。
又示例的,第一服务可以使用第一应用程序的第三标识生成第二密钥,并使用第二密钥对第一数据加密,然后向第一应用程序发送使用第二密钥加密后的第一数据,也有助于提高第一应用程序从第一服务获取第一数据的安全性。例如,第二密钥可以为对称密钥。在这种情况下,第一应用程序在获取到来自第一服务的使用第二密钥加密的第一数据后,可以先根据第一应用程序的第三标识生成第二密钥,然后使用生成的第二密钥对从第一服务获取到的第一数据解密,从而得到第一数据。
需要说明的是,第一服务使用第一应用程序的第三标识生成第二密钥所使用的算法、与第一应用程序根据第一应用程序的第三标识生成第二密钥所使用的算法是相同的。其中,第一应用程序的第三标识可以与上述描述中第一应用程序的第一标识相同,也可以与上述描述中第一应用程序的第二标识相同,还可以不同于上述第一标识和第二标识,是另外一个唯一用于标识第一应用程序的标识,对此不作限定。
此外,需要说明的是,第一数据可以是第一服务中已存储的行数据,也可以是响应于第一应用程序的访问请求,临时产生的数据。
在第一数据是响应于第一应用程序的访问请求产生的数据的情况下,第一服务还可以使用第一应用程序的第二密钥对第一数据加密,并存储。从而使得除第一应用程序以外的其它应用程序即使获取到存储的加密后的第一数据,但也无法对第一数据解密,从而实现不同应用程序之间的数据隔离。另外,通过将第一数据加密存储,还可以在第一应用程序后续再有访问第一数据的请求时,可以直接将加密存储的第一数据反馈给第一应用程序,从而避免上述复杂的交互流程,有助于避免手机处理资源的浪费。其中,第二密钥可以是根据第一应用程序的第三标识生成的。此外,不同应用程序的第三标识是不同的,因而不同应用程序的第三标识生成的第二密钥也是不同的,因而也有助于实现不同应用程序之间访问的数据相互隔离。
一个具体实施例:
以第一应用程序为微信为例,例如,第一应用程序的访问请求用于指示访问相机拍照,则在第一应用程序访问相机的权限为允许访问时,启动相机,使用摄像头拍照得到图片。该图片即为响应于第一应用程序的访问请求,产生的数据。
在这种情况下,相机可以将该图片存储到图库中,也可以不将图片存储到图库中。示例的,相机可以使用系统密钥对该图片加密,然后再将加密后的图片存储到图库中。又示例的,相机还可以基于微信的第三标识生成第二密钥,使用第二密钥对该图片加密,然后再将加密后的图片存储到图库中。当手机中的第二应用程序从图库中获取该图片时,需要使用第二应用程序的第三标识生成第二密钥,使用生成的第二密钥对该图片解密,如果使用第二应用程序的第三标识生成第二密钥不同于使用微信的第三标识生成的第二密钥,则该第二应用程序对该图片解密失败,无法获取到该图片,从而有助于实现不同应用程序之间访问的数据的隔离。其中,第二应用程序可以为微信,也可以除为微信之外的其他应用程序。
本申请实施例中,由于第一密钥库中第一信息是由第一应用程序的第一私钥与第一应用程序的第二完整性度量值运算得到的,当第一应用程序请求访问第一服务时,需要先进行完整性度量,得到第一应用程序的第一完整性度量值,并根据第一完整性度量值,对第一密钥库中存储的与第一应用程序的第一标识对应的第一信息进行解析,得到第一应用程序的第一私钥。在第一应用程序被攻击或篡改后,例如,第一应用程序的属性信息被篡改,会导致第一应用程序的第一完整性度量值与得到与第一应用程序的第一标识对应的第一信息时所使用的第二完整性度量值不同,因而无法根据第一完整性度量值得到第一应用程序的第一私钥,从而使得第一应用程序无法向第服务发送访问请求。因而,可以避免第一应用程序被攻击或篡改后,导致越权访问,造成用户信息泄露的问题,继而提高用户信息的安全性。
进一步地,本申请实施例中当第一服务接收到第一应用程序的访问请求时,需要先对第一服务进行完整性度量,得到第一服务的第三完整性度量值,然后根据第三完整性度量值对第二密钥库中与第一服务的标识对应的第二信息进行解析,从而得到至少一个能够访问第一服务的应用程序的标识和应用程序的公钥。然而,当第一服务被攻击或篡改后,会导致第三完整性度量值与得到第二密钥库中与第一服务的标识对应的第二信息时所使用的第四完整性度量值不同,从而使得手机根据第三完整性度量值对第二密钥库中与第一服务的标识对应的第二信息进行解析,无法得到能够访问第一服务的应用程序的标识和应用程序的公钥,从而使得第一服务无法对访问请求进行解密,因而第一应用程序无法实现对第一服务的访问,因此有助于避免第一服务被攻击后,使得第一应用程序继续访问第一服务,进一步可以较好提高第一服务的可靠性。
例如,如图9所示,当应用程序1请求访问服务1时,先对应用程序1进行完整性度量,得到第一完整性度量值,在应用程序1未被篡改的情况下,能够根据第一完整性度量值对第一密钥库中与应用程序1的标识对应的第一信息进行解析,得到私钥1。然后允许应用程序1向服务1发送访问请求,再调用应用程序1使用私钥1对应用程序1向服务1发送的访问请求加密,并向服务1发送使用私钥1加密的访问请求。当服务1接收到使用私钥1加密的访问请求后,对服务1进行完整性度量,得到第三完整性度量值,然后对第三完整性度量值对第二密钥库中与服务1的标识对应的至少一个第二信息进行解析,在服务1未被篡改的情况下,可以得到至少一个能够访问服务1的应用程序的标识和应用程序的公钥。当至少一个能够访问服务1的应用程序的标识中包括应用程序1的标识时,则验证应用程序1合法,当应用程序1合法时,使用应用程序1的公钥1对使用私钥1加密的访问请求解密,从而获取到应用程序1向服务1发送的访问请求,允许服务1响应于应用程序1的访问请求,向应用程序1返回访问请求所请求的数据,从而实现应用程序1对服务1的访问。
与应用程序1类似,应用程序2当请求访问服务1时,在应用程序2未被篡改的情况下,能够使用私钥2向服务1发送使用私钥2加密的访问请求,然而,在服务1接收到使用私钥2加密的访问请求后,在服务1未被篡改的情况下,服务1能够验证应用程序02是否合法,当应用程序2不合法时,则应用程序02无法访问服务1。应用程序3当需要访问服务1时,在应用程序3被篡改的情况下,应用程序3的完整性度量值发生变化,无法获取到私钥3,向服务1发送访问请求,从而导致应用程序03无法访问服务1。其中,私钥1和公钥1为应用程序1的非对称密钥对,私钥2为应用程序2的私钥,私钥3为应用程序3的私钥。
在本申请的另一些实施例中,如图8所示,在第一应用程序访问第一服务的权限由允许访问变更为禁止访问的情况下,手机请求第一服务重新加载权限。触发手机对第一服务进行完整性度量,得到第一服务的第四完整性度量值。手机根据第一服务的标识,从第二密钥库中查找与第一服务的标识对应的一个第二信息。当从第二密钥库中查找到与第一服务的标识对应的一个第二信息时,根据第一服务的第四完整性度量值,对查找到的该第二信息进行解析,从而得到一个允许访问第一服务的应用程序的标识和该应用程序的公钥。即手机对第一服务的第四完整性度量值和查找到的该第二信息进行运算,得到允许访问第一服务的一个应用程序的标识和该应用程序的公钥。手机判断解析出的该应用程序的标识中是否为第一应用程序的第二标识,当解析出的该应用程序的标识不为第一应用程序的第二标识时,手机继续从第二密钥库中查找与第一服务的标识对应的下一个第二信息,直至根据第一服务的第四完整性度量值,对查找到的目标第二信息进行解析得到的应用程序的标识为第一应用程序的第二标识为止,则手机从第二密钥库中删除该目标第二信息。可以理解的是,当手机对第二密钥库遍历一遍存储的各个第二信息仍未解析到携带有第一应用程序的第二标识的第二信息,则说明第一服务原来就不允许第一应用程序访问,可以不对第二密钥库进行更新。
在另一些实施例中,手机还可以从第二密钥库中查找到与第一服务的标识对应的所有第二信息后,执行下述步骤:
根据第一服务的第四完整性度量值,对第二密钥库中第一个与第一服务的标识对应的第二信息进行解析,得到应用程序1的标识和应用程序1的公钥,并判断该应用程序1的标识是否为第一应用程序的第二标识,当该应用程序1的标识不为第一应用程序的第二标识时,继续根据第一服务的第四完整性度量值,对第二密钥库中第二个与第一服务的标识对应的第二信息进行解析,得到应用程序2的标识和应用程序2的公钥,继续判断应用程序2的标识是否为第一应用程序的标识,当应用程序2的标识仍不为第一应用程序的标识时,继续根据第一服务的第四完整性度量值,对第二密钥库中第三个与第一服务的标识对应的第二信息进行解析,以此类推,直至根据第一服务的第四完整性度量值,对第二密钥库中第i个与第一服务的标识对应的第二信息进行解析,得到的应用程序i的标识为第一应用程序的第二标识为止,手机删除第二密钥库中第i个与第一服务的标识对应的第二信息。进一步的,当手机遍历完第二密钥库中所有与第一服务的标识对应的第二信息后,仍未找到第一应用程序的第二标识,则说明第一服务原来就不允许第一应用程序访问,可以不再对第二密钥库更新。
通过上述方式,使得手机在第一应用程序访问第一服务的权限由允许访问变更为禁止访问的情况下,可以结合对第一服务进行完整性度量得到第四完整度量值,删除第二密钥库中携带有的第一应用程序的第一公钥的第二信息,从而可以在后续实现第一服务拒绝第一应用程序的访问,保证用户信息的安全性。
下面以微信访问相机为例,对本申请实施例的应用程序访问服务的方法进行介绍。
示例的,手机当安装微信时,对微信进行完整性度量,得到完整性度量值1。以及生成微信的非对称密钥对,其中,非对称密钥对包括第一私钥和第一公钥。然后,手机对完整性度量值1和第一私钥进行运算,得到第一信息,再使用系统密钥对第一信息加密。然后手机将微信的标识、加密后的第一信息和第一公钥存储到第一密钥库中。手机当安装微信完成后,响应于用户的操作,设置微信访问相机的权限和微信访问位置服务的权限。例如,用户设置的微信访问相机的权限为允许访问,微信访问位置服务的权限为禁止访问。则手机响应于用户设置的微信的权限,确定允许微信访问相机,则对相机进行完整性度量,得到完整性度量值2。手机对完整性度量值2和微信的标识进行运算、以及对完整性度量值2和微信的第一公钥运算,得到第二信息。第二信息隐含了完整性度量值2、微信的标识和微信的第一公钥。然后手机使用系统密钥对与第二信息加密,然后将相机的标识、加密后的第二信息存储到第二密钥库中。
比如,手机响应于微信的操作,在显示屏上显示图10所示的用户界面1010时,用户点击拍摄按钮1001,则手机响应于用户点击拍摄按钮1001的操作,对微信进行完整性度量,得到完整性度量值3,根据微信的标识,从第一密钥库中获取与微信的标识对应的加密的第一信息,先使用系统密钥对从第一密钥库中获取与微信的标识对应的加密后的第一信息解密,得到解密后的第一信息。然后根据完整性度量值3对解密后的第一信息解析,得到微信的第一私钥。在微信未被篡改的情况下,完整性度量值1和完整性度量值3相同,根据完整性度量值3对解密后的第一信息解析,能够得到微信的第一私钥。在微信被篡改的情况下,完整性度量值1和完整性度量值3不同,根据完整性度量值3对解密后的第一信息解析,无法得到微信的第一私钥或得到错误的第一私钥。当得到微信的第一私钥后,使用第一私钥对微信向相机发送的访问请求加密,将微信的标识和使用第一私钥加密的访问请求发送给相机,当相机接收到微信的标识和使用第一私钥加密的访问请求后,触发手机对相机进行完整性度量,得到完整性度量值4,以及使用相机的标识,从第二密钥库中获取与相机的标识对应的至少一个加密的第二信息,然后使用系统密钥对加密的至少一个第二信息解密,得到至少一个解密后的第二信息,然后根据完整性度量值4,对每个解密后的第二信息进行解析,得到至少一个能够访问相机的应用程序的标识和应用程序的公钥。手机再根据微信的标识,判断至少一个能够访问相机的应用程序的标识中是否包括微信的标识,当至少一个能够访问相机的应用程序的标识中包括微信的标识时,则根据微信的标识,从至少一个能够访问相机的公钥中查找与微信的标识对应的第一公钥,并根据微信的第一公钥对加密的访问请求解密,若解密成功,则允许相机响应于访问请求,然后调用相机响应于访问请求,在显示屏上显示用户界面1020,使得用户可以根据需要进行拍照,向微信返回访问请求所请求的数据。
示例性的,当用户点击位置按钮1002时,由于微信访问位置服务的权限为禁止访问,因此第一密钥库中虽然存储了加密后的第一信息,但是手机无法从第二密钥库中查找到微信的标识,因此,手机将会禁止服务响应于微信针对位置服务的访问请求。例如,手机当禁止微信访问位置服务时,可以向用户弹出提示用户修改微信访问位置服务权限,或者弹出修改微信访问位置的权限的提示框,以便于用户可以快速修改微信访问位置的权限。
此外,需要说明的是,上述是以使用第一应用程序的第一私钥对访问请求加密为例介绍的。需要说明的是,本申请实施例还可以将使用第一应用程序的第一私钥对访问请求加密替换为使用第一应用程序的第一私钥对访问请求签名,其中加密和签名可以理解为两种不同运算过程,目的都是为了第一服务验证第一应用程序的合法性。相应的,在使用第一应用程序的第一私钥对访问请求签名的情况下,对于第一服务来说,在接收到的第一应用程序发来的访问请求后,则第一服务在得到第一应用程序的第一公钥后,使用第一应用程序的第一公钥对使用第一应用程序的第一私钥签名的访问请求验签或解签名,其它步骤可以参见上述介绍,在此不再赘述。
基于上述各个实施例,本申请实施例提供了一种应用程序的访问方法,应用于电子设备,具体如图11所示包括以下步骤。
步骤1101,接收指令,该指令用于指示第一应用程序请求访问的第一服务。其中,第一应用程序为电子设备上安装的应用程序,第一服务可以为电子设备上安装的应用程序,存储在电子设备上的共享文件等,可参见上述相关介绍。
示例的,该指令可以为用于第一应用程序访问第一服务的操作。例如,如图10所示,用户点击拍摄按钮1001。
步骤1102,响应于上述指令,对第一应用程序进行完整性度量,得到第一完整性度量值。
步骤1103,当第一完整性度量值与第二完整性度量值相同时,允许第一应用程序向第一服务发送访问请求;第二完整性度量值是在电子设备安装第一应用程序时对第一应用程序进行完整性度量得到的。
具体的,当第一完整性度量值与第二完整性度量值相同时,允许第一应用程序向第一服务发送访问请求,然后,调用第一应用程序向第一服务发送访问请求。示例的,电子设备可以通过比较第一完整性度量值和第二完整性度量值来判断是否相同,进一步的,第二完整性度量值可以使用系统密钥或根据第一应用程序的标识生成的密钥加密存储。以提高第二完整性度量值的安全性。
又示例的,电子设备还可以通过以下方式验证第一完整性度量值和第二完整性度量值是否相同:
根据第一应用程序的标识,从第一密钥库中获取与第一应用程序的标识对应的第一信息,并使用第一完整性度量值对第一信息进行解析,得到第三信息。其中,第一信息是由第二完整性度量值和第三信息运算得到的。从而有助于提高第二完整性度量值和第三信息的安全性。例如,第三信息可以为应用程序的私钥或系统密钥等。当使用第一完整性度量值对第一信息进行解析成功,得到第三信息时,第一完整性度量值与第二完整性度量值相同,若使用第一完整性度量值对第一信息进行解析失败,则第一完整性度量值与第二完整性度量值不同。
进一步的,在一些实施例中,第一信息是由第二完整性度量值和第一私钥运算得到的。第一私钥和第一公钥为第一应用程序安装时,生成的非对称密钥对。电子设备当使用第一完整性度量值对第一信息进行解析,得到第一私钥后,使用第一私钥对第一应用程序向第一服务发送的访问请求加密或签名,并调用第一应用程序向第一服务发送使用第一私钥加密或签名后的访问请求。在这种情况下,为了使得第一服务接收到来自第一应用程序发送的使用第一私钥加密或签名后的访问请求后,能够正常获取到访问请求,第一服务当第一应用程序安装后,在第一应用程序访问第一服务的权限为允许访问的情况下,将第一服务的标识、以及与第一服务的标识对应的第一应用程序的标识和第一公钥对应存储到第二密钥库中。进一步的,第二密钥库中存储的与第一服务的标识对应的第一应用程序的标识和第一公钥为第二信息,其中,第二信息是由与第一服务的标识对应的第一应用程序的标识第四完整性度量值进行运算、以及由第一公钥和第四完整性度量值进行运算得到的。第四完整性度量值可以参见后文相关描述。
步骤1103,允许第一服务响应于访问请求,向第一应用程序返回访问请求所请求的数据,从而使得电子设备能够调用第一服务响应于访问请求,向第一应用程序返回访问请求所请求的数据。
进一步的,在一些实施例,还可以在当第一服务接收到第一应用程序的访问请求后,先对第一服务进行完整性度量,得到第三完整性度量值;当第三完整性度量值与第四完整性度量值相同时,允许第一服务响应于访问请求,向第一应用程序返回访问请求所请求的数据。其中,第四完整性度量值是在电子设备安装第一应用程序后、且第一应用程序访问第一服务的权限为允许访问的情况下,对第一服务进行完整性度量得到的;或者,第四完整性度量值是将第一应用程序访问第一服务的权限由禁止访问修改为允许访问时对第一服务进行完整性度量得到的。从而便于实现对第一服务验证,在第一服务被篡改后继续返回数据,导致第一应用程序被攻击或篡改等,从而有助于进一步提高用户信息的安全性。
示例的,电子设备可以通过比较第三完整性度量值和第四完整性度量值来判断是否相同,进一步的,第四完整性度量值可以使用系统密钥或根据第一服务的标识生成的密钥加密存储。以提高第四完整性度量值的安全性。
又示例的,电子设备还可以通过以下方式验证第三完整性度量值和第四完整性度量值是否相同:
根据第一服务的标识,从第二密钥库中获取与第一服务的标识对应的第二信息,并使用第四完整性度量值对第二信息进行解析,得到第四信息。其中,第二信息是由第四完整性度量值和第四信息运算得到的。从而有助于提高第四完整性度量值和第四信息的安全性。例如,第四信息可以为允许访问第一服务的应用程序的公钥与应用程序的标识、或系统密钥、或应用程序的公钥等。当使用第三完整性度量值对第二信息进行解析成功,得到第四信息时,第三完整性度量值与第四完整性度量值相同,若使用第三完整性度量值对第二信息进行解析失败,则第三完整性度量值与第四完整性度量值不同。
进一步的,在一些实施例中,第二信息包括由第四完整性度量值和第一公钥运算得到的运算结果、以及由第四完整性度量值和第一应用程序的标识运算得到的运算结果。第一私钥和第一公钥为第一应用程序安装时,生成的非对称密钥对。当第一服务接收到来自第一应用程序发送的使用第一私钥加密或签名后的访问请求后,根据第一服务的标识,从第二密钥库中获取与第一服务的标识对应的至少一个第二信息,每个第二信息是当检测到应用程序的访问第一服务的权限设置为允许访问时,由第四完整性度量值、分别与一个能够访问第一服务的第一应用程序的标识和应用程序的公钥运算得到,并存储到第二密钥库的。并根据第三完整性度量值对至少一个第二信息解析,得到至少一个能够访问第一服务的第一应用程序的标识和应用程序的公钥。然后,根据第一应用程序的标识,从至少一个能够访问第一服务的第一应用程序的标识和应用程序的公钥中获取第一公钥,其中第一公钥为与第一应用程序的标识对应的公钥,使用第一公钥对使用第一私钥加密或签名后的访问请求解密或解签名,得到访问请求。则调用第一服务响应于访问请求,向第一应用程序返回访问请求所请求的数据。
在一些实施例中,当第一完整性度量值与第二完整性度量值不同时,禁止第一应用程序向第一服务发送访问请求。例如,使用第一度量值对第一信息解析失败,未得到第二信息时,第一完整性度量值与第二完整性度量值不同。
可以理解的是,图11所示的方法中的涉及的相关具体实现方式,可以参见图5中的相关介绍,在此不再赘述。
以上各实施例可以单独使用,也可以相互结合使用,以达到不同的技术效果。
上述本申请提供的实施例中,从手机作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,手机可以包括硬件结构和/或软件模块,以软件模块或者硬件结构结合软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
示例的,如图12所示,本申请实施例公开了一种电子设备1200,该电子设备1200可以包括:处理器1201和存储器1202。其中,存储器1202存储有程序指令。处理器1201,用于调用存储器1202中的程序指令,使得电子设备本申请实施例图5或图11所示的应用程序的访问方法。
上述各个实施例中涉及处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的指令,结合其硬件完成上述方法的步骤。
具体的,上述电子设备1100的具体实现方式可以参见方法部分的相关介绍,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内,因此本申请的保护范围应以权利要求的保护范围为准。

Claims (19)

1.一种应用程序的访问方法,其特征在于,应用于电子设备,所述方法包括:
接收指令,所述指令用于指示所述电子设备中安装的第一应用程序请求访问所述电子设备中安装的第一服务;
响应所述指令,对所述第一应用程序进行完整性度量,得到第一完整性度量值;
当所述第一完整性度量值与第二完整性度量值相同时,允许所述第一应用程序向所述第一服务发送访问请求;所述第二完整性度量值是在所述电子设备安装所述第一应用程序时对所述第一应用程序进行完整性度量得到的;
允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一完整性度量值与所述第二完整性度量值不同时,禁止所述第一应用程序向所述第一服务发送所述访问请求。
3.如权利要求1或2所述的方法,其特征在于,所述允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据,包括:
对所述第一服务进行完整性度量,得到第三完整性度量值;
当所述第三完整性度量值与第四完整性度量值相同时,允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据;
其中,所述第四完整性度量值是在所述电子设备安装所述第一应用程序后、且所述第一应用程序访问所述第一服务的权限为允许访问的情况下,对所述第一服务进行完整性度量得到的;或者,所述第四完整性度量值是将所述第一应用程序访问所述第一服务的权限由禁止访问修改为允许访问时对所述第一服务进行完整性度量得到的。
4.如权利要求1所述的方法,其特征在于,允许所述第一应用程序向所述第一服务发送访问请求,包括:
基于所述第一完整性度量值,对与所述第一应用程序的标识对应的第一信息进行解析,得到第一私钥;所述第一信息由所述第二完整性度量值与第一私钥运算得到;所述第一私钥是在所述电子设备安装所述第一应用程序时生成的;
控制所述第一应用程序使用所述第一私钥对向所述第一服务发送的访问请求加密或签名;
允许所述第一应用程序向所述第一服务发送所述第一应用程序的标识和使用所述第一私钥加密或签名的访问请求;
允许所述第一服务响应于所述访问请求,向所述第一应用程序返回请求访问的数据,包括:
控制所述第一服务获取与所述第一服务的标识对应的至少一个第二信息,每个第二信息包括一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥;
从所述至少一个第二信息中获取与所述第一应用程序的标识对应的第一公钥;所述第一公钥是在所述电子设备安装所述第一应用程序时生成的,所述第一公钥与所述第一私钥互为非对称密钥对;
在所述第一服务使用所述第一公钥对所述第一应用程序发送的所述访问请求解密或解签名成功时,允许所述第一服务响应于解密或解签名后的所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
基于所述第一完整性度量值,对与所述第一应用程序的标识对应的第一信息解析失败时,禁止所述第一应用程序向所述第一服务发送所述访问请求。
6.如权利要求4或5所述的方法,其特征在于,每个第二信息是由一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥、与第四完整性度量值运算得到的;
所述第四完整性度量值是在所述电子设备安装所述第一应用程序后、且所述第一应用程序访问所述第一服务的权限为允许访问的情况下,对所述第一服务进行完整性度量得到的;或者,所述第四完整性度量值是将所述第一应用程序访问所述第一服务的权限由禁止访问修改为允许访问时对所述第一服务进行完整性度量得到的;
从所述至少一个第二信息中获取与所述第一应用程序的标识对应的第一公钥,包括:
根据第三完整性度量值,对与所述第一服务的标识对应的至少一个第二信息解析,得到至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥;所述第三完整性度量值是当所述第一服务在接收到所述第一应用程序的所述访问请求后,对所述第一服务进行完整性度量得到的;
并根据所述第一应用程序的标识,从所述至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥中,获取与所述第一应用程序的标识对应的公钥作为所述第一公钥。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述第三完整性度量值,对与所述第一服务的标识对应的至少一个第二信息解析失败时,禁止所述第一服务向所述第一应用程序返回所述访问请求所请求的数据;和/或,
在所述至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥中不包括所述第一应用程序的标识时,禁止所述第一服务向所述第一应用程序返回所述访问请求所请求的数据。
8.如权利要求1至7任一所述的方法,其特征在于,允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据,包括:
控制所述第一服务响应于所述访问请求,对所述访问请求所请求的数据使用第二密钥加密;所述第二密钥为系统密钥,或者为根据所述第一应用程序的标识生成的密钥;
控制所述第一服务向所述第一应用程序返回使用所述第二密钥加密后的所述数据。
9.如权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
保存所述第一服务向所述第一应用程序返回的数据。
10.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器中存储有程序指令;
所述处理器,用于调用所述存储器中存储的所述程序指令,使得所述电子设备执行以下步骤:
接收指令,所述指令用于指示所述电子设备中安装的第一应用程序请求访问所述电子设备中安装的第一服务;
响应所述指令,对所述第一应用程序进行完整性度量,得到第一完整性度量值;
当所述第一完整性度量值与第二完整性度量值相同时,允许所述第一应用程序向所述第一服务发送访问请求;所述第二完整性度量值是在所述电子设备安装所述第一应用程序时对所述第一应用程序进行完整性度量得到的;
允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据。
11.如权利要求10所述的电子设备,其特征在于,所述处理器,用于调用所述存储器中存储的所述程序指令,使得所述电子设备还执行以下步骤:
当所述第一完整性度量值与所述第二完整性度量值不同时,禁止所述第一应用程序向所述第一服务发送所述访问请求。
12.如权利要求10或11所述的电子设备,其特征在于,所述处理器允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据,包括:
对所述第一服务进行完整性度量,得到第三完整性度量值;
当所述第三完整性度量值与第四完整性度量值相同时,允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据;
其中,所述第四完整性度量值是在所述电子设备安装所述第一应用程序后、且所述第一应用程序访问所述第一服务的权限为允许访问的情况下,对所述第一服务进行完整性度量得到的;或者,所述第四完整性度量值是将所述第一应用程序访问所述第一服务的权限由禁止访问修改为允许访问时对所述第一服务进行完整性度量得到的。
13.如权利要求10所述的电子设备,其特征在于,所述处理器允许所述第一应用程序向所述第一服务发送访问请求,包括:
基于所述第一完整性度量值,对与所述第一应用程序的标识对应的第一信息进行解析,得到第一私钥;所述第一信息由所述第二完整性度量值与第一私钥运算得到;所述第一私钥是在所述电子设备安装所述第一应用程序时生成的;
控制所述第一应用程序使用所述第一私钥对向所述第一服务发送的访问请求加密或签名;
允许所述第一应用程序向所述第一服务发送所述第一应用程序的标识和使用所述第一私钥加密或签名的访问请求;
所述处理器允许所述第一服务响应于所述访问请求,向所述第一应用程序返回请求访问的数据,包括:
控制所述第一服务获取与所述第一服务的标识对应的至少一个第二信息,每个第二信息包括一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥;
从所述至少一个第二信息中获取与所述第一应用程序的标识对应的第一公钥;所述第一公钥是在所述电子设备安装所述第一应用程序时生成的,所述第一公钥与所述第一私钥互为非对称密钥对;
在所述第一服务使用所述第一公钥对所述第一应用程序发送的所述访问请求解密或解签名成功时,允许所述第一服务响应于解密或解签名后的所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据。
14.如权利要求13所述的电子设备,其特征在于,所述处理器调用所述存储器中存储的所述程序指令,使得所述电子设备还执行以下步骤:
基于所述第一完整性度量值,对与所述第一应用程序的标识对应的第一信息解析失败时,禁止所述第一应用程序向所述第一服务发送所述访问请求。
15.如权利要求13或14所述的电子设备,其特征在于,每个第二信息是由一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥、与第四完整性度量值运算得到的;
所述第四完整性度量值是在所述电子设备安装所述第一应用程序后、且所述第一应用程序访问所述第一服务的权限为允许访问的情况下,对所述第一服务进行完整性度量得到的;或者,所述第四完整性度量值是将所述第一应用程序访问所述第一服务的权限由禁止访问修改为允许访问时对所述第一服务进行完整性度量得到的;
所述处理器从所述至少一个第二信息中获取与所述第一应用程序的标识对应的第一公钥,包括:
根据第三完整性度量值,对与所述第一服务的标识对应的至少一个第二信息解析,得到至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥;所述第三完整性度量值是当所述第一服务在接收到所述第一应用程序的所述访问请求后,对所述第一服务进行完整性度量得到的;
并根据所述第一应用程序的标识,从所述至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥中,获取与所述第一应用程序的标识对应的公钥作为所述第一公钥。
16.如权利要求15所述的电子设备,其特征在于,所述处理器调用所述存储器中存储的所述程序指令,使得所述电子设备还执行以下步骤:
根据所述第三完整性度量值,对与所述第一服务的标识对应的至少一个第二信息解析失败时,禁止所述第一服务向所述第一应用程序返回所述访问请求所请求的数据;和/或,
在所述至少一个能够访问所述第一服务的应用程序的标识和与所述应用程序的标识对应的公钥中不包括所述第一应用程序的标识时,禁止所述第一服务向所述第一应用程序返回所述访问请求所请求的数据。
17.如权利要求10至16任一所述的电子设备,其特征在于,所述处理器允许所述第一服务响应于所述访问请求,向所述第一应用程序返回所述访问请求所请求的数据,包括:
控制所述第一服务响应于所述访问请求,对所述访问请求所请求的数据使用第二密钥加密;所述第二密钥为系统密钥,或者为根据所述第一应用程序的标识生成的密钥;
控制所述第一服务向所述第一应用程序返回使用所述第二密钥加密后的所述数据。
18.如权利要求10至17任一所述的电子设备,其特征在于,所述处理器调用所述存储器中存储的所述程序指令,使得所述电子设备还执行以下步骤:
保存所述第一服务向所述第一应用程序返回的数据。
19.一种计算机可读存储介质,其特征在于,当所述程序指令在电子设备上运行时,使得所述电子设备执行如权利要求1至9任一所述的方法。
CN202010237163.7A 2020-03-30 2020-03-30 一种应用程序的访问方法及电子设备 Pending CN113468606A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010237163.7A CN113468606A (zh) 2020-03-30 2020-03-30 一种应用程序的访问方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010237163.7A CN113468606A (zh) 2020-03-30 2020-03-30 一种应用程序的访问方法及电子设备

Publications (1)

Publication Number Publication Date
CN113468606A true CN113468606A (zh) 2021-10-01

Family

ID=77865024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010237163.7A Pending CN113468606A (zh) 2020-03-30 2020-03-30 一种应用程序的访问方法及电子设备

Country Status (1)

Country Link
CN (1) CN113468606A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114692093A (zh) * 2022-05-27 2022-07-01 荣耀终端有限公司 一种应用程序安装方法及电子设备
CN115859228A (zh) * 2022-12-01 2023-03-28 湖南于一科技有限公司 防止应用程序中信息泄露的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101426076A (zh) * 2003-09-17 2009-05-06 松下电器产业株式会社 应用执行设备、应用执行方法、集成电路、和计算机可读程序
CN104461491A (zh) * 2013-09-24 2015-03-25 阿里巴巴集团控股有限公司 一种Hybrid组件的运行方法和系统
CN108932405A (zh) * 2018-07-11 2018-12-04 深圳市思迪信息技术股份有限公司 移动平台本地资源防篡改方法及装置
CN110659474A (zh) * 2019-10-10 2020-01-07 Oppo广东移动通信有限公司 应用间通信方法、装置、终端及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101426076A (zh) * 2003-09-17 2009-05-06 松下电器产业株式会社 应用执行设备、应用执行方法、集成电路、和计算机可读程序
CN104461491A (zh) * 2013-09-24 2015-03-25 阿里巴巴集团控股有限公司 一种Hybrid组件的运行方法和系统
CN108932405A (zh) * 2018-07-11 2018-12-04 深圳市思迪信息技术股份有限公司 移动平台本地资源防篡改方法及装置
CN110659474A (zh) * 2019-10-10 2020-01-07 Oppo广东移动通信有限公司 应用间通信方法、装置、终端及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114692093A (zh) * 2022-05-27 2022-07-01 荣耀终端有限公司 一种应用程序安装方法及电子设备
CN114692093B (zh) * 2022-05-27 2022-10-25 荣耀终端有限公司 一种应用程序安装方法及电子设备
CN115859228A (zh) * 2022-12-01 2023-03-28 湖南于一科技有限公司 防止应用程序中信息泄露的方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
WO2020192447A1 (zh) 一种文件访问权限认证方法及电子设备
EP3772700B1 (en) Method and device for encrypting model of neural network, and storage medium
CN113032766B (zh) 应用权限管理的方法和装置
US20220335107A1 (en) Method for Processing Application Program and Related Product
CN116155586A (zh) 一种账号数据共享方法及电子设备
CN114885328A (zh) 车机连接方法及装置
CN113468606A (zh) 一种应用程序的访问方法及电子设备
CN112262548B (zh) 一种文件处理方法及终端设备
CN114915618B (zh) 升级包下载方法及装置
CN110602689B (zh) 一种设备安全操作的方法和装置
CN114661501A (zh) 一种开机异常的修复方法及装置
CN114692094A (zh) 一种应用程序权限管理方法及电子设备
CN111566632B (zh) 一种操作控制方法及电子设备
US20240064519A1 (en) Method and apparatus for verifying personal identification number pin code
CN112966297B (zh) 数据保护方法、系统、介质及电子设备
CN115146253A (zh) 一种移动App登录方法、移动设备及系统
CN114692119A (zh) 校验应用的方法和电子设备
CN113850633B (zh) 信息推送方法和装置
WO2020133477A1 (zh) 数据显示方法
CN115017473B (zh) 授权方法及电子设备
WO2024066837A1 (zh) 一种来电提示方法及电子设备
CN116049812B (zh) 访问硬件资源的方法和电子设备
CN116702100B (zh) 权限管理方法和电子设备
CN116049867B (zh) 反诈方法、图形界面和相关装置
CN116933219A (zh) 应用程序权限管理方法、系统及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination