CN109670332A - 应用数据保护方法、装置及其设备 - Google Patents

应用数据保护方法、装置及其设备 Download PDF

Info

Publication number
CN109670332A
CN109670332A CN201710953196.XA CN201710953196A CN109670332A CN 109670332 A CN109670332 A CN 109670332A CN 201710953196 A CN201710953196 A CN 201710953196A CN 109670332 A CN109670332 A CN 109670332A
Authority
CN
China
Prior art keywords
application program
input
output operation
data
life cycle
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
CN201710953196.XA
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.)
Harbin Antiy Technology Co Ltd
Original Assignee
Harbin Antiy 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 Harbin Antiy Technology Co Ltd filed Critical Harbin Antiy Technology Co Ltd
Priority to CN201710953196.XA priority Critical patent/CN109670332A/zh
Publication of CN109670332A publication Critical patent/CN109670332A/zh
Pending legal-status Critical Current

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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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

Landscapes

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

Abstract

本发明提出一种应用数据保护方法、装置及其设备,其中,应用数据保护方法包括:在应用程序运行过程中,若截获到应用程序执行了文件的输入输出操作,则获取应用程序在当前生命周期内的随机密钥;利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。由此,通过在应用程序运行过程中,在截获到应用程序执行了输入输出操作时,获取当前生命周期内的随机密钥对输入输出操作中的数据进行加密或解密操作,有效地给应用数据提供保护,在提升应用数据安全性的同时提高软件开发效率。

Description

应用数据保护方法、装置及其设备
技术领域
本发明涉及软件安全技术领域,尤其涉及一种应用数据保护方法、装置及其设备。
背景技术
目前,在Android软件开发过程中,需要对本软件中使用的文件数据进行保护。
相关技术中,作为一种示例,对于将数据写入文件的操作,可先对数据进行加密,然后调用标准的文件写函数将密文写入文件;对于从文件中的读数据的操作,可先调用标准的文件读函数将密文从文件中读出,然后将密文解密供程序其他模块使用。作为另一种示例,通过系统预制的高权限的安全软件,如高权限软件对本软件进程进行钩子,以便在本软件进行文件数据的读写时,对数据进行加密和解密。
然而,上述第一种方式中,保护文件数据需要在软件读写文件代码前添加数据加密和解密的函数调用,若软件中对文件的读写操作很频繁,而且分布在很多源码文件模块中,则保护文件数据的工作量将大大增加。特别是软件的初始迭代版本没有考虑文件数据保护问题时,日后的迭代版本若要进行文件数据保护,会增加很多工作量;上述第二种方式中,软件自身使用的文件数据安不安全完全依赖于运行环境是否有这样的高权限保护软件。若运行环境不存在这样的软件,则文件内容会直接暴露在文件系统中。
又比如,在Android系统中若要实现数据库加密,只能选择在程序中进行数据库字段加密,或使用非Google官方提供的带有加密数据库接口的框架。因此,无论使用上述哪种方式,要么会大大增加工作量,要么需要依赖系统环境的高权限安全软件,要么需要重新学习一套新的数据库访问应用程序编程接口。
发明内容
本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种应用数据保护方法,用于解决现有应用数据保护技术中要么需要明显增加工作量,要么需要依赖系统环境的高权限安全软件,要么需要重新学习一套新的数据库访问应用程序编程接口问题。
本发明的第二个目的在于提出一种应用数据保护装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
本发明的第五个目的在于提出一种计算机程序产品。
为达上述目的,本发明第一方面实施例提出了一种应用数据保护方法,包括:在应用程序运行过程中,若截获到所述应用程序执行了文件的输入输出操作,则获取所述应用程序在当前生命周期内的随机密钥;利用所述当前生命周期内的随机密钥,对所述输入输出操作中的数据进行加密或解密操作。。
本发明实施例的应用数据保护方法,通过在应用程序运行过程中,在截获到应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥,并利用当前生命周期内的随机密钥对输入输出操作中的数据进行加密或解密操作,从而有效地给应用数据提供保护,在提升应用数据安全性的同时提高软件开发效率。
另外,根据本发明上述实施例的应用数据保护方法还可以具有如下附加的技术特征:
可选地,所述获取所述应用程序在当前生命周期内的随机密钥之前,还包括:在所述应用程序初次启动、或者所述应用程序中已存储的数据被清除后,所述应用程序重新启动时,生成所述应用程序当前生命周期内的随机密钥。
可选地,所述生成所述应用程序当前生命周期内的随机密钥之后,还包括:利用预设的加密方式,对所述当前生命周期内的随机密钥进行加密。
可选地,所述截获到所述应用程序执行了输入输出操作之前,还包括:在所述应用程序启动时,通过所述应用程序中与输入输出操作关联的钩子函数接口,启动所述应用程序中的钩子函数;所述截获到所述应用程序执行了输入输出操作,包括:通过与所述输入输出操作关联的钩子函数,截获所述应用程序执行了输入输出操作。
可选地,所述启动所述应用程序中的钩子函数之前,还包括:通过查找所述应用程序的应用类,获取所述与输入输出操作关联的钩子函数接口。
为达上述目的,本发明第二方面实施例提出了一种应用数据保护装置,包括:第一获取模块,用于在应用程序运行过程中,在截获到所述应用程序执行了文件的输入输出操作时获取所述应用程序在当前生命周期内的随机密钥;处理模块,用于利用所述当前生命周期内的随机密钥,对所述输入输出操作中的数据进行加密或解密操作。
本发明实施例的应用数据保护装置,通过在应用程序运行过程中,在截获到应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥,并利用当前生命周期内的随机密钥对输入输出操作中的数据进行加密或解密操作,从而有效地给应用数据提供保护,在提升应用数据安全性的同时提高软件开发效率。
另外,根据本发明上述实施例的应用数据保护装置还可以具有如下附加的技术特征:
可选地,所述的装置,还包括:生成模块,用于在所述应用程序初次启动、或者所述应用程序中已存储的数据被清除后,所述应用程序重新启动时,生成所述应用程序当前生命周期内的随机密钥。
可选地,所述的装置,还包括:加密模块,用于利用预设的加密方式,对所述当前生命周期内的随机密钥进行加密。
可选地,所述的装置,还包括:启动模块,用于在所述应用程序启动时,通过所述应用程序中与输入输出操作关联的钩子函数接口,启动所述应用程序中的钩子函数;所述第一获取模块具体用于:在应用程序运行过程中,在通过与所述输入输出操作关联的钩子函数,截获所述应用程序执行了输入输出操作时获取所述应用程序在当前生命周期内的随机密钥。
可选地,所述的装置,还包括:第二获取模块,用于通过查找所述应用程序的应用类,获取所述与输入输出操作关联的钩子函数接口。
为了实现上述目的,本发明第三方面实施例提出了一种计算机设备,包括:包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如第一方面实施例所述的应用数据保护方法。
为了实现上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面实施例所述的应用数据保护方法。
为了实现上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行第一方面实施例所述的应用数据保护方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的应用数据保护方法的流程示意图;
图2为根据本发明另一个实施例的应用数据保护方法的流程示意图;
图3为根据本发明一个实施例的应用数据保护装置的结构示意图;
图4为根据本发明另一个实施例的应用数据保护装置的结构示意图;以及
图5是根据本发明一个实施例的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的应用数据保护方法、装置及其设备。
目前,用户对于应用数据保护的要求越来越高,比如要求在提高应用数据安全性的同时提高存储效率,即在不明显增加软件开发者工作量和不需要使用高权限保护应用的情况下,对应用数据提供保护,提升应用数据的安全性。
现有技术中的大多方案要么需要明显增加工作量,要么需要依赖系统环境的高权限安全软件,要么需要重新学习一套新的数据库访问应用程序编程接口。作为一种示例,通过系统预制的高权限的安全软件,如高权限软件对本软件进程进行钩子,以便在本软件进行文件数据的读写时,对数据进行加密和解密,即软件自身使用的文件数据安不安全完全依赖于运行环境是否有这样的高权限保护软件,若运行环境不存在这样的软件,则文件内容会直接暴露在文件系统中。
为了解决上述问题,本发明提出一种应用数据保护方法,通过在应用程序运行过程中,在截获到应用程序执行了输入输出操作时获取当前生命周期内的随机密钥对输入输出操作中的数据进行加密或解密操作,有效地给应用数据提供保护,在提升应用数据安全性的同时提高软件开发效率。具体描述如下:
图1为根据本发明一个实施例的应用数据保护方法的流程示意图。如图1所示,该应用数据保护方法包括以下步骤:
步骤101,在应用程序运行过程中,若截获到应用程序执行了文件的输入输出操作,则获取应用程序在当前生命周期内的随机密钥。
步骤102,利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。
需要说明的是,本发明以软件开发工具包模块的方式保护应用数据,软件开发工具包启动时会对当前进程的文件输入输出系统调用(如读、写等)进行钩子,以便在读文件后将数据解密,在写文件前将数据加密。因为软件开发工具包使用的机制为对自身的应用进程进行钩子,不需要特殊的高级别权限应用。
具体地,在实际应用过程中,可以是一个或者多个应用程序在运行过程中执行了文件的输入输出操作。其中,可以采用很多种方式截获到应用程序执行了文件的输入输出操作,可以根据实际应用需要进行选择设置,举例说明如下:
作为一种示例,通过预设的钩子函数对各个应用程序进行监测,在应用程序执行了文件的输入输出操作时进行截获;作为另一种示例,通过预设的算法或者模型对对各个应用程序进行监测,在应用程序执行了文件的输入输出操作时进行截获。
进一步地,在截获到应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥。可以理解的是,随机密钥在一个生命周期内是保持不变的,从而保证正常的数据加密解密操作。
其中,生命周期可以理解的是,在一个应用程序比如微信在运行的过程中,从第一次启动开始使用后生成的随机密钥是保持不变,以保证接收到的数据比如照片、文件等能够正常进行加密解密操作。此时,如果卸载微信、或者是将微信中已存储的数据清除后,再次安装启动微信时可以生成新的随机密钥,其在新的生命周期内保持不变。
进一步地,在获取当前生命周期内的随机密钥后,利用随机密钥对输入输出操作中的数据进行加密或解密操作,即对输入操作中的数据进行加密,或者对输出操作中的数据进行解密。
具体地,可以根据不同的场景选择不同的方式利用随机密钥对输入输出操作中的数据进行加密或解密操作,可以根据实际应用需要进行选择设置,比如可以按照有源码和无源码分为两种场景进行处理。
综上所述,本发明实施例的应用数据保护方法,通过在应用程序运行过程中,在截获到应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥,并利用当前生命周期内的随机密钥对输入输出操作中的数据进行加密或解密操作,从而有效地给应用数据提供保护,在提升应用数据安全性的同时提高软件开发效率。
图2为根据本发明另一个实施例的应用数据保护方法的流程示意图。如图2所示,该应用数据保护方法包括以下步骤:
步骤201,在应用程序初次启动、或者应用程序中已存储的数据被清除后,应用程序重新启动时,生成应用程序当前生命周期内的随机密钥。
具体地,在每次应用程序重新安装后第一次启动时重新生成随机密钥,或者是每次应用程序数据被完全清除后第一次启动时重新生成随机密钥。
步骤202,利用预设的加密方式,对当前生命周期内的随机密钥进行加密。
具体地,可以由安卓应用类实例调用启动文件数据保护模块接口,文件数据保护模块第一次启动时会随机生成用于文件加密解密的高强度密钥,并利用预设的加密方式进行加密存储于文件系统中。直到应用程序卸载后或应用程序数据被清除后失效,下次应用程序重新安装时重新随机生成用于文件加密解密的高强度密钥。
其中,预设的加密方式比如是固定的加密密码,或者固定的加密方式等等。
具体地,可以使用对称的加密密钥对应用数据进行加密解密,并使用非对称密钥对完成对称密钥的加密和解密工作,进一步提高应用数据保护的安全性。
步骤203,通过查找应用程序的应用类,获取与输入输出操作关联的钩子函数接口。
步骤204,在应用程序启动时,通过应用程序中与输入输出操作关联的钩子函数接口,启动应用程序中的钩子函数。
具体地,在有源码的情况下,仅需要将软件开发工具包集成到项目中,并在应用程序初始化代码中添加启用文件数据保护的函数调用,重新编译应用程序后便可使本应用程序获得对文件数据保护的能力。
作为一种示例,添加软件开发工具包所包含的jar文件和so库到项目中,若源码工程中存在自定义应用类,则在应用程序的attachBaseContext方法中添加启动软件开发工具包的代码,若源码工程不存在自定义应用类,则新建自定义应用类,然后再在应用程序的attachBaseContext方法中添加启动软件开发工具包的代码。
具体地,将SDK模块的启动代码添加到自定义的应用类的初始化代码中。由于应用类不是安卓应用开发所必须的组件,因此若不存在这样的自定义应用程序的情况下,需要要求开发者进行创建。当然在无源码情况下,该代码可以由工具生成。
具体地,在无源码的情况下,需要将原有APK安装包(Android安装包)进行解包,并将SDK(软件开发工具包)及调用SDK的Dex文件打包到APK中,然后重新打包并签名该APK。该过程通过工具软件实现,工具软件输入原始APK文件路径,输出保护过的APK文件,由此便可使本应用程序获得对文件数据保护的能力。
作为一种示例,使用unzip工具解包APK,将数据保护模块的Dex文件及So文件拷贝到APK解压后的文件夹中对应的子文件夹中,将原APK中的Dex文件移动到assets目录中,使用zip工具重新打包APK,使用apktool工具解包APK,添加或修改androidmanifest.xml配置文件,使APK在运行时首选运行数据保护模块的Dex代码,使用apktool重新打包APK。
具体地,在无源码的情况下,需要对已经编译好的二进制APK文件进行操作,由于APK文件本身是一个Zip格式的压缩包,可以使用zip工具对其进行解包和打包,以便向APK中注入SDK模块。若要向APK中注入调用SDK的代码,则需要使用apktool工具对APK进行反编译和重新编译,以便将SDK启动的代码注入到APK中。
由此,使用SDK形式为软件开发者提供支持,可使用有源码集成方式或无源码集成方式对应用程序中使用文件数据进行保护。
进一步地,通过查找应用程序的应用类,获取与输入输出操作关联的钩子函数接口,从而,在应用程序启动时,通过应用程序中与输入输出操作关联的钩子函数接口,启动应用程序中的钩子函数,即可以对输入输出系统调用进行钩子,如读、写等。
步骤205,在应用程序运行过程中,通过与输入输出操作关联的钩子函数,截获应用程序执行了输入输出操作时获取应用程序在当前生命周期内的随机密钥。
具体地,当应用程序执行了输入输出操作时,可以执行到SDK中自定义的read、write、mmap等函数。从而,可以通过与输入输出操作关联的钩子函数截获应用程序执行了输入输出操作时获取应用程序在当前生命周期内的随机密钥。
步骤206,利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。
具体地,在自定义输入输出操作函数中,可以对从文件中读出的数据进行解密,再返回给上层调用者。对向文件中写入的数据进行加密,以便数据在文件系统中体现为密文存储。
需要说明的是,在文件输入输出系统调用中可以根据文件描述符得到对应文件的绝对路径,以便进行过滤,使真正需要保护的文件得到保护。
综上所述,本发明实施例的应用数据保护方法,通过在应用程序初次启动、或者应用程序中已存储的数据被清除后,应用程序重新启动时,生成应用程序当前生命周期内的随机密钥,并通过查找应用程序的应用类,获取与输入输出操作关联的钩子函数接口,从而在应用程序启动时通过应用程序中与输入输出操作关联的钩子函数接口启动应用程序中的钩子函数,然后在应用程序运行过程中,通过与输入输出操作关联的钩子函数,截获应用程序执行了输入输出操作时获取应用程序在当前生命周期内的随机密钥,并利用预设的加密方式,对当前生命周期内的随机密钥进行加密,最后利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。在不明显增加应用程序开发者工作量和不需要使用高权限软件的情况下,对应用程序存储在文件系统中的文件数据提供保护,提升应用程序的安全性的同时提高软件开发效率。另外,本发明实施例的应用数据保护方法不仅可以对应用程序中使用的普通数据文件进行加密保护,甚至也可用于对数据库在文件系统中的实体文件进行保护,使数据库在文件系统中以密文的形式存储。
与上述几种实施例提供的应用数据保护方法相对应,本发明的一种实施例还提供一种应用数据保护装置,由于本发明实施例提供的应用数据保护装置与上述几种实施例提供的应用数据保护方法相对应,因此在前述应用数据保护方法的实施方式也适用于本实施例提供的应用数据保护装置,在本实施例中不再详细描述。
图3为根据本发明一个实施例的应用数据保护装置的结构示意图。如图3所示,该应用数据保护装置包括:第一获取模块11和处理模块12。
其中,第一获取模块11,用于在应用程序运行过程中,在截获到应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥。
处理模块,用于利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。
综上所述,本发明实施例的应用数据保护装置,通过在应用程序运行过程中,在截获到应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥,并利用当前生命周期内的随机密钥对输入输出操作中的数据进行加密或解密操作,从而有效地给应用数据提供保护,在提升应用数据安全性的同时提高应用数据保护的效率。
图4为根据本发明另一个实施例的应用数据保护装置的结构示意图。在图3的基础上,如图4所示,该应用数据保护装置还包括:生成模块13、加密模块14、启动模块15和第二获取模块16。
其中,生成模块13,用于在应用程序初次启动、或者应用程序中已存储的数据被清除后,所述应用程序重新启动时,生成应用程序当前生命周期内的随机密钥。
加密模块14,用于利用预设的加密方式,对当前生命周期内的随机密钥进行加密。
启动模块15,用于在应用程序启动时,通过应用程序中与输入输出操作关联的钩子函数接口,启动应用程序中的钩子函数。
第一获取模块11具体用于:在应用程序运行过程中,在通过与输入输出操作关联的钩子函数,截获应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥。
第二获取模块16,用于通过查找应用程序的应用类,获取与输入输出操作关联的钩子函数接口。
综上所述,本发明实施例的应用数据保护装置,通过在应用程序初次启动、或者应用程序中已存储的数据被清除后,应用程序重新启动时,生成应用程序当前生命周期内的随机密钥,并通过查找应用程序的应用类,获取与输入输出操作关联的钩子函数接口,从而在应用程序启动时通过应用程序中与输入输出操作关联的钩子函数接口启动应用程序中的钩子函数,然后在应用程序运行过程中,通过与输入输出操作关联的钩子函数,截获应用程序执行了文件的输入输出操作时获取应用程序在当前生命周期内的随机密钥,并利用预设的加密方式,对当前生命周期内的随机密钥进行加密,最后利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。在不明显增加应用程序开发者工作量和不需要使用高权限软件的情况下,对应用程序存储在文件系统中的文件数据提供保护,提升应用程序的安全性。另外,本发明实施例的应用数据保护方法不仅可以对应用程序中使用的普通数据文件进行加密保护,甚至也可用于对数据库在文件系统中的实体文件进行保护,使数据库在文件系统中以密文的形式存储。
本发明提出一种计算机设备,图5是根据本发明一个实施例的计算机设备的结构示意图。如图5所示,存储器21、处理器22及存储在存储器21上并可在处理器22上运行的计算机程序。
处理器22执行所述程序时实现上述实施例中提供的应用数据保护方法。
进一步地,计算机设备还包括:
通信接口23,用于存储器21和处理器22之间的通信。
存储器21,用于存放可在处理器22上运行的计算机程序。
存储器21可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器22,用于执行所述程序时实现上述实施例所述的应用数据保护方法。
如果存储器21、处理器22和通信接口23独立实现,则通信接口21、存储器21和处理器22可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器21、处理器22及通信接口23,集成在一块芯片上实现,则存储器21、处理器22及通信接口23可以通过内部接口完成相互间的通信。
处理器22可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述实施例所述的应用数据保护方法,所述方法包括:在应用程序运行过程中,若截获到应用程序执行了文件的输入输出操作,则获取应用程序在当前生命周期内的随机密钥;利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。
为了实现上述实施例,本发明还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行上述实施例所述的应用数据保护方法,所述方法包括:在应用程序运行过程中,若截获到应用程序执行了文件的输入输出操作,则获取应用程序在当前生命周期内的随机密钥;利用当前生命周期内的随机密钥,对输入输出操作中的数据进行加密或解密操作。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (13)

1.一种应用数据保护方法,其特征在于,包括:
在应用程序运行过程中,若截获到所述应用程序执行了文件的输入输出操作,则获取所述应用程序在当前生命周期内的随机密钥;
利用所述当前生命周期内的随机密钥,对所述输入输出操作中的数据进行加密或解密操作。
2.如权利要求1所述的方法,其特征在于,所述获取所述应用程序在当前生命周期内的随机密钥之前,还包括:
在所述应用程序初次启动、或者所述应用程序中已存储的数据被清除后,所述应用程序重新启动时,生成所述应用程序当前生命周期内的随机密钥。
3.如权利要求2所述的方法,其特征在于,所述生成所述应用程序当前生命周期内的随机密钥之后,还包括:
利用预设的加密方式,对所述当前生命周期内的随机密钥进行加密。
4.如权利要求1-3任一所述的方法,其特征在于,所述截获到所述应用程序执行了输入输出操作之前,还包括:
在所述应用程序启动时,通过所述应用程序中与输入输出操作关联的钩子函数接口,启动所述应用程序中的钩子函数;
所述截获到所述应用程序执行了输入输出操作,包括:
通过与所述输入输出操作关联的钩子函数,截获所述应用程序执行了输入输出操作。
5.如权利要求4所述的方法,其特征在于,所述启动所述应用程序中的钩子函数之前,还包括:
通过查找所述应用程序的应用类,获取所述与输入输出操作关联的钩子函数接口。
6.一种应用数据保护装置,其特征在于,包括:
第一获取模块,用于在应用程序运行过程中,在截获到所述应用程序执行了文件的输入输出操作时获取所述应用程序在当前生命周期内的随机密钥;
处理模块,用于利用所述当前生命周期内的随机密钥,对所述输入输出操作中的数据进行加密或解密操作。
7.如权利要求6所述的装置,其特征在于,还包括:
生成模块,用于在所述应用程序初次启动、或者所述应用程序中已存储的数据清除后,所述应用程序重新启动时,生成所述应用程序当前生命周期内的随机密钥。
8.如权利要求7所述的装置,其特征在于,还包括:
加密模块,用于利用预设的加密方式,对所述当前生命周期内的随机密钥进行加密。
9.如权利要求6-8任一所述的装置,其特征在于,还包括:
启动模块,用于在所述应用程序启动时,通过所述应用程序中与输入输出操作关联的钩子函数接口,启动所述应用程序中的钩子函数;
所述第一获取模块具体用于:
在应用程序运行过程中,在通过与所述输入输出操作关联的钩子函数,截获所述应用程序执行了输入输出操作时获取所述应用程序在当前生命周期内的随机密钥。
10.如权利要求9所述的装置,其特征在于,还包括:
第二获取模块,用于通过查找所述应用程序的应用类,获取所述与输入输出操作关联的钩子函数接口。
11.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-5中任一所述的应用数据保护方法。
12.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的应用数据保护方法。
13.一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行如权利要求1-5中任一所述的应用数据保护方法。
CN201710953196.XA 2017-10-13 2017-10-13 应用数据保护方法、装置及其设备 Pending CN109670332A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710953196.XA CN109670332A (zh) 2017-10-13 2017-10-13 应用数据保护方法、装置及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710953196.XA CN109670332A (zh) 2017-10-13 2017-10-13 应用数据保护方法、装置及其设备

Publications (1)

Publication Number Publication Date
CN109670332A true CN109670332A (zh) 2019-04-23

Family

ID=66138993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710953196.XA Pending CN109670332A (zh) 2017-10-13 2017-10-13 应用数据保护方法、装置及其设备

Country Status (1)

Country Link
CN (1) CN109670332A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674519A (zh) * 2019-09-25 2020-01-10 启迪国信(北京)信息技术有限公司 一种数据保护方法、装置、电子设备和存储介质
CN111104691A (zh) * 2019-11-28 2020-05-05 贝壳技术有限公司 敏感信息的处理方法、装置、存储介质及设备
CN111143879A (zh) * 2019-12-26 2020-05-12 厦门市美亚柏科信息股份有限公司 一种Android平台SD卡文件保护方法、终端设备及存储介质
CN111241556A (zh) * 2019-12-31 2020-06-05 重庆特斯联智慧科技股份有限公司 一种数据安全存储方法、装置、存储介质及终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124675A1 (en) * 2010-11-11 2012-05-17 Samsung Sds Co., Ltd. Apparatus and method for managing digital rights through hooking a kernel native api
CN106599628A (zh) * 2016-12-08 2017-04-26 合肥康捷信息科技有限公司 一种基于模块钩子的Python字节码文件保护方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124675A1 (en) * 2010-11-11 2012-05-17 Samsung Sds Co., Ltd. Apparatus and method for managing digital rights through hooking a kernel native api
CN106599628A (zh) * 2016-12-08 2017-04-26 合肥康捷信息科技有限公司 一种基于模块钩子的Python字节码文件保护方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱天楠: "Android系统中隐私数据保护技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674519A (zh) * 2019-09-25 2020-01-10 启迪国信(北京)信息技术有限公司 一种数据保护方法、装置、电子设备和存储介质
CN111104691A (zh) * 2019-11-28 2020-05-05 贝壳技术有限公司 敏感信息的处理方法、装置、存储介质及设备
CN111143879A (zh) * 2019-12-26 2020-05-12 厦门市美亚柏科信息股份有限公司 一种Android平台SD卡文件保护方法、终端设备及存储介质
CN111241556A (zh) * 2019-12-31 2020-06-05 重庆特斯联智慧科技股份有限公司 一种数据安全存储方法、装置、存储介质及终端

Similar Documents

Publication Publication Date Title
US10853270B2 (en) Cryptographic pointer address encoding
CN108932297B (zh) 一种数据查询、数据共享的方法、装置及设备
US8572410B1 (en) Virtualized protected storage
CN109670332A (zh) 应用数据保护方法、装置及其设备
EP2795829B1 (en) Cryptographic system and methodology for securing software cryptography
CN106599629B (zh) 一种安卓应用程序加固方法及装置
CN110210190A (zh) 一种基于二次汇编的代码混淆方法
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
KR950029930A (ko) 화일 액세스 보안유지 방법 및 장치
CN103210396A (zh) 包括用于保护敏感代码和数据的架构的方法和装置
CN103294961A (zh) 一种文件加/解密方法以及文件加/解密装置
CN103413076A (zh) 一种Android应用程序分块保护的方法
CN103765429A (zh) 数字签名机构相关的平台秘密
CN107111728A (zh) 安全密钥导出功能
CN105303074A (zh) 一种保护Web应用程序安全的方法
CN102930223B (zh) 一种磁盘数据保护方法和系统
CN108399319A (zh) 源代码保护方法、应用服务器及计算机可读存储介质
CN102129540A (zh) 文件动态透明加密解密方法
CN109460673A (zh) 基于强制访问控制保护移动终端敏感数据的方法及系统
CN108133147B (zh) 可执行代码的保护方法、设备及可读存储介质
US20100077230A1 (en) Protecting a programmable memory against unauthorized modification
CN106682521A (zh) 基于驱动层的文件透明加解密系统及方法
RU2458389C2 (ru) Однокристальный компьютер и тахограф
CN102289625A (zh) 具有加密功能的存储芯片和防盗版方法
CN106326733A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 150028 Building 7, Innovation Plaza, Science and Technology Innovation City, Harbin Hi-tech Industrial Development Zone, Harbin, Heilongjiang Province (838 Shikun Road)

Applicant after: Harbin antiy Technology Group Limited by Share Ltd

Address before: Room 506, Room 162, Hongqi Street, No. 17 Building, Nangang, High-tech Venture Center, Harbin High-tech Industrial Development Zone, Heilongjiang Province, 150000

Applicant before: Harbin Antiy Technology Co., Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190423