Android应用中的亚马逊访问凭据

时间:2011-05-19 05:19:05

标签: java android security amazon-web-services

亚马逊云服务(AWS)已经提供了可立即使用的库,可以直接从您的Android应用程序拨打SDB,S3,SNS等。这使得不熟悉Web服务和Web应用程序的移动开发人员可以轻松创建完全可扩展的基于云的应用程序。 我们在这些API调用中提供Amazon Access凭据以连接到我们的云帐户;我的问题是:

  1. 我如何有效地在应用中使用密钥轮换,因为我将分发应用,一旦密钥更改可能意味着现有用户的时间段中断。
  2. 在代码中对Amazon Access Credentials进行硬编码(作为字段Constant等)会使其易于提取吗?通过反编译等??

2 个答案:

答案 0 :(得分:1)

我与我们地区的亚马逊倡导者进行了交谈,他告诉亚马逊客户端库专为此目的而设计。

  • 它可用于内部应用程序(未发布),如客户端演示应用程序。
  • 如果您要将凭据与要在公开市场上发布的应用程序捆绑在一起(不推荐),请使用IAM并创建一个具有受限访问权限的单独凭据。
  • 如果您正在构建类似Instagram的应用,则可能需要设置一个Web服务器来代理您对Amazon的调用(实际上使客户端库无效)。

显然,我不太相信。我认为整个客户端库与亚马逊通信(绕过对网络服务器的需求)对移动开发者来说可能是一个很大的优势。

答案 1 :(得分:0)

回复:

  
    

在代码中对Amazon Access Credentials进行硬编码(作为字段Constant等)会使其易于提取吗?通过反编译等?

  

是的,通过查找二进制文件中的字符串和模式。也反编译,但通常没有必要。

第一个问题是,您试图防​​范哪种威胁?政府?付费黑客?或者您只是希望通过应用程序获取访问权限并不容易?

  • 将密钥的访问权限仅限于应用程序所需的数据。
  • 将应用程序中的密钥存储为多个部分。以某种方式修改它们(例如ROT47),然后在发送到服务时重新组合。
  • 不要将所有关键信息都放入应用程序中。需要使用其他安全设备,例如Amazon MFA
  • 安装监控以检测可能指示从应用外部访问的异常访问模式。