HTTPS底层实现原理的具体过程:

①证书验证阶段:(非对称加密)

1.浏览器发起 HTTPS 请求

2.服务端返回 携带公钥的HTTPS 证书

3.客户端验证证书是否合法,如果不合法则提示告警。

②数据传输阶段:(对称加密)

4.当证书验证合法后,在本地生成随机数。

5.通过公钥加密随机数,并把加密后的随机数传输到服务端。

6.服务端通过私钥对随机数进行解密。

7.服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。

证书的合法性依据是什么?

首先证书是由权威机构发布。

另外,证书的可信性基于信任制,权威机构需要对其颁发的证书进行信用背书,只要是权威机构生成的证书,我们就认为是合法的。

所以权威机构会对申请者的信息进行审核,不同等级的权威机构对审核的要求也不一样,于是证书也分为免费的、便宜的和贵的。

浏览器如何验证证书的合法性?

浏览器需要对证书做以下验证:

验证域名、有效期等信息是否正确。

判断证书来源是否合法。每份签发证书都可以根据验证链查找到对应的根证书,操作系统、浏览器会在本地存储权威机构的根证书,利用本地根证书可以对对应机构签发证书完成来源验证。

为什么使用对称加密进行传输?

因为非对称加密的加密解密效率是非常低的,而数据传输又非常的普遍,所以不使用,并且私钥只有服务端才有,只能进行单向的加密解密。

以下用简短的 Q&A 形式进行全文总结:

Q:HTTPS 为什么安全?

A:因为 HTTPS 保证了传输安全,防止传输过程被监听、防止数据被窃取,可以确认网站的真实性。

Q:HTTPS 的传输过程是怎样的?

A:客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证通过后本地生成用于改造对称加密算法的随机数。

通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密。

Q:为什么需要证书?

A:防止“中间人”攻击,同时可以为网站提供身份证明。

Q:使用 HTTPS 会被抓包吗?

A:会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。