【问题标题】:Is it safe to send SHA 1 fingerprint of signing certificate as part api key verification in GCP api gateway?在 GCP api 网关中发送签名证书的 SHA 1 指纹作为 api 密钥验证的一部分是否安全?
【发布时间】:2021-08-27 18:06:04
【问题描述】:

为了保护和监控我们的 GCP 云功能,我们集成了 GCP api 网关。

Android 应用必须将 SHA1 指纹、包名称和 api 密钥作为请求的一部分传递才能获得身份验证。

这样做安全吗?

https://cloud.google.com/api-keys/docs/add-restrictions-api-keys

https://cloud.google.com/docs/authentication/api-keys#api_key_restrictions

【问题讨论】:

    标签: android google-cloud-functions sha1 api-key google-cloud-api-gateway


    【解决方案1】:

    要回答这个问题,你可以问自己:是否有人可以反编译我的 APK 并从我的代码中提取 API 密钥和 sha-1?

    很遗憾,是的……

    因此,这足以假设是您的应用发出请求,但您需要添加专用的身份验证机制来对用户进行身份验证(firebase auth)

    最后,一切都取决于它是否安全为了什么

    【讨论】:

    • Google 地图订阅似乎以同样的方式工作,从应用程序和 MAPS SDK 发送 api 密钥请求将在发送请求时负责获取 SHA1 和包名称。如果按照您的建议实施,可以单独使用 firebase auth 。不需要 api 网关。这是在添加 api 密钥限制和使用其他机制(如 firebase auth)进行身份验证方面的开销。
    • 请记住,API 密钥旨在了解“谁将为请求付费”,而不是确保身份验证和授权。
    • 添加 api 密钥限制不是安全的重点,除了形式谁来买单?至少它是在 api gateway 应用程序中提到的使用 api 密钥限制保护 api 网关的方式。
    • 您将 API 密钥的使用限制为一个上下文、一个使用范围(您需要提供您的证书的 SHA-1,您还可以设置一个主机域列表,或者一个列表授权 IP)。但是,如果有人能够在另一个上下文中使用相同的参数生成请求(这是可能的,因为最后它只是 char 字符串!),你的安全性就会下降。
    猜你喜欢
    • 2013-03-21
    • 2014-06-02
    • 1970-01-01
    • 2021-04-16
    • 2020-10-27
    • 2019-01-03
    • 1970-01-01
    相关资源
    最近更新 更多