当前位置:   article > 正文

【网络信息安全】Web 安全_ssl协议 预主密钥 主密钥 工作密钥

ssl协议 预主密钥 主密钥 工作密钥

在这里插入图片描述

SSL 或 TLS 可作为基础协议栈的组成部分,对应用透明;也可直接嵌入到浏览器中使用。

使用 SSL 或 TLS 后,传送的应用层数据会被加密,从而保证通信的安全。

基于应用层实现 Web 安全


在这里插入图片描述

特定安全服务为特定应用定制体现,将安全服务直接嵌入在应用程序中。

12.3 SSL协议

=============================================================================

12.3.1 SSL概述


  • Secure Socket Layer,安全套接层协议,会话层,由 Netscape 推出。

  • 主要实现 Web 服务器和浏览器之间的安全通信。

  • 在 应用层协议 和 TCP/IP 协议之间提供机密性、完整性、服务器认证及可选的客户机认证的机制。

SSL协议栈


  • 介于 HTTP 与 TCP 之间的一个可选层,绝大多数应用层协议可直接建立在 SSL 之上。

  • SSL 不是一个单独的协议,而是两层协议。

在这里插入图片描述

SSL实现的安全服务


SSL握手协议:用公开加密算法验证服务器身份,并传递客户端产生的对称的会话密钥(先)

SSL记录协议:用会话密钥来加/解密数据(后)

  • 机密性:SSL 客户机和服务器之间传送加密数据。

  • 完整性:SSL 可避免服务器和客户机之间的信息被破坏。

  • 认证性:SSL 握手时要求交换证书,通过验证证书来保证对方身份的合法性。

SSL的认证和不可否认性


  • 客户机认证是可选的,否则客户端都得有数字证书并内置相应组件,代价高。

  • SSL不能提供不可否认性,Communicator 4.04浏览器引入“表单签名(Form Signing)”功能。

  • 它对电子商务中包含购买者的订购信息和付款指令的表单进行数字签名。

12.3.2 更改密码规格协议


Change Cipher Spec Protocol 具有以下特性:

  1. 位于SSL记录协议之上。

  2. ContentType=20。

  3. 协议只包含一条消息(一个值为1的字节)。

把未决状态设置为当前状态,更新当前连接的密钥组,这标志着加密策略的改变。

12.3.3 警告协议


Aler t消息:当握手过程或数据加密等出错或发生异常时,为对等实体传递SSL警告或终止当前连接。

Alert Protocol具有以下特性:

  1. 位于SSL记录协议之上。

  2. ContentType=21。

  3. 协议包含两个字节:警告级别和警告代码。

12.3.4 SSL记录协议

=================================================================================

Record Protocol 描述SSL信息交换过程中的记录格式。

所有数据(含SSL握手信息)都被封装在记录中,一个记录由两部分组成:记录头和数据。

SSL记录协议的操作步骤:

  • 将数据分段成可操作的数据块

  • 对分块数据进行数据压缩

  • 计算 MAC 值

  • 对压缩数据及MAC值加密

  • 加入 SSL 记录头

  • 在 TCP 中传输结果单元

在这里插入图片描述

SSL记录头:

在这里插入图片描述

内容类型(ContentType):用于处理分段的上层协议类型。

协议版本(ProtocolVersion):标明SSL版本号。

压缩长度(Length):原文分段长度或压缩分段长度。

12.3.5 SSL握手协议

=================================================================================

Handshake Protocol 的协商结果是 SSL记录协议处理的基础,ContentType 为 22。

协议头有三个部分:

  1. 消息类型(1B)

  2. 消息长度(3B)

  3. 内容(1B):与该消息有关的参数

SSL v3.0 的握手过程用到三种协议:握手协议更改密码规格协议警告协议

SSL握手消息及参数


在这里插入图片描述

SSL的握手过程


在这里插入图片描述

握手协议的 Hello 阶段


—— 协商协议版本、会话ID、密码组、压缩算法、交换随机数等。

(1)Client Hello消息

  • 客户端将版本号、随机数、会话ID、支持的密码算法组合和压缩算法发给服务器供其选择。

(2)Server Hello消息

  • 该消息做出决定并将决定传回客户端:版本号、会话ID、服务器随机数、选择的密码算法组合和压缩算法。

握手协议的 Key Agreement 阶段


—— 发送服务器证书,并请求客户端证书(可选)。

(3)Certificate 消息

  • 服务器发送自己证书给客户端以证明自己身份。

(4)Server Hello Done 消息

  • 服务器向客户端表明 Server Hello 结束。

(5)Client Key Exchange 消息

  • 客户端用服务器的公钥加密预主密钥发送给服务器,以便双方协商会话密钥。

握手协议的 Finished 阶段


—— 改变密码组,完成握手。

(6)Change Cipher Spec消息

  • 表示记录加密及认证的改变,指示将启用新密钥。

(7)Finished消息

  • 客户端收到Finished消息表明服务器已用私钥解开预主密钥,并最终生成了正确的会话密钥。

特殊消息 ClosureAlert:可以结束连接,防止截断攻击。

12.3.6 SSL的安全性分析

===================================================================================

SSL协议的安全性隐患:


  1. 预主密钥 ——> master_secret ——> SSL会话密钥

  2. 能否保证随机数质量也是SSL的安全隐患。

  3. 有可能遭受中间人攻击。

  4. 利用SSL的攻击无法被 IDS 检测和 FW 过滤到。

  5. Web 服务器使用 SSL 时,吞吐量会显著下降。

  6. 不能保证 Web 浏览器和服务器自身安全。

master_ secret 生成过程:


在这里插入图片描述

增强SSL安全性方法


  1. 增强 master_secret 的保密性

预主密钥的口令加密方法和硬件加密方法。

  1. 提高随机数的质量

用硬件随机数发生器产生的随机数作为产生随机数的软件方法 PRNG 的种子,进行高强度的处理。

  1. 提高证书 CA 的可靠性

在服务器的认证阶段,CA控制所有证书的颁发和有效性判断。

12.3.7 TLS协议

===============================================================================

  • 编写 Transport Layer Security 的目的是不要再出现新的易混淆的协议,并提供可扩展性和兼容性。

  • TLS 在传输层源和目的实体间建立了一条安全通道,提供基于证书的认证、数据完整性和机密性。

  • TLS v1和SSL v3差别很小,但两者不能兼容和互操作,TLS协议还不能取代SSL协议。

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/675641
推荐阅读
相关标签
  

闽ICP备14008679号