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

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

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

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

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

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官方开发指南翻译(1)-什么是Android
  2. 做好准备,让你的短信应用迎接Android(安卓)4.4(KitKat)
  3. Android(安卓)操作权限大全(已归纳分类)
  4. 开发人员抱怨:Android应用程式钱难赚
  5. Android(安卓)API Guides--- Connectivity
  6. Android近期学习总结——开发准备
  7. android中少用静态变量(android静态变量static生命周期)
  8. 《Android移动应用基础教程》(Android(安卓)Studio)(第二版)黑马教程
  9. Android开发者应该深入学习的10个开源应用项目

随机推荐

  1. Android(安卓)package属性、package name
  2. Android(安卓)Studio 导入 GreenDao
  3. Android入门学习笔记整理(二)
  4. adb通过wifi连接android设备的方法
  5. android字体大小多屏幕适配
  6. android sqlite 数据类型
  7. Android(安卓)4.4环境搭建——Android(安
  8. android SimpleOnGestureListener详解
  9. 下载Android(安卓)SDK tools完成Android(
  10. 关于服务端设置了IPV6时,Android请求网络