已知 client random 和 server random 都是通过明文传输。pre-master secret 每次会话都是随机的。server random 能阻止重放攻击,那 client random 用处是什么?
我听到一些声音是关于两方的随机数能用于前向保密(Forward Secrecy),但pre-masters secret是每次随机的,因此什么前向保密显然是不必要的。我也看了stack exchange 的讨论 https://security.stackexchang...。
也是看不明白,在pre-master secret 每次会话随机的情况下,重放服务端到客户端的信息是不可能的。
所以,client random 仅仅是为了增加生成最终的master key的不确定性吗?
猜测可能是pre-master secret 的 生成方式是可以选择的吧,不一定确定都是每次随机的。也有可能现在 一些固定的加密方式生成预主密钥,如果是这种的话,就可能遭到服务器的重放攻击,虽然说即使随机,服务器也能探查到,并且依然能重放,不过概率大大降低,而且能通过手段来阻止。而且就算是每次随机,也能增加主密钥的强壮性,其核心应该是确定的依赖两方来参与主密钥的生成,而不是依赖加密方式来随机。当然,以上这些都是我猜的。