定义

安全的超文本传输协议,使用传输层安全性(TLS)安全套接字层(SSL)对通信协议进行加密。也就是 HTTP + SSL(TLS) = HTTPS。

用途

加密

数据一致性

身份认证

认识 SSL/TLS

TLS(Transport Layer Security)SSL(Secure Socket Layer) 的后续版本,它们是用于在互联网两台计算机之间用于身份验证加密的一种协议。

SSL 即安全套接字层,它在 OSI 七层网络模型中处于第五层,SSL 在 1999 年被 IETF(互联网工程组)更名为 TLS ,即传输安全层,直到现在,TLS 一共出现过三个版本,1.1、1.2 和 1.3 ,目前最广泛使用的是 1.2,所以接下来的探讨都是基于 TLS 1.2 的版本上的。

TLS 用于两个通信应用程序之间提供保密性和数据完整性。TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术

SSL 是一个独立的协议,不只有 HTTP 可以使用,其他应用层协议也可以使用,比如 SMTP(电子邮件协议)Telnet(远程登录协议) 等都可以使用。

TLS 在根本上使用对称加密非对称加密 两种形式。

对称加密

定义

一个密钥,它可以加密一段信息,也可以对加密后的信息进行解密

缺点

如何让双方都用同一个密钥进行数据加密,同时不被别人知道

非对称加密

定义

两把密钥,通常一把叫做公钥、一把叫私钥,用公钥加密的内容必须用私钥才能解开,同样,私钥加密的内容只有公钥能解开。

流程

客户端需要向服务器发送一条数据,浏览器需要保障数据的安全性,加密流程如下:

某网站服务器拥有公钥A与对应的私钥A’
客户端请求服务器的公钥A,公钥A是公开的,可以明文传输
客户端使用公钥A进行加密,将加密的数据发送给服务器
服务器收到数据,使用私钥A`进行解密,拿到数据
反之,服务器向客户端发送数据也是同样的流程。

缺点

非对称加密算法在解决了双方交换密钥的问题,但非对称加密算法非常耗时,而对称加密快很多

非对称加密+对称加密

定义

用非对称加密完成对称加密的密钥交换,之后再用对称加密进行加密

流程

某网站拥有用于非对称加密的公钥A、私钥A’。
浏览器向网站服务器请求,服务器把公钥A明文给传输浏览器。
浏览器随机生成一个用于对称加密的密钥X,用公钥A加密后传给服务器。
服务器拿到后用私钥A’解密得到密钥X。
这样双方就都拥有密钥X了,且别人无法知道它。之后双方所有数据都通过密钥X加密解密即可。

缺点

某网站有用于非对称加密的公钥A、私钥A’。
浏览器向网站服务器请求,服务器把公钥A明文给传输浏览器。
中间人劫持到公钥A,保存下来,把数据包中的公钥A替换成自己伪造的公钥B(它当然也拥有公钥B对应的私钥B’)。
浏览器生成一个用于对称加密的密钥X,用公钥B(浏览器无法得知公钥被替换了)加密后传给服务器。
中间人劫持后用私钥B’解密得到密钥X,再用公钥A加密后传给服务器。
服务器拿到后用私钥A’解密得到密钥X。
通过这一通操作,攻击者就知道服务器和浏览器之间的公钥了,这样,对称加密就形同虚设了。
为什么会发生这样的事?因为浏览器拿到公钥的时候,他无法确定这个公钥是服务器的。在传输过程中,公钥被篡改,一方用篡改后的公钥加密,非对称加密形同虚设。

image-20220801121831914

数字证书

如何证明浏览器收到的公钥一定是该网站的公钥?这个时候,就要引入第三方机构了,也被称作CA机构

定义

网站只需要向CA机构申领一份数字证书,这份证书里面,包括了网站的公钥网站的域名和其他一些网站基本信息。

然后CA机构用自己的私钥对证书进行加密,同时生成一段密文,这段密码就叫做数字签名

生成

CA机构拥有非对称加密的私钥和公钥。

网站需要申请数字证书,只需将自己网站的数据给CA机构(网站公钥网站域名等)

CA机构对证书明文数据进行hash。

对hash后的值用私钥加密,得到数字签名

image-20220801122115575

检验

拿到证书,从证书中得到公钥数字签名等数据。
用 CA 机构的公钥对数字签名解密(浏览器内置CA机构的公钥),得到S。
用 hash 算法对明文进行hash得到T。
所以此时比较 S 是否等于 T ,等于则表明证书可信。如果证书的数据没有被改动过, S 和 T 应该是相同的,则证书可信任,浏览器就用证书中的公钥加密数据。
如果S和T,则说明证书已被篡改,证书不可信,从而终止向服务器传输信息,防止信息泄露给中间人。

数字签名是用 CA 机构的私钥加的密,只能用公钥来解密

证书里包含了网站A的信息,包括域名,浏览器把证书里的域名与自己请求的域名比对一下就知道有没有被掉包了

一般浏览器会内置主流的CA机构的公钥

最后修改:2022 年 08 月 01 日 12 : 33 PM
赏杯咖啡喝 谢谢您~