问题标签 [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.
encryption - 如何在cygwin/windows上打开LUKS加密图像文件
是否可以在 cygwin / windows 上打开(解密)使用 LUKS 加密的文件?
linux - 如何从 USB 加载 LUKS 密码,回退到键盘?
我想设置一个具有全磁盘加密的无头 Linux (Debian Wheezy) PC,能够使用 USB 驱动器或通过键盘输入密码来解锁磁盘。我的起点是使用 Debian 安装程序中的基本全盘加密选项进行全新安装,它将 /boot 以外的所有内容作为 LUKS 加密的逻辑卷组进行管理,并为我提供键盘选项。我将在答案中描述我当前的解决方案,希望它有用并且其他人可以改进它。
以下是我遇到的一些问题:
设置密码并将其放在 USB 驱动器上。
及时加载 USB 模块。
等待 USB 驱动器被 Linux 识别,然后再尝试读取它。
识别正确的 USB 驱动器(不是碰巧插入的其他驱动器)。
编写“keyscript”以从 USB 驱动器中提取密码。
确保在所有 USB 故障情况下都回退到键盘。
我会接受一个有重大改进的答案,并赞成提供贡献的答案。
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())是行不通的。
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建)。
有没有人有任何建议或遇到类似的问题?谢谢!
c - 使用 dm-crypt 映射加密设备上的 fsync?
我有一个关于 dm-crypt 的问题。
这是我的情况。我在 Linux 中使用 cryptsetup 命令映射了一个加密分区(在虚拟设备中加密)。我正在使用 open() 函数在 c 程序中打开映射的虚拟设备。
我可以确定当我使用 fsync() 函数时,所有信息都将写入加密分区,还是 dm-crypt 驱动程序中有一些缓冲区?
linux - 内核更新导致键盘布局更改并且无法解密 luks 加密
我正在使用 Fedora 23、LUKS 加密磁盘和多个键盘输入源来处理我日常使用和切换的所有语言。当有可用的内核更新并且我忘记切换到 enUS 作为主键盘布局时,我无法解密 LUKS 分区,因为在我更新内核时设置了错误的键盘布局。
所以我通过启动以前的内核并打开终端解决了这个问题......
然后找到最后更新/下载的内核...
所以从列表中明显选择了最高版本的 nr,它导致了问题并删除了列出的内核包。
然后确保选择我的主要语言 enUS 并再次更新内核
内核更新完成后,我可以解密我的 LUKS 分区,一切都很好,但我的问题是。如果发生此问题,是否可以通过其他方式(更快)解决,或者即使我使用许多键盘布局也有办法防止这种情况发生?以及内核更新使用哪个输入源。一个当前处于活动状态或一个设置为主要(列表中的第一个) PS:我正在使用 gnome
docker - 带有设备映射器和 luks 的 docker
我正在尝试将 docker 容器存储在 luks 设备中,但使用以下命令无法正常工作。
我也试图让一个 docker 容器使用(并且可能打开)一个 luks 文件作为卷数据,但我不知道如何将它绑定到容器
我做了以下事情:
创建了一个密钥
ext4 格式
我的 docker.service 看起来像这样:
/ etc/sysconfig/docker就像:
systemctl 的输出是:
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 向内核报告了子分区,就不能再关闭它了。
linux - 自动挂载加密分区
我的 Ubuntu 上有一个加密分区(用 cryptsetup 加密)。
目前,我用
并提示输入释义。
那么有没有办法将这一行放在脚本中并自动挂载分区(以便进行每日备份),如下所示:
或更好:
encryption - 使用 Mandos 自动解密多个 LUKS 设备
我玩过 Mandos 来自动打开一个加密的根设备。我想设置一个加密的 btrfs raid 1(sda1 和 sdb1:LUKS)。第一个设备被正确解密,但第二个设备将被打开。有没有办法做到这一点?