【网络协议】应用层协议HTTPS

文章目录

为什么引入HTTPS?

由于HTTP协议在网络传输中是明文传输的,那么当传输一些机密的文件或着对钱的操作时,就会有泄密的风险,从而引入HTTPS来保证数据在网络传输中的安全。

基本概念

HTTPS 协议是 HyperText Transfer Protocol Secure(超文本传输安全协议) 的缩写,是一种通过计算机网络进行安全通信的传输协议。

HTTP 本身是不安全的,因为传输的数据未经加密,可能会被窃听或篡改,为了解决这个问题,引入了 HTTPS,即在 HTTP 上加入 SSL/TLS 协议,为数据传输提供了加密和身份验证。

HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包,HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。

HTTP 的 URL 是由 http:// 起始与默认使用端口 80 ,而 HTTPS 的 URL 则是由 https:// 起始与默认使用端口443

加密的基本过程

我们将网络中要传输的还未加密的数据称为"明文",称加密的工具为"密钥",被加密后的数据称为"密文"。

在发送端传输数据之前,使用密钥对数据进行加密,当加密后的数据到接收端时,接收端再使用密钥对密文进行解密,拿到信息。

解密算法主要是分为对称加密非对称加密
非对称加密的安全性更高一些。

对称加密

对称加密 就是加密和解密使用同一把密钥:

这时,就会出现一个问题,每个服务器是给多个客户端服务的,一旦客户端的数量过多,那么服务器负载就会严重,此时又引入下面的做法:

每次在客户端和服务器进行通信时,客户端跟服务器要先约定好密钥,再进行通信,这样做就不必再服务器存入每一个客户端的密钥了。

这时,又又有一个问题,在客户端和服务器在沟通使用哪个密钥时,被黑客窃取到信息,那该怎么办呢?这时就引入了非对称加密

非对称加密

非对称加密就是加密和解密使用的密钥不是同一把。一个叫"公钥",一个叫"私钥",公钥和私钥之前是配对的,但是这个加密解密的过程非常慢,所以一不使用非对称加密,只是在协商密钥时使用。

这里的流程如下:

  1. 服务器生成私钥和公钥
  2. 服务器保存私钥,将公钥告知给客户端(所有人都能拿到公钥)
  3. 客户端使用公钥对协商使用哪个(对称加密)密钥的信息进行加密,传递给服务器
  4. 服务器在拿到信息后,使用私钥进行解密,获得信息,之后就使用协商的(对称加密)密钥来进行解密

但这个过程还是存在风险,这就是中间人攻击要讲解的内容了。

中间人攻击

如上

黑客面对客户端时,就充当服务器的角色

面对服务器时,就充当客户端的角色。

兵来将挡水来土掩,那么这个问题又该如何解决呢?

这时引入了证书

证书

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书 ,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性

这个证书实际上是一个结构化的字符串,包含如下信息:

  • 证书发布机构
  • 证书有效期
  • 公钥
  • 证书拥有者
  • 持有者网站的主域名
  • 数字签名

这其中的数字签名是这些信息中最重要的一个。

数字签名是怎样得来的呢?

  1. 公证机构在颁布这个证书的时候会生成一对 "公钥"和"私钥"
  2. 对证书中的信息(发布机构、有效日期、公钥等)生成校验和
  3. 再用"校验和"和"私钥"进行非对称加密 生成数字签名

有了证书后,客户端和服务器的通信过程又发生了一些变动。

如何对证书进行检验呢???

  1. 针对证书的字段计算校验和。得到校验和1
  2. 针对数字签名 进行解密
    前面已经讲过,数字签名是公证机构使用私钥进行加密的,这时解密就需要公证机构的公钥来解密了。
    这里的公钥已经保存在操作系统中。(证书发布,操作系统就会将这个证书连同他的公钥一同存入到操作系统中)
    拿到公钥后,对数字签名进行解密,得到校验和2
  3. 比对校验和1和校验和2,如果相等,就说明证书是真的,也就代表证书中的公钥是真的
  4. 拿到真的公钥来进行后续的操作。

以上就是本文所有内容,如果对你有帮助的话,点赞收藏支持一下吧!💞💞💞

相关推荐
梁辰兴10 分钟前
计算机网络基础:TCP可靠传输的实现
网络·tcp/ip·计算机网络·tcp·可靠传输·计算机网络基础·梁辰兴
上海云盾第一敬业销售38 分钟前
游戏盾在保障游戏安全方面的独特优势
网络·安全·游戏
乾元1 小时前
暗网情报:自动化采集与情感分析在威胁狩猎中的应用
运维·网络·人工智能·深度学习·安全·架构·自动化
小李独爱秋1 小时前
计算机网络经典问题透视:简述一下无线局域网中的NAV
服务器·网络·计算机网络·信息与通信·nav
Diros1g1 小时前
ubuntu多网卡网络配置
网络·ubuntu·php
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 小时前
双主模式实现HTTP与MySQL高可用
网络协议·mysql·http
G31135422732 小时前
本地部署和云端部署的优缺点
网络
噔噔君2 小时前
蜂窝网络模组的MQTT功能
网络
WuLaHH2 小时前
可靠UDP协议RUDP
单片机·网络协议·udp
HaiLang_IT2 小时前
【信息安全毕业设计】基于双层滤波与分割点改进孤立森林的网络入侵检测算法研究
网络·算法·课程设计