学习笔记 之HTTPS中的数据交换知识

通过学习了刘超的《趣谈网络协议》中的HTTPS协议,对其中的加密、解密以及秘钥交换提起了兴趣。通过刘超的课程,极大的提起了我的兴趣,可是对于CA证书验证这块就有点望洋兴叹了。又通过一些资料找到了360大牛Chrono的一些介绍,两者结合起来,使得我对HTTPS知识的心理表征有了一定提升。

先聊一聊HTTPS出现的背景。大家使用浏览器访问网络获取消息和交流通常使用的是HTTP协议,但是对于网上交易涉及到钱和需要保密的时候HTTP就不行了。

HTTPS中的概念。

Ø 对称加密。加密密钥和解密密钥一样。效率高。

Ø 非对称加密。加密密钥和解密密钥不一样。通常包括私钥和公钥,一个东西被公钥加密,那么可以用私钥解开,反之,一个东西被私钥加密,可以用公钥解开。效率低。

Ø 摘要。又称哈希,可以把一个很长很长的东西变成一个16位或者几十位固定长度的东西,就像一个人很大,但是指纹很小。

HTTPS数据传输的过程。

1. 首先客户端和服务端之间建立TCP链接,完成三次握手。

2. 客户端发起client hello数据包。告诉服务端我这里支持哪些加密算法、密钥交换算法、摘要算法等。

3. 服务端收到客户端消息后,从里面选择一个加密、交换算法等用于双方稍后通信的基础;

4. 服务端将公钥和签名发送给客户端;

5. 客户端如何通过CA进行验证的呢?

6. 客户端发送一个明文消息给服务器;

7. 服务器将该消息通过md5或者sha2做个摘要哈希,然后使用私钥进行加密(就是签名的过程)发送回客户端;

8. 客户端使用公钥解开数据以及加了密的摘要,如果解密后的数据通过哈希算法得到了解了密的摘要,那么说明数据在传输过程中没有被破坏,是正确的,如此一来确保了数据的完整性。

学习笔记 之HTTPS中的数据交换知识

学习笔记 之HTTPS中的数据交换知识

感觉是不是一头雾水,哈哈,恭喜你,跟笔者一样笨笨,慢慢来,书读百遍其义自见。~~


分享到:


相關文章: