想象一下机密信息(证书、密钥等)存储在LUKS 加密例如,备份磁盘包含 ext4 文件系统。据我所知,这样的设备包含一个密钥文件,该文件又使用某个密码短语加密。假设秘密密码短语是使用以下实用程序创建的:
pwgen -s 16
获取一些半随机字符串。例如“Z4sp9gmW47R8K0sy“在研究了 cryptsetup FAQ 之后,我相信这应该提供 94.4 位的熵,这足以让你暂时睡个好觉。
想象一下某个这样的磁盘被盗或被复制,并且某个邪恶的攻击者愿意花费合理的资源来破解这个介质。
这有多困难真的
数据真的安全的只要密码不通过其他方式泄露(泄露)?
答案1
如果我们按照您的问题假设密码短语无法通过键盘记录器(或其他恶意软件)、社交工程、冷启动攻击或其他方式获取(并且足够长),我会说数据是安全的。但需要注意的是,对手可能会尝试通过上述方式获取密钥,因此您需要出色的操作安全性才能阻止他们使用暴力攻击。
默认情况下,数据受到以下算法的保护:
cryptsetup 1.6.0 之前的版本内置默认设置是 aes-cbc-essiv:sha256,密钥长度为 256 位。1.6.0 及之后版本(2013 年 1 月 14 日发布)的默认设置是 aes-xts-plain64:sha256,密钥长度为 512 位。
目前,我认为没有任何已知漏洞可以帮助绕过 LUKS 加密驱动器上的数据保护。(见https://askubuntu.com/questions/102271/are-there-any-known-vulnerabilities-to-ubuntus-full-disk-encryption-feature) 只要情况仍然属实(并且无法通过其他方式获取密钥),攻击者就必须使用暴力攻击。
暴力攻击
暴力攻击并不特别难执行 - 您需要反复尝试密码短语,直到成功为止。有专门为此设计的工具。因此,困难不在于尝试本身,而在于及时完成。
攻击者会尝试通过首先尝试更常见/流行的密码短语来优化暴力攻击,但有时还是要靠运气。如果您使用的密码短语恰好是十亿个左右最流行的密码短语之一,那么它很快就会被破解。
即使密码短语不流行,也有可能它是在尝试“流行”密码短语后做出的第一个猜测。发生这种情况的几率(保留“流行”密码*)是
1 in (lowercase+uppercase+numbers)^(number of characters)
1 in (26+26+10)^16
1 in 47672401706823500000000000000
所以这不太可能,但确实会发生。为了进行概率比较,请随意检查一下您被坠落的卫星或闪电击中的概率。
*注:如您所见,从上面删除十亿个最常用的密码所产生的差异小于我的计算器的有效数字的数量。因此,将它们包括在内不会造成太大的误差。
运气或使用流行的密码可能会让暴力攻击及时完成。减少被猜测的密码数量也非常有帮助(例如,了解密码的长度、使用的字符类型、密码的生成方式等)。但是,如果攻击者不是特别幸运,他们可能必须尝试 50% 的密码短语才能成功。建议如下:
https://www.eetimes.com/document.asp?doc_id=1279619
超级计算机每秒可以进行 10^13 次猜测。因此,超级计算机将
23836200853411800000000000000/10000000000000 = 2383620085341180 seconds
(75532362 years)
尝试 50% 的可能性。我认为 7550 万年的超级计算机时间由于电力使用等原因相当昂贵,因此可能不符合您对“合理资源”的定义。更不用说我们假设密码短语没有重音字符、标点符号或特殊字符。
因此,只要代码中没有发现弱点并且密码足够长、不流行且无法通过其他方式获取,我认为受 LUKS 保护的数据是安全的。