流程如图片 https://user-gold-cdn.xitu.io/2018/5/21/1638197d98cf3281?imageslim
双方交换 random1 和 random2
客户端生成 random3 作为 pre master secret,并通过被签名的可靠公钥加密后传给 server,
这样双方都拿 random1 random2 random3 通过算法各自生成 master secret
在这里,只有 random3 是能够保证不被第三人知道的,为什么公开的 random1 和 random2 有存在的必要?为什么不直接生成 master secret 发过去?
直接发送 master 的情况:我有一个通道发送钥匙 A,可以保证不被中间人解开,但是有可能被替换。如果被替换成钥匙 B,后面的验证过程,只有我知道钥匙 A,你发过来的消息我解不开,中间人也没有钥匙 A 来加密消息欺骗我。我接到假数据一定会报错的,不也是安全的么?
搜索了网上信息对这里基本都是一笔带过的 只有这里的第二个回答提到仅仅是为了增加随机性,是这样的么? https://stackoverflow.com/questions/25258799/in-tls-ssl-whats-the-purpose-of-staging-from-premaster-secret-to-master-secret
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.