【面试题精选】Http与Https的区别及SSL安全协议解析

13 篇文章 0 订阅

一、Http 和 Https 的相关概念

Http: Hyper Text Transfer Protocol,即超文本传输协议。Http 协议是目前网络上应用最广泛的一种网络协议,所有的 www 文件都必须遵守这个协议,而Http在传输信息时,信息都是明文的格式,一些隐私信息很容易泄露,所以就有了Https。

Https: Hyper Text Transfer Protocol Secure,即超文本传输安全协议。 Https 是以安全为目标的 Http 协议,简单来说就是一个安全版的 Http。它是在 Http 协议之下加上了一层安全协议,这种安全协议称为 SSL (Secure Sockets Layer),即安全套接字。它通过SSL对信息进行加密,确保信息不会被三方截获。

二、Http 和 Https 的物理模型

上面我们讲到了 Https 是在 Http 协议之下加了一层SSL安全协议。那么 Http 本身的物理模型是什么样的呢?在计算机网络中,Http 协议在应用层使用,下层分别是传输层,网络层,数据链路层和物理层。我们来看图:
Http 协议的物理模型
注意: 上图只是为了说明 Https 和 Http 在物理模型上的区别,并未把每层的协议完全列举。

那么 Https 跟 Http的物理模型有何不同呢?我们来看图:

Https 的物理模型
这样就一目了然了,Https 在往下面的运输层传输的时候要通过一层SSL安全协议。

三、Http 和Https 的区别

通过以上分析,我们得出一下几点不同:

(1)https协议需要到ca申请证书,一般免费证书很少,需要交费(下面会说到)。

(2)http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

(4)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

四、SSL 的工作机制

现在我们知道Https的传输数据要经过一层SSL安全协议,那么这个SSL安全协议如何确保安全呢?

首先,我们都知道Http协议是按照请求响应的方式,在客户端与服务器之间进行通讯的
在这里插入图片描述
SSL对这个请求过程进行了改进,我们把改进后的改成称为 SSL握手。

SSL握手的步骤

(1)客户端首先向服务器发送一个连接请求。
(2)服务器收到客户端的连接请求后,会生成一对非对称密钥(即一个公钥,一个私钥),公钥用来发送给客户端对客户端产生的对称密钥加密,私钥用于接收解密获得对称密钥。
(3)服务器向客户端发送安全证书 ,安全证书中包含服务器生成的公钥。
(4)客户端接收到安全证书,并对安全证书进行验证和解密,然后随机生成一个对称密钥。
(5)客户端将生成的对称密钥通过服务器的公钥加密,发送给服务器。
(6)服务器收到加密的对称密钥,使用自己的私钥对其进行解密。
(7)双方都收到了对称密钥,可以对信息进行加密,相互通信,保证安全性。

下图能帮助你能更好的理解SSL握手:
在这里插入图片描述
注释:
①安全证书:安全证书是由服务器向CA(安全证书颁发机构)发送了自己的公钥,CA通过自己的非对称密钥对服务器的公钥进行加密,并对服务器的网址等信息进行加密生成证书签名,组合加密后的服务器公钥生成的。

额外知识点:
1、收到安全证书后,客户端首先要做的事情就是验证证书的真伪。各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。所以客户端只需要知道是哪个机构颁发的证书,就可以从本地找到对应的机构公钥,解密出数字证书签名。然后,客户端通过同样的签名规则生成一个证书签名,如果两个签名一直,说明证书是有效的。
2、谷歌浏览器会对非Https的网页进行惩罚,使他们的搜索排名靠后。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值