TLS协议。

news2024/11/17 13:55:47

    IPSec通过安全关联实现IP分组安全关联两端之间的安全传输过程,TLS通过建立安全连接实现数据在两个应用进程之间的安全传输过程。TLS建立安全连接时,实现安全连接两端应用进程之间的双向身份鉴别过程,保证经过安全连接传输的数据的保密性和完整性。TLS基于TCP建立两个应用进程之间的安全连接。

    对于许多客户/服务器(Client/Server,C/S)应用结构,实现双向身份鉴别与保证相互交换的数据的保密性和完整性是非常重要的,如访问网络银行,一是需要通过双向身份鉴别防止用户登录伪造的银行网站,并因此泄漏账号、密码等私密信息;二是必须保证经过网络传输的私密信息的保密性和完整性。为了对客户和服务器之间传输的数据进行加密和源端鉴别,客户和服务器之间必须约定加密密钥和鉴别密钥、加密算法和鉴别算法等。

    客户可以通过注册过程和服务器约定上述参数,如果这样,服务器必须为每一个注册客户保留上述安全参数,这一方面增加了服务器的存储负担,另一方面也增加了泄密这些安全参数的可能性。因此,有必要为每一次客户机和服务器之间的数据传输过程动态产生上述安全参数,而且这些安全参数在每一次数据传输过程结束后自动失效,这将大大增强客户机和服务器之间数据传输的安全性,但必须有一套用于完成双向身份鉴别和安全参数协商的协议,传输层安全(Transport Layer Security,TLS)就是这样一种协议。

TLS记录协议用于封装上层协议消息,通过TLS记录协议传输的上层消息可以实现源端鉴别、保密性和完整性。

TLS握手协议是一种实现身份鉴别和安全参数协商的协议。客户端和服务器端通过TLS记录协议传输数据前,需要通过TLS握手协议完成双向身份鉴别过程,并约定压缩算法、加密算法、MAC算法、加密密钥、MAC密钥等安全参数。

通信双方约定新的安全参数后,通过TLS改变密码规范协议通知对方开始使用新约定的安全参数。

报警协议用于传输出错消息,如解密失败、无法确认证书等。

通信双方第一次启动握手协议时,初始安全参数为不压缩、不加密、不计算MAC。

TLS记录协议

 

内容类型:上层消息类型,如TLS握手协议消息、HTTP消息等。

主版本号:对于TLS,固定为3。次版本号:对于TLS,固定为1。

压缩数据长度:加密操作前上层消息长度。

由于上层消息的长度可以任意,但TLS压缩后的数据的长度不能超过2''B,当单个TLS记录协议报文无法容纳上层消息时,必须对上层消息分段,保证每一段上层消息能够封装成单个TLS记录协议报文。如果通信双方需要对传输的数据进行加密和完整性检测,必须根据压缩后的数据计算消息鉴别码(MAC),并对压缩后的数据和MAC进行

加密运算,这就要求通信双方在进行如图6.17所示的封装过程前,必须通过TLS握手协议约定如下安全参数。

(1)压缩算法。用于压缩分段后的上层消息。

(2)加密算法。用于加密压缩后的数据和MAC,加密的目的是实现数据保密性。

(3)MAC算法。用于计算MAC,MAC的作用是实现源端鉴别和数据完整性。

(4)服务器端写密钥。服务器端加密数据和MAC时使用的密钥。

(5)客户端写密钥。客户端加密数据和MAC时使用的密钥。

(6)服务器端写MAC密钥。服务器端计算MAC时使用的密钥。

(7)客户端写MAC密钥。客户端计算MAC时使用的密钥。

(8)初始向量。采用分组密码体制的加密算法和加密分组链接(Cipher-Block Chaining,CBC)模式时,作为初始向量。

(9)序号。每发送一个TLS记录协议消息,序号增1,序号参与计算MAC过程。值得指出的是,服务器端至客户端传输方向和客户端至服务器端传输方向可以使用不同的加密密钥和MAC密钥。服务器端写密钥作为服务器端至客户端传输方向的加密密钥,服务器端写MAC密钥作为服务器端至客户端传输方向的MAC密钥。同样,客户端写密钥作为客户端至服务器端传输方向的加密密钥,客户端写MAC密钥作为客户端至服务器端传输方向的MAC密钥。

握手协议实现身份鉴别和安全参数协商过程

整个操作过程分为4个阶段,

阶段1:用于双方对压缩算法、加密算法、MAC算法及TLS协议版本达成一致。客户C在客户Hello消息中按优先顺序列出客户C支持的算法列表及TLS协议版本,服务器V从客户C支持的算法列表中按优先顺序选择一种自己支持的算法作为双方约定的算法,在双方支持的TLS版本中选择较低的TLS版本作为双方约定的TLS版本,并通过服务器 Hello 消息将双方约定的算法、TLS版本回送给客户C。

阶段2:验证服务器证书。用于完成对服务器V的身份鉴别。TLS支持多种鉴别服务器V身份的机制,这里以基于证书+私钥的鉴别机制为例讨论:

服务器 V 身份鉴别过程。服务器 V 身份鉴别过程就是确认客户C访问的服务器V就是域名为

IDv的服务器的过程。基于证书+私钥的鉴别机制鉴别服务器V身份的过程如下:服务器V向客

户C提供由认证中心颁发的、证明IDJ和公钥PKV绑定关系的证书

但确定公钥PKV和IDJ的绑定关系并不能证明服务器V和ID,的绑定关系,只有在证明了服务器V拥有和公钥PKV对应的私钥SKV后,才能证明服务器V的域名为IDy。因此,阶段2并没有完成对服务器 V的身份鉴别。

阶段3:生成主密钥与验证客户证书

如果服务器V要求鉴别客户C的身份,阶段3一开始就由客户C通过客户证书消息向服务器V发送证书链,证书链包含的证书保证服务器V能够验证证明ID:和公钥PKC绑定关系的证书。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GPLT 二阶题目集】L2-017 人以群分

社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能…

时间序列模型

一、季节分解 1、概念 时间序列也称为动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。主要由时间要素和数值要素构成。时期序列中,数值要素反映现象在一定时期内发展的结果;时点序列中,数值要素反映现象在一…

如何在FreeBSD中安装Nginx,MySQL,PHP(FEMP)

本文介绍如何在FreeBSD 13系统中安装Nginx、MySQL、和PHP服务。系统环境FreeBSD 13.0-RELEASE更新系统在安装任何软件之前更新系统是一个好习惯,以便检查系统更新:rootfreebsd:~ # freebsd-update fetchrootfreebsd:~ # freebsd-update install安装Nginx…

在线教育-谷粒学院学习笔记(九)

文章目录1 内容介绍2 搭建项目前台环境NUXT3 整合项目首页4 nuxt路由5 首页数据banner显示—初始配置6 首页数据banner显示—接口7 首页数据banner显示—前端实现8 首页数据显示—热门课程和名师9 Redis复习10 首页数据添加Redis缓存1 内容介绍 搭建项目前台系统环境 NUXT 整合…

【PHP 随记】—— Composer 安装及镜像配置

👉总目录👈\large\colorbox{skyblue}{👉总目录👈}👉总目录👈​ 文章目录1、Composer 安装2、配置镜像Composer 是 PHP 用来管理依赖(dependency)关系的工具;简单来说&…

等级保护介绍

等保流程 等级保护 等保发展历程 。1994 首次国家提出等级保护概念 。1999 针对信息系统保护有法律依据 。2007 等保1.0措施。 。2017 立法了《网络安全法》 。2019年 等保2.0 颁布 等保2.0和1.0有什么特点和区别 1.名称变了信息安全技术信息等级保护要求 改为 信息安全基础网络…

1、测试用例通用模板

一、针对大版本需求的测试用例模板 1、测试用例模板说明 1.1、表头说明 项目版本号V1.0--测试用例(示例标题)(xxxxx有限公司测试组/ONLY FOR INTERNAL USE ONLY)Confidentiality level 密级(xxxxxx测试组/仅供内部使用) Internal 内部公开 修订记录版…

软件设计(二)

软件设计(一)https://blog.csdn.net/ke1ying/article/details/128779601 11、windows系统当双击.jpg文件的时候,系统会通过建立的 文件关联 来决定使用什么程序来打开该图像文件。 (双击.jpg文件,系统会建立‘window…

【哈希表】leetcode349. 两个数组的交集(C/C++/Java/Python/Js)

leetcode349. 两个数组的交集1 题目2 思路--set2.1 拓展/后记3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 Python 版本3.5 JavaScript版本4 总结1 题目 题源链接 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考…

分享150个ASP源码,总有一款适合您

ASP源码 分享150个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 150个ASP源码下载链接:https://pan.baidu.com/s/1DpxbFxdGCl9eWEe3AaD1eA?pwdecqi 提取码&#x…

echarts数据可视化项目搭建(二)

目录主题设置默认主题重点示例自定义主题调色盘主题全局局部颜色渐变可视化图表自适应重点示例实现简单的加载动画重点示例增量动画实现重点示例简单动画配置项关于全局echarts对象和echartsInstance对象echarts.connect()其他echarts实例对象方法本博客内容参考黑马课程&#…

系统编程中的进程的概念No.2

引言: 今天是个好日子,日更动态养成习惯,日更博客你我他,北京时间 2023/1/29/10:09,今天阳光明媚,但是还是很冷,起床时间8:55,可以看出又早了那么一点点,今天为什么能起…

VSCode调试Python文件并指定虚拟环境

记录在使用VSCode调试py文件时遇到的一些问题:1.启用Debug模式进行调试2.调试带参数的python文件3. 调试时指定服务器虚拟环境4. 相对路径出错首先给出VScode 官方调试说明:https://code.visualstudio.com/docs/python/debugging#_set-configuration-opt…

法律常识(六)《最高人民法院婚姻法司法解释精释精解》例子

目录 一、婚约财产(彩礼)纠纷 二、夫妻共同债务中违法债务的审查认定 三、夫妻之间也可以成立借贷关系 四、一方未经另一方同意出售夫妻共同共有的房屋 五、夫妻一方婚前财产投资所得的归属 六、夫妻间房产赠与协议的效力认定 七、婚内财产分割的…

拉新、留存、转化、提频、裂变

任何一家创业公司从启动到成功,都会把一件事情当作核心,那就是增长。什么是增长?有人说是收入,有人说是利润,还有人说是市场份额,实际上都对,但这些都建立在一个基础要素之上,那就是…

JavaEE day9 初识HTTP2

web开发 web应用 1:n web场景 1:n web资源(动态资源或静态资源) web资源之间形成一张关联网络 web开发:提供web资源连接web资源 响应状态 web服务器为某次请求给出的结果情况 只有请求HOST(主机&am…

七、图像分类模型的部署(Datawhale组队学习)

文章目录前言ONNX简介应用场景部署ImageNet预训练图像分类模型导出ONNX模型推理引擎ONNX Runtime部署-预测单张图像前期准备ONNX Runtime预测推理引擎ONNX Runtime部署-ImageNet预训练图像分类模型预测摄像头实时画面前期准备预测摄像头的一帧画面预测摄像头实时画面部署自己训…

JavaScript的基础知识

目录 一、初识JavaScript 二、JavaScript的基础 1、初步了解 2、代码位置 3、注释 4、变量 ①字符串 ②数组 ③对象 ④条件语句 ⑤函数 三、DOM模块 一、初识JavaScript JavaScript,是一门编程语言。浏览器就是JavaScript语言的解释器。DOM和BOM 相当于编…

Unity功能——宏定义的使用

声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。 Unity功能——宏定义的使用 文章目录Unity功能——宏定义的使用一.开发环境二.问题描述三.宏的使用…

拿下大厂Offer的关键——飞滴出行网约车项目全新完结

哈喽各位小伙伴,好久不见吖!正月初八,你开工了吗?告别新春的氛围,又开始新一年的奋斗。尤其是年前的离职的小伙伴,马上又是金三银四,你的面试还要准备多久?今天给大家分享一份阿里大…