有关https

加密类型

首先了解一下两种加密类型

  • 对称类型 如AES DES
  • 非对称加密 如RSA

对称加密

对称加密很好理解,同一个密钥可以同时用作信息的加密和解密。举个现实生活中的例子,甲乙是合作伙伴,商量制作一个箱子,然后制作两把相同的钥匙用来打开箱子,两把相同的钥匙即密钥

非对称加密

首先,非对称加密比对称加密安全性高,但是效率相对低
这里有公钥和私钥的概念,公钥和私钥是一对,私钥加密的只有对应的公钥能解,公钥加密的只有对应的私钥能解

下面以现实中的发邮件为例:
首先如果使用对称加密,那么很有可能被第三方劫持到公开的密钥,从而窃取邮件信息,那么我们看一下非对称加密的机制:


有关https_第1张图片
非对称加密.png

非对称加密的两个要点:

  • 公钥和私钥加密的只有对应的私钥和公钥可解
  • 私钥是不会对外公布的,只有自己知道

基于这两个要点,所以保证类上述邮件的安全性

SSL

首先看一个公式HTTPS = HTTP + SSL,由此可见,SSL主要的工作是加密

CA证书

在分析加密机制之前,我们首先要知道什么是CA证书

CA 证书其实就是数字证书,是由 CA 机构颁发的
一般包含以下内容:

  • 证书的办法机构 版本
  • 证书的使用者
  • 证书的有效时间
  • 证书的公钥
  • 证书数字签名的hash值以及签名的hash算法

加密机制

校验CA证书

客户端校验CA证书的步骤:

  • 证书的私钥进行加密得到CA中的Hash值
  • 客户端拿到证书,利用公钥解析此Hash值得到Hash-a
  • 客户端利用证书内的签名Hash算法进行加密得到Hash-b
  • 比较Hash-a和Hash-b,如果相等,则证明证书正确,除此之外,还会校验 CA 证书的有效时间和域名匹配等,如果其中出错则无法建立http连接
握手

HTTPS中的SSL的握手过程:
A(客户端) B(服务端)

  • A访问B,A生成一个随机数1,A将随机数1以及SSL的版本号和加密算法发给B
  • B确认双方的加密算法,生成一个随机数2,连同CA颁发的证书一起发给A
  • A拿到B的证书,校验有效性,成功后再次生成一个随机数3,利用证书中的公钥加密,传给B
  • B拿到加密后的随机数3,利用私钥解密,得到真正的随机数3
  • 此时A B 中同时存在随机数1 2 3,双方利用这三个随机数生成一个对话密钥,接下来就是利用对话密钥加解密,此时是对称加密,一般就是AES加密
  • A通知B后面的通讯用对话密钥进行,并且A的握手结束
  • B通知A后面的通讯用对话密钥进行,并且B的握手结束
  • SSL 的握手部分结束,SSL 安全通道的数据通讯开始,A 和 B 开始使用相同的对话密钥进行数据通讯

简化上述的流程:

  • A通过CA证书校验B的正确性
  • A B 生成三个随机数,通过三个随机数生成对话密钥
  • A B确认对话密钥,对话结束
  • 使用同一套对话密钥进行数据通讯

小结

  • https既利用了非对称加密的安全性也利用了对称加密的高效性
  • 非对称加密没对称加密高效,但是比对称加密安全

你可能感兴趣的:(有关https)