基于Linux的扩展文件系统加密方法技术领域
本发明属于信息安全技术领域,具体涉及一种基于Linux的扩展文件系统
加密方法,采用特定算法在文件系统层面对路径或单个文件进行加密操作,对
用户重要信息进行保护。
背景技术
文件加密是指,以某种特殊的算法改变原有的信息数据,使未经授权的用
户无法获取文件信息,保护用户的重要数据。文件加密技术应考虑加密软件的
稳定性、安全性和方便性。常用加密实现方式有:
数据库加密,对库后台存储数据进行加密保护,技术包括视图触发器、预
解密处理以及密文索引技术。
工具加密,使用应用软件对指定路径和文件进行加解密,操作流程全部在
应用层完成。
驱动加密,调用驱动模块在内核层面对指定路径和文件进行加解密。
国密算法,即国家密码局认定的国产密码算法,也叫商用密码(SM)。目
前成熟在用的有SM1、SM2、SM3和SM4,最新为SM9。主要应用于企业内
部敏感数据的传输、存储进行加密保护,防止信息被非法获取,广泛应用于各
类安全认证、网上银行和数字签名等。
目前基于Linux的扩展文件系统加密,比较常见的是dm-crypt技术。该技
术速度快,适用面广,能运行于各种块设备之上。主要使用dm-crypt与快设备
(或区)进行关联,对用户在挂载点内编辑的内容进行加密操作,块设备中的
内容需要获取密钥后才能解读。但该技术目前只支持AES等通用算法,无法
使用国密算法,并且在架构上没有对硬件加密进行扩展。
发明内容
为了克服现有技术的上述缺点,本发明提供了一种基于Linux的扩展文件
系统加密方法,采用驱动加密方式,用户运行应用软件设置密钥和加密方式,
通过信号量传递至内核层中的加密模块,模块配置加解密算法。并通过扩展文
件系统(EXT)的节点映射,对其物理存储页面进行加解密操作。
本发明解决其技术问题所采用的技术方案是:一种基于Linux的扩展文件
系统加密方法,加密设置工具在用户态运行,提供策略设置工具和密钥管理工
具;内核模块按照算法策略,在文件系统底层执行加解密操作;所述加密设置
工具运行时与内核模块的key模块建立临时会话。
与现有技术相比,本发明的积极效果是:
1、直接与扩展文件系统对接,加解密操作在Linux内核层完成。
加密过程完全对用户态透明,用户不关心加解密过程,操作过程与普通文
件完全一致。
2、“国密算法”(SM1\SM2\SM3\SM4)接口配置。
使用国密算法加密芯片,加密过程更具效率和安全性,适用于有国密要求
的应用场景。另外,接口可配置内核软算法,适配无加密卡平台。
3、文件名和文件内容均进行加密操作。
保护区内,文件名用HASH(哈希值)表示,文件内容以密文形式保存在物
理页上,无权限用户无法获取文件名或文件信息。在内核态中实现对文件的安
全保护。
4、密钥存储于内核密钥环,非持有用户不可见(包括root用户)。
5、组件少、空间开销小、可移植性强,通用或嵌入式系统均适用。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本发明的文件名的加密示意图;
图2是本发明的文件内容的加解密示意图。
具体实施方式
本发明包括两部分内容:
1、加密设置工具:在用户态运行,提供策略设置和密钥管理工具。
策略设置工具根据用户输入,创建加密的路径或文件,并与指定的密钥进
行绑定。
密钥管理工具,用于导入、更新、查询和销毁密钥。
工具运行时会与内核的key模块(/proc/keys)建立临时会话。
2、e4crypt内核模块。
按照算法策略,在文件系统底层执行加解密操作,使用了临时页面和读回
调技术,分别对物理页中密文进行加密和解密操作。
以下是本发明方法的详细介绍:
一种基于Linux的扩展文件系统加密方法,如图1和图2所示,具体包括
如下内容:
2-1.密钥管理工具
本专利中,对密钥存放添加了安全性设计,用户密钥只能存放在内核中。
管理密钥的模块为内核密钥环(security-keyring),密钥环本质上是一个循
环链表。管理接口进行了封装,用户只能使用密钥管理工具存取密钥,且只能
查看自己创建的密钥。
2-2.策略设置工具
记录用户的密钥、加密算法和文件名。设置完成后,工具将把密钥环,加
密算法和文件名进行绑定,同时将结果传递给内核。当持有密钥的用户对绑定
文件进行编辑时,内核将命中关联的策略,在读写回调中进行加解密操作。该
设计,使本专利在策略上更具备灵活性,用户可采用多种密码算法对文件进行
加密处理。
3-3、持有密钥用户和普通用户访问文件:
(1)持有密钥的用户进入文件夹,创建或访问文件名、对文件内容进行
读写操作:
用户创建文件名并加密后,内核根据绑定的策略,对文件名加密后保存至
磁盘,并将加密的文件名映射到文件节点索引区。写文件到物理区时,内核模
块先创建临时加密区,使用关联的密钥和算法加密文件信息,密文写入物理页。
写操作完成后内核销毁临时区。
用户访问文件名时,内核命中绑定策略,使用关联的密码算法对磁盘文件
名和索引域文件名解密。从物理区读文件时,读回调使用关联的密钥和算法,
提取物理页上的密文解密,并返回明文信息至用户层。
(2)普通用户读写操作:
由于普通用户不持有该文件绑定的密钥,因此内核不会命中任何已有策
略,不能访问该文件内容,内核仅返回加密后的文件名(直接在磁盘或索引区
读取已加密的文件名)。
该设计对用户层完全透明,并且与权限管理完全分离。通过密钥、算法和
文件的绑定机制,保证加密文件仅由持有密钥的用户访问。