我有一个应用引擎应用程序(标准环境),运行在具有 SSL 证书的自定义域上。我试图确保它能够抵御 BEAST 攻击。
SSLyze 扫描显示我的应用程序接受 DES-CBC3-SHA 112 位作为 TLS 密码。
有没有办法更新 TLS 端点配置以仅允许具有更强密码的 TLSv1.2(例如更长的密钥、Diffie-Hellman 等)?
或者,还有其他方法可以保护我的应用引擎应用程序免受 BEAST 攻击吗?
答案1
BEAST 攻击的主要问题在于初始化向量使用 TLS 1.0 及以下版本很容易预测。为了有效缓解这种情况,客户端和服务器必须同意使用 TLS 1.1 或 1.2。Google 的架构已经支持 TLS 1.2 一段时间了。剩下的问题是客户端更新他们的系统以支持 1.2。正如 @Michael Hampton 所说,在这种情况下缓解 BEAST 的最有效方法是更新客户端,因为 Google 已经提供了 TLS 1.2。
App Engine 上的 TLS
另一种选择是让服务器将接受的 TLS 连接限制为 >1.0。这可能有效,但缺点是可能会排除很大一部分客户端用户。在当前的 App Engine 架构下,无法将特定应用程序的 TLS 支持限制为 >1.0。如果您希望在安全性至关重要的情况下为 App Engine 实现此功能,请在Google App Engine 公开问题跟踪器并在此处发布其链接,以便其他人也可以支持它。
Compute Engine 作为代理
与此同时,如果安全性至关重要,您可以使用 Compute Engine 实例(具有公共 IP)创建自己的应用程序前端,并让它们强制协商 TLS >1.0。这是可能的,尽管它涉及重新实现 App Engine 现有架构的很大一部分,即 TLS 端点和负载平衡器。这也有可能出现一些性能瓶颈,具体取决于应用程序和实现的流量。
如果顶级安全并非绝对必要,那么最好的办法就是在检测到用户正在使用不支持 TLS >1.0 的系统时,告知他们安全漏洞。除了应用程序之外,与独占性相比,全球转向更安全的协议更能提高整个网络的安全性。