我在下面的链接中看到了一个开放源码的raspberry pi项目: www.privatekeyvault.com
我提供了一种安装LUKS全磁盘加密的方法,如下所示:https://github.com/johnshearing/PrivateKeyVault#setup-luks-full-disk-encryption
我试图在中间攻击中减少一名少女的攻击,解释如下:https://github.com/johnshearing/PrivateKeyVault#preventing-the-evil-maid-or-maid-in-the-middle-attack
需要注意的是,有人可能会在引导分区上安装恶意程序密钥记录器,并在仍然运行initramfs时登录到加密分区时收集密码。
一旦登录到我的加密分区,我就可以运行以下命令来查看引导分区的sha1sum : dd =/dev/mmcblk0p1\x sha1sum
我将此与先前记录的sha1sum进行比较,以查看引导分区是否已更改。它不应该改变。
我希望在登录到加密分区之前获得引导分区的sha1sum。换句话说,在提供密码之前。这是在我还在使用initramfs的时候。我理解这是愚蠢的,因为任何安装密钥记录器的人也可以安装一个错误的sha1sum程序,所以最好是在登录到加密分区之后运行sha1sum命令,在加密的分区中不可能更改sha1sum程序。不过,我还是很好奇是否可以这样做。
困难在于,当运行命令(df)时,/dev/mmcblk0p1将不会显示,因此我的命令(dd =/dev/mmcblk0p1\ sha1sum)将无法工作。
有什么想法吗?在initramfs中如何引用引导分区?
另外,在登录到加密分区之前,还有其他关于如何检查是否有人篡改了引导分区的其他想法吗?
发布于 2018-12-12 07:50:33
我不会回答你的名义问题,因为信息太少,无法回答。没有什么特别的理由需要以不同于initramfs的方式引用引导分区。如果普通名称不起作用,这意味着initramfs正在使用不同的路径,或者在运行此命令时还没有加载驱动程序。如果您想在这方面得到帮助,您必须详细解释如何构建initramfs,以及在何处添加此命令。
我发这篇文章是为了回答,而不是作为一个评论告诉你不要麻烦。
你想做的根本是不可能的。如果攻击者可以更改您的引导分区,他们只会更改initramfs以删除此检查。
从加密的分区进行检查并不比以前好多少,但实际上攻击起来要困难得多。对手必须设置模拟环境(在技术上是可能的,但很难以一种您不会注意到的方式进行),或者在加载主操作系统之前将引导分区恢复到预期的状态(可能,但攻击者只有一次机会)。
如果你不能完全信任你的引导加载器,就没有办法防范邪恶的女佣攻击。如果有一个不可信的步骤,那么它之后的所有内容都是不可信的。防范邪恶女佣攻击的唯一方法是拥有一个完全安全的引导链,在该链中,每一步都验证下一步。如果下一步不是真实的(如果您担心降级攻击),每个步骤都必须停止引导,或者必须记录下一步的状态,然后将其发送给第三方可信验证器。如果在这个信任链中存在缺口,那么您就无法知道后续的步骤是报告真正的数据。
这在Raspberry Pi上是不可能做到的,因为ROM不验证它加载了什么。除非您愿意使用不同的硬件,否则您无法不信任您的引导分区。不幸的是,我没有推荐:对于Arm平台上的爱好者项目来说,这个市场并不适合可信的引导。
顺便说一句,即使你的命令有效,它也有一些缺陷。
dd if=/dev/mmcblk0p1 | sha1sum和sha1sum </dev/mmcblk0p1是一样的。除了if和of之外,没有其他参数,dd只将输入复制到输出。当心那个有了一定的参数,dd实际上破坏了数据!除非您真的需要使用dd,否则不要使用它,并且您确信您使用它的方式不会有损坏的风险。sha256sum。https://unix.stackexchange.com/questions/487510
复制相似问题