简介

欢迎阅读关于 SLE-15-SP2 和 openSUSE Leap 15.2 中 YaST 改进的最新预览… 或者如果你像大多数 YaST 开发者一样,是 openSUSE Tumbleweed 的用户,那么你可能更早就能体验到这些改进。

我们关于第 84 次冲刺的报告 中,我们提到了关于 YaST 分区器的加密功能的一些变化,例如显示具体的加密技术或保留现有加密层。

Keeping the previous encryption layer

第 85 次冲刺的报告 承诺会发布一篇单独的博客文章,详细介绍我们在创建加密设备方面所添加的新功能。

所以现在就开始吧!但首先声明一点。虽然其中一些新选项适用于所有 (open)SUSE 用户,但公平地说,这次的主要受益者是 s390 系统的用户,他们可以享受多达四种新的设备加密方式。

好东西无需改变

如你所知,到目前为止,YaST 分区器在创建或编辑块设备时提供了一个“加密设备”复选框。如果选中该复选框,分区器会要求输入加密密码,并在要加密的设备之上创建一个 LUKS 虚拟设备。

LUKS(Linux Unified Key Setup)是 Linux 硬盘加密的标准。通过提供标准的磁盘上格式,它促进了不同发行版之间的兼容性。LUKS 将所有必要的设置信息存储在分区头中,从而可以无缝地传输或迁移数据。到目前为止,这种头部的两种格式规范是 LUKS1 和 LUKS2。YaST 使用 LUKS1,因为它已经成熟、稳定且广为人知,与 (open)SUSE 安装过程完全兼容,并得到所有系统工具和大多数引导加载程序(如 Grub2)的完美支持。

不要修复那些没有损坏的东西。因此,在大多数情况下,设备加密屏幕没有改变,并且在底层仍然以相同的方式工作。

Editing an encrypted device

但是,使用替代方法对于某些用例可能很有用,并且我们希望为那些寻找其他选项的人在分区器中提供一个选项。因此,在某些特殊情况下,该屏幕将包含一个新的选择器来选择加密方法。让我们分析所有这些新方法。

使用随机密钥的易失性交换文件加密

当交换设备被标记为加密时,用户可以选择“常规 LUKS1”和“使用随机密钥的易失性加密”。这两种选项都将适用于所有硬件架构上的交换设备。第一个选项只是使用上面描述的经典方法。

Selecting the encryption method

第二个选项允许配置系统,以便在每次启动时使用新生成的随机密码重新加密交换设备。

Encrypt swap with a random password

一些高级用户可能会指出,在 Leap 15.0 之前的 openSUSE 版本中,已经可以使用这种方式配置随机加密的交换文件。但是,执行该过程至少可以说很晦涩。使用随机密码的加密是通过在加密步骤中留空“输入密码”字段来实现的。确切的含义在界面中的任何地方都没有解释,并且帮助文本也没有提及所有风险。

现在可以使用更明确的界面来实现相同的配置,提供相关信息,如以下屏幕截图所示,并且实施了一些额外的内部控制,以尝试限制潜在的危害。

Help text for the random swap method

使用这种方法,用于加密交换文件内容的密钥使用 /dev/urandom 在每次启动时生成,这非常安全。但是,你总是可以更进一步…

使用易失性保护 AES 密钥的交换文件加密

拥有 大型机 的好处之一(相信我们,有很多好处)是在所有级别实施的额外的安全措施。在 IBM Z 或 IBM LinuxONE 的情况下,这转化为所谓的 普遍加密。普遍加密是一种端到端数据保护的基础设施。它包括使用受保护和安全的密钥进行数据加密。

在提供该技术的 s390 系统中,交换文件可以在每次启动时使用易失性保护的 AES 密钥进行加密,与使用来自 /dev/urandom 的数据的常规加密相比,这提供了额外的安全级别。本文档 解释了如何手动设置此类系统。但是现在你可以使用 YaST 并使用单击完成所有配置,如以下屏幕截图所示。

Encrypting swap with volatile protected keys

这种方法的好处是,即使你的 s390 系统没有 CCA 密码协处理器,你也可以使用它。哦,等等…你可能不知道什么是密码协处理器。不用担心,继续阅读。

数据卷的普遍加密

你有没有想过詹姆斯·邦德如何保护他的信息免受最狡猾和足智多谋的恶棍的侵害?我们不确定(或者至少我们不应该透露这些信息),但我们会打赌他有一个配备至少一个 CCA 模式配置的 Crypto Express 密码协处理器的 s390 系统。

这些专用硬件,与支持 CPACF 的 CPU 结合使用,确保存储设备上的静态信息只能在加密该信息的系统上读取。它们甚至具有一种物理机制,可以在将硬件从机器中移除时销毁所有密钥,就像间谍电影中的自毁机制一样!

此处记录,在 Linux 中享受数据卷普遍加密的全部力量的过程可能有点复杂… 除非你手头有 YaST 分区器!

Pervasive volume encryption

如上图所示,使用 YaST 的过程就像选择“普遍卷加密”而不是 YaST 通常用于非交换卷的经典 LUKS1 一样简单。如果 YaST 在系统中找到与正在加密的卷关联的安全 AES 密钥,它将使用该密钥,并且生成的加密设备将具有该密钥指定的 DeviceMapper 名称。如果不存在此类安全密钥,YaST 将自动为每个卷注册一个新密钥。

Help for pervasive volume encryption

普遍加密可以用于系统的任何卷,甚至根分区。

我想要所有这些!

到目前为止,我们已经看到你可以使用受保护的 AES 密钥来随机加密交换文件,并使用注册的安全密钥来保护数据卷。但是,如果希望交换文件使用随机的安全 AES 密钥进行加密呢?毕竟,你已经投入了时间和金钱来安装那些优秀的 CCA 协处理器,让我们也将其用于随机交换文件加密吧!

如果你的硬件支持,在加密交换文件时,你将看到“使用安全密钥的易失性加密”选项,除了上面评论的四种可能性之外。就像这样简单!

All possible methods for encrypting a swap

非 s390 系统中的更多启动检查

如上述普遍卷加密的帮助中所述,该方法在底层使用 LUKS2。因此,我们借此机会改进了分区器关于加密和启动的检查。现在,在所有非 s390 架构中,如果使用专家分区器将根目录放在 LUKS2 设备中而没有单独的纯 /boot,将显示以下警告。

New check for booting

正如所提到的,这不适用于 s390 大型机。使用 zipl 使得只要内核支持加密技术,就可以在这些系统上启动 Linux,而与 Grub2(缺乏)功能无关。

接下来是什么?

我们仍在努力完善 YaST 提供的新的加密方法,并为其添加 AutoYaST 支持。你可能已经注意到,目前实施的大多数改进只会直接使 s390 系统受益… 甚至只是其中的一部分。但是,在当前阶段,我们已经为 YaSTland 中新的加密支持时代奠定了基础。

我们正在考虑添加更多对所有 (open)SUSE 用户有用的加密方法,对 LUKS2 的通用支持是一个显而易见的候选者。但这并不是我们会在短期内看到的,因为在这些技术中还有许多细节需要完善,才能使其很好地适应当前的安装过程。

但是,与此同时,你可以玩转所有其他新玩具!