【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. 黑客修改公钥和签名,因为黑客不知道公证机构的私钥,所以无法生成签名
相关推荐
无锡耐特森19 分钟前
解决网关数据异常EtherNetIP 转Modbus TCP专用动态监测
网络·网络协议·tcp/ip
盟接之桥1 小时前
为制造而生:制造业EDI如何重塑全球连接力
网络·安全·低代码·汽车·制造
人工干智能1 小时前
神经网络:业务分层 vs 网络分层
网络·人工智能·神经网络
三8442 小时前
BGP/BGP路由反射器/联邦/BGP属性/BGP选路
运维·服务器·网络
黄焖鸡能干四碗2 小时前
IT数据架构规划设计方案(PPT文件)
大数据·网络·数据库·人工智能·架构·区块链
ofoxcoding3 小时前
Seedance 2.0 与 Wan 2026 视频生成 API 成本效率深度对比分析
网络·人工智能·ai·音视频
超级赛博搬砖工3 小时前
什么是移动代理IP?与住宅IP有何区别?
网络·网络协议·tcp/ip
REDcker3 小时前
基于 eBPF 的网络可观测:协议栈路径与 sk_buff
linux·服务器·网络·php·ebpf·bpf
草莓熊Lotso3 小时前
【Linux网络】深入理解Linux IO多路复用:从本质到select服务器实战
linux·运维·服务器·c语言·网络·数据库·c++
huohuopro4 小时前
手写 Tomcat 步骤教程
java·网络