最近的 Heartbleed 漏洞是否会影响我生成并用于向 Github、Heroku 和其他类似网站推送/拉取代码的 ssh 密钥?
我是否需要更换一直使用的钥匙?
答案1
不,Heartbleed 实际上并不影响 SSH 密钥,因此您可能不需要替换一直在使用的 SSH 密钥。
首先,SSL 和 SSH 是两种不同的安全协议,用途也不同。同样,OpenSSL 和 OpenSSH 虽然名称相似,但也是两个完全不同的软件包。
其次,Heartbleed 漏洞利用会导致易受攻击的 OpenSSL TLS/DTLS 对等端返回随机的 64kB 内存,但几乎可以肯定的是,这仅限于该 OpenSSL 使用进程可访问的内存。如果该 OpenSSL 使用进程无法访问您的 SSH 私钥,那么它就无法通过 Heartbleed 泄露该私钥。
此外,你通常只将你的 SSH民众公钥是你在使用 SSH 连接的服务器上的密钥,顾名思义,公钥是你可以公开的密钥。谁知道它并不重要。事实上,你想让公众知道你的正确公钥。
感谢 @Bob 指出该漏洞会影响使用易受攻击的 OpenSSL 版本作为其客户端 TLS/DTLS 库的客户端应用程序。因此,例如,如果您的 Web 浏览器或基于 SSL 的 VPN 客户端使用易受攻击的 OpenSSL 版本,并连接到恶意服务器,则该恶意服务器可以使用 Heartbleed 查看该客户端软件内存的随机片段。如果该客户端应用程序出于某种原因在内存中拥有您的 SSH 私钥副本,那么它可能通过 Heartbleed 泄露。
我首先想到的是,除了 SSH 之外,我没有想到任何软件可以在内存中保存未加密的 SSH 私钥副本。好吧,这假设您将 SSH 私钥加密保存在磁盘上。如果您没有将 SSH 私钥加密保存在磁盘上,那么我想您可能已经使用一些使用 OpenSSL TLS 的文件传输或备份程序通过网络复制或备份您的主目录(包括您的~/.ssh/id_rsa
或其他 SSH 私钥),那么它可能会在内存中保存未加密的 SSH 私钥副本。再说一次,如果您将未加密的 SSH 私钥备份到恶意服务器,那么您可能比 Heartbleed 更担心。:-)
答案2
“其次,Heartbleed 漏洞会导致易受攻击的 OpenSSL TLS/DTLS 对等方返回 64kB 的随机内存,但它几乎肯定仅限于使用 OpenSSL 的进程可访问的内存。”
如果机器被入侵,你怎么能信任上面的任何东西,包括 ssh?摘自 heartbleed.com
“实践中有哪些漏洞?
我们从攻击者的角度测试了我们自己的一些服务。我们从外部攻击我们自己,没有留下任何痕迹。没有使用任何特权信息或凭证,我们能够从我们自己那里窃取用于 X.509 证书、用户名和密码、即时消息、电子邮件和业务关键文档和通信的密钥。“
有人可能将没有密码的私钥放在他们认为不是恶意的服务器上...但结果却是恶意的。因为 SSL 错误允许用户密码泄露,一个拥有“sudo”权限的用户...这可能不是问题....但是...
人们有时会做出疯狂的事情
http://blog.visionsource.org/2010/08/28/mining-passwords-from-public-github-repositories/