数字安全越来越重要,因此黑客会从各种角度用各种方式来入侵服务器或存储设备,以获取公司重要的数据。从防御的角度来看,多种加密技术的实现,可以保护数据隐私免受这种侵犯。本文将讨论磁盘加密,从用途、类型以及优缺点的角度,来展示如何加密Linux硬盘驱动器和各种Linux加密方法。
什么是加密
加密是将文本数据转换为秘密代码(又称密文)的过程,用于多方之间的安全通信。用户可以加密文件或消息,以便只有使用共享协议和加密算法的其他选定客户端才能访问这些文件或消息。
近年来密码学专家一直在解决数据加密的挑战,领先的情报机构、网络安全咨询公司和计算机科学家已经处理了这个问题,开发了各种加密类型和标准。最突出的有以下几点
加密类型
- Public Key
- DES
- AES
- RSA
- Post-Quantum
- Homomorphic
- Elliptic-Curve
加密的用途
- 网络监控工具
- CASB(云访问安全代理)
- 密码管理
- NGFS(下一代防火墙)
- WAF (Web应用防火墙)
- VPN(虚拟专用网)
- WEP(有线等效隐私)
- WPA (Wi-Fi保护接入)无线标准
Data-at-Rest Encryption vs Full-Disk Encryption
Data-at-Rest Encryption在数据写入或从磁盘分区、块设备、目录中读取时对数据进行加密和解密。传统的DVD、硬盘驱动器和闪存驱动器都是块设备的例子。这里最重要的是要将Data-at-Rest Encryption视为操作系统中现有安全机制的辅助,特别是关于基于用户的访问控制和网络访问安全。
Full-Disk Encryption顾名思义需要加密整个磁盘,工作在文件系统层之下。简而言之,就是块设备加密,这意味着内核的加密模块在从磁盘读取(或写入)块时转换数据。
当涉及到Linux中的设备映射器加密时,dm-crypt是默认的解决方案,因为它提供了对分区和密钥管理的完全控制。Dm-crypt通过cryptsetup进行管理,而LUKS (Linux统一密钥设置,后面将详细介绍)是一个额外的前端层,它简化了Dm-crypt的所有加密过程。
加密的需求
服务器通常位于防御严密的数据中心,再加上全驱动器加密(FDE)只保护处于静止状态的数据,而物理服务器通常在没有任何休息的情况下长时间运行,使加密是不必要的这一论点得到了证实。
但是,每个驱动器迟早都会离开数据中心进行修复或处理。通过加密保护你的旧驱动器,你可以避免它们出现在暗网上,同时仍然携带客户数据。如果加密的驱动器仍然可用,则很容易对其进行加密擦除,如果没有加密密钥,则仍然无法访问数据。
此外,随着对隐私法案等国际标准的日益关注,在任何时候、任何地方加密一切都是谨慎的做法。
TODO List:
- 确保驱动器运行正常
- Pilot groupce测试
- 检查BIOS相关干扰
- 考虑身份验证选项
- 包括removable 支持
- 检测支持的平台
Not DO List:
- 忽视密钥管理
- 低估部署时间
- 期望用户接受
磁盘加密的优势:
- 保护敏感数据免受未经授权的访问
- 防止远程监控
- 确保敏感的公司信息不被窃取
磁盘加密的劣势:
- 降低系统性能
- 突然故障的情况下很难恢复整个系统
- 数据恢复难度加大
FDE (full disk encryption)是在硬件层面对驱动器进行加密,极大地增强了数据保护。毫无疑问,加强数据安全性是最重要的好处之一。服务器使用强大的加密算法进行加密,可以保护存储在其中的所有数据。即使从当前服务器中删除驱动器并放入另一台服务器中,如果没有使用正确的密钥,仍然无法访问磁盘数据。
进一步的优势在于对所有数据进行加密,而不仅仅是加密文件夹或文件。本质上,这个加密过程是自动的。在这方面,它比文件或文件夹加密方便得多,后者需要手动选择想要加密的文件或文件夹。
另一个优点是它能够避免加密错误。我们都知道,如果是用户自己操作加密,一定会在某种程度上犯错误。在FDE情况下这是可以避免的。
Linux磁盘加密选项
-
DM-Crypt
使用Dm-crypt(一种Linux内核级加密工具)挂载加密的文件系统,操作系统通过挂载将文件系统挂载到目录(挂载点)来访问文件系统。 -
VeraCrypt
使用VeraCrypt,可以执行动态加密(OTFE)。使用该软件,可以在文件中创建一个虚拟加密磁盘,其工作方式就像实际磁盘一样。除了加密分区,它还可以在引导之前对整个存储设备进行身份验证。 -
Cryptmount
允许用户在没有GNU/Linux系统上的根权限的情况下访问加密的文件系统。只需要Linux 2.6或更高版本就能运行,该程序能够处理加密分区和加密文件。 -
eCryptfs
企业加密文件系统(Enterprise Cryptographic Filesystem, eCryptfs)允许对Linux上的磁盘进行加密。与提供块设备加密层的dm-crypt不同,eCryptfs提供了一个实际的堆叠加密文件系统。 -
Loop-AES
可以快速透明地加密文件系统和交换分区。Loop-AES不仅适用于加密磁盘分区,还适用于swap、可移动媒体和其他设备。可以使用各种措施来加强加密,包括口令种子、多次哈希迭代、MD5 IV和交替加密密钥。
Linux Unified Key 设置
Linux统一密钥设置(简称LUKS)提供了通用密钥存储。这是硬盘驱动器中专门用于存储密钥的区域,可以使用多个密码短语解锁。下面是使用LUKS加密Linux分区步骤:
-
安装cryptsetup-luks。在CentOS或RHEL操作系统下,执行以下命令:# yum install cryptup -luks。在Debian或Ubuntu上执行 # apt-get install cryptsetup
-
配置分区:
(1) 列出所有的分区
#fdisk -l
#blkid(2) 为加密分区做准备。该命令将擦除分区
#cryptsetup luksFormat(3) 设置一个逻辑设备映射器设备。使用此命令,将初始化卷并设置初始键
#cryptsetup luksOpen(4) 检查加密的状态
#cryptsetup luksDump -
格式化分区
Linux磁盘加密安全注意事项
尽管安全研究员会尽最大努力来防御攻击,但数据加密仍无法为我们所有的安全需求提供完全的保护。随着技术的进步,越来越安全的加密系统/算法被开发出来,但攻击者的技术也在不断改进。
加密系统主要有三种攻击方式:
- 使用键盘记录器和暴力方法查找加密密钥
- 通过密码分析攻击加密算法
- 攻击实现加密算法的软件
信息安全领域在不断发展,在未来,我们将看到更多基于数学强度/密钥大小和抵御外部攻击的持久性的强大加密算法,更不用说量子计算了,它将使今天所有的加密算法都变得无用。