我已经寻找这个问题很长一段时间了,但找不到满意的答案。
我的场景:我使用 encfs 加密我的主文件夹中的一些目录。为了更容易访问,我使用 gnome-encfs 设置了自动挂载,它将加密密码存储在我的 gnome 密钥环中。所以理论上没有我的用户密码数据是安全的。
但是,如果有人偷了我的盒子并在恢复模式下以 root 身份登录,会发生什么?他只需更改我的帐户密码并登录,我所有的加密文件夹就会被安装和解密。
我的问题是:我是否需要更改 root 密码以防止这种情况发生?论坛上的人们一直说任何能够物理访问我的机器的人都可以做任何他们想做的事情,但这就是我首先设置加密的目的。我不在乎他们是否读取我未加密的数据,但我希望加密的数据是安全的。
编辑:我也不明白为什么不鼓励更改根密码。即使我忘记了,我仍然可以从我的常规帐户中恢复任何内容并设置一个新盒子。
答案1
确实,无法阻止对您的硬件具有物理访问权限的人访问系统。在大多数情况下,我认为您所要做的就是更换/etc/passwd
,但现在它已经破裂了。我想如果内核之外的整个文件系统都被加密的话,这会有点棘手。我相信这是可能的,但我还没有这样做;也许其他人会插话。
然而,获得系统的 root 访问权限并不一定能让您解密任何内容。
我不是密钥环的用户,但是如果如您所说,您的加密文件夹已安装并解密通过登录,从这个角度来看,这根本不是很安全,因为获得 root 访问权限将绕过该机制。
我确实对东西进行加密;不幸的是,我以编程方式完成此操作,因此我没有任何可推荐的最终用户软件,但我可以概述一些概念(如果您查看的话,我确信有用于此目的的最终用户软件;希望此信息将帮助您了解什么它的用途以及如何使用它)。高度加密的数据需要一个密钥,这有点像一个非常大的密码——例如,如果您之前生成过 SSH 密钥(完全相同的想法),它们通常是 2048 位,即 292 个 ASCII 字符。这意味着有:
2^(2048) = 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656
可能的这样的键。现在,如果你有一屋子的电脑,并且可以以某种方式尝试以每秒 1000000 次的速度暴力破解使用这样的密钥加密的内容,那么一年有 60*60*24*365=31536000 秒,所以最长应该是破解加密的方法是:
年。当然,我相信有比蛮力更好的策略,但即使你将时间缩短十亿倍,也不要屏住呼吸。
这是故意的——这些是硬核加密算法,其中一些是由美国军方委托(我猜是使用)的(这就是为什么有时会有关于它们的奇怪的“出口法规”)。 它们实际上牢不可破, 时期。在战争中,您的对手可能会物理访问您的硬件,但如果您的设备已加密并且他们没有钥匙,他们被困住了。
因此,保护笔记本电脑上的加密数据以防其被盗的一种明显且简单的方法是不要将加密密钥留在笔记本电脑上。相反,您可以将其放在 USB 记忆棒上。
但是,如果有人拿到了笔记本电脑和带有钥匙的任何东西(因为它必须在某个地方,你无法记住它)怎么办?您用密码加密密钥。不过,现在链条中存在一个薄弱环节,因为 16 个字符的 ascii 密码只有 2^(7*16) = 5192296858534827628530496329220096 种可能性,这意味着每秒 1000000 次尝试的最大暴力破解时间仅为 164646653302093722365 年。我认为每秒的尝试次数必须减慢,因为为了测试破解的密钥,他们必须将其应用于加密的数据。
我想说的是:如果解密与用户绑定登录是的,任何拿到硬件的人都可以轻松破解它。我不知道这是否真的是 gnome 正在做的事情,但可能是因为它无法获取你的密码(这些是一种加密方式,请参阅注释)并使用它(如果可以的话,那就更聪明了,因为现在如果有人更改了密码,您的登录将无法解密该文件夹,就是这样)。但如果你有真正需要保护的东西,还有其他选择。 [灯泡: gnome 所做的可能是在您注销时使用加扰形式(任何都可以)进行加密,然后在您登录时解密。测试此方法的一种方法可能是完全注销用户,然后登录以 root 身份并使用 更改用户密码passwd username
。或者你可以向侏儒人询问这个问题。]
笔记:单向加密是指一种不可逆的方法,但总是产生相同的结果。因此,您输入密码并对其进行转换,并将该转换的结果与记录的内容进行比较(即记录的内容)不是你的密码!)。如果它们匹配,那就太好了。但如果他们不这样做,就无法将记录的内容/etc/passwd
转回您的密码。这就是“单向”加密。显然,这对数据没有好处,因为无论你以这种方式加密什么,都将无法挽回地丢失,但它是存储密码的标准方式(尽管我认为一些应该更了解的大公司,例如苹果,实际上已经被抓住了,后黑客,因为出于某种荒谬的原因没有这样做,并存储了客户密码以纯文本形式)。