当然,与心脏出血漏洞有关,我一直在阅读有关此攻击的最坏情况是提取 SSL 私钥的新闻,因为当然,这将允许攻击者解密所有流量到和来自受感染的服务器,包括[可能,取决于前向保密]任何被捕获并存储在某处的流量。
这让我想到,假设最坏的情况,您的 Heartbleed 易受攻击的服务器回显了包含您的私钥的内存......攻击者如何能够将它与其他内存内容或未初始化的内存区分开来,或者你有什么?关键数据本身是否有页眉/页脚或说明模式?我知道一些 RSA 密钥形式 (PEM/base64) 在文件 (-----BEGIN FOO BAR KEY-----
和-----END FOO BAR KEY-----
) 中有页眉/页脚,尽管我无法想象将这些字符串加载到内存中。是否可以通过使用指向它的指针来识别某些东西而放弃它?
这似乎不是你可以蛮力的东西(尝试每个 X 位的内存内容组合与 64 KB 的内存似乎会产生天文数字般的大量排列)。
那么,它是怎么做的呢?内存中的加密密钥如何被识别为加密密钥?在一个相关问题中,对称加密密钥的答案是不同还是相同?(例如,您可能会通过对使用全盘加密的系统进行冷启动攻击来提取数据。)