面试题:Https通信原理及交互流程

      最后更新:2022-06-11 23:24:07 手机定位技术交流文章

      这个总结比较常见,易于理解,适合初级学生,这也是 https 的单向认证,双向认证可用于更高的安全要求,比如说金融行业,银行手机APP等。单向认证只是一个客户端,它拥有自己的公共和私人密钥对,然后客户端向服务器发送自己的公共钥匙。

      我们知道,HTTP请求以纯文本传输,所谓明确声明指的是没有加密的信息,如果HTTP请求被黑客截获,如果它包含诸如银行卡密码等敏感数据,会非常危险。为了解决这个问题,Netscape公司开发了HTTPS协议,HTTPS可以加密数据传输,就是说,这是一个秘密的信息被传送,即使黑客在传输过程中截获数据, 它也无法解密.这确保了网络通信的安全性。

      密码学基础

      在正式解释HTTPS协议之前,我们首先需要了解一些加密知识。

      明文: 明文指未加密的原始数据.

      加密:一旦通过某种加密算法加密,消息就会被加密,从而确保原始数据的安全。

      密钥: 密钥是将消息转换为消息或将消息转换为消息的算法中输入的参数。 密钥分为对称密钥和不对称密钥,分别适用于对称密钥和不对称密钥。

      对称加密:对称加密也称为私钥加密,也就是说,信息的发送者和接收者使用相同的密钥加密和解密数据。对称加密的特点是快速的开放、加密和解密算法,适合加密大量数据,常见的对称加密算法是DES、3DES、TDEA、Blowfish、RC5和IDEA。

      其加密过程如下:明文 + 加密算法 + 私钥 => 密文
      解密过程如下:密文 + 解密算法 + 私钥 => 明文

      对称加密中使用的密钥叫做私人密钥,而私人密钥是指不能泄露的个人的私人密钥。
      在加密过程中使用的私钥与解密过程中使用的私钥相同。这就是为什么加密术语被称为“对称”。由于对称加密算法开放,一旦私人钥匙泄露了,所以,解开这些秘密很容易。因此,对称加密的缺点是密钥管理的困难。

      不对称加密: 不对称加密也称为公共密钥加密.对称加密与对称加密相比,其安全性更好。对称加密通信使用相同的密钥,如果其中一个钥匙漏了,那么,整个沟通将被破坏。而不是使用一对钥匙进行对称加密,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公共钥匙指公共钥匙,任何人都可以访问钥匙。用任何公共或私人密钥加密,用另一个进行解密。

      用公共密钥加密的密码只能用私人密钥解密。程序如下:
      明文 + 加密算法 + 公钥 => 密文, 密文 + 解密算法 + 私钥 => 明文
      通过私人密钥加密的密码只能通过公共密钥解密。程序如下:
      明文 + 加密算法 + 私钥 => 密文, 密文 + 解密算法 + 公钥 => 明文

      因为加密和解密使用两个不同的键,因此不对称加密是“不对称”。
      不对称加密的缺点是,加密和解密需要很长的时间和很慢的速度,并且只能用于加密少量数据。
      非对称加密的主要算法是RSA、Elgamal、Rabin、D-H和ECC(椭圆曲线加密算法)。

      HTTPS通信过程

      HTTPS协议=HTTP协议+SSL/TLS协议,在HTTPS数据传输中,使用SSL/TLS加密和解密数据,加密的数据需要通过HTTP传输,由此可见,HTTPPS是与HTTP和SSL/TLS合作完成的。

      SSL的正式名称是Secure Sockets Layer,即安全套接层协议,它是为网络通信提供安全和数据完整性的安全协议。SSL协议由Netscape于1994年发明,之后,所有浏览器都支持SSL,最新版本为3.0。

      TLS的正式名称是Transport Layer Security,即安全传输层协议,最新版本的TLS(运输层安全,互联网工程工作队(英语:Internet Engineering Task Force,IETF)是互联网工程工作队。(互联网工程工作队)拟订新的协议,它基于SSL3。这是SSL3。以下版本为0。在TLS和SSL3中,存在0之间的显著差异,它主要不同于它们支持的加密算法,因此TLS和SSL3.0不兼容。虽然TLS和SSL3.0在加密算法上不同,但是在理解HTTPS的过程中,我们可以把SSL和TLS当作相同的协议。

      为了结合安全性和效率,HTTPS对称加密和非对称加密也被使用。数据是通过对称加密传输的,对称加密过程需要客户端的钥匙,为了确保密钥可以安全地转移到服务器上,使用不对称加密加密加密密钥,总的来说,数据的对称加密,对称加密的键通过不对称加密传输.

      以下图所示:

      在本文的底部,你会找到最新的信息 C++ 音视频 学习宣传材料,包括( C/C++ Linux 服务器开发, FFmpeg webRTC rtmp hls rtsp ffplay srs ↓↓↓↓↓↓

      HTTPS在传输过程中涉及三个关键:

      服务器端的公共和私人密钥用于不对称加密。

      由客户端生成的随机密钥,用于对称加密。

      HTTPS请求实际上包含两个HTTP传输,可以分成八步。

      1.客户端向服务器启动HTTPS请求并连接到服务器443个端口

      2.服务器有两个密钥,公共密钥和私人密钥,用于不对称加密,服务器存储了不能公开的私人密钥,公共密钥可以发送给任何人。

      3.服务器向客户端发送自己的公共密钥。

      4.客户在服务器端收到公开密码后,会对公钥进行检查,验证其合法性,如果发现公共钥匙有问题,那么HTTPS传输不能继续。严格的说,这应验证服务器发送的数字证书的合法性,如何为客户核查数字证书的合法性,下文会进行说明。如果公钥合格,然后客户端生成一个随机值,这个随机值是用于对称加密的钥匙,我们将把这个钥匙叫做客户钥匙,即客户端密钥,因此,可以从概念上区分开关与服务器端。然后使用服务器的公共密钥进行客户端密钥的不对称加密,所以客户端的钥匙成了私人文本,至此,第一个HTTP请求在HTTPS结束。

      5.客户端在HTTPS中启动第二个HTTP请求,并向服务器发送加密的客户端密钥。

      6.服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥数据的对称加密,这样数据就变成了密文。

      然后,服务器将加密的消息发送给客户端。

      8.客户端接收服务器发送的消息,并用客户端键对称地解密,并接收服务器发送的数据,从而结束HTTPS中的第二个HTTP请求并完成HTTPS传输。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/27136.html

          热门文章

          文章分类