1

交付需要私钥才能与某些在线 API 通信的 Adob​​e Air 应用程序的最佳实践是什么?

Adobe Air 应用程序似乎是通过完整的源代码交付给用户的,因此在源代码中存储任何密钥都是一个非常糟糕的主意。我已经阅读了一些建议,说要从您的服务器下载密钥,但这有同样的问题,因为允许下载的 url 必须存储在源代码中。此外,说存储在加密的本地存储中的建议对我来说也没有意义,因为我仍然必须以某种方式获取私钥。

4

1 回答 1

-1

我认为这是在任何应用程序中传递密钥的全球性问题,因为一切都可以进行逆向工程(对可执行文件、IL 阅读器等进行反序列化)

不管你做什么,如果客户端应用程序需要以某种方式“知道”一个密钥,那么用户就可以知道这个密钥。

假如说:

  1. 您交付的产品(“客户端应用程序”)依赖于某些第 3 方 Web 服务(“服务”)。
  2. 您的公司只有一个密钥(“公司密钥”)用于使用该服务。
  3. 公司密钥绝不能暴露(由于可能的滥用)
  4. 客户端应用程序持有或传输的每条信息都被暴露

一个解决方案可能是使用一些代理:

  1. 代理实现服务的API
  2. 客户端应用程序连接到代理
  3. 代理使用公司密钥连接到服务
  4. 代理将来自客户端的所有调用委托给服务,反之亦然
于 2010-04-23T14:07:05.610 回答