对https的理解

  • 非对称加密

    非对称加密使用不同的密钥来进行加密和解密。对应的一组加解密密钥称为密钥对。消息发送者使用自己的私钥加密,接收者使用发送者的公钥进行解密。
    非对称加密

  • 摘要

    摘要将信息转换成一个固定长度的字符串,并且过程不可逆。摘要的计算是根据三个条件计算出来的:

    • 由单向散列函数H(d)和摘要KD(s,d) 组成的一对函数,其中s表示密码,d表示数据。
    • 一个包含了安全信息的数据块,包括密码,称为A1。
    • 一个包含了请求报文中非保密属性的数据块,称为A2。

      H和KD处理两块数据A1和A2,产生摘要。H算法通常有MD5,SHA-1,SHA-2等。

  • 数字签名

    对明文进行摘要运算之后,使用私钥对摘要进行加密,这个过程称为数字签名。私钥只有自己拥有,所以可以作为个人身份的标志。
    数字签名示意图

    一般的数字签名包含的信息:
    数字签名内容

    数字签名的验证:
    数字签名验证

  • 数字证书DC和认证中心CA

    数字证书相当于一个站点的身份证,认证中心相当于颁发这个身份证的公安局,为数字证书的信息真实性提供担保。
    https站点的数字证书包含的信息基本有:
    数字签名 

    https通信时,浏览器会先向站点请求数字证书,拿到数字证书后,浏览器会通过CA的公钥来验证数字签名,以确认信息的真实性和完备性。验证通过后,浏览器会使用站点公钥通过非对称加密算法生成一个临时的对称加密密码,并发送给服务器。服务器收到之后,确认密码,建立会话。然后通过这个临时的密码来对报文加密互相通信。
    数字签名