美文网首页
Android安全一、六种通用核心安全机制

Android安全一、六种通用核心安全机制

作者: flynnny | 来源:发表于2020-10-13 00:26 被阅读0次

一、安全概述

1、安全要解决什么问题

在典型场景中,安全主要用于解决4类需求:保密、鉴别/认证、完整性、不可否认性

2、日常中的密码术

字母加密、藏头诗、倒写文(任何规则都可以定义密码术)
为什么不自己发明和使用新的密码术(不公开的密码术安全性未知,安全未受验证;不知是否留有后门)
所以好的密码术:算法公开秘钥保密。(算法与秘钥的分离)

二、对称加密概述

1、典型的加密模型

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

加密1.png
2、对称秘钥算法

1、对称的含义
加密端和解密段使用的同一个密钥。
2、置换加密,转置加密和乘积密码
置换加密:顺序不变,对于原始字符变换。每一组字母用另外一组字母替换。
转置加密:原始字符不变,顺序变换
乘积密码:置换和转置迭代
3、DES(Data Encryption Standard 数据加密标准)
一种乘积密码,取8个字节64位为一个基本加密单元,经过19道工序(乘积密码反复迭代),密钥是7个字节共56位。后来改为三重DES(做三次转换加强强度)
4、AES(Advanced Encryption Standard 高级加密标准)
本质内部还是乘积密码,取128位为一个基本加密单元,密钥可用128位、192位、256位。
5、应用场景
发送邮件加密、视频文档加密。
6、有什么问题
密钥如何保密、密钥如何交换------非对称加密

三、非对称加密概述

1、非对称加密模型
加密2.png

加密密钥≠解密秘钥

2、公钥和私钥

加密密钥K称为公钥,解密秘钥K'称为私钥 。
两者都是解密方生产的。
加密密钥是公开的,解密秘钥需要解密方保管。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。

3、公钥算法的理论基石

建立在分解大数的困难度、和以大素数为模来计算离散对数的困难度(非常困难)

4、RSA算法

由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
建立在分解大数的困难度
公钥/私钥长度至少1024bit。

四、密钥交换概述

1、对称加密的优缺点

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

2、公钥密码算法的优缺点

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

3、实际的保密会话应用场景

基于高效的对称加密算法对会话进行加密
会话密钥实时产生且周期变化
基于其他足够安全的方式进行会话密钥的传输和交换

4、利用公钥密码来交换会话密钥

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

5、其他的密钥交换方式

Diffie-Hellman 密钥交换协议:
基于以大素数为模计算离散对数的困难度。
双方各自选定Key,然后以一定算法变换(使得Key不以明文传输)后传输给对方。
双方利用对方交换来的数据和自己选定的Key做变换,获得一个一致的结果,作为会话密钥。

五、消息摘要概述

1、HASH与散列函数的定义与特点

HASH翻译成散列或者哈希:变长的输入变换成定长的输出
常见的HASH算法:MD5(128bit),SHA1(160bit)
特点:
易变性:原始信息发生1bit变化,输出将会有不可预知的巨大变化
不可逆:通过结果构造出满足的输入时不可能或者极其困难的

2、消息摘要和数字指纹

通常把HASH或者散列的算法和函数叫做数字指纹/消息摘要。

3、HASH的应用场景:

文件下载时的MD5
消息传送时尾部额外传MD
恶劣环境传输的完整性和未受损坏
HTTP的Basic和Digest认证
手机登录密码和隐藏MMI的设计
...

防篡改、防损坏、认证和鉴别

6、HMAC(基于HASH的消息认证)

存在问题:
篡改内容同时篡改数字指纹。
直接对密码做HASH传输的认证的问题(重放攻击)
HMAC如何解决的:
使用Key对原始消息变换后再进行HASH

六、电子签名概述

1、签名要解决什么问题

内容完整性的保护
签名人的不可否认性

2、公钥密码术的两面性

电子签名场景:使用私钥加密,对端可以用公钥解密(并非所有公钥密码术都支持,RSA支持)

加密3.png
3、HASH+公钥密码术:成就电子签名

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


加密4.png

七、证书与PKI概述

1、证书作用:公钥的存储和交换

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

加密5.png
2、证书作用:现代信任基石

利用签名来保护数字证书本身
demo:

加密6.png
3、证书链和PKI

颁发者回溯到根证书,看是否在安全列表里
约束:Type约束、有效期、用法约束

PKI:公钥基础设施,一个典型的PKI系统包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等。

4、基于证书的认证

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

相关文章

网友评论

      本文标题:Android安全一、六种通用核心安全机制

      本文链接:https://www.haomeiwen.com/subject/melupktx.html