首页 > 代码库 > Android平台安全概念篇

Android平台安全概念篇

一、安全主要用于解决4类需求

1.保密(Security/Confidentiality)信息不泄露给第三方

2.鉴别/认证(Authentication)能够知道与你通信的对方是谁

3.完整性(Integrity) 信息传输存储的过程中保存完整性(不被修改、不被破坏、不被插入、不延迟、不乱序、不丢失)

4.不可否认性(non-repudiation) 轻松知道该消息是有那个用户生成、签发和接受的。


二、密码算法的本质

算法与密钥的分离


三、对称加密

(一)基本概念

密钥:分为加密密钥和解密密钥。
明文:没有进行加密,能够直接代表原文含义的信息。
密文:经过加密处理处理之后,隐藏原文含义的信息。
加密:将明文转换成密文的实施过程。
解密:将密文转换成明文的实施过程。

(二)对称加密模型

加密的过程Ek(M)=C  解密过程Ek(C)=M,其中M、C、k、E和D分别为明文、密文、密钥、加密算法和解密算法。当加密密钥和解密密钥是同一密钥时则称为对称加密

技术分享

(三)对称加密模型种类

对称加密的模型主要有三种:  置换加密   转置加密   乘积加密(就是置换和转置加密的结合)

代表加密算法:DES(Data Encryption Standard)和AES(Advanced Encryption Standard)


1,置换加密
原始字符的顺序没有发生变化,只是把原始字符替换为另一字符。比如明文E:abc ,加密后的密文P为dfg:加密过程是:a--d,b--f,c--g,密钥K:dfg。


2,转置加密

原始字符没有发生变化,只是原始字符的顺序发生了改变。其实转置加密是基于数学的转置矩阵原理。

密钥14253


asdfg      aqz         其中 转置矩阵:qaz  1-->1
qwert ---->dec                        swx  2-->4

zxcvb      gtb                        dec  3-->2
           swx                        frv  4-->5

           frv                        gtb  5-->3


3,乘积加密

就是把转换加密和转置加密反复利用对数据进行加密和解密


四、非对称加密


(一)基本概念

公钥:顾名思义就是公开的密钥,是非对称加密过程中用来 加密 的密钥。
私钥:自己私有的密钥,是非对称加密过程中用来 解密 的密钥。


非对称加密的通俗理解:公钥和私钥是一起产生的,然后公布公钥,其他人就可以感觉公钥就数据信息进行加密和你通信,这样其他人就算截获了这段信息,没有私钥也是不能解密的,也就是只有自己可以对数据信息进行解密。这样密钥的安全性就相对来说是比较高的,不用担心密钥交换的问题。


公钥算法的理论基石:数学,数学是科学之基。公钥算法的最重要两大数学基础是:


1.建立在分解大数的困难度,可以理解为我有两个很大的大质数作为私钥,公开两个大质数的乘积作为公钥,这样就算我们知道了公钥,也很难分解出两个私钥出来,也就没法破解加密过后的数据了;


2.建立在以大素数为模来计算离散对数的困难度。



(二)非对称加密模型
非对称加密和对称加密的区别是非对称加密的加密密钥和解密密钥是不一样的

技术分享   

(三)非对称加密算法

RSA:就是建立在分解大数的困难度的一个非对称加密算法,它的公钥和私钥长度至少1024bit


五 密钥交换概述


(一)公钥密码算法的优点和缺点

优点:高效
缺点:密钥交换的问题。不如RSA的加密安全程度高,但是当选择256bit的AES,仍然能胜任绝大多数的安全领域


(二)公钥密码算法的优点和缺点

优点:安全性足够高,没有密钥交换的问题
缺点:效率低,对于大数据加密很慢


(三)现阶段 实际保密会话状况 概述

(1)基于高效的对称加密算法对会话进行加密

(2)会话密钥实时产生且周期性变化

(3)基于其他足够安全的方式进行会话密钥的传输和交换

技术分享

(四)密钥交换种类

1,利用公钥密码来交换 会话密码

使用对端的公钥对产生的会话密钥加密并传递给对端,对端使用私钥解密获取会话密钥,双方开始基于共享的会话密钥进行对称加密的保密会话通信

技术分享

2.Diffie-Hellman密钥交换协议

基于以大素数为模计算离散对数的困难度
双方各自选定key,然后以一定算法变换(使得key不以明文传输)后传输给对方

双方利用对方交换来的数据和自己选定的key做变换,获得一个一致的结果,作为会话密钥

技术分享


六 数字指纹/消息摘要/散列/哈希


(一)HASH(散列)函数(算法)的定义

变长的输入变换成定长的输出


(二)常见HASH算法

MD5(128bit),SHA1(160bit)


(三)HASH算法的特点

1.易变性:即便原始信息发生1bit的变化,HASH的输出将会有不可预知的巨大变化。
2. 不可逆:通过HASH结果构造出满足的输入信息是不可能的或者及其困难的。

技术分享

(四)HASH算法的应用场景

基于易变性特性
 可保完整性
 实例:
    文件下载时的MD5
    消息传送时尾部额外传MD


基于易变性特性
 可保完整性
 实例:
    CRC校验的作用和不足
    MD检验消息恶劣环境传输的完整性和未受损坏
    应用程序中对于核心文件/数据库读写的鲁棒性保护,防止掉电和Crash


基于不可逆特性
 可认证对端
 实例:
    HTTP的Basic和Digest认证
    PPP的PAP和CHAP认证
   手机登陆密码和隐藏MMI的设计


七 电子签名

(一)签名要解决什么问题

签什么
签的内容的完整性保护


谁在签
签名人的不可否认性

(二)公钥密码术的两面性

技术分享

(三)电子签名=HASH+公钥密码术

RSA的低效率特性,导致即便是签名也不适合直接对原始信息进行签名
利用HASH先完成消息摘要和完整性鉴别的作用
而后对简单的消息摘要进行基于公钥密码术的签名
签名一般附着于原始消息尾部或者头部一起发送

技术分享

八 数字证书

(一)证书的作用:公钥的存储和交换

公钥作为一个字段存储于数字证书中,证书的交换和传输即可传输/交换公钥(demo)

技术分享

技术分享


(二)基于证书的认证

基于可信任证书的认证方式被广泛的应用在现代安全领域,比如WIFI,HTTPS
在HTTPS中,典型的Client对Server的认证和鉴别基于可信任列表(demo)

Android平台安全概念篇