[JavaEE初阶] 防止网络传输中的中间人入侵---证书

上节回顾~

HTTPS=HTTP+SSL(加密协议)

1.引入对称密钥:

  • 客户端生成对称密钥
  • 通过网络把密钥传输给服务器
  • 双方使用对称密钥对数据进行加密解密
  • 缺陷:对称密钥是明文传输的

2.引入非对称密钥,把对称密钥进行加密传输

  • 注意私钥是服务器才有
  • 非对称加密,成本是非常高的,不太适合加密大量数据
  • 对称加密,成本低,适合对大量数据进行加密

当前场景有三个密钥

  • 一个是用户端生成的对称密钥(可以理解为用户密码)
  • 一个是服务器生成的公钥,可以公示出来告诉所有设备
  • 一个是服务器生成的私钥,只有服务器自己知道
    上述这样的流程存在重大安全隐患,黑客可以通过特殊手段来获取到对称密钥,破坏后续传输的安全性

中间人入侵

中间人入侵过程

校验机制---证书

引入校验机制,中间人攻击的关键,在于客户端无法区分收到的公钥是不是真正的 来自服务器的公钥还是被黑客篡改过的公钥->想办法对公钥进行校验

于是引入了证书->证明公钥是合法的

这就是为什么使用Fidder时,需要安装证书

->fidder的工作原理就是中间人攻击,只不过是咱们授权的(你安装了fidder证书,就相当于授权了)

1.服务器向第三方公证机构申请证书

2.客户端询问证书

3.客户端校验证书

4.完整流程

问题一:客户端如何确保拿到的pub2是公证机构的pub2,而不是黑客伪造的pub2?

  • pub2不是通过网络传输的,而是用户操作系统中内置的(安装好系统,系统就内置了一系列知名公证机构的公钥)
  • 只要安装正版系统,而不是搞黑客的盗版系统,就可以信任pub2是正确合法的

问题二:客户端收到的证书 "服务器的公钥"可能被黑客篡改呀?

  • 但是改后的数,算出的校验和,与服务器中的原始校验和就对不上了
  • 此时客户端就会报错
  • 浏览器就会弹出一个红色的页面,告诉你网站不安全,是否要继续访问(证书的校验失败)

问题三:黑客能否自己申请一个证书,用自己的证书,替换整个服务器的证书呢?

  • 证书中包含服务器的域名
  • 黑客申请的证书的域名 和 正经服务器证书的域名肯定是不同的
  • 浏览器这边还是可以验证,输入的URL的域名和 得到证书的域名是不匹配的
  • 不匹配->浏览器就会弹出一个红色的页面,告诉你网站不安全,是否要继续访问(证书的校验失败)

问题四:那如果黑客把整个证书给换了,再把域名给伪造了呢?

  • 证书是要在公证机构这边申请的,每一个公司/组织申请的域名是不一样的

问题五:若黑客修改证书,同时修改服务器的公钥和数字签名呢?

  • 修改公钥,就要重新计算校验和,还需要对校验和重新加密
  • 如果黑客使用自己的私钥加密,就会导致客户端系统内置的公证机构公钥 和 黑客的私钥匹配不上
  • 不匹配->浏览器就会弹出一个红色的页面,告诉你网站不安全,是否要继续访问(证书的校验失败)
  • 那使用公证机构的私钥来加密吗(不然和系统内置的公钥就匹配不上了呀)->黑客能拿到公证机构的私钥吗?狗头

问题五:那黑客本地系统不是也能看到公钥和证书吗?

  • 引入证书,是防止黑客修改 服务器的公钥
  • 黑客看到 系统内置的公证机构的公钥是啥->无所谓(公钥本身就是公开的)
  • 黑客看到校验和->也无所谓->校验和本身就是用来校验数据的,本身并没有什么含义
  • 整个过程只是为了保证客户端可以验证 服务器的公钥是合法的
  • 只要服务器的公钥合法了 就可以使用服务器的公钥对 "客户端产生的对称密钥" 进行加密
  • 后续继续使用对称密钥进行加密交流
  • 业务数据,黑客是看不到一点的

上述流程是面试的高频考点

1.引入对称加密

2.引入非对称加密

3.中间人攻击

4.引入证书&数字签名

想知后续如何,且听下回分解~

END✿✿ヽ(°▽°)ノ✿

相关推荐
强哥聊算力1 小时前
《算力江湖·英伟达传奇》第七集:ChatGPT出现前夜,英伟达发生了什么?
服务器·人工智能·算法·ai·chatgpt·gpu算力
砚凝霜4 小时前
【软考信息安全】第二十二章 Web服务器安全分析与增强——Apache与IIS
服务器·前端·安全
Android系统攻城狮4 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
数字新视界5 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
U-Mail邮件系统5 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
花间相见6 小时前
【计算基础|网络14】网络层:IP、ICMP 与 ping
网络·网络协议·tcp/ip
OnlineProxy6 小时前
为 LangChain 和 CrewAI 构建自定义工具:将代理 IP 轮换封装至智能体函数中
网络协议·tcp/ip·langchain
倒头就睡的小比特6 小时前
Linux基础指令3
linux·服务器
Smoothcloud润云6 小时前
PyTorch推理服务模型热切换与失败回滚实战:降低版本更新中断
服务器·人工智能·pytorch·python·深度学习·gpu
半杯咖啡半行码8 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络