`

Android 安全模型

阅读更多
Android 安全模型包括两个方面:部署和运行.

部署应用到设备必须具有一个数字证书.数字证书包括作者签名,公钥,密钥,公司信息,地址等.
你可以生成数字证书通过 keytool 或 认证中心(CA).
签名一个Android应用需要以下三个:
1.一个数字证书
2.一个.apk文件
3.一个apk签名工具(keytool)
部署一个Android应用包括两个步骤:
1.生成证书(keytool)
2.签名应用(jarsigner tool)
模拟器使用的证书是默认的,在实际设备中不可用.因此部署需自己给应用签名.

通过 keytool 生成一个自动签名的证书

1.创建一个发行目录,用于存放 keystore
比如: c:\android\release
2.打开命令行.运行如下命令
D:\WINDOWS\system32>
keytool -genkeypair -v -keystore c:\android\release\release.keystore
-alias androidbook -storepass 123456 -keypass 123456 -keyalg RSA
-validity 14000

引用

D:\WINDOWS\system32>keytool -genkey -v -keystore c:\android\release\helloworld.k
eystore -alias helloworld -storepass 123456 -keypass 123456 -keyalg RSA -validit
y 14000
您的名字与姓氏是什么?
  [Unknown]:  w26
您的组织单位名称是什么?
  [Unknown]:  cs
您的组织名称是什么?
  [Unknown]:  cs
您所在的城市或区域名称是什么?
  [Unknown]:  sz
您所在的州或省份名称是什么?
  [Unknown]:  gd
该单位的两字母国家代码是什么
  [Unknown]:  cn
CN=w26, OU=cs, O=cs, L=sz, ST=gd, C=cn 正确吗?
  [否]:  y

正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 14,00
0 天):
         CN=w26, OU=cs, O=cs, L=sz, ST=gd, C=cn
[正在存储 c:\android\release\helloworld.keystore]



参数说明:
-genkey 生成公钥/密钥对
-v 生成详细信息
-keystore 密钥库
-alias 密钥库条目惟一别名
-storepass 密钥库密码
-keypass 公钥/密钥对密码
-keyalg 加密算法
-validity 有效期(天)
如果你要在google market 发布应用,证书最好大于25年.



使用 jarsigner tool 签名.apk 文件

1.使用eclipse adt 生成一个未签名的包.Export Unsigned Application Package.把 生成的 .apk 文件保存到 c:\android\release\*.apk
2.使用命令行,运行如下命令:
引用

D:\WINDOWS\system32>
jarsigner -keystore c:\android\release\helloworld.keystore
-storepass 123456
-keypass 123456 c:\android\release\calc.apk helloworld

D:\WINDOWS\system32>


如果你想更新应用,需要相同的签名.不同的签名,android认为是另外一个应用.
如果应用安装过期,应用仍会运行,android只在安装时验证证书,并分配第个应用一个惟一的UID.当应用过期时,应用不能再更新升级.

3.使用 zipalign 优化资源



运行应用具有一个UID,android根据uid管理进程间的数据访问.android使用权限管理各种资源.

声明与使用权限
如果应用要使用受保护的资源,需要请求相应的权限.用户可以在manifest 文件中配置相关权限,android安装时检查,并同意/禁止相关权限.
完整权限列表,请查看:
http://developer.android.com/reference/android/Manifest.permission.html

自定义权限
你可以为android 各种组件定义权限.











分享到:
评论

相关推荐

    android安全架构深究

    一、Android安全模型 Android的安全模型基于Linux内核,并引入了权限管理、应用程序签名、数据加密、沙箱机制等关键组件。每个应用程序运行在一个独立的Linux用户ID下,限制了它们对系统资源的访问。应用程序签名...

    ANDROID安全架构深究

    一、Android安全模型基础 Android的安全模型基于Linux内核,采用了微内核架构,强调权限分离和最小权限原则。每个应用程序都在自己的沙箱环境中运行,拥有独立的用户ID(UID),限制了程序之间的相互影响。此外,...

    《Android应用程序安全》PDF

    其次,可能详细讨论了权限管理,这是Android安全模型的核心部分。开发者需要理解如何正确声明和使用权限,避免过度授权导致的数据泄露或其他安全风险。同时,书中可能会介绍如何通过动态权限请求来提高用户体验。 ...

    Android App的安全保护实践之路.pdf

    Android App 的安全保护实践之路需要从多方面入手,包括 Android 平台安全现状、Android 安全模型、程序安全、数据安全和系统安全等。只有通过了解这些方面的安全问题和保护措施,才能更好地保护 Android App 的安全...

    浅谈android线程模型

    ### 浅谈Android线程模型:深入理解与实践 #### 引言 随着智能手机的普及和技术的不断进步,Google的Android操作系统成为了移动设备领域的重要力量。Android不仅为用户提供了丰富的功能,也为开发者提供了广阔的...

    Android安全机制解析与应用实践.(吴倩,赵晨啸).pdf

    首先,Android安全模型的基础是Linux内核,它提供了基于权限的访问控制(DAC)和强制访问控制(MAC)。DAC允许每个文件拥有者定义访问权限,而MAC如 SELinux 则为系统提供更严格的策略,限制了不同程序间的交互。 ...

    Android安全攻防实战(带书签目录版).pdf

    首先,书中会讲解Android系统的基础架构和安全模型,包括Linux内核、Dalvik/ART虚拟机、权限管理、签名机制等。了解这些基础是理解Android安全问题的关键。作者会深入解析应用程序的生命周期、组件通信方式(如...

    Android操作系统的安全机制研究.pdf

    沙箱隔离机制则是Android安全模型的核心,它确保应用程序运行在独立的环境中,彼此之间不能直接访问对方的内存空间或数据。每个应用程序都运行在一个单独的Linux进程里,形成了所谓的“沙箱”。这种隔离使得一个应用...

    Android 安全机制

    这些基础的身份标识信息是在Android安全模型中非常核心的部分,它们确保了不同应用程序之间数据的隔离,并且为后续更细粒度的权限管理奠定了基础。 **1.2 Permission机制** Android的Permission机制允许开发者声明...

    Android 中的安全增强型 Linux(selinux)

    在 Android 安全模型中,应用沙盒的概念起到了基础作用。每个应用在自己的沙盒里运行,而 SELinux 在 Android 4.3 及更高版本中加强了沙盒的边界。在早期版本中,应用通过独特的 Linux UID 来定义沙盒,但从 4.3 ...

    基于Android权限机制的应用安全检测方法.pdf

    权限机制是Android安全模型的核心组成部分,旨在保护用户的隐私和系统的稳定性。 【应用安全检测】由于Android应用可能存在恶意行为,如滥用权限、窃取用户数据或执行恶意操作,因此应用安全检测显得尤为重要。文中...

    已提取android.policy.jar (注意不能替换只供研究)

    在Android系统中,`android.policy.jar`扮演着至关重要的角色,它是Android安全模型的核心组成部分。这个库包含了系统权限管理、设备策略以及安全相关的类和方法,主要用于控制应用程序的行为和访问权限。本文将深入...

    Android应用程序开发(第三版)课件源程序

    权限管理是Android安全模型的重要组成部分,开发者需要明确声明应用对哪些系统功能有访问需求。 对于Android 5.0(Lollipop)及以上版本,Material Design设计语言成为主流,带来了统一的视觉风格和交互规范。...

    Android安全架构深究

    《Android安全架构深究》这本书深入探讨了Android操作系统的核心安全机制,揭示了其设计原则、实现方式以及如何保障用户和应用程序的安全。Android作为全球最受欢迎的移动操作系统,其安全性至关重要,对于开发者、...

    Android Programming: The Big Nerd Ranch Guide(第三版,完美文字pdf)

    9. Android安全模型:包括Android权限模型、数据加密和安全存储等方面的讨论。 10. 其他高级主题:涵盖了诸如使用Git进行版本控制、性能优化、国际化和本地化、单元测试与自动化测试等进阶话题。 本书还特别强调了...

    Android-5.1系统签名文件

    系统签名文件的管理是Android安全模型的核心部分。它们不仅保护用户免受恶意软件的侵害,还确保了系统的稳定性和一致性。对于开发者来说,理解和正确使用这些签名文件至关重要,尤其是在定制和维护Android系统镜像时...

Global site tag (gtag.js) - Google Analytics