【问题标题】:Protect Firebase callable functions from man in the middle保护 Firebase 可调用函数免受中间人的影响
【发布时间】:2021-11-06 11:25:25
【问题描述】:

我在 iOS 上使用 firebase 制作了我的移动应用,并且我使用可调用函数与数据库进行通信。

当我尝试使用像 Charles 这样的简单应用程序执行“中间人”攻击/移动时,我可以看到我所有的呼叫以及我发送的纯文本数据。当我使用像 iTunes 这样的知名应用程序时,我无法解密任何东西(我认为这就是我们所说的 ssl pinning)

我有 3 个问题:

  • firebase 云函数 (https.callable) 是否处理 ssl pinning?
  • 如果没有,我该如何保护?将节点用于我的功能,是否可以从 firebase 请求 ssl 证书并将其链接到功能?
  • 移动 SDK 请求是否已固定?我在嗅探应用上看不到任何有关读取调用的信息。

谢谢大家。

【问题讨论】:

    标签: firebase google-cloud-functions sslpinning


    【解决方案1】:

    根据 Doug 的这篇帖子 here,所有进出 Google 的数据都经过加密(包括客户端 SDK)。根本没有办法解决这个问题。

    现在,您可以更进一步,通过配置 App Check 来防止滥用,根据文档,它提供了额外的安全层,防止计费欺诈和网络钓鱼。

    但是,您仍然需要检查身份验证令牌(通过 onCall 函数自动传递)以确保用户有权执行他们正在调用的函数。

    【讨论】:

    • 谢谢。如果所有内容都已加密,我如何在请求的标头中看到身份验证令牌。我有纯文本的端点、令牌和数据,只是简单地嗅探网络。应用程序检查已经一个月了,检查令牌是没有用的,因为我可以清楚地看到它并随时修改请求。
    • @user2206906 这是您提出的一个很好的问题。我可以试着解释一下,但是这篇文章比我以前做得更好security.stackexchange.com/questions/19616/…TLDR;像 Charles 这样的代理之所以有效,是因为您已经安装了它并授予它拦截请求的权限
    • 是的,我想我明白了,事情是如何解释我的可调用对象是纯文本的,例如从 iOS SDK 获取 Firebase 远程配置的请求充满了奇怪的字符,一个是安全的,另一个不是。
    • 这是 firebase 请求的正文:ibb.co/KFfCXGN,这是我的可调用函数请求的正文:ibb.co/NNyGdkn 两者都使用 SSL 解密嗅探网络。有没有办法让我实现 firebase sdk 的功能?
    • @user2206906 根据此处firebase.google.com/support/privacy 的文档,所有 Firebase 数据在传输过程中都使用 HTTPS 加密,stackoverflow.com/questions/63550897/… Doug 声明云功能提供 SSL 证书。也许您还没有将 Charles 配置为代理远程配置主机。这只适用于您信任 Charles 并允许它在您的浏览器中安装证书,使其能够拦截您的 SSL 请求。这不能在用户不知情的情况下完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2012-12-20
    • 2014-04-01
    相关资源
    最近更新 更多