DH 算法思想 SSH解决内容篡改问题
DH算法用于交换密钥
交换密钥的目的是生成仅双方共享的密钥
交换密钥的基本过程:
- 双方确定公开的内容
- 用各自的私钥分别对公共内容加密(加密本质就是数学运算)并发送给对方
- 这时双方使用自己的密钥对收到的内容加密(要设计运算保证最后结果相同,也就是两步运算的顺序是可以调换的),双方就得到了共同的结果(作为公共密钥)
这样就实现了安全的将密钥传递给对方的目的
由于私钥没有被传递所以监听者无法得到最终的公共密钥(这依赖于难运算,如离散对数等数学难题)
为了防止破解 运算方法应当不能被逆运算或难以被逆运算
DH 算法
核心:离散对数问题 正向运算简单、逆向困难。
加密是为了防止传输过程被监听劫持,而客户端被劫持就不可能保密了
中间人篡改问题
劫持数据 分别发送给双方 成为隐形的中间人
比对哈希值可以确认信息是否篡改,但哈希值也可被篡改
SSH
蛋老师视频
沟通确定使用哪种算法,实现不为人知的密钥
客户端临时密钥对
服务端临时密钥对
双方交换临时公钥
服务端使用临时私钥加密 哈希签名 发送给客户端
哈希签名:一些双方共知的信息运算得到的哈希值
客户端使用 服务端临时公钥 解密哈希签名 验证信息是否被篡改
这种方法并不能解决一开始通讯就被劫持一直与中间人进行沟通的情况
通常第一次与服务器联系时被劫持的可能性较小(除非一早就被盯上了),当ip信息更改提示时应当警惕
一些方案降低风险
SSH 证书 验证证书
公钥认证 避免重复输入密码 客户端公钥保存到服务端
内容会不断更新,欢迎批评指正。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)