TCP/IP协议二十二:HTTPS/SSL协议详解(2)HTTPS三次握手及其详解

TCP/IP协议二十一:HTTPS/SSL协议详解(1)加密原理
参考:
https://blog.csdn.net/lqy971966/article/details/125391235

1. HTTPS/SSL

1.1 HTTPS背景:

HTTP在传输数据时使用的是明文是不安全的,为了解决这一隐患网景公司(Netscape)推出了SSL安全套接字协议层。
SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是HTTP+SSL/TCP的简称,Https默认使用端口443

2.1 SSL:

SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。
现在有1,2,3 ,总共3个版本,现在基本使用3.0。

2.1.1 SSL协议组成:SSL记录协议+ SSL握手协议

记录协议(SSL Record Protocol):

它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

SSL握手协议(SSL Handshake Protocol):

它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

2.2.2 SSL协议认证流程

1. 客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接
2. 服务器根据客户的信息确定是否需要生成新的秘钥对,如需要则服务器在响应客户的“Hello”信息时将包含公钥
3. 客户根据收到的服务器响应信息,产生一个密钥对,并用服务器的公钥加密后将自己的公钥传给服务器;
4. 服务器用私钥解密客户端的公钥,并返回给客户一个用客户端公钥加密的信息,以此让客户认证服务器。

2.2 TLS

2.2.1 TLS说明

可以说TLS就是SSL的新版本3.1

(Transport Layer Security,安全传输层协议)。
TLS是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议。

TLS/SSL是一种加密通道的规范。它利用对称加密、公私钥不对称加密及其密钥交换算法,CA系统进行加密且可信任的信息传输。

IETF对SSL3.0进行了标准化,并添加了少数机制(但是几乎和SSL3.0无差异),标准化后的IETF更名为TLS1.0,可以说TLS就是SSL的新版本3.1。 总共有1.0,1.1,1.2三个版本,默认使用1.0

2.2.2 SSL和TLS的区别

在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制,标准化后的IETF更名为TLS1.0(Transport Layer Security 安全传输层协议),可以说TLS就是SSL的新版本3.1。也可以将TLS看作SSL的升级版

2.3 HTTPS握手过程详解

1. 首先是tcp的三次握手建立连接

在这里插入图片描述

2. client发送它支持的TLS版本、随机数client-random和它所支持的加密套件集合(clientHello)

在这里插入图片描述

3. server收到信息,返回所支持的TLS版本,选取其中一个加密套件和随机数service-random(serverHello),
	随后把数字证书也发给服务端

在这里插入图片描述

4. client验证证书有效性,并用client-random+service-random生成随机数pre-master
	并通过服务器公钥对其加密,称为预主密钥,发送给server

在这里插入图片描述

5. server收到加密后的预主密钥,用私钥解密,得到预主密钥,
	根据约定的加密算法对client-random+service-random+预主密钥生成master-secret(会话密匙),然后发送预定成功

在这里插入图片描述

6. client也生成同样的master-secert(会话密钥),秘钥传输完毕
7. 接下来传输数据。

在这里插入图片描述

RSA 非对称加密原理
https://blog.csdn.net/jijianshuai/article/details/80582187
https://blog.csdn.net/luo_boke/article/details/114220450

2. 数字证书

2.1 数字证书的重要性

数字证书可以确认其内含的公钥确实是这个证书的所有者(Subject)的,或者证书可以用来确认对方的身份。
也就是说,我们拿到一个数字证书,我们可以判断出这个数字证书到底是谁的。

确保了证书的安全可靠才能确保,Https通信传递信息的安全可靠。

2.2 数字证书的特点:

1. 证书有效期: 有效期一般12个月起
2. 证书指纹:证书发布之前会对对证书进行Hash值计算,
			然后继续用证书签名算法和私钥对hash值进行加密获得结果为指纹
3. 证书使用者:一般是指申请证书的网站域名
4. 签名算法:指的是这个证书的数字签名加密算法,如sha256RSA算法。
			为了加密原始证书指纹,确保源信息指纹不会被篡改
5. 签名哈希算法:又称指纹算法,截图中采用的是sha256算法,
				通过该算法可以对信息内容进行hash值V2得计算

2.3 证书发布

在证书的发布机构发布证书时,证书的指纹和指纹算法都会加密后再和证书放到一起发布,以防有人修改指纹后伪造相应的数字证书。这里的是用发证机构自己的私钥进行加密的

用户获得数字证书后,可以用证书发布机构的公钥(RSA算法)对指纹和指纹算法解密,也就是说证书发布机构除了给别人发布证书外,他自己本身也有自己的证书。

2.4 证书的发布及使用流程:

图:
在这里插入图片描述

2.5 证书申请及验证流程:

图:
在这里插入图片描述

参考:
https://blog.csdn.net/luo_boke/article/details/106018128
TLS/SSL 工作原理及握手过程详解
https://blog.csdn.net/qq_38289815/article/details/107591115

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值