密评之——综合密码协议IPSEC 和SSL
采用IPSec和SSL密码协议为共用网络中通信数据提供的安全功能:加密、完整性校验、数据源身份鉴别、抗重放攻击
3.1 IPSec(Internet Protocol Security,互联网安全协议)
IPSec工作在网络层 ,IPSec协议实际上是一套IP密码协议集,一般用于两个子网之间的通信,称为站对站的通信。它为网络层上的通信数据提供一整套的安全体系结构,包括:IKE协议、认证头(AH)协议、封装安全载荷(ESP)协议 和 用于网络身份鉴别及加密的一些算法等。
IPSec通过加密安全服务确保通信安全
IPSec的主要功能:提供加密措施
IPSec协议可以分为两个环节:
IKE是第一个环节:完成通信双方的身份鉴别、确定通信是使用的IPSec安全策略,
第二个环节:使用数据报文封装协议和IKE中协定的IPSec安全策略和密钥,实现对通信数据的安全传输。
IPSec密钥协商方式有两种:①手工方式;②IKE自动协商
IPSec提供加密和认证安全机制
AH和ESP协议可以工作在传输模式或隧道模式下
传输模式:一般用于端到端的应用场景,只有IP载荷部分被保护,对IP头不做改动
隧道协议:对整个IP数据报文提供加密和认证功能,并在次基础上添加新的IP头,一般用于创建虚拟专用网(VPN)隧道链路
SA:安全联盟 ISAKMP:互联网安全联盟和密钥管理协会
SK:临时密钥 Nonce:一个只被使用一次的任意或非重复的随机数值
IKE协议:
IKE协议用于:鉴定通信双方身份、创建安全联盟(SA)、协商加密算法和生成共享会话密钥等
IKE协商两种SA:IKE SA(双向SA)、IPSec SA(单向SA)
IKE可以为IPSec协商关联,为L2TP协商安全关联,为SNMPv3等要求保密的协议协调安全参数
ISAKMP分为两个阶段:(Internet Security Association and Key Management Protocol)安全关联和密钥管理协议
第一阶段:主模式,通信双方建立一个ISAKMP SA,并实现双方的身份鉴别和密钥交换,得到工作密钥,该工作密钥用于保护第二阶段的协商过程
第二阶段:快速模式,使用已建立的ISAKMP SA提供保护,实现通信双方IPSec的协商,确定通信双方IPSec安全策略和会话密钥。其中IPSec安全策略定义了哪些服务以何种形式提供给IP数据报文
ISAKMP的主模式工作流程:
1)ISAKMP主模式:身份保护交换,作用:身份鉴别,密钥交换
①消息1:发起方告知响应方它优先选择的密码协议(如ISAKMP、AH和ESP)以及希望协商中SA采用的密码算法
②消息2:响应方发送SA载荷和双证书,SA载荷表明它接受发起方发送的SA提议,双证书用于随后密钥交换时的数据加密和身份鉴别
③消息3和4:双方完成身份鉴别(基于数字签名),通过交换数据的得到第二阶段(快速模式)提供保护的工作密钥。Nonce载荷(Ni和Nr)是生成工作密钥所需的参数,身份标识载荷(IDi和IDr),这些数据使用双方各自随机生成的临时密钥SK进行对称加密保护,SK用对方加密证书中的公钥进行加密保护。双方各自对交换数据数字签名(使用签名证书中对应的私钥完成),并将签名结果发送给对方
消息3和4完成后,通信双方利用Nonce载荷等交换数据经伪随机函数(PRF)派生出基本密钥参数,并通过PRF用基本密钥参数派生出三个对称密钥,分别为:用于产生会话密钥的密钥参数、用于验证完整性和数据源身份的工作密钥、用于加密的工作密钥。
④消息5和6:双方对协商过程内容进行鉴定确认。消息使用用于加密的工作密钥进行对称加密保护,双方通过计算HMAC验证身份和协定的SA信息检查交换内容。
ISAKMP的快速模式工作流程
2)ISAKMP快速模式:
作用:协商建立通信时使用的IPSec,包括IPSec安全策略和会话密钥。
快速模式中的数据由主模式协定的ISAKMP SA提供保护。ISAKMP头后的HMAC载荷用于验证交换数据的完整性和数据源身份,将主模式中派生的用于产生会话密钥的密钥参数经PRF计算得到会话密钥,PRF输入还包括双方Nonce载荷、主模式建立的ISAKMP SA中获取的协议值和安全参数索引(SPI),其中SPI用于唯一标识一个数据报文对应的SA。用于加密的会话密钥与用于完整性和数据源身份的会话密钥按照密码算法要求的长度,从会话密钥素材中一次选取。
AH协议
传输模式和隧道模式下AH位置:
封装前:原IP头-协议头-数据
传输模式封装后:原IP头-AH-协议头-数据
隧道模式封装后:新建外部IP头-AH-原IP头-协议头-数据
AH协议的主要作用:为整个IP数据报文(IP头和IP载荷)提供高强度完整性校验,确保被篡改过的数据包被检查出来
AH提供的功能:完整性与认证
AH使用MAC(此处为HMAC)对IP数据报文进行认证,HMAC对IP数据报文处理所用的密钥为IKE协议用于完整性和数据源身份的会话密钥
传输模式时:AH为整个IP数据报文(原IP头和IP载荷)提供认证保护
隧道模式时:AH为整个原IP数据报文及新建外部IP头提供认证保护
AH不提供加密服务,不得单独用于封装IP数据报文,应与封装安全载荷协议ESP嵌套使用。
ESP协议
传输模式和隧道模式下ESP头位置
封装前:原IP头-协议头-数据
传输模式封装后:原IP头-ESP-协议头-数据-ESP尾-ESP认证数据
隧道模式封装后:新建外部IP头-ESP-原IP头-协议头-数据-ESP尾-ESP认证数据
ESP协议与AH协议相比,增加了对数据报文的加密功能,可同时使用用于加密的会话密钥及用于验证完整性和数据源身份的会话密钥,为数据提供全面保护。
ESP提供身份认证
ESP和AH结合使用时,无须ESP提供数据源身份鉴别,由AH提供该安全服务
传输模式时:ESP头为后面的载荷提供保密性保护,为源IP头后的内容提供认证服务
隧道模式时:ESP头为真个原IP报文提供保密性保护,为新建外部IP头后的内容提供认证保护
3.2 SSL(Secure Sockets Layer,安全套接字协议)
SSL协议栈:
两层协议集合: 上层:握手协议、密码规格变更协议、报警协议和HTTP协议。下层:记录层协议。
工作在应用层和传输层之间
SSL协议主要两部分:握手协议和记录协议
保密性:传输的数据均是采用Session Key加密,保证了保密性;
真实性:双方握手时对对方的身份均有验证,因此可以保证对方的真实性
完整性:每部分数据均有MAC验证,验证时计算数据的MAC然后与接收到的MAC比较,即可确定数据是否完整。
不可否认性:SSL不能提供交易的不可否认性。SSL协议是基于Web应用的安全协议,它只能提供安全认证,保证SSL链路上的数据完整性和保密性。却不能对电子商务的交易应用层的信息进行数字签名,因此,SSL不能提供交易的不可否认性。
握手协议
作用:①通信双方对彼此进行身份鉴别;②协商连接会话所需的密码参数(如密码算法、密钥)
握手协议工作流程:
阶段一:Client Hello 和Server Hello消息用于在客户端和服务端之间进行密码套件协商及确定安全传输能力(包括协议版本、会话标识等属性),并且产生和交换随机数。
阶段二:身份鉴别和密钥交换,服务端发送证书Server Certificate(签名证书和加密证书)和服务端密钥交换消息Server Key Exchange(用于生成预主密钥)。若服务端需要验证客户身份,向客户端发送请求消息Certificate Request,之后发送Server Hello Done标识Hello消息阶段结束等待客户端返回信息
阶段三:若服务端发送证书请求信息,客户端必须返回证书消息Client Certificate。客户端发送密钥交换信息Client Key Exchange,内容取决于双方Hello消息协商出的密码交换算法,若交换算法为ECC,则客户端产生46字节(368比特)随机数与版本号一起构成预主密钥,并采用服务端的加密公钥进行加密并放在ClientKey Exchange消息中发送给服务端;若交换算法为ECDHE,则ClientKey Exchange消息包含计算预主密钥的客户端密钥交换参数,同时,客户端根据双方的密钥交换消息生成预主密钥。若客户端发送了证书消息Client Certificate,也应发送一个带数字签名的消息Certificate Verify供服务端验证客户端身份。
注:交换数据的加密运算采用对方加密证书中的公钥来完成;交换数据的签名运算采用本方签名私钥来完成,而且签名计算的输入应包括加密证书
阶段四:客户端发送密码规格变更消息,并立即使用刚协商的算法和密钥,发送加密的握手结束消息。服务端回应密码规格变更消息,使用刚协商的算法和密钥,发送加密的握手结束消息,双方可开始进行数据安全传输。
1.密钥计算:主密钥为48字节(368比特)对称密钥,有预主密钥、客户端随机数、服务端随机数、常量字符串,经PRF计算生成。工作密钥,生成方法与主密钥相同,具体长度由选用的密码算法决定,工作密钥包含两个对称密钥:用于加密的工作密钥、用于验证完整性和数据源身份的工作密钥。
2.会话重用:若双方决定重用之前的密钥,可不必重新协商安全参数
记录层协议:当客户端和服务端握手成功后,待传输的应用数据通过记录层协议封装,并得到保密性和完整性保护。
记录层协议
第1步:数据分段,每一个记录块长度为字节或更小
第2步 :数据压缩,使用当前会话状态指定的算进行压缩,应采用无损压缩,并且增加长度不超过1024字节
第3步 :数据添加MAC,使用模式协议密码套件中协定的密码杂凑算法和用于校验的工作密钥,对每块明文记录计算MAC
第4步 :对数据和MAC加密,使用模式协议密码套件中协定的对称密码算法和用于加密的工作密钥
第5步 :附加SSL记录报头,增加有内容类型、主要版本、次要版本和压缩长度组成的头部
接收到这些信息的实体要将该经过逆向执行一遍,从而获得原始数据。
本文中使用的部分图片来自于网络,如有侵权,请联系博主进行删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!