0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

IPSec和SSL国密数据包分析

jf_vLt34KHi 来源:Tide安全团队 2023-05-18 09:44 次阅读

0x01 IPSec

IPSec协议实际上是一套协议集合,包括IKE协议、认证头(AuthenticationHeader,AH)协议、封装安全载荷(Encapsulating Security Payload,ESP)协议和用于网络身份鉴别及加密的一些算法等。

从工作流程上看,IPSec协议可分为两个环节:IKE是第一个环节,完成通信双方的身份鉴别、确定通信时使用的IPSec安全策略和密钥;第二个环节是使用数据报文封装协议和IKE中协定的IPSec安全策略和密钥,实现对通信数据的安全传输。

IPSec工作模式分为传输模式隧道模式。传输模式一般用于端到端的应用场景;隧道模式一般用于创建虚拟专用网隧道链路。

1、IKE协议

通过数据包对IKE进行详细分析和介绍

IKE协议用于鉴别通信双方身份、创建安全联盟(Security Association,SA)、协商加密算法以及生成共享会话密钥等,其中ISAKMP是IKE的核心协议,定义了建立、协商、修改和删除SA的过程和报文格式,并定义了密钥交换数据和身份鉴别数据的载荷格式。ISAKMP的一个核心功能就是创建和维护SA。SA作为通信双方之间对某些要素的一种协定,是IPSec的基础,协定的内容包括数据报文封装协议、IPSec工作模式、密码算法等安全策略和密钥。IPSec的两种封装协议(AH和ESP)均使用SA中协定的内容保护通信安全。

另外,SA是单向的,一个SA为单一通信方向上传输的数据提供一种安全服务,通信双方需要产生属于自己的SA。若使用多个安全服务保护数据流,例如,同时提供认证和加密服务,那么应该创建多个SA来分别实现不同安全服务对数据的保护,即每个SA对应一个安全服务。

IP Sec 9个包分析 主模式(前6个包)+ 快速模式(后3个包)

第一阶段主模式:ISAKMP协商阶段

工作流程如下图所示:

9660a39a-f4af-11ed-90ce-dac502259ad0.png

下面针对数据包来分析主模式的协商过程

966bbdc0-f4af-11ed-90ce-dac502259ad0.png

包一:发起端协商SA,使用的是UDP协议,端口号是500,上层协议是ISAKMP,该协议提供的是一个框架,里面的负载Next payload类似模块(SA载荷),可以自由使用。可以看到发起端提供了自己的SPI值,以及SA的加密套件,加密套件主要是加密算法、杂凑算法、认证算法、秘钥长度、生存时间等。

96764ff6-f4af-11ed-90ce-dac502259ad0.png

包二:响应端收到发送端发送的加密套件后,对比自己是否有相对应的加密套件,如果有就使用和发送端相同的加密套件加密数据,把自己的SPI值和选择好的加密套件发送给发送端。如果没有相同加密套件则IKE建立失败响应。

967f8e18-f4af-11ed-90ce-dac502259ad0.png

在包二中响应方同时还发送自己的签名证书和加密证书(双证书)

96880d4a-f4af-11ed-90ce-dac502259ad0.png968f343a-f4af-11ed-90ce-dac502259ad0.png

包三和包四:

在包三和包四中,双方进行数据交换,交换的内容包括Nonce载荷(Ni和Nr)、身份标识载荷(IDi和IDr)等,其中Nonce载荷是生成工作密钥所必需的参数。这些数据使用双方各自随机生成的临时密钥SK进行对称加密保护,SK用对方的加密证书中的公钥进行加密保护。双方各自对交换数据进行数字签名,这一过程使用签名证书对应的私钥来完成,并将签名结果发给对方。同时,发送端的双证书也在包三中发给响应端,这样发送端和响应端都有了对方的签名和加密证书,可以使用对方的公钥。

包三和包四完成后,参与通信的双方利用Nonce载荷等交换数据经伪随机函数(PRF)派生出基本密钥参数,并通过PRF用基本密钥参数派生出三个对称密钥,分别是用于产生会话密钥的密钥参数、用于验证完整性和数据源身份的工作密钥及用于加密的工作密钥(注意这里没有生成会话密钥)。

9695b53a-f4af-11ed-90ce-dac502259ad0.png969c3e64-f4af-11ed-90ce-dac502259ad0.png

包五和包六:发送端和响应端对前面协商过程内容进行鉴别确认。这两个消息中传递的信息使用包三和包四产生的用于机密的工作密钥来做对称加密保护。对称密码算法由一开始双方协商的算法,这里使用的是SM4-CBC。为了检查交换内容,双方通过计算HMAC验证身份和协定的SA信息。第一阶段主模式到此结束。

第二阶段快速模式:IPSec SA协商阶段

第二阶段快速模式的工作流程如下图所示:

96a34a10-f4af-11ed-90ce-dac502259ad0.png

快速模式用于协商建立通信时使用的IPSec SA,包括IPSec安全策略和会话密钥(会话密钥在快速模式中产生)。

会话密钥有两个,均为对称密钥,分别用于通信数据加密,以及完整性校验和数据源身份鉴别。

快速模式交换的数据由主模式协定的ISAKMP SA提供保护,即除了ISAKMP头外所有的载荷都是加密的,加密密钥选用用于加密的工作密钥。同时,在ISAKMP头之后会紧跟一个HMAC载荷,用于验证交换数据的完整性和数据源身份。

在快速模式中,数据包都是加密的,简单放一张快速模式数据包的图片看下吧

96ab60f6-f4af-11ed-90ce-dac502259ad0.png

最后,将主模式包三和包四中派生出的用于产生会话密钥的密钥参数经PRF计算得到会话密钥。PRF的输入还包括双方的Nonce载荷、从主模式建立的ISAKMP SA中获得的协议值和安全参数索引(SPI),其中SPI用于唯一标识一个数据报文对应的SA。用于加密的会话密钥与用于验证完整性和数据源身份的会话密钥则按照密码算法要求的长度,从会话密钥素材中依次选取。

野蛮模式

除IKE模式外,还有野蛮模式

书上没有对野蛮模式进行讲解,我这也没有野蛮模式数据包,就简单说下

野蛮模式只用到三条信息:前两条消息1和2用于协商IKE安全提议,交换Diffie-Hellman公共值、必需的辅助信息以及身份信息,并且消息2中还包括响应方发送身份信息供发起方认证,消息3用于响应方认证发起方。

2、AH协议

AH协议提供了数据源身份鉴别、完整性和抗重放等安全功能,没有提供加密服务。因此AH协议不能单独用于封装IP数据报文,应和ESP协议一起使用。AH协议不支持NAT穿越。

AH协议的主要作用是为整个IP数据报文(IP头和IP载荷)提供高强度完整性校验,以确保被篡改过的数据包可以被检查出来。在传输模式和隧道模式下有不同的放置位置,如下图所示。

96b3a64e-f4af-11ed-90ce-dac502259ad0.png

3、ESP协议

ESP协议相对于AH协议增加了对数据报文的加密功能,ESP协议可以单独使用。在ESP协议和AH协议结合使用时,无需开启ESP提供数据源身份鉴别服务ESP协议支持NAT穿越。

ESP头在传输模式和隧道模式中分别有不同的放置位置,保护范围也有所不同,如下图所示:

96bc9d26-f4af-11ed-90ce-dac502259ad0.png

4、IPSec VPN产品

IPSec VPN产品工作在网络层,对应用层协议完全透明。

IPSec VPN产品主要用于站到站端到站模式,也用于端到端模式(较少)。其中站到站和端到站采用隧道模式,端到端可以采用隧道模式或者传输模式。

前面在分析数据包时,可以看到算法对应的属性值,如下表所示:

96c3d12c-f4af-11ed-90ce-dac502259ad0.png96ce2262-f4af-11ed-90ce-dac502259ad0.png

IPSec VPN产品的密钥体系也分为三层:设备密钥、工作密钥和会话密钥。

①设备密钥:非对称密钥对,包括签名密钥对(设备内部产生)和加密密钥对(外部密钥管理机构产生),用于实体身份鉴别、数字签名和数字信封等。其中,用于签名的设备密钥对在IKE第一阶段提供基于数字签名的身份鉴别服务;用于加密的设备密钥对在IKE第一阶段对交换数据提供保密性保护。

②工作密钥:对称密钥,在IKE第一阶段经密钥协商派生得到,用于对会话密钥交换过程的保护。其中,用于加密的工作密钥为IKE第二阶段交换的数据提供保密性保护;用于完整性校验的工作密钥为IKE第二阶段传输的数据提供完整性保护及对数据源进行身份鉴别。

③会话密钥:对称密钥,在IKE第二阶段经密钥协商派生得到,直接用于数据报文及报文MAC的加密和完整性保护。其中,用于加密的会话密钥为通信数据和MAC值提供保密性保护;用于完整性校验的会话密钥为通信数据提供完整性保护。

0x02 SSL

1、SSL协议

SSL协议是由多个协议组成的两层协议集合,如下图所示:

96d65784-f4af-11ed-90ce-dac502259ad0.png

下层协议包括记录层协议,主要用于封装不同的更高层协议的数据,为数据提供保密性、完整性和数据分段等服务,特别是它可为B/S的交互提供传输服务的超文本传输协议(HTTP)提供安全服务。

上层协议分为:握手协议、密码规格变更协议和报警协议

其中,握手协议实现了服务端和客户端之间相互的身份鉴别、交互过程中密码套件(公钥密码算法、对称密码算法和密码杂凑算法的集合)与密钥的协商;密码规格变更协议则是用于通知对方其后的通信消息将用刚刚协商的密码规格及相关联的密钥来保护;报警协议用于关闭连接的通知,以及对整个连接过程中出现的错误进行报警,其中关闭通知由发起者发送,错误报警由错误的发现者发送,报警消息中包含报警级别和报警内容。

(1)握手协议分析

握手协议的主要作用有两点:一是通信双方对彼此进行身份鉴别;二是协商连接会话所需的密码参数(如密码算法、密钥),其中各类密码算法组成的集合称为密码套件。

握手协议工作流程如下图所示,主要分为四个阶段,如下图所示:

96dd8eaa-f4af-11ed-90ce-dac502259ad0.png

下面通过抓取的国密SSL数据进行分析

数据包为抓取使用密信浏览器访问沃通GM SSL专用测试页面所得

96e493c6-f4af-11ed-90ce-dac502259ad0.png

阶段一:首先客户端向服务端发送Client Hello消息,其中包含国密协议版本号、随机数、Seesion ID和客户端所能使用的密码套件等信息。

若服务端未回应,则产生一个致命错误并断开连接

96f15b06-f4af-11ed-90ce-dac502259ad0.png

服务端返回Server hello信息,包含随机数和协商的密码套件等信息,这里双方协商的密码套件为ECC_SM4_SM3。

在第一阶段中客户端和服务端完成了密码套件的协商以及确定安全传输能力(包括协议版本、会话标识等属性),并且产生和交换随机数。

96faae90-f4af-11ed-90ce-dac502259ad0.png

阶段二:身份鉴别和秘钥交换,服务端发送证书Server Certificate(双证书:签名证书和加密证书)、服务端密钥交换消息Server Key Exchange(签名值,用于生成预主秘钥)。

在阶段二中,服务端如果要验证客户端的身份,会在发送Server Key Exchange后向客户端发送证书请求消息Certificate Request(这里没有进行验证,采用的是单向鉴别),完成后发送Hello完成消息 Server Hello Done,表示Hello消息阶段已经结束。

阶段三:在阶段二中,如果服务端对客户端进行了身份验证,客户端需要在阶段三中返回一个证书消息Client Certificate(这里服务端未对客户端进行身份验证)。

97023fac-f4af-11ed-90ce-dac502259ad0.png

客户端发送密钥交换消息Client Key Exchange,消息内容取决于双方Hello消息协商出的密钥交换算法,在这里双方Hello消息协商出来的密钥交换算法为ECC,则客户端产生46字节随机数与版本号一起构成预主密钥,采用服务端的加密公钥进行加密并放在Client Key Exchange消息中发送给服务端。

在阶段三中如果客户端和服务端使用的是双向鉴别,客户端返回证书消息Client Certificate,那么也应发送一个带数字签名的消息Certificate Verify供服务端验证客户端的身份(这里采用的单向鉴别,没有发送)。

在对交换数据进行加密和签名计算时,数据的加密运算采用对方加密证书中的公钥来进行加密;签名采用自己的签名私钥进行签名。

970b458e-f4af-11ed-90ce-dac502259ad0.png

阶段四:Change Cipher Spec 密码规格变更协议

客户端发送密码规格变更消息(加密传输中每隔一段时间必须改变其加解密参数的协议,因为后续的报文都会采用刚刚协商好的加密秘钥进行加密传输,因此会发送该报文),发送加密的握手结束消息。

Encrypted handshake Message 加密握手消息

客户端告诉服务端,自己在整个握手过程中收到了什么数据,发送了什么数据。来保证中间没人篡改报文。该数据采用刚才协商好的秘钥进行加密,顺带验证秘钥。

9716b4a0-f4af-11ed-90ce-dac502259ad0.png

服务端回应密码规格变更消息,使用刚协商的算法和密钥,发送加密的握手结束消息。

握手过程结束,双方开始进行数据传输。

SSL VPN密码套件的属性值定义,如下表所示。

972018b0-f4af-11ed-90ce-dac502259ad0.png

在GM/T 38636-2020 传输层密码协议(TLCP)中,增加了GCM分组模式的密码套件,删除了SHA1密码套件(SHA1被认为是有风险的密码算法),如下表所示:

972a7ba2-f4af-11ed-90ce-dac502259ad0.png

(2)记录层协议

当客户端和服务端握手成功后,待传输的应用数据通过记录层协议封装,并得到保密性和完整性保护,分为数据分段、数据压缩、数据添加MAC、对数据和MAC加密、附加SSL记录报头五步,整体流程如下图所示:

9735f7ca-f4af-11ed-90ce-dac502259ad0.png

2、SSL VPN 产品

SSL VPN产品采用工作在应用层传输层之间的VPN技术。

基于B/S的架构是SSL VPN最为常见的应用方式。

SSLVPN产品用于端到站站到站两种,其中端到站是常用的,是产品必须支持的;站到站是可选支持的。

SSL VPN产品的密钥体系分为三层:①用于管理的设备密钥;②用于生成工作密钥的预主密钥和主密钥;③用于保护通信数据的工作密钥

①设备密钥:非对称密钥对,包括签名密钥对(设备内部产生)和加密密钥对(外部密钥管理机构产生)。其中,签名密钥对用于握手协议中通信双方的身份鉴别;加密密钥对用于预主密钥协商时所用交换参数的保密性保护。(在这里签名密钥对和加密密钥对分别由设备内部和外部密钥管理机构产生,但是签名证书和加密证书均应由外部认证机构签发)。

②预主密钥、主密钥:对称密钥,其中预主密钥是双方协商通过伪随机函数(PRF)生成的密钥素材,用于生成主密钥;主密钥(48字节)由预主密钥、双方随机数等交换参数,经PRF计算生成的密钥素材,用于生成工作密钥。

③工作密钥:对称密钥,对通信数据安全性提供保护,由主密钥、客户端随机数、服务端随机数、常量字符串经PRF计算生成。工作密钥包括两个对称密钥:数据加密密钥用于数据的加密和解密;校验密钥用于数据的完整性计算和校验。

0x03 总结

SSL和IPSec在商用密码应用与安全性评估中涉及的内容比较多,能出的考点也是很多,本文简单对一些重要内容进行了罗列和总结,结合真实数据包对IPSec和SSL协议进行了分析,包括SSL握手协议过程、IPSec IKE协商过程和三层密钥体系及产出的位置,希望可以帮助大家理解学习。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IPSec
    +关注

    关注

    0

    文章

    55

    浏览量

    22699
  • ESP
    ESP
    +关注

    关注

    0

    文章

    175

    浏览量

    33586
  • UDP协议
    +关注

    关注

    0

    文章

    67

    浏览量

    12621
  • SSL
    SSL
    +关注

    关注

    0

    文章

    121

    浏览量

    25579

原文标题:IPSec和SSL国密数据包分析

文章出处:【微信号:Tide安全团队,微信公众号:Tide安全团队】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IPsec的基础知识

    了解IPsec迫切需要在大型公共WAN(主要是Internet)上安全地传输数据包。解决方案是开发许多网络协议,其中IPsec是部署最多的协议之一。它可以从以下事实中获益:无需对附加的同行进行任何
    发表于 08-09 13:50

    以太网数据包捕获与转发技术

    数据包捕获技术在网络安全领域中应用十分广泛,网络入侵检测系统、协议分析软件、防火墙等都需要捕获数据包。本文研究了linux 和windows 环境下的数据包捕获技术,给出了几种数
    发表于 07-30 11:19 63次下载

    网络数据包捕获机制研究

    网络数据包捕获技术,是实现入侵检测、网络安全审计的关键技术。本文改进了国外传统的数据包捕获函数库Libpcap 捕获数据包的方案。原方案在网卡捕获到数据包后,
    发表于 09-01 10:09 9次下载

    基于Jpcap的数据包捕获器的设计与实现

    本文研究了以太网数据包的捕获机制,实现了基于JPcap的网络数据包捕获工具,其基本原理是通过调用Jpcap库捕获本地网络上的所有数据包,然后对数据包进行协议解码,从而可以实
    发表于 01-15 13:47 38次下载

    数据包过滤原理

    数据包过滤技术数据包过滤原理              数据包过滤技术是防火墙最常用的技术。对于一
    发表于 06-16 23:44 4526次阅读
    <b class='flag-5'>数据包</b>过滤原理

    什么是数据包

    什么是数据包? 您在互联网上做的一切都涉及到数据包。例如,您接收的每个网页都以一系列数据包的形式传入,您发送的每封电子邮件都以一系列数据包的形式传出。以
    发表于 08-03 09:13 1952次阅读

    移动IPV6在改进数据包发送路径模型下性能分析

    针对现有移动IPV6中数据包发送代价较高的问题,对现有移动IPV6协议性能分析模型中数据包发送路径进行了改进,将访问路由发送至移动节点的数据包由代价很大的隧道发送改进为直接
    发表于 01-12 10:32 35次下载
    移动IPV6在改进<b class='flag-5'>数据包</b>发送路径模型下性能<b class='flag-5'>分析</b>

    网络数据包分析软件wireshark的基本使用

    Wireshark(前称Ethereal)是一个网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络
    的头像 发表于 09-29 14:48 2745次阅读

    wireshark导入数据包进行分析

    linux的tcpdump命令主要用于网络问题的调试中,通过抓取传输过程的数据包进行分析和调试。而wireshark则是一款功能强大,使用方便的数据包分析工具,tcpdump+wire
    的头像 发表于 12-27 09:37 1738次阅读

    IPSEC VPN 和SSL VPN的区别和选择要点

    IPSECSSL是两个不同的加密协议,都是可以对数据包进行加密保护,防止中间的黑客劫持数据。但是二者加密的位置却不一样。
    发表于 03-31 09:23 1041次阅读

    IPSEC VPN 和SSL VPN的区别和选择技巧

    IPSECSSL是两个不同的加密协议,都是可以对数据包进行加密保护,防止中间的黑客劫持数据。但是二者加密的位置却不一样。
    发表于 04-06 11:30 1823次阅读

    Wireshark网络数据包分析软件简介

    wireshark是一个免费开源的网络数据包分析软件,功能十分强大。可以截取各种网络数据包,显示网络数据包的详细信息。
    的头像 发表于 04-26 09:52 2132次阅读
    Wireshark网络<b class='flag-5'>数据包</b><b class='flag-5'>分析</b>软件简介

    阿里云双十一WoSign SSLRSA双证书首购4折

    /RSA双SSL证书应用,满足等保、关保、评等测评中,对网络与通信安全的技术要求以及商用密码合规应用要求。
    的头像 发表于 11-09 14:48 336次阅读
    阿里云双十一WoSign <b class='flag-5'>SSL</b><b class='flag-5'>国</b><b class='flag-5'>密</b>RSA双证书首购4折

    协议网关与IPSec VPN技术:保障数据安全传输的新途径

    协议网关IPSecVPN隧道技术是一种结合了国家密码管理局(简称)的加密算法和IPSecVPN隧道技术的安全通信解决方案。IPSec
    的头像 发表于 05-28 14:24 315次阅读
    <b class='flag-5'>国</b><b class='flag-5'>密</b>协议网关与<b class='flag-5'>IPSec</b> VPN技术:保障<b class='flag-5'>数据</b>安全传输的新途径

    SSLIPSec、MPLS和SD-WAN的对比分析

      VPN类型 实现方式  应用场景  优势 SSL VPN 基于SSL/TLS协议 传输层加密 远程访问企业 内部资源 易于部署和管理 无需额外客户端 IPSec VPN 基于IPsec
    的头像 发表于 05-30 15:02 189次阅读