https建立的过程

首先知道httphttps有什么区别?

  • http使用端口80,https使用端口443
  • http运行在TCP协议上,所传输的内容那个都是明文,https运行在SSL/TLS上,SSl/TLS是运行在TCP上,所传输的内容是经过加密的
  • https需要在CA(数字证书认证机构) 购买证书
  • http + 加密 + 认证 + 完整性保护 = https
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • 在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层

https建立的过程

在这里插入图片描述
1.客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。

2.采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书,证书是需要申请的,并由专门的数字证书认证机构(CA)通过非常严格的审核之后颁发的电子证书 (当然了是要钱的,安全级别越高价格越贵)。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。
在这里插入图片描述

3.服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。Chrome 浏览器点击地址栏的锁标志再点击证书就可以看到证书详细信息。

4.客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。就像下面这样:
在这里插入图片描述

5.客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。

6.服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。

7.服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

8.双方使用对称加密愉快地传输所有数据

该过程既使用了 对称加密也使用了非对称加密。在交换密钥期间都是使用非对称加密,建立之后使用对称加密。

  • 对称加密:加密和解密都使用同一把密钥
  • 非对称加密:一把叫作私有密钥,另一把叫作公开密钥,通过公钥加密的数据只能用私钥进行解密

由于https会消耗大量资源,网络负载会变慢,所以只有包含个人信息等敏感信息才会使用https进行通信。

CA机构解决了一个什么问题?

【信任链条问题】

  • 对称加密算法:双方需要事先知道加密解密的规则
  • 非对称加密算法:主要包括公钥和密钥,公钥加密,私钥解密,公钥不能被公钥解密(私钥加密,公钥解密)
    【加密过程】:客户端申请请求,服务器发送公钥给客户端,客户端拿到公钥去给自己要传输的数据加密,讲加密后的数据传送到服务器,服务器用自己的密钥解密。
    【可能出现的问题】:中间的不法分子,可以截取服务器发送给你的公钥,然后,伪造一个他自己的公钥传输给你,此时,你用假公钥封装了数据,传输后,他就可以用自己的密钥解开你的数据。这样你的数据就泄露了。
    【CA机构解决】:其实就是用自己的私钥对服务器的公钥再次加密,生成新的ca机构的公钥,也就是证书,然后,将ca机构自己的公钥,直接内嵌到操作系统中
    二次加密+CA公钥嵌入操作系统
    ca机构用自己的私钥对数据进行了二次加密
    客户端从操作系统获取到CA证书中的公钥,然后进行解密
  • 数字证书签发过程
    • 网站生成密钥对,将私钥自己保存,公钥和网站域名等信息提交给CA
    • CA把证书签发机构(自己)、证书有效期、网站的公钥、网站域名等信息以明文形式写入到一个文本文件
    • CA选择一个指纹算法(一般为hash算法)计算文本文件的内容得到指纹(也可理解成证书编号),用CA的私钥对指纹和指纹算法(生成指纹或者证书编号的方法)进行加密得到数字签名,签名算法包含在证书的明文部分
    • CA把明文证书、指纹、指纹算法、数字签名等信息打包在一起得到证书下发给服务器
    • 此时服务器拥有了权威CA颁发的数字证书以及自己的私钥
  • 证书验证过程
    • 浏览器以HTTPS协议请求服务器的443端口
    • 服务器下发自己的数字证书给浏览器
    • 浏览器先校验CA、有效期、域名是否有效,如果无效,则终止连接(服务器此时不可信任)
    • 如果有效,则从操作系统取出证书颁发机构的公钥,根据签名算法对数字签名解密得到证书指纹和指纹算法
    • 浏览器用解密得到的指纹算法计算证书的指纹(用指纹算法重新进行计算得到一份证书指纹),与解密得到的证书指纹进行比对,如果一致,证书有效,公钥也安全拿到了
    • 浏览器此时已经和真实的服务器进行通信了,中间人无法得知通信内容,因为中间人没有网站私钥

tcp和udp的区别

在这里插入图片描述

借鉴文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值