问题标签 [luks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8035 浏览

encryption - 如何在cygwin/windows上打开LUKS加密图像文件

是否可以在 cygwin / windows 上打开(解密)使用 LUKS 加密的文件?

0 投票
5 回答
19799 浏览

linux - 如何从 USB 加载 LUKS 密码,回退到键盘?

我想设置一个具有全磁盘加密的无头 Linux (Debian Wheezy) PC,能够使用 USB 驱动器或通过键盘输入密码来解锁磁盘。我的起点是使用 Debian 安装程序中的基本全盘加密选项进行全新安装,它将 /boot 以外的所有内容作为 LUKS 加密的逻辑卷组进行管理,并为我提供键盘选项。我将在答案中描述我当前的解决方案,希望它有用并且其他人可以改进它。

以下是我遇到的一些问题:

  • 设置密码并将其放在 USB 驱动器上。

  • 及时加载 USB 模块。

  • 等待 USB 驱动器被 Linux 识别,然后再尝试读取它。

  • 识别正确的 USB 驱动器(不是碰巧插入的其他驱动器)。

  • 编写“keyscript”以从 USB 驱动器中提取密码。

  • 确保在所有 USB 故障情况下都回退到键盘。

我会接受一个有重大改进的答案,并赞成提供贡献的答案。

0 投票
0 回答
330 浏览

c - cryptsetup 后端安全与多线程?

是否有用于 cryptsetup 的加密后端,它要么始终是线程安全的,要么可以以线程安全的方式轻松使用(甚至修改,最好以最少的努力),以简单地测试密钥是否正确?

背景和我尝试过的:

我首先测试是否可以修改 cryptsetup 的源代码以使用 pthread 简单地测试多个密钥。这崩溃了,我相信我最初使用的是 gcrypt。最终,我尝试了 cryptsetup 稳定源中可用的所有后端,发现 openssl 和 nettle 似乎可以避免崩溃。

但是,我的测试不是很彻底,即使它(特别是荨麻)没有崩溃,但在使用线程时它似乎无法正常工作。当使用单个线程时,它总是可以工作,但是增加线程数使得它越来越有可能默默地永远找不到正确的密钥。

这是用于暴力破解 LUKS 设备。我知道 pbkdf 会减慢速度。我也知道即使 KDF 不存在,AES 的密钥空间也不会被耗尽。这只是为了以网络分布式和多线程方式制作它的乐趣。

我在 cryptsetup (libdevmapper.c) 的源代码中注意到:

但是,我可能只是没有正确使用它。

每个工作线程都这样做。我只在工作线程启动之前调用一次 crypt_init() 和 crypt_load() 并将它们自己的 struct crypt_device 的单独副本传递给它们。vk 为每次尝试在本地创建。密钥只是从具有互斥锁访问控制的单词列表中获取。我发现如果每个线程每次都调用这些函数(crypt_init和crypt_load),它似乎更容易崩溃。

尝试开始删除和重写使用 dmcrypt 的代码是完全不正确的吗?在 LUKS_endec_template() 中,它将一个循环设备附加到加密设备,并创建一个 dm 设备,最终将其提供给 open(),然后将 fd 提供给 read_blockwise()。我的想法是简单地跳过所有这些,因为除了验证密钥之外我不需要使用该设备。但是,简单地直接打开加密设备(并将其交给 read_blockwise())是行不通的。

0 投票
1 回答
1876 浏览

linux - (Yocto / OpenEmbedded) 启用 systemd 的 libcryptsetup

我正在尝试启用 systemd 的 libcryptsetup 模块,以便在启动时通过 crypttab 解密驱动器。似乎 crypttab 不存在,因为 systemd (216) 构建中缺少 systemd-cryptsetup-generator。

我尝试在 PACKAGECONFIG? 中指定“cryptsetup”选项?语句并在构建中指定 --enable-libcryptsetup 作为参数,但该选项被 bitbake 使用的配置脚本禁用(它在我的启用语句之后自动附加 --disable-cryptsetup)

我怀疑这是因为 configure 检测到一些缺少的依赖项,因此我尝试指定 systemd 配方依赖于 cryptsetup 配方,但我以一个配方循环结束(cryptsetup 依赖于依赖于 systemd 的 lvm2,因此在 systemd 之前将无法构建 cryptsetup建)。

有没有人有任何建议或遇到类似的问题?谢谢!

0 投票
1 回答
332 浏览

c - 使用 dm-crypt 映射加密设备上的 fsync?

我有一个关于 dm-crypt 的问题。

这是我的情况。我在 Linux 中使用 cryptsetup 命令映射了一个加密分区(在虚拟设备中加密)。我正在使用 open() 函数在 c 程序中打开映射的虚拟设备。

我可以确定当我使用 fsync() 函数时,所有信息都将写入加密分区,还是 dm-crypt 驱动程序中有一些缓冲区?

0 投票
1 回答
1290 浏览

linux - 内核更新导致键盘布局更改并且无法解密 luks 加密

我正在使用 Fedora 23、LUKS 加密磁盘和多个键盘输入源来处理我日常使用和切换的所有语言。当有可用的内核更新并且我忘记切换到 enUS 作为主键盘布局时,我无法解密 LUKS 分区,因为在我更新内核时设置了错误的键盘布局。

所以我通过启动以前的内核并打开终端解决了这个问题......

然后找到最后更新/下载的内核...

所以从列表中明显选择了最高版本的 nr,它导致了问题并删除了列出的内核包。

然后确保选择我的主要语言 enUS 并再次更新内核

内核更新完成后,我可以解密我的 LUKS 分区,一切都很好,但我的问题是。如果发生此问题,是否可以通过其他方式(更快)解决,或者即使我使用许多键盘布局也有办法防止这种情况发生?以及内核更新使用哪个输入源。一个当前处于活动状态或一个设置为主要(列表中的第一个) PS:我正在使用 gnome

0 投票
0 回答
1599 浏览

docker - 带有设备映射器和 luks 的 docker

我正在尝试将 docker 容器存储在 luks 设备中,但使用以下命令无法正常工作。

我也试图让一个 docker 容器使用(并且可能打开)一个 luks 文件作为卷数据,但我不知道如何将它绑定到容器

我做了以下事情:

创建了一个密钥

ext4 格式

我的 docker.service 看起来像这样:

/ etc/sysconfig/docker就像:

systemctl 的输出是:

0 投票
1 回答
1982 浏览

linux - 如何关闭具有子分区的 luks 容器

例如,在 /dev/sda 上创建 1 个分区,作为 /dev/sda1,它变成了一个 LUKS 容器,它被进一步划分为 2 个子分区:

尝试这样做,返回:device-mapper: remove ioctl on test_encrypted failed: Device or resource busy,然后Device test_encrypted is still in use

子分区可以工作,但是一旦 partprobe 向内核报告了子分区,就不能再关闭它了。

0 投票
2 回答
631 浏览

linux - 自动挂载加密分区

我的 Ubuntu 上有一个加密分区(用 cryptsetup 加密)。

目前,我用

并提示输入释义。

那么有没有办法将这一行放在脚本中并自动挂载分区(以便进行每日备份),如下所示:

或更好:

0 投票
3 回答
1123 浏览

encryption - 使用 Mandos 自动解密多个 LUKS 设备

我玩过 Mandos 来自动打开一个加密的根设备。我想设置一个加密的 btrfs raid 1(sda1 和 sdb1:LUKS)。第一个设备被正确解密,但第二个设备将被打开。有没有办法做到这一点?