标签: cryptsetup

使用 cryptsetup 挂载 truecrypt 磁盘时出错

尝试使用cryptsetup挂载用 truecrypt 加密的驱动器。

这样做:

sudo cryptsetup open --type tcrypt --readonly /dev/sdc1 encrypted_drive 
Run Code Online (Sandbox Code Playgroud)

然后输入密码给我:

Activation is not supported for 4096 sector size.
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思,我如何挂载我的 truecrypt 卷?

有用的信息:

  • 该驱动器已使用 truecrypt 7.1a 加密
  • 尝试执行此操作的机器启动到 ubuntu 的实时 USB 版本,特别是 ubuntu 14.04.01,i386 桌面版。
  • cryptsetup --version 产量 cryptsetup 1.6.1
  • 删除--readonly选项不会产生任何变化

truecrypt cryptsetup

5
推荐指数
1
解决办法
1513
查看次数

cryptsetup:使用密钥文件和密码短语的 dm-crypt 纯模式

我觉得密钥文件和密码提供了不同的好处。它们不能以相同的方式获得(一种您需要实际获得,另一种您需要知道)。因此,我认为使用这两种方法加密我的数据有很大的好处。这样,如果有人受到损害,加密仍然完好无损。

在普通模式下使用 dm-crypt,我想同时使用两者。默认情况下,dm-crypt 使用密码短语,我可以轻松地将其更改为密钥文件。但它们似乎是同一种输入(例如,如果提供,密钥文件将成为您的密码)。因此,同时使用 --key-file 和 --verify-passphrase 不起作用。

这里有什么解决方法可以同时使用两者吗?

encryption dm-crypt cryptsetup

5
推荐指数
1
解决办法
3780
查看次数

创建一个包含随机内容的大文件:复制的捷径?

假设我想使用 cryptsetup 创建一个存储在文件中的大型加密驱动器,第一步是创建一个随机文件,假设它的大小应该为 3T:

dd if=/dev/urandom of=$FILE bs=1G count=3000
Run Code Online (Sandbox Code Playgroud)

上述过程可能需要很长时间。我想知道以下快捷方式是否有意义(从安全角度来看,请记住目标是创建存储在 $FILE 中的加密驱动器):

  1. dd if=/dev/urandom of=$FILE bs=1G count=1000
  2. 将上述文件复制3份,每个文件大小为1T,随机内容相同
  3. 合并 3 个文件以创建一个目标大小为 3T 的随机文件

我猜这个过程没有那么严格,因为数据有点“少”随机,但从实用的角度来看,这是一个可行的解决方案(它会快3倍)?这比创建一个充满零的 3T 文件(使用/dev/zero)更好吗?

encryption dd cryptsetup

5
推荐指数
1
解决办法
1192
查看次数

dmsetup luksFormat 创建对齐不一致

解锁新格式化的 LUKS 卷时,我在内核日志中收到警告:

kernel: device-mapper: table: 253:14: adding target device sdk1 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=33553920
Run Code Online (Sandbox Code Playgroud)

根据另一个问题,错误警告是可能的,所以我确认这是一个真正的警告:33553920 不能被 4096 整除。我进一步使用 luksDump 来确认:

cryptsetup luksDump /dev/sdk1  | grep 'Payload offset'
Payload offset: 65535
Run Code Online (Sandbox Code Playgroud)

不是 8 的倍数 (4096 ÷ 512 = 8)

lsblk -t /dev/sdk 确认 Linux 了解对齐要求:

NAME             ALIGNMENT MIN-IO   OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE  RA WSAME
sdk                      0   4096 33553920    4096     512    1 cfq       128 128   32M
??sdk1                   0   4096 33553920    4096     512    1 …
Run Code Online (Sandbox Code Playgroud)

linux encryption luks cryptsetup disk

5
推荐指数
1
解决办法
1496
查看次数

cryptopts 和 crypttab 之间的区别

我正在设置一个加密的根文件系统,我之前已经这样做过,但这次我使用带有对称密码的 PGP 加密密钥文件来熟悉该过程。

有两个地方似乎会发生加密根的配置,在cryptopts和下的内核 init 选项中/etc/crypttab,这似乎用于mkinitramfs将某些内容烘焙到 initramfs 中。

两个地方都更新有点麻烦;毕竟,如果一个地方就足够了,那么把它放在两个地方又有什么意义呢?我确实看到了将东西放在 中的价值/etc/crypttab,因为如果存在 LUKS 卷,则可以使用不同的挂钩和脚本以不同的方式生成 initramfs。

使用之前针对此问题修正的示例,这是我的 crypttab:

picrypt /dev/mmcblk0p2 /boot/diskkey.gpg luks,keyscript=/lib/cryptsetup/scripts/decrypt_gnupg
Run Code Online (Sandbox Code Playgroud)

据推测,这告诉 initramfs/dev/mmcblk0p2应该解密以使用 name picrypt,指定我们要使用该文件luks并将其传递/boot/diskkey.gpg/lib/cryptsetup/scripts/decrypt_gnupg脚本以生成卷的密码。

接下来,这是我的内核 init 行中的加密选项:

cryptopts=target=picrypt,source=/dev/mmcblk0p2,lvm=pi
Run Code Online (Sandbox Code Playgroud)

再次,我们重新指定/dev/mmcblk0p2create picrypt,在这种情况下,我们还告诉它内部有一个名为 call 的 LVM 卷,pi在尝试挂载内核参数指定的根文件系统之前,它应该等待该卷root=/dev/mapper/pi-root

奇怪的是,这个设置不起作用,因为它似乎忽略了 crypttab 的密钥文件和密钥脚本参数,并且不提示输入 GPG 对称密钥密码,而是直接输入密钥。我将修改我的脚本以包含keyscriptand keyfilein cryptopts,但为什么我必须这样做呢?

有没有一种方法可以将所有这些(或至少大部分)包含在内核初始化行中/etc/crypttab,并且不重复内核初始化行中的所有内容?必须将所有内容更改两次,这有点荒谬。这些不同的源是否只是提供不同的功能,crypttab 以钩子的形式,cryptopts 以 cryptsetup 的实际参数的形式?

luks cryptsetup crypttab

4
推荐指数
1
解决办法
5279
查看次数

如何修改现有 luks 分区上的 -iter-time

首先,我已经阅读了这个主题: How to change the hash-spec and iter-time of an existing dm-crypt LUKS device?

其中建议是以下命令:

cryptsetup-reencrypt --keep-key
Run Code Online (Sandbox Code Playgroud)

然而,这个答案是 7 年前的,并且被认为是实验性的。就我而言,我在安装过程中从加密磁盘上的实时 USB 滴答声安装了 Debian 。因此,当我启动设备时,我必须直接从 grub 解密。解密时间太长,因为--iter-time即使我的密码正确,似乎默认也在 30 秒左右,因此有人建议减少--iter-time300.

这就是为什么我还有其他问题:

  1. cryptsetup-reencrypt --keep-key -iter-time DEVICE今天的代码准确吗?
  2. 上面有 Luks 的分区是/dev/nvme0n1p2,luks 分区是/dev/mapper/luks-xxxx,交换分区也一样。选择哪个设备:cryptsetup-reencrypt --keep-key -iter-time /dev/nvme0n1p2cryptsetup-reencrypt --keep-key -iter-time /dev/mapper/luks-xxxx
  3. 我应该从 grub 菜单中的命令还是从实时 USB 中使用它?
  4. 它会格式化我的数据吗?(最好问两遍)

非常感谢。

供参考 :

  • 操作系统: Debian
  • 安装Luks的方式:通过live USB(只需勾选“加密磁盘”)
  • 卢克斯版本:卢克斯 1
  • SLOTS:启用键槽 0 …

grub debian grub2 luks cryptsetup

4
推荐指数
1
解决办法
2502
查看次数

挂载镜像文件的加密分区

我的硬盘有一个映像备份文件,它由三个分区 ( sudo fdisk -l /mnt/hdd/19_02.img) 组成:

Device                 Start       End   Sectors   Size Type
/mnt/hdd/19_02.img1     2048   1050623   1048576   512M EFI System
/mnt/hdd/19_02.img2  1050624  34686975  33636352    16G Linux swap
/mnt/hdd/19_02.img3 34686976 976773134 942086159 449.2G Linux filesystem
Run Code Online (Sandbox Code Playgroud)

第三个分区 ist 类型crypto_LUKS。如果它不会被加密,我可以用 挂载它sudo mount -o loop,offset=$(expr 512 \* 34686976) /mnt/hdd/19_02.img /mnt/img,这会导致mount: /mnt/img: unknown filesystem type 'crypto_LUKS'.

我试过的

sudo cryptsetup luksOpen /mnt/hdd/19_02.img3 img 结果是 Device /mnt/hdd/19_02.img3 doesn't exist or access denied.

sudo cryptsetup plainOpen --offset=$(expr 512 \* 34686976) /mnt/hdd/19_02.img img …

luks cryptsetup

3
推荐指数
1
解决办法
7631
查看次数

cryptsetup luksFormat 错误“设备 /dev/nvme0n1p3 正在使用中。无法继续格式化操作。”

我遵循此准则来加密目标分区:

cryptsetup -h sha256 -c aes-xts-plain64 -s 512 luksFormat /dev/nvme0n1p3
Run Code Online (Sandbox Code Playgroud)

然后,即使我之前卸载了主分区,也会出现错误: umount -l /home

使用-l -标志的原因是没有它它就无法工作。此外,为了到目前为止,我必须启动系统直到到达用户登录屏幕,然后按CTRL+ALT+F2进入tty2,通过“登录”和“密码”登录我的用户,然后卸载“/home” - 强力分区。

尽管我之前通过 gparted 检查过它是与 /home 相关的硬盘驱动器上的安装点,但它指出

“设备 /dev/nvme0n1p3 正在使用。无法继续格式化操作。”

尽管之前已经卸载了“/home”。

如何使用 LUKS (cryptsetup) 完成对“/home”分区的加密?由于与 Windows 10 并行安装,我无法加密整个 ubuntu 20.04 安装,我是否可以以相同的方式使用它来加密我的 swap、/temp 和 /var/temp?

encryption home luks cryptsetup disk-encryption

2
推荐指数
1
解决办法
7914
查看次数

Cryptsetup:用随机数据预填充分区

它说这是一个可选步骤,但建议这样做,它改进了加密以用随机数据预填充分区。

是什么带来了充满随机数据的安全性?解密分区是否更困难?我不明白为什么它提供更好的安全性。这提供了更大的安全性。

security encryption dm-crypt cryptsetup

1
推荐指数
1
解决办法
1151
查看次数