CN113282951B - 一种应用程序的安全校验方法、装置及设备 - Google Patents

一种应用程序的安全校验方法、装置及设备 Download PDF

Info

Publication number
CN113282951B
CN113282951B CN202110271432.6A CN202110271432A CN113282951B CN 113282951 B CN113282951 B CN 113282951B CN 202110271432 A CN202110271432 A CN 202110271432A CN 113282951 B CN113282951 B CN 113282951B
Authority
CN
China
Prior art keywords
application program
target
security
encrypted data
data
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.)
Active
Application number
CN202110271432.6A
Other languages
English (en)
Other versions
CN113282951A (zh
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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110271432.6A priority Critical patent/CN113282951B/zh
Publication of CN113282951A publication Critical patent/CN113282951A/zh
Application granted granted Critical
Publication of CN113282951B publication Critical patent/CN113282951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种应用程序的安全校验方法、装置及设备,先获取由目标应用程序发送的加密数据,再从安全储存空间中获取目标私钥,在可信执行环境中利用目标私钥对加密数据进行解密。若对加密数据解密成功,并且安全储存空间中,具有与对加密数据解密后得到的目标数据一致的通过安全认证的应用程序的预设校验数据,则确定目标应用程序的安全校验通过。若无法利用目标私钥对加密数据进行解密,或者安全储存空间中,不具有与对加密数据解密后得到的目标数据一致的通过安全认证的应用程序的预设校验数据,则安全校验不通过。通过在可信执行环境中进行安全校验,可以防止安全校验过程被破解,提高安全校验的安全性和准确性,确保终端的使用安全。

Description

一种应用程序的安全校验方法、装置及设备
技术领域
本申请涉及安全领域,具体涉及一种应用程序的安全校验方法、装置及设备。
背景技术
终端的操作***会向应用程序提供接口,以便应用程序调用接口实现对应的操作***提供的功能。为了确保终端的安全,调用接口的应用程序需要具有调用该接口对应的权限。操作***在获取到应用程序的调用接口的请求后,对应用程序进行权限校验,在确定应用程序具有对应的权限后,允许应用程序调用该接口。
然而,黑客可以破解调用接口所需要具有的权限,使得应用程序获取调用关键的接口的权限,从而通过应用程序调用关键的***接口,获取用户数据,导致用户隐私泄露,影响终端的安全。因此,如何保证终端的使用安全成为亟待解决的问题。
发明内容
有鉴于此,本申请实施例提供一种应用程序的安全校验方法、装置及设备,能够对应用程序进行安全校验,确保移动终端的使用安全。
为解决上述问题,本申请实施例提供的技术方案如下:
第一方面,本申请提供一种应用程序的安全校验方法,所述方法包括:
获取由目标应用程序发送的加密数据;
从安全储存空间中获取目标私钥,在可信执行环境中,利用所述目标私钥对所述加密数据进行解密;
若所述安全储存空间中,具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验通过;
若解密不成功,或者所述安全储存空间中不具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验不通过;
其中,所述安全储存空间中具有通过安全认证的应用程序对应的预设校验数据。
在一种可能的实现方式中,所述方法还包括:
获取目标应用程序发送的公钥获取请求,从所述安全储存空间或者数据储存空间中获取目标公钥;所述目标公钥与所述目标私钥匹配;
将所述目标公钥发送至所述目标应用程序,以便所述目标应用程序利用所述目标公钥生成加密数据。
在一种可能的实现方式中,所述方法还包括:
获取应用程序发送的安全认证请求;
根据所述安全认证请求,判断所述应用程序是否为能够通过安全认证的应用程序;
若是,则获取所述应用程序的预设校验数据,并将所述应用程序的预设校验数据储存至安全储存空间中。
在一种可能的实现方式中,当所述安全储存空间中储存多个私钥时,所述加密数据中包括目标密钥标识,所述从安全储存空间中获取目标私钥,包括:
根据所述目标密钥标识,从安全储存空间中获取具有所述目标密钥标识的私钥作为目标私钥。
在一种可能的实现方式中,若在预设解密时长内不能完成利用所述目标私钥对所述加密数据进行解密,所述方法还包括:
确定所述目标应用程序的安全校验不通过;
或者,
向所述目标应用程序发送校验异常信息,以便所述目标应用程序根据所述校验异常信息重新发送加密数据;
或者,
在经过预设执行时长后,重新利用所述目标私钥对所述加密数据进行解密。
在一种可能的实现方式中,所述获取由目标应用程序发送的加密数据,包括:
获取目标应用程序在请求调用功能拓展接口后发送的加密数据。
在一种可能的实现方式中,所述方法还包括:
若确定所述目标应用程序的安全校验通过,允许所述目标应用程序调用所述功能拓展接口;
若确定所述目标应用程序的安全校验不通过,禁止所述目标应用程序调用所述功能拓展接口。
第二方面,本申请提供一种应用程序的安全校验装置,所述装置包括:
第一获取单元,用于获取由目标应用程序发送的加密数据;
第二获取单元,用于从安全储存空间中获取目标私钥,在可信执行环境中,利用所述目标私钥对所述加密数据进行解密;
第一确定单元,用于若所述安全储存空间中,具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验通过;
第二确定单元,用于若解密不成功,或者所述安全储存空间中不具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验不通过;
其中,所述安全储存空间中具有通过安全认证的应用程序对应的预设校验数据。
在一种可能的实现方式中,所述装置还包括:
第三获取单元,用于获取目标应用程序发送的公钥获取请求,从所述安全储存空间或者数据储存空间中获取目标公钥;所述目标公钥与所述目标私钥匹配;
第一发送单元,用于将所述目标公钥发送至所述目标应用程序,以便所述目标应用程序利用所述目标公钥生成加密数据。
在一种可能的实现方式中,所述装置还包括:
第四获取单元,用于获取应用程序发送的安全认证请求;
判断单元,用于根据所述安全认证请求,判断所述应用程序是否为能够通过安全认证的应用程序;
第五获取单元,用于若是,则获取所述应用程序的预设校验数据,并将所述应用程序的预设校验数据储存至安全储存空间中。
在一种可能的实现方式中,当所述安全储存空间中储存多个私钥时,所述加密数据中包括目标密钥标识,所述第二获取单元,具体用于根据所述目标密钥标识,从安全储存空间中获取具有所述目标密钥标识的私钥作为目标私钥。
在一种可能的实现方式中,若在预设解密时长内不能完成利用所述目标私钥对所述加密数据进行解密,所述装置还包括:
第三确定单元,用于确定所述目标应用程序的安全校验不通过;
或者,
第二发送单元,用于向所述目标应用程序发送校验异常信息,以便所述目标应用程序根据所述校验异常信息重新发送加密数据;
或者,
解密单元,用于在经过预设执行时长后,重新利用所述目标私钥对所述加密数据进行解密。
在一种可能的实现方式中,所述第一获取单元,具体用于获取目标应用程序在请求调用功能拓展接口后发送的加密数据。
在一种可能的实现方式中,所述装置还包括:
允许调用单元,用于若确定所述目标应用程序的安全校验通过,允许所述目标应用程序调用所述功能拓展接口;
禁止调用单元,用于若确定所述目标应用程序的安全校验不通过,禁止所述目标应用程序调用所述功能拓展接口。
第三方面,本申请提供一种应用程序的安全校验设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现所述的应用程序的安全校验方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行所述的应用程序的安全校验方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例提供的应用程序的安全校验方法、装置及设备,先获取由目标应用程序发送的用于进行目标应用程序安全校验的加密数据,再从安全储存空间中获取目标私钥,在可信执行环境中利用目标私钥对加密数据进行解密。可信执行环境的安全储存空间可以安全的保存目标私钥,防止目标私钥被恶意获取。基于可信执行环境提供的安全执行环境,可以确保安全校验过程的安全性,不会被破解。若对加密数据解密成功,并且安全储存空间中,具有与对加密数据解密后得到的目标数据一致的,通过安全认证的应用程序的预设校验数据,则证明该目标应用程序是预先通过安全认证的应用程序,确定目标应用程序的安全校验通过。若无法利用目标私钥对加密数据进行解密,或者安全储存空间中不具有与对加密数据解密后得到的目标数据一致的,通过安全认证的应用程序的预设校验数据,则说明该目标应用程序生成加密数据时并未使用与目标私钥匹配的目标公钥,或者该目标应用程序的预设校验数据不正确,该目标应用程序并非是通过安全认证的应用程序,存在安全问题,安全校验不通过。通过在可信执行环境中进行安全校验,可以防止安全校验过程被破解,提高安全校验的安全性和准确性。根据解密的结果确定目标应用程序是否是预先通过安全认证的应用程序,可以防止存在安全问题的应用程序获取用户数据,从而避免用户隐私泄露,确保终端的使用安全。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的应用程序的安全校验的场景示意图;
图2为本申请实施例提供的一种应用程序的安全校验方法的流程图;
图3为本申请实施例提供的另一种应用程序的安全校验方法的流程图;
图4为本申请实施例提供的一种应用程序的安全校验装置的结构示意图;
图5为本申请实施例所提供的一种电子设备结构示意图。
具体实施方式
为了便于理解和解释本申请实施例提供的技术方案,下面将先对本申请的背景技术进行说明。
发明人在对传统终端中的应用程序的权限校验方法进行研究后发现,传统的终端的***向应用程序提供部分接口,并且向应用程序赋予对应的调用权限,以便应用程序调用接口实现对应的功能。但是,为了保护用户的数据安全,部分应用程序不具有关键接口的调用权限。在应用程序调用接口时,***对应用程序的调用权限进行校验,在确定应用程序具有接口对应的调用权限时,允许应用程序调用该接口;若应用程序不具有调用该接口的调用权限时,则不允许应用程序继续调用该接口。但是,传统的权限校验方法容易被破解,使得原本不具有调用权限的应用程序获取调用关键接口的调用权限,进而可以调用关键的接口,获取安全级别较高的用户数据,造成用户数据的泄露,影响用户隐私安全。比如,对于安装有安卓***的移动终端而言,黑客可以获取移动终端的安卓***的超级管理员用户账户,进而得到安卓***的最高权限,再通过反编译获取接口名称以及调用该接口的权限名称,使得应用程序具有调用关键接口的权限。如此可以通过应用程序调用关键接口,获取用户数据,造成用户数据的泄露。
基于此,本申请实施例提供了一种应用程序的安全校验方法、装置及设备,先获取由目标应用程序发送的用于进行目标应用程序安全校验的加密数据,再从安全储存空间中获取目标私钥,在可信执行环境中利用目标私钥对加密数据进行解密。可信执行环境的安全储存空间可以安全的保存目标私钥,防止目标私钥被恶意获取。基于可信执行环境提供的安全执行环境,可以确保安全校验过程的安全性,不会被破解。若对加密数据解密成功,并且安全储存空间中具有与对加密数据解密后得到的目标数据一致的,通过安全认证的应用程序的预设校验数据,则证明该目标应用程序是预先通过安全认证的应用程序,确定目标应用程序的安全校验通过。若无法利用目标私钥对加密数据进行解密,或者安全储存空间中不具有与对加密数据解密后得到的目标数据一致的,通过安全认证的应用程序的预设校验数据,则说明该目标应用程序生成加密数据时并未使用与目标私钥匹配的目标公钥,或者该目标应用程序的预设校验数据不正确,该目标应用程序并非是通过安全认证的应用程序,存在安全问题,安全校验不通过。通过在可信执行环境中进行安全校验,可以防止安全校验过程被破解,提高安全校验的安全性和准确性。根据解密的结果确定目标应用程序是否是预先通过安全认证的应用程序,可以防止存在安全问题的应用程序获取用户数据,可以避免用户隐私泄露,确保终端的使用安全。
为了便于理解本申请实施例提供的应用程序的安全校验方法,下面结合图1所示的场景示例进行说明。如图1所示,该图为本申请实施例提供的应用程序的安全校验的场景示意图。
目标应用程序101在请求调用接口时,生成加密数据,并将加密数据发送给终端的运行在可信执行环境中的可信应用102。可信应用102从安全储存空间中获取目标私钥,并在可信执行环境下利用目标私钥对加密数据进行解密。如果解密成功,并且在安全储存空间中,具有与对加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则目标应用程序101为预先通过安全认证的应用程序。目标应用程序101可以继续执行框架层的流程,实现接口调用。若不能正常解密,或者安全储存空间中,不具有与对加密数据解密后得到的目标数据一致的所述目标应用程序101的预设校验数据,则目标应用程序101不是预先通过安全认证的应用程序,不能执行后续的接口调用。
本领域技术人员可以理解,图1所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。
为了便于理解本申请,下面结合附图对本申请实施例提供的一种应用程序的安全校验方法进行说明。
首先需要说明的是,本申请实施例提供的应用程序的安全校验方法可以用于安装有应用程序的终端,该终端包括但不限于:现有的、正在研发的或将来研发的智能可穿戴设备、智能手机、平板电脑、计算机等。
参见图2所示,该图为本申请实施例提供的一种应用程序的安全校验方法的流程图,该方法包括S201-S204:
S201:获取由目标应用程序发送的加密数据。
目标应用程序是指为完成某项或多项特定工作的计算机程序。目标应用程序具体可以是终端的操作***的***应用程序,也可以为除终端的***应用程序以外的第三方应用程序。第三方应用程序具体是指操作***生产商以外的应用***生产商提供的应用程序。
在当目标应用程序需要进行安全校验时,目标应用程序向终端的操作***发送用于进行安全验证的加密数据。其中,加密数据可以是目标应用程序利用加密公钥对目标数据加密生成的。加密公钥是目标应用程序预先获取的用于进行加密数据生成的密钥。目标数据是被加密生成加密数据的数据。在目标应用程序具有对应的预设校验数据时,目标数据为与目标应用程序对应的预设校验数据。预设校验数据可以是与目标应用程序对应的固定数字;也可以是目标应用程序生成的随机数字,通过对随机数字进行加密生成加密数据,可以提高加密效率。
目标应用程序的加密数据可以是目标应用程序的客户端所对应的服务器生成的。服务器可以在加密机中生成加密数据,并将生成的加密数据发送至目标应用程序的客户端,以便目标应用程序的客户端将加密数据发送至终端的操作***。
对应的,终端的操作***获取目标应用程序的加密数据,并根据加密数据确定目标应用程序的安全校验的校验结果。
需要说明的是,本申请实施例不限定目标应用程序进行安全验证的触发条件,可以是目标应用程序请求进行涉及到终端安全的操作。比如,可以为目标应用程序请求调用关键的***接口,或者请求访问终端中的数据库等。
在一种可能的实现方式,本申请实施例提供一种获取由目标应用程序发送的加密数据的具体实施方式,请参见下文。
S202:从安全储存空间中获取目标私钥,在可信执行环境中,利用所述目标私钥对所述加密数据进行解密。
目标私钥是用于对加密数据进行解密的密钥。目标私钥可以预先通过密钥生成工具生成,并储存在安全储存空间中。当需要利用目标私钥进行解密时,从安全储存空间中获取目标私钥,进行对加密数据的解密。
其中,安全储存空间是指终端提供的安全储存的空间,安全储存空间可以储存具有防止非法篡改需求的数据。具体的,安全储存空间可以为RPMB(Replay ProtectedMemory Block,重放保护内存块)。
通过将目标私钥储存至安全储存空间中,确保目标私钥不被篡改以及非法获取,可以防止出现由于目标私钥被非法获取或者篡改,导致的安全校验失效的问题。
需要说明的是,当目标私钥与生成加密数据时利用的公钥相匹配时,才可以实现对加密数据的解密。在一种可能的实现方式中,若预先仅生成一个私钥进行安全验证,在对加密数据进行解密时,将该私钥作为目标私钥,进行本次对加密数据的解密。在另一种可能的实现方式中,预先可以生成多个私钥进行安全验证,对应的安全储存空间中可能储存有多个用于安全校验的私钥。在进行加密数据的解密时,需要从多个私钥中确定用于与加密数据对应的目标私钥。对应的,本申请实施例提供一种从安全储存空间中获取目标私钥的具体实施方式,请参见下文。
此外,为了确保对加密数据进行解密的操作过程的安全,需要在可信执行环境中利用目标私钥对加密数据进行解密。
终端的操作***中具有TEE(Trusted Execution Environment,可信执行环境)。TEE是终端提供的,与富执行环境相隔离的安全的执行环境,可以确保储存的资源的安全性,以及可信应用的操作安全。通过在TEE中利用目标私钥对加密数据进行解密,可以确保解密过程的操作安全,防止目标私钥在解密的过程中被恶意获取,确保解密的得到的目标数据的安全。具体的,终端可以通过调用运行在TEE环境中的可信应用,实现利用目标私钥对加密数据进行解密。
在一种可能的实现方式中,可以采用预先确定的解密算法,利用目标私钥对加密数据进行解密。本申请实施例提供一种在所述可信执行环境中,利用所述目标私钥对所述加密数据进行解密的具体实施方式,请参见下文。
S203:若所述安全储存空间中,具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验通过。
安全储存空间中还储存有通过安全认证的应用程序的预设校验数据。预设校验数据是与通过安全认证的应用程序对应的数据。终端可以利用预设校验数据确定进行安全校验的目标应用程序,是否是通过安全认证的应用程序。预设校验数据具体可以是生成的随机数据,也可以是固定数据。
安全储存空间中的通过安全认证的应用程序的预设校验数据,可以是通过安全认证的应用程序发送至终端的操作***的,也可以是终端的操作***在确定通过安全认证的应用程序后向应用程序分配的。为了确定安全储存空间中储存的预设校验数据与应用程序之间的对应关系,预设校验数据还可以具有对应的应用程序标识。通过预设校验数据的应用程序标识,可以确定预设校验数据所对应的应用程序,便于实现安全校验。
若可以利用目标私钥对加密数据进行解密,则说明目标应用程序在生成加密数据时利用的加密公钥是与目标私钥对应的公钥。对加密数据进行解密后可以得到目标数据。若安全储存空间中,具有与目标数据一致的该目标应用程序的预设校验数据,可以证明目标应用程序是预先通过安全认证的应用程序。终端的操作***可以确定该目标应用程序的安全校验通过,可以允许目标应用程序进行后续的操作。
S204:若解密不成功,或者所述安全储存空间中不具有与对所述加密数据解密后得到的所述目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验不通过。
如果不能利用目标私钥对加密数据成功进行解密,则说明目标应用程序加密所使用的加密公钥与目标私钥不匹配,无法得到目标数据进行校验,该目标应用程序可能具有安全问题,安全校验不通过。
如果可以利用目标私钥对加密数据成功进行解密,得到目标数据。但是,安全储存空间中不具有与目标数据一致的所述目标应用程序的预设校验数据,则该目标应用程序是未通过安全认证的应用程序。终端的操作***可以确定该目标应用程序的安全校验不通过,不允许目标应用程序进行后续操作。
需要说明的是,安全储存空间中不具有与目标数据一致的所述目标应用程序的预设校验数据,具体可以包括以下两种情况:
情况一:安全储存空间中不具有该目标应用程序的预设校验数据。
当安全储存空间中不具有目标应用程序的预设校验数据时,该目标应用程序可能为未通过安全认证的应用程序,导致安全储存空间中未保存该目标应用程序对应的预设校验数据。
情况二:安全储存空间中具有该目标应用程序的预设校验数据,但是该目标应用程序的预设校验数据与目标数据不一致。
当安全储存空间中具有该目标应用程序的预设校验数据,但是该预设校验数据与目标数据不一致时,该目标应用程序可能假冒通过安全认证的应用程序,但由于该目标应用程序并不具有通过安全认证的应用程序的正确的预设校验数据,导致解密得到的目标数据与预设校验数据不一致。
基于上述S201-S204的相关内容可知,先获取由目标应用程序发送的用于进行目标应用程序安全校验的加密数据。再从安全储存空间中获取目标私钥,在可信执行环境中利用目标私钥对加密数据进行解密。可信执行环境的安全储存空间可以安全的保存目标私钥,防止目标私钥被恶意获取。基于可信执行环境提供的安全执行环境,可以确保安全校验过程的安全性,不会被破解。若对加密数据解密成功,并且安全储存空间中具有与对加密数据解密后得到的目标数据一致的目标应用程序的预设校验数据,则证明目标应用程序是预先通过安全认证的应用程序,可以确定目标应用程序的安全校验通过。若无法利用目标私钥对加密数据进行解密,或者安全储存空间中不具有与对所述加密数据解密后得到的所述目标数据一致的所述目标应用程序的预设校验数据,则说明该目标应用程序生成加密数据时并未使用与目标私钥匹配的公钥,或者目标应用程序的预设校验数据不正确,该目标应用程序并非是通过安全认证的应用程序,存在安全问题,安全校验不通过。如此,在可信执行环境中进行安全校验,可以防止安全校验过程被破解,提高安全校验的安全性和准确性。根据解密的结果可以确定目标应用程序是否是预先通过安全认证的应用程序,防止恶意的应用程序获取用户数据,避免用户隐私泄露,提高了终端的使用安全。
目标私钥可以是通过密钥对生成工具生成的,目标私钥具有对应的目标公钥。终端的操作***可以将目标公钥发送至目标应用程序,以便目标应用程序利用目标公钥生成加密数据。
在一种可能的实现方式中,本申请实施例还提供一种应用程序的安全校验方法,除上述S201-S204以外,所述方法还包括以下两个步骤:
A1:获取目标应用程序发送的公钥获取请求,从所述安全储存空间或者数据储存空间中获取目标公钥;所述目标公钥与所述目标私钥匹配。
目标应用程序在进行安全校验之前,可以向终端的操作***发送公钥获取请求。
本申请实施例不限定目标应用程序发送公钥获取请求的触发条件。目标应用程序可以在第一次进行安全校验之前,发送公钥获取请求,并利用获取到的目标公钥生成后续每次安全校验的加密数据。还可以在每次进行安全校验之前,发送公钥获取请求,利用获取到的目标公钥生成本次安全校验的加密数据。
终端的操作***在获取到公钥获取请求之后,可以获取预先保存的目标公钥。其中,目标公钥是与目标私钥匹配的密钥,目标公钥和目标私钥可以通过密钥对生成工具生成,并预先储存在终端中。
在一种可能的实现方式中,目标公钥可以储存至安全储存空间中。在另一种可能的实现方式中,鉴于安全储存空间的容量有限,目标公钥的安全需求较低,可以将目标公钥储存在终端的数据储存空间中。其中,数据储存空间可以是终端中储存不具有较高安全需求的数据的空间。如此一方面可以保证安全校验的准确性和安全性,另一方面也可以节省安全储存空间。
A2:将所述目标公钥发送至所述目标应用程序,以便所述目标应用程序利用所述目标公钥生成加密数据。
将获取的目标公钥发送至目标应用程序。目标应用程序可以利用获取的目标公钥生成加密数据。对应的,在安全校验时,终端可以成功利用目标私钥对加密数据进行解密,实现对目标数据的校验。
在本申请实施例中,通过向发送公钥获取请求的目标应用程序发送目标公钥,可以使得接收到目标公钥的目标应用程序利用目标公钥正确加密目标数据,便于终端成功解密加密数据,根据目标数据完成安全校验。
另外,随着终端的使用,终端中安装的应用程序可能具有变化。通过安全认证的应用程序可能存在变化,已通过安全认证的应用程序的预设校验数据也可能会发生变化,安全储存空间中储存的应用程序的预设校验数据需要对应进行改变。
在一种可能的实现方式中,本申请实施例还提供一种应用程序的安全校验方法,除上述S201-S204以外,所述方法还包括以下三个步骤:
B1:获取应用程序发送的安全认证请求。
终端的操作***接收应用程序发送的安全认证请求。应用程序可以是终端中已经安装的任意的应用程序。
安全认证请求中可以包括终端的操作***进行安全认证所需的信息。
例如,若终端的操作***利用安全应用程序的白名单确定能够通过安全认证的应用程序,应用程序发送的安全认证请求可以包括对应的应用程序的名称,或者应用程序的标识。
又例如,若终端的操作***利用安全应用程序的安全标识确定能够通过安全认证的应用程序,应用程序发送的安全认证请求可以包括该应用程序具有的安全标识。
B2:根据所述安全认证请求,判断所述应用程序是否为能够通过安全认证的应用程序。
终端的操作***根据应用程序的安全认证请求,对应用程序进行安全认证,确定应用程序是否为能够通过安全认证的应用程序。
能够通过安全认证的应用程序,为终端操作***确定的安全的应用程序,可以安全地调用部分接口或者是访问关键数据。
B3:若是,则获取所述应用程序的预设校验数据,并将所述应用程序的预设校验数据储存至安全储存空间中。
如果该应用程序是能够通过安全认证的应用程序,终端的操作***可以进一步获取应用程序的预设校验数据。
在一种可能的实现方式中,终端的操作***可以在TEE的环境下向应用程序发送预设校验数据获取请求,应用程序对应的在TEE的环境下向终端的操作***发送预设校验数据。
在另一种可能的实现方式中,应用程序的安全认证请求中包括预设校验数据。对应的,终端的操作***可以在TEE的环境下获取安全认证请求,并从安全认证请求中获取应用程序对应的预设校验数据。
将获取的预设校验数据储存至安全储存空间中,以便后续利用从安全储存空间中获取的应用程序对应的预设检验数据,进行安全校验。
需要说明的是,若安全储存空间中已经具有该应用程序对应的预设校验数据,可以将原有储存的预设校验数据删除后,再储存新获取的应用程序对应的预设校验数据,实现对通过安全认证的应用程序对应的预设校验数据的更新。
基于上述内容可知,通过储存通过安全认证的应用程序的预设校验数据,可以确保安全储存空间中储存的通过安全认证的应用程序的预设校验数据,随着应用程序的安全状态的变化,或者预设校验数据的变化进行对应的更新,确保基于预设校验数据进行安全校验的准确性。
终端的安全储存空间中可以储存多个私钥用于进行安全校验,对应的,目标应用程序可以使用的公钥也可以为多个私钥分别对应的多个公钥。在对目标应用程序发送的加密数据进行解密时,需要选取对应的私钥作为目标私钥,才可以实现加密数据的正确解密。
在一种可能的实现方式中,本申请实施例还提供一种当所述安全储存空间中储存多个私钥时,从安全储存空间中获取目标私钥的实施方式,其中,加密数据中包括目标密钥标识。该方法具体包括:
根据所述目标密钥标识,从安全储存空间中获取具有所述目标密钥标识的私钥作为目标私钥。
为了便于从多个私钥中确定用于对加密数据进行解密的目标私钥,可以预先对私钥和该私钥对应的公钥分配密钥标识。若加密数据中包括加密所利用的目标公钥的目标密钥标识。终端的操作***在获取到加密数据中的目标密钥标识后,可以将具有目标密钥标识的私钥作为目标私钥。
在本申请实施例中,通过加密数据中包括的目标密钥标识,选取对应的私钥做为目标私钥,实现针对加密数据的解密。通过目标密钥标识,便于从多个私钥中选取对应的私钥进行加密数据的解密,提高了对加密数据解密的效率。
在一种可能的实现方式中,本申请实施例提供一种在所述可信执行环境中,利用所述目标私钥对所述加密数据进行解密的具体实施方式,具体包括:
从安全储存空间中获取目标私钥,在可信执行环境中,利用所述目标私钥,采用目标解密算法对所述加密数据进行解密。
目标解密算法是对加密数据进行解密所使用的算法。目标解密算法与目标应用程序生成加密数据时所采用的目标加密算法相匹配。目标加密算法和目标解密算法可以是目标应用程序和终端的操作***预先确定的加解密算法。
目标解密算法具体可以为非对称加密算法,例如,RSA、DSA(digital signaturealgorithm,数字签名算法)、ECC(elliptic curves cryptography,椭圆曲线密码编码学)等加密算法。
可以理解的是,在对加密数据进行解密的过程中,可能会出现无法正常完成解密的情况。比如,当终端的操作***出现异常时,可能导致不能正常完成对加密数据的解密。对应的,本申请实施例提供一种应用程序的安全校验方法,若在预设解密时长内不能完成利用所述目标私钥对所述加密数据进行解密,除上述步骤以外,所述方法还可以包括:
确定所述目标应用程序的安全校验不通过;
或者,
向所述目标应用程序发送校验异常信息,以便所述目标应用程序根据所述校验异常信息重新发送加密数据;
或者,
在经过预设执行时长后,重新利用所述目标私钥对所述加密数据进行解密。
预设解密时长可以是预先设置的利用目标私钥对加密数据进行解密的时间长度。预设解密时长可以根据解密所使用的一般时长进行设置。
若在预设解密时长内,不能完成利用目标私钥对加密数据进行解密,则说明不能正常的完成本次对加密数据的解密过程。在一种可能的实现方式中,可以直接确定目标应用程序的安全校验不通过。或者,重新对目标应用程序进行安全校验。
重新对目标应用程序进行安全校验可以是通过目标应用程序触发的,也可以是终端的操作***触发的。
在一种可能的实现方式中,在预设解密时长内不能完成利用所述目标私钥对所述加密数据进行解密后,可以向目标应用程序发送校验异常信息。校验异常信息用于表示本次安全校验的过程出现异常,需要重新进行安全校验。目标应用程序在接收到校验异常信息之后,可以通过再次发送加密数据重新触发安全校验。终端的操作***可以利用获取的加密数据重新进行安全校验。
本申请实施例不限定目标应用程序重新发送加密数据的发送时间,目标应用程序可以在获取到校验异常信息之后,直接发送加密数据,以触发安全校验。也可以在获取到校验异常信息后,等待一定的时长再发送加密数据,以确保终端的操作***运行正常后进行安全校验。
在另一种可能的实现方式中,在预设解密时长内不能完成利用所述目标私钥对所述加密数据进行解密后,终端的操作***可以在经过预设执行时长后,重新利用目标私钥对加密数据进行解密。预设执行时长可以是预先设置的重新进行安全校验的间隔时长,预设执行时长具体可以根据终端的操作***的运行状态确定。
基于上述内容可知,当在预设解密时长之内不能正常完成对加密数据的解密时,可以确定安全校验不通过,或者重新进行安全校验。通过重新进行安全校验,可以提高安全校验的容错性,得到更为准确的安全校验结果。
在一种可能的实现方式中,目标应用程序在请求调用功能拓展接口时,需要进行安全校验。所述获取由目标应用程序发送的加密数据,包括:
获取目标应用程序在请求调用功能拓展接口后发送的加密数据。
功能拓展接口是终端的操作***提供的***接口。通常情况下,仅有操作***可以对***接口进行调用,实现对应的功能。但是,在部分应用场景中,应用程序也需要调用功能拓展接口实现对应功能。为了确保终端的使用安全,在应用程序调用功能拓展接口之前,先需要进行安全校验。
目标应用程序在请求调用功能拓展接口后,发送加密数据。终端的操作***接收到目标应用程序发送的加密数据,根据加密数据对目标应用程序进行安全校验。
在一种可能的实现方式中,针对目标应用程序请求调用功能拓展接口,本申请实施例提供一种应用程序的安全校验方法。参见图3所示,该图为本申请实施例提供的另一种应用程序的安全校验方法的流程图。
S301:获取目标应用程序在请求调用功能拓展接口后发送的加密数据。
S302-S304与上述S202-S204内容类似,请参见上述相关内容,在此不再赘述。
若确定所述目标应用程序的安全校验通过,执行S305;若确定所述目标应用程序的安全校验不通过,执行S306。
S305:允许所述目标应用程序调用所述功能拓展接口。
对应的,若目标应用程序的安全校验通过,则目标应用程序是通过安全认证的应用程序,允许目标应用程序继续调用功能拓展接口,实现功能拓展接口提供的功能。
S306:禁止所述目标应用程序调用所述功能拓展接口。
若目标应用程序的安全校验不通过,则目标应用程序是未通过安全认证的应用程序,目标应用程序调用功能拓展接口可能会存在用户数据泄露的问题,禁止目标应用程序调用功能拓展接口。
基于上述方法实施例提供的一种应用程序的安全校验方法,本申请实施例还提供了一种应用程序的安全校验装置,下面将结合附图对应用程序的安全校验装置进行说明。
参见图4所示,该图为本申请实施例提供的一种应用程序的安全校验装置的结构示意图。如图4所示,该应用程序的安全校验装置包括:
第一获取单元401,用于获取由目标应用程序发送的加密数据;
第二获取单元402,用于从安全储存空间中获取目标私钥,在可信执行环境中,利用所述目标私钥对所述加密数据进行解密;
第一确定单元403,用于若所述安全储存空间中,具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验通过;
第二确定单元404,用于若解密不成功,或者所述安全储存空间中不具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验不通过;
其中,所述安全储存空间中具有通过安全认证的应用程序对应的预设校验数据。
在一种可能的实现方式中,所述装置还包括:
第三获取单元,用于获取目标应用程序发送的公钥获取请求,从所述安全储存空间或者数据储存空间中获取目标公钥;所述目标公钥与所述目标私钥匹配;
第一发送单元,用于将所述目标公钥发送至所述目标应用程序,以便所述目标应用程序利用所述目标公钥生成加密数据。
在一种可能的实现方式中,所述装置还包括:
第四获取单元,用于获取应用程序发送的安全认证请求;
判断单元,用于根据所述安全认证请求,判断所述应用程序是否为能够通过安全认证的应用程序;
第五获取单元,用于若是,则获取所述应用程序的预设校验数据,并将所述应用程序的预设校验数据储存至安全储存空间中。
在一种可能的实现方式中,当所述安全储存空间中储存多个私钥时,所述加密数据中包括目标密钥标识,所述第二获取单元402,具体用于根据所述目标密钥标识,从安全储存空间中获取具有所述目标密钥标识的私钥作为目标私钥。
在一种可能的实现方式中,若在预设解密时长内不能完成利用所述目标私钥对所述加密数据进行解密,所述装置还包括:
第三确定单元,用于确定所述目标应用程序的安全校验不通过;
或者,
第二发送单元,用于向所述目标应用程序发送校验异常信息,以便所述目标应用程序根据所述校验异常信息重新发送加密数据;
或者,
解密单元,用于在经过预设执行时长后,重新利用所述目标私钥对所述加密数据进行解密。
在一种可能的实现方式中,所述第一获取单元401,具体用于获取目标应用程序在请求调用功能拓展接口后发送的加密数据。
在一种可能的实现方式中,所述装置还包括:
允许调用单元,用于若确定所述目标应用程序的安全校验通过,允许所述目标应用程序调用所述功能拓展接口;
禁止调用单元,用于若确定所述目标应用程序的安全校验不通过,禁止所述目标应用程序调用所述功能拓展接口。
基于上述方法实施例提供的一种应用程序的安全校验方法,本申请还提供一种应用程序的安全校验设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现所述的应用程序的安全校验方法。
下面参考图5,其示出了适于用来实现本申请实施例的电子设备(例如图5中的终端设备或服务器)500的结构示意图。本申请实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(Personal Digital Assistant,个人数字助理)、PAD(portable android device,平板电脑)、PMP(Portable Media Player,便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV(television,电视机)、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置506加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置506;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置506被安装,或者从ROM502被安装。在该计算机程序被处理装置501执行时,执行本申请实施例的方法中限定的上述功能。
本申请实施例提供的电子设备与上述实施例提供的应用程序的安全校验方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
基于上述方法实施例提供的一种应用程序的安全校验方法,本申请实施例提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述应用程序的安全校验方法。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述应用程序的安全校验方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元/模块的名称在某种情况下并不构成对该单元本身的限定,例如,语音数据采集模块还可以被描述为“数据采集模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种应用程序的安全校验方法,其特征在于,所述方法包括:
获取由目标应用程序发送的加密数据;
从安全储存空间中获取目标私钥,在可信执行环境中,利用所述目标私钥对所述加密数据进行解密;
若所述安全储存空间中,具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验通过;
若解密不成功,或者所述安全储存空间中不具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验不通过;
其中,所述安全储存空间中具有通过安全认证的应用程序对应的预设校验数据;
获取目标应用程序发送的公钥获取请求,从所述安全储存空间中获取目标公钥;所述目标公钥与所述目标私钥匹配;
将所述目标公钥发送至所述目标应用程序,以便所述目标应用程序利用所述目标公钥生成加密数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取应用程序发送的安全认证请求;
根据所述安全认证请求,判断所述应用程序是否为能够通过安全认证的应用程序;
若是,则获取所述应用程序的预设校验数据,并将所述应用程序的预设校验数据储存至安全储存空间中。
3.根据权利要求1或2所述的方法,其特征在于,当所述安全储存空间中储存多个私钥时,所述加密数据中包括目标密钥标识,所述从安全储存空间中获取目标私钥,包括:
根据所述目标密钥标识,从安全储存空间中获取具有所述目标密钥标识的私钥作为目标私钥。
4.根据权利要求1或2所述的方法,其特征在于,若在预设解密时长内不能完成利用所述目标私钥对所述加密数据进行解密,所述方法还包括:
确定所述目标应用程序的安全校验不通过;
或者,
向所述目标应用程序发送校验异常信息,以便所述目标应用程序根据所述校验异常信息重新发送加密数据;
或者,
在经过预设执行时长后,重新利用所述目标私钥对所述加密数据进行解密。
5.根据权利要求1或2所述的方法,其特征在于,所述获取由目标应用程序发送的加密数据,包括:
获取目标应用程序在请求调用功能拓展接口后发送的加密数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若确定所述目标应用程序的安全校验通过,允许所述目标应用程序调用所述功能拓展接口;
若确定所述目标应用程序的安全校验不通过,禁止所述目标应用程序调用所述功能拓展接口。
7.一种应用程序的安全校验装置,其特征在于,所述装置包括:
第一获取单元,用于获取由目标应用程序发送的加密数据;
第二获取单元,用于从安全储存空间中获取目标私钥,在可信执行环境中,利用所述目标私钥对所述加密数据进行解密;
第一确定单元,用于若所述安全储存空间中,具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验通过;
第二确定单元,用于若解密不成功,或者所述安全储存空间中不具有与对所述加密数据解密后得到的目标数据一致的所述目标应用程序的预设校验数据,则确定所述目标应用程序的安全校验不通过;
其中,所述安全储存空间中具有通过安全认证的应用程序对应的预设校验数据;
第三获取单元,用于获取目标应用程序发送的公钥获取请求,从所述安全储存空间中获取目标公钥;所述目标公钥与所述目标私钥匹配;
第一发送单元,用于将所述目标公钥发送至所述目标应用程序,以便所述目标应用程序利用所述目标公钥生成加密数据。
8.一种应用程序的安全校验设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-6任一项所述的应用程序的安全校验方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-6任一项所述的应用程序的安全校验方法。
CN202110271432.6A 2021-03-12 2021-03-12 一种应用程序的安全校验方法、装置及设备 Active CN113282951B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110271432.6A CN113282951B (zh) 2021-03-12 2021-03-12 一种应用程序的安全校验方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110271432.6A CN113282951B (zh) 2021-03-12 2021-03-12 一种应用程序的安全校验方法、装置及设备

Publications (2)

Publication Number Publication Date
CN113282951A CN113282951A (zh) 2021-08-20
CN113282951B true CN113282951B (zh) 2024-02-09

Family

ID=77275948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110271432.6A Active CN113282951B (zh) 2021-03-12 2021-03-12 一种应用程序的安全校验方法、装置及设备

Country Status (1)

Country Link
CN (1) CN113282951B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091027B (zh) * 2021-12-01 2023-08-29 海光信息技术股份有限公司 信息配置方法、数据访问方法及相关装置、设备
CN114978723B (zh) * 2022-05-26 2023-03-17 中国电子信息产业集团有限公司第六研究所 一种可编程逻辑控制器安全认证方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043680A (zh) * 2007-03-13 2007-09-26 中兴通讯股份有限公司 防止非法升级移动终端的应用程序的方法
CN102118512A (zh) * 2011-03-28 2011-07-06 阮晓迅 一种手机应用程序防破解方法及***
CN111475832A (zh) * 2020-06-24 2020-07-31 腾讯科技(深圳)有限公司 一种数据管理的方法以及相关装置
WO2020213050A1 (ja) * 2019-04-16 2020-10-22 三菱電機株式会社 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043680A (zh) * 2007-03-13 2007-09-26 中兴通讯股份有限公司 防止非法升级移动终端的应用程序的方法
CN102118512A (zh) * 2011-03-28 2011-07-06 阮晓迅 一种手机应用程序防破解方法及***
WO2020213050A1 (ja) * 2019-04-16 2020-10-22 三菱電機株式会社 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法
CN111475832A (zh) * 2020-06-24 2020-07-31 腾讯科技(深圳)有限公司 一种数据管理的方法以及相关装置

Also Published As

Publication number Publication date
CN113282951A (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
US10721080B2 (en) Key-attestation-contingent certificate issuance
CN110492990B (zh) 区块链场景下的私钥管理方法、装置及***
CN110366183B (zh) 短信安全防护方法及装置
CN111914229B (zh) 一种身份验证方法、装置、电子设备及存储介质
CN108923925B (zh) 应用于区块链的数据存储方法和装置
CN112866385B (zh) 接口调用方法、装置、电子设备和存储介质
CN113282951B (zh) 一种应用程序的安全校验方法、装置及设备
CN112073433B (zh) 一种ssl证书更新方法、装置、电子设备及存储介质
CN111030827A (zh) 信息交互方法、装置、电子设备、及存储介质
CN107920060B (zh) 基于账号的数据访问方法和装置
US20110154436A1 (en) Provider Management Methods and Systems for a Portable Device Running Android Platform
CN110399706B (zh) 授权认证方法、装置和计算机***
CN116502189A (zh) 软件授权方法、***、设备和存储介质
WO2022173373A1 (en) Secure module and method for app-to-app mutual trust through app-based identity
CN114584299A (zh) 数据处理方法、装置、电子设备和存储介质
CN114826616B (zh) 数据处理方法、装置、电子设备和介质
CN115361168B (zh) 一种数据加密方法、装置、设备及介质
CN112926076B (zh) 一种数据处理的方法、装置和***
CN114553570B (zh) 生成令牌的方法、装置、电子设备及存储介质
CN111314320B (zh) 基于http的通信方法、终端、服务器和***
EP4174695A1 (en) Method to store data persistently by a software payload
EP4175218A1 (en) Method to establish a secure channel
CN118316615A (zh) 数据传输方法、装置、介质、设备以及计算机程序产品
CN117768126A (zh) 基于数字签名的服务单认证方法、装置、介质及电子设备
CN114386073A (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
GR01 Patent grant
GR01 Patent grant