Security and Design(转)

来源:互联网 发布:阿里云建立个人网站 编辑:程序博客网 时间:2024/06/03 14:35

原文链接:http://developer.android.com/guide/google/play/billing/billing_best_practices.htm


目录

 [隐藏] 
  • 1安全和设计
    • 1.1安全最佳实践
      • 1.1.1在服务器上完成签名验证任务
      • 1.1.2保护你的未加密内容
      • 1.1.3打乱你的代码
      • 1.1.4修改所有的样例应用代码
      • 1.1.5使用安全随机数
      • 1.1.6采取行动对抗商标和版权侵犯
      • 1.1.7保护你的Google Play公钥

安全和设计

当你在设计实现你的应用内支付时,确保跟随在这个文档中讨论的安全与设计指南。这些向导是为使用Google Play应用内支付服务推荐的最佳实践。

安全最佳实践

在服务器上完成签名验证任务

如何实践,你应该在一个远程服务器上而不是设备上完成签名验证。在服务器上实现验证处理使攻击者很难通过逆向工程你的APK文件来破坏验证处理。如果你向一个远程服务器卸载安全处理,确保设备到服务器的握手是安全的。

保护你的未加密内容

要阻止恶意用户重新发布你的未加密内容,不要把它和你的apk文件捆绑,以以下一种方法代替:

  • 使用实时服务发送你的内容,例如内容源。通过实时服务发送内容允许你的内容始终为最新的。
  • 使用远程服务器发送你的内容。

当你从远程服务器发送内容或使用实时服务,你可以把未加密内容存储在设备内存中或SD卡中。如果存储在SD卡中,确保加密内容且使用设备指定的密钥。

打乱你的代码

你应该打乱你的应用内支付代码使攻击者很难逆向工程你的安全协议和其他应用组件。在最低程度,我们推荐你在代码中使用Proguard打乱工具。

除了运行打乱程序时,我们推荐你使用以下技术打乱应用内代码。

  • 内联方法进入其他方法
  • 使字符串忙碌代替定义为常量
  • 使用JAVA映像访问方法

使用这些技术可以帮助减少你应用的攻击面和帮助最小化攻击来妥协应用内支付的实现。

注释:如果你使用Proguard来打乱代码,你必须在Proguard设置文件中使用以下行:-keep class com.android.vending.billing.**

修改所有的样例应用代码

应用内支付样例代码是公开发行的,任何人都可以下载,这也意味着如果你使用样例代码正如它发布时那样,将使攻击者非常容易逆向工程你的应用。样例代码应用只打算作用一个例子使用。如果你使用样例应用的任何部分,你必须在你发布前修改它,或作为产品应用的一部分释出。

特别的是,攻击者寻找应用的入口和出口,因此对你来说修改你应用的这些和样例代码相同的部分十分重要。

使用安全随机数

随机数必须不可预测和重复。总是使用一种加密安全随机数生成器(例如SecureRandom)当你生成随机数,这可以帮助减少重复攻击。

也就是,如果你在一个服务器上执行随机数验证,确保你在服务器上生成随机数。

采取行动对抗商标和版权侵犯

如果你看到你的内容在Google Play被重新发布,果断快速采取行动。文件商标侵犯通知和版权侵犯通知。

如果你使用远程服务器发送或管理内容,使你的应用无论何时进入内容验证未加密内容的购买状态,这将允许你必要时撤销使用和减少盗版。

保护你的Google Play公钥

要在恶意用户和黑客面前保护你的公钥安全,不要嵌入任何例如文字字符串的代码,一部分在运行时构建字符串或使用位运算(例如:异或一些其他字符串)来隐藏真实的密钥。密钥并不是密码信息,但是如果你不想使黑客或恶意用户很容易就用任何密钥替代公钥的话。


转自 http://wiki.eoeandroid.com/Security_and_Design

0 0
原创粉丝点击