AppCheck 如何防止有人通过检查自己的网络来获取 jwt 令牌?

问题描述 投票:0回答:2

如果我正确理解 AppCheck 的工作流程,它本质上是基于成功的证明机制创建一个具有一定有效期的 jwt 令牌。之后,包含此 jwt 的所有请求都被视为有效且来自允许的应用程序。

但是假设有人要下载一个合法的应用程序并检查他们的网络以查看和复制此类 jwt 令牌(就像在浏览器中的开发工具中检查网络一样)。

然后可以将此 jwt 令牌插入任何其他应用程序,即本地主机服务器,并与 projectid 等结合...以执行看起来合法但现在来自未经身份验证的应用程序的请求?

firebase security firebase-app-check
2个回答
1
投票

您所指的称为“重放攻击”(拦截数据并重新传输)。 Firebase App Check 令牌的有效期可以配置为至少 30 分钟、最长 7 天,并且相同的令牌可以重复使用但是,如果您在自定义后端服务器上有适当的安全规则或验证,这应该不是一个关键问题。
如果您仍然想确保令牌只能使用一次,则必须使用一些支持的自定义逻辑来阻止令牌,或者直接使用 reCAPTCHA 等证明提供程序。来自 reCAPTCHA 的文档

每个 reCAPTCHA 用户响应令牌的有效期为两分钟,并且

只能验证一次以防止重放攻击
。如果您需要新的令牌,可以重新运行 reCAPTCHA 验证。

我不确定其他提供商,但您可以编写自己的逻辑来防止重复使用令牌。

一般来说,AppCheck 无法帮助抵御重放攻击。

0
投票
您可以仔细研究

AppiCrypt

等商业解决方案,或实施基于应用程序/设备完整性或信誉验证的证明服务等解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.