Https

Https 通信时序

https 对应的通信时序图如下: https_progress

  1. 服务器在接受到客户端发起https连接请求后, 将返回该网站的证书(根证书信息等)
  2. 客户端将校验网站证书的合法性。
  3. 验证通过后,客户端产生随机的对称密钥。
  4. 客户端使用网站证书的公钥加密对称密钥, 并发送给服务器端。
  5. 服务器端收到对称密钥后, 就可以进行利用对称密钥的密文通信了。

每一个https的网站都会向证书颁发机构(CA)申请一个网站证书, 这个证书实际是非对称加密的公钥密钥对, 利用非对称加密算法的特殊性, 可以在理论上避免第三方窃听。

非对称加密算法的原理

  • 假设有A, B 两方, 双方都有一对密钥(公钥和私钥)。公钥是对外开放的, 任何人都可以得到;私钥是自己的, 别人是获取不到的。公钥和私钥是相对应的, 利用公钥进行加密, 只能用私钥解密, 使用公钥无法解密; 利用私钥解密, 则只能用公钥解密, 使用私钥也无法解密。
  • 利用A的公钥对数据进行加密, 则只有A的私钥可以解密, 任何第三方都不可以解密数据。 这样可以在不安全的通道上进行数据传输, 保证只有A可以解密数据, 任何第三方只能窃听到已加密的数据, 即便拥有公钥也无法进行解密操作。
  • 利用A的私钥对约定好的数据加密, 发送给B。 B可以使用公钥进行解密, 从而验证A的身份。任何第三方都无法模拟这样加密后的数据。这种形式广泛用于电子签名等。

对非对称加密算法不了解的同学, 可以参考百度百科.

Https加密通信原理

Https 加密通信利用非对称加密算法对称算法, 使用非对称加密算法验证身份和发送对称密钥, 使用对称算法加密通信数据。 证书实际就是非对称加密算法的公钥私钥, 分为两大类, 根证书网站证书

  • 根证书属于证书颁发结构, 根证书的公钥默认内嵌在我们的系统中。运行命令win+r 运行 certmgr.msc 可以查看在系统中的根证书列表。
  • 网站证书 带有根证书的私钥签名, 在https握手开始阶段由网站服务器发送给客户端。 客户端收到网站证书后, 立即校验证书的有效性。校验方法是: 取根证书的私钥签名, 利用客户端系统内嵌的根证书公钥解密。 解密成功, 则证书有效。

参考: 图解数字签名是什么? http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html from:http://www.fanxu.me/post/2013-06-04

发表评论

电子邮件地址不会被公开。 必填项已用*标注