[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN111666581A - 数据保护方法、装置、设备及介质 - Google Patents

数据保护方法、装置、设备及介质 Download PDF

Info

Publication number
CN111666581A
CN111666581A CN202010658675.0A CN202010658675A CN111666581A CN 111666581 A CN111666581 A CN 111666581A CN 202010658675 A CN202010658675 A CN 202010658675A CN 111666581 A CN111666581 A CN 111666581A
Authority
CN
China
Prior art keywords
data
data processing
target
target device
instruction
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
CN202010658675.0A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010658675.0A priority Critical patent/CN111666581A/zh
Publication of CN111666581A publication Critical patent/CN111666581A/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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数据保护方法、装置、设备以及存储介质,属于数据安全领域。方法包括:响应于对第一数据的数据处理指令,调用目标进程,数据处理指令携带目标设备的设备信息,目标进程用于对第一数据进行数据处理;通过设备信息,对目标设备的权限进行识别;响应于目标设备不具有数据处理权限,将目标进程由指向第一数据修改为指向第二数据,通过修改后的进程,向目标设备发送第二数据。也就是说,应用程序的第一数据可以存储在本地,无需单独存储在服务器上,当不法分子窃取应用程序的第一数据时,可以对不法分子使用的目标设备进行权限识别,当识别出目标设备不具有数据处理权限时,可以向目标设备发送第二数据,提高了第一数据的安全性。

Description

数据保护方法、装置、设备及介质
技术领域
本申请涉及数据安全领域,特别涉及一种数据保护方法、装置、设备以及存储介质。
背景技术
随着网络技术的发展,开发人员会设计各类应用程序来为用户提供不同的功能。比如,开发人员会设计购物类应用程序为用户提供购物功能,也会设计新闻类应用来为用户提供新闻浏览功能。应用程序功能的实现依赖于开发人员编写的代码数据,而一些代码数据凝聚了开发人员的心血,具有很大的商业价值,一些不法分子会通过应用程序的逆向工程来窃取该应用程序的代码数据。
相关技术中,开发人员会将应用程序的代码数据存储在后台服务器中,这样即使应用程序被成功逆向,应用程序的代码数据也不会被窃取。
但是,这样就导致应用程序在实现其正常功能时,需要从服务器实时获取代码数据。当用户处于较差的网络环境时,从服务器获取代码数据可能需要较多的时间,应用程序的功能也就无法正常实现,人机交互效率较低。
发明内容
本申请实施例提供了一种数据保护方法、装置、设备以及存储介质,可以在保证应用程序功能的正常实现条件下,提升第一数据的安全性。所述技术方案如下:
一方面,提供了一种数据保护方法,所述方法包括:
响应于对第一数据的数据处理指令,调用目标进程,所述数据处理指令携带目标设备的设备信息,所述目标进程用于对所述第一数据进行数据处理;
通过所述设备信息,对所述目标设备的权限进行识别;
响应于所述目标设备不具有数据处理权限,将所述目标进程由指向所述第一数据修改为指向第二数据,通过修改后的进程,向所述目标设备发送所述第二数据,所述第二数据为不具有任一数据处理功能的数据。
一方面,提供了一种数据保护装置,所述装置包括:
调用模块,用于响应于对第一数据的数据处理指令,调用目标进程,所述数据处理指令携带目标设备的设备信息,所述目标进程用于对所述第一数据进行数据处理;
权限识别模块,用于通过所述设备信息,对所述目标设备的权限进行识别;
发送模块,用于响应于所述目标设备不具有数据处理权限,将所述目标进程由指向所述第一数据修改为指向第二数据,通过修改后的进程,向所述目标设备发送所述第二数据,所述第二数据为不具有任一数据处理功能的数据。
在一种可能的实施方式中,所述指令确定模块,用于将所述数据处理指令与指令模板进行比较,响应于所述数据处理指令与任一指令模板匹配,确定所述任一指令模板对应的数据处理操作。
在一种可能的实施方式中,所述装置还包括:
提高模块,用于提高所述任一指令模板的权重,所述权重用于表示将数据处理指令与指令模板进行比较时指令模板的选取优先级。
在一种可能的实施方式中,所述装置还包括:
解析模块,用于响应于所述数据处理指令未与任一指令模板匹配,对所述数据处理指令进行语义解析,得到所述数据处理指令携带的字段名和字段值。
在一种可能的实施方式中,所述装置还包括:
提取模块,用于从所述数据处理指令中提取字段名以及与所述字段名对应的字段值,根据所述字段名和所述字段值确定所述数据处理操作在所述第一数据中的执行位置;
所述处理模块用于在所述执行位置执行所述数据处理操作,对所述第一数据进行处理。
在一种可能的实施方式中,所述装置还包括:
执行模块,用于执行目标脚本,获取第一应用程序的配置数据,所述目标脚本用于生成目标应用程序;
生成模块,用于根据所述配置数据和所述目标脚本携带的所述目标应用程序的用户界面数据,生成所述目标应用程序,所述目标应用程序与所述第一应用程序共享应用数据存储空间;
显示模块,用于执行所述目标应用程序,响应于所述第一应用程序存储在所述应用数据存储空间中的数据发生变化,在所述目标应用程序的用户界面上,显示所述数据的变化情况。
一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现所述数据保护方法。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述数据保护方法。
一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据保护方法。
通过本申请提供的技术方案,当目标设备对第一设备上的第一数据进行数据处理时,第一设备会对目标设备的权限进行识别。当该目标设备不具有数据处理权限时,第一设备不会执行该目标设备对第一数据的数据处理操作,而是会向该目标设备发送不具有数据处理功能的第二数据,这样可以保证第一数据不会被该目标设备破坏或者窃取。通过这样的方式,无需将第一数据单独存放在服务器上,也就不涉及第一设备和服务器之间的交互。当用户处于较差的网络环境时,应用程序也能够直接在第一设备中读取第一数据,无需耗费时间从服务器进行下载,就能够实现应用程序的正常功能。在保证第一数据安全性的前提下,提高了人机交互的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据保护方法的实施环境的示意图;
图2是本申请实施例提供的一种数据保护方法的框架图;
图3是本申请实施例提供的一种数据保护方法的流程图;
图4是本申请实施例提供的一种数据保护方法的流程图;
图5是本申请实施例提供的一种应用层执行步骤的流程图;
图6是本申请实施例提供的一种权限验证界面示意图;
图7是本申请实施例提供的一种权限验证界面示意图;
图8是本申请实施例提供的一种指令模版匹配方法的流程图;
图9是本申请实施例提供的一种应用程序生成方法的流程图;
图10是本申请实施例提供的一种应用程序生成方法的流程图;
图11是本申请实施例提供的一种数据保护装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个参照人脸图像是指两个或两个以上的参照人脸图像。
数据库(Database,DB):简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库中可以包括数据库表名、列名以及列名对应的取值。
偏好共享(Shared Preferences,SP):是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,SP也可以认为是Android平台的一个存储键值对的协议。
集成开发环境(Integrated Development Environment,IDE):是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境,该程序可以独立运行,也可以和其它程序并用。
应用程序接口(Application Programming Interface,API):应用程序接口是程序员在编程时使用的接口,应用程序通过这个接口,可在程序执行中访问系统资源和取得系统服务,它也是应用程序能取得操作系统服务的唯一途径。大多数操作系统的程序接口是由一组系统调用(System Call)组成,每一个系统调用都是一个能完成特定功能的子程序。
Java归档(Java Archive,Jar):是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。
反射注入:反射注入是一种新型的注入方式,它不需要像传统的注入方式一样需要注入文件落地存储,避免了注入文件被安全软件删除的危险。由于它没有通过系统API对文件进行装载,操作系统无从得知被注入进程装载了该文件,所以检测软件也无法检测它。
Hook函数:又叫做钩子函数,在系统没有调用目标函数之前,钩子函数就先捕获调用目标函数的指令,钩子函数可以获得目标函数的监控权,这时钩子函数既可以加工处理(改变)该目标函数的执行行为,还可以强制结束目标函数的消息传递。
结构化查询语言(Structured Query Language,SQL):是一种具有特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
Android应用程序包(Android Application Package,APK)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
图1是本申请实施例提供的一种数据保护方法的实施环境示意图,参见图1,该实施环境中可以包括第一设备110、目标设备120和服务器140。
第一设备110可以是智能手机、平板电脑、智能电视、台式计算机,车载计算机以及便携计算机等设备。第一设备110安装和运行有支持不同功能的第一应用程序,比如第一设备110上可以安装有购物类应用程序、短视频类应用程序以及导航类应用程序等,本申请实施对于应用程序的类型不做限定。第一设备110可以泛指多个第一设备中的一个,本申请实施例仅以第一设备110来举例说明。
目标设备120可以是智能手机、台式计算机以及便携计算机等设备。目标设备120上可以安装和运行有支持数据处理的应用程序,比如目标设备120上可以安装有获取第一设备110上代码数据的应用程序。目标设备120可以泛指多个目标设备中的一个,本申请实施例仅以目标设备120来举例说明。
服务器140可以服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。第一设备110、目标设备120以及服务器140可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
需要说明的是,本申请提供的数据保护方法可以应用于运行有不同的操作系统的第一设备,为了对本申请提供的数据保护方法进行更加清楚的说明,下面各个实施例中将以第一设备上运行Android系统为例进行说明。
首先对本申请提供的数据保护方法的应用场景进行说明:在一些情况下,不法分子想通过应用程序的逆向工程来窃取或破坏第一应用程序的代码数据,不法分子采取的方法可能有以下两种:
1、不法分子通过PC与安装有第一应用程序的第一设备相连,通过PC向第一设备发送指令,窃取或破坏第一应用程序的代码数据。
2、不法分子可以在第一设备上安装第二应用程序,第二应用程序可以获取其他应用程序的代码数据。不法分子可以通过第二应用程序,调用不同的系统函数,窃取或破坏第一应用程序的代码数据。
当然,除了窃取第一应用程序的代码数据之外,不法分子可能还想窃取使用第一应用程序的用户隐私数据,窃取用户隐私数据的方法也可以包括上述两种,在此不再赘述。
另外,对于开发人员来说,其对于第一应用程序代码数据的维护,也需要通过上述两种方法,通过本申请提供的数据保护方法,可以在保证开发人员正常维护代码数据的情况下,保证第一应用程序代码数据和用户隐私数据的安全。
在对本申请提供的数据保护方法的步骤流程进行说明之前,首先对本申请提供的一种数据保护方法的框架进行说明,参见图2,框架包括应用层201、数据过滤层202、数据加解密层203以及文件存储层204。
应用层201可以用于为不同的数据处理工具提供数据处理入口,数据处理工具可以包括多个类型的工具,比如为个人计算机(Personal Computer,PC)上运行的开发工具,安卓工厂(Android Studio),或者为具有DB和SP查看能力的第三方工具Chrome,还可以为Android设备上的应用程序等,应用层可以为不同类型的数据处理工具提供的一个通用的接口,比如可以为构建第一应用程序的开发工具提供接口,也可以为用户使用第一应用程序提供接口,还可以为调用文件管理器获取第一数据提供一个接口,不同的数据处理工具可以通过应用层提供的接口,进行数据处理操作,本申请实施例对于数据处理工具类型不做限定。
另外,应用层201还可以用于监控不同目标设备的数据处理指令,也即是监控数据处理指令创建的进程。
还有,应用层201也可以用于构建一个目标应用程序,开发人员可以通过目标应用程序来获知第一数据的变化情况。
数据过滤层202可以用于识别权限,确定目标设备是否具有数据处理权限。数据过滤层202还可以用于拦截数据处理指令对应的数据处理操作,比如拦截数据库及SP修改的相关操作。
数据加解密层203可以用于对数据过滤层存储数据进行加密,或者对文件存储层的读取的数据进行解密。
文件存储层204可以用于验证磁盘存储空间的大小等数据,并将加密后的数据进行存储。
图3是本申请实施例提供的一种数据保护方法的流程图,参见图3,方法包括:
301、响应于对第一数据的数据处理指令,第一设备调用目标进程,数据处理指令携带目标设备的设备信息,目标进程用于对第一数据进行数据处理。
其中,数据处理指令可以为对第一数据的读取指令、对第一数据的写入指令、对第一数据的删除指令、对第一数据的修改指令以及基于第一数据生成应用程序的指令中的至少一项。设备标识可以为目标设备的处理器信息、处理器指令集标识、静态密码、动态密码以及网络环境信息中的至少一项。第一数据的格式可以为数据库格式.db,也可以为SP格式.xml本申请实施例对此不做限定。第一设备为运行有第一应用程序的计算机设备。
302、第一设备通过设备信息,对目标设备的权限进行识别。
303、响应于目标设备不具有数据处理权限,第一设备将目标进程由指向第一数据修改为指向第二数据,通过修改后的进程,向目标设备发送第二数据,第二数据为不具有任一数据处理功能的数据。
其中,第二数据可以是字段名和字段值均没有实际意义的数据。
通过本申请提供的技术方案,当目标设备对第一设备上的第一数据进行数据处理时,第一设备会对目标设备的权限进行识别。当该目标设备不具有数据处理权限时,第一设备不会执行该目标设备对第一数据的数据处理操作,而是会向该目标设备发送不具有数据处理功能的第二数据,这样可以保证第一数据不会被该目标设备破坏或者窃取。通过这样的方式,无需将第一数据单独存放在服务器上,也就不涉及第一设备和服务器之间的交互。当用户处于较差的网络环境时,应用程序也能够直接在第一设备中读取第一数据,无需耗费时间从服务器进行下载,就能够实现应用程序的正常功能。在保证第一数据安全性的前提下,提高了人机交互的效率。
上述步骤301-303是本申请提供的数据保护方法的简要说明,下面结合一些例子,通过步骤401-404对本申请提供的数据保护方法进行详细说明。
图4是本申请实施例提供的一种数据保护方法的流程图,参见图4,方法包括:
401、响应于对第一数据的数据处理指令,第一设备调用目标进程,数据处理指令携带目标设备的设备信息,目标进程用于对第一数据进行数据处理。
其中,第一数据可以为第一应用程序的代码数据,也可以为用户使用第一应用程序的隐私数据,当然,在其他可能的实施方式中,第一数据还可以为其他类型的数据,本申请实施例对于第一数据的类型不做限定。相应的,若第一数据为第一应用程序的代码数据,那么对第一数据的数据处理指令可以为对代码数据的读取指令,对代码数据的写入指令、对代码数据的删除指令以及对代码数据的修改指令中的至少一项;若第一数据为用户使用应用程序的隐私数据,那么对第一数据的数据处理指令可以为对隐私数据的读取指令,对隐私数据的写入指令、对隐私数据的删除指令以及对隐私数据的修改指令中的至少一项。
402、第一设备对目标进程进行监控。
其中,第一设备对目标进程进行监控,也即是对目标进程执行的函数进行监控,确定目标进程执行的数据处理操作,另外,第一设备也可以在目标设备通过目标进程对第一数据进行数据处理之前,截断该数据处理操作,对该数据处理操作进行修改,实现方式参见下述说明:
在一种可能的实施方式中,第一设备可以向目标进程中注入目标代码数据,通过目标代码数据,监控数据处理指令创建的进程。
在这种实现方式下,响应于调用目标进程,第一设备可以向目标进程中注入目标代码数据,保证了第一设备可以通过注入的目标代码数据监控目标进程。也就是说,当目标设备不具有数据处理权限时,第一设备可以截断或者改变目标进程执行的操作。
由于数据处理指令可能来源于不同的应用程序,比如来源于与第一设备连接的PC上运行的开发工具或者来源于第一应用程序本身,若数据处理指令来源于与第一设备连接的PC上运行的开发工具,那么可能是开发人员通过PC来对第一应用程序的第一数据进行维护,当然也可能是不法分子通过PC来窃取第一应用程序的第一数据。若数据处理指令来源于第一应用程序本身,那么可能是第一应用程序在运行时对第一数据的正常处理,当然也可能是不法分子通过安卓模拟器运行第一应用程序来窃取第一数据。
下面分别以数据处理指令来源于PC上运行的开发工具和来源于第一应用程序本身为例,对上述实施方式进行说明。
以数据处理指令来源于PC上运行的开发工具为例,开发人员会通过PC上运行的开发工具Android Studio,或者具有DB和SP查看能力的第三方工具Chrome来向第一设备发出对第一数据的数据处理指令,比如PC可以通过Android Studio或者Chrome来加载安卓调试桥(Android Debug Bridge,ADB)工具,PC可以通过ADB工具发送对第一数据的数据处理指令,比如PC通过ADB工具向第一设备输入命令行“adb pull xxx.db”或者“adb pullxxx.xml”,其中xxx和yyy为第一数据的文件名。响应于数据处理指令,第一设备可以调用上述系统函数创建的目标进程,对目标进程进行反射注入,也即是通过调用Class.forName函数,确定目标进程对应的Class对象,通过JavaClass确定该Class对象的目标字段,将目标字段的属性修改为可访问,通过HOOK函数监控该Class对象,第一设备也可以通过HOOK函数修改该Class对象的目标字段,来实现对目标进程的控制。
通过这样的实施方式,第一设备可以在PC上运行的开发工具通过数据处理指令创建的进程对第一数据进行数据处理前,将PC上运行的开发工具发送的指令截取,之后可以通过判断数据处理指令携带的设备标识,来对PC的数据处理权限进行识别。
以数据处理指令来源于第一应用程序本身为例,Android系统中会将第一应用程序的代码数据和用户隐私数据保存在sharedUserID目录下,用户在使用第一应用程序时,第一应用程序会调用系统函数,比如Content Provider、SQL LiteOpen Helper以及getShared Preference等函数来发送数据处理指令,比如第一应用程序在运行过程中会发出获取sharedUserID目录下某个文件的指令。响应于数据处理指令,第一设备可以调用上述系统函数创建的目标进程,对目标进程进行反射注入,也即是通过调用Class.forName函数,确定目标进程对应的Class对象,通过JavaClass确定该Class对象的目标字段,将目标字段的属性修改为可访问,通过HOOK函数监控该Class对象,第一设备也可以通过HOOK函数修改该Class对象的目标字段,来实现对目标进程的控制。
需要说明的是,步骤401可以由应用层201来实现,应用层的执行步骤可以参见图5。
403、第一设备从数据处理指令中获取目标设备的设备信息。
其中,设备信息可以为目标设备的处理器信息、处理器指令集标识、网络环境信息、静态密码、伪静态密码和动态密码等。在本申请实施例中,当数据处理指令来源于PC上运行的开发工具时,设备信息可以为网络环境信息、静态密码、假静态密码和动态密码中的至少一项;当数据处理指令来源于第一应用程序时,设备信息可以为第一设备的处理器信息和处理器指令集标识中的至少一项。
404、第一设备通过设备信息,对目标设备的权限进行识别。
在一种可能的实施方式中,设备信息可以为目标设备的网络环境信息,第一设备可以将目标设备的网络环境信息与预设网络环境信息进行比较,响应于目标设备的网络环境信息与预设网络环境信息匹配,第一设备确定目标设备具有数据处理权限。响应于目标设备的网络环境信息与预设网络环境信息不匹配,第一设备确定目标设备不具有数据处理权限,其中,预设网络环境信息所指示的设备具有数据处理权限。也就是说,第一设备可以将目标设备的网络环境信息与具有数据处理权限设备的预设网络环境信息进行比较,若两者成功匹配,则确定目标设备具有数据处理权限;若两者未成功匹配,则确定目标设备不具有数据处理权限。由于网络环境信息可以用于表示目标设备的地理位置,第一设备可以根据地理位置确定目标设备是否具有数据处理权限。
在这种实现方式下,第一设备可以根据目标设备所处的网路环境信息,来对目标设备的权限进行识别。比如目标设备的网络环境信息与应用开发企业办公设备的网络环境信息匹配,那么第一设备可以确定目标设备具有数据处理权限;若目标设备的网络环境信息与应用开发企业办公设备的网络环境信息不匹配,那么第一设备可以确定目标设备不具有数据处理权限。这样可以使得不处于应用开发企业办公网络环境的不法分子无法获得数据处理权限,数据处理的安全性较高。
举例来说,网络环境信息可以为目标设备的IP(Internet Protocol)地址,第一设备可以将目标设备的IP地址和存储在存储空间中的应用开发企业的IP地址集合进行比较,确定目标设备的IP地址是否存在于该应用开发企业的IP地址集合中。响应于目标设备的IP地址存在于该应用开发企业的IP地址集合中,第一设备可以确定目标设备具有数据处理权限;响应于目标设备的IP地址不存在于该应用开发企业的IP地址集合中,第一设备可以确定目标设备不具有数据处理权限。
在一种可能的实施方式中,设备信息可以为静态密码,第一设备可以根据静态密码,来对目标设备的权限进行识别。静态密码可以包括开发人员的身份识别码(IdentityDocument,ID)以及约定密码,若约定密码可以由管理人员随时变更,那么该静态密码也可以称为伪静态密码。
在这种实现方式下,由于静态密码或伪静态密码是应用程序开发公司内部约定的密码,因此采用静态密码或伪静态密码对目标设备的权限进行识别可以提高第一数据的安全性。特别是对于伪静态密码来说,由于其可以随时改变,其对于第一数据的保护效果更好,第一数据的安全性更高。
下面以两个例子来对上述实施方式进行说明:
1、开发人员通过目标设备输入对第一数据进行数据处理的命令行时,可以同时输入静态密码或者伪静态密码,目标设备可以对静态密码或者伪静态密码进行加密,比如目标设备可以将静态密码或者伪静态密码映射为哈希字符串。目标设备可以根据加密后的静态密码或者伪静态密码以及开发人员输入的命令行生成对数据处理指令,将数据处理指令发送给第一设备。第一设备接收到目标设备发送的数据处理指令后,可以从数据处理指令中获取加密后的静态密码或者伪静态密码,若静态密码或者伪静态密码为哈希字符串,那么第一设备可以将数据处理指令中的哈希字符串与存储空间中存储的哈希字符串进行对比,响应于两个哈希字符串相同,第一设备可以确定目标设备具有数据处理权项;响应于两个哈希字符串中任一个字符不同,第一设备可以确定目标设备不具有数据处理权限。
2、开发人员可以通过目标设备输入对第一数据进行数据处理的命令行,目标设备可以将该命令行发送给第一设备。第一设备接收到该命令行时,可以向目标设备发送权限验证请求,目标设备接收到该权限验证请求后可以向开发人员展示该权限验证请求,开发人员可以通过目标设备输入静态密码或者伪静态密码,目标设备可以将开发人员输入的静态密码或者伪静态密码加密后发送给第一设备,第一设备可以根据加密后的静态密码和伪静态密码来对目标设备的权限进行识别。
在一种可能的实施方式中,设备信息为目标设备的处理器信息和处理器指令集标识中的至少一项,第一设备可以将目标设备的处理器信息与预设处理器信息以及目标设备的处理器指令集标识与预设处理器指令集标识中的至少一项进行比较,响应于目标设备的处理器信息与预设处理器信息匹配,或目标设备的处理器指令集标识与预设处理器指令集标识匹配,第一设备确定目标设备具有数据处理权限。响应于目标设备的处理器信息与预设处理器信息不匹配,或目标设备的处理器指令集标识与预设处理器指令集标识不匹配,第一设备确定目标设备不具有数据处理权限,预设处理器信息和预设处理器指令集标识所指示的设备具有数据处理权限。
这种实现方式可以用于区分用户使用原生安卓系统还是安卓模拟器来对第一数据进行处理,若用户使用原生安卓系统对第一数据进行处理,那么用户可能通过第一应用程序对第一数据进行正常的读写操作,目标设备也即是第一设备,此时第一设备可以确定目标设备具有数据处理的权限,而支持原生安卓系统的处理器架构可以为进阶精简指令集机器(Advanced RISC Machine,ARM),ARM架构的处理器使用的处理器指令集为ARM指令集,那么当第一设备通过处理器信息识别出目标设备的处理器架构为ARM,或者通过处理器指令集标识识别出处理器指令集为ARM指令集时,可以确定目标设备具有数据处理权限;若用户使用安卓模拟器来对第一数据进行处理,那么该用户可能通过逆向工程来破解第一应用程序,此时第一设备可以确定目标设备不具有数据处理权限,而支持安卓模拟器的处理器架构可以为X86架构的处理器,X86架构的处理器使用的处理器指令集标识为X86指令集,那么当第一设备通过处理器信息识别出目标设备的处理器架构为X86,或者通过处理器指令集标识识别出处理器指令集为X86指令集时,可以确定目标设备不具有数据处理权限。
另外,对于目标设备为PC来说,对PC进行权限识别也可以由服务器来进行,下面将结合图6和图7采用两个例子对这种实施方式进行说明:
1、参见图6,开发人员可以在PC上启动开发工具,当PC与第一设备连接时,PC上可以显示权限验证页面600,该权限验证页面上显示有开发人员标识输入框601和密码输入框602。开发人员可以在开发人员标识输入框601中输入自己的ID,在密码输入框602中输入约定密码,点击确认按钮603。响应于对确认按钮603的点击操作,PC可以触发权限验证指令,响应于权限验证指令,PC可以向服务器发送权限验证请求,权限验证请求中携带开发人员标识和约定密码。服务器可以根据权限验证请求中携带的开发人员标识和约定密码,对目标设备的权限进行验证,响应于开发人员标识和约定密码与数据库中存储的开发人员标识和约定密码匹配,服务器可以确定目标设备具有数据处理权限,可以向PC发送验证成功消息,PC响应于验证成功消息,可以与第一设备成功建立连接。响应于开发人员标识和约定密码与数据库中存储的开发人员标识和约定密码不匹配,服务器可以确定目标设备不具有数据处理权限,可以向PC发送验证不成功的消息,PC响应于验证不成功的消息,无法与第一设备建立连接。另外,PC与第一设备成功建立连接之后,第一设备可以基于PC发送的数据处理指令对第一数据进行处理,无需再次验证PC的数据处理权限。
在这种实现方式下,可以由服务器对目标设备的权限进行识别,由于对目标设备的验证信息保存在服务器而不是第一设备上,而服务器的破解难度往往比较高,这样可以进一步提高第一数据的安全性。
2、参见图7,开发人员可以在PC上启动开发工具,当PC与第一设备连接时,PC上可以显示权限验证页面700,该权限验证页面上显示有开发人员标识输入框701、动态密码输入框702以及动态密码获取按钮703。开发人员可以在开发人员标识输入框701中输入自己的ID,点击动态密码获取按钮703。目标设备可以向服务器发送动态密码获取请求,动态密码获取请求携带开发人员的ID。服务器接收到动态密码获取请求后,可以随机生成一个动态密码,将该动态密码下发给与开发人员的ID绑定用户设备。开发人员可以通过用户设备获取该动态密码,在权限验证页面700上的动态密码输入框702中输入该动态密码,点击确认按钮704后可以向服务器发送动态密码验证请求,动态密码验证请求中携带开发人员的ID和动态密码。服务器可以接收动态密码验证请求,确定动态密码验证请求中携带的动态密码与下发给开发人员ID绑定的用户设备的动态密码是否相同。响应于两个密码相同,服务器可以确定目标设备具有数据处理权限,可以向PC发送验证成功消息,PC响应于验证成功消息,可以与第一设备成功建立连接。响应于两个密码不相同,服务器可以确定目标设备不具有数据处理权限,可以向PC发送验证不成功的消息,PC响应于验证不成功的消息,无法与第一设备建立连接。另外,PC与第一设备成功建立连接之后,第一设备可以基于PC发送的数据处理指令对第一数据进行处理,无需再次验证PC的数据处理权限。
在这种实现方式下,由于动态密码是服务器实时随机生成的,通过动态密码来对目标设备的权限进行识别,可以提高权限识别的准确性,从而提高第一数据的安全性。
需要说明是,服务器可以同时支持上述两种方式来对目标设备的权限进行验证,也就是说开发人员既可以采用静态密码来进行验证,也可以采用动态密码来进行验证。由于采用动态密码进行验证的安全性较高,那么服务器在第一次验证目标设备的权限时,可以采用动态密码的方式进行验证,在后续对目标设备的权限进行验证时,可以同时支持动态密码验证和静态密码验证,这样可以最大程度的保证第一数据的安全。
需要说明的是,步骤404可以由数据过滤层202来实现。
在步骤404之后,第一设备可以基于目标设备的权限来确定执行步骤405还是步骤406。响应于目标设备不具有数据处理权限,第一设备可以执行步骤405,响应于目标设备具有数据处理权限,第一设备可以执行步骤406。
405、响应于目标设备不具有数据处理权限,第一设备将目标进程由指向第一数据修改为指向第二数据,通过修改后的进程,向目标设备发送第二数据,第二数据为不具有任一数据处理功能的数据。
在一种可能的实施方式中,设备标识为目标设备的网络环境信息,第一设备可以将目标进程由指向第一数据修改为指向第二数据,通过修改后的进程,向目标设备发送第二数据。
在这种实现方式下,第一设备通过目标设备的网络环境信息判断目标设备不具有数据处理权限,那么第一设备可以向目标设备发送第二数据,使得不具有权限的目标设备无法对第一数据进行处理,保护第一数据的安全。
以网络环境信息为IP地址为例,目标设备的IP地址可以为192.168.1.1,第一设备根据目标设备的IP地址192.168.1.1确定目标设备不具有数据处理权限。第一设备可以通过监控目标进程的HOOK函数,将该进程执行的函数修改为发送第二数据的函数,比如目标设备原本通过目标进程获取第一数据,第一设备可以在目标设备通过目标进程获取第一数据之前,通过HOOK函数对目标进程获取第一数据的函数修改为获取第二数据的函数,也即是将目标进程获取数据的地址由第一数据的地址修改为第二数据的地址。
另外,第一设备除了可以通过HOOK函数对目标进程获取数据的地址进行修改之外,还可以对目标进程执行的函数本身进行修改,比如目标设备可以通过目标进程对第一数据进行修改,第一设备可以通过HOOK函数对目标进程执行的函数进行修改,将用于对第一数据进行修改的函数变更为获取第二数据的函数。
在一种可能的实施方式中,设备标识为目标设备的处理器信息和处理器指令集标识中的一个,第一设备可以将目标进程由指向第一数据修改为指向第二数据,通过修改后的进程,向目标设备发送第二数据。
在一种可能的实施方式中,设备标识为静态密码、伪静态密码以及动态密码中的至少一个,响应于静态密码以及伪静态密码中的任一个与第一设备上存储的静态密码或者伪静态密码不相同,第一设备可以将目标进程由指向第一数据修改为指向第二数据,通过修改后的进程,向目标设备发送第二数据。
需要说明的是,响应于目标设备不具有数据处理权限,第一设备除了可以通过目标进程,向目标设备发送第二数据之外,还可以直接终止目标进程,或者不对数据处理指令进行响应,本申请实施例对此不做限定。
406、响应于目标设备具有数据处理权限,第一设备将数据处理指令与指令模板进行比较,响应于数据处理指令与任一指令模板匹配,第一设备执行步骤407;响应于数据处理指令未与任一指令模板匹配,第一设备执行步骤408。
407、响应于数据处理指令与任一指令模板匹配,第一设备确定该指令模板对应的数据处理操作,第一设备根据该数据处理操作,对第一数据进行处理。
在这种实现方式下,第一设备将指令模板和数据处理指令进行比较,就可以得到数据处理指令对应的数据处理操作。也就是说,第一设备无需对数据处理指令进行语义解析,就可以得到数据处理指令对应的数据处理操作,由于对数据处理指令进行语义解析的速度较慢,采用指令模板来对数据处理指令进行匹配的速度较快,第一设备通过指令模板来确定数据处理指令指示的数据处理操作的效率较高。
举例来说,数据处理指令可以为SQL语句,第一设备上可以存储有多个SQL语句作为指令模板,比如将常用的删除数据表的语句sql=delete from tab作为指令模板。若目标设备发送的数据处理指令为sql=delete from tab1(删除数据表1),那么第一设备可以使用多个指令模板对数据处理指令进行匹配,得到与数据处理指令sql=delete fromtab1匹配的指令模板sql=delete from tab。第一设备可以根据指令模板sql=deletefrom tab确定数据处理指令指示的数据处理操作为删除数据表1,第一设备可以对第一数据执行删除数据表1的操作。
另外,在这种实施方式的基础上,第一设备还可以为指令模板设置权重,权重用于表示将数据处理指令与指令模板进行比较时指令模板的选取优先级,换句话说,第一设备对数据处理指令进行指令匹配时,可以按照权重的大小,确定指令模板与数据处理指令的匹配顺序,优先将权重高的指令模板与数据处理指令进行匹配。响应于第一设备将任一指令模板与数据处理指令成功匹配,第一设备可以提高该指令模板的权重。也就是说,在第一设备下次对其他数据处理指令进行指令模板匹配时,可以将该指令模板的匹配顺序提前。
在这种实现方式下,第一设备可以根据指令模板成功匹配的次数,为不同的指令模板设置权重,在进行指令模板比较时,优先对权重较大的指令模板进行比较,一个指令模板的权重较大也就意味着该指令模板成功匹配的次数越多,使用该指令模板进行比较的成功率较高,这样随着第一设备进行指令模板比较次数的增加,指令模板的匹配效率也会越来越高。
在一种可能的实施方式中,响应于设备标识具有数据处理权限,第一设备可以从数据处理指令中提取字段名以及与字段名对应的字段值,根据字段名和字段值确定数据处理操作在第一数据中的执行位置。第一设备可以在执行位置执行数据处理操作,对第一数据进行处理。
需要说明的是,第一设备从数据处理指令中提取出字段名以及与字段名对应的字段值之后,若数据处理操作为向第一数据中添加字段,第一设备可以将字段名和字段值输入数据加解密层203,由数据加解密层203对字段名和字段值进行加密后,通过文件存储层204将字段名对应的字段值存储在第一数据中。若数据处理操作为修改第一数据中某个字段名的字段值,第一设备可以将字段名和字段值输入数据加解密层203,由数据加解密层203将字段名和字段值进行加密,通过文件存储层204将加密字段名对应的字段值更改为加密后的字段值存储在第一数据中。
408、响应于数据处理指令未与任一指令模板匹配,第一设备对数据处理指令进行语义解析,得到数据处理指令携带的字段名和字段值,根据数据处理指令携带的字段名和字段值,对第一数据进行处理。
举例来说,第一设备可以通过词法分析器将数据处理指令转化为单词的集合,比如将数据处理指令“ABC”转化为单词集合{A、B、C}。第一设备可以对单词的集合输入语法分析器,通过语法分析器判断单词集合{A、B、C}的单词是否符合语法逻辑,语法分析器可以输出数据处理指令的抽象语法树,数据处理指令和抽象语法树的内容是一一对应的,第一设备可以通过抽象语法树来得到数据处理指令携带的字段名和字段值。第一设备根据数据处理指令携带的字段名和字段值,对第一数据进行处理。
当然,第一设备也可以将上述几种实施方式进行结合,来执行步骤404,参见图8,第一设备可以预定义大量模板正则库,模板正则库也即是指令模板的集合,第一设备可以基于模板正则库对数据处理指令进行逐一匹配,响应于匹配到模板正则库中的任意指令模板,第一设备可以提高该指令模板的权重,也即是提高该指令模板在后续指令模板匹配过程中的优先级。第一设备可以从数据处理指令中提取字段名以及与字段名对应的字段值,将字段名和字段值发送至数据加解密层203进行加密操作。响应于未匹配到模板正则库中的任意指令模板,第一设备可以对数据处理指令进行语义解析,得到数据处理指令中的字段名以及与字段名对应的字段值。由于数据处理指令可以包括对DB和SP的增加、查看、删除、修改和查找中的至少一个,那么第一设备对数据处理指令进行语音解析也可以包括对DB处理的SQL指令的解析以及对SP处理的SP指令的解析。第一设备得到数据处理指令中的字段名以及与字段名对应的字段值后,可以将字段名和字段值发送至数据加解密层203进行加密操作。
通过本申请提供的技术方案,当目标设备对第一设备上的第一数据进行数据处理时,第一设备会对目标设备的权限进行识别。当该目标设备不具有数据处理权限时,第一设备不会执行该目标设备对第一数据的数据处理操作,而是会向该目标设备发送不具有数据处理功能的第二数据,这样可以保证第一数据不会被该目标设备破坏或者窃取。通过这样的方式,无需将第一数据单独存放在服务器上,也就不涉及第一设备和服务器之间的交互。当用户处于较差的网络环境时,应用程序也能够直接在第一设备中读取第一数据,无需耗费时间从服务器进行下载,就能够实现应用程序的正常功能。在保证第一数据安全性的前提下,提高了人机交互的效率。
除了上述步骤401-404之外,参见图9,本申请还提供了一种目标应用程序生成方法,当第一设备上同时安装有第一应用程序和目标应用程序时,开发人员可以通过目标应用程序,实时监测第一应用程序的第一数据变化情况。
901、目标设备执行目标脚本,获取第一应用程序的配置数据,目标脚本用于生成目标应用程序。
其中,目标脚本可以是开发人员配置的脚本文件,目标设备执行目标脚本可以自动生成目标应用程序,第一应用程序为开发人员开发的、用于实现某个功能应用程序,比如可以为开发人员开发的用于为用户提供外卖功能的应用程序。
在一种可能的实施方式中,开发人员可以通过目标设备,在第一应用程序的应用程序构建任务中增加一个任务,该任务用于执行目标脚本,生成目标应用程序。目标设备执行目标脚本时,可以将第一应用程序的配置文件复制到目标应用程序的配置文件中。
举例来说,参见图10,开发人员可以在第一应用程序的build.gradle中配置任务preBuild.depenOn参数,preBuild.depenOn参数表示构建第一应用程序时需要先执行特定任务,这里命名为subBuildTask,该任务将会在构建第一应用程序的APK包前执行。目标设备可以定义sharedUserId,创建gradle前置任务。目标设备可以在前置任务subBuildTask中执行目标脚本GenerateSubAppScript脚本。目标设备可以通过目标脚本GenerateSubAppScript获取第一应用程序的配置文件中的AndroidManifest的sharedUserId属性以及provider path属性,还可以获取第一应用程序的配置文件中的build.gradle文件minSdkVersion、targetSdkVersion、versionName以及versionCode等。
902、目标设备根据配置数据和目标脚本携带的目标应用程序的用户界面数据,生成目标应用程序,目标应用程序与第一应用程序共享应用数据存储空间。
其中,目标应用程序的用户界面数据可以包括目标应用程序的用户界面代码以及用户界面图片。
在一种可能的实施方式中,目标设备可以通过目标脚本对第一应用程序的配置文件进行修改,比如在第一应用程序的配置文件中为AndroidManifest.xml中配置sharedUserId参数,使得目标应用程序和第一应用程序在安装后可以共享应用数据存储空间。目标设备可以将目标脚本携带的目标应用程序的用户界面数据释放到目标应用程序的配置文件中。目标设备可以基于修改后的目标应用程序的配置文件,生成目标应用程序,其中,sharedUserId为目标应用程序和第一应用程序安装后共享的数据存储空间的标识。
需要说明的是,上述步骤901和902是以目标设备生成目标应用程序为例进行说明的,在其他可能的实施方式中,也可以由第一设备来生成目标应用程序,本申请实施例对此不做限定。
903、通过第一设备执行目标应用程序。
在一种可能的实施方式中,目标设备可以将目标应用程序和第一应用程序的安装包发送至第一设备,由第一设备执行目标应用程序和第一应用程序的安装包,将目标应用程序和第一应用程序安装在第一设备上。第一设备可以执行目标应用程序。
904、响应于第一应用程序存储在应用数据存储空间中的数据发生变化,第一设备在目标应用程序的用户界面上,显示数据的变化情况。
在一种可能的实施方式中,目标应用程序可以实时扫描自身的应用数据存储空间,响应于应用数据存储空间中的数据发生改变,第一设备可以在目标应用程序的用户界面上,显示数据的变化情况。
在这种实现方式下,由于目标应用程序和第一应用程序共享了存储应用数据存储空间,当第一应用程序存储在应用数据存储空间中的数据发生变化时,第一应用程序可以向开发人员展示该数据的变化情况,便于开发人员及时采取措施阻止其他设备对数据的修改,提高了数据的安全性。
举例来说,目标应用程序可以静态扫描对于引用数据存储空间的读取、写入以及删除操作,当目标应用程序检测到数据存储空间中的数据发生变化,可以在数据变化的位置插入广播通知,第一设备可以基于广播通知,在目标应用程序的用户界面上,显示数据的变化情况。
通过上述步骤901-904,目标设备可以通过目标脚本一键生成一个目标应用程序,生成目标应用程序的过程无需开发人员的参与,目标应用程序生成的效率较高。除此之外,第一设备上同时安装有目标应用程序和第一应用程序时,由于二者共享一个应用数据存储空间,当应用数据存储空间中的数据发生变化时,目标应用程序可以通过用户界面向开发人员展示数据的变化情况,开发人员可以直观的查看DB或者SP中的数据变化,从而可以做出相应的处理,提高了数据的安全性。
图11是本申请实施例提供的一种数据保护装置的结构示意图,参见图11,装置包括:调用模块1101、权限识别模块1102以及发送模块1103。
调用模块1101,用于响应于对第一数据的数据处理指令,调用目标进程,数据处理指令携带目标设备的设备信息,目标进程用于对第一数据进行数据处理。
权限识别模块1102,用于通过设备信息,对目标设备的权限进行识别。
发送模块1103,用于响应于目标设备不具有数据处理权限,将目标进程由指向第一数据修改为指向第二数据,通过修改后的进程,向目标设备发送第二数据,第二数据为不具有任一数据处理功能的数据。
在一种可能的实施方式中,目标设备的设备信息为目标设备的处理器信息和目标设备的处理器指令集标识中的至少一项,权限识别模块,用于将目标设备的处理器信息与预设处理器信息以及目标设备的处理器指令集标识与预设处理器指令集标识中的至少一项进行比较,响应于目标设备的处理器信息与预设处理器信息匹配,或目标设备的处理器指令集标识与预设处理器指令集标识匹配,确定目标设备具有数据处理权限。响应于目标设备的处理器信息与预设处理器信息不匹配,或目标设备的处理器指令集标识与预设处理器指令集标识不匹配,确定目标设备不具有数据处理权限。预设处理器信息和预设处理器指令集标识所指示的设备具有数据处理权限。
在一种可能的实施方式中,目标设备的设备信息为目标设备的网络环境信息,权限识别模块,用于将目标设备的网络环境信息与预设网络环境信息进行比较。响应于所述目标设备的网络环境信息与所述预设网络环境信息匹配,确定所述目标设备具有所述数据处理权限。响应于目标设备的网络环境信息与预设网络环境信息不匹配,确定目标设备不具有数据处理权限。预设网络环境信息所指示的设备具有数据处理权限。
在一种可能的实施方式中,装置还包括:
指令确定模块,用于响应于目标设备具有数据处理权限,确定数据处理指令指示的数据处理操作。
处理模块,用于执行数据处理操作,对第一数据进行处理。
在一种可能的实施方式中,指令确定模块,用于将数据处理指令与指令模板进行比较,响应于数据处理指令与任一指令模板匹配,确定任一指令模板对应的数据处理操作。
在一种可能的实施方式中,装置还包括:
提高模块,用于提高任一指令模板的权重,权重用于表示将数据处理指令与指令模板进行比较时指令模板的选取优先级。
在一种可能的实施方式中,装置还包括:
解析模块,用于响应于数据处理指令未与任一指令模板匹配,对数据处理指令进行语义解析,得到数据处理指令携带的字段名和字段值。
在一种可能的实施方式中,装置还包括:
提取模块,用于从数据处理指令中提取字段名以及与字段名对应的字段值,根据字段名和字段值确定数据处理操作在第一数据中的执行位置。
处理模块用于在执行位置执行数据处理操作,对第一数据进行处理。
在一种可能的实施方式中,装置还包括:
执行模块,用于执行目标脚本,获取第一应用程序的配置数据,目标脚本用于生成目标应用程序。
生成模块,用于根据配置数据和目标脚本携带的目标应用程序的用户界面数据,生成目标应用程序,目标应用程序与第一应用程序共享应用数据存储空间。
显示模块,用于执行目标应用程序,响应于第一应用程序存储在应用数据存储空间中的数据发生变化,在目标应用程序的用户界面上,显示数据的变化情况。
通过本申请提供的技术方案,当目标设备对第一设备上的第一数据进行数据处理时,第一设备会对目标设备的权限进行识别。当该目标设备不具有数据处理权限时,第一设备不会执行该目标设备对第一数据的数据处理操作,而是会向该目标设备发送不具有数据处理功能的第二数据,这样可以保证第一数据不会被该目标设备破坏或者窃取。通过这样的方式,无需将第一数据单独存放在服务器上,也就不涉及第一设备和服务器之间的交互。当用户处于较差的网络环境时,应用程序也能够直接在第一设备中读取第一数据,无需耗费时间从服务器进行下载,就能够实现应用程序的正常功能。在保证第一数据安全性的前提下,提高了人机交互的效率。
另外,目标设备可以通过目标脚本一键生成一个目标应用程序,生成目标应用程序的过程无需开发人员的参与,目标应用程序生成的效率较高。除此之外,第一设备上同时安装有目标应用程序和第一应用程序时,由于二者共享一个应用数据存储空间,当应用数据存储空间中的数据发生变化时,目标应用程序可以通过用户界面向开发人员展示数据的变化情况,开发人员可以及时获知数据发生变化,从而可以做出相应的处理,提高了数据的安全性。
图12是本申请实施例提供的一种计算机设备的结构示意图。该计算机设备1200可以是:智能手机、平板电脑、笔记本电脑或台式电脑。计算机设备1200还可能被称为用户计算机设备、便携式计算机设备、膝上型计算机设备、台式计算机设备等其他名称。
通常,计算机设备1200包括有:一个或多个处理器1201和一个或多个存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器)。协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储计算机设备、闪存存储计算机设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本申请中方法实施例提供的数据保护方法或应用程序生成方法。
在一些实施例中,计算机设备1200还可选包括有:外围计算机设备接口1203和至少一个外围计算机设备。处理器1201、存储器1202和外围计算机设备接口1203之间可以通过总线或信号线相连。各个外围计算机设备可以通过总线、信号线或电路板与外围计算机设备接口1203相连。具体地,外围计算机设备包括:射频电路1204、显示屏1205、摄像头1206、音频电路1207、定位组件1208和电源1209中的至少一种。
外围计算机设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围计算机设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围计算机设备接口1203被集成在同一芯片或电路板上。在一些其他实施例中,处理器1201、存储器1202和外围计算机设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信计算机设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为监控信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在计算机设备的前面板,后置摄像头设置在计算机设备的背面。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。
定位组件1208用于定位计算机设备1200的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。
电源1209用于为计算机设备1200中的各个组件进行供电。电源1209可以是交流电、直流电、一次性电池或可充电电池。
在一些实施例中,计算机设备1200还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。
加速度传感器1211可以检测以计算机设备1200建立的坐标系的三个坐标轴上的加速度大小。
陀螺仪传感器1212可以检测计算机设备1200的机体方向及转动角度,陀螺仪传感器1212可以与加速度传感器1211协同采集用户对计算机设备1200的3D动作。
压力传感器1213可以设置在计算机设备1200的侧边框和/或显示屏1205的下层。当压力传感器1213设置在计算机设备1200的侧边框时,可以检测用户对计算机设备1200的握持信号,由处理器1201根据压力传感器1213采集的握持信号进行左右手识别或快捷操作。当压力传感器1213设置在显示屏1205的下层时,由处理器1201根据用户对显示屏1205的压力操作,实现对UI界面上的可操作性控件进行监控。
指纹传感器1214用于采集用户的指纹,由处理器1201根据指纹传感器1214采集到的指纹识别用户的身份,或者,由指纹传感器1214根据采集到的指纹识别用户的身份。
光学传感器1215用于采集环境光强度。在一个实施例中,处理器1201可以根据光学传感器1215采集的环境光强度,监控显示屏1205的显示亮度。接近传感器1216用于采集用户与计算机设备1200的正面之间的距离。
本领域技术人员可以理解,图12中示出的结构并不构成对计算机设备1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的数据保护方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储终端等。
在示例性实施例中,还提供了一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由计算机设备的处理器执行,以完成上述各个实施例提供数据保护方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种数据保护方法,其特征在于,所述方法包括:
响应于对第一数据的数据处理指令,调用目标进程,所述数据处理指令携带目标设备的设备信息,所述目标进程用于对所述第一数据进行数据处理;
通过所述设备信息,对所述目标设备的权限进行识别;
响应于所述目标设备不具有数据处理权限,将所述目标进程由指向所述第一数据修改为指向第二数据,通过修改后的进程,向所述目标设备发送所述第二数据,所述第二数据为不具有任一数据处理功能的数据。
2.根据权利要求1所述的方法,其特征在于,所述目标设备的设备信息为所述目标设备的处理器信息和所述目标设备的处理器指令集标识中的至少一项,所述通过所述设备信息,对所述目标设备的权限进行识别包括:
将所述目标设备的处理器信息与预设处理器信息以及所述目标设备的处理器指令集标识与预设处理器指令集标识中的至少一项进行比较;
响应于所述目标设备的处理器信息与所述预设处理器信息匹配,或所述目标设备的处理器指令集标识与所述预设处理器指令集标识匹配,确定所述目标设备具有所述数据处理权限;响应于所述目标设备的处理器信息与所述预设处理器信息不匹配,或所述目标设备的处理器指令集标识与所述预设处理器指令集标识不匹配,确定所述目标设备不具有所述数据处理权限;
所述预设处理器信息和所述预设处理器指令集标识所指示的设备具有所述数据处理权限。
3.根据权利要求1所述的方法,其特征在于,所述目标设备的设备信息为所述目标设备的网络环境信息,所述通过所述设备信息,对所述目标设备的权限进行识别包括:
将所述目标设备的网络环境信息与预设网络环境信息进行比较,响应于所述目标设备的网络环境信息与所述预设网络环境信息匹配,确定所述目标设备具有所述数据处理权限;响应于所述目标设备的网络环境信息与所述预设网络环境信息不匹配,确定所述目标设备不具有所述数据处理权限;
所述预设网络环境信息所指示的设备具有所述数据处理权限。
4.根据权利要求1所述的方法,其特征在于,所述对所述目标设备的权限进行识别之后,所述方法还包括:
响应于所述目标设备具有所述数据处理权限,确定所述数据处理指令指示的数据处理操作;
执行所述数据处理操作,对所述第一数据进行处理。
5.根据权利要求4所述的方法,其特征在于,所述确定所述数据处理指令指示的数据处理操作包括:
将所述数据处理指令与指令模板进行比较,响应于所述数据处理指令与任一指令模板匹配,确定所述任一指令模板对应的数据处理操作。
6.根据权利要求5所述的方法,其特征在于,所述响应于所述数据处理指令与任一指令模板匹配之后,所述方法还包括:
提高所述任一指令模板的权重,所述权重用于表示将数据处理指令与指令模板进行比较时指令模板的选取优先级。
7.根据权利要求5所述的方法,其特征在于,所述将所述数据处理指令与指令模板进行比较之后,所述方法还包括:
响应于所述数据处理指令未与任一指令模板匹配,对所述数据处理指令进行语义解析,得到所述数据处理指令携带的字段名和字段值。
8.根据权利要求4所述的方法,其特征在于,所述执行所述数据处理操作,对所述第一数据进行处理之前,所述方法还包括:
从所述数据处理指令中提取字段名以及与所述字段名对应的字段值,根据所述字段名和所述字段值确定所述数据处理操作在所述第一数据中的执行位置;
所述执行所述数据处理操作,对所述第一数据进行处理包括:
在所述执行位置执行所述数据处理操作,对所述第一数据进行处理。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
执行目标脚本,获取第一应用程序的配置数据,所述目标脚本用于生成目标应用程序;
根据所述配置数据和所述目标脚本携带的所述目标应用程序的用户界面数据,生成所述目标应用程序,所述目标应用程序与所述第一应用程序共享应用数据存储空间;
执行所述目标应用程序,响应于所述第一应用程序存储在所述应用数据存储空间中的数据发生变化,在所述目标应用程序的用户界面上,显示所述数据的变化情况。
10.一种数据保护装置,其特征在于,所述装置包括:
调用模块,用于响应于对第一数据的数据处理指令,调用目标进程,所述数据处理指令携带目标设备的设备信息,所述目标进程用于对所述第一数据进行数据处理;
权限识别模块,用于通过所述设备信息,对所述目标设备的权限进行识别;
发送模块,用于响应于所述目标设备不具有数据处理权限,将所述目标进程由指向所述第一数据修改为指向第二数据,通过修改后的进程,向所述目标设备发送所述第二数据,所述第二数据为不具有任一数据处理功能的数据。
11.根据权利要求10所述的装置,其特征在于,所述目标设备的设备信息为所述目标设备的处理器信息和所述目标设备的处理器指令集标识中的至少一项,所述权限识别模块,用于将所述目标设备的处理器信息与预设处理器信息以及所述目标设备的处理器指令集标识与预设处理器指令集标识中的至少一项进行比较,响应于所述目标设备的处理器信息与所述预设处理器信息匹配,或所述目标设备的处理器指令集标识与所述预设处理器指令集标识匹配,确定所述目标设备具有所述数据处理权限;响应于所述目标设备的处理器信息与所述预设处理器信息不匹配,或所述目标设备的处理器指令集标识与所述预设处理器指令集标识不匹配,确定所述目标设备不具有所述数据处理权限;所述预设处理器信息和所述预设处理器指令集标识所指示的设备具有所述数据处理权限。
12.根据权利要求10所述的装置,其特征在于,所述目标设备的设备信息为所述目标设备的网络环境信息,所述权限识别模块,用于将所述目标设备的网络环境信息与预设网络环境信息进行比较,响应于所述目标设备的网络环境信息与所述预设网络环境信息匹配,确定所述目标设备具有所述数据处理权限;响应于所述目标设备的网络环境信息与所述预设网络环境信息不匹配,确定所述目标设备不具有所述数据处理权限;所述预设网络环境信息所指示的设备具有所述数据处理权限。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括
指令确定模块,用于响应于所述目标设备具有所述数据处理权限,确定所述数据处理指令指示的数据处理操作;
处理模块,用于执行所述数据处理操作,对所述第一数据进行处理。
14.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述指令由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求9任一项所述的数据保护方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求9任一项所述的数据保护方法。
CN202010658675.0A 2020-07-09 2020-07-09 数据保护方法、装置、设备及介质 Pending CN111666581A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010658675.0A CN111666581A (zh) 2020-07-09 2020-07-09 数据保护方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010658675.0A CN111666581A (zh) 2020-07-09 2020-07-09 数据保护方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN111666581A true CN111666581A (zh) 2020-09-15

Family

ID=72392217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010658675.0A Pending CN111666581A (zh) 2020-07-09 2020-07-09 数据保护方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN111666581A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116628770A (zh) * 2023-07-19 2023-08-22 北京芯驰半导体科技有限公司 芯片的数据保护方法、装置、芯片、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116628770A (zh) * 2023-07-19 2023-08-22 北京芯驰半导体科技有限公司 芯片的数据保护方法、装置、芯片、电子设备及存储介质
CN116628770B (zh) * 2023-07-19 2023-11-28 北京芯驰半导体科技有限公司 芯片的数据保护方法、装置、芯片、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108595970B (zh) 处理组件的配置方法、装置、终端及存储介质
AU2019461393B2 (en) Screen sharing processing method, apparatus and device, and storage medium
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
CN109074278B (zh) 验证移动应用中的有状态动态链接
US20150332043A1 (en) Application analysis system for electronic devices
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
WO2020125134A1 (zh) 自定义模型防篡改方法、装置、终端设备及存储介质
CN111460516B (zh) 基于非侵入式的数据保护方法、装置、终端及存储介质
EP3176719B1 (en) Methods and devices for acquiring certification document
KR20110128632A (ko) 스마트폰 응용프로그램의 악성행위 탐지 방법 및 장치
CN109614203B (zh) 一种基于应用数据仿真的安卓应用云数据取证分析系统及方法
CN112231617A (zh) 服务调用校验方法、装置、存储介质及电子设备
CN112035354A (zh) 风险代码的定位方法、装置、设备及存储介质
CN113630253A (zh) 登录方法、装置、计算机系统及可读存储介质
Huang et al. A11y and Privacy don't have to be mutually exclusive: Constraining Accessibility Service Misuse on Android
WO2022093353A1 (en) Using multi-factor and/or inherence-based authentication to selectively enable performance of an operation prior to or during release of code
Stirparo et al. In-memory credentials robbery on android phones
CN111666581A (zh) 数据保护方法、装置、设备及介质
US7962922B2 (en) Delivering callbacks into secure application areas
CN112437075A (zh) 数据处理方法、装置、设备和存储介质
US10503929B2 (en) Visually configurable privacy enforcement
CN110348226A (zh) 一种工程文件的扫描方法、装置、电子设备及存储介质
WO2022247226A1 (zh) 一种小程序监控方法及装置
Rana An overview of android operating system
US8914895B1 (en) Managing verification of input data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40028573

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination