【网络安全技术】传输层安全——SSL/TLS

这篇具有很好参考价值的文章主要介绍了【网络安全技术】传输层安全——SSL/TLS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、TLS位置及架构

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

TLS建立在传输层TCP/UDP之上,应用层之下。

所以这可以解决一个问题,那就是为什么抓不到HTTP和SMTP包,因为这两个在TLS之上,消息封上应用层的头,下到TLS层,TLS层对上层消息整个做了加密,然后套了TLS头下到传输层,套上TCP头给IP,IP套上IP头然后路由,找到下一跳之后ARP问MAC地址,然后封上MAC头,进链路层传输。所以能看到的是TLS头、TCP头,IP头和MAC头。

下面这个图是TLS的架构,TLS内部也分了层,最上层相当于是消息的类型,这几种类型的消息都要下到Record层,套Record头,走Record结构来传输。

握手协议就是建连接的,改变Cipher spec协议就是协商用到的加密算法什么的东西的,Alert协议是返回一些警报,HTTP就是正常的加密的数据,心跳协议是用来维持连接的。

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

等下可以通过抓到的包来更清晰的看出来这个架构。

二、TLS握手协议

整体流程如下,从RFC 5246文档里偷过来的,

      Client                                               Server

      ClientHello                  -------->
                                                      ServerHello
                                                     Certificate*
                                               ServerKeyExchange*
                                              CertificateRequest*
                                   <--------      ServerHelloDone
      Certificate*
      ClientKeyExchange
      CertificateVerify*
      [ChangeCipherSpec]
      Finished                     -------->
                                               [ChangeCipherSpec]
                                   <--------             Finished
      Application Data             <------->     Application Data

1.Phase 1

一步一步看,先看绿色框起来的两个hello

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

client hello是第一个消息,注意区分这个握手和TCP握手之间的区别,TCP三次握手是建TCP连接用的,而TLS要走TCP连接,所以在TLS握手之前,TCP已经握完三次手了。

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

这是访问一个页面https协议的过程,虽然不知道为什么所有包都有两个,但还是可以清晰地看出,TCP三次握手是在TLS ClientHello之前完成的,同时,看TLS下面的这两个TCP ACK,这也说明了TCP在TLS之下,所以TLS不能加密TCP的头。

我们来看看这个hello包长什么样。首先能看出TLS所在的层级,正如刚才所说,他在TCP之上。

其次TLS的内容,这里是handshake Protocol,使用TLS Record protocol封装,所以TLS的所有内容协议,包括握手协议、改变Cipher spec协议、Alert协议、HTTP、心跳协议都是走Record Layer的,所以实际上TLS分两层,在TCP紧上面那层是Record 协议,然后在上边是剩下的协议。

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

然后看内容吧,对比刚才那张图,这里包括了TLS的版本,随机数,session ID,cipher suite(也就是客户端能接受的加密、认证、密钥交换算法),还有压缩方法。剩下的一堆extension列出了更加细节的客户端所支持的算法,这样服务器只能在这些列出的里面选择。

接下来是Server hello,

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

他会选择一系列的方法,作为响应回复给Client。这里的一些extension例如session_ticket是用来当session断开时客户端快速连接到服务器的凭证,以及下面的对于应用层协议的下协商。

2.Phase 2

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

这里阶段二还是抓个包看看,这wireshark不知道抽什么风,这三个Certificate,Server Key Exchange和Server Hello Done都在一层的一个包里,他给分了两个。

看这三个东西还都是封到了Record Layer里,这三个分别顾名思义,证书就是服务器把他的X.509证书给客户端,交换密钥就是服务器通过hello里跟客户端商量的协商密钥算法来交换公钥,这里是椭圆曲线DH。这之后还有可选的服务器向客户端要证书。之后就是server hello done表示他这边结束了,该客户端了。

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

别忘了这些包都是走的TCP,到了对方那都要回ACK的。

3.phase 3

前面二阶段server发来的证书,client首先会验一下真假,使用CA的公钥来验证证书的签名。对了之后,首先,如果先前服务器要了客户端的证书,客户端会先把他的证书回给服务器。然后他会用server的公钥来验server发来的key exchange参数的签名,之后再生成自己的公钥交换信息,

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

这就是下面抓到的包,第一个就是client Key exchange的record。

接下来还有一个certificate verify,这个是只有刚才客户端发送了有签名能力的证书才有的一步。

4.phase 4

然后是Change Cipher Spec,这个消息你看长度就1字节,他就是简单的告诉对方我已经将刚才咱们商量的加密什么的投入使用了,所以他发的接下来的包都是使用刚才协商好的东西加密或认证的了。在这之前,客户端和服务器交换完密钥,获得了一个比如DH公共秘密之后,这个公共秘密叫做pre-master secret,这个结合一些其他的例如随机数之类的信息,再来生成最终的session key,Change Cipher Spec代表的就是这个最终的session key投入使用。

后面跟的是client finished,这个永远紧跟在Change Cipher Spec之后,用于验证整个握手的成功。客户端会计算之前所有的握手消息的一个mac,加密之后传给服务器。所以下面抓的包显示这是加密的信息。

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

这之后,服务器端收到刚才客户端发来的那条消息之后,由于之前在hello里说好了要有new session ticket用来之后快速恢复session,所以这第一个record就是new session ticket,然后是服务器端的Change Cipher Spec,之后是服务器的finish,和client的同理,是计算先前的所有握手消息的mac,同样是加密之后发送。

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

这之后握手就结束了,这期间任何的错误都会引起alert协议报错,从而终止过程。

三、Alert Protocol

这个就是报各种错误,包括下面这些

• bad_record_mac

• handshake_failure

• decryption_failed

• bad_certificate

四、Heartbeat protocol

这个就是周期性的发送信号,比如用来同步。

他有两个目的,一个是确保双方还活着,另一个是防止有些防火墙会关闭空闲连接。

五、Record protocol

这个刚才也看了,就是封装刚才提到的所有的东西的,格式就是下面这样

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络

content type就会是比如刚才所有握手阶段的Record都是handshake(22),实际发的包的type会是Application Data(23),也可能回事Alert(21)等等。

两个Version就是哪个版本,前面讲的例子都是TLSv1.2,长度就是后面的东西有多长。

接下来看看这个Record是怎么生成的吧,比如有加密、认证、分段、压缩等步骤。

首先拿到具体的数据之后,要分成小于等于2的14次方byte的段,然后如果之前协商了压缩,那么就会压缩。

接下来计算MAC然后接上去,对整个东西加密,然后再套上TLS Record的头,这就是完整的TLS处理完的,可以直接发给下层TCP的东西了。

【网络安全技术】传输层安全——SSL/TLS,网络安全技术笔记,安全,web安全,ssl,网络协议,网络,网络安全,计算机网络文章来源地址https://www.toymoban.com/news/detail-768734.html

到了这里,关于【网络安全技术】传输层安全——SSL/TLS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常见网络通信协议(http、https、ws)及安全协议(SSL、TLS、XTLS)

    文章内容删除了一大半不合适的内容,发不出来,你懂得。🥰 HTTP和HTTPS都属于 应用层协议 ,它们都是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议。它们都是 基于 TCP/IP 协议 来传递数据的,支持 客户端-服务器模式 的通信。 HTTP和HTTPS的区别主要在于HTT

    2024年02月10日
    浏览(33)
  • SSL协议是什么?关于SSL和TLS的常见问题解答,被面试官问的网络安全问题难倒了

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月22日
    浏览(35)
  • 什么是HTTPS加密协议?HTTPS安全传输原理,SSL和TLS介绍,NGINX如何配置SSL证书

    HTTPS是超文本传输协议(HTTP)的安全版本。它使用SSL(安全套接层)或TLS(传输层安全)加密协议来保护数据传输的安全性和机密性,以防止未经授权的访问和窃听。HTTPS协议通常用于处理敏感信息,如在线支付或登录凭证等。可以通过URL的前缀来识别一个网站是否使用了H

    2024年02月03日
    浏览(38)
  • 网络安全入门 5 天速成教程_ WEB 安全渗透攻防技术

    前言 随着 Web 技术发展越来越成熟,而非 Web 服务越来越少的暴露在互联网上,现在互联网安全主要指的是 Web 安全。 为了自身不“裸奔”在大数据里,渐渐开始学习 Web 安全,在学习 Web 安全的过程中,发现很大一部分知识点都相对零散,如果没有相对清晰 的脉络作为参考,

    2024年04月23日
    浏览(33)
  • Web 学习笔记 - 网络安全

    目录 m前言 正文 XSS 攻击 简单示例 XSS 防御 CSRF  Web 安全方面的基本知识是有很必要的,未必就要深入理解。本文主要介绍常见的网络攻击类型,不作深入探讨。 网络攻击的形式种类繁多,从简单的网站敏感文件扫描、弱口令暴力破解,到 SQL 注入,再到复杂的网络劫持等,

    2023年04月24日
    浏览(35)
  • 网络安全/信息安全(黑客技术)自学笔记

    了解了计算机的硬件、软件、操作系统和网络结构等基础知识,可以帮助您更好地理解网络安全的概念和技术。 了解了网络的结构、协议、服务和安全问题,可以帮助您更好地解决网络安全的原理和技术。 了解了安全的概念、原则、威吓和攻击方式,可以帮助您更好地理解

    2024年02月15日
    浏览(29)
  • 网络安全—信息安全—黑客技术(学习笔记)

    网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透,也有

    2024年02月16日
    浏览(31)
  • 网络安全—黑客技术(自学笔记)

    这一步跟网安关系暂时不大,是进入it行业每个人都必须掌握的基础能力。 计算机网络 计算机操作系统 算法与数据架构 数据库 Tips:不用非要钻研至非常精通,可以与学习其他课程同步进行。 A.初级渗透 首先要学习网络安全的渗透基础内容,包括信息收集,web安全,渗透工具

    2024年02月11日
    浏览(30)
  • 网络安全(黑客技术)自学笔记

            首先给大家简单介绍一下网络安全: 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两

    2024年02月15日
    浏览(91)
  • 黑客技术(网络安全)学习笔记

    了解了计算机的硬件、软件、操作系统和网络结构等基础知识,可以帮助您更好地理解网络安全的概念和技术。 了解了网络的结构、协议、服务和安全问题,可以帮助您更好地解决网络安全的原理和技术。 了解了安全的概念、原则、威吓和攻击方式,可以帮助您更好地理解

    2024年02月14日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包