CN111428255A - 一种基于Mac OS文件的透明加密和解密方法和系统 - Google Patents
一种基于Mac OS文件的透明加密和解密方法和系统 Download PDFInfo
- Publication number
- CN111428255A CN111428255A CN202010233295.2A CN202010233295A CN111428255A CN 111428255 A CN111428255 A CN 111428255A CN 202010233295 A CN202010233295 A CN 202010233295A CN 111428255 A CN111428255 A CN 111428255A
- Authority
- CN
- China
- Prior art keywords
- file
- vnop
- function
- hook
- module
- 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
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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于Mac OS文件的透明加密方法,包括:获取文件打开函数VNOP_OPEN的调用地址,使用Hook技术对获取的文件打开函数VNOP_OPEN的调用地址进行处理,得到新的文件打开函数Hook_VNOP_OPEN,获取文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址,并使用Hook技术分别对获取的文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址进行处理,以分别得到新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE,获取Mac OS系统中创建的文件。本发明能解决现有基于Windows操作系统的文件透明加解密系统由于无法对基于Mac OS的电脑产生的文件进行加密,导致存在较大安全隐患的技术问题。
Description
技术领域
本发明属于信息安全技术领域,更具体地,涉及一种基于Mac OS文件的透明加密和解密方法和系统。
背景技术
文件透明加解密系统目前在Windows操作系统上已经得到了广泛的商用,其实现了当电子文件打开时,自动解密到内存,供应用程序正确识别;当文件保存时,自动加密到磁盘,防止电子文件泄密;即使电子文件被拷贝出去,但其仍旧处于加密状态,从而解决了企业对商业秘密保护的需求。此外,文件透明加解密系统不改变原有的文件操作流程,对用户来说无感知。
近年,随着基于苹果Mac操作系统(Operation system,简称OS)的电脑的普及和应用(如高管办公、代码开发、广告图形设计等行业和领域),对Mac OS电脑的依赖度在不断提升,这导致原有基于Windows操作系统的文件透明加解密系统存在如下缺陷:
1、现有基于Windows操作系统的文件透明加解密系统无法针对企业所有终端电脑的涉密数据进行安全加密管控,其中基于Mac OS的电脑产生的文件依然处于明文状态,因此存在较大的安全隐患;
2、安装有Mac OS的电脑无法直接读取现有基于Windows操作系统的文件透明加解密系统所产生的密文,而必须对其进行解密后才能正常读取,这会导致企业内数据交换繁琐,进而增加了企业管理成本,降低了企业办公效率,且存在很大的数据交换泄露风险。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于Mac OS文件的透明加密和解密方法和系统,其目的在于,解决现有基于Windows操作系统的文件透明加解密系统由于无法对基于Mac OS的电脑产生的文件进行加密,导致存在较大安全隐患的技术问题,以及由于无法直接读取现有基于Windows操作系统的文件透明加解密系统所产生的密文,导致企业内数据交换繁琐、企业管理成本增加、企业办公效率降低、以及存在很大的数据交换泄露风险的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于Mac OS文件的透明加密方法,包括以下步骤:
(1)获取文件打开函数VNOP_OPEN的调用地址;
(2)使用Hook技术对步骤(1)获取的文件打开函数VNOP_OPEN的调用地址进行处理,得到新的文件打开函数Hook_VNOP_OPEN。
(3)使用与步骤(1)相同的方式获取文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址,并使用Hook技术分别对获取的文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址进行处理,以分别得到新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE;
(4)获取Mac OS系统中创建的文件,并使用步骤(2)得到的新的文件打开函数Hook_VNOP_OPEN、以及步骤(3)得到的新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE对该文件执行加密,以得到加密后的文件。
优选地,步骤(1)中获取文件打开函数VNOP_OPEN的调用地址是通过以下步骤实现的:
(a)用反汇编器打开Mac OS的内核文件,以获取对应的内核基址,即内核文件被加载到客户端内存中的地址;
(b)从步骤(a)建立的内核基址处开始顺序读取客户端内存中的数据,并判断该数据是否是文件打开函数VNOP_OPEN的调用地址,如果是则进入步骤(2),否则读取客户端内存中的下一组数据,并重复本步骤,直到查找到文件打开函数VNOP_OPEN的调用地址为止。
优选地,步骤(a)中使用的反汇编器是交互式反汇编程序IDA。
优选地,步骤(4)具体包括以下子步骤:
(4-1)获取Mac OS系统中创建的文件,使用新的文件打开函数Hook_VNOP_OPEN处理该文件,以获取该文件的后缀和第一唯一标识符UID,调用系统函数_NSGetExecutablePath获取文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入步骤(4-2),否则过程结束;
(4-2)将步骤(4-1)获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Encrypt_Array中;
(4-3)使用新的文件写入函数Hook_VNOP_WRITE对步骤(4-1)获取的文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Encrypt_Array中是否存在该第二唯一标识符,如果存在,则进入步骤(4-4),否则过程结束;
(4-4)使用对称加密算法对步骤(4-3)获取的数据流进行加密处理,以得到加密后的数据流;
(4-5)调用文件写入函数VNOP_WRITE将步骤(4-4)得到的加密后的数据流以文件的形式写入电脑磁盘;
(4-6)使用新的文件关闭函数VNOP_CLOSE对步骤(4-1)获取的文件进行处理,以得到文件的第三唯一标识符,并判断数组Encrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Encrypt_Array中删除该文件的进程名称、后缀以及第一唯一标识符,然后过程结束,否则过程结束;
优选地,第一预设值是指定的文件后缀,第二预设值是指定的文件类型。
按照本发明的另一方面,提供了一种基于Mac OS文件的透明加密系统,包括:
第一模块,用于获取文件打开函数VNOP_OPEN的调用地址;
第二模块,用于使用Hook技术对第一模块获取的文件打开函数VNOP_OPEN的调用地址进行处理,得到新的文件打开函数Hook_VNOP_OPEN。
第三模块,用于使用与第一模块相同的方式获取文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址,并使用Hook技术分别对获取的文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址进行处理,以分别得到新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE;
第四模块,用于获取Mac OS系统中创建的文件,并使用第二模块得到的新的文件打开函数Hook_VNOP_OPEN、以及第三模块得到的新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE对该文件执行加密,以得到加密后的文件。
按照本发明的又一方面,提供了一种基于Mac OS文件的透明解密方法,包括以下步骤:
(1)获取Mac OS系统中打开的文件,使用新的文件打开函数Hook_VNOP_OPEN对该文件进行处理,以获取该文件的后缀和第一唯一标识符,调用系统函数_NSGetExecutablePath得到获取文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入步骤(2),否则过程结束;
(2)将步骤(1)获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Decrypt_Array中;
(3)使用新的文件读取函数Hook_VNOP_READ对文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Decrypt_Array中是否存在该第二唯一标识符,如果存在,则进入步骤(4),否则过程结束;
(4)判断第二唯一标识符对应的文件是否是加密文件,如果是则进入步骤(5),否则过程结束;
(5)使用对称解密算法对步骤(3)得到的文件的数据流进行解密处理;
(6)调用文件读取函数VNOP_READ将步骤(5)得到的解密后的数据流读入至电脑内存中;
(7)使用新的文件关闭函数Hook_VNOP_CLOSE对步骤(1)获取的文件进行处理,以得到第三唯一标识符,并判断数组Decrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Decrypt_Array中删除该文件的进程名称、后缀、以及第一唯一标识符,然后过程结束,否则过程结束。
按照本发明的再一方面,提供了一种基于Mac OS文件的透明解密系统,包括:
第一模块,用于获取Mac OS系统中打开的文件,使用新的文件打开函数Hook_VNOP_OPEN对该文件进行处理,以获取该文件的后缀和第一唯一标识符,调用系统函数_NSGetExecutablePath得到文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入第二模块,否则过程结束;
第二模块,用于将第一模块获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Decrypt_Array中;
第三模块,用于使用新的文件读取函数Hook_VNOP_READ对文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Decrypt_Array中是否存在该第二唯一标识符,如果存在,则进入第四模块,否则过程结束;
第四模块,用于判断第二唯一标识符对应的文件是否是加密文件,如果是则进入第五模块,否则过程结束;
第五模块,用于使用对称解密算法对第三模块得到的文件的数据流进行解密处理;
第六模块,用于调用文件读取函数VNOP_READ将第五模块得到的解密后的数据流读入至电脑内存中;
第七模块,用于使用新的文件关闭函数Hook_VNOP_CLOSE对第一模块获取的文件进行处理,以得到第三唯一标识符,并判断数组Decrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Decrypt_Array中删除该文件的进程名称、后缀、以及第一唯一标识符,然后过程结束,否则过程结束。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明在加密过程中采用了步骤(1)至(4),其能对Mac OS文件进行加密处理,因此能够解决现有基于Windows操作系统的文件透明加解密系统由于无法对基于MacOS的电脑产生的文件进行加密,导致存在较大安全隐患的技术问题。
(2)由于本发明在加密过程中采用了步骤4中的子步骤(d),其使用与基于Windows操作系统透明加解密系统相同的对称加密算法,因此能够兼容现有基于Windows操作系统的文件透明加解密系统所产生的密文,解决企业内数据交换繁琐、企业管理成本增加、企业办公效率降低、以及存在很大的数据交换泄露风险的技术问题。
(3)由于本发明在加密过程中采用了步骤(1)至(3),其使用了Hook技术,因此加解密过程对于用户来说是透明的,不需要用户主动输入密码,所以用户使用体验好,同时有效减少用户主动泄露的风险。
附图说明
图1是本发明基于Mac OS文件的透明加密方法的流程图;
图2是本发明基于Mac OS文件的透明解密方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先对本发明的技术术语进行解释和说明:
Vnode:是伯克利软件套件(Berkeley Software Distribution,简称BSD)的单元粒子,每个文件在系统内核中都对应一个Vnode对象;
VNOP:即Vnode Operation,Vnode中保存的一份文件操作的函数列表,就是VNOP,如:
Hook技术:又名钩子技术,在系统调用操作函数之前,钩子技术可以先捕获到调用消息,取得控制权,这时钩子函数就可以做一些改变函数的行为,如强行中断函数过程、对操作函数的参数进行修改、写入自己的逻辑代码,添加相关功能等。
如图1所示,本发明提供了一种基于Mac OS文件的透明加密方法,包括以下步骤:
(1)获取文件打开函数VNOP_OPEN的调用地址;
具体而言,获取文件打开函数VNOP_OPEN的调用地址是通过以下步骤实现的:
(a)用反汇编器打开Mac OS的内核文件,以获取对应的内核基址,即内核文件被加载到客户端内存中的地址;
具体而言,本步骤中使用的反汇编器是交互式反汇编程序(InteractiveDisassembler,简称IDA)。
(b)从步骤(a)建立的内核基址处开始顺序读取客户端内存中的数据,并判断该数据是否是文件打开函数VNOP_OPEN的调用地址,如果是则进入步骤(2),否则读取客户端内存中的下一组数据,并重复本步骤,直到查找到文件打开函数VNOP_OPEN的调用地址为止;
(2)使用Hook技术对步骤(1)获取的文件打开函数VNOP_OPEN的调用地址进行处理,得到新的文件打开函数Hook_VNOP_OPEN;
具体而言,可以在Hook_VNOP_OPEN中写入相应的逻辑代码,从而得到实现打开文件这一功能的新的文件打开函数,并且该函数在原有的文件打开函数VNOP_OPEN之前被自动执行。
(3)使用与步骤(1)相同的方式获取文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址,并使用Hook技术分别对获取的文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址进行处理,以分别得到新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE;
(4)获取Mac OS系统中创建的文件,并使用步骤(2)得到的新的文件打开函数Hook_VNOP_OPEN、以及步骤(3)得到的新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE对该文件执行加密,以得到加密后的文件。
本步骤具体包括以下子步骤:
(4-1)获取Mac OS系统中创建的文件,使用新的文件打开函数Hook_VNOP_OPEN处理该文件,以获取该文件的后缀和第一唯一标识符(Unique identifier,简称UID),调用系统函数_NSGetExecutablePath获取文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入步骤(4-2),否则过程结束;
具体而言,第一预设值是指定的文件后缀,其可以是例如“*.doc|*.docx”其表示与之匹配的文件的后缀是*.doc或*.docx;第一预设值也可以是“*”,其表示与之匹配的文件的后缀为所有后缀格式;
第二预设值是指定的文件类型,其可以是例如“MICROSOFT WORD|MICROSOFTEXCEL|MICROSOFT POWERPOINT”,即“微软word类型|微软Excel类型|微软PPT类型”。
(4-2)将步骤(4-1)获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Encrypt_Array中;
(4-3)使用新的文件写入函数Hook_VNOP_WRITE对步骤(4-1)获取的文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Encrypt_Array中是否存在该第二唯一标识符,如果存在,则进入步骤(4-4),否则过程结束;
(4-4)使用与基于Windows操作系统透明加解密系统相同的对称加密算法对步骤(4-3)获取的数据流进行加密处理,以得到加密后的数据流;
具体而言,本步骤中使用的对称加密算法是高级加密标准(Advanced EncryptionStandard,简称AES)算法。应该理解的是,本发明绝不局限于此,任何对称加密算法都在本发明的保护范围内。
(4-5)调用文件写入函数VNOP_WRITE将步骤(4-4)得到的加密后的数据流以文件的形式写入电脑磁盘;
(4-6)使用新的文件关闭函数Hook_VNOP_CLOSE对步骤(4-1)获取的文件进行处理,以得到文件的第三唯一标识符,并判断数组Encrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Encrypt_Array中删除该文件的进程名称、后缀以及第一唯一标识符,然后过程结束,否则过程结束;
本步骤(4)的优点在于,加密全过程中在磁盘中一直处于加密状态,安全性高;且采用与Windows操作系统透明加解密系统相同的加密算法,能与Windows操作系统上产生的文件互相兼容。
如图2所示,本发明提供了一种基于Mac OS文件的透明解密方法,包括以下步骤:
(1)获取Mac OS系统中打开的文件,使用新的文件打开函数Hook_VNOP_OPEN对该文件进行处理,以获取该文件的后缀和第一唯一标识符,调用系统函数_NSGetExecutablePath得到获取文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入步骤(2),否则过程结束;
具体而言,第一预设值是指定的文件后缀,其可以是例如“*.doc|*.docx”其表示与之匹配的文件的后缀是*.doc或*.docx;第一预设值也可以是“*”,其表示与之匹配的文件的后缀为所有后缀格式;
第二预设值是指定的文件类型,其可以是例如“MICROSOFT WORD|MICROSOFTEXCEL|MICROSOFT POWERPOINT”,即“微软word类型|微软Excel类型|微软PPT类型”。
(2)将步骤(1)获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Decrypt_Array中;
(3)使用新的文件读取函数Hook_VNOP_READ对文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Decrypt_Array中是否存在该第二唯一标识符,如果存在,则进入步骤(4),否则过程结束;
(4)判断第二唯一标识符对应的文件是否是加密文件,如果是则进入步骤(5),否则过程结束;
具体而言,本步骤中判断文件是否是加密文件,是通过判断文件中指定位置且指定长度的二进制码是否与预设值相同来实现,如果相同,则表明该文件是加密文件,否则表明该文件不是加密文件。
(5)使用对称解密算法对步骤(3)得到的文件的数据流进行解密处理;
具体而言,本步骤中采用的对称解密算法,是和前文中加密过程中所使用的对称加密算法完全对应。
(6)调用文件读取函数VNOP_READ将步骤(5)得到的解密后的数据流读入至电脑内存中;
(7)使用新的文件关闭函数Hook_VNOP_CLOSE对步骤(1)获取的文件进行处理,以得到第三唯一标识符,并判断数组Decrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Decrypt_Array中删除该文件的进程名称、后缀、以及第一唯一标识符,然后过程结束,否则过程结束;
本步骤(7)的优点在于,解密全过程中,文件在磁盘中一直处于加密状态,安全性高;且读取多少数据流,就解密多少数据流,按需解密,所以解密效率高。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于Mac OS文件的透明加密方法,其特征在于,包括以下步骤:
(1)获取文件打开函数VNOP_OPEN的调用地址;
(2)使用Hook技术对步骤(1)获取的文件打开函数VNOP_OPEN的调用地址进行处理,得到新的文件打开函数Hook_VNOP_OPEN。
(3)使用与步骤(1)相同的方式获取文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址,并使用Hook技术分别对获取的文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址进行处理,以分别得到新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE;
(4)获取Mac OS系统中创建的文件,并使用步骤(2)得到的新的文件打开函数Hook_VNOP_OPEN、以及步骤(3)得到的新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE对该文件执行加密,以得到加密后的文件。
2.根据权利要求1所述的基于Mac OS文件的透明加密方法,其特征在于,步骤(1)中获取文件打开函数VNOP_OPEN的调用地址是通过以下步骤实现的:
(a)用反汇编器打开Mac OS的内核文件,以获取对应的内核基址,即内核文件被加载到客户端内存中的地址;
(b)从步骤(a)建立的内核基址处开始顺序读取客户端内存中的数据,并判断该数据是否是文件打开函数VNOP_OPEN的调用地址,如果是则进入步骤(2),否则读取客户端内存中的下一组数据,并重复本步骤,直到查找到文件打开函数VNOP_OPEN的调用地址为止。
3.根据权利要求1或2所述的基于Mac OS文件的透明加密方法,其特征在于,步骤(a)中使用的反汇编器是交互式反汇编程序IDA。
4.根据权利要求1所述的基于Mac OS文件的透明加密方法,其特征在于,步骤(4)具体包括以下子步骤:
(4-1)获取Mac OS系统中创建的文件,使用新的文件打开函数Hook_VNOP_OPEN处理该文件,以获取该文件的后缀和第一唯一标识符UID,调用系统函数_NSGetExecutablePath获取文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入步骤(4-2),否则过程结束;
(4-2)将步骤(4-1)获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Encrypt_Array中;
(4-3)使用新的文件写入函数Hook_VNOP_WRITE对步骤(4-1)获取的文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Encrypt_Array中是否存在该第二唯一标识符,如果存在,则进入步骤(4-4),否则过程结束;
(4-4)使用对称加密算法对步骤(4-3)获取的数据流进行加密处理,以得到加密后的数据流;
(4-5)调用文件写入函数VNOP_WRITE将步骤(4-4)得到的加密后的数据流以文件的形式写入电脑磁盘;
(4-6)使用新的文件关闭函数Hook_VNOP_CLOSE对步骤(4-1)获取的文件进行处理,以得到文件的第三唯一标识符,并判断数组Encrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Encrypt_Array中删除该文件的进程名称、后缀以及第一唯一标识符,然后过程结束,否则过程结束。
5.根据权利要求4所述的基于Mac OS文件的透明加密方法,其特征在于,第一预设值是指定的文件后缀,第二预设值是指定的文件类型。
6.一种基于Mac OS文件的透明加密系统,其特征在于,包括:
第一模块,用于获取文件打开函数VNOP_OPEN的调用地址;
第二模块,用于使用Hook技术对第一模块获取的文件打开函数VNOP_OPEN的调用地址进行处理,得到新的文件打开函数Hook_VNOP_OPEN。
第三模块,用于使用与第一模块相同的方式获取文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址,并使用Hook技术分别对获取的文件读取函数VNOP_READ、文件写入函数VNOP_WRITE、以及文件关闭函数VNOP_CLOSE的调用地址进行处理,以分别得到新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE;
第四模块,用于获取Mac OS系统中创建的文件,并使用第二模块得到的新的文件打开函数Hook_VNOP_OPEN、以及第三模块得到的新的文件读取函数Hook_VNOP_READ、新的文件写入函数Hook_VNOP_WRITE、以及新的文件关闭函数Hook_VNOP_CLOSE对该文件执行加密,以得到加密后的文件。
7.一种基于Mac OS文件的透明解密方法,其特征在于,包括以下步骤:
(1)获取Mac OS系统中打开的文件,使用新的文件打开函数Hook_VNOP_OPEN对该文件进行处理,以获取该文件的后缀和第一唯一标识符,调用系统函数_NSGetExecutablePath得到获取文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入步骤(2),否则过程结束;
(2)将步骤(1)获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Decrypt_Array中;
(3)使用新的文件读取函数Hook_VNOP_READ对文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Decrypt_Array中是否存在该第二唯一标识符,如果存在,则进入步骤(4),否则过程结束;
(4)判断第二唯一标识符对应的文件是否是加密文件,如果是则进入步骤(5),否则过程结束;
(5)使用对称解密算法对步骤(3)得到的文件的数据流进行解密处理;
(6)调用文件读取函数VNOP_READ将步骤(5)得到的解密后的数据流读入至电脑内存中;
(7)使用新的文件关闭函数Hook_VNOP_CLOSE对步骤(1)获取的文件进行处理,以得到第三唯一标识符,并判断数组Decrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Decrypt_Array中删除该文件的进程名称、后缀、以及第一唯一标识符,然后过程结束,否则过程结束。
8.一种基于Mac OS文件的透明解密系统,其特征在于,包括:
第一模块,用于获取Mac OS系统中打开的文件,使用新的文件打开函数Hook_VNOP_OPEN对该文件进行处理,以获取该文件的后缀和第一唯一标识符,调用系统函数_NSGetExecutablePath得到获取文件的进程名称,并判断是否有文件的后缀与第一预设值匹配,且文件的进程名称与第二预设值匹配,若是则进入第二模块,否则过程结束;
第二模块,用于将第一模块获取的文件的进程名称、后缀以及第一唯一标识符记录到预设的数组Decrypt_Array中;
第三模块,用于使用新的文件读取函数Hook_VNOP_READ对文件进行处理,以得到文件的数据流和第二唯一标识符,判断数组Decrypt_Array中是否存在该第二唯一标识符,如果存在,则进入步骤第四模块,否则过程结束;
第四模块,用于判断第二唯一标识符对应的文件是否是加密文件,如果是则进入第五模块,否则过程结束;
第五模块,用于使用对称解密算法对第三模块得到的文件的数据流进行解密处理;
第六模块,用于调用文件读取函数VNOP_READ将第五模块得到的解密后的数据流读入至电脑内存中;
第七模块,用于使用新的文件关闭函数Hook_VNOP_CLOSE对第一模块获取的文件进行处理,以得到第三唯一标识符,并判断数组Decrypt_Array中是否存在该第三唯一标识符,如果存在,则从数组Decrypt_Array中删除该文件的进程名称、后缀、以及第一唯一标识符,然后过程结束,否则过程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010233295.2A CN111428255B (zh) | 2020-03-29 | 2020-03-29 | 一种基于Mac OS文件的透明加密和解密方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010233295.2A CN111428255B (zh) | 2020-03-29 | 2020-03-29 | 一种基于Mac OS文件的透明加密和解密方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111428255A true CN111428255A (zh) | 2020-07-17 |
CN111428255B CN111428255B (zh) | 2023-05-09 |
Family
ID=71549760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010233295.2A Active CN111428255B (zh) | 2020-03-29 | 2020-03-29 | 一种基于Mac OS文件的透明加密和解密方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111428255B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006026725A1 (de) * | 2005-06-08 | 2007-04-05 | Logitech Europe S.A. | System und Verfahren zum transparenten Verarbeiten von Multimediadaten |
US20080034199A1 (en) * | 2006-02-08 | 2008-02-07 | Ingrian Networks, Inc. | High performance data encryption server and method for transparently encrypting/decrypting data |
CN104331644A (zh) * | 2014-11-24 | 2015-02-04 | 北京邮电大学 | 一种智能终端文件的透明加解密方法 |
CN105808238A (zh) * | 2016-02-26 | 2016-07-27 | 四川效率源信息安全技术股份有限公司 | 一种安全Dock及其应用方法 |
CN106452781A (zh) * | 2016-09-14 | 2017-02-22 | 南京理工大学 | 一种基于预解密的移动终端透明加密方法 |
CN108229190A (zh) * | 2018-01-02 | 2018-06-29 | 北京亿赛通科技发展有限责任公司 | 透明加解密的控制方法、装置、程序、存储介质和电子设备 |
-
2020
- 2020-03-29 CN CN202010233295.2A patent/CN111428255B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006026725A1 (de) * | 2005-06-08 | 2007-04-05 | Logitech Europe S.A. | System und Verfahren zum transparenten Verarbeiten von Multimediadaten |
US20080034199A1 (en) * | 2006-02-08 | 2008-02-07 | Ingrian Networks, Inc. | High performance data encryption server and method for transparently encrypting/decrypting data |
CN104331644A (zh) * | 2014-11-24 | 2015-02-04 | 北京邮电大学 | 一种智能终端文件的透明加解密方法 |
CN105808238A (zh) * | 2016-02-26 | 2016-07-27 | 四川效率源信息安全技术股份有限公司 | 一种安全Dock及其应用方法 |
CN106452781A (zh) * | 2016-09-14 | 2017-02-22 | 南京理工大学 | 一种基于预解密的移动终端透明加密方法 |
CN108229190A (zh) * | 2018-01-02 | 2018-06-29 | 北京亿赛通科技发展有限责任公司 | 透明加解密的控制方法、装置、程序、存储介质和电子设备 |
Non-Patent Citations (5)
Title |
---|
KRISTEN DIETIKER: "Deploying PGP whole disk encryption in Mac OS X" * |
S SHARMA: "TransCrypt:A secure and transparent encryption file system for enterprises" * |
周道明;钱鲁锋;王路路;: "透明加密技术研究" * |
李丹;薛锐;陈驰;邹洪;陈力;: "基于透明加解密的密文云存储系统设计与实现" * |
汪方: "Mac OS X终端数据泄露防护研究" * |
Also Published As
Publication number | Publication date |
---|---|
CN111428255B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372994B2 (en) | Security application for data security formatting, tagging and control | |
US10452456B2 (en) | Kernel event triggers | |
JP4759513B2 (ja) | 動的、分散的および協働的な環境におけるデータオブジェクトの管理 | |
US8234496B1 (en) | Image leak prevention using digital watermark | |
US9003542B1 (en) | Systems and methods for replacing sensitive information stored within non-secure environments with secure references to the same | |
US20060117178A1 (en) | Information leakage prevention method and apparatus and program for the same | |
US20120124675A1 (en) | Apparatus and method for managing digital rights through hooking a kernel native api | |
JP2012529233A (ja) | コンテンツスキャンエージェントのための転送パイプライン復号 | |
CN103268456A (zh) | 一种文件安全控制方法及装置 | |
US20120096281A1 (en) | Selective storage encryption | |
JP2010176431A (ja) | アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 | |
CN111339543A (zh) | 一种文件处理方法及装置、设备、存储介质 | |
CN108763401A (zh) | 一种文件的读写方法及设备 | |
US9245132B1 (en) | Systems and methods for data loss prevention | |
CN110807205B (zh) | 一种文件安全防护方法及装置 | |
US8499359B1 (en) | Data loss prevention using an ephemeral key | |
CN113656815A (zh) | 文档处理方法、装置、电子设备与存储介质 | |
CN112115500A (zh) | 一种访问文件的方法、装置及系统 | |
CN111428255B (zh) | 一种基于Mac OS文件的透明加密和解密方法和系统 | |
US8260711B1 (en) | Systems and methods for managing rights of data via dynamic taint analysis | |
CN114282229A (zh) | 一种基于梯度式无感知加解密系统及方法 | |
CN113656817A (zh) | 数据加密方法 | |
CN112507361A (zh) | 针对国产操作系统的电子文档加密方法 | |
AU2008344947B2 (en) | System and method for securely storing information | |
US10229276B2 (en) | Method and apparatus for document author control of digital rights management |
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 |