Linux统一密钥设置(英语:Linux Unified Key Setup,缩写:LUKS)是由Clemens Fruhwirth在2004年为Linux开发的磁盘加密规范。LUKS实现了可用于各种工具上的跨平台标准磁盘加密格式,促进了不同工具之间的兼容性和互操作性,确保它们都以安全和统一的方式实施密码管理。[2]
简介
LUKS的用途是加密设备文件系统。被加密的内容无需是某种格式,因此任何文件系统都可以被加密,甚至包括虚拟记忆体分区。[3]在每个已加密的磁碟的头部,均有未加密的部分用以承载加密密钥[注 1]以及诸如加密类型和密钥大小等加密参数。[4][5]
磁碟头部承载的加密密钥是LUKS和plain dm-crypt的主要分别。LUKS允许使用多个不同的密码解密同一个磁碟,也可以随时轻易的修改或移除之。但是如果磁碟头部被损坏,则不可能复原被加密的资料。[6]
加密的过程使用了多层加密:首先,资料被主密钥加密,然后主密钥被复制多份,分别被不同的用户密钥加密,最后被加密的主密钥均被储存到磁碟中。[7]通常,用户密钥是密码片语,但其他加密方式例如OpenPGP公开密钥或者X.509数码证书也可使用。PGP公开密钥可以与被连接到主机的OpenPGP智能卡合并使用。[8][9]这种分层加密方法被称为TKS1。[10][11]
LUKS有两个版本:LUKS1以及LUKS2。LUKS1默认使用PBKDF2加密,而LUKS2默认使用Argon2;LUKS2也具备对磁碟头部损坏的弹性。[12]在两个LUKS版本之间切换或许可能,但某些功能(例如Argon2)未必能在LUKS1上使用。[4]LUKS2使用JSON作为其元数据储存格式。[4][13]
可用的加密算法取决于内核的支持。Libgcrypt支持所有LUKS支持的加密算法,可以作为散列的后端。[14]默认加密算法由作业系统决定。[15]LUKS1使用一种名为AFsplitter的反电脑鉴证技术,以保护文件以及确保文件能够被彻底抹除。
LUKS常用于对整个磁盘加密,包括加密作业系统的根目录,以保护所有资料免被具有物理存取权限的攻击者或未获授权的第三方存取或修改。[16]
在Linux系统上,为防止第三方篡改Linux内核,引导分区可以在引导程序支援LUKS的前提下同样被加密。[注 2]但是,第一阶段引导程序以及EFI系统分区无法被如此加密。[16]
作业系统支援
LUKS的参考实现是在Linux上运行的修改版cryptsetup
,并使用dm-crypt
作为加密后端。在Microsoft Windows,LUKS加密的磁盘以前可以通过LibreCrypt存取,[21]但已因安全漏洞而弃用;[22][23]现在则可以通过适用于Linux的Windows子系统使用。[24]DragonFly BSD支援LUKS。[25]
部分Linux发行版的安装程序可以在安装时对整个磁盘加密,包括Calamares[26],Ubiquity[27]以及Debian安装程式[28]。
磁碟格式
LUKS磁碟头是向前兼容的,新版的LUKS可以读取旧版LUKS的磁碟头。
LUKS2设备以二进制标头开头,旨在让blkid更容易进行识别。LUKS2磁碟头的所有字串资料均是以null标记完结的字符串。JSON资料区紧接在二进制标头后,当中储存了LUKS的设定、密钥以及加密细节。LUKS2密钥槽的二进制格式与LUKS1大致相似,但允许个别密钥槽的算法(例如不同的PBKDF)。LUKS2包含另一种密钥以在在重新加密过程中断的情况下允许冗馀。[13]
使用范例
本章节使用LUKS的参考实现cryptsetup
来示范操作。
加密装置/dev/sda1
:
# cryptsetup luksFormat /dev/sda1
解密已被LUKS加密的同一磁碟,而name
是映射的设备名称:
# cryptsetup luksOpen /dev/sda1 name
对LUKS容器的重新加密可以使用cryptsetup
或者旧工具cryptsetup-reencrypt
实现。这些工具也可以用来加密先前未加密的磁碟,或永久解密已加密的磁碟。[14][29]两个方法所适用的命令语法相近:
# # 使用 cryptsetup
# cryptsetup reencrypt /dev/sda1
# # 使用 cryptsetup-reencrypt
# cryptsetup-reencrypt /dev/sda1
参见
- 磁碟加密软件的比较
备注
参考来源
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.