关注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系统资源
  2. Android 的系统属性(SystemProperties)分析
  3. Intel发布Android模拟器的x86系统映像
  4. 国内最全的Android市场,最全Android软件商店
  5. Android基础之Android的系统体系结构
  6. Android系统上部署usb打印机
  7. 波音787 Dreamliner娱乐系统将选择Android
  8. Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过

随机推荐

  1. android AIDL服务
  2. Android入门系列(一)--Android的目录结构
  3. Android 模拟HTTP协议的编码问题 Android
  4. Android Studio使用教程、工程目录结构、
  5. Eclipse SDK 3.7.2无法安装android SDK
  6. Android与H5相机、相册笔记
  7. Android(安卓)NDK学习笔记3-入门案例篇
  8. 【Android学习之旅】1、Android入门介绍
  9. Android(安卓)Animation
  10. 详解Android轻量型数据库SQLite