当前位置: 首页 > news >正文

1.HTTPS协议原理

https是对应用层http多加了一层软件层(加密层),加入了加密和解密(对正文)

概念:

  • 加密就是把 明文 (要传输的信息)进行一系列变换, 生成 密文 .
  • 解密就是把 密文 再进行一系列变换, 还原成 明文 .
  • 在这个加密和解密的过程中, 往往需要一个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为 密钥

运营商劫持

实例:下载一个天天动听软件,点击下载后,下载链接变成了下载qq浏览器的链接

        由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器, 交换机等), 那么运营商的网络设备就可以解析出你传输的数据内容, 并进行篡改.
为什么要对http请求进行加密?

        因为http的内容是明文传输的,明文数据会经过路由器、wifi热点、通信服务运营商、代理服务器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是 中间人攻击 ,所以我们才需要对信息进行加密。

常见加密方式

        对称加密:单密钥的加密方法,同一个密钥可以进行加密和解密

特点:算法公开,计算量小,加密速度快

        非对称加密:两个密钥用来进行加密和解密,分为公开密钥和私有密钥

        常见算法:RSA,DSA,ECDSA、

        特点:算法强度复杂,安全性依赖算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密速度快(

        公钥和私钥是配对的,最大缺点就是 运算速度非常慢 ,比对称加密慢很多。

两种方式:

1)公钥加密,私钥解密(只有私钥能解,解密的人少,用这种多)

2)公钥解密,私钥加密(私钥才能加密)

        数据指纹(数据摘要),基本原理:利用单向散列函数(Hash函数)对信息进行运算,生成一串固定长度的数字摘要(数据指纹并不是一种加密机制(加密需要包含加密和解密),但可以用来判断数据有没有被篡改)

        摘要常见算法:MD5,SHAI,SHA256,SHA512,算法把无限的映射成有限,因此可能会有碰撞(概率极低)

        摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常用来进行数据对比

        文章(文本)和二进制都可以使用hash摘要 -> 生成固定长度的字符串

        场景1:服务器放在公网上,数据库主机放在服务器的子网中,就可以提高查询数据库的安全性;但如何保证数据库内部的数据安全性?账号和密码这种可以存其对应的数据摘要。

        场景2:客户端张三向网盘传一部电影A,他上传到网盘上了。后来李四也传电影A,李四立马就传完了(秒传)。分析:第一次张三传的时候,网盘服务端 将电影A在本地用hash算法形成了数据摘要,保存了下来。第二次李四传的时候,网盘客户端 把李四要传的电影A用同样hash算法形成摘要,传递摘要,网盘服务端进行搜索,找到了,就说明历史文件存在,关联一下就行了(秒传)。

加密方案推导

方案一:只使用对称加密

缺陷:首次的时候,无法同步双方的密钥X(无法对密钥做加密,鸡生蛋,蛋生鸡)

方案二:只使用非对称加密(只一边创建公钥私钥)

缺陷:

1)看起来只能保证一边的安全性,即拿着公钥加密一端向持有私钥一端发(实则一边都保证不了)
2)运算速度非常慢

方案三:双方都使用非对称加密
缺陷:

1)双方都用对方的公钥进行加密,双方的私钥进行解密(看起来两边通都安全,实则不安全)

2)运算速度非常慢

方案四:非对称加密+对称加密

        过程:客户端向服务端发起请求,服务端创建公钥S,私钥S',应答把公钥S发给客户端。客户端创建对称密钥X,用公钥S给对称密钥X加密,发送给服务端。服务端收到数据,用私钥S'解密得到对称密钥X后,返回应答。从此往后,客户端和服务端都用这个对称密钥X进行通信(解决了通信的效率问题)

缺陷:还是和方案三一样不安全

为什么方案三和方案四不安全?

中间人攻击情况分析:

前提:中间人在一开始客户端和服务器还没通讯时就已经在了

过程:
1)客户端向服务端发送请求,服务端创建公钥S,私钥S',返回公钥S。
2)这时服务端公钥S被中间人拦下来了,中间人保存公钥S,中间人创建自己公钥M,私钥M',
将自己的公钥M发给客户端
3)
客户端这时就误以为它拿到了服务端的公钥,实则是中间人的,创建对称密钥X,用中间人公钥M加密X,发送给服务端

4)发送给服务端过程中被中间人拦下,中间人用私钥M',解析得到客户端对称密钥X。它再用服务端公钥S给对称密钥X加密,发给服务端,服务端用S'解析得到X。

        这时,中间人就完美隐身了,客户端和服务端都是通过对称密钥X加密解密的,中间人有X,所有的数据中间人都能知道。

CA认证(解决客户端无法识别公钥是否合法)

理解数据签名

签名过程:数据通过使用hash函数得到一个散列值(数据摘要),用非对称私钥进行加密得到签名。数据+签名打包起来发送,打包后叫做证书。

验证过程:证书拿到后,进行拆分,数据部分使用与签名过程同样的hash函数得到数据摘要,非对称公钥对签名部分进行解密得到数据摘要,对比两个数据摘要,如果一样验证成功,可以信任;反之不可信任,丢弃。

细节:

谁来签名?CA机构,CA机构拥有私钥,有签名的权利。

验证的公钥哪来的?浏览器等都要内置CA机构的公钥对签名进行解密

        因为世界上只有CA机构具有私钥,那么只有CA机构有签名的权利(大家都认的公钥进行解密,那么只有私钥持有者具备签名权利)

解决客户端无法识别公钥的合法性:

client第一次请求,返回结果,得到的是一个证书(包含公钥)。

证书:一份明文数据+携带了签名

方案五:对称加密+非对称加密+证书认证

        服务端申请证书,CA机构根据提交的.csr文件形成数据,数据加密后形成数据摘要,CA用私钥进行加密得到签名,签名和数据一起打包(证书)发送给服务端,服务端申请证书成功。

        服务端使用https协议,客户端发请求时,服务端发送证书。客户端收到证书,用CA公钥进行解密然后验证服务端公钥的合法性,合法则得到服务端公钥。后续正常按对称+非堆成的方式走(双非一对,CA非对称,服务端非对称,服务端和客户端对称)

如果这个过程中有中间人怎么办?

情况分析:
1)对证书进行局部篡改

        1.对签名篡改:签名篡改了,客户端用公钥进行解密会失败,即使没有失败,解密出来的数据摘要验证也会失败。

        2.对数据进行篡改:客户端用公钥解密后,对比数据摘要验证不通过

2)对证书进行整体篡改

        整体篡改,即直接换一个完整证书。如果证书合法,验证不会通过,因为证书上带了域名,可以根据域名的差异进行识别;如果证书不合法,验证也会不通过,因为验证时数据摘要会不同。

即:证书无法被局部篡改 或 整体篡改

        总结:加了证书和验证这个过程,客户端就可以确定服务端公钥合法性了,后续就可以安全通信了。

细节点:

为什么摘要内容在网络传输的时候一定要加密形成签名?

        如果黑客把 数据和摘要内容 一起篡改了,数据的哈希值还是摘要内容,客户端分辨不出来。

为什么签名不直接加密,而是要先hash形成摘要?

        缩小签名密文的长度,加快数字签名的验证签名的运算速度。

如何成为中间人

        ARP欺骗:在局域网中,hacker经过收到ARP Request广播包,能够偷听到其它节点的 (IP, MAC)地址。例,黑客收到两个主机A, B的地址,告诉B (受害者) ,自己是A,使得B在发送给A 的数据包都被黑客截取

        ICMP攻击:由于ICMP协议中有重定向的报文类型,那么我们就可以伪造一个ICMP信息然后发送给局域网中的客户端,并伪装自己是一个更好的路由通路。从而导致目标所有的上网流量都会发送到我们指定的接口上,达到和ARP欺骗同样的效果

        假wifi && 假网站等

http://www.dtcms.com/a/439003.html

相关文章:

  • 中山网站制作建设深圳网站设计 深圳市利
  • FontViewOK(字体管理软件) 多语便携版
  • Day90 基本情报技术者 单词表26 ソフトウェア品質管理
  • 腾讯开源啦,源码地址+部署脚本,工业级原生多模态
  • 参与网站网站建设连云港北京网站建设
  • 如何建设自己的网站 知乎wordpress 无广告视频插件
  • 算法 - FOC开环速度控制
  • 企业建设网站费用福建省建设厅网站信用评分
  • 北京私人做网站请seo的人帮做网站排名
  • 网站建设基础策划书网站做跳转会有什么影响
  • 网站建设怎么销售数据库网站
  • 做企业网站安装什么系统好google 网站优化工具
  • 网站内容分析阿里云备案网站建设方案书
  • 一键免费生成网页的网站wordpress做的外贸网站6
  • 域名注册网站那个好wordpress文字幻灯片
  • MySQL 8.0 InnoDB ReplicaSet 完整配置指南与切换
  • PCB学习——STM32F103VET6-STM32接口部分
  • [光学原理与应用-480]:《国产检测设备对比表》
  • 再谈Linux多进程——进程处理与守护进程
  • 广东平台网站建设制作大型网站只做要多少钱
  • 【LLM】基于ms-Swift大模型SFT和RL训练
  • 基于VisionMaster实现数据实时存储至MySQL
  • 文化共享工程网站建设情况做外贸比较好的网站
  • 淮安建设工程协会网站查询建立网上商城应考虑哪些问题
  • 五华网站建设 优帮云wordpress用户私信功能
  • MVC架构模式与三层架构的关系详解
  • 建设网站个人简介范文下载安装wordpress 主题
  • Swift 算法剖析:如何保证分块解析 Data 不发生数据割裂?(下)
  • 基于ArcGIS实现Shapefile转KML并保留标注
  • KTV 80.3.0| 电视K歌软件,完全免费,曲库丰富