博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android安全模型之Android安全机制(应用程序签名)
阅读量:6860 次
发布时间:2019-06-26

本文共 718 字,大约阅读时间需要 2 分钟。

  hot3.png

所有Android应用程序都必须被开发者数字签名,即使用私有密钥数字签署一个给定的应用程序,以便识别代码的作者,检测应用程序是否发生了改变,并且在相同签名的应用程序之间建立信任,进而使具备互信关系的应用程序安全地共享资源。使用相同数字签名不同应用程序可以相互授予权限来访问基于签名的API。如果应用程序共享UID,则可以运行在同一进程中,从而允许彼此访问对方的代码和数据。

应用程序签名就需要生成私有密钥公共密钥使用私有密钥签署公共密钥证书应用程序商店与应用程序安装包都不会安装没有数字证书的应用。但是,签名的数字证书不需要权威机构来认证,应用程序签名可由第三方完成,如OEM厂商,运营商及应用程序商店等,也可由开发者自己完成签名,即所谓自签名。自签名允许开发者不依赖于任何第三方自由发布应用程序。

在安装应用程序APK时,系统安装程序首先检查APK是否被签名,有签名才能够安装。当应用程序升级时,需要检查新版应用的数字签名与已安装的应用程序的签名是否相同,否则,会被当作一个全新的应用程序。通常,由同一个开发者设计的多个应用程序可采用同一私钥签名manifest文件中声明共享用户ID,允许它们运行在相同的进程中,这样一来,这些应用程序可以共享代码和数据资源。Android开发者们有可能把安装包命名为相同的名字,通过不同的签名可以把它们区分开,也保证了签名不同的包不被替换掉,同时有效地防止了恶意软件替换安装的应用。

Android提供了基于签名的权限检查,应用程序间具有相同的数字签名,它们之间可以以一种安全的方式共享代码和数据。

转载于:https://my.oschina.net/fhd/blog/351825

你可能感兴趣的文章
Oracle RAC Database 11.1.0.6监听故障案例
查看>>
强密码策略的最佳实践
查看>>
Gartner报告:大数据将在中国大行其道
查看>>
管理阶层是如何看待测试?
查看>>
Selenium—实现网页元素拖拽
查看>>
《Clojure数据分析秘笈》——3.5节将agent和STM结合使用
查看>>
《DBA修炼之道:数据库管理员的第一本书》——1.15节回顾
查看>>
Visual Studio之UI界面测试
查看>>
企业为什么需要IT配置管理及其如何使用
查看>>
《深入理解Spark:核心思想与源码分析》——3.13节创建DAGSchedulerSource和BlockManagerSource...
查看>>
《Adobe Photoshop CS5中文版经典教程(全彩版)》—第1课1.7节检查更新
查看>>
《微课实战:Camtasia Studio入门精要》——2.3 录制屏幕
查看>>
码云周一见 | 老司机教你如何麻溜地搭建网站
查看>>
走进阿里云:做云数据、大计算的No.1
查看>>
Gradle 基础
查看>>
listview优化(中)
查看>>
当安全遇上AI 阿里聚安全算法挑战赛完美收官
查看>>
怪”博士闵万里:用人工智能,解决吃饭出行问题
查看>>
ES6 + Webpack + React + Babel 如何在低版本浏览器上愉快的玩耍(下)
查看>>
日志服务(原SLS)新功能发布(8)--日志服务Web Tracking功能
查看>>