由于服务器配置,我们的验证密钥是公开可读的。
密钥已更新为新密钥,但恶意用户获得密钥的实际影响是什么?
文件不清楚影响
密钥授权您的应用程序后端和 reCAPTCHA 服务器之间的通信,以验证用户的响应。出于安全目的,密钥需要保持安全。
由于服务器配置,我们的验证密钥是公开可读的。
密钥已更新为新密钥,但恶意用户获得密钥的实际影响是什么?
文件不清楚影响
密钥授权您的应用程序后端和 reCAPTCHA 服务器之间的通信,以验证用户的响应。出于安全目的,密钥需要保持安全。
不是我猜到的答案,但是:
对于泄露的密钥,这似乎是一个大胆的声明,但在这种情况下,我相信关于不泄露密钥的警告更多的是关于最佳实践而不是实际关注。由于这是一个相当不寻常的答案,我想分解通常会引起关注的事情并解释为什么它们在这里不适用:
1.绕过验证码验证
这显然是一个主要问题——如果泄露的验证码密钥允许攻击者绕过验证码保护,那么你就有一个严重的问题。然而,recaptcha 流程的工作方式使得这不可能。最重要的是,验证是通过将用户的响应发送到谷歌 API(使用密钥)并检查确认来完成的。而且,响应只能检查一次,以防止重放攻击。这根本没有空间让拥有密钥的攻击者将自己置于中间并伪造确认。真的就这么简单。
2. 广泛的访问凭证
在许多情况下,单个密钥可用于对多个服务进行身份验证。您可以想象一个密钥,它不仅用于recaptcha,还用于谷歌云系统中的其他管理任务。泄露这样的密钥是非常危险的,因为它可能会产生几乎无限的影响。
但事实证明,recaptcha 的密钥似乎仅限于在 recaptcha 系统中使用。显然,这与其他谷歌服务有点隔离,而且似乎不可能创建用于除recaptcha 之外的任何东西的密钥。
3. 付费服务的使用
如果您根据使用情况为服务付费,那么获得对密钥的访问权有效地使某人能够使用该服务并让您为其付费(尽管在这种情况下,您还必须拥有一个允许配置的公钥)。当然,这项服务是免费的,所以这对任何人都没有帮助。
4.通过速率限制的DoS
这可能是一个问题,尽管我不这么认为。许多免费的谷歌服务都有速率限制,以防止过度使用,或者根据您的使用水平将您转移到付费层。如果验证端点的速率受到限制,那么使用您的密钥的攻击者可能会以足够快的速度向端点发送垃圾邮件以有效地 DoS 密钥,从而阻止您的服务验证验证码。其影响取决于您的服务如何处理被拒绝的验证尝试。
但是,我没有在文档中看到任何关于速率限制的提及。这并不一定意味着没有限制,但如果没有限制,那么这种攻击肯定是不可能的。
概括
我可能遗漏了一些东西,但我相信对于 recaptcha 密钥,由于泄漏没有实际影响。我仍然会遵循这个建议并保密。实践最佳实践总是最好的。
密钥的目的可能是针对 Google 的后端识别/验证您的 reCAPTCHA 实例。从理论上讲,密钥不应该对您的 Google 帐户有任何其他访问权限。
验证码最糟糕的情况是什么?可以绕过保护,允许攻击者发送垃圾邮件或滥用您的服务。现在,以这种方式劫持 reCAPTCHA 是否真的可行,或者是否有额外的保护措施,我不知道。
其影响将取决于攻击者可以滥用哪些服务。