文档库 最新最全的文档下载
当前位置:文档库 › 基于EXT2的加密文件系统的设计与实现

基于EXT2的加密文件系统的设计与实现

Microcomputer Applications V ol.27,No.8,2011

研究与设计微型电脑应用2011年第27卷第8期

文章编号:1007-757X(2011)08-0009-02

基于

EXT2的加密文件系统的设计与实现

赵中良

摘要:Linux 操作系统具有开放性、稳定性、高效率等特点,得到了越来越广泛的应用。如今,Linux 已经深入到了我们

生活中的各个方面。然而,在文件访问安全方面,Linux 操作系统存在一些缺点和漏洞。因此,需要进一步加强Linux 文件访问的安全性。详细分析和研究了Linux 文件系统工作原理,提出了一种加强文件系统安全性的可行性方案,并给出具体的实现过程。

关键词:EXT2文件系统;虚拟文件系统;加密;文件索引节点中图分类号:TP309.2

文献标志码:D

0引言

在Linux 文件系统中,采用了一个二维的权限结构来标记不同身份的用户对文件的读、写、执行的权限。该结构共9位,每三位为一组,分别代表文件所有者、文件所属组、

其他用户[1]

。只有对文件具有指定访问权限的用户,才能够进行对应的访问操作。为了使普通用户能够访问一些特殊文件,如登录口令文件等,Linux 文件系统引进了设置用户ID 位。这就使普通用户暂时有了跟文件所有者相同的操作权限。虽然这一机制给用户访问文件带来了方便,但是也给非法用户带来了可趁之机。因此,需要找到更行之有效的方法来加强文件系统的安全性。

本文将采用数据加密技术增强文件系统的安全性。对文件数据进行读写操作之前,先进行加解密操作。合法用户进行读写的均为明文,而保存在磁盘介质上的数据却都是密文。针对每一个文件,用户都可以指定不同的密钥。由于非法用户没有对应文件的密钥,即使得到文件数据,也只是得到加密后的数据,不会给合法用户带来损失。

1Linux 文件系统访问机制

在Linux 操作系统中,最早使用的是MINIX 文件系统,后来发展成为EXT2文件系统并成为一个标准的Linux 文件系统[2]。随着各种各样的文件系统的产生,如fat 、nfs 等,Linux 操作系统中出现了兼容性的问题。为了使Linux 能够兼容不同的文件系统,同时能够为用户屏蔽各种不同文件系统的差异,Linux 操作系统中引入了虚拟文件系统。虚拟文件系统与具体文件系统的结构图如图1

所示:

图1虚拟文件系统与具体文件系统关系图

从图1中可以看到,虚拟文件系统起到一个中间桥梁的作用[3]

。在内核空间,虚拟文件系统兼容了各个不同的文件系统,在用户空间,虚拟文件系统为用户提供了一个抽象的、统一的接口,屏蔽了各个文件系统的差异。在虚拟文件系统中有一个重要的数据结构—file_operations 。在这个数据结构中包含了一组标准的、抽象的文件操作函数,包括:open()、read ()、write ()等。在用户空间中调用库函数访问文件时,首先要跳转file_operations 结构中,调用对应的操作函数。而file_operations 中的每个函数,就是具体的某个文件系统的操作函数。因此,将一个新的文件系统安装到内核时,也就是将这个文件的各种操作函数添加到file_operations 结构的各个字段中。无论内核采用哪种文件系统,用户只需要调用固定的库函数接口即可。而如何跟踪到具体文件系统,则统统由虚拟文件系统来处理。

2加密方案

在对数据进行加解密操作时,采用的是现有的成熟的DES 加密算法。当创建或打开一个文件时,用户需要提供一个密钥。如果创建一个新文件,系统在创建新文件后需要将用户提供的密钥保存起来;如果是打开一个文件,系统将用户提供的密钥跟创建该文件时所保存的密钥进行比较,只有当比较结果一致时,才给予用户访问文件的权利。由于加密算法已经固定,因此提高加密文件系统访问速度的关键在于对文件密钥的管理。

当保存文件密钥时,可以将所有文件的密钥以及文件名保存在一个特定的文件中。当需要查找某一文件的密钥时,可以使用文件名为索引,在保存密钥的文件中进行查找。但这会导致访问密钥的速度非常耗时。为了提高访问文件密钥的速度,将文件密钥保存在了该文件的inode 结构中。在虚拟文件系统以及EXT2文件系统中,表示文件索引节点的inode 结构中均有一保留字段没有使用[4],可以使用这一字段来保存文件的密钥。当用户想要读取某一文件的密钥时,首先按照路径名找到文件的inode 节点,然后在inode 结构中读出该文件的密钥;当用户创建一个新的文件时,待分配好inode 结构后,将密钥写入该inode 结构中。采用这种方

———————————

作者简介:赵中良(1968—),男,河北,北京军区总医院,工程师,北京,100700

9

相关文档
相关文档 最新文档