【学习笔记】SSL证书之前向保密

        Forward Secrecy(前向保密)在任何加密系统中,都是一个非常重要的概念和非常理想的财产,密钥交换中支持前向保密的只有ECDHE和DHE协议。

  • 简单概念:“once encrypted,always encrypted”
  • 如果没有前向保密:(PSK、RSA、DH、ECDH不能提供前向保密
    • 私钥文件必须被永久保护
        • 例如:Client和Server正在进行RSA密钥交换,中间红色代表的事中间人攻击。Client随机生成种子值(Seed Value),用Server的公钥进行加密,并在线传输给Server(因为是在线的,所以传输过程中,任何中间人可以得到加密的种子值,对我们来说这没关系,因为要有Server的私钥才能提取原始种子值),这让Client和Server能够用相同的种子值派生出会话密钥,以此来保护双方之间的数据传输。中间人虽然能获取传输中的数据,但没有会话密钥就无法提取信息。

                  现在假设过去了一段时间,Server打算更换新的证书(或者说新的公钥和私钥),而旧的密钥可能存在于离职员工的电脑或者不再使用的硬盘里,那么有可能这个旧的私钥会泄露给中间人,然后这个中间人就能用这个私钥解密种子值,并且生成会话密钥(和Client和Server相同)。这意味着,用该会话密钥进行传输的数据会被中间人获取并解密,因此,私钥文件必须要永久进行保护,不能泄露。

    • 如果将来有一天密钥泄露了,中间人就能够解密过去发送过的数据
    • ECDHDH使用静态(意味着不会改变)的启动参数(starting parameters,即Prime number、Generator、Private Value)
      • 存储在证书和私钥文件里(同样意味着私钥要永久保存)
      • 上图所示Diffie-Hellman密钥交换,Client和Server就素数(Prime number)和生成器(Generator)达成一致,两者是以明文形式在线传输,这也就表明中间人能获取到P和G;随后,Client和Server随机生成私钥,并用这三个值生成对应公钥,然后在线发送给对方(同样,中间人也能获取);之后,Client将自己的私钥和对方的公钥结合,生成Seed,Server同理(要注意的事,种子值由私钥所创建)
  • 有了前向加密:(DHEECDHE) 
    • 在种子值被计算出来后,初始的Diffie-Hellman值(P、G、Private value)就被丢弃了
      • 意味着,不可能重新创建种子值
    • TLS 1.3+将需要前向保密
    • Secure Recommended

参考文献

1、Practical Networking.net:Practical TLS

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值