SSL、TLS、HTTPS的关系

2023-09-17 11:53:43

SSL、TLS、HTTPS的关系

SSL(Secure Sockets Layer),安全套接字协议

TLS(Transport Layer Security),传输层安全性协议

TLS是SSL的升级版,两者几乎是一样的

HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),建立在SSL协议之上的HTTP协议

image-20211025160927355

面试题

  1. 介绍下 HTTPS 中间人攻击

    参考答案:

    针对 HTTPS 攻击主要有 SSL 劫持攻击和 SSL 剥离攻击两种。

    SSL 劫持攻击是指攻击者劫持了客户端和服务器之间的连接,将服务器的合法证书替换为伪造的证书,从而获取客户端和服务器之间传递的信息。这种方式一般容易被用户发现,浏览器会明确的提示证书错误,但某些用户安全意识不强,可能会点击继续浏览,从而达到攻击目的。

    SSL 剥离攻击是指攻击者劫持了客户端和服务器之间的连接,攻击者保持自己和服务器之间的 HTTPS 连接,但发送给客户端普通的 HTTP 连接,由于 HTTP 连接是明文传输的,即可获取客户端传输的所有明文数据。

  2. 介绍 HTTPS 握手过程

    参考答案:

    1. 客户端请求服务器,并告诉服务器自身支持的加密算法以及密钥长度等信息
    2. 服务器响应公钥和服务器证书
    3. 客户端验证证书是否合法,然后生成一个会话密钥,并用服务器的公钥加密密钥,把加密的结果通过请求发送给服务器
    4. 服务器使用私钥解密被加密的会话密钥并保存起来,然后使用会话密钥加密消息响应给客户端,表示自己已经准备就绪
    5. 客户端使用会话密钥解密消息,知道了服务器已经准备就绪。
    6. 后续客户端和服务器使用会话密钥加密信息传递消息
  3. HTTPS 握手过程中,客户端如何验证证书的合法性

    参考答案:

    1. 校验证书的颁发机构是否受客户端信任。
    2. 通过 CRL 或 OCSP 的方式校验证书是否被吊销。
    3. 对比系统时间,校验证书是否在有效期内。
    4. 通过校验对方是否存在证书的私钥,判断证书的网站域名是否与证书颁发的域名一致。
  4. 阐述 https 验证身份也就是 TSL/SSL 身份验证的过程

    参考答案:

    1. 客户端请求服务器,并告诉服务器自身支持的加密算法以及密钥长度等信息
    2. 服务器响应公钥和服务器证书
    3. 客户端验证证书是否合法,然后生成一个会话密钥,并用服务器的公钥加密密钥,把加密的结果通过请求发送给服务器
    4. 服务器使用私钥解密被加密的会话密钥并保存起来,然后使用会话密钥加密消息响应给客户端,表示自己已经准备就绪
    5. 客户端使用会话密钥解密消息,知道了服务器已经准备就绪。
    6. 后续客户端和服务器使用会话密钥加密信息传递消息
  5. 为什么需要 CA 机构对证书签名

    主要是为了解决证书的可信问题。如果没有权威机构对证书进行签名,客户端就无法知晓证书是否是伪造的,从而增加了中间人攻击的风险,https 就变得毫无意义。

  6. 如何劫持 https 的请求,提供思路

    https 有防篡改的特点,只要浏览器证书验证过程是正确的,很难在用户不察觉的情况下进行攻击。但若能够更改浏览器的证书验证过程,便有机会实现 https 中间人攻击。

    所以,要劫持 https,首先要伪造一个证书,并且要想办法让用户信任这个证书,可以有多种方式,比如病毒、恶意软件、诱导等。一旦证书被信任后,就可以利用普通中间人攻击的方式,使用伪造的证书进行攻击。

更多推荐

港联证券:“火箭蛋”来袭 蛋价涨势能否延续?

上个交易周(9月11日至15日),鸡蛋期货商场呈现了意想不到的涨势。9月15日,鸡蛋期货多个合约大涨,其中2310合约涨超5.6%,主力合约2311盘中两度触及涨停,最终收涨6%。业内人士以为,鸡蛋期货呈现大幅上涨,一方面在于旺季阶段贴水起伏较大,质料本钱抬升,商场预期转强,带动近月合约大幅上涨;另一方面表现在现货端价

Java面向对象编程

主机甲和乙已建立了TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时时拥塞窗口为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是()A.10KBB.12KBC.14KBD.15KB答案:A某主

Centos下载安装连接MySQL8

一、下载链接:https://dev.mysql.com/downloads/mysql/点击Download,如下图:没有登录,点击“Nothanks,juststartmydownlaod.”即可下载二、安装2.1将下载的mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz上传到服务

Java手写强化学习

Java手写强化学习1.强化学习算法思维导图以下是强化学习算法的实现原理的思维导图,使用Mermanid代码表示:#mermaid-svg-G97ymGcDIKLGvwqB{font-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fill:#3

【JS/TS游戏开发实战】LayaAir 全平台 3D 引擎

LayaAir3.0引擎,包括引擎代码、项目开发工具、项目发布,三大部分。目录一、引擎代码1.1引擎通用部分1.22D引擎1.33D引擎二、IDE(集成开发环境)2.1通用模块2.12D模块2.23D模块三、项目发布3.1Web版发布3.1.1构建发布3.1.2发布选项3.2小游戏发布3.3Native打包发布3.3.

数据库计算机三级等级考试--数据库技术相关知识点和笔记

数据库计算机三级等级考试–数据库技术计算机三级等级考试笔记,是博主通过计算机三级数据库技术考试的相关笔记,此篇博客,不仅适合需要考计算机三级考试的各位考生,也适合在职场处理关于数据库的部分操作,个人认为算是一篇使用性比较强的文档,我个人认为,我目前所在开发岗位,在回顾去看这篇文档,我都会再次有收获,对了,如果你需要计算

外包干了2个月,技术退步明显了...

先说一下自己的情况,大专生,19年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年8月份,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试,已经让我变得不思进取,谈了2年的女朋友也因为我的心态和工资和我分手了。于是,我决定要改变现状,冲击下大厂。刚开始准备

浅析-ES6

4、ES6语法指南后端项目搭建完毕,接下来就是前端页面了。不过在这之前需要一些准备工作。我们需要学习ES6的语法标准。什么是ES6?就是ECMAScript第6版标准。4.1.什么是ECMAScript?来看下前端的发展历程:web1.0时代:最初的网页以HTML为主,是纯静态的网页。网页是只读的,信息流只能从服务的到

2023年8月知识复习

物联网总括物联网即通过网络将客观事物进行智能化互联的网络系统。互联网主要是人与人、人与计算机之间的通信,而物联网主要是物联网设备之间的通信。注意:数据上传到云端不是物联网的必要条件。物联网可以仅在本地网络和局域网中进行通信和数据处理。比如在工业控制系统中,设备之间需要实时通信和数据处理,但出于隐私、安全性或数据管控的考

C++核心编程之类和对象---C++面向对象的三大特性--封装

目录类和对象类和对象的概念C++面向对象的三大特性一、封装封装案例1:设计一个学生类,可以给姓名和学号赋值,可以显示学生的姓名和学号。二、访问权限访问权限有三种struct和class的区别三、成员属性私有化成员属性私有化的优点:四、封装案例案例1:设计立方体类案例2:点和圆的关系类和对象面向对象编程(OOP)是现代编

【C语言】进阶——字符串和内存函数

目录一:非限制字符串函数1.strlen👊模拟实现方法1:计算器法方法2.指针-指针方法3.函数调用2.strcpy👊模拟实现3.strcat👊模拟实现4.strcmp👊模拟实现二:可限制字符串函数1.strncpy2.strncat3.strncmp4.strstr👊模拟实现5.strtok6.strerr

热文推荐