Contents
  1. 1. 什么是HTTPS
  2. 2. 几个概念简单理解
  3. 3. 会话秘钥
  4. 4. 数字签名
  5. 5. 通信过程

HTTP协议是明文形式传输的,传输过程不安全,易被拦截、监听、篡改, HTTPS的诞生正是为了解决HTTP协议不安全的问题。

什么是HTTPS

HTTPS协议=HTTP协议+TLS/SSL协议,也就是HTTPS协议是在HTTP协议的基础上加了一层TLS/SSL协议进行数据的加密解密。这样HTTPS协议在网络上传输的数据是加密的密文,拦截后如果没有秘钥进行解密的话拿到的也是一堆乱码。

几个概念简单理解

  1. 对称加密:用同一个秘钥进行加密解密的方法。
  2. 非对称加密:加密和解密使用不用的秘钥,公钥和私钥。公钥和私钥是一对,使用公钥加密则使用对应的私钥可以进行解密,使用私钥加密则使用对应的公钥可以进行解密。
  3. 证书:这里指数字证书,具有权威性,就像企业公司合同上的印章一样,代表这个是企业授权的合同,包含了由某个受信任组织担保的用户或公司的相关信息。
  4. CA:Certificate Authority,第三方证书颁发机构。
  5. TLS:传输层安全(Transport Layer Security,TLS),SSL 和 TLS 非常类似,一般统称为TLS/SSL。

数字证书

会话秘钥

非对称加密的计算很慢,实际情况下混合使用了对称加密和非对称加密技术。比较常见的做法是在两节点间通过便捷的公开密钥加密技术建立起安全通信, 然后再用那条安全的通道产生并发送临时的随机对称密钥,通过更快的对称加密技术对其余的数据进行加密。SSH和HTTPS都是这样的。

数字签名

非对称加密除了可以用于加密解密外,还可以对报文进行签名(sign),以说明是谁编写的报文,同时证明报文没有被篡改过。这种技术被称为数字签名(digital signing)。

通信过程

  1. 客户端:向服务端发送一个通信请求,包括随机数PK1、支持的加密协议版本、加密算法、压缩算法等加密套件;
  2. 服务端:发送随机数PK2,确认使用的加密协议版本、加密算法、压缩算法等,以及证书;
  3. 客户端:校验服务端的证书是否合法(包括对域名、有效期、证书颁发机构等),使用证书的公钥加密随机数PK3、加密声明、发送内容的摘要信息,验证服务器身份后,生成一个对称加密算法和对称秘钥;秘钥使用公钥加密发送给服务端;
  4. 服务端:使用私钥解密后,拿到对称秘钥和对称加密算法;
  5. 通信:建立安全通信后,使用协商的对称加密算法及其对应的秘钥进行加密通信。

通信过程

Contents
  1. 1. 什么是HTTPS
  2. 2. 几个概念简单理解
  3. 3. 会话秘钥
  4. 4. 数字签名
  5. 5. 通信过程