Android签名与权限的安全问题(3)

签名和权限的作用

Android签名中使用到的一些加密技术有:

公/私钥, SHA1(CERT.SF,MANIFEST.MF), RSA(CERT.RSA), 消息摘要,

移动平台中的主流签名作用:

  • Android平台中是使用自签名
    自签名,证书的签名者和证书拥有者是同一人.
自签名的完整性认证

自签名是没有信任模式的,因为自签名信息是自己的,对无法知道该信息是不是安全,我们只能对其的完整性进行认证.

限制安装和运行

下面是限制应用安装和运行的流程

  • 应用安装时
    校验是否含签名 –> 没有,禁止安装
    –> 有,提取证书进行校验–> 证书是否有效可信任–> 不是禁止安装.

    基于证书的公钥对签名进行校验–> 签名是否正确 –> 不正确禁止安装.

  • 应用运行时
    校验是否包含签名 –> 没有,禁止运行
    –> 有,提取证书进行校验–> 证书是否有效可信任–> 不是禁止运行.(这一步跟安装流程相似)

    基于证书的公钥对签名进行校验–> 签名是否正确 –> 不正确禁止运行.(这一步跟安装流程相似)

权限的作用(细粒度的特权管理)

  • 权限是一个ID或者一个字符串
  • 谦虚用来细分权利(类似Capability,分散权利)
  • 通常一个权限与一个类操作绑定
  • 权限首先需要申请(AndroidManifest或者代码动态申请)
  • 但是申请后是否被批准有平台策略决定
    如:用户需要读取SDCard的权限,这时Android平台会弹出访问SDCard的窗口,如果用户accept了,那这个权限就被申请.

权限的安全性保护(通过签名)

  • 权限的完整性保护(防篡改)
    如发短信的方式,不可能没发一条短信都弹dialog来申请权限,所以这时开发只要在Manifest 中添加 sendSMS permission 就可以.(通过认证并获得签名后再加policy权限)

  • 权限的授权安全策略(防Escalate)
    如普通应用申请Inject Event 权限(注入)

签名作用

完整性鉴别
  • 自签名支持完整性鉴别
    Android中使用的是自签名方式,那就是无法对签名的信任进行认证,只能通过他的完整性鉴别.

  • 不做安装和运行时的限制(不做信任模式)
    Android不会在安装的时候进行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值