如何保护 Adob​​e Air Apps 中的敏感按键?

发布于 2024-08-30 12:24:03 字数 214 浏览 13 评论 0原文

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

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

What are the best practices for delivering an Adobe Air app that needs a private key in order to communicate with some online API?

Adobe Air apps seem like they are delivered to the user with full source code, so storing any keys within the source would be a really bad idea. I've read some suggestions saying to download the key from your server, but that has the same problem because the url allowing the download would have to be stored in source code. Also, suggestions saying to store in the encrypted local storage don't make sense to me either, because I still have to obtain the private key somehow.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

披肩女神 2024-09-06 12:24:03

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

无论您做什么,如果客户端应用程序需要以某种方式“知道”密钥,那么用户就可以知道密钥。

假设:

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

解决方案可能是使用某种代理:

  1. 代理实现服务的 API
  2. 客户端应用程序连接到proxy
  3. 代理使用公司密钥连接到服务
  4. 代理将所有从客户端的调用委托给服务,反之亦然

I think this is a global problem of delivering secret keys in any application, since everything can be reverse-engineered (disasamble for executables, IL readers, etc.)

No matter what you do, if the client application needs to somehow "know" a secret key, then the user can know the secret key.

Assuming that:

  1. You deliver a product ("client application") which relys on some 3rd party web service ("the service").
  2. Your company has just one secret key ("company key") for using the service.
  3. The company key must never be exposed (due to possible abuse)
  4. Every piece of information held by or transmitted by the client application is exposed

A solution might be to use some proxy:

  1. The proxy implements the API of the service
  2. The client application connects to the proxy
  3. The proxy connects to the service using the company key
  4. The proxy delegates all calls from the client to the service and vice-versa
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文