HTTPS
狐七 3/12/2022 计算机网络
# 1. HTTPS和HTTP的关系是什么?
查看答案
HTTPS是在HTTP的基础上添加了SSL/TLS加密证书。
# 2. 说说HTTPS
查看答案
HTTPS中有三种角色,一个是客户端(浏览器),一个是服务端,一个是CA机构。
(一)准备阶段:
- 在OS中,CA机构预置了CA机构的公钥。
- 服务器生成了服务器的公钥和私钥,将公钥连同服务器信息一起发给了CA机构。
- CA机构拿着公钥+信息,根据CA的私钥进行加密,生成CA证书。
- 服务器下载CA证书。并配置443端口地址指向证书路径。
此时:浏览器中有CA的公钥,服务器中有服务器私钥和CA证书,CA的任务已经完成。
(二)用非对称加密传输对称加密的秘钥阶段:
- 浏览器通过443端口请求CA证书
- 服务器将CA证书传给浏览器
- 浏览器用CA公钥将CA证书解密,获得服务器公钥和服务器信息,可以初次判断服务器是否合法
- 浏览器使用对称加密生成浏览器秘钥,用服务器公钥对浏览器秘钥进行加密,并将加密好的浏览器秘钥传给服务器。
- 服务器用服务器私钥解密获得浏览器秘钥
此时:浏览器和服务器都拥有了浏览器秘钥。
(三)将消息通过对称加密进行传输阶段:
- 浏览器用浏览器秘钥加密请求数据发送给服务端
- 服务端用浏览器秘钥解密数据,并将返回的数据用浏览器秘钥加密
- 浏览器用浏览器秘钥解密返回的数据
# 3. 非对称加密和对称加密的区别是什么?
查看答案
- 对称加密
- 加密解密过程快
- 加密和解密都用同一个秘钥的方式叫对称秘钥加密,也叫共享秘钥加密,使用的是可逆运算。
- 安全性不高
- 非对称加密
- 加密解密过程慢
- 要么使用公钥加密私钥解密,要么使用公钥解密私钥加密。一个钥匙不能同时做到加密和解密,因为使用的是不可逆运算。
- 安全性高
# 4. 为什么说HTTPS很安全呢?
查看答案
- 因为CA证书无法伪造,如果拿不到CA私钥,就在段时间内无法解密CA证书,就拿不到服务器信息。
- 虽然拦截者可以获得服务器公钥,但是因为其没有服务器私钥,所以无法获得浏览器秘钥,这样伪造秘钥就会不匹配。
# 5. 简要说说HTTPS如何设计的高效且安全的?
查看答案
如果都用非对称加密传输,虽然安全但是因为非对称加密比对称加密方式更为复杂,所以效率并不高。如果都使用对称加密,那么秘钥无法传输,还是会被拦截。所以HTTPS使用混合加密机制:
- 用非对称加密将对称加密的秘钥进行传输
- 之后就都使用对称加密进行加密解密传输
# 6. HTTPS 握手过程中,客户端如何验证证书的合法性?
查看答案
- 校验证书的颁发机构是否受客户端信任。
- 通过 CRL 或 OCSP 的方式校验证书是否被吊销。
- 对比系统时间,校验证书是否在有效期内。
- 判断证书的网站域名是否与证书颁发的域名一致。
# 7. 介绍下 HTTPS 中间人攻击
查看答案
中间人攻击过程如下:
- 服务器向客户端发送公钥。
- 攻击者截获公钥,保留在自己手上。
- 然后攻击者自己生成一个【伪造的公钥】,发给客户端。
- 客户端收到【伪造的公钥】后,将浏览器秘钥用【伪造的公钥】加密后发给攻击者。
- 攻击者获得加密后的数据,用自己的私钥解密获得真的浏览器秘钥。
- 攻击者生成一个【伪造的浏览器秘钥】,并利用服务器公钥加密发给服务器。
- 服务器用私钥解密获得【伪造的浏览器秘钥】。
- 服务器用【伪造的浏览器秘钥】加密传输信息,客户端用浏览器秘钥传输信息。
防范方法:
服务端在发送浏览器的公钥中加入 CA 证书,CA证书短时间内无法伪造,浏览器可以验证 CA 证书的有效性