CN110232261B - 包文件的操作方法、文件处理设备及具有存储功能的设备 - Google Patents
包文件的操作方法、文件处理设备及具有存储功能的设备 Download PDFInfo
- Publication number
- CN110232261B CN110232261B CN201910477907.XA CN201910477907A CN110232261B CN 110232261 B CN110232261 B CN 110232261B CN 201910477907 A CN201910477907 A CN 201910477907A CN 110232261 B CN110232261 B CN 110232261B
- Authority
- CN
- China
- Prior art keywords
- package
- file
- packet
- preset encryption
- independent
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 207
- 238000012545 processing Methods 0.000 title claims abstract description 15
- 230000008569 process Effects 0.000 claims abstract description 178
- 230000006870 function Effects 0.000 claims description 47
- 238000011017 operating method Methods 0.000 claims description 3
- 230000006386 memory function Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009545 invasion Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6281—Protecting 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 at program execution time, where the protection is within the operating system
-
- 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
- G06F21/74—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 operating in dual or compartmented mode, i.e. at least one secure mode
Abstract
本申请公开了一种包文件的操作方法、文件处理设备及具有存储功能的设备,该方法包括:系统内核判断是否有进程产生;若有进程产生,则运行独立内核模块,该独立内核模块判断该进程是否为可信进程;若该进程为可信进程,则判断该进程是否进行包操作;若该进程进行包操作,则判断该进程需要操作的目标包文件是否为预设加密包中的包文件;若该进程需要操作的目标包文件为预设加密包中的包文件,则独立内核模块查询预设加密包,并向该进程返回一个虚假值,该虚假值为目标包文件的属性或目标包文件至少部分数据解密后的明文。通过上述方式,本申请能够提高包文件,尤其是重要包的操作安全性。
Description
技术领域
本申请涉及计算机安全技术领域,特别是涉及一种包文件的操作方法、文件处理设备及具有存储功能的设备。
背景技术
目前的嵌入式设备,对公司发布的重要包通常会进行加密,程序运行时解密,运行结束后删除文件;还有一种方法是利用加壳程序访问重要包。对于前者,在程序加载时,磁盘上存在明文,容易被入侵者捕获。对于后者,因为Linux版本多,造成兼容性不好,管理不方便;而且加壳程序的运行依赖于自身的解密,容易被跟踪破解。对于常用的加壳算法,解壳的算法也是公开的,安全性不高。
发明内容
本申请主要解决的技术问题是提供一种包文件的操作方法、文件处理设备及具有存储功能的设备,能够提高包文件,尤其是重要包的操作安全性。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种包文件的操作方法,包括:系统内核判断是否有进程产生;若有进程产生,则运行独立内核模块,该独立内核模块判断该进程是否为可信进程;若该进程为可信进程,则判断该进程是否进行包操作;若该进程进行包操作,则判断该进程需要操作的目标包文件是否为预设加密包中的包文件;若该进程需要操作的目标包文件为预设加密包中的包文件,则独立内核模块查询预设加密包,并向该进程返回一个虚假值,该虚假值为目标包文件的属性或目标包文件至少部分数据解密后的明文。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种文件处理设备,包括:相互连接的处理器和存储器;存储器用于存储预设加密包、系统内核和独立内核模块;处理器用于执行指令以实现如上所述的方法。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种具有存储功能的设备,内部存储有程序指令,该程序指令用于被执行以实现如上所述的方法。
本申请的有益效果是:区别于现有技术的情况,本申请的实施例中,系统内核在有进程产生时,会运行独立内核模块,由独立内核模块判断所述进程是否为可信进程,并在进程为可信进程且进行包操作时,判断进程需要操作的目标包文件是否为预设加密包中的包文件,并在进程需要操作的目标包文件为预设加密包中的包文件,由独立内核模块查询预设加密包,并向进程返回一个虚假值,其中该虚假值为目标包文件的属性或目标包文件至少部分数据解密后的明文。通过上述方式,本申请将包文件进行加密后,只有在可信进程操作包文件时,才使用独立内核模块利用虚拟化技术返回一个虚拟值,使得加密包文件不会被不可信进程操作,可以确保系统上的重要包文件,不会因为入侵或者内部恶意行为被拿到明文,且采用独立内核模块实现点虚拟化,无内核开源泄露公司重要源码的风险,虚拟化技术使得入侵者或者内部恶意行为也拿不到各个包的密文,可以做到“明文看不见,密文拷不走”,提高包文件,尤其是重要包的操作安全性。
附图说明
图1是本申请一种包文件的操作方法第一实施例的流程示意图;
图2是uimage和独立ko的交互过程示意图;
图3是图1中步骤S12的具体流程示意图;
图4是多个包文件打包成一个总包的示意图;
图5是图1中步骤S14的具体流程示意图;
图6是本申请一种包文件的操作方法第二实施例的流程示意图;
图7是图6中步骤S152的具体流程示意图;
图8是本申请一种文件处理设备一实施例的结构示意图;
图9是本申请一种具有存储功能的设备一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提出的包文件的操作方法适用于多种操作系统,尤其适用于嵌入式系统,例如Linux。下面将以Linux操作系统为例进行说明。
如图1所示,本申请一种包文件的操作方法第一实施例包括:
S11:系统内核判断是否有进程产生。
系统内核为操作系统的核心,系统执行各项操作需要系统内核进行编译得到系统内核映像文件之后,执行该系统内核映像文件。其中,系统内核编译(make)之后通常会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件。此外,还可以在zImage之前加上一个长度为64字节的“头”,形成一种uboot专用的内核映像文件uimage,该“头”说明这个内核的版本、加载位置、生成时间、大小等信息。本申请中系统内核执行以执行uimage为例进行说明。
具体地,系统内核执行时,uimage文件执行过程中会监听是否有进程产生,若有进程产生,则执行如下步骤S12,否则执行步骤S17:不运行独立内核模块,在系统内核中执行相关操作。
S12:运行独立内核模块,该独立内核模块判断该进程是否为可信进程。
其中,该独立内核模块是kernel object(内核模块)文件,以下简称独立ko。该独立ko就是把系统内核的一些功能移动到系统内核外边,需要的时候插入系统内核,不需要时卸载,作为一个功能模块,需要使用时,直接插入运行就行。
进一步地,为了实现独立ko执行系统内核的部分功能,例如预设加密包文件的操作,系统内核需要将预设加密包的密钥以及预设加密包的配置表路径名传给独立ko,并从独立ko中获取功能函数指针表并将功能函数指针表中的功能函数挂载到系统内核中,以使得系统内核得知独立ko需要接管系统内核哪些功能,从而可以在该部分功能发生时跳转到独立ko。独立ko执行过程中可能需要执行某些系统函数,因此独立ko还需要从系统内核中获取系统函数指针表,以便得知系统函数地址进行调用。
具体地,为了实现上述功能,需要修改系统内核文件,例如,在/fs/file.c和file.h中定义一个导出函数(交互接口)以实现将上述独立ko和系统内核的交互功能,并将其插入到系统内核文件中。由于系统内核代码开源,但独立ko不开源,因此无内核开源泄露公司重要源码的风险。
其中,系统内核和独立ko的交互接口可以定义如下:首先定义一独立ko的功能函数指针表,并初始化为空;然后定义一获取指针的函数或方法,用于实现统内核和独立ko的交互。其中,该获取指针的函数或方法可以实现如下功能:内核从独立模块获取功能函数指针表,独立模块从内核获取系统函数指针表,调用复制函数将密钥复制到独立ko,调用复制函数拷贝总包的路径名。
然后,可以将上述交互接口插入到系统内核源码的文件中,并进行重新编译,即可以得到升级后的uimage。该需要插入交互接口的系统内核源码文件至少包括:base.c、exec.c、module.c、namei.c、open.c、read_write.c以及util.c等。
结合图2所示,升级后的uimage执行时,若监听到有进程执行,则会跳转到独立ko,由独立ko判断该进程是否为可信进程。若该进程为可信进程,则执行如下步骤S13,否则执行步骤S16。例如,uimage内核函数do_execve执行时,会跳转到独立ko中分析该进程是否是总包中描述的可信进程。
可选地,由于独立ko已经从系统内核获取预设加密包的配置表,该配置表中包括有授权操作该预设加密包的可信进程,因此,独立ko通过查询该配置表即可判断当前运行的进程是否为可信进程。具体如图3所示,步骤S12包括:
S121:独立内核模块从预设加密包的配置表中获取授权操作预设加密包中包文件的进程文件路径名。
其中,该预设加密包的配置表是预先设定的该预设加密包中数据的内容及授权操作预设加密包中包文件的进程文件路径名等信息。
可选地,在进程对包文件进行操作前,或者公司发布包文件(尤其是重要包)前,为了保证包文件的内容不被入侵者或内部恶意行为窃取,需要对包文件进行加密。
具体地,多个包文件在发布前,需要先利用密钥将该多个包文件加密到一个总包中,形成预设加密包,该预设加密包包括配置表及多个包文件加密后的密文。其中,该被加密的包文件类型包括ko类型、可执行类型和so类型等。例如,设备上的重要包在发布前,重要包被传到加密服务器,用加密服务器上的密钥进行加密并生成一个总包。总包的前面是一张配置表,用来描述在其中封装的包。后面是每个包的密文。公司在发布产品时,就只有一个总包。另外,也可以直接利用系统内核进行文件加密。
该预设加密包的密钥在系统内核或芯片内,可以使得密钥不会轻易被窃取,使得包文件不易被破解,保证包文件的安全性。同时,由于将多个包文件同时加密到一个总包中,包格式改变,该加密包不容易被分析破解,从而可以不用担心被逆向分析。此外,在包文件进行加密时,可以采用复杂的加密算法,对不同算法的兼容性好。
为了提高速度,总包中对包进行描述的配置表是常驻内存,而各个包的数据,只有在有读取操作时,才从磁盘获取。
在一个应用例中,如图4所示,将包文件A、B和C利用密钥进行加密打包,可以得到一个总包,该总包中包括配置表和加密后的密文A、B和C。
其中,总包可以采用数据结构进行定义。例如,定义一结构SAX_PACKAGE描述整个总包,由总包的标识、hash(哈希摘要)、长度、封装的包的个数组成。该SAX_PACKAGE结构后面有num个包的结构表,每个包的结构表中包括受保护包的虚拟路径文件名、打包前的属性、包的文件长度、在总包中的文件偏移、授权操作或加载该包的进程文件路径名。其中,该受保护包的虚拟路径文件名是ko虚拟的路径名,不是实际的文件路径,该打包前的属性包括可执行、可读、可写等。
S122:判断进程是否与授权操作预设加密包中包文件的进程文件路径名相匹配。
若匹配,则执行步骤S123,否则执行步骤S124。
S123:判定该进程为可信进程。
S124:判定该进程为不可信进程。
具体地,独立ko可以查询预设加密包(即总包),从总包中,例如总包配置表中,获取授权操作预设加密包中包文件的进程文件路径名,并与当前运行的该进程的文件路径名进行比较,若二者相同,则表明该进程与授权操作预设加密包中包文件的进程文件路径名相匹配,该进程为可信进程,保留在独立ko中进行后续操作,否则表明该进程为不可信进程,跳转会uimage。
当然,在其他实施例中,系统内核也可以直接将可信进程名称或路径名等生成一个数据结构等形式,直接提前传输给独立ko,独立ko直接通过查询该数据结构即可以得知该进程是否为可信进程。
S13:判断该进程是否进行包操作。
其中,包操作包括对获取包文件的属性,以及对包文件的读写操作等。
具体地,系统内核uimage可以根据该进程执行的函数,确定该进程是否进程包操作,若该进程进行包操作,则执行步骤S14,从uimage跳转到独立ko执行后续操作,否则执行步骤S16。
例如,当前运行的进程调用的函数为read_write函数,则系统内核uimage会跳转到独立ko,由独立ko进行后续操作,若进程调用的函数不是进行包操作的函数,则返回系统内核执行uimage。
S14:判断该进程需要操作的目标包文件是否为预设加密包中的包文件。
具体地,该进程为可信进程,该进程执行包操作时,需要确定需要操作的目标包文件,若该进程需要操作的目标包文件为预设加密包中的包文件,则执行如下步骤S15,否则执行步骤S16。
可选地,进程执行包操作时,其执行的函数所带的参数即包括需要操作的目标包文件,通过对进程函数的参数进行查询,即可以得知该进程需要操作的包文件是否为预设加密包中的包文件。具体如图5所示,步骤S14包括:
S141:独立内核模块获取该进程所带的参数。
S142:判断该参数中目标包文件是否为预设加密包中的包文件。
若该目标包文件为预设加密包中的包文件,则执行步骤S143,否则执行步骤S144。
S143:判定该进程需要操作的目标包文件为预设加密包中的包文件。
S144:判定该进程需要操作的目标包文件不是预设加密包中的包文件。
具体地,结合图2所示,在一个应用例中,独立ko获取该可信进程所带的参数,然后从该参数中获取该进程需要操作的目标包文件,独立ko再查询预设加密包的配置表,获取该预设加密包中包含的包文件的名称,通过对比该目标包文件与该该预设加密包中包含的包文件的名称,若二者一致,则判定该进程需要操作的目标包文件为预设加密包中的包文件,可以执行后续对包文件的操作,否则判定该进程需要操作的目标包文件不是预设加密包中的包文件,返回系统内核uimage执行其他相关操作。
在其他实施例中,系统内核也可以在有进程进行包操作时,从uimage跳转到独立ko中,再由独立ko判断该进程是否为可信进程。
S15:独立内核模块查询预设加密包,并向该进程返回一个虚假值,该虚假值为目标包文件的属性或目标包文件至少部分数据解密后的明文。
S16:返回系统内核执行相关操作。
具体地,该独立ko在确定当前运行的进程是可信进程,且该可信进程是对预设加密包中的包文件进行包操作时,独立ko利用虚拟化技术,查询预设加密包,生成一个虚拟文件,并向进程返回一个虚拟值,该虚拟值是独立ko根据进程的包操作类型得到的目标包文件的属性或目标包文件至少部分数据解密后的明文。而当当前运行的进程是不可信进程时,该独立ko不进行虚拟化,不会返回该虚拟值,从而可以保证只有可信进程可以访问并操作预设加密包中的包文件,防止不可信进程访问预设加密包,可以确保系统上的重要包文件,不会因为入侵或者内部恶意行为被拿到明文,且采用独立内核模块实现点虚拟化,虚拟化技术使得入侵者或者内部恶意行为也拿不到各个包的密文,可以做到“明文看不见,密文拷不走”,提高包文件,尤其是重要包的操作安全性。
如图6所示,本申请一种包文件的操作方法第二实施例是在本申请一种包文件的操作方法第一实施例的基础上,限定步骤S15包括:
S151:独立内核模块查询预设加密包的配置表,虚拟出一个与目标包文件大小一致的虚拟文件。
其中,该虚拟文件是由独立ko采用虚拟化技术在目标包文件的虚拟路径处虚拟出的一个文件,该虚拟文件中并没有该目标包文件的文件内容。
具体地,独立ko在确定当前运行的进程是可信进程,且该可信进程是对预设加密包中的包文件进行包操作时,独立ko查询预设加密包的配置表,从该配置表中获取目标包文件的大小以及目标包文件的虚拟路径,然后在该在目标包文件的虚拟路径处虚拟出的一个与该目标包文件大小一致的虚拟文件。该进程对目标包文件的操作指针指向该虚拟文件,即该进程转化为对该虚拟文件进行操作。
S152:根据该进程对该虚拟文件的操作类型,独立内核模块转向预设加密包的对应位置进行操作,得到虚拟值返回该进程。
其中,该虚拟值是该进程对目标包文件的操作结果。该进程对虚拟文件的操作类型可以包括获取包属性、字节读取或块读取等。
具体地,在一个应用例中,该进程对目标包文件可以执行一种或多种包操作,即相当于对虚拟文件进程对应的操作。由于独立ko已经从系统内核中获取该预设加密包的配置表路径,该配置表路径即为预设加密包的首地址,因此,根据该操作类型,独立ko会直接转向预设加密包文件,即独立ko的操作指针会指向预设加密包的配置表路径,从该预设加密包中获取对应位置的数据,进行相关操作(例如解密),得到操作结果,作为一个虚拟值,返回该进程。
可选地,如图7所示,步骤S152包括:
S1521:判断该进程对虚拟文件的操作是否为查询包属性。
其中,由于独立ko采用虚拟化技术虚拟出该虚拟文件,进程对目标包文件的操作则转化为对该虚拟文件的操作。
若该进程对虚拟文件的操作为查询包属性,则执行步骤S1522,否则执行步骤S1523。
S1522:独立内核模块从预设加密包中查询目标包文件的对应属性,并向该进程返回目标包文件的对应属性值。
具体地,结合图2所示,独立ko在确定可信进程需要对预设加密包进行操作时,则虚拟出一个与目标包文件大小一致的虚拟文件,并根据该进程对目标包文件,即对虚拟文件的操作类型,如果该操作类型是对查询文件属性的操作(sys_stat函数中),独立ko会从预设加密包中查询对应的目标包文件的属性,修改其返回值,将该属性作为返回值,返回给该进程。若该包操作类型不是查询包属性,则继续执行如下步骤S1523。
S1523:判断该进程对虚拟文件的操作是否为读若干字节的操作。
其中,该读若干字节的操作是读取目标包文件的若干字节,例如读取目标包文件中的第5字节到第10字节。
若该进程对虚拟文件的操作为读若干字节的操作,则执行步骤S1524,否则执行步骤S1525。
S1524:独立内核模块读取目标包文件,并利用从系统内核中获取的密钥对目标包文件进行解密后读取对应字节数据,将对应字节数据返回给该进程。
具体地,在一个应用例中,系统内核在执行read_write函数时,如果有对受保护包的读若干字节的操作,则会从uimage跳转到独立ko,由独立ko从init_module函数中读取总包中的目标包文件,然后利用从系统内核中获取的密钥进行解密后,作为虚假值,填充到进程分配的内存空间(如缓冲区)中,由该进程进行读取。
在其他实施例中,该独立ko也可以先获取目标包文件中对应字节的密文,然后在利用密钥对该密文进行解密,得到该对应字节的明文数据。
若该包操作类型不是字节读取操作,则继续执行如下步骤S1525。
S1525:判断该进程对虚拟文件的操作是否为块数据读取操作。
其中,块数据读取操作是读取预设加密包或目标包文件中的某块数据。
若该进程对预设加密包的操作为块数据读取操作,则执行步骤S1526,否则执行步骤S1527。
S1526:独立内核模块读取预设加密包中对应位置的数据块,利用从系统内核中获取的密钥对数据块进行解密后,将解密后的明文返回给该进程。
S1527:返回系统内核执行相关操作。
具体地,在一个应用例中,系统内核在执行vm_map函数时,如果发生对块数据的读取操作,则会从uimage跳转到独立ko,由独立ko从init_module函数中读取总包中对应位置的数据块,然后利用从系统内核中获取的密钥进行解密后,作为虚假值,填充到进程分配的内存空间(如缓冲区)中,由该进程进行读取。
在其他实施例中,上述步骤中对操作类型的判断顺序可以根据需要调换。
本实施例中,独立ko只对可信进程执行的包操作进行包文件虚拟,而对不可信进程不进行虚拟化操作,从而可以保证只有可信进程可以访问并操作预设加密包中的包文件,防止不可信进程访问预设加密包,可以确保系统上的重要包文件,不会因为入侵或者内部恶意行为被拿到明文。而且采用独立内核模块实现点虚拟化,虚拟化技术使得入侵者或者内部恶意行为也只能得知虚拟文件路径,而不知道真实文件路径,也拿不到各个包的密文,可以做到“明文看不见,密文拷不走”,提高包文件,尤其是重要包的操作安全性。
如图8所示,本申请一种文件处理设备一实施例中,文件处理设备80包括:相互连接的处理器801和存储器802。
该存储器802用于存储预设加密包、系统内核和独立内核模块。
该存储器802可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
处理器801还可以称为CPU(Central Processing Unit,中央处理单元)。处理器801可能是一种集成电路芯片,具有信号的处理能力。处理器801还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
处理器801用于执行指令以实现如本申请一种包文件的操作方法第一或第二实施例所提供的方法。
本实施例中,该文件处理设备80可以是计算机、服务器、手机等。该文件处理设备80还可以包括通信电路803、显示器804等。
如图9所示,本申请一种具有存储功能的设备一实施例中,具有存储功能的设备90内部存储有程序指令901,该程序指令901用于被执行以实现如本申请一种包文件的操作方法第一或第二实施例所提供的方法。
该具有存储功能的设备90可以为U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
在一实施例中,具有存储功能的设备90可以是如图8所示的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种包文件的操作方法,其特征在于,包括:
系统内核判断是否有进程产生;
若有进程产生,则运行独立内核模块,所述独立内核模块判断所述进程是否为可信进程;
若所述进程为可信进程,则判断所述进程是否进行包操作;
若所述进程进行包操作,则判断所述进程需要操作的目标包文件是否为预设加密包中的包文件;
若所述进程需要操作的目标包文件为预设加密包中的包文件,则所述独立内核模块查询所述预设加密包,生成一个虚拟文件,并向所述进程返回一个虚假值,所述虚假值为所述目标包文件的属性或所述目标包文件至少部分数据解密后的明文;
其中所述虚拟文件中不包含所述目标包文件的内容;
进一步包括:
利用密钥将多个包文件加密到一个总包中,形成所述预设加密包;
其中,所述预设加密包的密钥在所述系统内核或芯片内,所述预设加密包包括配置表及多个包文件加密后的密文;
所述独立内核模块判断所述进程是否为可信进程包括:
所述独立内核模块从所述预设加密包的配置表中获取授权操作所述预设加密包中包文件的进程文件路径名;
判断所述进程是否与所述授权操作所述预设加密包中包文件的进程文件路径名相匹配;
若匹配,则判定所述进程为可信进程;
其中,所述独立内核模块查询所述预设加密包,并向所述进程返回一个虚假值包括:
所述独立内核模块查询所述预设加密包的配置表,虚拟出一个与所述目标包文件大小一致的虚拟文件;
根据所述进程对所述虚拟文件的操作类型,所述独立内核模块转向所述预设加密包的对应位置进行操作,并返回操作结果作为所述虚假值。
2.根据权利要求1所述的方法,其特征在于,所述运行独立内核模块之前,包括:
所述系统内核将所述预设加密包的密钥以及所述预设加密包的配置表路径名传给所述独立内核模块,并从所述独立内核模块中获取功能函数指针表并将所述功能函数指针表中的功能函数挂载到所述系统内核中;
所述独立内核模块从所述系统内核中获取系统函数指针表。
3.根据权利要求1所述的方法,其特征在于,所述判断所述进程需要操作的目标包文件是否为预设加密包中的包文件包括:
所述独立内核模块获取所述进程所带的参数;
判断所述参数中所述目标包文件是否为所述预设加密包中的包文件;
若所述目标包文件为所述预设加密包中的包文件,则判定所述进程需要操作的目标包文件为预设加密包中的包文件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述进程对所述虚拟文件的操作类型,所述独立内核模块转向所述预设加密包的对应位置进行操作,并返回操作结果作为所述虚假值包括:
判断所述进程对所述虚拟文件的操作是否为查询包属性;
若所述进程对所述虚拟文件的操作为查询包属性,则所述独立内核模块从所述预设加密包中查询所述目标包文件的对应属性,并向所述进程返回目标包文件的对应属性值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述进程对所述虚拟文件的操作类型,所述独立内核模块转向所述预设加密包的对应位置进行操作,并返回操作结果作为所述虚假值包括:
判断所述进程对所述虚拟文件的操作是否为读若干字节的操作;
若所述进程对所述虚拟文件的操作为读若干字节的操作,则所述独立内核模块读取所述目标包文件,并利用从所述系统内核中获取的密钥对所述目标包文件进行解密后读取对应字节数据,将所述对应字节数据返回给所述进程。
6.根据权利要求1所述的方法,其特征在于,所述根据所述进程对所述虚拟文件的操作类型,所述独立内核模块转向所述预设加密包的对应位置进行操作,并返回操作结果作为所述虚假值包括:
判断所述进程对所述预设加密包的操作是否为块数据读取操作;
若所述进程对所述预设加密包的操作为块数据读取操作,则所述独立内核模块读取所述预设加密包中对应位置的数据块,利用从所述系统内核中获取的密钥对所述数据块进行解密后,将解密后的明文返回给所述进程。
7.一种文件处理设备,其特征在于,包括:相互连接的处理器和存储器;
所述存储器用于存储预设加密包、系统内核和独立内核模块;
所述处理器用于执行指令以实现如权利要求1-6任一项所述的方法。
8.一种具有存储功能的设备,内部存储有程序指令,其特征在于,所述程序指令用于被执行以实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477907.XA CN110232261B (zh) | 2019-06-03 | 2019-06-03 | 包文件的操作方法、文件处理设备及具有存储功能的设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477907.XA CN110232261B (zh) | 2019-06-03 | 2019-06-03 | 包文件的操作方法、文件处理设备及具有存储功能的设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110232261A CN110232261A (zh) | 2019-09-13 |
CN110232261B true CN110232261B (zh) | 2021-05-11 |
Family
ID=67858410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910477907.XA Active CN110232261B (zh) | 2019-06-03 | 2019-06-03 | 包文件的操作方法、文件处理设备及具有存储功能的设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110232261B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115510427B (zh) * | 2022-11-21 | 2023-03-31 | 博智安全科技股份有限公司 | 跨平台进程运行可信监控方法和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901313B (zh) * | 2010-06-10 | 2013-12-18 | 中科方德软件有限公司 | 一种Linux文件保护系统及方法 |
CN102902914B (zh) * | 2012-09-05 | 2015-06-03 | 福建伊时代信息科技股份有限公司 | 一种实现终端无痕的方法及装置 |
CN103825953B (zh) * | 2014-03-04 | 2017-01-04 | 武汉理工大学 | 一种用户模式加密文件系统 |
CN104102885A (zh) * | 2014-06-19 | 2014-10-15 | 肖龙旭 | 一种基于内核过滤驱动的数据安全隔离方法 |
CN104268484B (zh) * | 2014-09-24 | 2016-08-24 | 科云(上海)信息技术有限公司 | 一种基于虚拟隔离机制的云环境下数据防泄漏方法 |
CN104331644B (zh) * | 2014-11-24 | 2017-08-04 | 北京邮电大学 | 一种智能终端文件的透明加解密方法 |
CN104866778A (zh) * | 2015-01-30 | 2015-08-26 | 武汉华工安鼎信息技术有限责任公司 | 一种基于Linux内核的文档安全访问控制方法和装置 |
CN105224882B (zh) * | 2015-09-23 | 2018-04-20 | 武汉理工大学 | 一种基于桥文件系统的文件加密系统 |
CN105426766B (zh) * | 2015-10-27 | 2018-05-18 | 武汉理工大学 | 一种基于影子文件的文件加密系统 |
CN105760779B (zh) * | 2016-02-18 | 2018-06-22 | 武汉理工大学 | 一种基于fuse的双向文件加密系统 |
CN117171743A (zh) * | 2017-05-30 | 2023-12-05 | 赛姆普蒂夫技术公司 | 在内核模式下对隐写术的实时检测和防护 |
-
2019
- 2019-06-03 CN CN201910477907.XA patent/CN110232261B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110232261A (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7089528B2 (ja) | 密封エンクレーブを用いたデータ開封 | |
EP3574435B1 (en) | Cross-platform enclave identity | |
CN110214324B (zh) | 密钥保管库包围区 | |
US7480806B2 (en) | Multi-token seal and unseal | |
JP7059291B2 (ja) | 抽象エンクレーブアイデンティティ | |
TWI470469B (zh) | 使用虛擬化保護視訊內容之方法、物品和裝置 | |
US10877785B2 (en) | Enclave abstraction model | |
EP3574436B1 (en) | Dependent enclave binaries | |
CA3048407A1 (en) | Data sealing with a sealing enclave | |
US20180211034A1 (en) | Enclave client abstraction model | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
CN110147329B (zh) | 一种动态检测模拟器的方法、装置及终端 | |
US9292708B2 (en) | Protection of interpreted source code in virtual appliances | |
CN108985096B (zh) | 一种Android SQLite数据库安全增强、安全操作方法以及装置 | |
CN110232261B (zh) | 包文件的操作方法、文件处理设备及具有存储功能的设备 | |
CN115935396A (zh) | 一种计算设备、数据加密方法、数据解密方法及存储介质 | |
US20140258720A1 (en) | Systems and methods for transparent per-file encryption and decryption via metadata identification | |
WO2022019910A1 (en) | Read protection for uefi variables | |
US20200183675A1 (en) | Image file packaging method and image file packaging system | |
KR20190060181A (ko) | 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 | |
CN115982699A (zh) | 基于安全内存的恶意攻击防御方法、装置、设备及介质 | |
KR20180100779A (ko) | 안드로이드용 어플리케이션의 멀티 실행 파일을 위한 암호화 방법 |
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 |