HTTPS

3/12/2022 计算机网络

# 1. HTTPS和HTTP的关系是什么?

查看答案

HTTPS是在HTTP的基础上添加了SSL/TLS加密证书。

# 2. 说说HTTPS

查看答案

HTTPS中有三种角色,一个是客户端(浏览器),一个是服务端,一个是CA机构。

(一)准备阶段:

  1. 在OS中,CA机构预置了CA机构的公钥。
  2. 服务器生成了服务器的公钥和私钥,将公钥连同服务器信息一起发给了CA机构。
  3. CA机构拿着公钥+信息,根据CA的私钥进行加密,生成CA证书。
  4. 服务器下载CA证书。并配置443端口地址指向证书路径。

此时:浏览器中有CA的公钥,服务器中有服务器私钥和CA证书,CA的任务已经完成。

(二)用非对称加密传输对称加密的秘钥阶段:

  1. 浏览器通过443端口请求CA证书
  2. 服务器将CA证书传给浏览器
  3. 浏览器用CA公钥将CA证书解密,获得服务器公钥和服务器信息,可以初次判断服务器是否合法
  4. 浏览器使用对称加密生成浏览器秘钥,用服务器公钥对浏览器秘钥进行加密,并将加密好的浏览器秘钥传给服务器。
  5. 服务器用服务器私钥解密获得浏览器秘钥

此时:浏览器和服务器都拥有了浏览器秘钥。

(三)将消息通过对称加密进行传输阶段:

  1. 浏览器用浏览器秘钥加密请求数据发送给服务端
  2. 服务端用浏览器秘钥解密数据,并将返回的数据用浏览器秘钥加密
  3. 浏览器用浏览器秘钥解密返回的数据

# 3. 非对称加密和对称加密的区别是什么?

查看答案
  • 对称加密
    • 加密解密过程快
    • 加密和解密都用同一个秘钥的方式叫对称秘钥加密,也叫共享秘钥加密,使用的是可逆运算。
    • 安全性不高
  • 非对称加密
    • 加密解密过程慢
    • 要么使用公钥加密私钥解密,要么使用公钥解密私钥加密。一个钥匙不能同时做到加密和解密,因为使用的是不可逆运算。
    • 安全性高

# 4. 为什么说HTTPS很安全呢?

查看答案
  1. 因为CA证书无法伪造,如果拿不到CA私钥,就在段时间内无法解密CA证书,就拿不到服务器信息。
  2. 虽然拦截者可以获得服务器公钥,但是因为其没有服务器私钥,所以无法获得浏览器秘钥,这样伪造秘钥就会不匹配。

# 5. 简要说说HTTPS如何设计的高效且安全的?

查看答案

如果都用非对称加密传输,虽然安全但是因为非对称加密比对称加密方式更为复杂,所以效率并不高。如果都使用对称加密,那么秘钥无法传输,还是会被拦截。所以HTTPS使用混合加密机制:

  1. 用非对称加密将对称加密的秘钥进行传输
  2. 之后就都使用对称加密进行加密解密传输

# 6. HTTPS 握手过程中,客户端如何验证证书的合法性?

查看答案
  1. 校验证书的颁发机构是否受客户端信任。
  2. 通过 CRL 或 OCSP 的方式校验证书是否被吊销。
  3. 对比系统时间,校验证书是否在有效期内。
  4. 判断证书的网站域名是否与证书颁发的域名一致。

# 7. 介绍下 HTTPS 中间人攻击

查看答案

中间人攻击过程如下:

  1. 服务器向客户端发送公钥。
  2. 攻击者截获公钥,保留在自己手上。
  3. 然后攻击者自己生成一个【伪造的公钥】,发给客户端。
  4. 客户端收到【伪造的公钥】后,将浏览器秘钥用【伪造的公钥】加密后发给攻击者。
  5. 攻击者获得加密后的数据,用自己的私钥解密获得真的浏览器秘钥。
  6. 攻击者生成一个【伪造的浏览器秘钥】,并利用服务器公钥加密发给服务器。
  7. 服务器用私钥解密获得【伪造的浏览器秘钥】。
  8. 服务器用【伪造的浏览器秘钥】加密传输信息,客户端用浏览器秘钥传输信息。

防范方法:

服务端在发送浏览器的公钥中加入 CA 证书,CA证书短时间内无法伪造,浏览器可以验证 CA 证书的有效性

更新时间: 2022-03-31 02:04