关注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时要防反编译,仿解压重新编译,仿破解,开发中要谨小细微的对待每一步。
* http://blog.csdn.net/xyz_lmn
* iOS入门群:83702688
* android开发进阶群:241395671
*/
参考:
Android之APK文件签名——keytool和jarsigner
Android 数字签名学习笔记
分享到:
相关推荐
【Android Studio应用开发——基础入门与应用实战】是针对初学者和希望提升Android应用程序开发技能的人群设计的一门课程。这门课程由专家方欣和杨勃共同编写,旨在通过电子课件的形式,深入浅出地讲解Android ...
本文详细介绍了在腾讯微博Android客户端开发中如何实现OAuth 1.0a认证机制中的关键部分——请求签名的生成。通过对URL编码方法的特殊处理和HMAC-SHA1算法的具体实现,我们不仅能够确保请求的合法性和安全性,还能更...
总结起来,《Android项目实战——手机安全卫士开发案例解析》是一份全面的教程,它将引导开发者从零开始构建一个实用的Android应用,同时深化对Android系统及编程的理解,提升解决实际问题的能力。通过实践这个案例...
总结来说,Android的“沙箱”机制、`sharedUserId`和签名机制共同构成了一个相对安全的应用环境。理解并正确运用这些机制,有助于开发者构建更安全、更可控的Android应用,同时也为用户提供更好的隐私保护。
在实验部分,文章选取了一个常见的应用场景——媒体播放器,来具体分析Android安全机制的实际运作原理。通过这一示例,我们可以更直观地了解Android如何利用其安全特性来保护用户的数据安全和系统安全。 1. **权限...
7. **安全机制**:Android的安全模型基于权限系统,开发者需理解权限管理、签名策略、沙箱机制等,确保应用和系统的安全。 8. **系统启动流程**:从Bootloader到Zygote,再到System Server,理解Android系统启动的...
1. **PDF处理库**:为了在Android应用中读取、编辑和保存PDF文件,开发者通常会使用第三方库,如iText或PDFBox。这些库提供了API接口,用于解析PDF文档、插入图像、添加文字等操作。 2. **手写识别技术**:为了实现...
这个压缩包文件"安卓Android源码——安卓手写签名模块源码.zip"包含了实现这一功能的相关源代码和其他资源文件,可能是为了帮助开发者理解和构建自己的手写签名组件。 手写签名模块的核心通常涉及以下几个关键技术...
12. **发布流程**:了解并实践Android应用的签名、版本控制、打包和发布流程,如使用Gradle插件进行APK构建和上传至Google Play Store。 以上就是构建“Android项目之——漂亮的平台书架”所涉及的关键知识点。通过...
在Android平台上开发这样一款小游戏,不仅能够提供娱乐体验,还能帮助开发者深入理解Android应用开发的基本流程和技术。 **1. Android 应用架构** 在Android应用开发中,通常采用MVP(Model-View-Presenter)或MVVM...
【Android课程设计——安卓旅行日志APP】 在本次Android课程设计中,我们将专注于构建一个功能丰富的安卓旅行日志应用程序。这个应用将为用户提供记录、管理和分享他们的旅行经历的平台,充分展示Android开发技术的...
- **恶意软件防护**:Android系统内置了安全机制,如验证应用签名、运行时权限检查,防止恶意软件侵入。 - **数据加密**:源码中包含对用户数据进行加密的算法和实现,以防止未授权访问。 - **网络安全性**:包括...
在Android系统中,应用签名是确保应用程序完整性和安全性的关键机制。它是一个数字签名,用于验证应用程序的开发者身份,确保程序未被篡改,...正确理解和使用应用签名,对于确保Android应用的安全性和可靠性至关重要。
Android应用基于事件驱动模型,使用意图(Intent)来传递消息和触发操作。源码中会有大量的Intent创建和接收,以及BroadcastReceiver的注册和解注册,实现各个功能之间的协同工作。 8. **服务组件和服务生命周期** ...
同时,这也是一个很好的学习案例,帮助开发者理解和掌握Android应用开发的全貌。在阅读源码的过程中,应注重理解代码结构,分析功能实现原理,并尝试进行代码重构和优化,以提升个人的编程能力和解决问题的能力。
这涉及到Android系统调用监控、签名验证等技术,对于理解Android应用安全检测有极大的帮助。 此外,MobileSafe可能还会集成一些系统级别的安全框架,例如,Android的SELinux(Security-Enhanced Linux)是提供强制...
通过分析和学习PackageInstaller的源代码,开发者可以深入理解Android应用生命周期管理的底层实现,有助于优化自定义ROM的开发,或者改进应用的安装、更新逻辑。同时,对于安全研究人员来说,源码也能提供对潜在漏洞...
5. **应用程序框架**:Android框架层包括Intent、BroadcastReceiver、Service、ContentProvider、Activity Manager等组件,它们是构建Android应用的核心。深入理解框架层,可以更好地设计和实现复杂的系统级服务。 ...
Android客户端签名漏洞是指在Android应用程序的签名机制中存在的一种安全缺陷,允许攻击者在不修改原有应用签名的情况下,向合法应用中添加恶意代码,从而绕过Android系统的签名验证机制。这种漏洞的存在,使得原本...
在Android平台上,应用的发布和更新都需要经过一个关键步骤——签名。这个过程是确保应用程序的完整性和来源可信性的重要机制。本指南将深入探讨如何使用提供的`sign64.exe`和`sign32.exe`工具对Android升级包(APK...