不断增强安全性的Android系统

从2010年Android2.3开始,Android系统就不断地完善和稳定,曾经每年升级一次版本都需要花费很长的时间,且新版本都很不稳定,开发者难度很大;从Android4.4版本开始,一切都好转了;从5.0版本开始,Android的安全性也得到了明显提升,在kernel内核加入了Selinux,权限配置让App不能随意的使用系统的权限;在4.4版本中开始加入了Turstzone功能,刚开始只是在Android系统启动流程中使用,后来最广泛使用的还是得益于指纹解锁,当Android将指纹作为标准设备接口集成在版本发布后,指纹TA将指纹数据安全加密存储,不能上传用户指纹数据,并作为一个行业标准,用户才安心使用指纹。进几年大家用的最多的和最熟悉的功能:指纹支付;这一切都是建立在PKI安全体系的运用。同时Android借鉴PC的理论来处理碎片化问题,将核心内核系统隔离出来,尽最大不让修改;增加vendor,oem功能分区让厂商专注自身模块的功能,这样有益于双方的版本迭代开发。Android也将运用于PC的TPM可信计算理论带入,于是Android系统加入AVB(Android Verified Boot)验证功能,本章节就是基于此概念上的密码学运用。

本章主要涉及到的知识点有:

  1. 具体非对称算法,RSA和国密SM2
  2. Hash单向运算函数
  3. 签名验签流程
  4. 证书认证,信用链
  5. 安全芯片
    1. 带安全芯片的Android安全系统

本节介绍一个我们具体实践的案例,带安全芯片的Android安全系统。在整个案例中,主业务正是充分应用了密码学体系的机密性,不可否认性,密钥安全存储,在系统的最初下载,到运行阶段,都进行了充分的合法性完整性验证,保证了代码在整个运行过程中,能检测到外部的恶意攻击和篡。以下章节分别从设计原理和代码实践详述。

      1.  思维导图

思维导图和技术前提

在密码学的应用中,遵循密码学的核心理念

(1)加解密的算法不是关注焦点,因为他是开放的专业的数学问题

(2)需求和问题导向原则,所有技术都是由需求和问题引入

(3)抓住核心,密码学的机密性,完整性,不可否认性

(4)在以下内容中,您必须对Android编译,Makefile,Python,系统启动流程有所了解;并能熟练根据问题和架构,定位密码应用的代码能力。

在计算机世界如何证明一个人的身份不像现实世界,是比较困难的,但是原理却是相似的。比如如何证明你爸是你爸,更哲学的问题是,如何证明你是你自己。这一切在现实世界依赖于一张身份证,没有这个身份证,几乎办理不了任何业务。另外一个有趣的问题是,人们会通过熟人来介绍认识朋友,更容易相信朋友的朋友;这其中对应的思想便是信用链,所以在工作中大部分人会跟领导搞好关系,因为领导跟老板关系好,一旦有好事,老板自然会通过信用链传递到你。计算机系统里也采用这种方式

 

自定义Key   verity_key ---这个Key是加载在内核中,验证system hash tree

out/host/linux-x86/bin/generate_verity_key -convert veritykey.x509.pem verity_key

adb  security:  新Android版本,需要先adb disable-verity ,然后adb remount
 disable-verity           disable dm-verity checking on userdebug builds
 enable-verity            re-enable dm-verity checking on userdebug builds

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值