CN112182611A - 一种基于Linux内核层实现的文件透明加解密方法与系统 - Google Patents
一种基于Linux内核层实现的文件透明加解密方法与系统 Download PDFInfo
- Publication number
- CN112182611A CN112182611A CN202011030259.2A CN202011030259A CN112182611A CN 112182611 A CN112182611 A CN 112182611A CN 202011030259 A CN202011030259 A CN 202011030259A CN 112182611 A CN112182611 A CN 112182611A
- Authority
- CN
- China
- Prior art keywords
- function
- layer
- encryption
- decryption
- wrapfs
- 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.)
- Withdrawn
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
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
本发明提供了一种基于Linux内核层实现的文件透明加解密方法与系统,本发明通过在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元,在写操作过程中,通过sys_write函数进入VFS层,通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,并调用具体文件系统写函数,将数据写入存储,读操作过程与写操作过程类似,从而实现Linux内核层的文件透明加解密,使得透明加解密具有更高的安全等级,更低的性能损失,提高了安全性能的同时,有效降低性能损耗,实现兼容性强,对用户透明以及加密速度快。
Description
技术领域
本发明涉及文件加解密技术领域,特别是涉及一种基于Linux内核层实现的文件透明加解密方法与系统。
背景技术
保密行业中,针对存在针对文件本身进行保护的特定需求,具体而言就是,对特定的文件增加文件责任描述和文件管控描述等行业敏感信息,对增加的这些文件信息和文件内容进行特定形式的组合和数据保护转换,形成新的特定的行业敏感文件,存放于普通物理存储介质上,为了满足该类文件在最终用户无感的要求,对特殊文件进行透明加解密功能是必须的。
所谓透明解密,就是当最终用户请求读取特殊文件内容时,首先按照一定的规则读取存放于物理存储介质上的文件中的密文,然后完成数据解保护,最后按照请求要求返回明文。所谓透明加密,就是当最终用户请求写入特殊文件内容时,首先按照写入请求的要求完成写入内容的保护,然后按照一定的规则将密文写入到存放于物理存储介质上文件中。而现有技术中,大多存在性能损耗高、安全性低的问题。
发明内容
本发明的目的是提供一种基于Linux内核层实现的文件透明加解密方法与系统,旨在解决现有技术中性能损耗高、安全性低的问题,实现提高安全性能的同时,有效降低性能损耗。
为达到上述技术目的,本发明提供了一种基于Linux内核层实现的文件透明加解密方法,所述方法包括以下操作:
在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元;
在写过程中,通过sys_write函数进入VFS层,并通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入存储;
在读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read函数进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
优选地,所述加密操作为:
初始化挂载文件系统时,以用户名、挂载点路径和用户输入密码为参数,生成固定长度序列,将用户输入的简单密码转换为定长的随机序列。
优选地,所述解密操作为加密操作的逆序操作。
本发明还提供了一种基于Linux内核层实现的文件透明加解密系统,所述系统包括:
加解密添加模块,用于在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元;
写操作模块,用于在写过程中,通过sys_write函数进入VFS层,并通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入存储;
读操作模块,用于在读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read函数进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
优选地,所述加密操作为:
初始化挂载文件系统时,以用户名、挂载点路径和用户输入密码为参数,生成固定长度序列,将用户输入的简单密码转换为定长的随机序列。
优选地,所述解密操作为加密操作的逆序操作。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
与现有技术相比,本发明通过在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元,在写操作过程中,通过sys_write函数进入VFS层,通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,并调用具体文件系统写函数,将数据写入存储,读操作过程与写操作过程类似,从而实现Linux内核层的文件透明加解密,使得透明加解密具有更高的安全等级,更低的性能损失,提高了安全性能的同时,有效降低性能损耗,实现兼容性强,对用户透明以及加密速度快。
附图说明
图1为本发明实施例中所提供的一种基于Linux内核层实现的文件透明加解密方法流程图;
图2为本发明实施例中所提供的一种基于Linux内核层实现的文件透明加解密系统框图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
下面结合附图对本发明实施例所提供的一种基于Linux内核层实现的文件透明加解密方法与系统进行详细说明。
如图1所示,本发明实施例公开了一种基于Linux内核层实现的文件透明加解密方法,所述方法包括以下操作:
在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元;
在写过程中,通过sys_write函数进入VFS层,并通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入存储;
读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read函数进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
Linux系统中不同的读取方式本质上都是通过调用vfs_read函数,使用具体文件系统的读函数,读取特定大小的数据块到缓冲区。
本发明实施例在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元。
写过程中,在系统调用层通过sys_write函数进入VFS层,vfs_write函数得到用户层传递的数据块内存区域地址,并映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,并覆盖内存原先的明文数据,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入硬盘等设备。
读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
将wrapfs注册到内核中,此过程在全局链表file_systems中添加wrapfs文件系统的链接。执行挂载wrapfs操作,此时在内核中创建一个路径结构,其中包含底层文件系统挂载点和超级区块等内容,并创建一个新的节点,将底层文件系统的超级区块和节点信息绑定到对应的私有数据中。sys_write函数调用用户层传递的文件结构体对象,之后调用vfs_write函数,通过获取到的文件结构体找到具体写函数wrapfs_write函数。在wrapfs_write函数开辟的内核空间中对用户层传递的数据执行加密操作,将加密数据覆盖原明文数据,获取底层文件系统的文件结构,再次调用vfs_write函数将加密后的数据写入底层文件系统中。将写字节数返回给上层,完成文件系统的一次写操作。
其中,加密操作的具体过程为:
初始化挂载文件系统时,以用户名、挂载点路径和用户输入密码为参数,生成固定长度序列,将用户输入的简单密码转换为定长的随机序列,避免字典攻击等暴力破解手段非法获取密码。
读文件操作与写文件操作相似,在读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。其中,数据解密为加密操作的逆序。
本发明实施例通过在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元,在写操作过程中,通过sys_write函数进入VFS层,通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,并调用具体文件系统写函数,将数据写入存储,读操作过程与写操作过程类似,从而实现Linux内核层的文件透明加解密,使得透明加解密具有更高的安全等级,更低的性能损失,提高了安全性能的同时,有效降低性能损耗,实现兼容性强,对用户透明以及加密速度快。
如图2所示,本发明实施例还公开了一种基于Linux内核层实现的文件透明加解密系统,所述系统包括:
加解密添加模块,用于在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元;
写操作模块,用于在写过程中,通过sys_write函数进入VFS层,并通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入存储;
读操作模块,用于在读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read函数进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元。
写过程中,在系统调用层通过sys_write函数进入VFS层,vfs_write函数得到用户层传递的数据块内存区域地址,并映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,并覆盖内存原先的明文数据,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入硬盘等设备。
读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
将wrapfs注册到内核中,此过程在全局链表file_systems中添加wrapfs文件系统的链接。执行挂载wrapfs操作,此时在内核中创建一个路径结构,其中包含底层文件系统挂载点和超级区块等内容,并创建一个新的节点,将底层文件系统的超级区块和节点信息绑定到对应的私有数据中。sys_write函数调用用户层传递的文件结构体对象,之后调用vfs_write函数,通过获取到的文件结构体找到具体写函数wrapfs_write函数。在wrapfs_write函数开辟的内核空间中对用户层传递的数据执行加密操作,将加密数据覆盖原明文数据,获取底层文件系统的文件结构,再次调用vfs_write函数将加密后的数据写入底层文件系统中。将写字节数返回给上层,完成文件系统的一次写操作。
其中,加密操作的具体过程为:
初始化挂载文件系统时,以用户名、挂载点路径和用户输入密码为参数,生成固定长度序列,将用户输入的简单密码转换为定长的随机序列,避免字典攻击等暴力破解手段非法获取密码。
读文件操作与写文件操作相似,在读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。其中,数据解密为加密操作的逆序。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于Linux内核层实现的文件透明加解密方法,其特征在于,所述方法包括以下操作:
在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元;
在写过程中,通过sys_write函数进入VFS层,并通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入存储;
在读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read函数进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
2.根据权利要求1所述的一种基于Linux内核层实现的文件透明加解密方法,其特征在于,所述加密操作为:
初始化挂载文件系统时,以用户名、挂载点路径和用户输入密码为参数,生成固定长度序列,将用户输入的简单密码转换为定长的随机序列。
3.根据权利要求1所述的一种基于Linux内核层实现的文件透明加解密方法,其特征在于,所述解密操作为加密操作的逆序操作。
4.一种基于Linux内核层实现的文件透明加解密系统,其特征在于,所述系统包括:
加解密添加模块,用于在wrapfs层的读函数中添加解密单元,在写函数中添加加密单元;
写操作模块,用于在写过程中,通过sys_write函数进入VFS层,并通过vfs_write函数映射到wrapfs层的wrapfs_write函数,接着调用加密单元对内存中数据进行加密,返回wrapfs_write函数继续调用具体文件系统写函数,将密文数据写入存储;
读操作模块,用于在读过程中,用户空间的读函数在内核中的服务例程为sys_read函数,映射到wrapfs_read函数,通过vfs_read函数进入具体文件系统进行相应的读操作,之后进入解密单元对相应密文数据解密,将解密后的数据返回给用户层。
5.根据权利要求4所述的一种基于Linux内核层实现的文件透明加解密系统,其特征在于,所述加密操作为:
初始化挂载文件系统时,以用户名、挂载点路径和用户输入密码为参数,生成固定长度序列,将用户输入的简单密码转换为定长的随机序列。
6.根据权利要求4所述的一种基于Linux内核层实现的文件透明加解密系统,其特征在于,所述解密操作为加密操作的逆序操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011030259.2A CN112182611A (zh) | 2020-09-27 | 2020-09-27 | 一种基于Linux内核层实现的文件透明加解密方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011030259.2A CN112182611A (zh) | 2020-09-27 | 2020-09-27 | 一种基于Linux内核层实现的文件透明加解密方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112182611A true CN112182611A (zh) | 2021-01-05 |
Family
ID=73944995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011030259.2A Withdrawn CN112182611A (zh) | 2020-09-27 | 2020-09-27 | 一种基于Linux内核层实现的文件透明加解密方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182611A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934697A (zh) * | 2021-10-21 | 2022-01-14 | 中孚安全技术有限公司 | 一种基于内核文件过滤驱动提升io性能方法及系统 |
CN114327662A (zh) * | 2021-12-30 | 2022-04-12 | 山石网科通信技术股份有限公司 | 操作系统的处理方法及装置、存储介质和处理器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252605A (zh) * | 2014-09-17 | 2014-12-31 | 南京信息工程大学 | 一种Android平台的文件透明加解密系统及方法 |
CN105808977A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 一种文件读操作、写操作的处理方法及装置 |
CN111339034A (zh) * | 2020-05-18 | 2020-06-26 | 湖南天琛信息科技有限公司 | 一种密文存储明文访问的系统、密文存储和明文访问方法 |
-
2020
- 2020-09-27 CN CN202011030259.2A patent/CN112182611A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252605A (zh) * | 2014-09-17 | 2014-12-31 | 南京信息工程大学 | 一种Android平台的文件透明加解密系统及方法 |
CN105808977A (zh) * | 2014-12-30 | 2016-07-27 | Tcl集团股份有限公司 | 一种文件读操作、写操作的处理方法及装置 |
CN111339034A (zh) * | 2020-05-18 | 2020-06-26 | 湖南天琛信息科技有限公司 | 一种密文存储明文访问的系统、密文存储和明文访问方法 |
Non-Patent Citations (1)
Title |
---|
颜智润等: "一种透明加解密文件系统的设计与实现", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934697A (zh) * | 2021-10-21 | 2022-01-14 | 中孚安全技术有限公司 | 一种基于内核文件过滤驱动提升io性能方法及系统 |
CN113934697B (zh) * | 2021-10-21 | 2022-04-08 | 中孚安全技术有限公司 | 一种基于内核文件过滤驱动提升io性能方法及系统 |
CN114327662A (zh) * | 2021-12-30 | 2022-04-12 | 山石网科通信技术股份有限公司 | 操作系统的处理方法及装置、存储介质和处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101880075B1 (ko) | 중복 제거 기반 데이터 보안 | |
JP4648687B2 (ja) | データストレージシステムにおける暗号化変換の方法と装置 | |
US8516271B2 (en) | Securing non-volatile memory regions | |
EP3355232B1 (en) | Input/output data encryption | |
US10235304B2 (en) | Multi-crypto-color-group VM/enclave memory integrity method and apparatus | |
CN109564553B (zh) | 多阶段存储器完整性方法和装置 | |
US8650406B2 (en) | Memory protection and security using credentials | |
US9152825B2 (en) | Using storage controller bus interfaces to secure data transfer between storage devices and hosts | |
US11397820B2 (en) | Method and apparatus for processing data, computer device and storage medium | |
US10938559B2 (en) | Security key identifier remapping | |
KR101120779B1 (ko) | 시스템 페이징 파일의 암호화 | |
CN112182611A (zh) | 一种基于Linux内核层实现的文件透明加解密方法与系统 | |
CN110609708B (zh) | 用于数据处理的方法、设备和计算机可读介质 | |
US20180139046A1 (en) | End-to-end encryption of a block storage device with protected key | |
KR102365263B1 (ko) | 하드웨어 기반의 gpu 메모리 보호를 위한 효율적인 암호화 방법 및 장치 | |
CN111079159B (zh) | 用于Hypervisor多域架构的加密通信方法及系统 | |
EP2387752A1 (en) | Establishing a secure memory path in a unitary memory architecture | |
He et al. | A transparent file encryption scheme based on fuse | |
JPH05233460A (ja) | ファイル保護方式 | |
US11836094B2 (en) | Cryptographic data objects page conversion | |
CN115422568B (zh) | 一种基于SoC的文件加密方法及系统 | |
EP4075285A1 (en) | Systems and methods for transforming data in-line with reads and writes to coherent host-managed device memory | |
EP4202740A1 (en) | Process object re-keying during process creation in cryptographic computing | |
JPH08509087A (ja) | ファイル暗号構造 | |
Xie et al. | A More Extensible Transparent Encrypted File System Based on Filter Driver. |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210105 |