网络安全 - 网络层

网络层安全控制经常用于保护通信,特别是在Internet等共享网络上,因为它们可以同时为许多应用程序提供保护而无需修改它们.

在前面的章节中,我们讨论了许多实时安全协议已经发展为网络安全,确保了隐私,原始身份验证,消息完整性和不可否认等安全的基本原则.

大多数这些协议仍然集中在OSI协议栈的更高层,以弥补标准Internet协议中固有的安全性缺陷.虽然有价值,但这些方法不能容易地推广用于任何应用.例如,SSL专门用于保护HTTP或FTP等应用程序.但是还有其他几个应用程序也需要安全通信.

这种需求促成了在IP层开发安全解决方案,以便所有更高层协议都可以利用它. 1992年,互联网工程任务组(IETF)开始定义标准的"IPsec".

在本章中,我们将讨论如何使用这个非常受欢迎的集合在网络层实现安全性协议IPsec.

网络层安全性

任何为提供网络安全而开发的方案都需要在协议栈的某个层实现为如下图所示 :

Layer通信协议安全协议
应用层HTTP FTP SMTPPGP. S/MIME,HTTPS
传输层TCP/UDPSSL,TLS,SSH
网络层IPIPsec

为确保网络层安全而开发的流行框架是Internet协议安全(IPsec).

IPsec的功能

  • IPsec不能仅用于TCP作为传输协议.它适用于UDP以及IP之上的任何其他协议,如ICMP,OSPF等.

  • IPsec保护呈现给IP层的整个数据包,包括更高层的报头.

  • 由于隐藏了更高层的标题,其中包含端口号,因此流量分析更加困难.

  • IPsec从一个网络实体工作到另一个网络实体,而不是从应用程序进程到应用程序进程.因此,可以采用安全性而无需更改单个用户计算机/应用程序.

  • 广泛用于提供网络实体之间的安全通信,IPsec可以提供主机 - 主机安全性也是如此.

  • IPsec的最常见用途是在两个位置之间提供虚拟专用网络(VPN) -gateway)或远程用户和企业网络(主机到网关)之间.

安全功能

IPsec提供的重要安全功能如下:

  • 机密性

    • 允许通信节点加密消息.

    • 防止被窃听第三方.

  • 原产地认证和数据完整性.

    • 确保接收到的数据包实际上是由传输的被识别为数据包标题中的来源的一方.

    • 确认数据包未被更改或以其他方式.

  • 密钥管理.

    • 允许安全交换密钥.

    • 防范某些类型的安全攻击,例如重播攻击.

虚拟专用网

理想情况下,任何机构都希望拥有专用网络进行通信以确保安全.然而,在地理上分散的区域上建立和维护这样的专用网络可能是非常昂贵的.它需要管理通信链路,路由器,DNS等复杂的基础设施.

IPsec为这些机构提供了一种实现虚拟专用网(VPN)的简便机制. VPN技术允许机构的局间流量通过在进入公共互联网之前加密流量并在逻辑上将其与其他流量分开来通过公共互联网发送. VPN的简化工作如下图所示 :

虚拟专用网

IPsec概述

IPsec是用于在IP层提供安全性的框架/协议套件.

Origin

20世纪90年代初,互联网被少数机构使用,主要用于学术目的.但在后来的几十年里,由于网络的扩张以及一些组织将其用于通信和其他目的,互联网的发展呈指数级增长.

随着互联网的大规模增长,再加上固有的安全性TCP/IP协议的弱点,需要一种能够在互联网上提供网络安全的技术.互联网架构委员会(IAB)于1994年发布了一份题为"互联网架构中的安全性"的报告.它确定了安全机制的关键领域.

IAB包括身份验证和加密IPv6中的基本安全功能,即下一代IP.幸运的是,这些安全功能的定义使得它们可以使用当前的IPv4和未来的IPv6实现.

安全框架,IPsec已经在几个"请求注释"(RFC)中定义.一些RFC指定了协议的某些部分,而其他部分则解决了整个解决方案.

IPsec中的操作

IPsec套件可以被认为有两个独立的操作,一致执行,提供一整套安全服务.这两个操作是IPsec通信和Internet密钥交换.

  • IPsec通讯

    • 这是通常与标准IPsec功能相关联.它涉及封装,加密和散列IP数据报并处理所有数据包进程.

    • 它负责根据可用的安全关联(SA)管理通信.在通信方之间建立.

    • 它使用安全协议,例如Authentication Header(AH)和Encapsulated SP(ESP).

    • 创建密钥或管理时不涉及IPsec通信.

    • IPsec通信操作本身通常被称为作为IPsec.

  • 互联网密钥交换(IKE)

    • IKE是用于IPsec的自动密钥管理协议.

    • 从技术上讲,密钥管理对于IPsec通信并不重要,密钥可以手动管理.但是,大型网络不需要手动密钥管理.

    • IKE负责为密钥创建密钥并在密钥建立过程中提供身份验证.虽然,IPsec可以用于任何其他密钥管理协议,但默认情况下使用IKE.

    • IKE定义了两个协议(Oakley和SKEME)用于已定义的密钥管理框架Internet安全关联密钥管理协议(ISAKMP).

    • ISAKMP不是特定于IPsec的,但提供了为任何协议创建SA的框架.

本章主要讨论IPsec通信及相关协议的使用实现安全性.

IPsec通信模式

IPsec通信有两种运行模式;运输和隧道模式.这些模式可以组合使用,也可以单独使用,具体取决于所需的通信类型.

传输模式

  • IPsec不封装从上层接收的数据包.

  • 维护原始IP头,并根据由上层协议设置的原始属性.

  • 下图显示了协议栈中的数据流.

运输模式

  • 传输模式的限制是不能提供网关服务.它保留用于点对点通信,如下图所示.

点对点通讯

隧道模式

  • 这种IPsec模式提供封装服务以及其他安全服务.

  • 在隧道模式操作中,在应用安全协议之前封装来自上层的整个数据包.添加了新的IP标头.

  • 下图显示了协议栈中的数据流.

隧道模式

  • 隧道模式通常与网关活动相关联.封装提供了通过单个网关发送多个会话的能力.

  • 典型的隧道模式通信如下图所示.

典型隧道模式通信

  • 就端点而言,它们具有直接的传输层连接.来自转发到网关的一个系统的数据报被封装,然后转发到远程网关.远程关联网关解封数据并将其转发到内部网络上的目标端点.

  • 使用IPsec,可以在之间建立隧道模式网关和个人终端系统.

隧道模式使用IPsec

IPsec协议

IPsec使用安全协议提供所需的安全服务.这些协议是IPsec操作的核心,其他所有协议都旨在支持IPsec中的这些协议.

通信实体之间的安全关联由所使用的安全协议建立和维护.

IPsec定义了两种安全协议 - 身份验证标头(AH)和封装安全负载(ESP).

身份验证标头

AH协议提供数据完整性和源身份验证服务.它可选择满足消息重放的阻力.但是,它不提供任何形式的机密性.

AH是一种通过添加标头来提供数据报全部或部分内容认证的协议.标头是根据数据报中的值计算的.数据报的哪些部分用于计算,以及放置标题的位置取决于模式协作(隧道或传输).

AH协议的操作非常简单.它可以被认为类似于用于计算校验和或执行CRC检查以进行错误检测的算法.

AH背后的概念是相同的,除了不使用简单的算法,AH使用特殊散列算法和只有通信方知道的密钥.设置两个设备之间的安全关联,指定这些细节.

AH的过程经历以下阶段.

  • 当从上层协议栈收到IP数据包时,IPsec根据数据包中的可用信息确定相关的安全关联(SA);例如,IP地址(源和目的地).

  • 从SA中,一旦识别出安全协议为AH,就会计算AH头的参数. AH标题包含以下参数 :

身份验证标头

  • 标头字段指定AH标头后的数据包协议.序列参数索引(SPI)从通信方之间存在的SA获得.

  • 计算并插入序列号.这些数字为AH提供了可选的抵御重放攻击的能力.

  • 根据通信模式,验证数据的计算方式不同.

  • 在传输模式下,验证数据的计算和最终IP数据包的汇编如下图所示.在原始IP头中,仅在协议编号51中进行更改以指示AH的应用.

Ip Packet Transmission1

  • 在隧道模式下,上述过程如图所示进行下图.

Ip Packet Transmission2

封装安全协议(ESP)

ESP提供安全服务,例如机密性,完整性,原始身份验证和可选的重放阻力.提供的服务集取决于安全关联(SA)建立时选择的选项.

在ESP中,用于加密和生成验证器的算法由用于创建验证器的属性决定. SA.

ESP的过程如下.前两个步骤类似于上述AH的过程.

  • 一旦确定涉及ESP,计算ESP数据包的字段. ESP场布置如下图所示.

ESP Field Arrangement

  • 传输模式下的加密和身份验证过程如下图所示.

传输模式加密认证

  • 如果是隧道模式,加密和身份验证过程如下图所示.


'IMG SRC = "Content/IMG/教程/NETWORK_SECURITY/tunnel_mode_encryption_authentication.jpg" ALT = "隧道模式加密认证"/>

虽然认证和机密性是由ESP提供的主服务,无论是可选.从技术上讲,我们可以使用NULL加密而无需身份验证但是,在实践中,必须实现两者中的一个才能有效地使用ESP.

基本概念是在需要身份验证和加密时使用ESP,并在需要扩展时使用AH没有加密的身份验证.

IPsec中的安全关联

安全关联(SA)是IPsec通信的基础. SA的功能是 :

  • 在发送数据之前,在发送实体和接收实体之间建立虚拟连接称为"安全关联(SA)".

  • IPsec提供了许多用于执行网络加密和身份验证的选项.每个IPsec连接都可以提供加密,完整性,真实性或所有三种服务.确定安全服务后,两个IPsec对等实体必须准确确定要使用的算法(例如,DES或3DES用于加密; MD5或SHA-1用于完整性).决定算法后,这两个设备必须共享会话密钥.

  • SA是一组上述通信参数,提供两个或多个系统之间的关系.建立一个IPsec会话.

  • SA本质上很简单,因此双向通信需要两个SA.

  • SA由安全协议标头中存在的安全参数索引(SPI)编号标识.

  • 发送和接收实体维护有关SA的状态信息.它类似于TCP端点,它也维护状态信息. IPsec是面向连接的,如TCP.

SA的参数

任何SA都是唯一标识的通过以下三个参数 :

  • 安全参数索引(SPI).

    • 这是分配给SA的32位值.它用于区分终止于同一目的地并使用相同IPsec协议的不同SA.

    • 每个IPsec数据包都带有一个包含SPI字段的头.提供SPI是为了将传入的数据包映射到SA.

    • SPI是由发送方生成的随机数,用于向接收方标识SA./p>

  • 目的地IP地址 : 它可以是终端路由器的IP地址.

  • 安全协议标识符 : 它指示关联是AH还是ESP SA.

以下显示了IPsec通信中涉及的两个路由器之间的SA示例图.

SA参数

安全管理数据库

在IPsec中,有两个数据库控制IPsec数据报的处理.一个是安全关联数据库(SAD),另一个是安全策略数据库(SPD).使用IPsec的每个通信端点应具有逻辑上独立的SAD和SPD.

安全关联数据库

在IPsec通信中,端点在安全关联中保持SA状态数据库(SAD). SAD数据库中的每个SA条目包含九个参数,如下表所示 :

Sr.No.参数&说明
1

序列号计数器

用于出站通信.这是AH或ESP标头中提供的32位序列号.

2

序列号溢出计数器

设置选项标志以防止使用特定SA进一步通信

3

32位防重播窗口

用于确定入站AH或ESP数据包是否为重播

4

SA的生命周期

SA持续有效的时间

5

算法 -  AH

在AH和相关密钥中使用

6

算法 -  ESP验证

用于ESP标题的验证部分

7

算法 -  ESP加密

用于加密ESP及其相关的密钥信息

8

IPsec操作模式

传输或隧道模式

9

路径MTU(PMTU)

任何观察到的路径最大传输单位(以避免碎片)

SAD中的所有SA条目都由三个SA参数编制索引:目标IP地址,安全协议标识符和SPI.

安全策略数据库

SPD用于处理传出的数据包.它有助于决定应该使用哪些SAD条目.如果不存在SAD条目,则使用SPD创建新条目.

任何SPD条目都包含 :

  • 指向SAD中保存的活动SA的指针.

  • 选择器字段 - 来自上层的传入数据包中的字段,用于决定IPsec的应用.选择器可以包括源和目标地址,相关的端口号,应用程序ID,协议等.

传出的IP数据报来自SPD进入特定的SA,获取编码参数.传入的IPsec数据报使用SPI/DEST IP/协议三元组直接到达正确的SA,并从那里提取相关的SAD条目.

SPD还可以指定应绕过IPsec的流量. SPD可以被视为一个数据包过滤器,其中决定的操作是激活SA过程.

摘要

IPsec是一套协议保护网络连接.它是一种复杂的机制,因为它不是直接定义特定的加密算法和认证功能,而是提供了一个框架,允许实现通信双方都同意的任何内容.

身份验证标头(AH)和封装安全负载(ESP)是IPsec使用的两种主要通信协议.虽然AH仅进行身份验证,但ESP可以对通过连接传输的数据进行加密和身份验证.

传输模式在两个端点之间提供安全连接,而无需更改IP头.隧道模式封装整个有效载荷IP数据包.它添加了新的IP头.后者用于形成传统的VPN,因为它在不受信任的Internet上提供虚拟安全隧道.

设置IPsec连接涉及各种加密选择.身份验证通常建立在加密哈希之上,例如MD5或SHA-1.加密算法是常见的DES,3DES,Blowfish和AES.其他算法也是可能的.

两个通信端点都需要知道散列或加密中使用的秘密值.手动密钥需要手动输入两端的秘密值,可能是由某些带外机制传达的,而IKE(Internet密钥交换)是一种在线完成此操作的复杂机制.