【问题标题】:What will my mobile app that uses 3rd party API do if the private key has been stolen?如果私钥被盗,我使用 3rd 方 API 的移动应用程序会做什么?
【发布时间】:2013-02-22 02:05:26
【问题描述】:

我的移动应用程序使用 3rd 方 API 来访问一些资源。它有一个公钥和一个私钥。对于每个请求,我使用私钥对一些特定数据进行一些哈希计算,并将结果发送到服务器。服务器将使用我的私钥验证结果,以确保请求有效。私钥不会通过网络发送。

但是,私钥应该保存在客户端中。我认为其他人通过一些逆向工程找到它并不是一件难事。使用私钥是否更安全?

如果密钥被盗,我可以更改私钥。但是原来的应用程序不能再使用了。有没有更好的方法来解决这个问题?

(我设置了自己的代理服务器可以部分解决这个问题。有没有更好的方法?)

【问题讨论】:

    标签: android security rest oauth oauth-2.0


    【解决方案1】:

    我建议将第 3 方 API 访问卸载到您控制的 REST 服务。从那时起,您获得的私有 API 访问密钥将安全地锁定在您拥有的计算机上,并且不太可能被泄露。

    然后,您只需更新您的移动应用程序,以通过明确定义的端口和地址联系您的服务器(可选地进行某种您想要处理流量的验证),然后酌情转发该请求。这还允许您非常精细地控制您希望向最终用户公开的 3rd 方 API 的哪些特定部分。

    分发用于 3rd 方 API 访问的私钥可能是一个非常糟糕的主意(并且可能违反您的服务条款),因为恶意客户端可能会通过胡乱乱搞服务而导致很多问题。

    【讨论】:

      【解决方案2】:

      我对这个东西不是很熟悉,但你不应该使用公钥在客户端对你的东西进行编码而不是使用私钥吗?

      这就是拥有公钥/私钥组合的意义:每个人都可以免费使用公钥来对某些内容进行编码,但是一旦编码,消息只能使用私钥解码;它被安全地存储在一个受到良好保护的服务器上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-26
        • 2017-05-05
        • 2019-04-27
        • 1970-01-01
        • 1970-01-01
        • 2018-06-17
        • 2012-11-08
        • 1970-01-01
        相关资源
        最近更新 更多