5 分钟教会你https 的工作流程
Https的工作流程完全解析。
一杯刘的博客地址:
http://www.jianshu.com/p/a68ca86183d7
本文只是把网上关于 https 工作原理的文章总结并归纳整理的产物,希望能从一个不同的视角用通俗的话介绍 https 工作流程,5分钟足够了。
来看一张图,我们看图说话
https连接流程图
注意,为了更好的区分明文和密文,用【AA】代表AA被加密,AA 代表正常未加密
1.client 发出请求
2.server 收到请求,并自己生成一对密钥,即 公钥S 和 私钥S
3.server 把生成的 公钥S 传递给 client (除了 公钥S ,还有很多额外信息)
4.client 收到 公钥S后进行判断,若无效,弹出警告,否则生成一串随机数,我们称之为 私钥C ,然后 client 用 server 传过来的 公钥S 对该随机数加密,形成【私钥C】
5.client 把【私钥C】传递给 server
6.server 收到【私钥C】,用 私钥S 把【私钥C】解密成私钥C,然后把需要传递的数据用 私钥C 进行加密
7.server 把【数据】传递给 clien
8.client 收到【数据】,用 私钥C 解密,完成一波收割
整体流程就是这样,那么就想问,为什么有这么多 key?一会公钥一会私钥?很烦?
那我们先假设 server 有私钥和公钥,那么传递给 client 公钥,client 用公钥加密数据,传递给 server,server 用私钥再解密,听上去很美好,但是很烦,因为涉及到对称加密和非对称加密
对称加密: 是指加密和解密用一致的密钥,特点是快
非对称加密: 是指密钥区分公钥和私钥,公钥加密,私钥解密(私钥好比唯一一把钥匙,公钥好比锁,钥匙只有一把,但锁可以有很多,被锁头锁上的数据全天下只有一把私钥才能打开),特点是安全,但是慢
这回理解了吧,上述方式缺点是 慢
所以 https 的流程综合了对称加密和非对称加密的优点:
利用非对称加密的安全性来加密那一串随机数--私钥C
利用对称加密的快捷性来加密报文,总体来说就是把真正加密解密的密钥(私钥C)用公钥S和私钥S来加密
这就是 https 工作的流程,哎,能想出这种操作,很灵性啊。
博客地址:
http://www.jianshu.com/p/a68ca86183d7
终端研发部提倡: 没有做不到的,只有想不到的。
在这里获得的不仅仅是技术!
这里学到的不仅仅是技