加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

HTTPS协议是怎么防中间人窃听的

发布时间:2023-02-27 13:33:09 所属栏目:安全 来源:
导读:HTTPS 协议的基本概念:HTTPS 协议是在 HTTP 协议的基础上,通过添加 SSL/TLS 加密协议而形成的。SSL/TLS 协议是一种用于网络通信安全的加密协议,可以将数据在传输过程中进行加密,确保数据的机密性和准确性。

HTTPS 协议的基本概念:HTTPS 协议是在 HTTP 协议的基础上,通过添加 SSL/TLS 加密协议而形成的。SSL/TLS 协议是一种用于网络通信安全的加密协议,可以将数据在传输过程中进行加密,确保数据的机密性和准确性。

如何防止中间人窃听
要回答这个问题,我们先看看 HTTPS 协议双方,也就是通过客户端和数据库服务器的相互通信交互作用的过程。

客户端发送请求
当用户在浏览器中输入一个 HTTPS 网址时,浏览器会向服务器发送一个请求,请求建立一个HTTPS 连接。请求中包含有客户端支持的加密算法列表,当然也包括客户端自己的公钥。

服务器回应
服务器会回应客户端的请求,并从中选择一种加密算法。服务器会使用该算法生成一组密钥,并将该密钥用客户端的公钥加密,并将加密后的密钥及数字证书发送给客户端。

客户端验证证书
客户端收到服务器的回应后,会验证服务器的数字证书是否合法。数字证书是由数字证书认证机构(CA)颁发的,用于证明服务器的身份。客户端会根据自己的信任列表,验证数字证书的合法性。

验证数字证书的过程如下:

客户端(浏览器或 APP)读取证书中的证书对应的域名、所有者、有效期等信息进行一一校验;
客户端开始查找操作系统中已内置的受信任的证书发布机构 CA,与服务器发来的证书中的颁发者 CA 比对,用于校验证书是否为合法机构颁发;

客户端发送密钥
客户端使用服务器的公钥加密刚刚生成的对称密钥,并将加密后的密钥发送给服务器。

服务器解密密钥
服务器收到客户端发送的加密后的对称密钥后,会使用自己的私钥解密该密钥。

开始数据传输
经过以上的验证和加密,HTTPS 通信就建立了起来。此时,客户端和服务器之间的数据传输都是通过对称密钥进行加密的。为什么用对称密钥?因为对称加密的开销小,且其密钥采用非对称加密算法传输,通信过程非常安全。

假如,客户端和服务器直接有一个中间人,比如你用了代理,那么这个代理就是中间人。中间人要想监听客户端和服务器,就需要获取客户端和服务器的通信用的密钥。服务器的密钥,中间人可以作为客户端的身份进行获取,但是要想获取客户端的密钥,中间人需要伪装服务器的身份,从而发布自己的证书,中间人的证书可以是自签名证书,也可以是向 CA 申请的证书,无论是哪个证书,对应的域名一定 不是服务器的域名,这样,客户端在验证证书时一定不会通过,我们就会收到浏览器的提醒:证书不被信任。

如果,客户端(你)选择信任并继续,那么你的通信将毫无安全可言。除非,这个代理(中间人)是你自己部署的,基于测试或抓包分析等其他原因,你可以信任并继续。

因此,HTTPS 协议是借助于证书防中间人窃听的,请注意,如果自己从没有做过什么代理设置,不要相信任何不受信任的证书,推而广之,IOS 不要相信任何描述文件,不要安装不明来源的 APP,不要赋予任何 APP 不需要的权限,这是保障自己信息安全的根本。

HTTPS 的双向验证
HTTPS 也可以双向验证,也就是服务器端可以验证客户端证书,那么什么场景需要这样?

之前的过程,只能说明服务器是合法的,如果服务器想让客户端也是合法的,那么就需要验证客户端的证书,因此,如果服务端需要限定的客户端才能访问服务,那么可以采取 HTTPS 的双向验证[1]。因此 即使 HTTPS 不开启双向验证,也可以防止中间人攻击。验证,也可以防止中间人攻击。】。这样,服务端就可以通过https的方式访问网络资源,从而保证网络安全。



}
 

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章