【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 && 假⽹站等

相关推荐
watermelonoops1 小时前
Deepin和Windows传文件(Xftp,WinSCP)
linux·ssh·deepin·winscp·xftp
疯狂飙车的蜗牛2 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
远游客07134 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<4 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟4 小时前
centos-stream9系统安装docker
linux·docker·centos
超爱吃士力架5 小时前
邀请逻辑
java·linux·后端
fantasy_arch5 小时前
CPU性能优化-磁盘空间和解析时间
网络·性能优化
cominglately7 小时前
centos单机部署seata
linux·运维·centos
魏 无羡7 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
CircleMouse7 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos