SSL协议分析「建议收藏」

SSL协议分析「建议收藏」SecureSocketsLayerSSL协议概述SSL解决的问题(功能)协议的使用SSL在协议栈的位置SSL协议的分层模型SSL体系结构SSL的两个重要概念主要工作流程SSL握手协议的握手过程SSL记录层的功能SSL协议脆弱性分析SSL协议概述SecureSocketsLayer安全套接字协议SSL协议可用于保护正常运行于TCP之上的任何应用协议,如HTTP、FTP、SMTP或Telnet的通信,最常见的是用SSL来保护HTTP的通信。SSL协议的优点在于它是与应用层协议无关的。

大家好,又见面了,我是你们的朋友全栈君。

SSL协议概述

Secure Sockets Layer 安全套接字协议
在这里插入图片描述

鉴于SSL协议的脆弱性 升级出了它的爸爸TSL 所以Wrieshark抓不出SSL以前的数据包

在这里插入图片描述
TLS(Transport Layer Security)是更为安全的升级版 SSL。

  • SSL协议可用于保护正常运行于TCP之上的任何应用协议,如HTTP、FTP、SMTP或Telnet的通信,最常见的是用SSL来保护HTTP的通信。

  • SSL协议的优点在于它是与应用层协议无关的。高层的应用协议(如HTTP、FTP、Telnet等)能透明地建立于SSL协议之上。

  • SSL协议在应用层协议之前就已经完成加密算法、通信密钥的协商以及服务器的认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的安全性。

SSL解决的问题(功能)

客户对服务器的身份认证
SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性。

服务器对客户的身份认证
也可通过公钥技术和证书进行认证,也可通过用户名,password来认证。

建立服务器与客户之间安全的数据通道
SSL要求客户与服务器之间的所有发送的数据都被发送端加密、接收端解密,同时还检查数据的完整性

协议的使用

https://

在这里插入图片描述

SSL在协议栈的位置

在这里插入图片描述

SSL协议的分层模型

SSL协议是一个分层的协议,共有两层组成。处于SSL协议的底层的是SSL记录层协议(SSL Record Protocol),它位于可靠的传输层协议(如TCP)之上,用于封装高层协议的数据。其中SSL握手协议(SSL Handshake Protocol)允许服务方和客户方互相认证,并在应用层协议传送数据之前协商出一个加密算法和会话密钥。

在这里插入图片描述

SSL体系结构

在这里插入图片描述

SSL的两个重要概念

SSL连接(connection)
一个连接是一个提供一种合适类型服务的传输(OSI分层的定义)。
SSL的连接是点对点的关系。
连接是暂时的,每一个连接和一个会话关联。

SSL会话(session)
一个SSL会话是在客户与服务器之间的一个关联。会话由Handshake Protocol创建。会话定义了一组可供多个连接共享的密码安全参数。
会话用以避免为每一个连接提供新的安全参数所需昂贵的协商代价。

在这里插入图片描述

主要工作流程

1.网络连接建立,SSL客户端发送消息,消息中包含SSL版本号、密码设置、可实现的算法列表、随机数以及服务器使用SSL协议通信所需的其它信息;
2.SSL服务器端回应消息,确定SSL版本号、加密算法和压缩算法;
3.SSL服务器发出服务器数字证书;
4.SSL客户端的身份认证是可选的;
5.客户端生成预主密钥pre_master_secret,用服务器的公钥加密后返回服务器,服务器利用自己的私钥解密后得到会话密钥;
5. 若服务器要求客户认证,客户机会向服务器随加密的pre_master_secret一起发送签名的数据和客户自己的证书。
7. 服务器若认证客户成功,使用私钥加密pre_master_secret,然后执行一系列步骤生成master secret。否则会话终止。
8. 客户机与服务器使用master secret生成会话密钥。该密钥是对称密钥,用于加密和解密在SSL会话期间交换的信息,检验信息完整性。
9. CS:发送消息通知以后从客户机来的消息将用会话密钥加密。客户机然后发送一条独立的(加密的)消息表明握手的客户机部分已经完成。

应用数据的传输过程为 :
1)应用程序把应用数据提交给本地的SSL;
2)发送端的SSL根据需要 :
a)使用指定的压缩算法 ,压缩应用数据;
b)使用散列算法对压缩后的数据计算散列值;
c)把散列值和压缩数据一起用加密算法加密;
3) 密文通过网络传给对方;
4)接收方的SSL
用相同的加密算法对密文解密 ,得到明文;
用相同的散列算法对明文中的应用数据散列;
计算得到的散列值与明文中的散列值比较;
5)如果一致 ,则明文有效 ,接收方的SSL把明文解压后得到应用数据上交给应用层。否则就丢弃数据,并向发方发出告警信息。严重的错误有可能引起再次的协商或连接中断。

SSL握手协议的握手过程

无客户端认证的全握手过程

在这里插入图片描述
有客户端认证的全握手过程

在这里插入图片描述
会话恢复过程

在这里插入图片描述

SSL记录层的功能

  • 保护传输数据的私密性,对数据进行加密和解密
  • 验证传输数据的完整性,计算报文的摘要
  • 提高传输数据的效率,对报文进行压缩
  • 保证数据传输的可靠和有序

报文格式
在这里插入图片描述

SSL协议脆弱性分析

客户端假冒

  • 因为SSL协议设计初衷是对Web站点及网上交易进行安全性保护,使消费者明白正在和谁进行交易要比使商家知道谁正在付费更为重要,为了不致于由于安全协议的使用而导致网络性能大幅下降, SSL协议并不是默认地要求进行客户鉴别,这样做虽然有悖于安全策略,但却促进了SSL的广泛应用。

  • 针对这个问题,可在必要的时候配置SSL协议,使其选择对客户端进行认证鉴别。

无法保护UDP应用

  • SSL协议需要在握手之前建立TCP连接,因此不能对UDP应用进行保护。如果要兼顾UDP协议层之上的安全保护,可以采用IP层的安全解决方案。

SSL协议不能对抗流量分析

  • 由于SSL只对应用数据进行保护,数据包的IP头和TCP头仍然暴露在外,通过检查没有加密的IP源和目的地址以及TCP端口号或者检查通信数据量,一个通信分析者依然可以揭示哪一方在使用什么服务,有时甚至揭露商业或私人关系的秘密。

进程中主密钥泄漏

  • 除非SSL的工程实现大部分驻留在硬件中,否则主密钥将会存留在主机的主存储器中,这就意味着任何可以读取SSL进程存储空间的攻击者都能读取主密钥,因此,不可能面对掌握机器管理特权的攻击者而保护SSL连接,这个问题要依靠用户管理策略来解决。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137094.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BI_开发_问题:ORA-26002: Table DWH.W_XACT_TYPE_D has index defined upon it.

    BI_开发_问题:ORA-26002: Table DWH.W_XACT_TYPE_D has index defined upon it.

    2022年2月21日
    64
  • origin多组柱状图_柱状图上下两组数据

    origin多组柱状图_柱状图上下两组数据今日份知识你摄入了么?在我的数据分析生涯中,我几乎完全是在SQL中锻炼我的技能。虽然SQL可以做一些非常酷的事情,但它有它的局限性-这些限制在很大程度上让我决定了要不要去感受数据科学别的巨大魅力。在我之前的数据岗位中,我需要分析来自外部源的数据文件和工具,但这些工具限制了它可以处理的数据量或花费过多的时间,使任务变得几乎不可能彻底完成。在我所有职位中有一个数据pipeline有点像这样:…

    2022年9月28日
    5
  • java中sort排序_数据结构算法总结

    java中sort排序_数据结构算法总结数组Sort排序正序排序:Arrays.sort(array),会检查数组个数大于286且连续性好就使用归并排序,若小于32使用插入排序,其余情况使用快速排序int[]array={10,3,6,1,4,5,9};Arrays.sort(array);降序排序:先将数组Arrays.asList()转为集合,然后使用Collections.reverse()反转集合,注意如果是基础数据类型(不是数据包装类),不能使用Arrays.asList()方法可以使用Guava的Int..

    2022年8月12日
    13
  • 【Mac 教程系列第 10 篇】如何在 Mac 上破解带有密码的 ZIP 压缩文件[通俗易懂]

    【Mac 教程系列第 10 篇】如何在 Mac 上破解带有密码的 ZIP 压缩文件[通俗易懂]如何在Mac上破解带有密码的ZIP压缩文件。下载fcrackzip

    2022年5月30日
    192
  • oracle补位函数 不足位数补0[通俗易懂]

    oracle补位函数 不足位数补0[通俗易懂]不足位数补位的函数:1.左补位函数LPAD(原始字符,填充后长度,填充字符)2.右补位函数RPAD(原始字符,填充后长度,填充字符)如运行selectlpad(‘123’,6,0)col1fromdual;结果selectrpad(‘123’,6,0)col1fromdual;结果…

    2025年9月21日
    8
  • 轮询与长轮询_轮询和中断

    轮询与长轮询_轮询和中断轮询:说白了就是客户端定时去请求服务端,是客户端主动请求来促使数据更新;长轮询:说白了也是客户端请求服务端,但是服务端并不是即时返回,而是当有内容更新的时候才返回内容给客户端,从流程上讲,可以理解为服务器向客户端推送内容;从中大家可以看出区别:轮询:1:大量耗费服务器内存和宽带资源,因为不停的请求服务器,很多时候并没有新的数据更新,因此绝大部分请求都是无效请…

    2022年9月25日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号