DH 算法思想 SSH解决内容篡改问题

DH算法用于交换密钥
交换密钥的目的是生成仅双方共享的密钥
交换密钥的基本过程:

  1. 双方确定公开的内容
  2. 用各自的私钥分别对公共内容加密(加密本质就是数学运算)并发送给对方
  3. 这时双方使用自己的密钥对收到的内容加密(要设计运算保证最后结果相同,也就是两步运算的顺序是可以调换的),双方就得到了共同的结果(作为公共密钥)

这样就实现了安全的将密钥传递给对方的目的
由于私钥没有被传递所以监听者无法得到最终的公共密钥(这依赖于难运算,如离散对数等数学难题)

为了防止破解 运算方法应当不能被逆运算或难以被逆运算

DH 算法

蛋老师视频
在这里插入图片描述

核心:离散对数问题 正向运算简单、逆向困难。

加密是为了防止传输过程被监听劫持,而客户端被劫持就不可能保密了

中间人篡改问题

劫持数据 分别发送给双方 成为隐形的中间人

比对哈希值可以确认信息是否篡改,但哈希值也可被篡改

SSH

蛋老师视频
在这里插入图片描述
沟通确定使用哪种算法,实现不为人知的密钥

客户端临时密钥对
服务端临时密钥对
双方交换临时公钥

服务端使用临时私钥加密 哈希签名 发送给客户端

哈希签名:一些双方共知的信息运算得到的哈希值

客户端使用 服务端临时公钥 解密哈希签名 验证信息是否被篡改

这种方法并不能解决一开始通讯就被劫持一直与中间人进行沟通的情况
通常第一次与服务器联系时被劫持的可能性较小(除非一早就被盯上了),当ip信息更改提示时应当警惕

一些方案降低风险

SSH 证书 验证证书
公钥认证 避免重复输入密码 客户端公钥保存到服务端

posted @   海胆Sur  阅读(15)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示