【linux】HTTPS 协议原理

1. 了解 HTTPS 协议原理

(一)认识 HTTPS

HTTPS 也是一种应用层协议,是在 HTTP 协议的基础上引入了一个加密层

因为 HTTP协议的内容都是按照文本的方式进行传输的,这个过程中,可能会出现一些篡改的情况

(二)认识 "加密" , "解密"

加密:把明文 (在网络上要传输的数据)进行一系列操作,生成密文(处理过后的数据)的过程

解密:把密文再进行一系列操作,还原成明文的过程

在这个加密和解密过程中,往往需要一个或者多个中间数据,来辅助这个过程,这样的数据叫做密钥

(三)常见的加密方式

  1. 对称加密

采用单密码的加密方法,同一个密钥可以同时用作信息的加密和解密

特征:

加密和解密所使用的密钥都是相同的

特点:

算法公开,计算小,加密速度快,加密效率高

  1. 非对称加密

需要两个密钥来进行加密和解密,这两个密钥一个是公开密钥(一般来说,是服务器交给客户端的),一个是私有密钥(一般来说,是服务器私有的,不会交给别人)

特点:

算法强度复杂,安全性高,但是效率低,速度慢

注意:

公有密钥和私有密钥是配对的,可以通过 公有密钥 解开 私有密钥的加密,也可以通过 私有密钥 解开 公有密钥的加密

(四)数据摘要(数据指纹)

数据摘要(数据指纹):基本原理是利用单向散列函数(hash表)对信息进行运算,生成一串固定的长度的字符串,它不是一种加密,但是可以判断数据是否发生篡改

摘要常见算法:MD5,SHA1 ........,算法只能尽可能减少数据冲突,确保唯一性

(五)数字签名

摘要经过加密,就得到数字签名

2. HTTPS 数据安全的探讨

要确保数据安全,只要是在于加密过程是否安全可靠,而加密主要分为两大类:对称加密和非对称加密

(一)方案1 ---- 只使用 对称加密

(二)方案2 ---- 只使用 非对称加密

(三)方案3 ---- 双方都采用 非对称加密

(四)方案4 ---- 非对称加密 + 对称加密

针对方案3,4共同拥有的安全缺陷问题

中间人是有可能获取所有在网络传输中的数据

以上方案都存在⼀个问题,如果最开始,中间⼈就已经开始攻击,从而造成不安全

最直接的原因是:客户端无法识别公钥是不是服务端的(这里需要引入一个概念:证书)

(五)⽅案 5 ---- ⾮对称加密 + 对称加密 + 证书认证

在客户端和服务器刚⼀建⽴连接的时候, 客户端给服务端发送请求,服务器给客户端返回一个证书,证书包含了之前服务端的公钥, 也包含了⽹站的⾝份信息

3. 证书

(一)CA认证

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信

息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端

公钥的权威性

这里还有一些细节:如,签名是什么,如何保证证书的内容不会被中间人修改

(二)理解数据签名

签名的形成是基于**⾮对称加密**算法的

把证书里面的明文信息变成数据摘要,再通过加密(CA 机构自身的私有密钥进行加密),得到数据签名

(三)验证证书

客户端进行认证:

  • 当客户端获取到这个证书之后, 会对证书进⾏校验(防⽌证书是伪造的).
  • 判定证书的有效期是否过期
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构)

查看浏览器的受信任证书发布机构:

设置 -- 安全 -- 管理证书

  • 验证证书是否被篡改

判断是否发生篡改,如图:

4. 常见问题

  • 为什么签名不直接加密,⽽是要先形成数据摘要?

缩⼩签名密⽂的⻓度,加快数字签名的验证签名的运算速度

  • 如何成为中间⼈?
  1. ARP欺骗:在局域⽹中,hacker经过收到ARP Request⼴播包,能够偷听到其它节点的 (IP, MAC)地址。例, ⿊客收到两个主机A, B的地址,告诉B (受害者) ,⾃⼰是A,使得B在发送给A 的数据包都被⿊客截取

  2. ICMP攻击:由于ICMP协议中有重定向的报⽂类型,那么我们就可以伪造⼀个ICMP信息然后发送给局域⽹中的客⼾端,并伪装⾃⼰是⼀个更好的路由通路。从⽽导致⽬标所有的上⽹流量都会发送到我们指定的接⼝上,达到和ARP欺骗同样的效果

  3. 假wifi && 假⽹站等

相关推荐
速盾cdn1 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211231 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin1 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao3 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
黑客Ash5 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy5 小时前
计算机网络(第一章)
网络·计算机网络·php
朝九晚五ฺ6 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream6 小时前
Linux的桌面
linux
xiaozhiwise6 小时前
Makefile 之 自动化变量
linux
摘星星ʕ•̫͡•ʔ7 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络