频道栏目
首页 > 资讯 > 网络协议 > 正文

https的实现步骤

18-04-14        来源:[db:作者]  
收藏   我要投稿

https使用的是对称加密和非对称加密结合的方式来进行的,步骤如下:

1、首先是ssl握手阶段,客户端发送一个携带ssl版本等信息的数据到服务端,

2、服务端收到改信息,根据对应的ssl版本,发送非对称加密的公钥给客户端,自己保留私钥

3、客户端拿到公钥后,首先验证公钥的真实性,通过ca证书

4、验证通过,或者手动忽略,那么客户端就会使用该公钥加密另一个密钥——对称加密的密钥(客户端随机生成的字符长,位了提高效率,也为保障安全)

5、服务端收到该数据,首先用私钥解密,获取到对称加密的密钥。后续所有的数据,都只是用该对称密钥进行加密传输。

针对以上流程,在好长一段时间不能理解公钥是如何保障数据的真实性的,因为既然是公钥,那么每个人都能获得,那第三方岂不是可以破解从服务端发送来的用私钥加密的信息了吗,然后第三方用公钥加密自己的数据,与服务器进行交互,那还有啥意义?

后来突然想通了,因为https中非对称加密只是加密对称密钥,也就是我在上述步骤3中,获取到公钥后(每个人都能获取到),客户端用这个公钥加密随机生成的对称密钥,然后传递给服务端。那么这个用公钥加密的对称密钥,也只能是由拥有服务端的私钥才能解开,从而获取到真正用来传输数据的对称密钥,即使第三方获取到公钥,也是无法解析出用来实际传输数据的对称密钥的,后续所有的数据,都会以此对称密钥来进行。所以归根结底,就是保障对称密钥不被破解获取。

相关TAG标签
上一篇:Android若干条并排RecyclerView滑动实时联动
下一篇:eclipse使用maven 构建spring项目
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站