TLS协议学习第二篇,内容来自:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc785811(v=ws.10)

握手协议是协商数据传输会话的安全参数的一系列序列消息。下图说明了握手协议中的消息序列。

一、初始的客户端消息

Client Hello:

客户端通过向服务器发送Client Hello消息来启动会话。Client Hello消息包含:

版本号。客户端发送与其支持的最高版本对应的版本号。版本2用于SSL 2.0,版本3用于SSL 3.0,版本3.1用于TLS。尽管用于TLS的IETF RFC是TLS版本1.0,但该协议在版本字段中使用3.1来表示它是比SSL 3.0更高的级别。

随机生成的数据。ClientRandom[32],随机值,是一个4字节的数字,由客户端的日期和时间加上一个28字节随机生成的数字组成,最终将与服务器随机值一起使用,以生成一个主密钥,从中导出加密密钥。

会话标识(如果有)。包含sessionID是为了使客户端能够恢复上一个会话。恢复上一个会话可能很有用,因为创建新会话需要处理器密集型公钥操作,可以通过使用已建立的会话密钥恢复现有会话来避免这些操作。由sessionID标识的先前会话信息存储在相应的客户端和服务器会话缓存中。

密码套件。客户端上可用的密码套件列表。密码套件的一个示例是TLS_RSA_WITH_DES_CBC_SHA,其中TLS是协议版本,RSA是用于密钥交换的算法,DES_CBC是加密算法(在CBC模式下使用56位密钥),SHA是哈希函数。

压缩算法。请求的压缩算法。

二、服务端的响应消息

1、Server hello。

服务器以Server Hello消息进行响应。Server Hello消息包括:

版本号。服务器发送双方支持的最高版本号。

随机生成的数据。ServerRandom[32],随机值,是服务器日期和时间的4字节数字加上随机生成的28字节数字,最终将与客户端随机值一起使用,以生成一个主密钥,从中导出加密密钥。

会话标识(如果有)。这可以是三种选择之一。

New session ID–客户端未指示要恢复的会话,因此生成了一个新ID。当客户端指示要恢复的会话,但服务器不能或不想恢复该会话时,也会生成一个新的会话ID。后一种情况也会产生一个新的会话ID。

Resumed Session ID–该ID与Client Hello中指示的ID相同。客户端指示要恢复的会话ID,服务器愿意恢复该会话。

Null–这是一个新会话,但服务器不愿意在以后恢复会话,因此不返回ID。

密码套件。服务器将选择客户端和服务器都支持的最强密码。如果双方都不支持密码套件,会话将以“握手失败”警报结束。

压缩算法。指定要使用的压缩算法。

2、Server Certificate.

服务器将其证书发送到客户端。服务器证书包含服务器的公钥。客户端将使用此密钥对服务器进行身份验证并加密premaster key。客户端还检查证书中服务器的名称,以验证它是否与用于连接的客户端的名称匹配。

3、Server Key Exchange.

这是一个可选步骤,在该步骤中,服务器创建临时密钥并将其发送到客户端。客户端可以使用此密钥在稍后的过程中加密客户端密钥交换消息。仅当公钥算法未提供加密客户端密钥交换消息所需的密钥材料时,例如当服务器的证书不包含公钥时,才需要执行该步骤。

4、Client Certificate Request.

这是一个可选步骤,其中服务器请求对客户端进行身份验证。此步骤可用于服务器必须在提供敏感信息之前确认客户端身份的网站(如银行网站)。服务器

5、Server Hello Done.

此消息表示服务器已完成,正在等待客户端的响应。

三、客户端给服务器的响应

1、Client Certificate.

如果服务器发送了客户端证书请求,则客户端会将其证书发送到服务器以进行客户端身份验证。客户端的证书包含客户端的公钥。

2、Client Key Exchange.

客户端在使用两个随机值计算premaster key后发送客户端密钥交换消息。premaster key在传输到服务器之前由服务器证书中的公钥加密。双方将在本地计算主密钥并从中派生会话密钥。

如果服务器可以解密此数据并完成协议,则客户端将确保服务器具有正确的私钥。这一步对于证明服务器的真实性至关重要。只有私钥与证书中的公钥匹配的服务器才能解密此数据并继续协议协商。

此消息还将包括协议版本。服务器将验证它是否与客户端hello消息中发送的原始值匹配。此措施可防止回滚攻击。回滚攻击通过操纵消息来工作,以使服务器和客户端使用不太安全的早期版本的协议。

3、Certificate Verify.

仅当客户端以前发送了客户端证书消息时,才会发送此消息。客户端通过使用其私钥对到目前为止所有消息的哈希进行签名来进行身份验证。接收方使用签名者的公钥验证签名,从而确保签名是使用客户端的私钥签名的。

4、Change Cipher Spec.

此消息通知服务器,客户端完成消息之后的所有消息将使用刚才协商的密钥和算法进行加密。

5、Client Finished.

此消息是整个对话的散列,以提供客户端的进一步身份验证。此消息是记录层加密和散列的第一条消息。

四、服务器对客户端的最终响应。

1、Change Cipher Spec Message.

此消息通知客户端服务器将开始使用刚刚协商的密钥加密消息。

2、Server Finished Message.

此消息是到目前为止使用会话密钥和MAC密钥的整个交换的散列。如果客户端能够成功解密此消息并验证包含的哈希,则可以确保SSL/TLS握手成功,并且客户端计算机上计算的密钥与服务器上计算的密钥匹配。

五、警报子协议

警报子协议是握手协议的一个组件,其中包括可从任何一方发送的事件驱动警报消息。在发出警报消息后,会话结束,或者收件人可以选择是否结束会话。警报在RFC 2246中的TLS规范中定义。

上海安当技术有限公司致力于开发身份认证、数据加密类产品,依托集中化、跨平台的密钥管理系统,专注于为金融、政府、企业等客户提供更加安全,便捷的身份认证管理和数据加密解决方案。公司主要产品及服务简称为4S:身份认证服务平台(Authentication Service Platform),密钥管理平台(Key Safe Platform),硬件加密机(Hardware Security Module),数据加密集成服务(Data Security Integration)。

身份认证_数据加密_数据安全_加密机_密钥管理_数据加密集成服务_安当加密_安当技术有限公司上海安当技术有限公司致力于开发身份认证、数据加密类产品,依托集中化、跨平台的密钥管理系统,专注于为金融、政府、企业等客户提供更加安全,便捷的身份认证管理和数据加密解决方案。公司主要产品及服务简称为4S:身份认证服务平台,密钥管理平台,硬件加密机,数据加密集成服务https://andang.cn/

TLS协议学习-第二篇-握手协议相关推荐

  1. Windows内网协议学习Kerberos篇之PAC

    转自:https://www.anquanke.com/post/id/192810 author: daiker@360RedTeam 0x00 前言 这是kerbreos篇的最后一篇文章了.这篇文 ...

  2. Windows内网协议学习LDAP篇之域用户和计算机用户介绍

    0x00 前言 这篇文章主要介绍AD里面的域用户,计算机用户. 0x01 域用户 1. 查询域用户 当我们拥有一个域用户的时候,想要枚举域内的所有用户,主要有两个方法. (1) 通过SAMR 协议查询 ...

  3. Elasticsearch学习第二篇--常用的几种搜索方式

    Elasticsearch学习第二篇--常用的几种搜索方式 一.Query String Search 查询全部 条件查询 二.Query DSL 查询全部 条件查询 三.Query Filter 四 ...

  4. 网络协议学习笔记-IGMP协议

     网络协议学习笔记-IGMP协议 http://hi.baidu.com/clxye/item/3db870336d86c0c11a969614 IGMP协议(Internet Group Man ...

  5. 网络协议学习之Ethernet II协议(二层)

    网络协议学习之Ethernet II协议 简介 一.协议 1.协议结构 二.抓包分析 总结 简介 Ethernet II协议位于五层OSI模型中的第二层,属于链路层的协议. 一.协议 1.协议结构 前 ...

  6. 边缘案例:第二篇——Metanet协议

    发表时间:2019年8月19日 信息来源:Medium 欢迎回到Edge cases,Metanet博客系列. 在上一篇文章中,我们介绍了理解有向无环图(Dags)所需要的几个概念,并研究了它们与Me ...

  7. Windows内网协议学习NTLM篇之NTLM基础介绍

    0x00 前言 这个系列文章主要讲ntlm认证相关的内容.以及着重介绍ntlm两大安全问题–PTH和ntlm_relay. ntlm篇分为四篇文章 第1篇文章也是本文,这篇文章主要简单介绍一些基础概念 ...

  8. 【网络篇】第二篇——IP协议与MAC地址详解

    IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的 ...

  9. sqlserver tds协议学习_数据安全交换协议来了,或将推动AI大步迈向3.0时代

    原标题:数据安全交换协议来了,或将推动AI大步迈向时代 导语:知识和数据被视为驱动人工智能迈向时代的重要要素.如何把分散在不同的行业或领域里的数据和知识,充分地利用起来?同盾科技人工智能研究院创造性地 ...

最新文章

  1. 编写Ogre插件的一般方法
  2. python解密md5值_Python之POST提交解密MD5
  3. 【pmcaff】纪录片:互联网时代(互联网人必读大片)
  4. 使用ABAP代码获得tcode RZ11里的参数值
  5. 【LeetCode笔记】剑指 Offer 55 - II. 平衡二叉树(递归、二叉树)
  6. [POI2006]OKR-Periods of Words(KMP)
  7. 支持MySql的数据库自动分表工具DBShardTools发布
  8. BZOJ4247挂饰
  9. fine-tune 微调 Transfer learning 迁移学习 动手学深度学习v2
  10. springboot 整合 百度OCR身份证识别
  11. 莱斯康混响插件合集 – Lexicon Plugin Bundle macOS
  12. RAID磁盘阵列介绍
  13. Linux系统内存管理实验
  14. 修改Fedora 18的窗口背景颜色为浅绿色
  15. 全球太阳能、风能资源空间分布数据集
  16. 不允许对不可访问的基类 类型强制转换 c++
  17. 记笔记-文件记笔记方法
  18. mysqlcheck命令时提示: bash: mysqlcheck: command not found
  19. 【英语面试】七.计算机研究生面试自我介绍范文5篇(英文)
  20. tensorflow环境安装(及tensorflow虚拟环境中配置jupyter)

热门文章

  1. Linux系统中Python3安装pip3模块
  2. 软件测试增值式集成测试的三种方法,混合渐增式集成测试方法
  3. 面试六十家公司的深圳体验【转载】
  4. 先验分布:(二)选取先验概率分布
  5. 2023年全国最新安全员精选真题及答案26
  6. html怎么设置随鼠标移动,CSS_css实现随鼠标移动div渐变色效果,HTML 复制代码代码如下:div - phpStudy...
  7. 黑龙江省人力资源和社会保障网上服务大厅 - https://www.renshenet.org.cn/sionline/loginControler
  8. MATLAB 主要函数指令表(按功能分类)
  9. BCH编码译码误码率性能matlab仿真
  10. XYZprinting:3D打印让你随心所欲打造专属美味