乐趣区

关于https:https的认证加密过程

HTTPS 协定是由 HTTP 加上 TLS/SSL 协定构建的可进行加密传输、身份认证的网络协议。TLS 的前身是 SSL,TLS1.0 就是 SSL3.1,TLS1.1 是 SSL3.2,TLS1.2 则是 SSL3.3。HTTPS 规范端口是 443。TLS/SSL 中应用了非对称加密,对称加密以及 Hash 算法。

证书产生过程

  1. 向 CA 机构提交申请,提交信息包含:

    • 公司信息
    • 域名
    • 加密算法(例如:RSA)
    • Hash 签名算法(例如:sha256)
    • 加密位数
  2. CA 机构收到证书申请,发送证书和私钥给申请者,证书蕴含这些信息:

    • 证书内容(域名、公钥、有效期等等)
    • 证书签名(Hash 签名算法对内容摘要,CA 机构再用本人的私钥对摘要进行加密,失去证书签名)

签名就是在信息的前面再加上一段内容

CA 机构发送给申请者的私钥和证书中公钥是一对。这里的公钥用于加密,私钥用于解密。

https 连贯过程

  1. 客户端发送 Client Hello 给服务端,蕴含以下信息:

    • 反对的 TLS 版本
    • 反对的加密形式
    • 随机数 random_C
    • 域名
  2. 服务端收到申请后,发送 server Hello,蕴含以下信息:

    • 确定 TLS 版本
    • 随机数 random_S
    • 确定加密形式
    • 证书

      • 内容 (域名、公钥、有效期等等)
      • 签名
  3. 客户端收到申请后,将会做一下事件:

    • 验证证书

      • 操作系统和浏览器中存有 CA 机构的公钥。客户端应用 CA 机构的公钥对签名进行解密,解密胜利阐明证书由 CA 机构颁发。
      • 签名胜利解密后失去证书摘要。客户端应用 Hash 签名算法对证书内容进行摘要,而后和签名解密后的摘要比拟,相等阐明证书没有被批改过。证书内容(公钥、域名、有效期)可信。
      • 客户端验证证书内容的域名是否和以后网址是统一的,证书是否过期。
    • 生成随机数

      • 验证通过后,客户端生成随机数 Pre-master,而后用证书中的公钥进行加密,发送给服务端
  4. 服务端

    • 服务端应用 CA 机构给的密钥对加密的随机数进行解密,获取随机数 Pre-master
  5. 客户端 / 服务端

    • 服务端和客户端别离用依据 random_C,random_S 和 Pre-master 生成密钥,用于加密传输数据。

第一步要确认服务端的身份是否可信,能力进行上面的数据传输。证书的作用就是确认服务端身份,确认证书来自权威可信机构,且证书内容未作批改,证书内容可信,证书内容无效,从而确认服务端的身份。

以上只是单向认证,双向认证时客户端也要发送蕴含公钥的证书给服务端,服务端验证证书胜利后,应用客户端的公钥加密通信计划,再给客户端,而后客户端生成随机数 Pre-master,依据随机数生成的密钥加密传输数据。

服务端证书可信后,再应用申请证书时生成的公钥对随机数加密,服务端收到后用申请证书时生成的私钥解密。保障了随机数的安全性,不会被第三方解密获取。

传输数据的密钥依据随机数 Pre-master 生成的,所以随机数窃密非常重要。

加密算法

  • 非对称加密算法:RSA,DSA/DSS
  • 对称加密算法:AES,RC4,3DES
  • Hash 算法:MD5,SHA1,SHA256
退出移动版