我一直在寻找一种有效且最新的硬盘加密方式。经过一番研究,我遇到了LUKS并决定试一试。因此,我查找了一些有关如何使用它正确加密 HDD 的示例,如下所示:
cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3
其中的--cipher和--hash部分对我来说最有趣,所以我试图让自己了解专门用于 LUKS 的不同密码和哈希。除了打开一个文件外,我找不到任何有用的信息,该文件以当前使用的 Linux 的机器友好格式显示可用的加密形式。但正如我被告知的那样,即使这个文件也可能缺少所有加密方式的全部内容,而且对于不每天处理它的人来说很难阅读,无论如何。
我的问题:是否有用于 LUKS 加密的完整密码/哈希列表?
一个简单地向我展示我可以选择什么......并且可能会简要描述这些不同方式之间的确切区别。
我在 RAID-1 系统加密设备(LUKS 上的 LVM)上安装了一个 Debian Linux 系统(amd64),并且将有一个 RAID-6 的 >=4 个磁盘,我将在其中放置我的数据(LUKS 和 LVM)。
我认为基本的想法是解锁系统加密分区(在本地启动或通过 ssh 启动)并将密钥文件存储在 /etc/crypttab 中以用于 RAID-6 加密分区。这会带来安全风险吗?我的意思是......如果任何人都可以在本地/远程进入我的系统,那么这是非常无用的,而且我认为在容易受到“rooting”(例如 SSH)影响的服务器上运行的服务很多。是否有替代方法(除了通过 SSH 解锁分区之外,这可能是一个问题,因为例如备份操作甚至在数据分区安装之前就开始了)。
在另一台机器上,我将使用带有 LUKS+greyhole(无 RAID-6)的多个磁盘进行备份,通过输入 10 次相同的密码来解锁 10 个磁盘将是一个真正的痛苦......
我最近发现了一个漏洞,我(或假设任何人)可以在其中重新加密我加密的 zip 文件,而无需知道密码:
#zip --encrypt encrypted.zip -r dir1/
以上将提示用户输入新密码。是否有我遗漏的东西,或者这是一个已知问题?
有没有办法通过命令行匿名化 http 请求?换句话说,是否可以在wget不显示请求者 IP 的情况下访问页面?
什么命令可用于确定 LUKS 分区上使用的加密(所有相关信息、初始化向量、生成方案、操作模式和分组密码原语)?
我读man vim,:h -x并:h encryption没有这实际上是说,它与加密算法是什么。
我已将 GRUB2 安装到加密的引导分区,详情请见此处。我选择的散列算法luksFormat是sha512,默认值iter-time(2 秒)。
如果从命令行(从archiso或从正在运行的系统)解锁,这个加密分区需要 2 秒多一点的时间,但 GRUB 平均需要 10.5 秒来解锁它。对于我的场景,这比可接受的要慢。
我发现其他人在这里和这里有同样的问题。在第二个链接中,用户frostschutz发布了一些关于可能导致这种情况的提示,我认为其中 2 条非常有效:
1) 早期 GRUB 解锁期间 CPU 可能处于省电模式
2) GRUB 可能正在使用比系统慢得多的散列实现。他做了一个基准测试,可以在这里找到。
由于加密启动分区似乎变得越来越普遍,而且这个问题还没有令人满意的答案,我想我会问这个问题。除了减少迭代次数(这会大大降低离线攻击场景中的安全性)之外,还可以做些什么来应对 GRUB 引导加载程序的(慢得多)解密时间?
我想至少查明确切原因。有没有办法在引导加载程序屏幕中检查(并可能改变)CPU 时钟?我知道 GRUB 有一个外壳;我打开它并尝试过cat /proc/cpuinfo但它失败了“/proc not found”或类似的东西。我也试过cpuid,虽然它没有失败,但它也不返回任何内容。
作为附加信息,我得到了这些时间:
/boot) Enter。/)。同样,这是按 后计时的Enter。从 bash 或标准的 linux 命令行工具,如何将文件与密钥进行异或?就像是:
cat my1GBfile | xor my1MB.key > my1GBfile.encrypted
Run Code Online (Sandbox Code Playgroud)
题外话:我知道这个例子的加密很弱,但我只是想知道这是否可以从 bash 或标准的 linux 命令行工具中获得(或者甚至更好:来自 bash 和 cygwin,因为我同时使用 Linux 和 Windows )。
据我所知,在 openpgp 中,您有一个可以锁定或隐藏在某处的私钥和一个可以与任何人自由共享的公钥。
现在我看到很多人附上 .asc 文件。如果我点击它,它会显示另一个人的公钥。
有一个 .asc 文件只是使用放置您的公钥然后将其重命名为类似 signature.asc 的东西,还是还涉及其他内容?.asc 文件似乎是一个存档文件(如 .rar 或 zip 文件)
$ cat shirish-public-key.txt
-----BEGIN PGP SIGNATURE-----
publickeystring$
-----END PGP SIGNATURE-----
Run Code Online (Sandbox Code Playgroud)
如何将其制作/转换为 .asc 文件?
我只能做——
$ mv shirish-public-key.txt shirish.asc
Run Code Online (Sandbox Code Playgroud)
但我不知道这样做是否正确。
更新 - 我试过了,但没有用 :(
$ gpg --armor export shirish-public-key.txt > pubkey.asc
gpg: WARNING: no command supplied. Trying to guess what you mean ...
usage: gpg [options] [filename]
Run Code Online (Sandbox Code Playgroud)
更新 2 - 仍然不起作用 -
$ gpg --armor --export shirish-public-key.txt > pubkey.asc
gpg: WARNING: nothing exported
Run Code Online (Sandbox Code Playgroud)
似乎无法弄清楚公钥在文本文件中。
更新 …
当我安装操作系统时,我没有加密。现在有没有办法在不格式化且不丢失任何数据的情况下对其进行加密?我阅读了一些如何加密的指南,每个指南都说我需要备份所有数据,因为我会丢失它。现在有没有办法加密它而不会丢失数据?
encryption ×10
luks ×3
linux ×2
security ×2
boot-loader ×1
command-line ×1
cryptsetup ×1
cygwin ×1
debian ×1
gpg ×1
grub2 ×1
internet ×1
partition ×1
performance ×1
pipe ×1
raid ×1
vim ×1
zip ×1