存档

2017年2月 的存档

读《Android安全架构深究》:网络安全与PKI

2017年2月28日 没有评论

PKI与SSL概述

TLS和SSL是点对点的安全通讯协议,旨在为在TCP/IP上的通信提供身份认证、消息机密性和消息完整性服务。其身份认证功能主要依赖于公钥证书。
为了建立加密通信,客户端和服务器徐亚协商出一个两者共同支持的密码套件,然后通过证书互相确认对方的身份,最后双方协商出一个对称加密算法,并计算出一个共享密钥,用于加密双方所有的通信数据。尽管SSL协议支持双向身份认证,一般在实际使用中只进行服务器端的身份认证。

公钥证书:
公钥证书是一个将身份和公钥绑定的结构。对于X.509证书来说(应用于SSL协议),“身份”指的是一组属性值,主要包括一个主体的特征名(主题常用名、组织单位、国家),其他的主要属性包括签发者的特征名、有效期和一系列扩展字段。

直接信任和Private CA:
一般而言,客户端都会被配置一系列的信任锚,其中包含知名的签发者(Public CA)。不同浏览器和操作系统西安则默认信任锚的方式还是存在很大差别。

公钥基础设施:
在证书被Public CA签名之前,需要进行一些身份认证。认证过程差别很大,从最简单的邮箱地址认证(简易服务器证书),到需要多种形式的政府签发ID和公司注册文档(EV证书)都有可能。
Public CA为了实施实体认证服务,创建、管理和发布证书,需要依赖于很多人、系统、程序和策略,这些实体和系统被称为公钥体系结构(Public Key Infrastructure,PKI)。PKI结构十分复杂,但就安全通讯(尤其是SSL)而言,最重要的元素就是CA证书。因为CA证书扮演信任锚的角色,用于认证通讯实体的身份。

		在PKI中,拥有证书的个人或服务器称之为终端实体(end-entity,EE)。
		为了获得证书,EE需要给下注册机构(registration authority,RA)发送请求。RA需要从EE获取身份证明信息,并根据CA的策略要求对信息进行认证。当RA确认EE的身份后,检查EE的身份信息是否符合证书请求的条件,如果满足,RA会转发请求到负责签发的CA。
		然后CA对EE的证书请求进行签名,生成EE证书,并维护证书的撤销信息。
		根CA并不会直接对EE证书进行签名,只是对签发CA的证书进行签名,并维护签发CA证书的撤销信息。根CA的使用频率非常低,为了增加密钥的安全性,一般离线保存。
		

证书撤销:
撤销证书包括将证书的序列号和撤消原因,加入到CA定期发布的证书撤销清单(CRL)中。实体通过查找相应的证书序列号是否在CRL中,来判断证书状态。许多SSl客户端或者根本不检查撤销链信息,或者即使连接中的证书已经被撤销,任允许所有连接。SSL客户端这种宽容行为的原因主要是基于对获取当前撤销信息开销的考虑,从而确保连通性。

阅读全文…

分类: Android, 未分类 标签: , ,

读《Android安全架构深究》:加密服务

2017年2月26日 没有评论

JCA Provider结构:
JCA(Java加密体系结构)提供了一个可扩展的加密服务提供程序框架,和一组API,它覆盖了当今在用的主要密码学原语(分组密码、消息摘要、数字签名等)。

加密服务Provider:
JCA将密码功能分成若干抽象的服务,也叫做引擎(engine),并且以引擎类的形式,对每个服务定义了API。(Eg:数字签名通过Signature引擎类表示;加密操作由Cipher类表示)
在JCA环境中,一个加密服务提供程序(CSP)提供了某些加密服务具体实现的一个包或一组包。每个Provider通告其实现的服务及算法,允许JCA框架维护一个所支持算法及相关实现的Provider注册表。 阅读全文…

分类: Android, 未分类 标签: , ,

读《Android安全架构深究》:用户管理

2017年2月23日 没有评论

用户类型:

主用户(持有者):第一个用户,默认创建,一直存在。userID是0,具有所有权限,可以创建、删除其他用户,更改影响所有用户的设置。
次要用户:除受限用户所有后添加的用户。
受限用户:受限用户基于主用户,以特定限制条件共享它的应用、数据和账号。主用户控制哪个应用对手向用户可用。
访客用户:支持一个访客用户,默认禁用。具体用途不明。

阅读全文…

分类: 未分类 标签:

读《Android安全架构深究》:包管理机制

2017年2月22日 没有评论

代码签名
签名解决完整性和可靠性,即确保程序没有被篡改(完整性),并且由它所称的创建者所创建(可靠性)。
代码签名不能解决代码签名者能否被信任,不能解决被签名代码是否安全。

应用程序包与数据的位置
系统应用:系统应用在只读分区/system,在量产设备上不能被修改或卸载。因此被认为是可信的,并赋予了更多权限,还会放松一些签名检查。
大部分系统中,可在/system/app/目录下找到系统应用,在/system/priv-app/下保存特权应用(可被授予signatureOrSystem保护级别),/system/vendor/app/目录是厂商专有的应用。
用户应用:用户应用存放在读写分区userdata,可以被任意卸载或替换,大部分用户安装应用被安装在/data/app/目录下。
数据目录:同时为系统应用和用户应用准备,创建在userdata分区的/data/data目录下。同时存放:一些为用户安装应用优化过的DEX文件(/data/dalvik-cache)、系统包数据库(/data/system/packages.xml)、以及其他系统数据库和设置文件。 阅读全文…

Android源码编译II:错误列表

2017年2月21日 没有评论

一、目标:

完成Android源码编译

二、环境:

桌面环境:Win7系统,Git bash,Chrome浏览器(插件:代理助手),ShadowSocks

三、步骤:

阅读全文…

分类: 未分类 标签:

读《Android安全架构深究》:权限

2017年2月21日 没有评论

权限的保护级别

一个权限的保护级别(Permission Protection Levels)是:暗示权限中隐含的潜在风险,并且指出当决定是否赋予权限时,系统应遵循的校验程序的流程。
normal级别:权限保护级别的默认值,定义了访问系统或其它应用程序的低风险权限。它无需用户确认,会自动授权。
dangerous级别:可以访问到用户数据,或者在某种形式上控制设备。在赋予dangerous级别的权限前,Android会弹出一个确认对话框,显示所请求的权限信息。
signature级别:只会赋予那些与声明权限使用相同证书的应用程。通常被用于执行设备管理任务的系统应用。
signatureOrSystem级别:某种形式上是一种折中方案:他可被赋予系统镜像的部分应用,或者与声明权限具有相同签名密钥的应用程序。这允许厂商无需共享签名密钥,即可预装自己的应用来共享一个需要权限的特定功能。Android4.4版本之后,安装在/system/priv-app/目录下的应用,才能被赋予这个级别的保护权限。

阅读全文…

分类: Android, 未分类 标签: , ,

Android中图片在内存中的大小

2017年2月21日 没有评论

Android中一张图片(Bitmap)占用的内存由以下三个因素决定:

1.图片的像素点个数

2.单位像素占用的字节数

图片占用的内存值为:

图片长度  *  图片宽度  *  单位像素占用的字节数

单位像素所占用的字节数与图片的解码方式有关。 阅读全文…

分类: Android, 数字, 未分类 标签: ,

查看android手机给应用分配的内存

2017年2月21日 没有评论

查看android手机给应用分配的内存:

$ adb shell getprop | grep heap
[dalvik.vm.heapgrowthlimit]: [192m]
[dalvik.vm.heapmaxfree]: [8m]
[dalvik.vm.heapminfree]: [4m]
[dalvik.vm.heapsize]: [512m]
[dalvik.vm.heapstartsize]: [16m]
[dalvik.vm.heaptargetutilization]: [0.75]

dalvik与GC相关的属性有:
dalvik.vm.heapstartsize:初始化dalvik分配的内存大小。
dalvik.vm.heapgrowthlimit:没有在mainfest中设置Android:largeheap=”true”时,应用的最大内存,超过这个值会有OOM产生。
dalvik.vm.heapsize:在mainfest中设置android:largeheap=”true”时,应用的最大内存,超过这个值会有OOM产生。
dalvik.vm.heaputilization、dalvik.vm.heapminfree 、dalvik.vm.heapmaxfree:dalvik GC时使用的参数。

分类: Android, 数字, 未分类 标签: ,

Win10环境配置I:软件下载

2017年2月17日 没有评论

一、目标:完成Win10开发环境搭建

二、环境:

桌面环境:Win10系统

三、软件下载:软件:下载地址 阅读全文…

分类: Android, win10, 未分类 标签: , ,

Android源码编译I:环境搭建

2017年2月16日 没有评论

一、目标:

完成Android源码编译

二、环境:

桌面环境:Win7系统,Git bash,Chrome浏览器(插件:代理助手),ShadowSocks

阅读全文…

分类: Android, 未分类 标签: ,