linux加密文件系统实现,一个基于Linux的加密文件系统的设计与实现

加密文件系统是保护用户敏感数据的一种有效手段。传统的加密文件系统((2)、’(2)、32) 等)因为数据保护

不彻底、系统负载过大等缺陷,无法很好地满足用户需求。该文介绍了一种加密文件系统)*2) 的设计与实现方案,该方案基于J./01 操作系统,利用其绕回设备技术实现对用户数据和系统交换分区的加密保护,另外,该方案增强了自主访问控制策略,以满足高等级安全标准的需求。

口,提供了对虚拟设备进行创建、格式化、挂载等操作的一系列命令。

分区替换掉系统原来的交换分区即可。

交换分区是操作系统在运行过程中需要经常访问的一块空间,对交换分区进行加密保护虽然可以有效地防治敏感数据的泄漏,但对操作系统整体性能的影响可能较大,所以在)0()中,交换分区的加密功能一般只是在对安全性有较高要求的情况下才建议使用。

)0()各部分之间结构如图%所示。

1关键技术的实现1$%虚拟磁盘的加密

在)0()中,虚拟磁盘的存储介质是一个块文件,如果简单起见,直接对该块文件进行加密便可以实现虚拟磁盘的整体加密,但这样做有很多弊端:首先,每次对虚拟磁盘进行访问,都必须把整个块文件进行解密,影响系统性能;另外,解密后的块文件如存放不当,容易泄漏其中存储的数据。

操作系统对磁盘的访问是一种随机访问,一般以磁盘扇区为单位进行,每个扇区的大小一般为#%!2345,。鉴于这个原因,每个扇)0()对虚拟磁盘的加密采取以扇区为单位的方式,区被加密后作为块文件数据区内的一个数据块存放在特定位置,这样,当读某个文件时,只需将该文件所占用的若干磁盘扇区解密即可,不用解密整个磁盘,大大提高了系统性能和安全(’678592:;<=性。为了进一步增强系统的安全性,采用了’2’加密模式,以达到隐藏扇区的数据结构的目的。’8>6*6*?)

1$1访问控制的实施

对于一个加密的虚拟磁盘,经常会出现需要多个用户共同

访问的情况,这就需要对不同使用者的访问权限加以限制,以防止某些使用者对磁盘数据的恶意窜改。A6*BC操作系统采用

D/E64位的访问控制策略,对文件的使用者按照属主、同组用

户、其他用户划分为三类,分别赋予不同的访问权限(读、写、执行)。这种实现方式对用户权限的控制粒度过于粗大,无法满足(访问控制列表)技术。作者的要求,于是在)0()中引入了.’A

在)0()中,(如:密钥长度、加.’A列表和其他关键信息密密钥、算法类型等)放在块文件的文件头中。对每个虚拟磁盘每个条目对应一个用户对该磁最多可以设置!"个.’A条目,

只盘的访问权限,.’A列表的第一个条目对应的是属主用户,有属主用户可以修改其他用户的访问权限。存储结构如图@。

1$!加密引擎的模块化

)0()目前提供三种加密算法,基本上可以满足用户的一

般需求,但考虑到系统以后的扩展性,作者把加密引擎设计成一种可动态扩展的实现模式。加密引擎由算法管理模块、加密算法模块两部分构成:算法管理模块用来对已注册的加密算法进行调度、管理;加密算法模块用来实现对数据的加密操作,每个算法被封装成一个具有统一接口的动态加载模块,在需要时由算法管理模块动态载入到内核中。

加密引擎的这种实现方式对于添加新的加密算法非常方便,首先,将新加密算法封装成一个动态加载模块,按照规定的格式向外部提供调用接口;然后,向算法管理模块注册该加密算法,并提供相应的注册信息(算法标识符、密钥长度、动态加载模块名称等)。这样,用户便可以使用新加密算法进行加密了。

即该用户的系统B6F,用来标识用户身份。B6F:

控制位:表示该用户对磁盘的读、写权限。密钥长度:加密密钥的实际长度。

加密密钥:由该用户主密钥加密后的文件密钥。算法类型:采用的加密算法的标识符。

图@

访问控制列表结构图

#性能分析

#$%几个加密文件系统的比较

论文从加密位置、访问控制、可扩充性等几个方面,把见表%。)0()与几个经典加密文件系统做了比较,

表%

图!

加密引擎结构

工作机制

’()*+,服务端

应用层差一般密文不完整否小

加密位置可扩充性访问控制数据存储敏感信息的保护在磁盘存放密钥对内核的依赖性

-’()*+,客户端

核心层差一般密文不完整是大

.()//

核心层差好明文

)0()

绕回设备核心层好好密文完整否小

1$@交换分区的加密

)0()这种利用虚拟磁盘实现对用户数据进行加密存储的

工作模式,使得对交换分区的加密变得非常容易。交换分区是操作系统中用来暂时存放内存中数据的一块磁盘空间,通常是一个磁盘分区。既然交换分区是一个磁盘分区,而)0()又可以实现对磁盘(虚拟磁盘)的整体加密,那么将交换分区存放到一个被加密的虚拟磁盘上,便可实现对交换分区的加密保护。具体实现如下:首先,创建一个指定大小(可以与原交换分区大小保持一致)的块文件;然后,将该块文件映射成一个加密的虚

3-142-png_6_0_0_0_0_0_0_806.4_1118.4-365-0-1145-365.jpg

3-156-png_6_0_0_0_0_0_0_806.4_1118.4-317-0-1292-317.jpg

//

否小

工作机制:’()G-’()基于*+,文件系统的工作机制使得在对本地数据进行加密时性能非常低下,而)0()则要高效得多。

计算机工程与应用

!""#$%&%"@

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个基于Linux系统的文件加密存储的解决方案。以下是具体步骤: 1. 安装加密软件VeraCrypt VeraCrypt是一个跨平台的开源加密软件,可以在Linux、Windows和Mac等多个操作系统上使用。您可以通过以下命令在Linux上安装: ``` sudo apt-get update sudo apt-get install veracrypt ``` 2. 创建加密容器 使用VeraCrypt创建一个加密容器,该容器将用于存储您的加密文件。您可以选择在本地硬盘驱动器中创建容器,也可以在USB驱动器中创建容器。以下是创建容器的步骤: - 打开VeraCrypt软件并选择“创建加密文件容器” - 选择容器类型(本地硬盘驱动器或USB驱动器) - 设置容器大小和加密算法(例如AES) - 设置容器密码和密钥文件 3. 挂载加密容器 使用VeraCrypt将创建的加密容器挂载到Linux系统中。以下是挂载容器的步骤: - 打开VeraCrypt软件并选择“选择文件”按钮 - 选择您创建的加密容器文件 - 选择“挂载”按钮并输入您设置的密码和密钥文件 - 选择您要将容器挂载到的Linux目录 4. 存储和访问加密文件 现在,您可以将要加密文件存储在挂载的加密容器中。当您完成文件存储时,您可以使用VeraCrypt软件卸载该容器。您需要重新输入密码和密钥文件才能再次访问该容器中的文件。 这就是一个基于Linux系统的文件加密存储解决方案。希望这可以帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值