新睿云

> 知识库 > HTTPS相关,面试想要的都在这

HTTPS相关,面试想要的都在这

作者/来源:新睿云小编 发布时间:2020-02-28

本次我们谈一下HTTPS,其实它与HTTP有许多相似之处,如果您对HTTP尚不清楚可以阅读《HTTP发展各版本特点,专治各种“疑难杂症”的面试官(上)》来进行了解。

一、HTTP与HTTPS本质区别

HTTP有许多不足,我们看看其主要不足之处

1通信不加密,容易被窃听

2不严明对方身份,可能因对方伪装也被骗

3无法保证报文的完整性,即使内容被篡改也不知道

HTTPS恰恰是对这三点进行的补充:HTTPS=HTTP+加密+身份验证

http使用明文传输,https使用ssl加密传输

http不验证访问者信息,https通过数据签名验证访问者信息

https保证数据完整性,防止有人进行篡改

最后一点,http使用80端口,而https使用的443端口

二、HTTPS握手过程

客户端发起请求,服务端响应给用户端证书,证书中包含公钥;

客户端接收到证书后,生成随机数,通过公钥加密,将随机数发送给服务端,并凭随机数构造对称加密和服务端通信,并告知服务端此次通信后的通信都将使用随机数秘钥(Pre-master secret)进行加密;

 HTTPS握手过程

HTTPS握手过程

服务端使用私钥解析随机数,并通过随机数构造对称加密算法,同样告知客户端之后的请求将使用随机数进行加密。

1用户在浏览器里输入 http://www.xinruiyun.cn/ 点击回车以后,浏览器与服务器发生三次握手;

2服务器收到用户的请求,响应 301 状态码,让用户跳转到 HTTPS ,重新请求https://www.xinruiyun.cn/

3用户重新发起 HTTPS 请求,再次与服务器进行三次 TCP 握手;

4TCP 握手成功后,浏览器开始与服务器进行 TLS 握手;

三、https数据传输为何使用对称加密?

1对称加密: 对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥。

2非对称加密: 加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。

HTTPS的证书验证阶段,一般使用非对称加密来进行共享秘钥的传递,当传递完毕后消息的传输使用对称加密的方式。

主要原因:非对称加密传输效率太低,当数据量大的时候传输速度堪忧!而http场景中通常端与端之间的交互量很大,对非对称加密的效率是无法忍受的。另外, HTTPS场景中只有服务端保存了私钥,一对公私钥只能实现单向加解密过程。因此 HTTPS 中的内容传输采用对称加密。

对称加密与非对称加密 

对称加密与非对称加密

四、HTTPS握手,如何验证合法性?

1CA证书是什么?

CA 也拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。

如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。

CA证书 

CA证书

2CA证书中会包含颁发机构信息、公钥、公司信息、域名、有效期等信息,浏览器验证证书:

2.1首先就是要验证域名、有效期等信息是否正确

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

判断证书是否被篡改。需要与 CA 服务器进行校验。

2.3判断证书是否已吊销

以上任意一步都满足的情况下浏览器才认为证书是合法的。

本文是相关系列文章,主要讲解TCP、HTTP、HTTPS

大厂面试指南——TCP协议相关篇

TCP握手为何三次而不是二次或者四次?

HTTP发展各版本特点,专治各种“疑难杂症”的面试官(上)

HTTP发展各版本特点,专治各种“疑难杂症”的面试官(下)

HTTPS相关,面试想要的都在这

热门标签
new year
在线咨询
咨询热线 400-1515-720
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待