【面试题】http与https相关面试题(持续收录)

在这里插入图片描述

在这里插入图片描述

1.http与https的区别?

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在客户端和服务器之间传输数据的通信协议。它们之间的主要区别在于安全性和数据传输的加密方式:

  1. 安全性:
    • HTTP是明文传输协议,数据在传输过程中不进行加密,容易被窃听和篡改。因此,HTTP在传输敏感信息(如用户名、密码、银行卡号等)时存在安全风险。
    • HTTPS使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对数据进行加密和身份验证,确保传输的数据在客户端和服务器之间是安全的。通过使用数字证书,HTTPS可以验证服务器的身份,防止中间人攻击和数据篡改。
  2. 加密方式:
    • HTTP不对数据进行加密,数据以明文形式传输。
    • HTTPS使用SSL或TLS协议对数据进行加密,确保数据在传输过程中的机密性。加密后的数据在传输过程中只能被发送和接收的双方解密和阅读。
  3. 默认端口:
    • HTTP的默认端口号是80。
    • HTTPS的默认端口号是443。
  4. URL前缀:
    • HTTP的URL以"http://"开头。
    • HTTPS的URL以"https://"开头。

总结来说,HTTPS是在HTTP基础上添加了安全性和数据加密的协议。使用HTTPS可以保护敏感数据的安全性,防止信息被窃听和篡改,提供更安全的网络通信。因此,对于涉及敏感信息传输的网站,使用HTTPS是非常重要的。


在这里插入图片描述

2.HTTPS的加密方式是如何保证数据的机密性的?(SSL/TLS工作原理)

  1. 握手过程(Handshake)
  • 客户端向服务器发起HTTPS连接请求。
  • 服务器将自己的数字证书发送给客户端,证书中包含了服务器的公钥。
  • 客户端验证服务器的证书,包括验证证书的合法性、有效期、颁发机构等。
  • 客户端生成一个用于对称加密的随机密钥(称为会话密钥或对称密钥),并使用服务器的公钥进行加密,然后发送给服务器。
  1. 密钥交换
  • 服务器使用自己的私钥对接收到的加密的随机密钥进行解密,得到对称密钥。
  • 客户端和服务器都拥有相同的对称密钥,用于后续的数据加密和解密。
  1. 数据加密
  • 在握手过程中建立的对称密钥用于加密和解密实际的数据传输。
  • 客户端和服务器使用对称密钥对传输的数据进行加密和解密操作,保证数据在传输过程中的机密性。
  • 对称加密算法通常使用高效且安全的加密算法,如AES(Advanced Encryption Standard)。

通过以上步骤,HTTPS确保了数据在传输过程中的机密性。客户端和服务器之间的通信使用对称密钥进行加密和解密,而对称密钥的安全性则通过非对称加密来保证。这样,即使有人窃听了HTTPS传输的数据,也无法解密和获取其中的敏感信息,因为只有服务器和客户端拥有对称密钥。


在这里插入图片描述

3.什么是中间人攻击?

中间人攻击(Man-in-the-Middle Attack)是指攻击者在通信的两端之间插入自己,并劫持通信双方之间的数据传输。攻击者可以窃听、篡改或伪装通信内容,而通信双方并不知情。

下面是中间人攻击的一般工作流程:

  1. 建立连接:通信的两端(通常是客户端和服务器)试图建立连接,以便进行数据传输。

  2. 中间人介入:攻击者在通信路径上插入自己,使其成为通信的中间环节。这可以通过多种方式实现,例如在网络层面进行路由欺骗、在物理层面进行线路截获,或者通过恶意软件在用户设备上进行操作。

  3. 伪装身份:攻击者伪装成合法的通信方,与客户端和服务器分别建立连接。攻击者可以使用伪造的数字证书、欺骗性的域名或其他方式来给双方造成认为自己是合法通信方的错觉。

  4. 窃听和篡改:攻击者可以窃听通信内容,获取敏感信息,如登录凭据、银行卡号等。此外,攻击者还可以篡改数据,修改传输的内容,例如替换下载的文件、修改网页内容等。

  5. 中继和劫持:攻击者可以中继通信,将双方的数据传递给对方,使得通信看起来正常进行,但攻击者可以窃取或篡改传输的数据。攻击者还可以劫持通信的会话,绕过身份验证,进而访问用户的账户或进行非法操作。

中间人攻击的目的是获取敏感信息、窃取用户凭据、进行身份盗窃、进行欺诈活动或其他恶意行为。它利用了通信双方之间缺乏直接的端到端连接,攻击者利用这个漏洞插入自己并获取通信的控制权。

为了防止中间人攻击,采用安全的通信协议如HTTPS,并注意网络安全和身份验证的实施非常重要。


在这里插入图片描述

4.在HTTPS中,对称密钥是如何通过非对称加密来保证安全性的?

在HTTPS中,对称密钥是通过非对称加密来进行安全交换和保证其安全性的。以下是对称密钥如何通过非对称加密实现安全性的步骤:

  1. 握手过程中,服务器将自己的数字证书发送给客户端,其中包含服务器的公钥。
  2. 客户端验证服务器证书的合法性和有效性,确保其由可信的证书颁发机构签发。
  3. 客户端使用服务器的公钥加密生成一个随机的对称密钥(会话密钥)。
  4. 客户端将加密后的对称密钥发送给服务器。
  5. 服务器使用自己的私钥对接收到的加密的对称密钥进行解密,得到原始的对称密钥。

通过这个过程,对称密钥在传输过程中是被加密保护的,只有服务器能够解密获得原始的对称密钥。这样可以确保对称密钥在传输过程中不会被窃听或篡改。

非对称加密的工作原理是使用一对密钥:公钥和私钥。公钥用于加密数据,而私钥用于解密数据。在这个过程中,服务器的私钥是保密的,只有服务器拥有,而公钥是公开的,可以被任何人获取。

通过使用服务器的公钥加密对称密钥,只有服务器的私钥才能解密该对称密钥。这样,即使对称密钥在传输过程中被拦截,攻击者也无法获得原始的对称密钥,因为只有服务器拥有私钥能够解密。

一旦服务器和客户端都拥有相同的对称密钥,它们可以使用该对称密钥进行后续的数据加密和解密操作,以保证通信的机密性和完整性。

总结起来,通过使用非对称加密算法,服务器的公钥加密对称密钥,确保对称密钥在传输过程中的安全性,而对称密钥的保密性则依赖于服务器的私钥。这种组合使用非对称加密和对称加密的方式,实现了HTTPS通信的机密性和安全性。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/578230.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebSocket 详解-小案例展示

简介:Websocket是一种用于H5浏览器的实时通讯协议,可以做到数据的实时推送,可适用于广泛的工作环境,例如客服系统、物联网数据传输系统,该测试工具可用于websocket开发初期的测试工作。 文章末尾有此案例的完整源代码。…

【JVM】JVM类加载过程

文章目录 🌴类加载过程🌸加载🌸加载🌸验证🌸准备🌸解析🌸初始化 🌲双亲委派模型🌸什么是双亲委派模型?🌸双亲委派模型的优点 ⭕总结 &#x1f334…

visual studio报:引发的异常:“System.DllNotFoundException”(位于 ConsoleCAN1.exe 中)

最近在重构CAN通信的代码,把论文中的java转为C#实现,由于某种原因,java不能复现,所以转为c#。 然而c#的重构过程遇到许多问题,因为两种语言的编程方式、线程等等实现上有所差异。 其中一个错误: 引发的异…

深入理解数据结构第一弹——二叉树(1)——堆

前言: 在前面我们已经学习了数据结构的基础操作:顺序表和链表及其相关内容,今天我们来学一点有些难度的知识——数据结构中的二叉树,今天我们先来学习二叉树中堆的知识,这部分内容还是非常有意思的,下面我们…

网络安全接入认证-802.1X接入说明

介绍 802.1X是一个网络访问控制协议,它可以通过认证和授权来控制网络访问。它的基本原理是在网络交换机和认证服务器之间建立一个安全的通道,并要求客户端提供身份验证凭据。如果客户端提供的凭据是有效的,交换机将开启端口并允许访问。否则&…

Linux(CentOS7.5) 安装部署 Python3.6(超详细!包含 Yum 源配置!)

文章目录 1.配置 Yum 源2.下载 Python3 包3. 解压4.安装依赖环境5.安装出错场景 6.创建软链接7.配置 Python3 的环境变量8.验证补充:安装 openssl-devel补充:pip3 源配置 1.配置 Yum 源 # 注意!!!请先切换到 root 账号…

Go语言爬虫实战(线程池)

Go语言爬虫实战 目标 利用go语言爬取指定网站的图片。实现爬取网站任意页面所有所需的图片。实现使用go语言线程池开启多个线程爬取图片内容。最后实现创建多个文件夹存储图片。 爬取网站图片 步骤 对指定URL发去GET请求,获取对应的响应。 resp, err : http.Get(…

小迪学习笔记(内网安全)(常见概念和信息收集)

小迪学习笔记(内网安全)(一) 内网分布图内网基本概念工作组和域环境的优缺点内网常用命令域的分类单域父域和子域域数和域森林 Linux域渗透问题内网安全流程小迪演示环境信息收集mimikatzLazagne(all)凭据信息政集操作演示探针主机…

Modbus转Profinet网关快速解决PLC插槽数量不够用的烦恼

通过Modbus转Profinet(XD-MDPN100)网关的应用,不仅可以实现Modbus设备与Profinet网络的平滑对接,还能有效解决PLC插槽限制和Modbus指令轮询等问题,Modbus转Profinet网关(XD-MDPN100)在解决PLC插…

CSS(三)---【盒子模型、边框、外边距合并】

零.前言 本篇主要介绍CSS中最重要的一种概念模型:“盒子模型”。 关于CSS的更多内容,可以查看作者之前的文章: CSS(一)---【CSS简介、导入方式、八种选择器、优先级】-CSDN博客 CSS(二)---【常见属性、复合属性使用】-CSDN博客 一.盒子模…

鸿蒙OS开发实例:【消息传递】

介绍 在HarmonyOS中,参考官方指导,其实你会发现在‘指南’和‘API参考’两个文档中,对消息传递使用的技术不是一对一的关系,那么今天这篇文章带你全面了解HarmonyOS 中的消息传递 概况 参照官方指导,我总结了两部分…

链表合集(easy难度)

合并两个有序链表 双指针法 由于list1和list2都是递增的,可以想到用双指针法。假如当前list1这个指针指向的节点被收入完成,那就list1;如果是list2被收入,那就list2。 具体是list1和节点被收入还是list2的节点被收入&#xff…