aes加密linux
eCryptfs是IBM在Linux内核2.6.19版本中引入的一款功能强大的企业级加密文件系统,它支持文件名和文件内容的加密。eCryptfs堆叠在底层文件系统之上,用户空间的eCryptfs daemon和内核的keyring共同负责秘钥的管理。当用户空间发起对加密文件的写操作时,由VFS转发给eCryptfs,eCryptfs通过内核Crypto API(如AES、DES)进行加密操作,再转发给底层文件系统。读操作则相反。
eCryptfs的核心加密设计受到OpenPGP规范的影响,其加密设计有两点核心思想:
1. 文件名与内容加密:eCryptfs采用对称秘钥加密算法(如AES、DES等)来加密文件名及文件内容,秘钥FEK(FileEncryption Key)是随机分配的。多个加密文件使用不同的FEK,提高了安全性。
2. FEK加密:eCryptfs使用用户提供的口令、公开密钥算法(如RSA算法)或TPM(Trusted Platform Mole)的公钥来加密保护FEK,加密后的FEK称为EFEK(Encrypted File Encryption Key),口令/公钥称为FEFEK(File Encryption Key Encryption Key)。
使用eCryptfs的步骤包括:安装用户空间应用程序ecryptfs-utils、发起mount指令、选择加密算法、完成挂载。挂载成功后,对my_cryptfs目录下的所有文件进行加密处理。新增文件时,加密处理自动生效,umount后再次查看目录下的文件,可以看到已加密处理。
eCryptfs对数据的加密和解密流程以块为单位进行,加密文件被分成多个逻辑块(extent),元数据包括文件大小、标志、EFEK等。读操作时,首先解密FEK,然后解密对应的extent;写操作时,加密文件内容。
eCryptfs的使用存在一些缺点,包括性能问题和安全隐患。性能问题在于,eCryptfs涉及了加解密操作,影响了写操作的性能,读操作影响较小。安全隐患在于,eCryptfs的Page cache中存放的是明文数据,如果用户空间权限设置不当或被攻破,数据暴露给所有应用程序。
近年来,随着处理器和存储性能的增强,eCryptfs的性能问题得到改善,其易于部署、使用安全高效的优点日益显现。本文对eCryptfs的整体架构进行了简单阐述,有兴趣的同学可深入学习。随着技术的不断发展,eCryptfs有望解决更多问题,为用户提供更好的加密文件系统体验。
② 如何在Linux系统上加密文件和目录
有很多linux系统上的加密工具,
文件系统级别加密
EncFS:尝试加密的最简单方式之一。EncFS工作在基于FUSE的伪文件系统上,所以你只需要创建一个加密文件夹并将它挂载到某个文件夹就可以工作了。
eCryptFS:一个POSIX兼容的加密文件系统,eCryptFS工作方式和EncFS相同,所以你必须挂载它。
磁盘级别加密
Loop-AES:最古老的磁盘加密方法。它真的很快,并且适用于旧系统(如,2.0内核分支)。
DMCrypt:最常见的磁盘加密方案,支持现代Linux内核。
CipherShed:已停止的TrueCrypt磁盘加密程序的一个开源分支。
③ 如何在Linux上借助eCryptFS加密文件和目录
可用的加密工如好具
在Linux中实施加密机制有几种办法。我在本教程中将介绍一种选择:eCryptFS堆叠加密文件系统工具。下面整理出了几种可用的Linux加密工具,渣吵铅仅供参考。
文件系统级加密
•EncFS:这是尝试加密的最容易的方法之碰首一。EncFS作为堆叠文件系统来运行,所以你只要创建一个加密的文件夹,将它挂载到文件夹上即可使用。
•eCryptFS:作为一款与POSIX兼容的加密文件系统,eCryptFS的工作方式与EncFS如出一辙,所以你得挂载它。
全磁盘加密
•Loop-AES:这是最古老的磁盘加密方法。它运行起来速度很快,可以在旧系统(比如内核2.0分支版本)上使用。
•DMCrypt:现代Linux内核支持的最常见的磁盘加密方案。
•CipherShed:这是现已停止开发的TrueCrypt磁盘加密软件的开源分支版本。