这篇文章我来梳理一下HTTPS的前世今生

目录

1.对称加密算法

2.非对称加密算法(RSA)

3.非对称加密+对称加密

4.中间人攻击劫持

5.CA证书


HTTP我们都知道它存在很多问题,例如:

1).通信使用明文,内容可以被监听

2).不验证通信方的身份,可能遭遇伪装

3).无法证明报文的完整性,所以有可能已遭篡改


互联网上的任何角落都存在通信内容被监听的风险,所以前辈们就想到了为我们的信息制定,加密、认证、完整性保护的措施。通过这些措施,为我们的通信制造出一个安全的通道。


开头说过HTTP是“披上了SSL战甲的HTTP战士”,那么SSL是什么呢?

SSL(Secure Socket Layer)是由浏览器开发商景通信公司率先倡导的,是为网络通信提供安全及数据完整性的一种安全协议。SSL1.0设计之初就发现了问题,并没有投入使用。SSL2.0也发现存在问题,所以很多浏览器直接废除了这个版本。所以目前主流版本是SSL3.0。


下面来聊一下HTTP的升阶之路吧:

1.对称加密算法

定义:加密和解密用的是同一把密钥

如果通信使用明文,就相当于一丝不挂的逛街,所以前辈想到了,为我们的通信加密。决定通过密钥解开密文的方式解决这个问题。

问题:加密和解密都需要用到密钥,密钥也需要通过网络传送,很容易被劫持,一旦被劫持,加密也就失去了意义。


2.非对称加密算法(RSA)

定义:一对钥匙,一个是保密的(私钥);一个是公开的(公钥)。只有对应的私钥和公钥可以互相解密。

上面的对称加密算法,很容易被劫持,所以不安全。那么使用非对称加密算法的时候,小红把自己的公钥发给小名,小名把要发给小红的消息通过小红的公钥加密,发送给小红。小红收到小名的消息后,拿自己密钥解锁就可以了。

问题:非对称算法的方式的公钥加密方式比对称加密的方式复杂百倍,所以在通信的时候使用这种方式,效率会很低。


3.非对称加密+对称加密

方法

1).小红生成一个对称加密算法的密钥,通过非对称加密的算法(小红用公钥加密对称算法的密钥)发送给小名。

2).小名接收到对称加密算法的密钥后,小名、小红之间就直接通过对称加密算法通信了。

问题:存在中间人劫持的问题,无法确保此时小名收到的是小红的公钥。


4.中间人攻击劫持

原理如下图

过程:

1).中间人截取小名和小红互发的公钥,并给两人发送自己的公钥,此时小名和小红误以为街道的是对方的公钥,但是此时他俩手持的是中间人的公钥;

2).小名使用 公钥(中间人) 加密要发送给小红的消息;

3).中间人接到小名发给小红的消息,用 私钥(中间人)解密读取信息,并用 公钥(小红) 加密,发送给小红;

4).小红用自己的 私钥(小红) 解密,读取信息。


5.CA证书

为了解决上面的问题,前辈们决定使用由数字证书认证机构(CA)颁发的数字证书。

1.数字证书:

数字证书的组成

1).小红的公钥以及小红的个人信息通过Hash算法得到消息摘要;

2).将消息摘要通过CA的私钥加密得到数字签名.

2.数字证书的验证:

验证方法:

1).通过相同的Hash算法,得到消息摘要,

2).通过CA的公钥对数字签名解密,得到CA的消息摘要,

3).两者对比,看是否被篡改

把上文中的小名换做客户端,小红换做服务器就是HTTPS的流程图了。


文章是通过阅读《码农翻身》、《图解HTTP》的一些个人学习总结,所以如果各位发现我的理解有误,希望大家能够留言帮我指正,谢谢大家啦

披上了SSL战甲的HTTP战士——HTTPS相关推荐

  1. tomcat配置重定向_在Tomcat上配置SSL以及从HTTP到HTTPS的设置自动重定向的步骤

    tomcat配置重定向 Secured Socket Layer (SSL) is the cryptography protocol to provide message security over ...

  2. WINDOWS SERVER 2003从入门到精通之使用证书在WEB服务器上设置SSL(下)

    7.提交证书申请: 使用IE浏览器打开本地WEB站点进入证书申请页面,如下: 选择申请证书 选择"高级证书申请": 在提交一个证书申请中选择后者"BASE64编码的证书申 ...

  3. 在Jetty服务器上安装SSL证书

    在Jetty服务器上安装SSL证书 阿里云SSL证书服务支持下载证书安装到Jetty服务器,从而使Jetty服务器支持HTTPS安全访问.本文介绍了证书安装的具体操作. Jetty服务器版本确认.建议 ...

  4. 在Apache服务器上安装SSL证书

    在Apache服务器上安装SSL证书 本页目录 前提条件 操作步骤 后续操作 相关文档 阿里云SSL证书服务支持下载证书安装到Apache服务器,从而使Apache服务器支持HTTPS安全访问.本文介 ...

  5. 在IIS服务器上安装SSL证书

    在IIS服务器上安装SSL证书 本页目录 前提条件 操作步骤 相关文档 阿里云SSL证书服务支持下载SSL证书安装到IIS服务器上,从而使IIS服务器支持HTTPS安全访问.本文介绍了证书安装的具体操 ...

  6. 在Nginx/Tengine服务器上安装SSL证书

    在Nginx/Tengine服务器上安装SSL证书 阿里云SSL证书服务支持下载证书安装到Nginx/Tengine服务器上,本文介绍了证书安装的具体操作. 背景信息 本文档以CentOS 7.Ngi ...

  7. Mac 上制作 SSL 证书

    前言 我们在开发 https 服务时,需要引入相应的 SSL 证书. 今天,我就自己在 Mac 上制作 SSL 证书的过程做个记录. 环境 MacOS 10.15.7 工具 openssl 步骤 第一 ...

  8. 让我们在Ubuntu 18.04上加密SSL证书来保护Nginx

    什么是SSL证书? (What is SSL Certificate?) Over time, cases of internet related security breaches have bee ...

  9. 如何在苹果iPhone或iPad上启用SSL证书

    SSL被称为安全套接字层,它通过强加密来保护发送方和接收方之间发生的通信.SSL可以在使用IMAP邮件协议的电子邮件交换服务器上实现.在苹果iPhone或iPad上启用SSL之前,有必要了解您的POP ...

最新文章

  1. 利用pandas读写HDF5文件
  2. 都说 WebP 厉害,究竟厉害在哪里?
  3. 巧解SEP杀毒软件卸载需要密码才能完全卸载问题
  4. Android ContentProvider介绍
  5. java converttostring_由 ToString()和Convert.ToString() 引发的问题
  6. spark executor内存分配_二十二、Spark之图解Executor端内存管理
  7. c语言用什么能暂存结构指针,c语言中什么是指针
  8. 空间说说html,空间说说大全(共100句)
  9. 从0到1,手把手教你如何使用哈工大NLP工具——PyLTP
  10. MySQL/MariaDB Tips
  11. python神器pandas_Python中的神器Pandas,但是有人说Pandas慢...
  12. 【渝粤教育】国家开放大学2018年春季 8662-22T特色课(1) 参考试题
  13. css实现风车转动,纯CSS实现的风车转动效果特效演示
  14. fastdfs原理及过程
  15. win11怎么关闭触控板?win11关闭触控板的三种解决方法
  16. 自媒体必死 大家不要被马化腾忽悠了
  17. 移动定位业务之“Cell ID + RTT(小区识别+往返时间)”
  18. centos添加互信
  19. 毕业设计超市进销存管理系统源码
  20. 3dsmax部分基础快捷键

热门文章

  1. Android 11.0 12.0系统默认授予读写权限给第三方app
  2. 环信开发的坑(环信客户互动云)
  3. 揭秘:“苏宁拼购基地”落地全国的原因
  4. English trip 自习内容 句子结构和成分
  5. wangEditor富文本编辑器安装与入门
  6. 模电数电EDA实验开发系统实验设备QY-MS301D
  7. 央企建筑公司数字化转型最大挑战是什么?如何破解?
  8. JavaSE阶段笔记
  9. 打印100以内的质数
  10. 王争-算法与数据结构专栏第一期福利笔记(数据结构与算法学习书单)