加密算法“aes256”存在问题

加密算法“aes256”存在问题

我正在关注加密外部硬盘的方法,但 aes 算法别名存在问题

sudo modprobe dm-crypt
sudo modprobe sha256
sudo modprobe aes

我在执行 aes 命令后收到以下错误

modprobe: ERROR: could not insert 'padlock_aes': No such device

我尝试了链接中提到的解决方法,但我的 /etc/modprobe.d/ 目录中没有别名文件

user@user:/home/$ cd /etc/modprobe.d/

user@user:/etc/modprobe.d$ ls | grep aliases

user@user:/etc/modprobe.d$ [no output]

我不知道如何处理这个问题,但后来当我尝试加密驱动器时,它通过以下命令成功加密

sudo cryptsetup --verify-passphrase luksFormat /dev/sdb1 -c aes -s 256 -h sha256

我不知道它是如何找到 aes256 算法的,或者只是忽略了 aes256 或者做了一些神奇的事情。

所以我想要以下问题的答案

  1. crypt-setup 如何成功加密我的驱动器?
  2. 如何确认 crypt-setup 执行的加密中也实现了 aes256?

  3. 为什么我没有/etc/modprobe.d/alaises文件?是因为版本较新吗?因为该解决方案上次是在 10.04 版本上测试的。

答案1

提前警告:不要手动更改( )、( ) 和( )cryptsetup等选项的参数。默认值通常足够合理,除非您知道自己在做什么,否则您可能实际上会选择-c--cipher-s--key-size-h--hash更差参数。

这些默认值显示为cryptsetup --help。作为参考,在带有 cryptsetup 1.7.2 的 Ubuntu 16.04 上,默认值为:

LUKS1:aes-xts-plain64,密钥:256 位,LUKS 标头哈希:sha1,RNG:/dev/urandom

在装有 cryptsetup 1.7.2 的 Arch Linux 上,默认值为:

LUKS1:aes-xts-plain64,密钥:256 位,LUKS 标头哈希:sha256,RNG:/dev/urandom


您链接的说明是针对 2010 年发布的 Ubuntu 版本编写的。现在(甚至可能当时也是如此)您无需手动加载内核模块即可设置全盘加密。cryptsetup调用时会自动加载这些模块。

在 Linux 内核模块的上下文中,aes名称是模块名称和几种可能实现的别名。有一个通用aes模块内置于内核映像中。然后有其他更快的实现,它们依赖于某些硬件或 CPU 功能(例如padlock-aesaesni-intel)。

即使无法加载这些硬件加速模块,仍然可以回退到通用 AES 实现,这就是cryptsetup仍然可以使用它的原因。

要确认确实正在使用 AES256 加密,您可以使用cryptsetup luksDump /dev/sdb1以下命令:

...                                        
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        256

这里您可以看到,使用 SHA256 哈希函数来导出密码时使用了 AES 密码。密钥大小为 256 位(因此您确实在使用 AES256)。

对于您的最后一个问题(为什么您没有文件/etc/modprobe/aliases),该文件在最近的 Ubuntu 版本中不存在。

相关内容