首页 程序笔记 SSL 连接过程详解

SSL 连接过程详解

1、SSL 简介

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层与应用层之间对网络连接进行加密。

在标准的 HTTP 协议下,客户端与服务端直接通过 TCP 链接,以 明文 的形式交换数据,这样做其实在传输一些普通网页数据时并没什么问题,但是如果用户在浏览网页中,需要向服务端发送用户名、密码、银行卡号之类的敏感信息的话,我们不希望这些信息被入侵者所获取,也不希望其遭到篡改或伪造,这时就需要用到 SSL 了。

一个安全的通信往往需要包含三个特性:机密性、数据完整性、端点鉴别,三者缺一不可。

机密性:如果没有机密性,入侵者就可能截获客服端的报文,并获取其的敏感信息。

数据完整性:如果没有数据完整性,入侵者就可以随意篡截获的客户端报文,并对其的信息进行随意的篡改。

端点鉴别:如果没有端点鉴别,客服端所请求的服务器有可能是一个钓鱼网站,用来恶意收集用户的敏感信息。

SSL 就是通过提供机密性、数据完整性以及服务端和客户端鉴别,来强化一个普通的 TCP 链接。

因为 SSL 协议是运行在 TCP 之上的,因此,理论上来讲它能为包括 HTTP 协议在内的任何基于 TCP 连接的应用层协议提供安全性保障。下面来看一下 SSL 的工作原理。

2、SSL 工作原理

SSL 的工作主要可以分为三个阶段:握手、密钥导出、数据传输。

2.1、握手阶段:

在握手阶段需要完成的三个任务分别是:建立一条 TCP 连接、验证服务端身份、分发通信主密钥。大致过程描述如下:

客户端首先发起一条到服务端的 TCP 连接,随后的数据传输都是在这条 TCP 连接之上的,在 TCP 链接建立之后,客户端会向服务端发送 HELLO 报文,这个报文中包含了客户端所支持的密码算法列表,服务端在接收后会选用一种对称算法,一种非对称算法和一种 MAC 算法,连同其 证书 回应给客户端(这个证书就是经过权威机构认证的一个实体与其公钥的绑定)。

因为在各种的加密过程中,只要是涉及到使用公开密钥的,一般都会有公钥被入侵者盗用和伪造的风险,这时就需要权威机构颁发的数字证书来证明一个公要与实体的绑定。

客户端在收到服务端发来的证书之后,就可以明确的知道当前正在跟自己通信的服务端就是目标服务器,客户端随后会从证书中提取服务端发来的公钥,并在客户端生成一个随机的主密钥 MS,然后用服务端的公钥对其进行加密后发送给服务端,服务端会用自己的私钥解密得到主密钥 MS,这样就完成了主密钥的分发。

客户端和服务器都掌握了主密钥,有了这个其他人都不知道的主密钥,随后的数据加密和验证过程就好办了。

2.2、密钥导出:

密钥导出阶段,就是通信双方会以相同的方法,用主密钥生成四个密钥,这四个密钥的分别作用如下:

EB:用于从服务端到客户端发送数据的会话加密密钥

MB:用于从服务端到客户端发送数据的会话 MAC 密钥

EA:用于从客户端到服务端发送数据的会话加密密钥

MA:用于从客户端到服务端发送数据的会话 MAC 密钥

会话加密密钥就是实际用来加密传输数据的对称密钥,MAC 密钥在是标志传输数据完整性的密钥。

MAC:报文鉴别码,是一种用来监测报文完整性的技术。它的过程并不复杂,发送方将明文与一个鉴别密钥进行级联,这个鉴别密钥是通信双方所共有的,随后会计算这个级联后的数据散列值,这个散列值就叫做原始数据的报文鉴别码 MAC,将报文的鉴别码附加在原始明文后面,一同发送给接收方。接收方用收到的明文,级联相同的鉴别密钥,再以相同的方法计算散列值,与收到的散列值 MAC 进行对比,若两者相同,则说明数据未被篡改,上述的 MA 和 MB 就是 MAC 里的鉴别密钥。

2.3、数据传输:

SSL 将数据流分割成记录,对每个记录 EA 加密,并附加一个 MAC(用于完整性鉴别),然后对该记录与 MAC 进行加密,然后将这个被加密的包发送服务器,服务端收到这个数据包后,用相应的 EB 对称密钥进行解密,再用 MB 进行数据完整性检验。

3、报文重放攻击

上述操作看似是实现了对安全通信的三个基本需求,但是其对整个会话过程中报文流的数据完整性的保障并未达到天衣无缝,虽然单个记录的报文完整性可以由 MAC 保障,但是若是入侵者恶意调换两个 SSL 记录的顺序,或者故意多次重放同一个 SSL 记录多次,这样会导致接收方收到的最终报文不正确,这也就是 "报文重放攻击"。

不过这个问题可以通过序号来解决,你可能会想,在每一个记录中增加一个序号不就行了么,但是实际上不必直接在 SSL 记录中额外包含一个序号,只需要由发送方自己维护一个计数器,每发送一次,就将自己的计数器 +1,并在计算记录 MAC 时,将这个需要括在 MAC 中的记录中,接收方也跟踪自己收到的所有记录的序号,同样在计算记录 MAC 进行校验时,让自己跟踪到的序号参与计算,若计算结果相同就说明记录即通过了完整性检验,也没有被篡改顺序。

站星网

1、SSL 简介SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Securit..

为您推荐

MySQL 字符集、排序规则与查询关系详解

MySQL 查询是否区分大小写及重音敏感,取决于创建时指定的字符集(character set)和排序规则(collation)。(1)字符集(Character Set):规定可存储的字符,如 utf8、utf8mb4、latin1 等。(2)排序规则(Collat..

交易系统:退款单模型设计详解

大家好,我是汤师爷~和退款单作为整个交易逆向系统的核心,支撑着售后管理环节。售后域核心概念模型1、退款单退款单是记录和跟踪退款处理过程的核心业务单据,包含以下关键信息:租户ID:标识所属商户或组织退款单ID..

JavaScript API 设计原则详解

前言本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块。系卤煮自己总结的一些经验和教训。本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来。很难做到详..

JavaScript 事件委托详解

基本概念事件委托,通俗地来讲,就是把一个元素响应事件(click、focus……)的函数委托到另一个元素;一般来讲,会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,当事件响应..

JavaScript 中的遍历详解

编程这么多年,要是每次写遍历代码时都用 for 循环,真心感觉对不起 JavaScript 语言~对象遍历为了便于对象遍历的测试,我在下面定义了一个测试对象obj。测试对象// 为 Object 设置三个自定义属性(可枚举)Object.p..

详解:订单履约系统规划

大家好,我是汤师爷~什么是订单履约系统?订单履约是从消费者下单支付到收到商品的全流程管理过程,包括订单接收、订单派单、库存分配、仓储管理和物流配送等环节,核心目标是确保商品准时、准确地送达消费者手中。..

Redis 数据结构详解

Redis 数据类型分为:字符串类型、散列类型、列表类型、集合类型、有序集合类型。Redis 这么火,它运行有多块?一台普通的笔记本电脑,可以在1秒钟内完成十万次的读写操作。原子操作:最小的操作单位,不能继续拆分..

.NET C#连接FTP实现文件上传下载

在 .NET 中可以使用 System.Net.FtpWebRequest 类来连接 FTP 服务器,实现文件上传和下载。以下是实现文件上传和下载的完整代码示例。1. 上传文件到 FTP 服务器using System;using System.IO;using System.Net;class..

.NET C#中的Func、Predicate和Expression用法详解

在 .NET C# 中,Func、Predicate 和 Expression 是非常常见的委托类型和表达式树,广泛用于函数式编程、数据查询(如 LINQ)以及表达式编译等场景。以下是它们的详细用法和区别。1. FuncFunc 是一个通用委托,用于表..

javascript 6种连接数组的方法和对比

在 JavaScript 中,有多种方法可以用来连接数组,以下是常见的几种:1. concat() 方法用于连接两个或多个数组,返回一个新的数组,不修改原数组。const arr1 = [1, 2, 3];const arr2 = [4, 5, 6];const result = arr..

.Net Core中Dapper的使用详解

1.安装Dapper这里直接使用Nuget安装。安装版本是1.50.5安装完成之后,发现Nuget下已经有了Dapper。2.创建DapperHelper接下来创建一个DapperHelper帮助类,来进行读取数据库连接字符串,打开数据库等操作。public cla..

SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 这个错误通常表示客户端在尝试连接到服务器时,服务器没有及时响应,导致连接超时。以下是一些可能的原因和解决方法:可..

.NET C# EntityFramework(EF)连接SQLite代码示例

在.NET C#中使用Entity Framework(EF)连接SQLite数据库是一种常见的做法,可以有效地管理和操作数据。以下是一个简单的示例代码,展示了如何使用EF Core连接到SQLite数据库并执行基本的CRUD操作。首先,确保你已经..

使用ADO.NET连接到南大通用GBase 8s数据库

南大通用GBase 8s数据库广泛应用于各种企业级应用中,对于开发者而言,掌握如何使用ADO.NET连接到GBase 8s数据库非常重要。本文将详细阐述如何通过ADO.NET方式连接到南大通用GBase 8s数据库,并进行基本的数据库操作..

Entity Framework Core 连接PostgreSQL

Entity Framework Core PostgreSQL 库是一个由 Npgsql 开发和维护的 NuGet 包,用于使用 Entity Framework Core 访问 PostgreSQL 数据库。要使用 Entity Framework Core PostgreSQL 库,需要先安装 NuGet 包。Instal..

DevEco Studio鸿蒙OS系统开发环境搭建详解

DevEco Studio 是华为推出的一款面向华为终端全场景多设备的集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的HarmonyOS应用开发服务。DevEco Studio官网:https://developer.harmonyo..

c#中责任链模式详解

基本介绍:  “责任链”顾名思义,是指一个需要负责处理请求的链条。  每个链条节点都是一个单独的责任者,由责任者自己决定是否处理请求或交给下一个节点。  在设计模式中的解释则为:为请求创建了一个接收者..

.NET Core连接和操作MongoDB用法示例

连接和操作MongoDB与.NET Core可以通过MongoDB官方提供的.NET驱动程序来实现。以下是一种基本的连接和操作MongoDB的方法:步骤 1: 安装 MongoDB 驱动程序首先,在你的.NET Core项目中安装 MongoDB.Driver 包。你可以..

定时调度框架系列之Quartz.Net详解

一. 背景我们在日常开发中,可能你会遇到这样的需求:"每个月的3号给用户发信息,提醒用户XXX "、"每天的0点需要统计前一天的考勤记录"、"每个月的1号计算上个月的库存情况"、"定时初始化数据供其它业务使用"、"每隔..

你如何设计一个可扩展的.NET应用程序架构?请描述你在这方面的思考过程和实践经验。

设计可扩展的.NET应用程序架构是为了满足应用程序在需求增长和负载增加时的可扩展性和性能要求。下面是我在这方面的思考过程和实践经验:需求分析:首先,我会进行需求分析,了解应用程序的功能需求和预期的负载。这..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制
木德育儿网-健康孕育知识分享_育儿百科知识大全观知健康-健康知识小常识_养生知识分享交流平台三省养生网-养生文化分享与交流_健康知识传播知识库乾藏国学网-国学文化传播_国学经典分享与传承易学新知网-风水知识分享平台好孕堂-助孕健康知识--查询、助孕小知识分享无双运势网 - 易学爱好者交流平台!一步达贷款社区--·中介办卡贷款技术·网贷口子·卡民论坛app好运来网-易学知识分享平台_易经入门零基础自学曲大夫助孕-助孕知识分享交流平台道情先生-风水交流平台_道可道非常道巧农网 - 农业技术知识_乡村创业致富好帮手天慧理财网 - 专注财富增长_最全面的综合理财知识分享网站亿福缘网 - 风水知识分享平台亿洋易学-专注于易学知识分享的平台健康助孕科普内容平台,分享专业助孕知识-孕知网孕好网_专注试管婴儿科普_助孕问答_助您有好孕!包天龙运势网 - 易学爱好者交流平台!九六易学网 - 为易学爱好者提供一个优秀的学习知识平台来好孕 - 愿好运伴您而行风水知识网算命久久网-今日运势分享_祝您好运常伴品千年雅韵,书一纸风华 - 诗词百科诗词名句网叮当历史 - 古文排行榜_历史人物文化经典故事大全来福网 - 传统国学典故_国学文化感悟人生斗转星移网富凯风水孕力加持网-好孕汇聚之地_孕力加持_好孕终至幸孕方舟网-专业试管助孕资讯解析速配精选网-专注于理财知识分享交流平台看测运势网-周易生辰八字测算_免费八字合婚_婚姻配对测试迪肯风水头条-风水知识交流分享平台易学迷-易学风水学入门知识分享与交流久道网 - 传统国学典故_国学文化感悟人生乐禧易学网 - 专注于易学高质量案例分享网站历史时间网 - 全球历史上的今天大事件风水388 - 风水学入门_居家风水小常识伍贰易学网-专注于易学知识分享平台星座爱-专注于星座运势知识分享巴巴百科 - 专业知识问答百科分享平台族女网-引领国学新时尚_让国学流行起来_传统易学风水文化学佛笔记句子汇-每日经典语录短句推荐叶翁网-风水易学知识分享_周易易学知识占卦塔尘网素食购--素味禅心、膳养菩提术灿网-风水国学起名十二生肖运势_易学阴阳风水秘术雀牛网-2026热门汽车品牌排行榜_新能源汽车推荐_床车房车选购攻略_您身边的汽车专家植物迷-探索植物属性_种植技术知识分享平台龙哥易学网古诗词名句_诗词名句大全_古籍文学资料库-好再来网番茄免费文学平台_免费网络小说_无弹窗广告小说阅读网_诗词古文文学知识分享-番茄文学网工作岗位职责网-本年度各行业部门工作职责大全_提供各行各业岗位职责范本久图网-唯美图片_卡通动漫图片_天堂图片_帅哥美女艺术图片_数以万计美图资料库醋椒影视网-2026年热门电影作品推荐_最火爆的电视剧导航网站常能网-带您了解那些经典的历史故事超追影视网-2026最新热门电影_热播电视剧在线追剧_高清免费短剧视频导航巴佩体育网-体育赛事新闻资讯_2026最新实时体育赛事比分捷报站星网 - 用心服务每一位站长,助力每一份梦想八万四千法门助好孕 - 助孕小贴士助你有好孕经书网 - 以音声作佛事,聆听与观想的修学园地 jingshu.net佛教音乐网 - 海量佛乐、梵呗、禅音在线试听与下载塔尊佛教网|借视频之舟,渡烦恼之海 Tazun.Cn聚合地图网好客运势网 - 经典典籍文化传承者听佛音 - 最好听的静心天籁之音老司机知识库--你的自学加速引擎,海量资源带你极速成长!唯美图片 - 高清唯美壁纸头像背景图库_PicURL图集素超人 - 国内领先的素食分享平台点优作文网 - 优秀作文大全_日记周记_读后感_历年中考高考范文顺发万年历-2026年日历,2026年老黄历查询,2026年黄道吉日素食学佛网佛教导航 - 开启智慧之旅,连接十方法缘 | fjdh.org.cn顺运堂 - 专业家居风水布局,八字命理分析,助您家宅兴旺,运势亨通地藏论坛-佛教网络净土_佛法综合社区生食主义哦嘿养殖网 - 热门乡村养殖发展项目_养殖技术知识分享大师看风水道秘相取名网-生辰八字五行取名_十二生肖取名品读名篇佳句,涵养诗意人生 - 古诗词网新华字典在线查字_在线汉语学习_汉字拼音_笔画顺序_组词造句_英语词典_诗词名句-诗文谜藏佛寺官网国学在线 - 国学网,国学学校,国学经典,国学地图弘善佛教网-传播正信正知佛法的佛教网站素食美-关爱健康_素食之美藏佛坑官网必过留学网_海外院校库_留学申请条件_留学费用_排名查询江湖以冷网 - 品读历史故事,感悟世间冷暖。生死书 - 佛教文化传承与生命智慧探索平台乐乐易学网-易学知识分享_生辰八字查询_五行八卦测算久食宿 - 旅游出行特色民宿推荐_全国名宿信息一览表趣知道 - 提问与分享,人人都是知识分享家 | Quzhidao.Com地藏孝亲网--南无大愿地藏王菩萨给农网吃好素-让生活因素而美情感语录网-婚姻情感语录_经典爱情语录_情感短信七七爱生活网十二星座_十二生肖运势_配对表_查询- 星座袋风水人家-国学文化风水知识交流平台道法网-风水运势解析_家居风水知识分享玖爱星座网-星座运势配对知识分享交流就识趣_专业中国传统文化网站_风水学藏经阁-最全的佛教经典典籍文库108工具网——您的全能在线工具箱中医文献网-中医古籍全文数据库推荐奇闻网-探索历史故事_带您了解历史上那些事儿八零生活网品酒啦-酒文化知识分享平台古籍文学网-最全的古文化知识分享平台公司起名-专注于弘扬传统文化的平台_宝藏典籍网非常易学网-生辰八字预测_生肖运势星座匹配居士之家-最全面的华人居士在线交流网站平台素超人-专注于善知识分享交流平台素超人 - 正能量善知识分享平台素超市 - 纯素生活购物平台VisaMastercardAmerican ExpressPayPalDiners ClubDiscover斗图趣 - 斗图表情包_有趣的斗图资源库富达裕-古文化经典藏品知识分享平台学佛网手机版笑一个吧 O(∩_∩)O 笑话大全_给生活加点笑料-XiaoYiGe.Cn班超文学网-优秀文学知识分享交流平台政卿事迹网-带您了解历史上的那些事儿素满香取名去 - 姓氏取名一览表_百家姓名字大全学佛网 - 佛弟子在线网络分享交流平台正能量网 - 传递正能量_真善美美文推荐搞笑gif动图网 - 内涵爆笑段子gif动态图_QQ表情包恶搞图片大全_97Gif.Com