关注android应用安全,应该关注android的签名机制,平时我们都是使用eclipse直接签名,不了解签名的流程机制,我们今天开始了解一下。Android签名在android应用中扮演着很重要的角色,例如,Android系统禁止更新安装签名不一致的APK;如果应用需要使用system权限,必须保证APK签名与Framework签名一致,等等。android应用签名在应用防篡改、防盗版起着着一定的作用,当然要是有权威认证就会更好了。

Android中使用Keytool(用于生成数字证书)和Jarsigner(用于使用数字证书签名)来给apk包签名。他们的具体使用方法可参考《Android之APK文件签名――keytool和jarsigner》。

在反编译横行、版权不受保护的情况下,我们可以使用签名对比来保障AndroidAPK的软件安全,鉴定应用的安全性,保证我们的应用不被篡改、反编译。

签名对比可以使用下面三种方式

1、程序自检测。在程序运行时,自我进行签名比对。比对样本可以存放在APK包内,也可存放于云端。如果放在apk包内,以考虑程序自检测的功能用nativemethod的方法实现;如果放在云端可以使用用户名加签名的方式,保证每一用户传送的内容不一致,否则简单抓包就暴漏了自检方式。

2、可信赖的第三方检测。由可信赖的第三方程序负责APK的软件安全问题。对比样本由第三方收集,放在云端。这种方式适用于杀毒安全软件或者Google Play之类的软件下载市场。缺点是需要联网检测,在无网络情况下无法实现功能。iOS就不必担心这些,appstore可以保证应用的安全,android没有统一的应用市场,没有可信赖的第三方软件,这是一大软肋。

3、系统限定安装。这就涉及到改Android系统了。限定仅能安装某些证书的APK。软件发布商需要向系统发布上申请证书。如果发现问题,能追踪到是哪个软件发布商的责任。适用于系统提供商或者终端产品生产商。缺点是过于封闭,不利于系统的开放性。

android应用安全是一个很复杂的问题,开发中要制定安全的通信协议、发布apk时要防反编译,仿解压重新编译,仿破解,开发中要谨小细微的对待每一步。


/** * @author 张兴业 * http://blog.csdn.net/xyz_lmn * iOS入门群: 83702688
* android开发进阶群: 241395671 * 我的新浪微博: @张兴业TBOW */

参考:

Android之APK文件签名――keytool和jarsigner

Android 数字签名学习笔记

Android APK 签名机制




更多相关文章

  1. Android中不同应用间实现SharedPreferences数据共享
  2. 关于Android(安卓)Studio3.2新建项目Android(安卓)resource link
  3. Android(安卓)studio3.x 多渠道打包apk
  4. Android(安卓)- Manifest 文件 详解
  5. Android之应用程序基础
  6. Android四大组件的理解
  7. Android官方入门文档[1]创建一个Android项目
  8. 第三章 Android程序设计基础
  9. 第一章 andriod studio 安装与环境搭建

随机推荐

  1. 访问控制允许原点 - 不工作
  2. 如何使用ChromePhp Logger记录数组
  3. 最佳做法,PHP,每天跟踪数百万次展示
  4. 使用PHP和MySQL开发“测试”Web应用程序
  5. 如何获取关联数组的当前元素数?
  6. 如何使用PHP读取.xls文件(Excel) ?
  7. 在返回按钮上重新加载页面。
  8. php微信网页授权获取用户信息
  9. 如何修复慢速sql查询
  10. php_mvc实现步骤六