CN105844150A - 一种应用程序的数据保护方法和装置 - Google Patents
一种应用程序的数据保护方法和装置 Download PDFInfo
- Publication number
- CN105844150A CN105844150A CN201610169739.4A CN201610169739A CN105844150A CN 105844150 A CN105844150 A CN 105844150A CN 201610169739 A CN201610169739 A CN 201610169739A CN 105844150 A CN105844150 A CN 105844150A
- Authority
- CN
- China
- Prior art keywords
- signature value
- application program
- dynamic
- link library
- buried
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种应用程序的数据保护方法和装置,所述方法包括:接收针对应用程序的数据的请求指令;针对所述请求指令,调用JAVA本地接口;采用所述JAVA本地接口,获取所述应用程序的动态签名值;根据所述动态签名值,判断所述请求指令是否为可信任指令,实现了在应用程序的唯一签名的基础上加入非对称性的加密机制,保证了应用程序数据的安全性。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种应用程序的数据保护方法和一种应用程序的数据保护装置。
背景技术
随着技术的发展,智能手机、智能电视等智能终端越来越成为人们生活中不可或缺的一部分。智能终端上的各类应用程序给人们呈现了一个丰富多彩的世界,通过应用程序,人们可以轻松地实现获取资料、观看娱乐节目,选购商品、完成支付等活动。正是由于应用程序的功能越来越强大,应用程序的数据安全也越来越受到人们的重视。
以安卓Android类应用程序为例。由于安卓Android的开源性,安卓Android应用程序的代码是极其容易被恶意程序破译的,特别是直接写在代码中的常量,更容易被泄露。通常,应用程序的开发者需要在安卓Android代码中保存一些敏感数据,用于文件加密或者网络通信加密,如果将这一类明文数据直接存放在代码中,恶意程序采用反编译安卓Android代码的方式,就能够很容易地获得应用程序的敏感数据。针对此类问题,目前的一种解决方式是将应用程序代码中的明文数据存入动态链接库(Dynamic Link Library或者Dynamic-link Library,缩写为DLL),通过JNI接口(JavaNative Interface,JAVA本地接口)来调用,以避免应用程序代码中的明文数据被恶意程序直接获取。虽然动态链接库不易被恶意程序破译,但是,由于安卓Android代码中的JNI接口是不可以混淆的,因此,恶意程序仍然可以通过获取到JNI接口,直接调用动态链接库的方式获得应用程序中的敏感数据,安全性仍然很低。
中国专利申请CN201510259122.7公开了一种Android智能电视敏感数据安全增强方法,该方法通过使用与硬件唯一信息相关的密钥体系对虚拟文件系统进行加密,并使解密密钥与设备进行严格绑定,以阻止攻击者将敏感数据存储文件或APK文件移植到其他设备上执行,从而增强了安卓Android智能电视敏感数据的安全性,但是,该方法对终端的硬件条件有很高的要求,无法广泛使用。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序的数据保护方法和相应的一种应用程序的数据保护装置。
为了解决上述问题,本申请实施例公开了一种应用程序的数据保护方法,包括:
接收针对应用程序的数据的请求指令;
针对所述请求指令,调用JAVA本地接口;
采用所述JAVA本地接口,获取所述应用程序的动态签名值;
根据所述动态签名值,判断所述请求指令是否为可信任指令。
可选地,所述采用所述JAVA本地接口,获取所述应用程序的动态签名值的步骤包括:
采用所述JAVA本地接口,调用动态链接库;
通过所述动态链接库,获取所述应用程序的动态签名值。
可选地,所述根据所述动态签名值,判断所述请求指令是否为可信任指令的步骤包括:
判断所述动态签名值与预埋的第一签名值是否一致。
可选地,所述判断所述动态签名值与预埋的第一签名值是否一致的步骤包括:
调用所述动态链接库中的验证函数;
采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致。
可选地,所述第一签名值通过如下方式预埋:
获取所述应用程序的日志中记录的第一签名值;
将所述第一签名值储存至动态链接库中。
可选地,所述将所述第一签名值储存至动态链接库中的步骤包括:
对所述第一签名值进行加密,获得加密后的第一签名值;
将所述加密后的第一签名值储存至所述动态链接库中。
可选地,在采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致的步骤前,还包括:
对所述预埋的第一签名值进行解密。
为了解决上述问题,本申请实施例还公开了一种应用程序的数据保护装置,包括:
接收模块,用于接收针对应用程序的数据的请求指令;
调用模块,用于针对所述请求指令,调用JAVA本地接口;
动态签名值获取模块,用于采用所述JAVA本地接口,获取所述应用程序的动态签名值;
判断模块,用于根据所述动态签名值,判断所述请求指令是否为可信任指令。
可选地,所述动态签名值获取模块包括:
调用子模块,用于采用所述JAVA本地接口,调用动态链接库;
获取子模块,用于通过所述动态链接库,获取所述应用程序的动态签名值。
可选地,所述判断模块包括:
判断子模块,用于判断所述动态签名值与预埋的第一签名值是否一致。
可选地,所述判断子模块包括:
调用单元,用于调用所述动态链接库中的验证函数;
比对单元,用于采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致。
可选地,所述第一签名值由如下模块进行预埋:
第一签名值获取模块,用于获取所述应用程序的日志中记录的第一签名值;
储存模块,用于将所述第一签名值储存至动态链接库中。
可选地,所述储存模块包括:
加密子模块,对所述第一签名值进行加密,获得加密后的第一签名值;
储存子模块,用于将所述加密后的第一签名值储存至所述动态链接库中。
可选地,所述判断子模块还包括:
解密单元,用于对所述预埋的第一签名值进行解密。
与背景技术相比,本申请实施例包括以下优点:
本申请实施例通过调用JAVA本地接口,进而调用动态链接库获取应用程序的签名值,根据所述签名值对获取数据的请求指令进行判断,由于动态链接库破解难度非常大,需要汇编等级的破解,所以在动态链接库中的逻辑是非常难以获取的,本申请实施例通过反向调用上层JAVA代码的方式,在如何调用以及调用的是何种函数上是完全保密的,因此,本申请实施例通过在应用程序的唯一签名的基础上加入类似非对称性的加密机制,即动态链接库一侧的逻辑对破解者来说是完全未知的,两者结合组成加密机制,保证了应用程序数据的安全性。
其次,本申请实施例在获取到应用程序的第一签名值后,对所述第一签名值进行加密处理,然后将加密后的签名值预埋至动态链接库,使得动态链接库中的明文数据更加牢固,敏感信息更加不易被获取,进一步确保了应用程序的数据安全。
附图说明
图1是本申请的一种应用程序的数据保护方法实施例一的步骤流程图;
图2是本申请的一种应用程序的数据保护方法实施例一的原理示意图;
图3是本申请的获取应用程序的动态签名值的示意图;
图4是本申请的一种应用程序的数据保护方法实施例二的步骤流程图;
图5是本申请的一种应用程序的数据保护装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种应用程序的数据保护方法实施例一的步骤流程图,具体可以包括如下步骤:
步骤101,接收针对应用程序的数据的请求指令;
在本申请实施例中,针对应用程序的数据的请求指令可以是用户在与智能终端交互的过程中发送的针对某一应用程序的指令。在正常情况下,所述请求指令可以被应用程序获得,并执行相应的动作,但是,若所述请求被恶意程序劫持,则可能会导致应用程序的数据被泄露。
以智能电视为例,在与智能电视的交互过程中,用户可以通过遥控器等控制设备向智能电视中的应用程序发送相应的指令,例如,指示智能电视中的浏览器访问某一网站。但是,该指令若被恶意程序劫持,则可能会导致浏览器的敏感数据被泄露。
步骤102,针对所述请求指令,调用JAVA本地接口;
如图2所示,是本申请的一种应用程序的数据保护方法实施例一的原理示意图。为了保护应用程序数据的安全性,在本申请实施例中,当接收到针对应用程序的数据的请求指令后,可以针对所述请求指令,首先调用JAVA本地接口,以进一步地对所述请求指令是否为可信任指令进行验证。
JAVA本地接口(JavaNative Interface,JNI接口)标准是JAVA平台的一部分,它允许JAVA代码和以其他语言写成的代码进行交互。JNI接口是本地编程接口,它使得在JAVA虚拟机(Virtual Manufacturing,VM)内部运行的JAVA代码能够与用其它编程语言(如C语音、C++,或者汇编语言)编写的应用程序和库进行交互操作。
步骤103,采用所述JAVA本地接口,获取所述应用程序的动态签名值;
在安卓Android系统中,所有安装到系统的应用程序都有一个数字证书,所述数字证书可以用于在应用程序的开发者和应用程序之间建立信任关系。通常,如果针对一个应用程序的许可的保护等级为签名保护,那么就只有那些跟该许可所在的程序拥有同一个数字证书的应用程序(例如,同一个应用程序的不同升级版本)才能取得对所述应用程序的访问或者对数据的修改以及覆盖安装权限。安卓Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,而数字证书的私钥则保存在应用程序的开发者手中。因此,只要不是人为泄露,数字证书一经生成就只能在程序之内获取,这样就能够保证该应用程序数据的安全性。
在具体实现中,可以采用所述JAVA本地接口,获取到所述应用程序的动态签名值,通过所述动态签名值对所述请求指令进行判断。
在本申请的一种优选实施例中,所述采用所述JAVA本地接口,获取所述应用程序的动态签名值的步骤具体可以包括如下子步骤:
子步骤1031,采用所述JAVA本地接口,调用动态链接库;
子步骤1032,通过所述动态链接库,获取所述应用程序的动态签名值。
如图3所示,是本申请的获取应用程序的动态签名值的示意图。在具体实现中,可以基于安卓Android系统的JAVA本地接口,调用动态链接库,并通过在所述动态链接库中反向调用JAVA的技术,获取到所述应用程序的动态签名值。
JNI接口是一组双向的接口,JNI可以通过ID识别域和方法(这里的域指的是JAVA语言中的域,方法指的是JAVA语言中的方法,其名字和ID可以由开发者自己定义)。一个域或方法的ID是任何处理域和方法的函数的必须参数,每个函数可以接受(作为参数的)域或方法的类、名称、符号,以及它们对应返回的jfieldID(域ID)或jmethodID(方法ID),我们可以通过域ID和方法ID,找到相应的方法,从而实现在动态链接库中调用JAVA层代码。
步骤104,根据所述动态签名值,判断所述请求指令是否为可信任指令。
在本申请实施例中,在动态链接库获取到所述应用程序的动态签名值后,可以根据所述动态签名值,判断所述请求指令是否为可信任指令。
在本申请的一种优选实施例中,所述根据所述动态签名值,判断所述请求指令是否为可信任指令的步骤具体可以包括如下子步骤:
子步骤1041,判断所述动态签名值与预埋的第一签名值是否一致。
在本申请实施例中,所述第一签名值即为所述应用程序的签名值。因此,可以将获取到的动态签名值与预埋的第一签名值进行比对,确定二者是否一致,若是,则认为所述请求指令为可信任指令,可以返回相应的数据。
通常,每一个安卓Android应用程序生成apk(AndroidPackage,安卓安装包)的时候都必须要进行签名,其签名值在生成后便是是固定且唯一的,外部应用无法通过破解apk文件及其他方式获取到,只能通过程序内部获取。因此,在本申请的一种优选实施例中,所述第一签名值可以通过如下方式预埋:
S11,获取所述应用程序的日志中记录的第一签名值;
S12,将所述第一签名值储存至动态链接库中。
在具体实现中,可以通过获取所述应用程序的日志,以日志Log打印的方式,将所述应用程序的签名值打印出来并储存在动态链接库中。
在本申请的一种优选实施例中,所述判断所述动态签名值与预埋的第一签名值是否一致的子步骤可以进一步包括:
S21,调用所述动态链接库中的验证函数;
S22,采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致。
在具体实现中,JAVA层可以通过JNI接口调用动态链库中的验证预埋的第一签名值和动态签名值的函数,触发验证逻辑,将所述动态签名值与预埋的第一签名值进行比对,以确定所述动态签名值与第一签名值是否一致。
本申请实施例通过调用JAVA本地接口,进而调用动态链接库获取应用程序的签名值,根据所述签名值对获取数据的请求指令进行判断,由于动态链接库破解难度非常大,需要汇编等级的破解,所以在动态链接库中的逻辑是非常难以获取的,本申请实施例通过反向调用上层JAVA代码的方式,在如何调用以及调用的是何种函数上是完全保密的,因此,本申请实施例通过在应用程序的唯一签名的基础上加入类似非对称性的加密机制,即动态链接库一侧的逻辑对破解者来说是完全未知的,两者结合组成加密机制,保证了应用程序数据的安全性。
参照图4,示出了本申请的一种应用程序的数据保护方法实施例二的步骤流程图,具体可以包括如下步骤:
步骤401,对所述第一签名值进行加密,获得加密后的第一签名值;
步骤402,将所述加密后的第一签名值储存至所述动态链接库中;
通常,恶意程序攻破动态链接库是极其困难的,但是,仍然存在动态链接库被攻破的可能,特别是储存在动态链接库中的明文信息仍然存在被恶意程序获取的可能。因此,在本申请实施例中,在对应用程序的签名值进行预埋时,可以对所述签名值进行加密处理。
在具体实现中,可以获取应用程序的日志记录,以日志Log打印的方式获取到的第一签名值,然后对第一签名值进行加密,并将加密后的第一签名值预埋至动态链接库中。本领域技术人员可以根据实际需要选择具体的加密方式,本申请对此不作具体限定。
步骤403,接收针对应用程序的数据的请求指令;
步骤404,针对所述请求指令,调用JAVA本地接口;
在本申请实施例中,针对应用程序的数据的请求指令可以是用户在与智能终端交互的过程中发送的针对某一应用程序的指令。在正常情况下,所述请求指令可以被应用程序获得,并执行相应的动作,但是,若所述请求被恶意程序劫持,则可能会导致应用程序的数据被泄露。以智能电视为例,在与智能电视的交互过程中,用户可以通过遥控器等控制设备向智能电视中的应用程序发送相应的指令,例如,指示智能电视中的浏览器访问某一网站。但是,该指令若被恶意程序劫持,则可能会导致浏览器的敏感数据被泄露。因此,为了保护应用程序数据的安全性,当接收到针对应用程序的数据的请求指令后,可以针对所述请求指令,首先调用JAVA本地接口,以进一步地对所述请求指令是否为可信任指令进行验证。
步骤405,采用所述JAVA本地接口,调用动态链接库;
步骤406,通过所述动态链接库,获取所述应用程序的动态签名值;
由于JNI接口是一组双向的接口,JNI可以通过ID识别域和方法。因此,我们可以通过域ID和方法ID,找到相应的方法,从而实现在动态链接库中调用JAVA层代码。即,可以基于安卓Android系统的JAVA本地接口,调用动态链接库,并通过在所述动态链接库中反向调用JAVA的技术,获取到所述应用程序的动态签名值。
在具体实现中,可以通过安装管理器PackageManager获取应用程序的安装信息PackageInfo,最终获取到所述应用程序的动态签名值。
作为本申请的一种示例,可以通过调用动态链接库中的如下函数,获得所述应用程序的签名值:
GetMethodID(cls,"getPackageManager","()Landroid/content/pm/PackageManager;");
GetMethodID(cls,"getPackageInfo","(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;");
GetFieldID(cls,"signatures","[Landroid/content/pm/Signature;");
步骤407,调用所述动态链接库中的验证函数;
在具体实现中,JAVA层可以通过JNI接口调用动态链库中的验证预埋的第一签名值和动态签名值的函数,触发验证逻辑。
步骤408,对所述预埋的第一签名值进行解密;
在本申请实施例中,由于预埋的第一签名值是经过加密处理的,因此,在将所述动态签名值与预埋的第一签名值进行比对前,还需要对所述预埋的第一签名值进行解密处理。
步骤409,采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致。
在本申请实施例中,若所述动态签名值与预埋的第一签名值相同,则可以认为接收到的数据请求指令为可信任指令,可以返回相应的数据;若二者不同,则可以拒绝相应的请求。
在本申请实施例中,在获取到应用程序的第一签名值后,对所述第一签名值进行加密处理,然后将加密后的签名值预埋至动态链接库,使得动态链接库中的明文数据更加牢固,敏感信息更加不易被获取,进一步确保了应用程序的数据安全。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请的一种应用程序的数据保护装置实施例的结构框图,具体可以包括如下模块:
接收模块501,用于接收针对应用程序的数据的请求指令;
调用模块502,用于针对所述请求指令,调用JAVA本地接口;
动态签名值获取模块503,用于采用所述JAVA本地接口,获取所述应用程序的动态签名值;
判断模块504,用于根据所述动态签名值,判断所述请求指令是否为可信任指令。
在本申请实施例中,所述动态签名值获取模块503具体可以包括如下子模块:
调用子模块5031,用于采用所述JAVA本地接口,调用动态链接库;
获取子模块5032,用于通过所述动态链接库,获取所述应用程序的动态签名值。
在本申请实施例中,所述判断模块504具体可以包括如下子模块:
判断子模块5041,用于判断所述动态签名值与预埋的第一签名值是否一致。
在本申请实施例中,所述判断子模块5041具体可以包括如下单元:
调用单元411,用于调用所述动态链接库中的验证函数;
比对单元412,用于采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致。
在本申请实施例中,所述第一签名值可以由如下模块进行预埋:
第一签名值获取模块505,用于获取所述应用程序的日志中记录的第一签名值;
储存模块506,用于将所述第一签名值储存至动态链接库中。
在本申请实施例中,所述储存模块506具体可以包括如下子模块:
加密子模块5061,对所述第一签名值进行加密,获得加密后的第一签名值;
储存子模块5062,用于将所述加密后的第一签名值储存至所述动态链接库中。
在本申请实施例中,判断子模块5041还可以包括如下单元:
解密单元413,用于对所述预埋的第一签名值进行解密。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种应用程序的数据保护方法和一种应用程序的数据保护装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种应用程序的数据保护方法,其特征在于,包括:
接收针对应用程序的数据的请求指令;
针对所述请求指令,调用JAVA本地接口;
采用所述JAVA本地接口,获取所述应用程序的动态签名值;
根据所述动态签名值,判断所述请求指令是否为可信任指令。
2.根据权利要求1所述的方法,其特征在于,所述采用所述JAVA本地接口,获取所述应用程序的动态签名值的步骤包括:
采用所述JAVA本地接口,调用动态链接库;
通过所述动态链接库,获取所述应用程序的动态签名值。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述动态签名值,判断所述请求指令是否为可信任指令的步骤包括:
判断所述动态签名值与预埋的第一签名值是否一致。
4.根据权利要求3所述的方法,其特征在于,所述判断所述动态签名值与预埋的第一签名值是否一致的步骤包括:
调用所述动态链接库中的验证函数;
采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致。
5.根据权利要求4所述的方法,其特征在于,所述第一签名值通过如下方式预埋:
获取所述应用程序的日志中记录的第一签名值;
将所述第一签名值储存至动态链接库中。
6.根据权利要求4或5所述的方法,其特征在于,所述将所述第一签名值储存至动态链接库中的步骤包括:
对所述第一签名值进行加密,获得加密后的第一签名值;
将所述加密后的第一签名值储存至所述动态链接库中。
7.根据权利要求6所述的方法,其特征在于,在采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致的步骤前,还包括:
对所述预埋的第一签名值进行解密。
8.一种应用程序的数据保护装置,其特征在于,包括:
接收模块,用于接收针对应用程序的数据的请求指令;
调用模块,用于针对所述请求指令,调用JAVA本地接口;
动态签名值获取模块,用于采用所述JAVA本地接口,获取所述应用程序的动态签名值;
判断模块,用于根据所述动态签名值,判断所述请求指令是否为可信任指令。
9.根据权利要求8所述的装置,其特征在于,所述动态签名值获取模块包括:
调用子模块,用于采用所述JAVA本地接口,调用动态链接库;
获取子模块,用于通过所述动态链接库,获取所述应用程序的动态签名值。
10.根据权利要求8或9所述的装置,其特征在于,所述判断模块包括:
判断子模块,用于判断所述动态签名值与预埋的第一签名值是否一致。
其中,所述判断子模块包括:
调用单元,用于调用所述动态链接库中的验证函数;
比对单元,用于采用所述验证函数,将所述动态签名值与预埋的第一签名值进行比对,确定所述动态签名值与第一签名值是否一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610169739.4A CN105844150A (zh) | 2016-03-23 | 2016-03-23 | 一种应用程序的数据保护方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610169739.4A CN105844150A (zh) | 2016-03-23 | 2016-03-23 | 一种应用程序的数据保护方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105844150A true CN105844150A (zh) | 2016-08-10 |
Family
ID=56583123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610169739.4A Pending CN105844150A (zh) | 2016-03-23 | 2016-03-23 | 一种应用程序的数据保护方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105844150A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259479A (zh) * | 2017-12-28 | 2018-07-06 | 广州启生信息技术有限公司 | 业务数据处理方法、客户端与计算机可读存储介质 |
CN109145591A (zh) * | 2018-09-10 | 2019-01-04 | 上海连尚网络科技有限公司 | 应用程序的插件加载方法 |
CN109902500A (zh) * | 2019-03-11 | 2019-06-18 | 北京城市网邻信息技术有限公司 | 一种通过链接库实现业务调用数据安全的方法及系统 |
CN109995534A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 一种对应用程序进行安全认证的方法和装置 |
CN110826031A (zh) * | 2019-10-31 | 2020-02-21 | 北京东软望海科技有限公司 | 加密方法、装置、计算机设备及存储介质 |
WO2022134419A1 (zh) * | 2020-12-23 | 2022-06-30 | 北京奇虎科技有限公司 | 应用程序的篡改检测方法、装置、设备及存储介质 |
CN115001782A (zh) * | 2022-05-26 | 2022-09-02 | 爱驰汽车有限公司 | 接口请求参数的处理方法、装置、设备及存储介质 |
CN117235708A (zh) * | 2023-11-13 | 2023-12-15 | 紫光同芯微电子有限公司 | 应用程序运行时的接口授权调用方法、装置、系统和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135746A1 (en) * | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Software verification system, method and computer program element |
CN103902859A (zh) * | 2013-12-25 | 2014-07-02 | 武汉安天信息技术有限责任公司 | 基于JAVA下hook技术的代码保护方法及系统 |
CN104021321A (zh) * | 2014-06-17 | 2014-09-03 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
CN104199657A (zh) * | 2014-08-27 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 开放平台的调用方法及装置 |
CN104268468A (zh) * | 2014-09-25 | 2015-01-07 | 福建升腾资讯有限公司 | 一种对Android系统动态链接库保护方法及系统 |
CN104281788A (zh) * | 2013-07-05 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 一种终端应用的保护方法及装置 |
CN104615933A (zh) * | 2015-01-27 | 2015-05-13 | 北京奇虎科技有限公司 | 防软件反编译的方法、防反编译软件启动的方法和装置 |
CN105068932A (zh) * | 2015-08-25 | 2015-11-18 | 北京安普诺信息技术有限公司 | 一种Android应用程序加壳的检测方法 |
-
2016
- 2016-03-23 CN CN201610169739.4A patent/CN105844150A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135746A1 (en) * | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Software verification system, method and computer program element |
CN104281788A (zh) * | 2013-07-05 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 一种终端应用的保护方法及装置 |
CN103902859A (zh) * | 2013-12-25 | 2014-07-02 | 武汉安天信息技术有限责任公司 | 基于JAVA下hook技术的代码保护方法及系统 |
CN104021321A (zh) * | 2014-06-17 | 2014-09-03 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
CN104199657A (zh) * | 2014-08-27 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 开放平台的调用方法及装置 |
CN104268468A (zh) * | 2014-09-25 | 2015-01-07 | 福建升腾资讯有限公司 | 一种对Android系统动态链接库保护方法及系统 |
CN104615933A (zh) * | 2015-01-27 | 2015-05-13 | 北京奇虎科技有限公司 | 防软件反编译的方法、防反编译软件启动的方法和装置 |
CN105068932A (zh) * | 2015-08-25 | 2015-11-18 | 北京安普诺信息技术有限公司 | 一种Android应用程序加壳的检测方法 |
Non-Patent Citations (2)
Title |
---|
汪欢: "安卓移动智能终端的恶意软件检测与分析方法", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
赵文耘 等: "《软件工程:方法与实践》", 31 December 2014, 复旦大学出版社 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259479A (zh) * | 2017-12-28 | 2018-07-06 | 广州启生信息技术有限公司 | 业务数据处理方法、客户端与计算机可读存储介质 |
CN109995534A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 一种对应用程序进行安全认证的方法和装置 |
CN109995534B (zh) * | 2017-12-29 | 2022-04-26 | 北京京东尚科信息技术有限公司 | 一种对应用程序进行安全认证的方法和装置 |
CN109145591A (zh) * | 2018-09-10 | 2019-01-04 | 上海连尚网络科技有限公司 | 应用程序的插件加载方法 |
CN109145591B (zh) * | 2018-09-10 | 2021-11-16 | 上海连尚网络科技有限公司 | 应用程序的插件加载方法 |
CN109902500A (zh) * | 2019-03-11 | 2019-06-18 | 北京城市网邻信息技术有限公司 | 一种通过链接库实现业务调用数据安全的方法及系统 |
CN109902500B (zh) * | 2019-03-11 | 2021-02-26 | 北京城市网邻信息技术有限公司 | 一种通过链接库实现业务调用数据安全的方法及系统 |
CN110826031A (zh) * | 2019-10-31 | 2020-02-21 | 北京东软望海科技有限公司 | 加密方法、装置、计算机设备及存储介质 |
WO2022134419A1 (zh) * | 2020-12-23 | 2022-06-30 | 北京奇虎科技有限公司 | 应用程序的篡改检测方法、装置、设备及存储介质 |
CN115001782A (zh) * | 2022-05-26 | 2022-09-02 | 爱驰汽车有限公司 | 接口请求参数的处理方法、装置、设备及存储介质 |
CN117235708A (zh) * | 2023-11-13 | 2023-12-15 | 紫光同芯微电子有限公司 | 应用程序运行时的接口授权调用方法、装置、系统和介质 |
CN117235708B (zh) * | 2023-11-13 | 2024-03-26 | 紫光同芯微电子有限公司 | 应用程序运行时的接口授权调用方法、装置、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105844150A (zh) | 一种应用程序的数据保护方法和装置 | |
EP3820111B1 (en) | Cross-chain data credible management method and apparatus, electronic device | |
US11048824B2 (en) | Method for improving security of trusted application | |
Sufatrio et al. | Securing android: a survey, taxonomy, and challenges | |
US9411962B2 (en) | System and methods for secure utilization of attestation in policy-based decision making for mobile device management and security | |
US8572692B2 (en) | Method and system for a platform-based trust verifying service for multi-party verification | |
AU2012337403B2 (en) | Cryptographic system and methodology for securing software cryptography | |
US8893225B2 (en) | Method and apparatus for secure web widget runtime system | |
US8032940B1 (en) | Method and system for generating and employing a secure integrated development environment | |
Chen et al. | DroidJust: Automated functionality-aware privacy leakage analysis for Android applications | |
CN106022098A (zh) | 一种应用程序的签名验证方法和装置 | |
CN110555293A (zh) | 用于保护数据的方法、装置、电子设备和计算机可读介质 | |
CN102855274A (zh) | 一种可疑进程检测的方法和装置 | |
CN105408912A (zh) | 处理认证和资源许可 | |
US20130042297A1 (en) | Method and apparatus for providing secure software execution environment based on domain separation | |
CN111475782A (zh) | 基于sgx软件扩展指令的api密钥保护方法及系统 | |
CN102685122B (zh) | 基于云端服务器的软件保护的方法 | |
US9407654B2 (en) | Providing multi-level password and phishing protection | |
Sikder et al. | A survey on android security: development and deployment hindrance and best practices | |
CN110245464B (zh) | 保护文件的方法和装置 | |
Rai | Android Application Security Essentials | |
Zhang et al. | A small leak will sink many ships: Vulnerabilities related to mini-programs permissions | |
CN109902500B (zh) | 一种通过链接库实现业务调用数据安全的方法及系统 | |
CN111600882A (zh) | 一种基于区块链的账户密码管理方法、装置及电子设备 | |
CN113868691B (zh) | 一种基于云原生的区块链的授权运行方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170111 Address after: 266000 Shandong Province, Qingdao city Laoshan District Songling Road No. 399 Applicant after: Poly Polytron Technologies Inc Address before: 266100 Laoshan, Qingdao province Hongkong District No. East Road, room 248, room 131 Applicant before: Hisense Media Networks Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160810 |
|
RJ01 | Rejection of invention patent application after publication |