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


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

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

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

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

    DH 算法

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

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

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

    中间人篡改问题

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

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

    SSH

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

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

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

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

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

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

    一些方案降低风险

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

  • 相关阅读:
    浏览器缓存
    C# 学习之路(C# 的概念)
    WindowsServer2016配置故障转移群集
    分布式/微服务---第九篇
    Kafka 可视化工具
    ES查询报错内容长度超过104857600
    莱特兄弟的家庭教育
    Allegro如何输出各层PCB视图的PDF文件
    优化你的计算机性能:如何根据 CPU 占用率决定硬件升级
    【HTTP】GET 和 POST 的区别
  • 原文地址:https://blog.csdn.net/I_fole_you/article/details/126921387