https原理
导言:
https的原理如果说简单点,就下面的三句话:
1、客户端用企业的公钥加密对称加密的密钥和加密方法,传给服务端
2、服务端收到以后,用企业的私钥来解密,得到对称加密的密钥和加密方法
3、后续的通讯就用该密钥,采取对称加密,来进行服务端与客户端的通信
然后有一些细节,解释如下:
- 非对称加密:对于理解https的内容,可以简单理解为,是一对钥匙,分为公钥和私钥,只有这个公钥可以解开这个私钥加密的信息,也只有这个私钥可以解开这个公钥加密的信息,公钥可以全世界公开,但是私钥只有自己单位知道,绝不泄露到网上。
- 企业有一对公私钥,这个公私钥,需要让第三方机构公证,公证这对钥匙真实可靠,这个第三方机构就是CA机构
- CA机构负责给企业颁发证明其公私钥有效的证书。同时,CA机构自己也有一对公私钥。
- CA机构的公钥已经安装到了每台客户端机器上,windows啊,macos啊都有,这个是操作系统默认带的,可以用CA的公钥解开CA的私钥加密的信息。
- 证书上的信息有两部分:
- 1、明文信息: 企业的信息,CA的信息,有效期啊等等,最重要的明文信息是企业的公钥,
- 2、证书签名,用于证明证书不是伪造的,构造签名的过程是这样的:先把证书的明文信息做一个哈希值,然后用CA的私钥对哈希进行加密,就得到了证书的签名,其实就是一段字符串。
- 客户端与服务端的沟通是这样的:
- 1、客户端向服务端说,我们采用https吧
- 2、服务端把企业的证书给到客户端,“呶,这是我的证书,你看下”
- 3、客户端先检查证书的明文信息,知道了是哪个CA,然后用本地的CA的公钥,解密证书上的签名,得到了一段哈希值
- 4、客户端再将证书上的明文信息哈希一遍,看与证书上的哈希一不一致,如果一致,证明明文信息没有被篡改过,所以明文的那个企业公钥,也是可信的
- 5、于是就有了导言里的场景
至此,https的流程,大家应该清楚了。不清楚的欢迎留言拍砖。