📜  网络安全–网络层

📅  最后修改于: 2020-12-06 11:59:34             🧑  作者: Mango


网络层安全控件已被广泛用于保护通信安全,特别是在诸如Internet之类的共享网络上,因为它们可以立即为许多应用程序提供保护,而无需对其进行修改。

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

这些协议大多数都集中在OSI协议栈的较高层,以弥补标准Internet协议固有的安全性不足。尽管这些方法很有价值,但不能轻易地推广到任何应用程序中。例如,SSL是专门为保护HTTP或FTP之类的应用程序而开发的。但是还有其他一些应用程序也需要安全的通信。

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

在本章中,我们将讨论如何使用这套非常流行的协议IPsec在网络层实现安全性。

网络层的安全性

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

Layer Communication Protocols Security Protocols
Application Layer HTTP FTP SMTP PGP. S/MIME, HTTPS
Transport Layer TCP /UDP SSL, TLS, SSH
Network Layer IP IPsec

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

IPsec的功能

  • IPsec并非仅设计为与TCP一起用作传输协议。它适用于UDP以及IP之上的任何其他协议,例如ICMP,OSPF等。

  • IPsec保护提供给IP层的整个数据包,包括高层标头。

  • 由于隐藏了带有端口号的高层头,因此流量分析更加困难。

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

  • IPsec被广泛用于提供网络实体之间的安全通信,也可以提供主机到主机的安全性。

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

安全功能

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

  • 保密

    • 使通信节点可以加密消息。

    • 防止第三方进行窃听。

  • 原始身份验证和数据完整性。

    • 提供保证,接收到的数据包实际上是由数据包头中标识为源的一方发送的。

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

  • 密钥管理。

    • 允许安全地交换密钥。

    • 防止某些类型的安全攻击,例如重放攻击。

虚拟专用网

理想情况下,任何机构都希望拥有自己的专用网络进行通信以确保安全。但是,在地理位置分散的区域上建立和维护这种专用网络可能会非常昂贵。它将需要管理通信链路,路由器,DNS等的复杂基础架构。

IPsec为此类机构提供了一种实现虚拟专用网(VPN)的简便机制。 VPN技术允许通过在进入公共Internet之前对通信进行加密并在逻辑上将其与其他通信分开来通过公共Internet发送机构的办公室间通信。下图显示了VPN的简化工作-

虚拟专用网

IPsec概述

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

起源

在1990年代初期,很少有机构使用Internet,主要用于学术目的。但是在随后的几十年中,由于网络的扩展以及一些组织将其用于通信和其他目的,Internet的发展呈指数级增长。

随着Internet的迅猛发展,再加上TCP / IP协议固有的安全性弱点,人们迫切需要一种可以在Internet上提供网络安全性的技术。 Internet体系结构委员会(IAB)在1994年发布了一份题为“ Internet体系结构中的安全性”的报告。该报告确定了安全机制的关键领域。

IAB将身份验证和加密作为下一代IP IPv6中的基本安全功能。幸运的是,定义了这些安全功能,以便可以使用当前的IPv4和未来的IPv6来实现它们。

IPsec安全框架已在多个“注释请求”(RFC)中定义。一些RFC指定协议的某些部分,而另一些则从整体上解决该解决方案。

IPsec内的操作

当统一执行IPsec套件时,可以认为它具有两个单独的操作,从而提供了完整的安全服务集。这两个操作是IPsec通信和Internet密钥交换。

  • IPsec通信

    • 它通常与标准IPsec功能关联。它涉及封装,加密和对IP数据报进行哈希处理以及处理所有数据包过程。

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

    • 它使用安全协议,例如身份验证标头(AH)和封装的SP(ESP)。

    • IPsec通信不参与密钥的创建或管理。

    • IPsec通信操作本身通常称为IPsec。

  • 互联网密钥交换(IKE)

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

    • 从技术上讲,密钥管理对于IPsec通信不是必需的,并且可以手动管理密钥。但是,手动密钥管理对于大型网络是不希望的。

    • IKE负责为IPsec创建密钥,并在密钥建立过程中提供身份验证。尽管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数据包传输1

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

ip数据包传输2

封装安全协议(ESP)

ESP提供安全性服务,例如机密性,完整性,原始身份验证和可选的抗重放性。提供的服务集取决于在建立安全协会(SA)时选择的选项。

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

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

  • 一旦确定涉及ESP,就计算ESP分组的字段。下图描述了ESP现场布置。

ESP现场安排

  • 下图描述了传输模式下的加密和身份验证过程。

传输模式加密身份验证

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

隧道模式加密认证

尽管身份验证和机密性是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。

  • 目的IP地址-它可以是终端路由器的IP地址。

  • 安全协议标识符-指示关联是AH还是ESP SA。

下图显示了两个参与IPsec通信的路由器之间的SA示例。

SA参数

安全管理数据库

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

安全关联数据库

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

Sr.No. Parameters & Description
1

Sequence Number Counter

For outbound communications. This is the 32-bit sequence number provided in the AH or ESP headers.

2

Sequence Number Overflow Counter

Sets an option flag to prevent further communications utilizing the specific SA

3

32-bit anti-replay window

Used to determine whether an inbound AH or ESP packet is a replay

4

Lifetime of the SA

Time till SA remain active

5

Algorithm – AH

Used in the AH and the associated key

6

Algorithm – ESP Auth

Used in the authenticating portion of the ESP header

7

Algorithm – ESP Encryption

Used in the encryption of the ESP and its associated key information

8

IPsec mode of operation

Transport or tunnel mode

9

Path MTU(PMTU)

Any observed path maximum transmission unit (to avoid fragmentation)

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密钥交换)是一种用于在线进行此操作的复杂机制。