CN108509802A - 一种应用程序数据防泄密方法和装置 - Google Patents
一种应用程序数据防泄密方法和装置 Download PDFInfo
- Publication number
- CN108509802A CN108509802A CN201810168678.9A CN201810168678A CN108509802A CN 108509802 A CN108509802 A CN 108509802A CN 201810168678 A CN201810168678 A CN 201810168678A CN 108509802 A CN108509802 A CN 108509802A
- Authority
- CN
- China
- Prior art keywords
- data
- host program
- security module
- data file
- application
- 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.)
- Granted
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/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
-
- 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/602—Providing cryptographic facilities or services
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种应用程序数据防泄密方法和装置,在智能终端上安装宿主程序和使用安全模块,通过宿主程序拦截和代理系统服务,实现对目标应用程序的安装、调用、监控和管理;通过安全模块实现硬件加密,为目标应用程序的每个数据文件分别分配不同的密钥,并完成密钥的加解密,对每个需要加密的数据文件使用其独有的密钥实现数据的透明加解密。目标应用程序访问数据文件必须通过与安全模块绑定的宿主程序,这样使目标应用程序运行在一个严密的保密运行空间,目标应用程序的数据只能在这个保密运行空间使用。本发明技术方案能更有效地防止应用程序的数据泄密,使应用程序数据具有更高的安全性。
Description
技术领域
本发明涉及应用程序技术领域,具体涉及一种应用程序数据防泄密方法和装置。
背景技术
用户数据的泄密问题,是信息安全问题的一个重要方面。用户在使用智能终端时,应用程序和木马病毒等都有可能造成用户数据的泄密,给用户带来隐私泄露和财产损失。对于国家机关和企事业单位来说,为了保护业务数据和机密信息的安全,智能终端的数据防泄密措施一方面需要防止因系统漏洞和外部攻击造成的信息泄密,另一方面还需要防止员工不当操作造成的泄密,从而对智能终端数据泄露防护体系提出了更高的要求。
使用沙盒技术,可以在本地操作系统基础上,通过进程及内存等资源隔离,控制沙箱内的进程对本地系统资源的调用,构造出与本地系统共存但相互间完全隔离的虚拟环境。本地系统中即使存在病毒和木马,也无法感染或探测到沙盒中的重要应用程序或文件。在沙盒中使用应用程序进行操作时产生和使用的敏感数据,在退出沙盒后无法被直接读取。运用沙盒技术还可以限制应用程序的系统权限和行为,阻止用户的非法操作。因而,沙盒技术也可以用于应用程序的安全管理和数据防泄密。
但是,仅使用沙盒技术通过对应用程序进行隔离并不能满足数据防泄密的需求。结合沙盒技术对数据进行透明加密,可以大大提高数据的安全性。现有的数据防泄密系统通过加密软件进行对数据加密,只能实现有限的安全性,仍然很容易被攻破,对于用户尤其是移动办公用户来说,仍然不能满足日益增长的安全需求。如何为应用程序的数据防泄密提供更加安全可靠的方案,是目前亟需解决的问题。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供了一种应用程序数据防泄密方法和装置。
为了实现上述目的,本发明所采用的技术方案是:一种应用程序数据防泄密方法,包括以下步骤:
步骤100:在智能终端上安装宿主程序,其中所述智能终端内嵌或者外插有安全模块,将所述宿主程序的识别码与所述安全模块的识别码进行绑定;
步骤200:通过所述宿主程序安装目标应用程序,当需要运行所述目标应用程序时,通过所述宿主程序调用所述目标应用程序,并监控所述目标应用程序的行为;
步骤300:当所述目标应用程序需要打开数据文件时,所述宿主程序先调用“打开”操作对应的系统服务,打开所述数据文件,再将所述数据文件的类型与加密文件类型列表进行匹配:
步骤301,若所述数据文件的类型和所述加密文件类型列表匹配失败,则当所述目标应用程序需要对所述数据文件进行操作时,所述宿主程序调用与所述操作相对应的系统服务完成所述操作;
步骤302,若所述数据文件的类型和所述加密文件类型列表匹配成功,则当所述目标应用程序需要对所述数据文件进行操作时,所述宿主程序调用所述安全模块获取所述数据文件的密钥,对所述数据文件的数据内容进行加/解密,以及调用与所述操作对应的系统服务完成所述操作;
其中,所述加密文件类型列表在所述宿主程序中预先设置,所述加密文件类型列表的列表项内容包括数据文件类型、数据文件类型格式和对应的加密数据文件格式,所述加密数据文件格式包括加密标识位和密钥位,所述加密标识位用于保存所述数据文件的加密标识,所述密钥位用于保存所述数据文件的密钥。
基于上述,步骤302中,所述宿主程序调用所述安全模块获取所述数据文件的密钥,对所述数据文件的数据内容进行加/解密,以及调用与所述操作对应的系统服务完成所述操作的具体步骤为:
步骤3021,所述宿主程序检测所述数据文件中是否有加密标识;
步骤3022,若有加密标识,则所述宿主程序从所述数据文件中的密钥位获取密钥的密文,调用所述安全模块将所述密钥解密;在所述操作为“读”操作时,调用“读”操作对应的系统服务完成所述“读”操作,并使用所述密钥对读出的数据内容进行解密;在所述操作为“写”操作时,使用所述密钥对准备写入的数据内容进行加密,并调用“写”操作对应的系统服务完成所述“写”操作;
步骤3023,若没有加密标识,则在所述操作为“读”操作时,所述宿主程序调用“读”操作对应的系统服务完成所述读操作;在所述操作为“写”操作时,所述宿主程序调用所述安全模块,生成所述数据文件的加密标识和密钥,并使用所述密钥,对所述数据文件中的数据内容和准备写入所述数据文件的数据内容进行加密,得到数据内容密文;所述宿主程序调用所述安全模块把所述密钥加密,并调用“写”操作对应的系统服务,将所述加密标识、所述密钥的密文以及所述数据内容密文,按所述数据文件类型所对应的加密数据文件格式,以覆盖方式写入所述数据文件中。
基于上述,将所述宿主程序的识别码与所述安全模块的识别码进行绑定具体包括:
在所述宿主程序的用户接口中输入所述安全模块的识别码;
所述宿主程序将所述宿主程序的识别码发送到所述安全模块;
所述安全模块保存所述宿主程序的识别码。
基于上述,所述宿主程序调用所述安全模块时,所述安全模块需要对宿主程序进行身份验证,具体包括:
所述宿主程序将所述安全模块的识别码和所述宿主程序的识别码发送给所述安全模块;
所述安全模块把收到的所述宿主程序的识别码与自身保存的所述宿主程序的识别码进行匹配,并把收到的所述安全模块的识别码与自身的识别码进行匹配;
如果均匹配成功,所述安全模块向所述宿主程序返回匹配成功标识,所述宿主程序调用所述安全模块完成后续操作;否则所述安全模块向所述宿主程序返回匹配失败标识,所述宿主程序报错并返回。
基于上述,所述智能终端使用安卓系统,所述宿主程序使用动态代理和反射机制实现对安卓系统服务的拦截和代理。
基于上述,所述宿主程序采用口令验证和/或生物特征身份验证方法,对使用所述宿主程序的用户进行身份验证。
基于上述,所述目标应用程序的行为的系统权限通过所述宿主程序限制。
基于上述,所述宿主程序还拦截所述目标应用程序的网络数据,设置所述目标应用程序的网络数据重定向路径。
本发明还提供了一种应用程序数据防泄密装置,该装置包括应用管理模块和安全模块;
所述应用管理模块为安装在智能终端上的宿主程序,用于对系统服务进行拦截和代理,对目标应用程序进行安装、调用、监控和管理,以及对安全模块功能进行调用;
所述安全模块包括密码安全芯片,所述安全模块内嵌或者外插在智能终端上,用于进行所述应用管理模块的身份验证,为目标应用程序的数据文件生成密钥,并对所述密钥进行加密和解密,以及使用所述密钥对所述目标应用程序的数据进行加密和解密;
所述应用管理模块的识别码与所述安全模块的识别码绑定;当目标应用程序需要对所述数据文件进行操作时,通过所述应用管理模块调用所述安全模块,获得所述数据文件的密钥,对数据内容进行加/解密,以及调用所述操作对应的系统服务完成所述操作。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,
1,本发明的技术方案通过在智能终端上安装宿主程序和使用安全模块,通过宿主程序拦截和代理系统服务,实现对目标应用程序的安装、调用、监控和管理;通过安全模块为目标应用程序的每个数据文件分别分配不同的密钥,并完成密钥的加解密,对每个需要加密的数据文件使用其独有的密钥实现数据的透明加解密。当宿主程序监控到目标应用程序需要对数据文件进行操作时,代理相关的系统服务,对写入的数据内容进行了加密处理,对读出的数据内容进行了解密处理,用户正常使用时感觉不到加解密的存在。
2,本发明的技术方案利用密码技术在目标应用程序和系统之间增加了一个保密隔离层;本技术方案由于使用安全模块实现硬件加密,具有基于硬件的可信根,加密密钥更具有安全保障,可以在安全的前提下很方便地对每个数据文件使用不同的密钥,并把数据文件的密钥使用安全模块加密后保存在该数据文件中的确定位置,使密钥的存储和管理简单方便且安全性高。目标应用程序访问数据文件必须通过与安全模块绑定的宿主程序,这样使目标应用程序运行在一个严密的保密运行空间,目标应用程序的数据只能在这个保密运行空间使用,即使利用各种攻击手段,也只能获取应用程序数据的密文,难以破解。
3,与现有技术相比,本发明技术方案能更有效地防止应用程序的数据泄密,使应用程序数据具有更高的安全性。
附图说明
图1是本发明所述应用程序数据防泄密方法的流程示意图。
图2是本发明所述应用程序数据防泄密方法中步骤302的具体流程示意图。
图3是本发明所述应用程序数据防泄密装置的原理框图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
本发明实施例提供一种应用程序数据防泄密方法,如图1所示,该方法包括以下步骤:
步骤100,在智能终端上安装宿主程序,所述智能终端内嵌或者外插有安全模块,将所述宿主程序的识别码与所述安全模块的识别码进行绑定。
优选的,所述宿主程序是用软件形式实现的一种应用程序管理系统,用于拦截和代理所述智能终端上的系统服务,对目标应用程序进行安装、调用、监控和管理,以及对安全模块功能进行调用。
所述安全模块用于密钥生成、加解密以及身份验证,优选地,所述安全模块包括密码安全芯片,通过所述密码安全芯片实现密码运算,能够确保加密硬件中的密钥和关键参数的安全,可以预防常见的一些攻击方式。
根据本发明的一个具体实施方式,所述宿主程序可以采用口令验证和/或生物特征身份验证方法,对使用所述宿主程序的用户进行身份验证。用来验证的口令可以是所述安全模块的识别码,或者预先设定的其它口令。生物特征身份验证方法可以包括指纹识别、人脸识别、虹膜识别、声纹识别、手势识别等。通过对使用所述宿主程序的用户进行身份验证,可以使目标应用程序及其数据的使用范围仅限于合法用户,其他人既无法使用目标应用程序,也无法看到目标应用程序相关的数据,进一步减少了目标应用程序数据泄密的风险,增强了目标应用程序数据的安全性。
根据本发明的一个具体实施方式,所述宿主程序还可以限制所述目标应用程序的系统权限,监控所述目标应用程序的行为。所述系统权限包括对数据的读写、网络的访问、系统设置的修改、系统功能的调用等,例如安卓系统中发送消息、修改/删除SD卡上的内容、读取联系人信息、读取日程信息,写入日程数据等等。
根据本发明的一个具体实施方式,所述宿主程序还可以拦截所述目标应用程序的网络数据,设置所述目标应用程序的网络数据重定向路径。例如,可以通过宿主程序在智能终端上建立起VPN连接,通过虚拟网络接口获取需要重定向的网络数据包,对拦截到的目标应用程序的IP数据包进行解析,得到源地址及端口号、目的地址及端口号,通过源端口号获取数据包对应的进程及应用信息,并决定重定向路径,实现对目标应用程序网络数据的重定向操作。
具体的,所述安全模块的识别码可以是所述密钥安全芯片的PIN码,将所述宿主程序的识别码与所述安全模块的识别码进行绑定的步骤具体可以包括:
在所述宿主程序的用户接口中输入所述安全模块的识别码;
所述宿主程序将所述宿主程序的识别码发送到所述安全模块;
所述安全模块保存所述宿主程序的识别码。
相应地,根据本发明的一个具体实施方式,所述宿主程序调用所述安全模块时,所述安全模块需要对所述宿主程序进行身份验证,具体为:
所述宿主程序将所述安全模块的识别码和所述宿主程序的识别码发送给所述安全模块;
所述安全模块将收到的所述宿主程序的识别码与自身保存的所述宿主程序的识别码进行匹配,并把收到的所述安全模块的识别码与自身的识别码进行匹配;
如果均匹配成功,所述安全模块向所述宿主程序返回匹配成功标识,所述宿主程序调用所述安全模块完成后续操作;否则所述安全模块向所述宿主程序返回匹配失败标识,所述宿主程序报错并返回。
通过把所述宿主程序的识别码与所述安全模块的识别码的绑定在一起,以及所述宿主程序每次调用安全模块时均由所述安全模块进行身份验证,对安全模块的使用进行了严格的限制,进一步保证了所述目标应用程序的数据不被其它恶意程序获取,防止数据泄密。
步骤200:通过所述宿主程序安装目标应用程序,当需要运行所述目标应用程序时,通过所述宿主程序调用所述目标应用程序,并监控所述目标应用程序的行为;
通过所述宿主程序安装目标应用程序,具体包括以下步骤:获取所述目标应用程序的安装包,通过所述宿主程序解析所述目标应用程序的安装包,并把所述目标应用程序的安装包信息保存到所述宿主程序的私有目录。
步骤300:当所述目标应用程序需要打开数据文件时,所述宿主程序先调用“打开”操作对应的系统服务,打开所述数据文件,再将所述数据文件的类型与加密文件类型列表进行匹配,并根据匹配结果执行步骤301或步骤302。
优选的,所述加密文件类型列表在所述宿主程序中预先设置,所述加密文件类型列表的列表项内容包括数据文件类型、数据文件类型格式和对应的加密数据文件格式,所述加密数据文件格式包括加密标识位和密钥位,所述加密标识位用于保存所述数据文件的加密标识,所述密钥位用于保存所述数据文件的密钥。
所述数据文件类型包括常用的文档文件类型txt、doc、docx、ppt、pptx、xls、wps、rtf、pdf、htm等,常用的图像文件类型bmp、gif、jpg、pic、png、tif等,常用的声音文件类型wav、pcm、mp3、ra、mid、mod、cda等,常用的视频文件类型avi、rm、rmvb、wmv、mp4、3gp、mkv等等。通过设置所述加密文件类型列表,可以避免对非数据文件进行加密影响到所述目标应用程序的正常运行。
对于每一种数据文件类型,还需要针对其文件格式定义出加密文件格式。所述加密文件格式定义时主要是附加上加密标识位和密钥位,用来保存该数据文件的加密标识和密钥。
所述加密标识的用途是用来表明数据文件是否已经被加密,如果数据文件的加密标识位中有加密标识,则表明该数据文件已经被加密过;所述加密标识可以是固定标识,也可以是便于所述宿主程序识别的非固定标识。
所述密钥位中保存的是该数据文件的密钥的密文,其中,所述密钥由所述安全模块生成,也由所述安全模块进行加密。由于所述安全模块具有基于硬件的可信根,所述数据文件的密钥使用所述安全模块加密后具有很高安全性,可以直接放在所述数据文件中。
所述加密文件格式定义时要保留原有的例如文件头等基本格式,避免影响应用程序对该数据文件格式的解析和数据的读取。
在具体实施例中,所述宿主程序还可以提供用户接口,使用户可以根据应用程序的具体情况在加密文件类型列表中添加、删除或者修改所述加密文件类型列表的列表项。
步骤301,若所述数据文件的类型和所述加密文件类型列表匹配失败,则表明所述数据文件类型不需要或者不能由所述宿主程序进行加解密,因而当所述目标应用程序需要对所述数据文件进行操作时,所述宿主程序调用与所述操作相对应的系统服务完成所述操作。
步骤302,若所述数据文件的类型和所述加密文件类型列表匹配成功,则当所述目标应用程序需要对所述数据文件进行操作时,所述宿主程序调用所述安全模块获取所述数据文件的密钥,对所述数据文件的数据内容进行加/解密,以及调用与所述操作对应的系统服务完成所述操作。
如图2所示,步骤302的具体步骤为:
步骤3021,当所述目标应用程序需要对所述数据文件进行读/写操作时,所述宿主程序检测所述数据文件中是否有加密标识,若有加密标识,则执行步骤3022;若无加密标识,则执行步骤3023;
新创建的数据文件或者系统中原有的未加密数据文件,由于还未曾通过所述宿主程序打开和写入过数据,即所述数据文件还没有被加密,因此所述数据文件中没有所述加密标识。
已经通过所述宿主程序打开并执行过写入操作的数据文件,由于已经被加密,因此所述数据文件中已被置有加密标识。
步骤3022,所述宿主程序从所述数据文件中的密钥位获取密钥的密文,调用所述安全模块将所述密钥解密,在所述操作为读操作时,调用读操作对应的系统服务完成所述读操作,并使用所述密钥对读出的数据内容进行解密;在所述操作为写操作时,使用所述密钥对准备写入的数据内容进行加密,并调用写操作对应的系统服务完成所述写操作。
步骤3023,在所述操作为读操作时,所述宿主程序调用读操作对应的系统服务完成所述读操作;在所述操作为写操作时,所述宿主程序调用所述安全模块,生成所述数据文件的加密标识和密钥,并使用所述密钥,对所述数据文件中的数据内容和准备写入所述数据文件的数据内容进行加密,得到数据内容密文;所述宿主程序调用所述安全模块把所述密钥加密,并调用写操作对应的系统服务,将加密标识、所述密钥的密文,以及所述数据内容密文,按所述数据文件类型所对应的加密数据文件格式,以覆盖方式写入所述数据文件。
所述智能终端可以使用安卓系统,所述宿主程序使用动态代理和反射机制实现对安卓系统服务的拦截和代理。
安卓系统运行并管理着许多系统服务,应用程序的正常运行需要与系统服务进行交互。通过使用代理,可以隐藏委托类的实现,可以实现被委托与委托类间的解耦,在不修改委托类代码的情况下能够做一些额外的处理。
动态代理是与静态代理相对而言的。若代理类在程序运行前就已经存在,那么这种代理方式被称为静态代理。代理类在程序运行时创建的代理方式被称为动态代理。也就是说,这种情况下,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。相比于静态代理,动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类的函数。
反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的类。换言之,Java可以加载一个运行时才得知名称的类,获得其完整结构。使用反射的目的是获取系统类中的静态变量或单例,用动态代理生成代理对象,最后用代理对象替换原始对象。
安卓系统使用Binder机制进行进程间通信。系统中存在大量的Binder服务,正是这些系统服务给应用程序提供了强大的功能。ServiceManger就是这些Binder对象的管理者,所有的本地服务在启动的时候都会被保存在ServiceManager中,而用户可直接访问ServiceManager,获取所需要的服务。所以我们可以从ServiceManger来Hook所有的系统服务。Hook的过程就是通过反射获得的Binder对象的静态变量,生成动态代理对象,用动态代理对象替换掉原始对象。钩子(Hook)是一种拦截/监听可执行代码在执行过程中相关信息的一种通用机制。利用Hook机制,可以监视系统或者进程中的各种事件消息,截获消息并进行处理。所述宿主程序主要通过Hook机制监控所述目标应用程序的行为。
需要运行所述目标应用程序时,通所述过宿主程序代理系统服务完成所述目标应用程序的调用,通过反射完成真正的Application和Activity的创建。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种应用程序数据防泄密装置,如图3所示,该装置包括应用管理模块和安全模块;
所述应用管理模块为安装在智能终端上的宿主程序,用于对系统服务进行拦截和代理,对目标应用程序进行安装、调用、监控和管理,以及对安全模块功能进行调用;
所述安全模块包括密码安全芯片,所述安全模块内嵌或者外插在智能终端上,用于进行所述应用管理模块的身份验证,为目标应用程序的数据文件生成密钥,并对所述密钥进行加密和解密,以及使用所述密钥对所述目标应用程序的数据进行加密和解密;
所述应用管理模块的识别码与所述安全模块的识别码绑定;当目标应用程序需要对所述数据文件进行操作时,通过所述应用管理模块调用所述安全模块,获得所述数据文件的密钥,对数据内容进行加/解密,以及调用所述操作对应的系统服务完成所述操作。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (10)
1.一种应用程序数据防泄密方法,其特征在于,包括以下步骤:
步骤100:在智能终端上安装宿主程序,其中所述智能终端内嵌或者外插有安全模块,将所述宿主程序的识别码与所述安全模块的识别码进行绑定;
步骤200:通过所述宿主程序安装目标应用程序,当需要运行所述目标应用程序时,通过所述宿主程序调用所述目标应用程序,并监控所述目标应用程序的行为;
步骤300:当所述目标应用程序需要打开数据文件时,所述宿主程序先调用“打开”操作对应的系统服务,打开所述数据文件,再将所述数据文件的类型与加密文件类型列表进行匹配:
步骤301,若所述数据文件的类型和所述加密文件类型列表匹配失败,则当所述目标应用程序需要对所述数据文件进行操作时,所述宿主程序调用与所述操作相对应的系统服务完成所述操作;
步骤302,若所述数据文件的类型和所述加密文件类型列表匹配成功,则当所述目标应用程序需要对所述数据文件进行操作时,所述宿主程序调用所述安全模块获取所述数据文件的密钥,对所述数据文件的数据内容进行加/解密,以及调用与所述操作对应的系统服务完成所述操作;
其中,所述加密文件类型列表在所述宿主程序中预先设置,所述加密文件类型列表的列表项内容包括数据文件类型、数据文件类型格式和对应的加密数据文件格式,所述加密数据文件格式包括加密标识位和密钥位,所述加密标识位用于保存所述数据文件的加密标识,所述密钥位用于保存所述数据文件的密钥。
2.根据权利要求1所述的应用程序数据防泄密方法,其特征在于,步骤302中,所述宿主程序调用所述安全模块获取所述数据文件的密钥,对所述数据文件的数据内容进行加/解密,以及调用与所述操作对应的系统服务完成所述操作的具体步骤为:
步骤3021,所述宿主程序检测所述数据文件中是否有加密标识;
步骤3022,若有加密标识,则所述宿主程序从所述数据文件中的密钥位获取密钥的密文,调用所述安全模块将所述密钥解密;在所述操作为“读”操作时,调用“读”操作对应的系统服务完成所述“读”操作,并使用所述密钥对读出的数据内容进行解密;在所述操作为“写”操作时,使用所述密钥对准备写入的数据内容进行加密,并调用“写”操作对应的系统服务完成所述“写”操作;
步骤3023,若没有加密标识,则在所述操作为“读”操作时,所述宿主程序调用“读”操作对应的系统服务完成所述读操作;在所述操作为“写”操作时,所述宿主程序调用所述安全模块,生成所述数据文件的加密标识和密钥,并使用所述密钥,对所述数据文件中的数据内容和准备写入所述数据文件的数据内容进行加密,得到数据内容密文;所述宿主程序调用所述安全模块把所述密钥加密,并调用“写”操作对应的系统服务,将所述加密标识、所述密钥的密文以及所述数据内容密文,按所述数据文件类型所对应的加密数据文件格式,以覆盖方式写入所述数据文件中。
3.根据权利要求1或2所述的应用程序数据防泄密方法,其特征在于:所述安全模块包括密码安全芯片。
4.根据权利要求3所述的应用程序数据防泄密方法,其特征在于,将所述宿主程序的识别码与所述安全模块的识别码进行绑定具体包括:
在所述宿主程序的用户接口中输入所述安全模块的识别码;
所述宿主程序将所述宿主程序的识别码发送到所述安全模块;
所述安全模块保存所述宿主程序的识别码。
5.根据权利要求4所述的应用程序数据防泄密方法,其特征在于,所述宿主程序调用所述安全模块时,所述安全模块需要对宿主程序进行身份验证,具体包括:
所述宿主程序将所述安全模块的识别码和所述宿主程序的识别码发送给所述安全模块;
所述安全模块把收到的所述宿主程序的识别码与自身保存的所述宿主程序的识别码进行匹配,并把收到的所述安全模块的识别码与自身的识别码进行匹配;
如果均匹配成功,所述安全模块向所述宿主程序返回匹配成功标识,所述宿主程序调用所述安全模块完成后续操作;否则所述安全模块向所述宿主程序返回匹配失败标识,所述宿主程序报错并返回。
6.根据权利要求1或2所述的应用程序数据防泄密方法,其特征在于:所述智能终端使用安卓系统,所述宿主程序使用动态代理和反射机制实现对安卓系统服务的拦截和代理。
7.根据权利要求1或2所述的应用程序数据防泄密方法,其特征在于:所述宿主程序采用口令验证和/或生物特征身份验证方法,对使用所述宿主程序的用户进行身份验证。
8.根据权利要求1或2所述的应用程序数据防泄密方法,其特征在于:所述目标应用程序的行为的系统权限通过所述宿主程序限制。
9.根据权利要求1或2所述的应用程序数据防泄密方法,其特征在于:所述宿主程序还拦截所述目标应用程序的网络数据,设置所述目标应用程序的网络数据重定向路径。
10.一种应用程序数据防泄密装置,其特征在于:包括应用管理模块和安全模块;所述应用管理模块为安装在智能终端上的宿主程序,用于对系统服务进行拦截和代理,对目标应用程序进行安装、调用、监控和管理,以及对安全模块功能进行调用;
所述安全模块包括密码安全芯片,所述安全模块内嵌或者外插在智能终端上,用于进行所述应用管理模块的身份验证,为目标应用程序的数据文件生成密钥并对所述密钥进行加密和解密,以及使用所述密钥对所述目标应用程序的数据进行加密和解密;
所述应用管理模块的识别码与所述安全模块的识别码绑定;当目标应用程序需要对所述数据文件进行操作时,通过所述应用管理模块调用所述安全模块,获得所述数据文件的密钥,对数据内容进行加/解密,以及调用所述操作对应的系统服务完成所述操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810168678.9A CN108509802B (zh) | 2018-02-28 | 2018-02-28 | 一种应用程序数据防泄密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810168678.9A CN108509802B (zh) | 2018-02-28 | 2018-02-28 | 一种应用程序数据防泄密方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108509802A true CN108509802A (zh) | 2018-09-07 |
CN108509802B CN108509802B (zh) | 2020-01-14 |
Family
ID=63375956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810168678.9A Active CN108509802B (zh) | 2018-02-28 | 2018-02-28 | 一种应用程序数据防泄密方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509802B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334532A (zh) * | 2019-07-08 | 2019-10-15 | 北京可信华泰信息技术有限公司 | 文件的加密、解密处理方法及加解密系统 |
CN111814144A (zh) * | 2020-07-14 | 2020-10-23 | 深信服科技股份有限公司 | 一种泄露数据处理方法、装置、设备及介质 |
CN111931222A (zh) * | 2020-09-30 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 应用数据加密方法、装置、终端及存储介质 |
CN112199151A (zh) * | 2020-09-07 | 2021-01-08 | 成都安易迅科技有限公司 | 一种应用程序的运行方法及装置 |
CN112272086A (zh) * | 2020-10-23 | 2021-01-26 | 安徽中科美络信息技术有限公司 | 一种数据加密传输方法、系统及智能终端 |
CN112632171A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种针对数据访问的拦截审核方法及系统 |
CN112653609A (zh) * | 2020-12-14 | 2021-04-13 | 北京指掌易科技有限公司 | 一种vpn识别应用方法、装置、终端及存储介质 |
WO2022111391A1 (zh) * | 2020-11-27 | 2022-06-02 | 华为技术有限公司 | 管理不可信应用程序通信的方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877594A (zh) * | 2006-06-23 | 2006-12-13 | 北京飞天诚信科技有限公司 | 一种电子文件的自动保护方法及系统 |
CN101853363A (zh) * | 2010-05-07 | 2010-10-06 | 北京飞天诚信科技有限公司 | 一种文件保护方法及系统 |
CN102831346A (zh) * | 2012-07-31 | 2012-12-19 | 深圳市紫色力腾科技发展有限公司 | 一种文件保护方法及系统 |
CN107563213A (zh) * | 2017-09-29 | 2018-01-09 | 北京计算机技术及应用研究所 | 一种防存储设备数据提取的安全保密控制装置 |
-
2018
- 2018-02-28 CN CN201810168678.9A patent/CN108509802B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877594A (zh) * | 2006-06-23 | 2006-12-13 | 北京飞天诚信科技有限公司 | 一种电子文件的自动保护方法及系统 |
CN101853363A (zh) * | 2010-05-07 | 2010-10-06 | 北京飞天诚信科技有限公司 | 一种文件保护方法及系统 |
CN102831346A (zh) * | 2012-07-31 | 2012-12-19 | 深圳市紫色力腾科技发展有限公司 | 一种文件保护方法及系统 |
CN107563213A (zh) * | 2017-09-29 | 2018-01-09 | 北京计算机技术及应用研究所 | 一种防存储设备数据提取的安全保密控制装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334532A (zh) * | 2019-07-08 | 2019-10-15 | 北京可信华泰信息技术有限公司 | 文件的加密、解密处理方法及加解密系统 |
CN110334532B (zh) * | 2019-07-08 | 2021-07-27 | 北京可信华泰信息技术有限公司 | 文件的加密、解密处理方法及加解密系统 |
CN111814144A (zh) * | 2020-07-14 | 2020-10-23 | 深信服科技股份有限公司 | 一种泄露数据处理方法、装置、设备及介质 |
CN111814144B (zh) * | 2020-07-14 | 2023-11-07 | 深信服科技股份有限公司 | 一种泄露数据处理方法、装置、设备及介质 |
CN112199151A (zh) * | 2020-09-07 | 2021-01-08 | 成都安易迅科技有限公司 | 一种应用程序的运行方法及装置 |
CN112199151B (zh) * | 2020-09-07 | 2023-10-24 | 成都安易迅科技有限公司 | 一种应用程序的运行方法及装置 |
CN111931222A (zh) * | 2020-09-30 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 应用数据加密方法、装置、终端及存储介质 |
CN112272086A (zh) * | 2020-10-23 | 2021-01-26 | 安徽中科美络信息技术有限公司 | 一种数据加密传输方法、系统及智能终端 |
CN112272086B (zh) * | 2020-10-23 | 2024-06-11 | 中科美络科技股份有限公司 | 一种数据加密传输方法、系统及智能终端 |
WO2022111391A1 (zh) * | 2020-11-27 | 2022-06-02 | 华为技术有限公司 | 管理不可信应用程序通信的方法及相关装置 |
CN112653609B (zh) * | 2020-12-14 | 2022-05-27 | 北京指掌易科技有限公司 | 一种vpn识别应用方法、装置、终端及存储介质 |
CN112653609A (zh) * | 2020-12-14 | 2021-04-13 | 北京指掌易科技有限公司 | 一种vpn识别应用方法、装置、终端及存储介质 |
CN112632171B (zh) * | 2020-12-30 | 2024-05-28 | 中国农业银行股份有限公司 | 一种针对数据访问的拦截审核方法及系统 |
CN112632171A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种针对数据访问的拦截审核方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108509802B (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509802A (zh) | 一种应用程序数据防泄密方法和装置 | |
CN109923548B (zh) | 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 | |
US10708051B2 (en) | Controlled access to data in a sandboxed environment | |
Bhat et al. | A survey on various threats and current state of security in android platform | |
US9246948B2 (en) | Systems and methods for providing targeted data loss prevention on unmanaged computing devices | |
JP4089171B2 (ja) | 計算機システム | |
KR101067399B1 (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
KR100996784B1 (ko) | 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
CN112513857A (zh) | 可信执行环境中的个性化密码安全访问控制 | |
CN102999732B (zh) | 基于信息密级标识的多级域防护方法及系统 | |
US9917817B1 (en) | Selective encryption of outgoing data | |
US20140096230A1 (en) | Method and system for sharing vpn connections between applications | |
KR20160055725A (ko) | 가상 머신의 내부에서 실행하는 모바일 애플리케이션에 의해 네이티브 코드를 로딩, 링크, 및 실행하는 보안 정책 | |
SG189388A1 (en) | Cryptographic system and methodology for securing software cryptography | |
US9027078B1 (en) | Systems and methods for enforcing data loss prevention policies on sandboxed applications | |
Suciu et al. | Horizontal privilege escalation in trusted applications | |
US9219728B1 (en) | Systems and methods for protecting services | |
CN109697366A (zh) | 一种基于钩子的Android文件透明加解密方法 | |
US11411968B1 (en) | Systems and methods for protecting a cloud computing device from malware | |
Bhudia et al. | RansomClave: ransomware key management using SGX | |
US11671422B1 (en) | Systems and methods for securing authentication procedures | |
CN108388792A (zh) | 一种办公操作系统加固方法和系统 | |
Wang et al. | MobileGuardian: A security policy enforcement framework for mobile devices | |
AT&T | ||
US9754086B1 (en) | Systems and methods for customizing privacy control systems |
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 |