【JavaEE】网络原理-HTTPS

网络原理-HTTPS

1. HTTPS是什么

HTTPS是在应用层上的协议, 基于HTTP进行加密

  • HTTP协议内容都是按照文本内容进行明文传输,容易使得内容被"劫持"。

  • 十年前,经常有下载链接被劫持,就会产生下载图片和下载链接不是一个产品的现象

2. 对称加密

简而言之,对称加密就是:加密和解密都用的同一把锁,和同一把钥匙

  • 因为密钥不管一开始从哪里生成,都需要让对方知道本次通信的密钥是什么,只有密钥对应起来才能进行通信
  • 所以在密钥传输的过程中容易被劫持
  • 这样的弊端显而易见,如果黑客在服务器和客户端之间,那么就很容易能够知道C-S之间通信的密钥,那么这个加密就会形同虚设。
  • 即使不同的客户端使用自己生成的不同的密钥,那也会被黑客劫持

3. 非对称加密

非对称加密是用于==对对称加密进行加密==的方式,这并不会对于每次的会话进行使用。

3.1 过程

最重要的是衍生出了"公钥"与"私钥"的概念。

  1. 公钥是暴露在网络中的,随便什么人都可以看得见,但是私钥只有服务器才有
  2. 私钥可以对于公钥进行解密
  1. 客户端对于服务器发起请求,携带着后续会话使用什么对称密钥信息

    此时这段对称密钥是暴露在网络中的,但是只能通过私钥进行解密

  2. 服务器使用自己独有的私钥对于这段请求进行解密,获得后续对话使用的对称密钥

    此时服务器知道了对称密钥是什么,后续就不再使用公钥进行加密,直接使用对称密钥

  3. 客户端进行请求的时候将使用对称密钥进行加密

    服务器进行响应的时候将使用对称密钥进行解密

3.2 优点

  1. 确保了安全性
  2. 最大程度减少了资源开销(相比于所有会话都使用非对称加密来说)

3.3 缺点

仍然可能被攻击。

第一种情况:

  1. 黑客可以伪装为服务器,获取客户端的请求(即能够获取到后续会话的对称密钥)

  2. 接着使用暴露的公钥对于这个对称密钥进行加密,发送给服务器

    此时服务器并不知道这个请求是由黑客发送的还是正常的客户端

  3. 服务器发送正常的响应

  4. 后续对话就会由黑客使用对称密钥对于会话进行解密

第二种情况:

  1. 黑客可以伪造一对公钥和私钥
  2. 客户端发送请求被黑客进行劫持后,黑客返回私自伪造的公钥和私钥
  3. 后续对话就会由黑客和客户端进行

3.4 完善方案

最关键的一点是客户端拿到公钥后能够知道是否是真的,而不是伪造的,这就衍生出了公证机构。

公证机构会向服务器颁发**"证书"**,这个证书由公证机构自己的加密算法生成得到,无法进行伪造。

证书信息:

  1. 域名

  2. 证书有效期

  3. 服务器的公钥

  4. 公证机构的信息

  5. 证书的签名

    签名:公证机构使用自己的私钥对于校验和进行加密,就得到签名

过程:

  1. 公证机构颁布证书的时候,会使用自己的算法对于证书计算出一个校验和

  2. 客户端收到服务器的响应之后,先使用操作系统自带的证书(得到计算校验和的算法)得到校验和1

  3. 客户端再使用相同的计算校验和的算法对于证书的其他字段 进行计算,得到校验和2

  4. 如果两个校验和相等,那么证真,反之则伪

为什么能够防止黑客?
  1. 黑客想要伪造证书,会使得校验和2发生变化

    伪造证书分为两种伪造:

    1. 黑客想要修改公钥,因为签名没有变化,会使得校验和2发生变化
    2. 黑客修改公钥和签名,因为黑客不知道公证机构的私钥,所以无法生成签名
相关推荐
EmbedLinX1 天前
一文理解后端核心概念:同步/异步、阻塞/非阻塞、进程/线程/协程
linux·服务器·c语言·网络
云服务器租用费用1 天前
京东云主机企业用户能参与的优惠活动汇总
服务器·网络·京东云
abcy0712131 天前
请简述OSI七层网络模型,并分别列举每一层的主要功能及对应的主要协议。
网络
郝学胜-神的一滴1 天前
深入理解TCP协议:数据格式与核心机制解析
linux·服务器·网络·c++·网络协议·tcp/ip
梁辰兴1 天前
计算机网络基础:传输层的两个主要协议
网络·计算机网络·计算机·协议·传输层·计算机网络基础·梁辰兴
Serendipity-Solitude1 天前
TCP/IP协议栈深度解析技术文章大纲
网络·网络协议·tcp/ip
小π军1 天前
TCP协议:拥塞控制与流量控制的区别
网络·网络协议·tcp/ip
那就回到过去1 天前
IP组播技术(2)
网络·网络协议·tcp/ip·智能路由器·ensp
有一个好名字1 天前
简易版RPC框架实现
网络·网络协议·rpc
鸽鸽程序猿1 天前
【JavaEE】【SpringCloud】网关_GateWay
spring cloud·java-ee·gateway