几个网络传输协议

IPv6

IPsec(Internet Protocol Security)是一种网络安全协议套件,用于在IP网络中提供数据传输的机密性、完整性和身份验证。它提供了一系列的安全服务和机制,以保护通信的安全性和隐私性。

IPsec的设计目标是通过在IP层对数据进行安全处理,提供端到端的安全传输。它通过使用加密算法、认证算法和安全协议来实现数据的保护。其中,加密算法用于对数据进行加密,确保传输过程中的机密性;认证算法用于对数据进行认证,验证数据的完整性和身份验证;安全协议则用于在通信双方之间建立和管理安全关联,协商所需的加密和认证算法以及密钥等安全参数。

IPsec采用了两种主要的协议扩展:AH(Authentication Header)和ESP(Encapsulating Security Payload)。AH协议提供了数据的认证和完整性保护,通过添加认证数据字段来验证数据的完整性和源身份验证。ESP协议则提供了加密和认证功能,它在AH协议的基础上增加了对数据的加密处理,保证了数据的机密性和完整性。

IPsec的实施涉及到安全策略定义、密钥管理、数据封装与解封装以及认证与加密处理等步骤。它可以应用于各种IP网络环境,包括虚拟专用网络(VPN)、远程访问以及安全的本地网络通信。

总而言之,IPsec是一种学术化的网络安全协议套件,通过使用加密、认证和安全协议等技术手段,为IP网络中的数据传输提供了机密性、完整性和身份验证的保护,确保了通信的安全性和隐私性。

首部

IPv6的首部包含以下字段:

  1. 版本(Version):指示IPv6的版本号,占4位。
  2. 流量类别(Traffic Class):用于指定数据包的优先级或流量类别,占8位。
  3. 流量标签(Flow Label):用于标识同一个流的数据包,以便路由器对其进行特殊处理,占20位。
  4. 负载长度(Payload Length):指示IPv6首部后紧随的数据包的长度,占16位。
  5. 下一个头部(Next Header):指示紧随IPv6首部的下一个头部的类型,如传输层协议头部(TCP或UDP)或扩展头部,占8位。
  6. 跳数限制(Hop Limit):类似于IPv4中的生存时间(Time to Live),指示数据包在网络中可以经过的最大路由器跳数,占8位。
  7. 源地址(Source Address):指示数据包的发送者的IPv6地址,占128位。
  8. 目标地址(Destination Address):指示数据包的接收者的IPv6地址,占128位。

扩展首部

来源

  1. Hop-by-Hop Options扩展报头:用于在数据包的每一跳中传递选项信息,如路由优先级、路径记录等。
  2. Destination Options扩展报头:用于在数据包到达目的地时传递选项信息,如目标地址的源站选项、路径MTU(Maximum Transmission Unit)选项等。
  3. Routing扩展报头:用于指定数据包的路由路径,可以指定数据包的中间节点。
  4. Fragmentation扩展报头:用于在数据包在传输过程中需要进行分片时传递分片信息。
  5. Authentication(AH)扩展报头:用于在数据包中添加认证信息,以保证数据的完整性和身份验证。
  6. Encapsulating Security Payload (ESP)扩展报头:用于在数据包中添加加密和认证的信息,以提供数据的机密性和完整性。
  7. Destination Options for IPv6 with Next Header扩展报头:类似于Destination Options扩展报头,但在选项中包含了下一个报头类型。

其中AH和ESP报头是我们这次用得到的

IPsec

IPsec(Internet Protocol Security)是一种网络安全协议套件,用于在IP网络中提供数据传输的机密性、完整性和身份验证。它提供了一系列的安全服务和机制,以保护通信的安全性和隐私性。

IPsec的设计目标是通过在IP层对数据进行安全处理,提供端到端的安全传输。它通过使用加密算法、认证算法和安全协议来实现数据的保护。其中,加密算法用于对数据进行加密,确保传输过程中的机密性;认证算法用于对数据进行认证,验证数据的完整性和身份验证;安全协议则用于在通信双方之间建立和管理安全关联,协商所需的加密和认证算法以及密钥等安全参数。

IPsec采用了两种主要的协议扩展:AH(Authentication Header)和ESP(Encapsulating Security Payload)。AH协议提供了数据的认证和完整性保护,通过添加认证数据字段来验证数据的完整性和源身份验证。ESP协议则提供了加密和认证功能,它在AH协议的基础上增加了对数据的加密处理,保证了数据的机密性和完整性。

IPsec的实施涉及到安全策略定义、密钥管理、数据封装与解封装以及认证与加密处理等步骤。它可以应用于各种IP网络环境,包括虚拟专用网络(VPN)、远程访问以及安全的本地网络通信。

总而言之,IPsec是一种学术化的网络安全协议套件,通过使用加密、认证和安全协议等技术手段,为IP网络中的数据传输提供了机密性、完整性和身份验证的保护,确保了通信的安全性和隐私性。

IPsec协议框架

在这里插入图片描述

IPsec的作用

  1. 安全关联建立:通信双方需要建立安全关联(Security Association,SA),包括选择安全协议、密钥交换方法等。SA包含了用于加密、认证和完整性校验的参数。
  2. 安全策略定义:定义哪些流量需要进行IPsec保护,可以根据源地址、目标地址、传输层协议等条件进行过滤。
  3. 加密与认证处理:在IPsec中,使用加密算法对数据进行加密,以保证数据的机密性;同时使用认证算法对数据进行认证,以保证数据的完整性和身份验证。
  4. 安全隧道模式:IPsec可以在两个通信节点之间建立一个安全隧道,将要保护的数据封装在IPsec封装包中进行传输。这样,即使在公共网络上,也能够保证数据的安全传输。
  5. 密钥管理:IPsec需要使用密钥来进行加密和认证操作。密钥可以通过手动配置、密钥交换协议(如IKE)或其他密钥管理方案来生成和分发。

IPsec是如何工作的

IPsec使用AH (authentication Header)和ESP (Encapsulating security Payload)两种协议提供流量安全服务。

IP认证头(AH)]提供了完整性和数据源认证,具有可选的(由接收方决定)防重放特性。

封装安全有效负载(ESP)协议提供相同的服务集,并提供机密性。使用ESP提供机密性在没有完整性的前提下是不建议的。在启用ESP保密功能的情况下,有限制流量流量保密的规定,即对报文长度进行隐藏的规定,以及便于有效生成和丢弃假报文的规定。这种能力可能主要在虚拟专用网络(VPN)和覆盖网络环境中有效。

AH和ESP都提供访问控制,通过安全策略数据库(SPD)规定的密钥分配和流量管理来实施。

这些协议可以单独应用,也可以相互结合,提供IPv4和IPv6安全服务。但是,ESP本身可以满足大多数安全需求。每个协议支持两种使用模式:传输模式和隧道模式。在传输模式下,AH和ESP主要为下一层协议提供保护;隧道模式下,对经过隧道的IP报文使用AH和ESP协议。这两种模式的区别将在4.1节中讨论。

IPsec允许用户(或系统管理员)控制提供安全服务的粒度。例如,可以创建一条加密隧道来承载两个安全网关之间的所有流量,也可以为跨这些网关通信的每对主机之间的每个TCP连接创建单独的加密隧道。IPsec,通过SPD管理模式,整合了如下功能:
1. 使用哪个安全协议(AH或ESP),模式(传输或隧道),安全服务选项,使用什么加密算法,以及在什么组合中使用指定的协议和服务
2. 在哪些保护上的粒度应当被实现

因为IPsec提供的大多数安全服务都需要使用加密密钥,所以IPsec依赖于一组单独的机制来放置这些密钥。该文档需要支持手动和自动密钥分发。它为自动密钥管理指定了一种特定的基于公钥的方法,但也可以使用其他自动密钥分发技术。

在哪里可以实现IPsec

IPsec可以通过多种方式在主机中实现,或者与路由器或防火墙一起创建安全网关,或者作为独立的安全设备实现。

  1. IPsec可以集成到本机IP堆栈中。这需要访问IP源代码,并且适用于主机和安全网关,尽管本机主机实现从这个策略中获益最多。
  2. 在“挤在堆栈中”(BITS)实现中,IPsec是在IP协议栈现有实现的“下面”实现的,在本机IP和本地网络驱动程序之间。在此上下文中,不需要对IP堆栈进行源代码访问,因此这种实现方法适合用于遗留系统。当采用这种方法时,通常在主机中使用。
  3. 使用专用的内联安全协议处理器是军用系统和一些商业系统的常见设计特征。它有时被称为“线路碰撞”(BITW)实现。这样的实现可以设计为服务于主机或网关。通常,BITW设备本身是可编IP地址的。当支持单个主机时,它可能非常类似于BITS实现,但在支持路由器或防火墙时,它必须像安全网关一样运行。

本文经常讨论主机或安全网关对IPsec的使用,而不考虑其实现是本机的、BITS的还是BITW的。这需要参考具体的实现方法。

IPsec的主机实现可能出现在不被视为“主机”的设备中。例如,路由器可以使用IPsec来保护路由协议(如BGP)和管理功能(如Telnet),而不会影响通过路由器的用户流量。安全网关可以使用单独的IPsec实现来保护其管理流量和订阅者流量。IPsec体系结构非常灵活。例如,一台具有全功能、兼容的本机操作系统IPsec实现的计算机应该能够配置为保护本地(主机)应用程序,并为穿越计算机的流量提供安全网关保护。这样的配置将使用转发表和SPD选择功能。

来源:RFC

具体实现

封装模式

IPsec封装是指将AH或ESP协议的相关字段插入到原始IP报文中,以实现对报文的验证和加密。IPsec封装模式包括传输模式和隧道模式。

传输模式

在传输模式下,AH头或ESP头被插入到IP头与传输层协议头之间,保护报文载荷。由于传输模式未添加额外的IP头,所以原始报文中的IP地址在加密后报文的IP头中可见。

隧道模式

在传输模式下,AH头或ESP头被插入到IP头与传输层协议头之间,保护报文载荷。由于传输模式未添加额外的IP头,所以原始报文中的IP地址在加密后报文的IP头中可见。

AH

AH协议仅支持验证功能,不支持加密功能。AH协议在每一个数据包的标准IP报头后方添加一个AH报文头,并对数据包和认证密钥进行Hash计算。接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果进行比较,传输过程中对数据的任何更改将使计算结果无效,通过这一机制实现了数据来源验证和数据完整性校验。AH协议的完整性验证范围为整个IP报文。

传输模式下的AH工作流程:

  1. 源主机创建IP数据包:在源主机上,将要传输的数据封装在IP数据包中。
  2. AH报头生成:源主机生成AH报头,并将其添加到IP数据包的扩展报头字段中。
  3. 计算认证数据:在传输模式下,认证数据包括AH报头和封装的上层协议数据,即原始IP数据包的有效载荷部分。使用密钥和认证算法对这些数据进行计算,生成认证数据。
  4. IP数据包发送:将封装了AH报头和认证数据的IP数据包发送到网络中。
  5. 目的主机接收数据包:目的主机接收到经过AH报头封装的IP数据包。
  6. 报头验证:目的主机从接收到的数据包中提取AH报头,并对报头字段进行验证。
  7. 身份验证计算:目的主机使用相同的密钥和认证算法对接收到的AH报头和封装的上层协议数据进行计算,生成一个新的认证数据。
  8. 认证数据比较:目的主机将计算得到的认证数据与接收到的认证数据进行比较。
  9. 数据完整性检查:如果计算得到的认证数据与接收到的认证数据一致,则数据包的完整性得到验证。
  10. 数据包处理:根据上层协议类型字段,目的主机继续处理数据包后续的协议层。

隧道模式下的AH工作流程

  1. 源主机创建内部IP数据包:在源主机上,将要传输的数据封装在内部IP数据包中。
  2. 封装内部IP数据包:源主机创建外部IP数据包,将内部IP数据包作为其有效载荷封装在外部IP数据包中。
  3. AH报头生成:源主机生成AH报头,并将其添加到外部IP数据包的扩展报头字段中。
  4. 计算认证数据:在隧道模式下,认证数据包括AH报头、外部IP数据包的IP首部和有效载荷部分。使用密钥和认证算法对这些数据进行计算,生成认证数据。
  5. 外部IP数据包发送:将封装了AH报头和认证数据的外部IP数据包发送到网络中。
  6. 隧道传输:外部IP数据包在网络中传输,可能经过多个中间路由器。
  7. 目的主机接收外部IP数据包:目的主机接收到经过AH报头封装的外部IP数据包。
  8. 报头验证:目的主机从接收到的外部IP数据包中提取AH报头,并对报头字段进行验证。
  9. 身份验证计算:目的主机使用相同的密钥和认证算法对接收到的AH报头、外部IP数据包的IP首部和有效载荷部分进行计算,生成一个新的认证数据。
  10. 认证数据比较:目的主机将计算得到的认证数据与接收到的认证数据进行比较。
  11. 数据完整性检查:如果计算得到的认证数据与接收到的认证数据一致,则数据包的完整性得到验证。
  12. 内部IP数据包解封装:目的主机从外部IP数据包中提取出内部IP数据包。
  13. 内部IP数据包处理:根据内部IP数据包的上层协议类型字段,目的主机继续处理数据包后续的协议层。

ESP

ESP协议同时支持验证和加密功能。ESP协议在每一个数据包的标准IP报头后方添加一个ESP报文头,并在数据包后方追加一个ESP尾(ESP Trailer和ESP Auth data)。与AH协议不同的是,ESP协议是将数据中的有效载荷进行加密后再封装到数据包中,以此保证数据的机密性,但ESP没有对IP头的内容进行保护,除非IP头被封装在ESP内部(采用隧道模式封装报文时的旧IP头)。

传输模式下的ESP工作流程

  1. 源主机创建传输层数据:在源主机上,将要传输的数据创建为传输层数据,如TCP或UDP报文。
  2. ESP报头生成:源主机生成ESP报头,并将其添加到传输层数据前面。
  3. 加密和认证处理:源主机对传输层数据进行加密和认证处理。首先,使用协商好的加密算法对传输层数据进行加密,以保证数据的机密性。然后,使用协商好的认证算法对加密后的数据进行认证,以保证数据的完整性和身份验证。
  4. 计算认证数据:认证数据包括ESP报头和加密后的传输层数据。使用密钥和认证算法对这些数据进行计算,生成认证数据。
  5. 封装数据:将加密后的传输层数据和认证数据封装在ESP封装包中。
  6. 将ESP封装包添加到IP数据包中:源主机将ESP封装包添加到IP数据包的有效载荷部分。
  7. IP数据包发送:将封装了ESP封装包的IP数据包发送到网络中。
  8. 目的主机接收IP数据包:目的主机接收到带有ESP封装包的IP数据包。
  9. 将ESP封装包从IP数据包中提取出来:目的主机从接收到的IP数据包中提取出ESP封装包。
  10. 解密和验证处理:目的主机对接收到的ESP封装包进行解密和验证处理。首先,使用协商好的密钥和加密算法对ESP封装包中的加密数据进行解密,还原出传输层数据。然后,使用相同的密钥和认证算法对解密后的传输层数据和ESP报头进行认证,验证数据的完整性和身份。
  11. 认证数据比较:目的主机将计算得到的认证数据与接收到的认证数据进行比较。
  12. 数据完整性检查:如果计算得到的认证数据与接收到的认证数据一致,则数据包的完整性得到验证。
  13. 传输层数据处理:目的主机根据传输层数据的协议类型字段,继续处理数据包后续的协议层。

隧道模式下的ESP工作流程

  1. 源主机创建内部IP数据包:在源主机上,将要传输的数据封装在内部IP数据包中。
  2. 封装内部IP数据包:源主机创建外部IP数据包,并将内部IP数据包作为其有效载荷封装在外部IP数据包中。
  3. ESP报头生成:源主机生成ESP报头,并将其添加到外部IP数据包的扩展报头字段中。
  4. 加密和认证处理:源主机对外部IP数据包进行加密和认证处理。首先,使用协商好的加密算法对外部IP数据包进行加密,以保证数据的机密性。然后,使用协商好的认证算法对加密后的数据进行认证,以保证数据的完整性和身份验证。
  5. 计算认证数据:认证数据包括ESP报头和加密后的外部IP数据包。使用密钥和认证算法对这些数据进行计算,生成认证数据。
  6. 外部IP数据包发送:将封装了ESP报头和认证数据的外部IP数据包发送到网络中。
  7. 隧道传输:外部IP数据包在网络中传输,可能经过多个中间路由器。
  8. 目的主机接收外部IP数据包:目的主机接收到经过ESP报头封装的外部IP数据包。
  9. 报头验证:目的主机从接收到的外部IP数据包中提取ESP报头,并对报头字段进行验证。
  10. 解密和验证处理:目的主机对接收到的外部IP数据包进行解密和验证处理。首先,使用协商好的密钥和加密算法对外部IP数据包中的加密数据进行解密,还原出内部IP数据包。然后,使用相同的密钥和认证算法对解密后的外部IP数据包和ESP报头进行认证,验证数据的完整性和身份。
  11. 认证数据比较:目的主机将计算得到的认证数据与接收到的认证数据进行比较。
  12. 数据完整性检查:如果计算得到的认证数据与接收到的认证数据一致,则数据包的完整性得到验证。
  13. 内部IP数据包处理:目的主机根据内部IP数据包的上层协议类型字段,继续处理数据包后续的协议层。

IKE

使用对称密钥进行加密、验证时,如何安全地共享密钥是一个很重要的问题。目前通过密钥分发协议自动协商生成动态密钥可以解决这个问题。

通过IKE协议自动协商密钥。IKE采用DH(Diffie-Hellman)算法在不安全的网络上安全地分发密钥。这种方式配置简单,可扩展性好,特别是在大型动态的网络环境下此优点更加突出。同时,通信双方通过交换密钥交换材料来计算共享的密钥,即使第三方截获了双方用于计算密钥的所有交换数据,也无法计算出真正的密钥,极大地提高了安全性。

IKE协议的安全机制

IKE协议具有一套自保护机制,可以在网络上安全地进行认证身份、分发密钥,并最终建立IPsec SA。

  • 身份认证
    身份认证用于确认通信双方的身份(对等体的IP地址或名称),包括PSK预共享密钥(pre-shared key)认证、RSA数字签名证书(rsa-signature)认证和数字信封认证。

    • 在PSK预共享密钥认证中,通信双方采用共享的密钥对报文进行Hash计算,判断双方的计算结果是否相同。如果相同,则认证通过,否则认证失败。当有1个对等体对应多个对等体时,需要为每个对等体分别配置预共享的密钥。该认证方式在小型网络中容易建立,但安全性较低。
    • 在RSA数字签名证书认证中,通信双方使用CA证书进行数字证书合法性验证,双方各有自己的公钥(网络上传输)和私钥(自己持有)。发送方对原始报文进行Hash计算,并用自己的私钥对报文计算结果进行加密,生成数字签名。接收方使用发送方的公钥对数字签名进行解密,并对报文进行Hash计算,判断计算结果与解密后的结果是否相同。如果相同,则认证通过;否则认证失败。该认证方式的安全性高,但需要CA中心颁发数字证书,适合在大型网络中使用。
    • 在数字信封认证中,发送方首先随机产生一个对称密钥,使用接收方的公钥对此对称密钥进行加密(被公钥加密的对称密钥称为数字信封),发送方用对称密钥加密报文,同时用自己的私钥生成数字签名。接收方用自己的私钥解密数字信封得到对称密钥,再用对称密钥解密报文,同时根据发送方的公钥对数字签名进行解密,验证发送方的数字签名是否正确。如果正确,则认证通过;否则认证失败。

IKE协议支持的认证算法包括:MD5、SHA1、SHA2-256、SHA2-384、SHA2-512、SM3。其中,MD5和SHA1认证算法安全性低,存在安全风险,不推荐使用。

  • 身份保护
    身份信息在密钥产生之后通过加密算法加密后传送,实现了对身份数据的保护。
    IKE需要支持的加密算法包括:DES、3DES、AES-128、AES-192、AES-256、SM4、AES-GCM-256、AES-GCM-192、AES-GCM-128。其中,CBC模式的AES算法、DES和3DES加密算法安全性低,存在安全风险,不推荐使用。
  • DH(Diffie-Hellman)
    DH是一种公共密钥交换方法,用于产生密钥材料。产生的密钥材料通过ISAKMP消息在发送方和接收方设备之间进行交换,两端设备会各自计算出完全相同的对称密钥,用于计算加密和验证过程中使用的密钥。在任何时候,通信双方都无需交换真正的密钥。
  • PFS(Perfect Forward Secrecy)
    PFS通过执行一次额外的DH交换,确保即使IKE SA中使用的密钥被泄露,IPsec SA中使用的密钥也不会受到损害。

具体流程

  1. 主要进行安全关联的建立和密钥交换。
    1. 初始化:两个节点(通常是网关)之间发起IKE会话请求,包括协商的安全参数和提议。
    2. 安全关联建立:节点之间进行身份验证和密钥交换。这包括通过ISAKMP协议进行密钥交换、选择加密算法和认证算法、协商Diffie-Hellman密钥交换等。
    3. 密钥生成:通过协商生成共享密钥,用于后续阶段的数据加密和认证。
  2. 主要进行IPsec安全关联的建立和流量保护。
    1. 安全关联建立:节点之间协商和建立IPsec安全关联,包括选择加密算法、认证算法、协商协议模式(传输模式或隧道模式)等。
    2. 流量保护:根据安全关联中协商的参数,对传输的数据进行加密、认证和封装。这包括使用AH协议或ESP协议来保护数据的完整性、机密性和身份验证。
  3. 密钥管理和更新:IKE协议还负责密钥的周期性更新和管理,以增强安全性。

IKE与IPsec的关系

对等体之间建立一个IKE安全联盟(IKE SA)完成身份验证和密钥信息交换后,在IKE SA的保护下,根据配置的AH/ESP安全协议等参数协商出一对IPsec SA。此后,对等体间的数据将在IPsec隧道中加密传输。与IPsec SA不同的是,IKE SA是一个双向的逻辑连接,两个对等体间只需建立一个IKE SA。
在这里插入图片描述

来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值