首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储和使用Amazon Access key for Android的安全方法

存储和使用Amazon Access key for Android的安全方法
EN

Stack Overflow用户
提问于 2014-02-17 17:18:57
回答 2查看 3K关注 0票数 1

我正在尝试建立一个使用亚马逊SimpleDB的安卓应用程序。我已经查看了Amazon提供的示例代码的源代码。然而,在演示中,凭据只是存储在Constants.java中,我认为这种方法根本不安全,因为即使启用了Proguard,也可能会有人反编译apk来暴露凭据。

因此,我去看了一篇关于这方面的亚马逊文章,我不太理解,因为我不太熟悉android/java中的密码学。

我应该如何真正允许从我的应用程序访问亚马逊SimpleDB,同时保护访问密钥不受外部各方的影响?

编辑1:我想使用应用程序从SimpleDB中检索数据,如列表视图所示。例如,像关于食物和其他用户的简单评论一样,其他用户将能够检索到与其他用户发布的评论相同的评论。也许如果用户想要发表评论,他们需要注册一个帐户并登录。

EN

回答 2

Stack Overflow用户

发布于 2014-02-18 05:46:58

AWS提供了几种解决方案,用于在硬编码之外将凭据传递到设备,其中一种或两种都可以满足您的特定需求:

  • Token Vending Machine.亚马逊网络服务提供了适用于AnonymousUser Authentication的示例TVM,可以定制以满足您的TVM,这些TVM使用来自Facebook、谷歌和亚马逊的身份。

我们的samples repository包含了与这两种技术集成的示例,但在SimpleDB示例中并没有专门介绍。

票数 4
EN

Stack Overflow用户

发布于 2014-02-17 21:11:57

没有万无一失的方法可以做到这一点。无论我们采用哪种方式,都可能会有人窃取你的APK并破解密码(你通过混淆代码来使其变得困难,但这只是使其变得困难而不是万无一失)。

如果您的应用程序要求用户登录(使用来自您的后端的某些凭据或使用openid),则使用它来允许用户访问您的服务器。然后,在服务器代码中,您可以使用IAM角色(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)提供AWS凭据。

因此,您的web (REST) API访问是通过使用用户提供的密码来允许的,并且您的服务器代码通过IAM角色获得访问权限。这是最安全的方式。

如果你不想要你的服务器/后端,那么就没有真正万无一失的方法了。

来自上面@Bob的答案是如何实现这一点的精确答案:https://stackoverflow.com/a/21839911/2959100

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21825029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档