zsdnishishui的博客

唯有创造才是“真”

Https 概述

1. HTTP被攻击的手法

​ 由于http是明文传输,所以很容易遭受攻击。

1.1 偷窃

​ 获取http传输的内容,可以知道用户浏览了哪些内容,甚至能获取用户的密码。

1.4 篡改

​ 截获http的内容,并进行修改。

1.2 中间人攻击

​ 类似于在A与B之间加了一个C,AB之间的所有请求都会经过这个C。这个C可以修改、窃取信息。为了防止此情况的出现,需要认证机制。

1.3 重放攻击

​ 截获A–>B的一次认证通信,伪造成A,与B进行通信。

2. 密码学

​ 公钥密码体制根据其所依据的难题一般分为三类:大素数分解问题类、离散对数问题类、椭圆曲线类

2.1 密码

​ 用加密算法生成的一串密文

2.3 密钥

​ 使这串密文改变的参数。算法不变,传的那个参数就是密钥。

2.4 加密算法

2.4.1 对称加密

​ 双方都知道密钥

​ 举例:AES

2.4.2 非对称加密

​ 一个公钥,一个私钥。公钥是公开的。私钥只有发布人有。用公钥加密,私钥解密。

​ 举例:RSA,DH

​ –DH:在双方没有预先设定信息的情况下,就算加密过程被偷窥,也无法获取密钥的算法。

2.5 数字证书

​ 由受信任的组织颁发的用于证明真实身份(公开密钥)的证书。此文件包含公钥信息,拥有都的身份信息,数字证书认证机构对这份文件的数字签名。

2.6 数字签名

​ 用非对称加密算法,生成的签名,并且会对比双方生成的签名或原文是否一样。能够用于文件完整性校验,和防篡改。

2.7 电子签章

​ 指依附于电子文件的章,用于判断发行人的真伪。

2.8 前向保密

​ 防止回溯性破解的算法。就算密钥泄露了,也不会导致历史数据被破解。应用在 最新版的TLS1.3中。

3. SSL/TLS协议

3.1 历史演变

3.1.1 版本变化

​ SSL 1.0 –> SSL 2.0 –> SSL 3.0 –> TLS1.0 –> TLS1.1 –> TLS1.2 –> TLS1.3

3.1.2 加密算法的演变

​ 无法做到前向保密的算法被丢弃,比如:RSA,DH。但是对称加密AES被保留了下来。

3.2 SSL握手

​ 目的是:获取两边都都知道的会话密钥(对称密钥),以便加密信道

​ 由于此阶段是明文传输,要防止密钥泄漏,就需要相互认证。

​ (1)客户端创建安全连接(443端口),并提供可供选择的密码包。

​ (2)服务端选择密码,并返回证书。

​ (3)利用证书中的公钥加密会话密钥,并传回服务端,服务端用私钥解密,获取会话密钥。

​ (4)相互告知并开始建立加密信道。

3.3 SSL握手之后

​ 对请求报文进行加密(对称加密,密钥是SSL握手后获取的会话密钥),通过TCP层进行传输。

3.4 优点

​ 可扩展性好,可以合许多其它协议配合,比如FTP,Telnet,UDP。防篡改,防泄密,防造假。