一种数据安全调用方法及装置与流程

文档序号:17161700发布日期:2019-03-20 00:49阅读:143来源:国知局
本申请涉及数据处理
技术领域
:,具体而言,涉及一种数据安全调用方法及装置。
背景技术
::托管语言编写的程序,经过编译器把编译后,源代码被转换成中间语言。而市面上有很多软件,能够把中间语言反编译为源代码。致使程序中的一些重要资源和信息无法得到有效保证。现有技术一般将重要资源和信息,包含在非托管语言中,使用托管语言进行调用。由于非托管语言只能反编译为机器语言,无法得到源代码。从而达到保护代码和资源的目的。但是,采用非托管语言进行编译的重要资源,其他人也可以正常调用,极有可能被非法获取,故现有技术中,数据的调用过程不够安全,可能被非法获取。技术实现要素:有鉴于此,本申请的目的在于提供一种数据安全调用方法及装置,以提高数据在调用时的安全性。第一方面,本申请实施例提供了一种数据安全调用方法,包括:接收到目标进程的数据调用指令时,获取所述目标进程对应的可执行文件;确定所述可执行文件的特征值;验证所述特征值是否合法,若是,将与所述特征值对应的存储数据返回至所述目标进程。结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,所述接收到目标进程的数据调用指令时,获取所述目标进程对应的可执行文件,包括:根据所述目标进程确定所述目标进程对应的进程号;根据所述进程号查找与所述进程号对应的所述可执行文件。结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,所述确定所述可执行文件的特征值,包括:按照设定的哈希算法计算所述可执行文件的内容对应的哈希值,得到所述特征值。结合第一方面,本申请实施例提供了第一方面的第三种可能的实施方式,按照以下方式验证所述特征值是否合法:在预先生成的用于存储的可执行文件中,查找是否存在所述特征值;若是,确定所述特征值合法。结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,所述将与所述特征值对应的存储数据返回至所述目标进程,包括:在所述用于存储的可执行文件中查找与所述特征值对应的存储数据;对所述存储数据进行格式转换后得到原始数据;将所述原始数据返回至所述目标进程。结合第一方面,本申请实施例提供了第一方面的第五种可能的实施方式,在接收到目标进程的数据调用指令之前,所述方法还包括:接收到所述目标进程的数据存储指令时,获取所述目标进程对应的可执行文件以及原始数据;确定所述可执行文件的内容对应的特征值;将所述特征值和所述原始数据按照非托管语言进行编写后生成用于存储的可执行文件。结合第一方面的第五种可能的实施方式,本申请实施例提供了第一方面的第六种可能的实施方式,所述方法还包括:当确定所述目标进程对应的可执行文件的内容更新后,获取所述可执行文件更新后的内容;根据所述更新后的内容重新确定所述可执行文件对应的更新后的特征值;按照所述非托管语言对所述更新后的特征值和所述原始数据进行重新编写,生成更新后的用于存储的可执行文件。第二方面,本申请实施例提供了一种数据安全调用装置,包括:获取模块,用于接收到目标进程的数据调用指令时,获取所述目标进程对应的可执行文件;确定模块,用于确定所述可执行文件的特征值;返回模块,用于验证所述特征值是否合法,若是,将与所述特征值对应的存储数据返回至所述目标进程。结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,所述获取模块,具体用于:根据所述目标进程确定所述目标进程对应的进程号;根据所述进程号查找与所述进程号对应的所述可执行文件。结合第二方面,本申请实施例提供了第二方面的第二种可能的实施方式,所述确定模块,具体用于:按照设定的哈希算法计算所述可执行文件的内容对应的哈希值,得到所述特征值。与现有技术中相比,本申请实施例提供的数据安全调用方法包括接收到目标进程的数据调用指令时,获取目标进程对应的可执行文件;确定可执行文件的特征值;验证特征值是否合法,若是,将与特征值对应的存储数据返回至目标进程。即本申请实施例给出的数据安全调用方法,在接收到目标进程的数据调用指令时,会在验证目标进程对应的可执行文件的特征值合法后,再将与该特征值对应的存储数据返回至该目标进程,即会验证目标进程的身份信息,防止非法调用,保护了数据的安全性。为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本申请实施例所提供的一种数据安全调用方法的流程图;图2示出了本申请实施例所提供的一种查找可执行文件的方法流程图;图3示出了本申请实施例所提供的一种用于存储的可执行文件的生成方法流程图;图4示出了本申请实施例所提供的一种用于存储的可执行文件的更新方法流程图;图5示出了本申请实施例所提供的一种返回原始数据的方法流程图;图6示出了本申请实施例所提供的一种数据安全调用装置的结构图;图7示出了本申请实施例所提供的一种电子设备结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。实施例1本申请实施例1提供了一种数据安全调用方法,如图1所示,包括以下步骤s100~s102:s100,接收到目标进程的数据调用指令时,获取目标进程对应的可执行文件。进程(process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程(process)”概念。其中,可执行文件(executablefile)指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。比如在windows操作系统下,可执行程序可以是.exe文件.sys文件.com等类型文件。本申请实施例中的目标进程即进行数据调用指令的程序,通过该目标进程可以获取到进行数据调用指令的可执行文件。具体地,步骤s100中,接收到目标进程的数据调用指令时,获取目标进程对应的可执行文件,如图2所示,具体包括如下步骤s200~s201:s200,根据目标进程确定目标进程对应的进程号。s201,根据进程号查找与进程号对应的可执行文件。每个进程都对应着唯一的进程号,而进程号与可执行文件有对应关系,因此通过进程号可以找到对应的可执行文件。比如,进程abc.exe,其在计算机上的可执行文件为c:\programefiles\yz\abc.exe,进程号为32122,则通过进程号可以找到该可执行文件c:\programefiles\yz\abc.exe。s101,确定可执行文件的特征值。具体地,确定可执行文件的特征值,包括:按照设定的哈希算法计算可执行文件的内容对应的哈希值,得到特征值。这里是针对可执行文件对应的内容,比如代码或者数字等,本申请实施例确定的可执行文件的特征值,可以是计算该可执行文件对应的内容的sha256哈希值得到的。s102,验证特征值是否合法,若是,将与特征值对应的存储数据返回至目标进程。这里的特征值是否合法,主要是指当接收到数据调用指令时,确定可执行文件的特征值是否与预存的特征值相同,若是则确定该特征值合法。可选地,按照以下方式验证特征值是否合法:在预先生成的用于存储的可执行文件中,查找是否存在特征值。若是,确定特征值合法。可选地,在接收到目标进程的数据调用指令之前,还包括对数据进行存储,如图3所示,包括以下具体步骤s300~s302:s300,接收到目标进程的数据存储指令时,获取目标进程对应的可执行文件以及原始数据。这里的目标进程对应的可执行文件与上述调用过程中的目标进程对应的可执行文件相同,即存储者与调用者为同一个可执行文件,比如上述的abc.exe文件。s301,确定可执行文件的内容对应的特征值。s302,将特征值和原始数据按照非托管语言进行编写后生成用于存储的可执行文件。具体地,生成的用于存储的可执行文件中,特征值和原始数据为关联关系,故在abc.exe文件在调用数据时,可以根据abc.exe文件的特征值找到原始数据。针对按照非托管语言进行编写后生成用于存储的可执行文件,这里以一个具体的实施例进行阐述,比如原始数据为用户名和该用户对应的身份证号码,如张三-11020003000400500,通过哈希算法得到abc.exe文件的哈希值为id1,接收到目标进程的数据存储指令时,获取张三-11020003000400500和id1,然后按照c++语言或者c语言对张三-11020003000400500和id1进行编写,生成用于存储的可执行文件,比如seckey.dll。这里采用非托管语言进行编写,是因为非托管语言在被反编译后只能编译为机器语言,无法得到原始数据张三-11020003000400500,可以加强原始数据的安全性,本申请中将经过非托管语言编写的原始数据称为存储数据。进一步地,若上述目标进程中的可执行文件的内容更新后,因为其对应的特征值也会改变,所以需要重新生成用于存储的可执行文件,如图4所示,上述数据安全调用方法还包括以下具体步骤s400~s402:s400,当确定目标进程对应的可执行文件的内容更新后,获取可执行文件更新后的内容。s401,根据更新后的内容重新确定可执行文件对应的更新后的特征值。s402,按照非托管语言对更新后的特征值和原始数据进行重新编写,生成更新后的用于存储的可执行文件。这里是指通过可执行文件更新后的内容重新确定其特征值后,通过非托管语言比如c++或c语言对更新后的特征值和原始数据重新编写为用于存储的可执行文件,比如.dll文件。在一种实施方式中,步骤s102中,将与特征值对应的存储数据返回至目标进程,如图5所示,具体包括以下步骤s400~s402:s500,在用于存储的可执行文件中查找与特征值对应的存储数据。比如上述提到的用于存储的可执行文件seckey.dll文件中存储了abc.exe文件的特征值和存储数据,这里的存储数据即原始数据经过非托管语言编写后的数据格式,其与abc.exe文件的特征值有关联关系,可以通过abc.exe文件的特征值找到该存储数据。s501,对存储数据进行格式转换后得到原始数据。按照一定的格式转换关系,将存储数据的格式转换为原始数据,即得到上述提到的“张三-11020003000400500”。s502,将原始数据返回至目标进程。下面以一具体实施例对上述完整过程进行详细阐述:1)用非托管语言c\c++编写的dll为seckey.dll,里面存放了要保护的数据d1和身份标识码id1,调用数据d1的方法为getkey();其中d1和id1是写在seckey的源代码中,编译到seckey.dll中的。2)托管语言编写的程序abc.exe,要调用seckey.dll的getkey()方法得到数据d1。3)假设abc.exe在电脑上为c:\programefiles\yz\abc.exe,运行起来后,在系统进程中为abc.exe,进程号为32122。3)进程32122调用scekey.dll的getkey()方法。4)在getkey()方法中,可得知调用方为进程32122,进而得到对应磁盘文件为c:\programefiles\yz\abc.exe,计算这个文件的sha256哈希值,这个哈希值为id2。然后比对id2是否等于id1,如果相同,则判断调用方合法,返回数据d1,否则返回调用方非法。实施例2本申请实施例2提供了一种数据安全调用装置600,如图6所示,包括:获取模块601,用于接收到目标进程的数据调用指令时,获取所述目标进程对应的可执行文件。确定模块602,用于确定所述可执行文件的特征值。返回模块603,用于验证所述特征值是否合法,若是,将与所述特征值对应的存储数据返回至所述目标进程。可选地,所述获取模块601,具体用于:根据目标进程确定目标进程对应的进程号。根据进程号查找与进程号对应的可执行文件。可选地,确定模块602,具体用于:按照设定的哈希算法计算可执行文件的内容对应的哈希值,得到特征值。可选地,返回模块603按照以下方式验证特征值是否合法:在预先生成的用于存储的可执行文件中,查找是否存在所述特征值;若是,确定所述特征值合法。可选地,返回模块603,具体用于:在用于存储的可执行文件中查找与特征值对应的存储数据。对存储数据进行格式转换后得到原始数据。将原始数据返回至目标进程。可选地,该装置还包括存储模型,在接收到目标进程的数据调用指令之前,该存储模型还用于:接收到目标进程的数据存储指令时,获取目标进程对应的可执行文件以及原始数据。确定可执行文件的内容对应的特征值。将特征值和原始数据按照非托管语言进行编写后生成用于存储的可执行文件。可选地,存储模块还用于:当确定目标进程对应的可执行文件的内容更新后,获取可执行文件更新后的内容。根据更新后的内容重新确定可执行文件对应的更新后的特征值。按照非托管语言对更新后的特征值和原始数据进行重新编写,生成更新后的用于存储的可执行文件。实施例3本申请实施例3还提供了一种电子设备700,如图7所示,包括:处理器701、存储器702和总线703,存储器702存储有处理器701可执行的机器可读指令,当电子设备运行时,处理器701与存储器702之间通过总线通信,处理器701执行存储器702中存储的如下机器可读指令:接收到目标进程的数据调用指令时,获取目标进程对应的可执行文件。确定可执行文件的特征值。验证特征值是否合法,若是,将与特征值对应的存储数据返回至目标进程。可选地,处理器701执行的执行指令具体包括:根据目标进程确定所述目标进程对应的进程号。根据进程号查找与进程号对应的可执行文件。可选地,处理器701执行的执行指令具体包括:按照设定的哈希算法计算可执行文件的内容对应的哈希值,得到特征值。可选地,处理器701执行的执行指令按照以下方式验证特征值是否合法:在预先生成的用于存储的可执行文件中,查找是否存在特征值。若是,确定特征值合法。可选地,处理器701执行的执行指令具体包括:在用于存储的可执行文件中查找与特征值对应的存储数据。对存储数据进行格式转换后得到原始数据。将原始数据返回至目标进程。可选地,在接收到目标进程的数据调用指令之前,处理器401执行的执行指令还包括:接收到目标进程的数据存储指令时,获取目标进程对应的可执行文件以及原始数据。确定可执行文件的内容对应的特征值。将特征值和原始数据按照非托管语言进行编写后生成用于存储的可执行文件。可选地,处理器401执行的执行指令还包括:当确定目标进程对应的可执行文件的内容更新后,获取可执行文件更新后的内容。根据更新后的内容重新确定可执行文件对应的更新后的特征值。按照非托管语言对更新后的特征值和原始数据进行重新编写,生成更新后的用于存储的可执行文件。对应于图1至图5中的数据安全调用方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述数据安全调用方法的步骤。具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述数据安全调用方法,从而解决现有技术中数据在调用中出现的非法调用问题。与现有技术中相比,本申请实施例提供的数据安全调用方法包括接收到目标进程的数据调用指令时,获取目标进程对应的可执行文件;确定可执行文件的特征值;验证特征值是否合法,若是,将与特征值对应的存储数据返回至目标进程。即本申请实施例给出的数据安全调用方法,在接收到目标进程的数据调用指令时,会在验证目标进程对应的可执行文件的特征值合法后,再将与该特征值对应的存储数据返回至该目标进程,即会验证目标进程的身份信息,防止非法调用,保护了数据的安全性。进一步地,由于非托管语言对原始数据进行编写,并且无法通过反编译得到原始数据。只能通过机器语言破解,破解难度和代价非常大。使我们的重要资源和信息得到了安全级别较高的保护。本申请实施例所提供的进行数据安全调用方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。本申请实施例所提供的数据安全调用装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
:的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1