网络安全 - 快速指南



网络安全 – 概述

在这个现代时代,组织机构极大地依赖计算机网络以高效且富有成效的方式在整个组织内共享信息。组织的计算机网络现在正变得越来越庞大和普遍。假设每位员工都有一台专用工作站,那么一家大型公司将拥有数千台工作站和许多网络服务器。

这些工作站可能无法集中管理,也可能没有周界保护。它们可能具有各种操作系统、硬件、软件和协议,用户的网络安全意识水平也各不相同。现在想象一下,公司网络上的数千台工作站直接连接到互联网。这种不安全的网络成为攻击目标,其中包含有价值的信息并显示出漏洞。

在本章中,我们将描述网络的主要漏洞以及网络安全的重要性。在后续章节中,我们将讨论实现这些目标的方法。

物理网络

网络定义为两个或多个连接在一起以高效共享资源的计算设备。此外,将两个或多个网络连接在一起称为**互联网络**。因此,互联网只是一个互联网络——一系列互连的网络。

为了建立其内部网络,组织机构有多种选择。它可以使用有线网络或无线网络连接所有工作站。如今,组织机构大多使用有线和无线网络的组合。

有线和无线网络

在有线网络中,设备使用电缆彼此连接。通常,有线网络基于以太网协议,其中设备使用非屏蔽双绞线 (UTP) 电缆连接到不同的交换机。这些交换机进一步连接到网络路由器以访问互联网。

在无线网络中,设备通过无线电传输连接到接入点。接入点进一步通过电缆连接到交换机/路由器以访问外部网络。

Wired and Wireless Networks

由于无线网络提供的移动性,无线网络越来越受欢迎。移动设备无需连接电缆,可以在无线网络范围内自由漫游。这确保了高效的信息共享并提高了生产力。

漏洞和攻击

有线和无线网络中都存在常见的漏洞,即对网络的“未授权访问”。攻击者可以通过不安全的集线器/交换机端口将他的设备连接到网络。在这方面,无线网络被认为不如有线网络安全,因为无线网络可以很容易地被访问,而无需任何物理连接。

访问后,攻击者可以利用此漏洞发起以下攻击:

  • 嗅探数据包数据以窃取有价值的信息。

  • 通过向网络介质发送虚假数据包来拒绝网络上合法用户的服务。

  • 欺骗合法主机的物理标识 (MAC),然后窃取数据或进一步发起“中间人”攻击。

网络协议

网络协议是一组规则,用于管理连接到网络上的设备之间的通信。它们包括建立连接的机制,以及用于格式化发送和接收消息的数据包的格式规则。

已经开发出几种计算机网络协议,每种协议都设计用于特定目的。流行且广泛使用的协议是 TCP/IP 及其相关的更高层和更低层协议。

TCP/IP 协议

**传输控制协议** (TCP) 和**互联网协议** (IP) 是两种不同的计算机网络协议,通常一起使用。由于它们很流行且被广泛采用,因此它们内置于所有联网设备的操作系统中。

在 OSI 模型中,IP 对应于网络层(第 3 层),而 TCP 对应于传输层(第 4 层)。TCP/IP 应用于使用 TCP 传输在 IP 网络上传输数据的网络通信。

TCP/IP 协议通常与其他协议一起使用,例如应用层的 HTTP、FTP、SSH 和数据链路/物理层的以太网。

TCP/IP Protocol

TCP/IP 协议套件于 1980 年创建,作为一种互联网络解决方案,很少考虑安全方面。

它是为受限信任网络中的通信而开发的。然而,一段时间后,该协议成为不安全互联网通信的事实上的标准。

TCP/IP 协议套件的一些常见安全漏洞包括:

  • HTTP 是 TCP/IP 套件中的应用层协议,用于传输构成网页的从 Web 服务器的文件。这些传输以纯文本形式完成,入侵者可以轻松读取服务器和客户端之间交换的数据包。

  • 另一个 HTTP 漏洞是在会话初始化期间客户端和 Web 服务器之间的弱身份验证。此漏洞可能导致会话劫持攻击,其中攻击者窃取合法用户的 HTTP 会话。

  • TCP 协议的漏洞是用于连接建立的三次握手。攻击者可以发起拒绝服务攻击“SYN泛洪”来利用此漏洞。他通过不完成握手来建立许多半打开的会话。这会导致服务器过载并最终崩溃。

  • IP 层容易受到许多漏洞的影响。通过修改 IP 协议标头,攻击者可以发起 IP 欺骗攻击。

除了上述提到的之外,TCP/IP 协议族中还存在许多其他安全漏洞,无论是在设计中还是在实现中。

顺便提一句,在基于 TCP/IP 的网络通信中,如果一层被黑客入侵,其他层不会意识到黑客攻击,整个通信都会受到损害。因此,需要在每一层都采用安全控制措施,以确保万无一失的安全。

DNS 协议

**域名系统** (DNS) 用于将主机域名解析为 IP 地址。网络用户主要在通过在 Web 浏览器中键入 URL 浏览互联网时依赖 DNS 功能。

在对 DNS 的攻击中,攻击者的目标是修改合法的 DNS 记录,使其解析到不正确的 IP 地址。它可以将该 IP 的所有流量定向到错误的计算机。攻击者可以利用 DNS 协议漏洞或破坏 DNS 服务器来实现攻击。

**DNS 缓存投毒**是一种利用 DNS 协议中发现的漏洞的攻击。攻击者可以通过伪造对解析器发送到权威服务器的递归 DNS 查询的响应来毒害缓存。一旦 DNS 解析器的缓存被毒害,主机将被定向到恶意网站,并且可能通过与该网站的通信来泄露凭据信息。

DNS Protocol

ICMP 协议

**互联网控制报文协议** (ICMP) 是 TCP/IP 网络的基本网络管理协议。它用于发送有关联网设备状态的错误和控制消息。

ICMP 是 IP 网络实现的组成部分,因此存在于每个网络设置中。ICMP 有其自身的漏洞,并且可能被滥用来对网络发起攻击。

由于 ICMP 漏洞,可能在网络上发生的常见攻击包括:

  • ICMP 允许攻击者进行网络侦察,以确定网络拓扑和进入网络的路径。ICMP 扫描涉及发现目标网络中所有处于活动状态的主机 IP 地址。

  • Traceroute 是一种流行的 ICMP 实用程序,用于通过描述从客户端到远程主机的实时路径来映射目标网络。

  • 攻击者可以使用 ICMP 漏洞发起拒绝服务攻击。此攻击涉及向目标设备发送超过 65,535 字节的 IPMP ping 数据包。目标计算机无法正确处理此数据包,并可能导致操作系统崩溃。

其他协议(如 ARP、DHCP、SMTP 等)也存在其漏洞,攻击者可以利用这些漏洞来破坏网络安全。我们将在后面的章节中讨论其中一些漏洞。

在协议的设计和实现过程中,对安全方面的关注最少,这已成为网络安全威胁的主要原因。

网络安全目标

如前几节所述,网络中存在大量漏洞。因此,在传输过程中,数据极易受到攻击。攻击者可以攻击通信信道,获取数据,并读取相同的数据或重新插入虚假消息以实现其邪恶目的。

网络安全不仅关注通信链两端每台计算机的安全;它旨在确保整个网络安全。

网络安全包括保护网络和数据的可用性、可靠性、完整性和安全性。有效的网络安全可以阻止各种威胁进入或传播到网络。

网络安全的主要目标是机密性、完整性和可用性。网络安全的这三个支柱通常表示为**CIA 三角形**。

  • **机密性** - 机密性的功能是保护宝贵的业务数据免受未经授权的人员的侵害。网络安全的机密性部分确保数据仅供预期和授权人员使用。

  • **完整性** - 此目标意味着维护和保证数据的准确性和一致性。完整性的功能是确保数据可靠且未被未经授权的人员更改。

  • **可用性** - 网络安全中可用性的功能是确保数据、网络资源/服务始终可供合法用户使用,无论何时需要。

实现网络安全

确保网络安全似乎非常简单。要实现的目标似乎很简单。但实际上,用于实现这些目标的机制非常复杂,理解它们需要合理的推理。

**国际电信联盟** (ITU) 在其关于安全架构 X.800 的建议中,定义了某些机制,以使实现网络安全的方法标准化。其中一些机制包括:

  • **加密** - 此机制通过将数据转换为未经授权人员无法读取的形式来提供数据机密性服务。此机制使用加密-解密算法和密钥。

  • **数字签名** - 此机制是电子数据中普通签名的电子等效物。它提供数据的真实性。

  • **访问控制** - 此机制用于提供访问控制服务。这些机制可以使用实体的身份验证来确定和强制执行实体的访问权限。

在开发和确定实现网络安全的各种安全机制后,必须确定在何处应用它们;物理上(在什么位置)和逻辑上(在 TCP/IP 等架构的什么层)。

网络层中的安全机制

一些安全机制的开发方式使其能够在OSI网络分层模型的特定层上运行。

  • 应用层安全 - 此层使用的安全措施是特定于应用程序的。不同的应用程序需要单独的安全措施。为了确保应用层安全,需要修改应用程序。

    设计密码学上安全的应用层协议非常困难,而正确地实现它则更具挑战性。因此,用于保护网络通信的应用层安全机制最好仅采用已使用一段时间且符合标准的解决方案。

    应用层安全协议的一个例子是安全多用途互联网邮件扩展(S/MIME),它通常用于加密电子邮件。DNSSEC是此层中另一个用于安全交换DNS查询消息的协议。

  • 传输层安全 - 此层安全措施可用于保护两个主机之间单个通信会话中的数据。传输层安全协议最常见的用途是保护HTTP和FTP会话流量。传输层安全协议(TLS)和安全套接字层协议(SSL)是为此目的最常用的协议。

  • 网络层 - 此层安全措施可以应用于所有应用程序;因此,它们不是特定于应用程序的。两个主机或网络之间的所有网络通信都可以在此层进行保护,而无需修改任何应用程序。在某些环境中,网络层安全协议(如互联网协议安全协议(IPsec))由于难以向各个应用程序添加控制而提供了比传输层或应用层控制更好的解决方案。但是,此层中的安全协议提供的通信灵活性可能无法满足某些应用程序的要求。

顺便提一下,设计在较高级别运行的安全机制无法保护较低级别的数据,因为较低级别执行较高级别不知道的功能。因此,可能需要部署多个安全机制来增强网络安全。

在本教程的后续章节中,我们将讨论在OSI网络体系结构的不同层中采用的安全机制,以实现网络安全。

网络安全 – 应用层

现在,各种商业服务通过客户端-服务器应用程序在线提供。最流行的形式是网络应用程序和电子邮件。

在使用任何服务器应用程序的服务时,客户端和服务器会在底层内网或互联网上交换大量信息。我们意识到这些信息交易容易受到各种攻击。

网络安全需要在数据在网络上传输过程中保护数据免受攻击。为了实现此目标,已经设计了许多实时安全协议。此类协议至少需要实现以下主要目标:

  • 各方可以交互式地协商以相互验证身份。
  • 在网络上交换信息之前建立一个秘密会话密钥。
  • 以加密形式交换信息。

有趣的是,这些协议在网络模型的不同层工作。例如,S/MIME协议在应用层工作,SSL协议在传输层工作,IPsec协议在网络层工作。

Application Layer

本章将讨论实现电子邮件通信安全和相关安全协议的不同过程。随后将介绍保护DNS的方法。在后面的章节中,将描述实现网络安全的协议。

电子邮件安全

如今,电子邮件已成为非常广泛使用的网络应用程序。在了解电子邮件安全协议之前,让我们简要讨论一下电子邮件基础设施。

电子邮件基础设施

发送电子邮件最简单的方法是直接从发送方的机器发送消息到接收方的机器。在这种情况下,这两台机器必须同时运行在网络上。但是,由于用户可能会偶尔将他们的机器连接到网络,因此此设置不切实际。

因此,出现了建立电子邮件服务器的概念。在此设置中,邮件发送到永久可用于网络的邮件服务器。当接收方的机器连接到网络时,它会从邮件服务器读取邮件。

通常,电子邮件基础设施由邮件服务器网状网络组成,也称为邮件传输代理(MTA)和运行包含用户代理(UA)和本地MTA的电子邮件程序的客户端机器。

通常,电子邮件会从其UA转发,通过MTA网状网络,最终到达接收方机器上的UA。

E-mail Infrastructure

用于电子邮件的协议如下:

  • 简单邮件传输协议(SMTP)用于转发电子邮件。

  • 邮局协议(POP)和互联网消息访问协议(IMAP)用于接收方从服务器检索邮件。

MIME

基本的互联网电子邮件标准编写于1982年,它描述了在互联网上交换的电子邮件的格式。它主要支持用基本罗马字母书写的电子邮件。

到1992年,人们感到需要改进它。因此,定义了另一个标准多用途互联网邮件扩展(MIME)。它是对基本互联网电子邮件标准的一组扩展。MIME提供了使用除基本罗马字母以外的其他字符(例如俄语使用的西里尔字母)、希腊字母甚至汉字等表意文字发送电子邮件的能力。

MIME满足的另一个需求是发送非文本内容,例如图像或视频剪辑。由于这些功能,MIME标准与SMTP一起被广泛用于电子邮件通信。

电子邮件安全服务

电子邮件通信在重要和关键交易中的日益广泛使用,要求提供某些基本安全服务,如下所示:

  • 机密性 - 除预期收件人外,任何人都不得阅读电子邮件。

  • 身份验证 - 电子邮件收件人可以确定发送方的身份。

  • 完整性 - 向收件人保证自发送方传输电子邮件以来,邮件未被更改。

  • 不可否认性 - 电子邮件收件人能够向第三方证明发送方确实发送了邮件。

  • 提交证明 - 电子邮件发送方获得邮件已交付给邮件递送系统的确认。

  • 送达证明 - 发送方收到收件人已收到邮件的确认。

隐私、身份验证、消息完整性和不可否认性等安全服务通常使用公钥加密来提供。

通常,有三种不同的电子邮件通信场景。我们将讨论在这些场景中实现上述安全服务的方法。

一对一电子邮件

在这种情况下,发送方仅向一个收件人发送电子邮件。通常,通信中涉及的MTA不超过两个。

One-to-One E-mail

假设发送方想要向收件人发送机密电子邮件。在这种情况下,隐私的提供如下实现:

  • 发送方和接收方分别拥有私钥-公钥对 (SPVT, SPUB) 和 (RPVT, RPUB)。

  • 发送方生成一个用于加密的秘密对称密钥 KS。虽然发送方可以使用 RPUB 进行加密,但使用对称密钥可以实现更快的加密和解密。

  • 发送方使用密钥 KS 加密邮件,并使用接收方的公钥 RPUB 加密 KS

  • 发送方将加密的邮件和加密的 KS 发送给接收方。

  • 接收方首先使用其私钥 RPVT 解密编码的 KS,获得 KS

  • 然后,接收方使用对称密钥 KS 解密邮件。

Confidential E-mail

如果在此场景中还需要消息完整性、身份验证和不可否认性服务,则将以下步骤添加到上述过程中。

  • 发送方生成邮件的哈希值,并使用其私钥 SPVT 对此哈希值进行数字签名。

  • 发送方将此签名哈希值与其他组件一起发送给接收方。

Message Integrity Authentication and Non-repudiation
  • 接收方使用公钥 SPUB 并提取在发送方签名下接收的哈希值。

  • 然后,接收方对解密的邮件进行哈希运算,然后比较这两个哈希值。如果它们匹配,则认为消息完整性已实现。

  • 此外,接收方可以确定邮件是由发送方发送的(身份验证)。最后,发送方不能否认他没有发送邮件(不可否认性)。

一对多收件人电子邮件

在这种情况下,发送方向两个或多个收件人发送电子邮件。此列表由发送方的电子邮件程序(UA + 本地MTA)管理。所有收件人都收到相同的消息。

One-to-Multiple Recipients E-mail

假设发送方想要向许多收件人(例如 R1、R2 和 R3)发送机密电子邮件。在这种情况下,隐私的提供如下实现:

  • 发送方和所有收件人都有自己的一对私钥-公钥。

  • 发送方生成一个秘密对称密钥 Ks,并使用此密钥加密邮件。

  • 然后,发送方使用 R1、R2 和 R3 的公钥多次加密 KS,得到 R1PUB(KS)、R2PUB(KS) 和 R3PUB(KS)。

  • 发送方将加密的邮件和相应的加密 KS 发送给收件人。例如,收件人 1 (R1) 收到加密的邮件和 R1PUB(KS)。

  • 每个收件人首先使用其私钥解密编码的 KS,提取密钥 KS

  • 然后,每个收件人使用对称密钥 KS 解密邮件。

为了提供消息完整性、身份验证和不可否认性,遵循的步骤与上述一对一电子邮件场景中提到的步骤类似。

一对分发列表电子邮件

在这种情况下,发送方向两个或多个收件人发送电子邮件,但收件人列表不是由发送方本地管理的。通常,电子邮件服务器(MTA)维护邮件列表。

发送方向管理邮件列表的MTA发送邮件,然后邮件由MTA分解到列表中的所有收件人。

One-to-Distribution List E-mail

在这种情况下,当发送方想要向邮件列表的收件人(例如 R1、R2 和 R3)发送机密电子邮件时;隐私的确保如下:

  • 发送方和所有收件人都有自己的一对私钥-公钥。爆炸服务器为其维护的每个邮件列表都有一对私钥-公钥 (ListPUB, ListPVT)。

  • 发送方生成一个秘密对称密钥 Ks,然后使用此密钥加密邮件。

  • 发送方然后使用与列表关联的公钥加密 KS,得到 ListPUB(KS)。

  • 发送方发送加密的邮件和 ListPUB(KS)。爆炸MTA 使用 ListPVT 解密 ListPUB(KS) 并获得 KS

  • 爆炸器使用与列表中成员一样多的公钥加密 KS

  • 爆炸器将收到的加密邮件和相应的加密 KS 转发给列表中的所有收件人。例如,爆炸器将加密邮件和 R1PUB(KS) 转发给收件人 1,依此类推。

Encrypted Message

为了提供消息完整性、身份验证和不可否认性,遵循的步骤与一对一电子邮件的情况类似。

有趣的是,采用上述安全方法来保护电子邮件的电子邮件程序预计适用于上述所有可能的场景。上述大多数用于电子邮件的安全机制都由两种流行的方案提供,即 Pretty Good Privacy (PGP) 和 S/MIME。我们将在以下部分讨论两者。

PGP

优良隐私 (PGP) 是一种电子邮件加密方案。它已成为提供电子邮件通信安全服务的实际标准。

如上所述,它使用公钥密码学、对称密钥密码学、哈希函数和数字签名。它提供:

  • 隐私
  • 发件人身份验证
  • 消息完整性
  • 不可否认性

除了这些安全服务外,它还提供数据压缩和密钥管理支持。PGP 使用现有的加密算法,例如 RSA、IDEA、MD5 等,而不是发明新的算法。

PGP 的工作原理

Working of PGP
  • 计算消息的哈希值。(MD5 算法)

  • 使用发件人的私钥(RSA 算法)对生成的 128 位哈希值进行签名。

  • 将数字签名与消息连接起来,然后压缩结果。

  • 生成一个 128 位对称密钥 KS,并使用 IDEA 加密压缩后的消息。

  • 使用接收者的公钥和 RSA 算法加密 KS,并将结果附加到加密的消息中。

PGP 消息的格式如下图所示。ID 指示用于加密 KS 的密钥以及用于验证哈希签名密钥。

PGP Message Format

在 PGP 方案中,消息先签名和加密,然后在传输前进行 MIME 编码。

PGP 证书

PGP 密钥证书通常通过信任链建立。例如,A 的公钥由 B 使用其公钥签名,B 的公钥由 C 使用其公钥签名。随着此过程的进行,它建立了一个信任网。

在 PGP 环境中,任何用户都可以充当认证机构。任何 PGP 用户都可以认证其他 PGP 用户的公钥。但是,只有当用户将认证者识别为可信赖的介绍者时,此类证书才对其他用户有效。

这种认证方法存在一些问题。可能难以找到从已知且可信的公钥到所需密钥的链。此外,可能存在多个链,这些链可以指向所需用户的不同密钥。

PGP 也可以使用具有认证机构的 PKI 基础设施,并且公钥可以由 CA(X.509 证书)认证。

S/MIME

S/MIME 代表安全多用途互联网邮件扩展。S/MIME 是一种安全的电子邮件标准。它基于早期的非安全电子邮件标准 MIME。

S/MIME 的工作原理

S/MIME 的方法类似于 PGP。它还使用公钥密码学、对称密钥密码学、哈希函数和数字签名。它为电子邮件通信提供与 PGP 相似的安全服务。

S/MIME 中最常用的对称密码是 RC2 和 TripleDES。通常的公钥方法是 RSA,哈希算法是 SHA-1 或 MD5。

S/MIME 指定附加的 MIME 类型,例如“application/pkcs7-mime”,用于加密后的数据封装。整个 MIME 实体都被加密并打包到一个对象中。S/MIME 具有标准化的加密消息格式(与 PGP 不同)。实际上,MIME 通过一些关键字进行扩展,以识别消息中加密和/或签名的部分。

S/MIME 依赖于 X.509 证书进行公钥分发。它需要自上而下的分层 PKI 来支持认证。

S/MIME 的适用性

由于需要认证机构颁发的证书才能实现,并非所有用户都能利用 S/MIME,因为有些人可能希望使用公钥/私钥对加密消息。例如,无需证书的参与或管理开销。

实际上,尽管大多数电子邮件应用程序都实现了 S/MIME,但证书注册过程很复杂。相反,PGP 支持通常需要添加一个插件,并且该插件包含管理密钥所需的一切。信任网实际上并没有使用。人们通过其他媒介交换他们的公钥。一旦获得,他们就会保留通常与之交换电子邮件的人的公钥副本。

PGP 和 S/MIME 方案在网络体系结构中的实现层如下图所示。这两种方案都为电子邮件通信提供应用程序级安全性。

Employability of S/MIME

根据环境的不同,使用 PGP 或 S/MIME 之一。受限网络中的安全电子邮件通信可以通过适应 PGP 来提供。对于互联网上的电子邮件安全,邮件经常与新的未知用户交换,S/MIME 被认为是一个不错的选择。

DNS 安全性

在第一章中,我们提到攻击者可以使用 DNS 缓存中毒对目标用户进行攻击。域名系统安全扩展 (DNSSEC) 是一种可以挫败此类攻击的互联网标准。

标准 DNS 的漏洞

在标准 DNS 方案中,每当用户想要连接到任何域名时,他的计算机都会联系 DNS 服务器并查找该域名关联的 IP 地址。一旦获得 IP 地址,计算机就会连接到该 IP 地址。

在此方案中,根本没有涉及任何验证过程。计算机向其 DNS 服务器请求与网站关联的地址,DNS 服务器会响应一个 IP 地址,您的计算机毫无疑问地将其接受为合法响应并连接到该网站。

DNS 查找实际上会分几个阶段进行。例如,当计算机请求“www.tutorialspoint.com”时,DNS 查找会分几个阶段进行:

  • 计算机首先询问本地 DNS 服务器(ISP 提供)。如果 ISP 的缓存中包含此名称,则它会响应,否则会将查询转发到“根区域目录”,在那里它可以找到“.com”和根区域回复。

  • 根据回复,计算机然后询问“.com”目录,在那里它可以找到“tutorialspoint.com”。

  • 根据接收到的信息,计算机查询“tutorialspoint.com”,在那里它可以找到 www.tutorialspoint.com。

Standard DNS Vulnerability

DNSSEC 定义

使用 DNSSEC 执行的 DNS 查找涉及响应实体对回复进行签名。DNSSEC 基于公钥密码学。

在 DNSSEC 标准中,每个 DNS 区域都有一对公钥/私钥。DNS 服务器发送的所有信息都使用源区域的私钥签名,以确保真实性。DNS 客户端需要知道区域的公钥才能检查签名。客户端可以预先配置所有顶级域或根 DNS 的公钥。

使用 DNSSEC,查找过程如下:

  • 当您的计算机去询问根区域在哪里可以找到 .com 时,回复由根区域服务器签名。

  • 计算机检查根区域的签名密钥并确认它是具有真实信息的合法根区域。

  • 在回复中,根区域提供有关 .com 区域服务器的签名密钥及其位置的信息,允许计算机联系 .com 目录并确保它是合法的。

  • 然后,.com 目录提供 tutorialspoint.com 的签名密钥和信息,允许它联系 google.com 并验证您已连接到真实的 tutorialspoint.com,正如上面的区域所确认的那样。

  • 发送的信息采用资源记录集 (RRSets) 的形式。顶级“.com”服务器中“tutorialspoint.com”域的 RRSet 示例如下表所示。

域名 生存时间 类型
tutorialspoint.com 86400 NS dns.tutorialspoint.com
dns.tutorialspoint.com 86400 A 36..1.2.3
tutorialspoint.com 86400 KEY 3682793A7B73F731029CE2737D...
tutorialspoint.com 86400 SIG 86947503A8B848F5272E53930C...
  • KEY 记录是“tutorialspoint.com”的公钥。

  • SIG 记录是顶级 .com 服务器对 NS、A 和 KEY 记录字段的签名哈希,用于验证其真实性。其值为 Kcompvt(H(NS,A,KEY))。

因此,认为当 DNSSEC 完全推出时,用户的计算机能够确认 DNS 响应是合法和真实的,并避免通过 DNS 缓存中毒发起的 DNS 攻击。

总结

保护电子邮件的过程确保了通信的端到端安全。它提供机密性、发件人身份验证、消息完整性和不可否认性等安全服务。

已经开发出两种电子邮件安全方案:PGP 和 S/MIME。这两种方案都使用秘密密钥和公钥密码学。

标准 DNS 查找容易受到 DNS 欺骗/缓存中毒等攻击。通过使用采用公钥密码学的 DNSSEC,可以确保 DNS 查找的安全。

在本章中,我们讨论了在应用层使用的机制,以提供端到端通信的网络安全。

网络安全 – 传输层

网络安全包括保护数据在网络上传输时的安全。为了实现这一目标,已经设计了许多实时安全协议。实时网络安全协议有一些流行的标准,例如 S/MIME、SSL/TLS、SSH 和 IPsec。如前所述,这些协议在网络模型的不同层工作。

在上一章中,我们讨论了一些旨在提供应用层安全的流行协议。在本章中,我们将讨论在传输层实现网络安全以及相关的安全协议的过程。

对于基于 TCP/IP 协议的网络,物理层和数据链路层通常在用户终端和网卡硬件中实现。TCP 和 IP 层在操作系统中实现。TCP/IP 之上的任何内容都作为用户进程实现。

传输层安全的需求

让我们讨论一个典型的基于互联网的商业交易。

Bob 访问 Alice 的商品销售网站。在网站上的表单中,Bob 输入所需的商品类型和数量、他的地址和支付卡详细信息。Bob 点击提交并等待商品交付,并从他的账户中扣除价格金额。所有这一切听起来都不错,但在没有网络安全的情况下,Bob 可能会遇到一些意外。

  • 如果交易没有使用机密性(加密),攻击者可以获取他的支付卡信息。然后,攻击者可以以 Bob 的名义进行购买。

  • 如果没有使用数据完整性措施,攻击者可能会修改 Bob 的订单,包括商品类型或数量。

  • 最后,如果没有使用服务器身份验证,服务器可能会显示 Alice 著名的徽标,但该站点可能是攻击者维护的恶意站点,该攻击者伪装成 Alice。收到 Bob 的订单后,他可能会拿走 Bob 的钱并逃跑。或者他可以通过收集 Bob 的姓名和信用卡详细信息来进行身份盗窃。

传输层安全方案可以通过增强基于 TCP/IP 的网络通信的机密性、数据完整性、服务器身份验证和客户端身份验证来解决这些问题。

此层的安全性主要用于保护网络上基于 HTTP 的 Web 事务的安全。但是,任何在 TCP 上运行的应用程序都可以使用它。

TLS 设计理念

传输层安全 (TLS) 协议在 TCP 层之上运行。这些协议的设计使用流行的 TCP 应用程序编程接口 (API),称为“套接字”,用于与 TCP 层接口。

应用程序现在与传输安全层而不是直接与 TCP 接口。传输安全层提供了一个简单的套接字 API,它与 TCP 的 API 类似且类似。

Philosophy of TLS Design

在上图中,虽然 TLS 从技术上位于应用层和传输层之间,但从常见的角度来看,它是一个传输协议,充当增强了安全服务的 TCP 层。

TLS 旨在运行在可靠的第 4 层协议 TCP 之上(而不是 UDP 协议),这使得 TLS 的设计更加简单,因为它不必担心“超时”和“重传丢失的数据”。TCP 层继续像往常一样执行此操作,满足了 TLS 的需求。

为什么 TLS 受欢迎?

在传输层使用安全性的流行原因是其简单性。在这一层实现安全性无需更改操作系统中实现的 TCP/IP 协议。只需要设计/修改用户进程和应用程序,这相对不太复杂。

安全套接字层 (SSL)

在本节中,我们将讨论为 TLS 设计的协议族。该协议族包括 SSL 版本 2 和 3 以及 TLS 协议。SSLv2 现已被 SSLv3 取代,因此我们将重点关注 SSL v3 和 TLS。

SSL 的简史

1995 年,Netscape 开发了 SSLv2 并将其用于 Netscape Navigator 1.1。SSL 版本 1 从未发布和使用。后来,微软在 SSLv2 的基础上进行了改进,并引入了另一个类似的协议,称为私有通信技术 (PCT)。

Netscape 针对 SSLv2 的各种安全问题进行了大幅改进,并在 1999 年部署了 SSLv3。随后,互联网工程任务组 (IETF) 引入了类似的 TLS(传输层安全)协议作为开放标准。TLS 协议与 SSLv3 不互操作。

TLS 修改了用于密钥扩展和身份验证的加密算法。此外,TLS 建议使用开放的 Diffie-Hellman (DH) 加密和数字签名标准 (DSS) 来代替 SSL 中使用的已获专利 RSA 加密。但由于 RSA 专利于 2000 年过期,因此用户没有充分的理由从广泛部署的 SSLv3 转向 TLS。

SSL 的主要特性

SSL 协议的主要特性如下:

  • SSL 通过以下方式提供网络连接安全性:

    • 机密性 - 信息以加密形式交换。

    • 身份验证 - 通信实体通过使用数字证书相互识别。Web 服务器身份验证是强制性的,而客户端身份验证是可选的。

    • 可靠性 - 保持消息完整性检查。

  • SSL 可用于所有 TCP 应用程序。

  • 几乎所有 Web 浏览器都支持。

  • 方便与新的在线实体开展业务。

  • 主要为 Web 电子商务而开发。

SSL 的架构

SSL 特指 TCP,它不适用于 UDP。SSL 为应用程序提供应用程序编程接口 (API)。C 和 Java SSL 库/类已随时可用。

SSL 协议的设计是在应用层和传输层之间互操作,如下图所示:

SSL Architecture

SSL 本身并非图像中描绘的单层协议;实际上,它由两个子层组成。

  • 下层子层包含 SSL 协议的一个组件,称为 SSL 记录协议。此组件提供完整性和机密性服务。

  • 上层子层包含三个与 SSL 相关的协议组件和一个应用程序协议。应用程序组件提供客户端/服务器交互之间的信息传输服务。从技术上讲,它也可以在 SSL 层之上运行。三个与 SSL 相关的协议组件是:

    • SSL 握手协议
    • 更改密码规范协议
    • 警告协议。
  • 这三个协议管理所有 SSL 消息交换,将在本节后面讨论。

SSL Protocol Architecture

SSL 协议组件的功能

SSL 协议的四个子组件处理客户端机器和服务器之间安全通信的各种任务。

  • 记录协议

    • 记录层格式化上层协议消息。

    • 它将数据分成可管理的块(最大长度 16 KB)。它可以选择压缩数据。

    • 加密数据。

    • 为每条消息提供标题,并在末尾提供哈希值(消息验证码 (MAC))。

    • 将格式化的块交给 TCP 层进行传输。

SSL Protocol Functions
  • SSL 握手协议

    • 这是 SSL 最复杂的部分。在传输任何应用程序数据之前都会调用它。它在客户端和服务器之间创建 SSL 会话。

    • 会话的建立涉及服务器身份验证、密钥和算法协商、建立密钥和客户端身份验证(可选)。

    • 会话由一组唯一的加密安全参数标识。

    • 客户端和服务器之间的多个安全 TCP 连接可以共享相同的会话。

    • 握手协议通过四个阶段进行操作。这些将在下一节中讨论。

  • ChangeCipherSpec 协议

    • SSL 协议中最简单的部分。它包含在两个通信实体(客户端和服务器)之间交换的单个消息。

    • 当每个实体发送 ChangeCipherSpec 消息时,它会将其连接的一侧更改为商定的安全状态。

    • 密码参数挂起状态将复制到当前状态。

    • 交换此消息表示所有未来的数据交换都已加密并受到完整性保护。

  • SSL 警告协议

    • 此协议用于报告错误 - 例如意外消息、错误的记录 MAC、安全参数协商失败等。

    • 它也用于其他目的 - 例如通知关闭 TCP 连接、通知收到错误或未知证书等。

SSL 会话的建立

如上所述,SSL 会话建立有四个阶段。这些主要由 SSL 握手协议处理。

阶段 1 - 建立安全功能。

  • 此阶段包括交换两条消息 - Client_helloServer_hello

SSL Session Establishment Phase1
  • Client_hello 包含客户端支持的加密算法列表,按优先级递减的顺序排列。

  • Server_hello 包含所选的密码规范 (CipherSpec) 和新的 session_id

  • CipherSpec 包含以下字段:

    • 密码算法 (DES、3DES、RC2 和 RC4)

    • MAC 算法(基于 MD5、SHA-1)

    • 公钥算法 (RSA)

    • 两条消息都有“随机数”以防止重放攻击。

阶段 2 - 服务器身份验证和密钥交换。

SSL Session Establishment Phase2
  • 服务器发送证书。客户端软件预先配置了各种“受信任”组织 (CA) 的公钥以检查证书。

  • 服务器发送选择的密码套件。

  • 服务器可能会请求客户端证书。通常不会这样做。

  • 服务器指示 Server_hello 结束。

阶段 3 - 客户端身份验证和密钥交换。

SSL Session Establishment Phase3
  • 如果服务器请求,客户端会发送证书。

  • 它还发送使用服务器的公钥加密的主密钥之前密钥 (PMS)。

  • 如果客户端发送证书以证明其拥有与该证书关联的私钥,则客户端还会发送 Certificate_verify 消息。基本上,客户端会对之前的消息进行哈希签名。

阶段 4 - 完成。

SSL Session Establishment Phase4
  • 客户端和服务器互相发送 Change_cipher_spec 消息,以将挂起的密码状态复制到当前状态。

  • 从现在开始,所有数据都将被加密并受到完整性保护。

  • 来自每一端的“完成”消息验证密钥交换和身份验证过程是否成功。

上述所有四个阶段都在 TCP 会话建立过程中发生。SSL 会话建立在 TCP SYN/SYNACK 之后开始,在 TCP Fin 之前结束。

恢复断开的会话

  • 如果客户端使用加密的 session_id 信息向服务器发送 hello_request,则可以恢复断开的会话(通过 Alert 消息)。

  • 然后,服务器确定 session_id 是否有效。如果已验证,它将与客户端交换 ChangeCipherSpec 和 finished 消息,并恢复安全通信。

  • 这避免了重新计算会话密码参数,并节省了服务器和客户端的计算资源。

SSL 会话密钥

我们已经看到,在 SSL 会话建立的阶段 3 中,客户端会发送主密钥之前密钥,该密钥使用服务器的公钥进行加密。主密钥和各种会话密钥的生成如下:

  • 主密钥是使用以下内容生成的(通过伪随机数生成器):

    • 主密钥之前密钥。

    • 在 client_hello 和 server_hello 消息中交换的两个随机数 (RA 和 RB)。

  • 然后从这个主密钥导出六个秘密值,如下所示:

    • 与 MAC 一起使用的密钥(用于服务器发送的数据)

    • 与 MAC 一起使用的密钥(用于客户端发送的数据)

    • 用于加密的密钥和 IV(由服务器使用)

    • 用于加密的密钥和 IV(由客户端使用)

TLS 协议

为了提供 SSL 的开放式互联网标准,IETF 于 1999 年 1 月发布了传输层安全 (TLS) 协议。TLS 在 RFC 5246 中被定义为提议的互联网标准。

主要特性

  • TLS 协议与 SSL 的目标相同。

  • 它使客户端/服务器应用程序能够通过身份验证、防止窃听和抵抗消息修改以安全的方式进行通信。

  • TLS 协议位于网络层堆栈中可靠的面向连接的传输 TCP 层之上。

  • TLS 协议的架构类似于 SSLv3 协议。它有两个子协议:TLS 记录协议和 TLS 握手协议。

  • 尽管 SSLv3 和 TLS 协议具有类似的架构,但在架构和功能上,特别是对于握手协议,都进行了一些更改。

TLS 和 SSL 协议的比较

TLS 和 SSLv3 协议之间主要有八个区别。如下所示:

  • 协议版本 - TLS 协议段的标题带有版本号 3.1,以区别于 SSL 协议段标题所带的数字 3。

  • 消息认证 - TLS 采用带密钥的哈希消息验证码 (H-MAC)。好处是 H-MAC 可以与任何哈希函数一起使用,而不仅仅是 SSL 协议明确规定的 MD5 或 SHA。

  • 会话密钥生成 - TLS 和 SSL 协议在密钥材料生成方面有两个区别。

    • 计算主密钥之前密钥和主密钥的方法是相似的。但在 TLS 协议中,主密钥的计算使用 HMAC 标准和伪随机函数 (PRF) 输出,而不是临时 MAC。

    • 计算会话密钥和初始化向量 (IV) 的算法在 TLS 中与 SSL 协议不同。

  • 警告协议消息 -

    • TLS 协议支持 SSL 的警告协议使用所有消息,除了 无证书 警告消息被认为是多余的。如果不需要客户端身份验证,则客户端会发送空证书。

    • TLS 协议中包含许多其他警告消息,用于其他错误情况,例如 记录溢出、解码错误 等。

  • 支持的密码套件 - SSL 支持 RSA、Diffie-Hellman 和 Fortezza 密码套件。TLS 协议支持所有套件,但 Fortezza 除外。

  • 客户端证书类型 - TLS 定义了在 certificate_request 消息中请求的证书类型。SSLv3 支持所有这些。此外,SSL 还支持某些其他类型的证书,例如 Fortezza。

  • CertificateVerify 和 Finished 消息 -

    • 在 SSL 中,对 certificate_verify 消息使用复杂的消息过程。使用 TLS,已验证的信息本身包含在握手消息中,从而避免了这个复杂的过程。

    • Finished 消息在 TLS 和 SSLv3 中的计算方式不同。

  • 数据的填充 - 在 SSL 协议中,在加密之前添加到用户数据中的填充是使总数据大小等于密码块长度的倍数所需的最小量。在 TLS 中,填充可以是任何导致数据大小为密码块长度倍数的量,最多为 255 字节。

TLS 和 SSLv3 协议之间的上述差异总结在下表中。

TLS Vs SSLv3

安全浏览 - HTTPS

在本节中,我们将讨论使用 SSL/TLS 协议进行安全 Web 浏览。

HTTPS 定义

超文本传输协议 (HTTP) 用于 Web 浏览。HTTPS 的功能与 HTTP 类似,唯一的区别在于 HTTPS 提供“安全”的 Web 浏览。HTTPS 代表 HTTP over SSL。此协议用于在客户端 Web 浏览器和网站服务器之间提供加密和身份验证的连接。

HTTPS Defined

通过 HTTPS 进行安全浏览可确保加密以下内容:

  • 请求的网页的 URL。
  • 服务器向用户客户端提供的网页内容。
  • 用户填写表格的内容。
  • 双向建立的 Cookie。

HTTPS 的工作原理

HTTPS 应用协议通常使用两种流行的传输层安全协议之一 - SSL 或 TLS。安全浏览过程在以下几点中进行了描述。

  • 您通过在浏览器地址栏中输入 https:// 加上 URL 来请求 HTTPS 连接到网页。

  • Web 浏览器启动与 Web 服务器的连接。使用 https 会调用 SSL 协议的使用。

  • 应用程序(在本例中为浏览器)使用系统端口 443 而不是端口 80(在 http 的情况下使用)。

  • SSL 协议会经历一个握手协议来建立安全会话,如前面章节所述。

  • 网站最初会将其 SSL 数字证书发送到您的浏览器。验证证书后,SSL 握手将继续交换会话的共享密钥。

  • 当服务器使用受信任的 SSL 数字证书时,用户会在浏览器地址栏中看到一个挂锁图标。当在网站上安装扩展验证证书时,地址栏会变成绿色。

HTTPS Working
  • 一旦建立,此会话将包含 Web 服务器和浏览器之间许多安全连接。

HTTPS 的使用

  • 使用 HTTPS 为用户提供机密性、服务器身份验证和消息完整性。它使得在互联网上安全地进行电子商务成为可能。

  • 防止数据窃听并拒绝身份盗窃,这是 HTTP 上常见的攻击。

当今的 Web 浏览器和 Web 服务器都配备了 HTTPS 支持。但是,与 HTTP 相比,HTTPS 需要客户端和服务器端更多的计算能力来执行加密和 SSL 握手。

安全 Shell 协议 (SSH)

SSH 的主要特点如下:

  • SSH 是一种运行在 TCP/IP 层之上的网络协议。它旨在替代提供不安全远程登录功能的 TELNET。

  • SSH 提供安全的客户端/服务器通信,可用于文件传输和电子邮件等任务。

  • SSH2 是一种流行的协议,它比早期的 SSH1 提供了改进的网络通信安全性。

SSH 定义

SSH 组织为三个子协议。

SSH Defined
  • 传输层协议 - SSH 协议的这部分提供数据机密性、服务器(主机)身份验证和数据完整性。它也可以选择提供数据压缩。

    • 服务器身份验证 - 主机密钥是非对称的,例如公钥/私钥。服务器使用公钥向客户端证明其身份。客户端验证联系的服务器是其维护的数据库中的“已知”主机。服务器经过身份验证后,将生成会话密钥。

    • 会话密钥建立 - 身份验证后,服务器和客户端商定要使用的密码。会话密钥由客户端和服务器同时生成。会话密钥在用户身份验证之前生成,以便可以加密用户名和密码。这些密钥通常在会话期间定期替换(例如,每小时一次),并在使用后立即销毁。

    • 数据完整性 - SSH 使用消息认证码 (MAC) 算法进行数据完整性检查。这是对 SSH1 使用的 32 位 CRC 的改进。

  • 用户身份验证协议 - SSH 的这部分将用户身份验证到服务器。服务器验证是否只允许授权用户访问。目前使用许多身份验证方法,例如键入密码、Kerberos、公钥身份验证等。

  • 连接协议 - 这在单个底层 SSH 连接上提供多个逻辑通道。

SSH 服务

SSH 提供三种主要服务,可提供许多安全解决方案。这些服务简要描述如下:

  • 安全命令外壳(远程登录) - 它允许用户编辑文件、查看目录内容和访问连接设备上的应用程序。系统管理员可以远程启动/查看/停止服务和进程,创建用户帐户,以及更改文件/目录权限等等。现在可以使用安全远程登录从远程计算机安全地执行机器命令提示符下可行的所有任务。

  • 安全文件传输 - SSH 文件传输协议 (SFTP) 旨在作为 SSH-2 的扩展,用于安全文件传输。从本质上讲,它是在安全 Shell 协议之上分层的一个单独协议,用于处理文件传输。SFTP 加密传输的用户名/密码和文件数据。它使用与安全 Shell 服务器相同的端口,即系统端口号 22。

  • 端口转发(隧道) - 它允许来自不安全的基于 TCP/IP 的应用程序的数据得到保护。设置端口转发后,安全 Shell 会重新路由来自程序(通常是客户端)的流量,并将其通过加密隧道发送到另一端的程序(通常是服务器)。多个应用程序可以通过单个多路复用安全通道传输数据,无需在防火墙或路由器上打开多个端口。

SSH Services

优点和局限性

在传输层采用通信安全性的优点和局限性如下:

  • 优点

    • 传输层安全性对应用程序透明。

    • 服务器已通过身份验证。

    • 应用程序层标头被隐藏。

    • 它比第 3 层(IPsec)的安全机制更细粒度,因为它在传输连接级别工作。

  • 局限性

    • 仅适用于基于 TCP 的应用程序(不适用于 UDP)。

    • TCP/IP 标头是明文的。

    • 适用于客户端和服务器之间的直接通信。不适用于使用服务器链的安全应用程序(例如电子邮件)。

    • SSL 不提供不可否认性,因为客户端身份验证是可选的。

    • 如果需要,需要在 SSL 之上实现客户端身份验证。

总结

在过去的十年中,互联网上出现了大量的 Web 应用程序。许多电子政务和电子商务门户网站已经上线。这些应用程序要求服务器和客户端之间的会话是安全的,提供会话的机密性、身份验证和完整性。

减轻用户会话期间潜在攻击的一种方法是使用安全的通信协议。本章讨论了两种这样的通信协议:安全套接字层 (SSL) 和传输层安全性 (TLS)。这两种协议都在传输层工作。

另一种传输层协议安全 Shell (SSH) 旨在替代 TELNET,提供安全的远程登录功能。它能够提供各种服务,例如安全命令外壳和 SFTP。

使用传输层安全性有很多好处。但是,在这些层设计的安全协议只能与 TCP 一起使用。它们不提供对使用 UDP 实现的通信的安全保护。

网络安全 – 网络层

网络层安全控制经常用于保护通信,尤其是在共享网络(如互联网)上,因为它们可以一次为许多应用程序提供保护,而无需修改它们。

在前面的章节中,我们讨论了许多针对网络安全的实时安全协议的演变,这些协议确保了安全的基本原则,例如隐私、源身份验证、消息完整性和不可否认性。

这些协议中的大多数仍然集中在 OSI 协议栈的较高层,以弥补标准互联网协议固有的安全漏洞。虽然这些方法很有价值,但它们并不能轻易地推广到任何应用程序中。例如,SSL 是专门为保护 HTTP 或 FTP 等应用程序而开发的。但是还有其他几个应用程序也需要安全的通信。

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

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

网络层安全性

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

通信协议 安全协议
应用层 HTTP FTP SMTP PGP、S/MIME、HTTPS
传输层 TCP/UDP SSL、TLS、SSH
网络层 IP IPsec

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

IPsec 的特性

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

  • IPsec 保护呈现给 IP 层的整个数据包,包括较高层标头。

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

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

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

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

安全功能

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

  • 机密性

    • 使通信节点能够加密消息。

    • 防止第三方窃听。

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

    • 确保接收到的数据包实际上是由数据包报头中标识为源的方传输的。

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

  • 密钥管理。

    • 允许安全交换密钥。

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

虚拟专用网络

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

IPsec 提供了一种简单的机制,可为此类机构实现虚拟专用网络 (VPN)。VPN 技术允许机构的办公室间流量通过在进入公共互联网之前加密流量并在逻辑上将其与其他流量分离来通过公共互联网发送。VPN 的简化工作原理如下图所示:

Virtual Private Network

IPsec 概述

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

起源

在 20 世纪 90 年代初期,互联网由少数机构使用,主要用于学术目的。但在接下来的几十年里,由于网络的扩展和许多组织使用它进行通信和其他目的,互联网的增长呈指数级增长。

随着互联网的巨大增长,加上 TCP/IP 协议固有的安全漏洞,人们感到需要一种能够在互联网上提供网络安全的技术。互联网体系结构委员会 (IAB) 在 1994 年发布了一份题为“互联网体系结构中的安全性”的报告。它确定了安全机制的关键领域。

互联网工程任务组(IAB)将身份验证和加密作为下一代IP协议IPv6的重要安全特性。幸运的是,这些安全功能的定义使得它们既可以与当前的IPv4一起实现,也可以与未来的IPv6一起实现。

安全框架IPsec已在多个“请求意见”(RFC)中定义。一些RFC指定协议的某些部分,而另一些则讨论整个解决方案。

IPsec内部操作

IPsec套件可以被认为具有两个独立的操作,当同时执行时,提供一整套安全服务。这两个操作是IPsec通信和互联网密钥交换。

  • IPsec通信

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

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

    • 它使用诸如身份验证头(AH)和封装安全载荷(ESP)之类的安全协议。

    • IPsec通信不涉及密钥的创建或管理。

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

  • 互联网密钥交换(IKE)

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

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

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

    • IKE定义了两个协议(Oakley和SKEME)与已定义的密钥管理框架互联网安全关联密钥管理协议(ISAKMP)一起使用。

    • ISAKMP并非IPsec专用,而是为任何协议创建SA提供框架。

本章主要讨论IPsec通信和为实现安全而采用的相关协议。

IPsec通信模式

IPsec通信有两种工作模式:传输模式和隧道模式。这些模式可以组合使用,也可以根据所需的通信类型单独使用。

传输模式

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

  • 保留原始IP报头,并根据上层协议设置的原始属性转发数据。

  • 下图显示了协议栈中的数据流。(此处应插入传输模式数据流图)

Transport Mode
  • 传输模式的局限性在于无法提供网关服务。它保留用于点对点通信,如下图所示。(此处应插入传输模式点对点通信图)

Point-to-Point Communications

隧道模式

  • 这种IPsec模式除了其他安全服务外还提供封装服务。

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

  • 下图显示了协议栈中的数据流。(此处应插入传输模式数据流图)

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

  • 典型的隧道模式通信如下图所示。(此处应插入隧道模式通信图)

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

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

Tunneling Mode Using IPsec

IPsec协议

IPsec使用安全协议来提供所需的安全服务。这些协议是IPsec操作的核心,其他所有内容都是为了支持IPsec中的这些协议而设计的。

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

IPsec定义了两种安全协议——身份验证头(AH)和封装安全载荷(ESP)。

身份验证头

AH协议提供数据完整性和源身份验证服务。它可以选择提供抗重放攻击能力。但是,它不提供任何形式的机密性。

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

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

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

AH的过程经历以下阶段。

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

  • 从SA中,一旦确定安全协议是AH,就计算AH报头的参数。AH报头包含以下参数:

Authentication Header
  • 报头字段指定AH报头后面的数据包协议。序列参数索引(SPI)从通信双方之间存在的SA中获得。

  • 计算并插入序列号。这些数字为AH提供可选功能以抵抗重放攻击。

  • 身份验证数据的计算方式取决于通信模式。

  • 在传输模式下,身份验证数据的计算和最终IP数据包的组装以传输如下图所示。在原始IP报头中,仅将协议号更改为51以指示AH的应用。(此处应插入传输模式AH数据包图)

Ip Packet Transmission1
  • 在隧道模式下,上述过程如下图所示。(此处应插入隧道模式AH数据包图)

Ip Packet Transmission2

封装安全载荷(ESP)

ESP提供诸如机密性、完整性、源身份验证和可选的抗重放攻击能力等安全服务。提供的服务集取决于在建立安全关联(SA)时选择的选项。

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

ESP的过程如下。前两步与上面提到的AH过程类似。

  • 一旦确定涉及ESP,就计算ESP数据包的字段。ESP字段排列如下图所示。(此处应插入ESP数据包图)

ESP Field Arrangement
  • 传输模式下的加密和身份验证过程如下图所示。(此处应插入传输模式ESP数据包图)

Transport Mode Encryption Authentication
  • 在隧道模式下,加密和身份验证过程如下图所示。(此处应插入隧道模式ESP数据包图)

Tunnel Mode Encryption Authentication

尽管身份验证和机密性是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示例图)

SA Parameters

安全管理数据库

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

安全关联数据库

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

序号 参数和描述
1

序列号计数器

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

2

序列号溢出计数器

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

3

32位抗重放窗口

用于确定传入的AH或ESP数据包是否是重放

4

SA的生存期

SA保持活跃的时间

5

算法 - AH

用于AH和关联密钥

6

算法 - ESP Auth

用于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/目标 IP/协议三元组到达正确的 SA,并从中提取关联的 SAD 条目。

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

总结

IPsec 是一套用于保护网络连接的协议。它是一个相当复杂的机制,因为它没有直接定义特定的加密算法和身份验证功能,而是提供了一个框架,允许实现双方都同意的任何内容。

身份验证报头 (AH) 和封装安全有效载荷 (ESP) 是 IPsec 使用的两个主要通信协议。AH 仅进行身份验证,而 ESP 可以加密和验证通过连接传输的数据。

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

建立 IPsec 连接涉及各种加密选择。身份验证通常建立在 MD5 或 SHA-1 等密码散列之上。常见的加密算法有 DES、3DES、Blowfish 和 AES。其他算法也是可能的。

两个通信端点都需要知道散列或加密中使用的密钥值。手动密钥需要在两端手动输入密钥值,大概通过某种带外机制传递,而 IKE(互联网密钥交换)是一种在线执行此操作的复杂机制。

网络安全 – 数据链路层

我们已经看到,互联网的快速发展引起了人们对网络安全的重大关注。已经开发出几种方法来在网络的应用程序层、传输层或网络层提供安全。

许多组织在更高的 OSI 层(从应用层一直到 IP 层)都采用了安全措施。然而,一个普遍无人关注的领域是数据链路层的加固。这可能会使网络容易受到各种攻击和破坏。

在本章中,我们将讨论数据链路层中的安全问题以及应对这些问题的方法。我们的讨论将集中在以太网网络上。

数据链路层中的安全问题

以太网网络中的数据链路层极易受到多种攻击。最常见的攻击包括:

ARP 欺骗

地址解析协议 (ARP) 是一种用于将 IP 地址映射到本地以太网可识别的物理机地址的协议。当主机需要查找 IP 地址的物理介质访问控制 (MAC) 地址时,它会广播 ARP 请求。拥有该 IP 地址的其他主机将发送包含其物理地址的 ARP 回复消息。

网络上的每一台主机都维护一个名为“ARP 缓存”的表。该表保存网络上其他主机的 IP 地址和关联的 MAC 地址。

由于 ARP 是无状态协议,因此每次主机从另一主机收到 ARP 回复时,即使它没有发送 ARP 请求,它也会接受该 ARP 条目并更新其 ARP 缓存。使用伪造的条目修改目标主机的 ARP 缓存的过程称为 ARP 欺骗或 ARP 伪造。

ARP 欺骗可能允许攻击者伪装成合法主机,然后拦截网络上的数据帧,修改或阻止它们。攻击通常用于发起其他攻击,例如中间人攻击、会话劫持或拒绝服务攻击。

ARP Spoofing

MAC 泛洪

以太网中的每个交换机都有一个内容寻址内存 (CAM) 表,用于存储 MAC 地址、交换机端口号和其他信息。该表的大小是固定的。在 MAC 泛洪攻击中,攻击者使用伪造的 ARP 数据包泛洪交换机,直到 CAM 表被填满。

一旦 CAM 被泛洪,交换机就会进入类似集线器的模式,并开始广播没有 CAM 条目的流量。现在,位于同一网络上的攻击者将接收所有原本仅应发送给特定主机的帧。

端口窃取

以太网交换机能够学习并将 MAC 地址绑定到端口。当交换机从具有 MAC 源地址的端口接收流量时,它会绑定端口号和该 MAC 地址。

端口窃取攻击利用了交换机的这种能力。攻击者使用目标主机的 MAC 地址作为源地址来泛洪交换机,发送伪造的 ARP 帧。交换机被欺骗相信目标主机位于攻击者实际连接的端口上。

现在,所有意图发送给目标主机的数 据帧都将发送到攻击者的交换机端口,而不是目标主机。因此,攻击者现在将接收所有原本仅应发送给目标主机的帧。

DHCP 攻击

动态主机配置协议 (DHCP) 不是数据链路协议,但 DHCP 攻击的解决方案也有助于阻止第 2 层攻击。

DHCP 用于在特定时间段内动态地为计算机分配 IP 地址。可以通过导致网络拒绝服务或通过模拟 DHCP 服务器来攻击 DHCP 服务器。在 DHCP 耗尽攻击中,攻击者请求所有可用的 DHCP 地址。这导致网络上合法主机拒绝服务。

在 DHCP 欺骗攻击中,攻击者可以部署一个恶意 DHCP 服务器来向客户端提供地址。在这里,攻击者可以使用 DHCP 响应为主机提供一个恶意的默认网关。现在,来自主机的数 据帧将被引导到恶意网关,攻击者可以在那里拦截所有数据包并回复实际网关或丢弃它们。

其他攻击

除了上述常见的攻击之外,还有其他攻击,例如基于第 2 层的广播、拒绝服务 (DoS)、MAC 克隆。

在广播攻击中,攻击者向网络上的主机发送伪造的 ARP 回复。这些 ARP 回复将默认网关的 MAC 地址设置为广播地址。这会导致所有出站流量都被广播,使坐在同一以太网上的攻击者能够嗅探。这种类型的攻击还会影响网络容量。

在基于第 2 层的 DoS 攻击中,攻击者使用不存在的 MAC 地址更新网络中主机的 ARP 缓存。网络中每个网络接口卡的 MAC 地址都应该是全局唯一的。但是,可以通过启用 MAC 克隆轻松更改它。攻击者通过 DoS 攻击禁用目标主机,然后使用目标主机的 IP 和 MAC 地址。

攻击者执行这些攻击是为了发起更高级别的攻击,以危及在网络上传输的信息的安全性。他可以拦截所有帧并能够读取帧数据。攻击者可以充当中间人并修改数据,或者简单地丢弃帧导致 DoS。他可以劫持目标主机和其他机器之间的正在进行的会话,并完全发送错误信息。

保护以太网 LAN

我们在上一节中讨论了一些在数据链路层中广为人知的攻击。已经开发出几种方法来减轻这些类型的攻击。一些重要的技术包括:

端口安全

这是智能以太网交换机上提供的一种第 2 层安全功能。它涉及将交换机的物理端口绑定到特定 MAC 地址。任何人都可以通过简单地将主机连接到可用的交换机端口之一来访问不安全的网络。但是,端口安全可以保护第 2 层访问。

Port Security

默认情况下,端口安全将入口 MAC 地址计数限制为一个。但是,可以通过配置允许多个授权主机从该端口连接。每个接口的允许 MAC 地址可以静态配置。一个方便的替代方法是启用“粘性”MAC 地址学习,其中 MAC 地址将由交换机端口动态学习,直到达到端口的最大限制。

为了确保安全,可以以多种不同的方式控制对端口上指定 MAC 地址的更改或端口上地址超限的反应。可以将端口配置为关闭或阻止超过指定限制的 MAC 地址。推荐的最佳实践是关闭端口。端口安全可防止 MAC 泛洪和克隆攻击。

DHCP 侦听

我们已经看到,DHCP 欺骗是一种攻击,攻击者在其中侦听来自网络上主机的 DHCP 请求,并在授权的 DHCP 响应到达主机之前,使用伪造的 DHCP 响应来回复这些请求。

DHCP 侦听可以防止此类攻击。DHCP 侦听是一项交换机功能。交换机可以配置为确定哪些交换机端口可以响应 DHCP 请求。交换机端口被标识为受信任端口或不受信任端口。

DHCP Snooping

仅将连接到授权 DHCP 服务器的端口配置为“受信任”,并允许发送所有类型的 DHCP 消息。交换机上的所有其他端口都是不受信任的,只能发送 DHCP 请求。如果在不受信任的端口上看到 DHCP 响应,则该端口将关闭。

防止 ARP 欺骗

端口安全的方法可以防止 MAC 泛洪和克隆攻击。但是,它不能防止 ARP 欺骗。端口安全验证帧头中的 MAC 源地址,但 ARP 帧在数据有效负载中包含一个额外的 MAC 源字段,主机使用此字段填充其 ARP 缓存。一些防止 ARP 欺骗的方法如下所示。

  • **静态 ARP** - 建议采取的操作之一是在主机 ARP 表中使用静态 ARP 条目。静态 ARP 条目是 ARP 缓存中的永久条目。但是,这种方法不切实际。此外,它不允许使用某些动态主机配置协议 (DHCP),因为静态 IP 需要用于第 2 层网络中的所有主机。

  • **入侵检测系统** - 防御方法是使用配置为检测大量 ARP 流量的入侵检测系统 (IDS)。但是,IDS 容易报告误报。

  • **动态 ARP 检查** - 这种防止 ARP 欺骗的方法类似于 DHCP 侦听。它使用受信任端口和不受信任端口。ARP 回复仅允许进入受信任端口上的交换机接口。如果 ARP 回复到达不受信任端口上的交换机,则会将 ARP 回复数据包的内容与 DHCP 绑定表进行比较以验证其准确性。如果 ARP 回复无效,则丢弃 ARP 回复,并禁用该端口。

保护生成树协议

生成树协议 (STP) 是一种第 2 层链路管理协议。STP 的主要目的是确保当网络具有冗余路径时不会出现数据流循环。通常,构建冗余路径是为了为网络提供可靠性。但它们可能会形成致命的循环,这可能会导致网络中的 DoS 攻击。

生成树协议

为了提供所需的路径冗余,并避免环路条件,生成树协议 (STP) 定义了一个跨越网络中所有交换机的树。STP 将某些冗余数据链路强制置于阻塞状态,并将其他链路保持在转发状态。

如果转发状态下的链路发生故障,STP 将重新配置网络并通过激活相应的备用路径来重新定义数据路径。STP 运行在部署在网络中的桥接器和交换机上。所有交换机都交换信息以进行根交换机选择以及随后的网络配置。桥接协议数据单元 (BPDU) 传输此信息。通过交换 BPDU,网络中的所有交换机都会选举一个根桥/交换机,该交换机成为网络中的焦点,并控制阻塞和转发链路。

对 STP 的攻击

  • 接管根桥。这是第 2 层中最具破坏性的一种攻击。默认情况下,局域网交换机按字面意思接收来自相邻交换机发送的任何 BPDU。顺便提一句,STP 是可信的、无状态的,并且没有提供任何可靠的认证机制。

  • 一旦进入根攻击模式,攻击交换机每 2 秒发送一次 BPDU,其优先级与当前根桥相同,但 MAC 地址略小,这确保了其在根桥选举过程中的胜利。攻击者交换机可以通过不正确地确认其他交换机(导致 BPDU 泛滥),或者通过声称自己有时是根交换机并在快速连续地撤回声明来使交换机过度处理 BPDU,从而发起拒绝服务攻击。

  • 使用配置 BPDU 泛滥进行拒绝服务攻击。攻击交换机不试图接管根桥。相反,它每秒生成大量 BPDU,导致交换机的 CPU 利用率非常高。

防止对 STP 的攻击

幸运的是,针对根接管攻击的对策简单直接。两个功能有助于击败根接管攻击。

  • **根保护 (Root Guard)** - 根保护限制了可能协商根桥的交换机端口。如果启用“根保护”的端口接收到的 BPDU 优于当前根桥发送的 BPDU,则该端口将移至根不一致状态,并且不会转发跨越该端口的数据流量。根保护最好部署到连接到预期不会接管根桥的交换机的端口。

  • **BPDU 保护 (BPDU-Guard)** - BPDU 保护用于保护网络免受在接入端口接收 BPDU 可能导致的问题的影响。这些端口不应该接收 BPDU。BPDU 保护最好部署到面向用户的端口,以防止攻击者插入恶意交换机。

虚拟局域网安全

在本地网络中,虚拟局域网 (VLAN) 有时被配置为一种安全措施,以限制易受第 2 层攻击的主机数量。VLAN 创建网络边界,广播 (ARP、DHCP) 流量无法跨越此边界。

虚拟局域网

采用支持 VLAN 功能的交换机的网络可以配置为在单个物理局域网基础设施上定义多个 VLAN。

Virtual Local Area Network

VLAN 的常见形式是基于端口的 VLAN。在此 VLAN 结构中,交换机端口使用交换机管理软件分组到 VLAN 中。因此,单个物理交换机可以充当多个虚拟交换机。

VLAN 的部署提供了流量隔离。它将大型广播第 2 层网络划分为较小的逻辑第 2 层网络,从而减少了 ARP/DHCP 欺骗等攻击的范围。一个 VLAN 的数据帧只能在属于同一 VLAN 的端口之间移动。两个 VLAN 之间的帧转发通过路由完成。

VLAN 通常跨越多个交换机,如上图所示。干线端口之间的链路承载在多个物理交换机上定义的所有 VLAN 的帧。因此,在交换机之间转发的 VLAN 帧不能是简单的 IEEE 802.1 以太网格式帧。由于这些帧在相同的物理链路上移动,因此它们现在需要携带 VLAN ID 信息。IEEE 802.1Q 协议向在干线端口之间转发的普通以太网帧添加/删除额外的报头字段。

Ethernet Frames

当两个 IP 地址字段后面的字段为 0x8100 (> 1500) 时,该帧被识别为 802.1Q 帧。2 字节标签协议标识符 (TPI) 的值为 81-00。TCI 字段包含 3 位优先级信息、1 位丢弃合格指示器 (DEI) 和 12 位 VLAN ID。这 3 位优先级字段和 DEI 字段与 VLAN 无关。优先级位用于提供服务质量。

当帧不属于任何 VLAN 时,存在一个默认 VLAN ID,该帧被认为与之关联。

对 VLAN 的攻击及预防措施

在 VLAN 跳跃攻击中,一个 VLAN 上的攻击者可以访问通常无法访问的其他 VLAN 上的流量。在从一个 VLAN 与另一个 VLAN 通信时,它将绕过第 3 层设备(路由器),从而破坏 VLAN 创建的目的。

VLAN 跳跃可以通过两种方法执行:交换机欺骗和双标记。

交换机欺骗

当攻击者连接到的交换机端口处于“中继”模式或“自动协商”模式时,可能会发生这种情况。攻击者充当交换机,并为目标远程 VLAN 向其传出的帧添加带有 VLAN 标签的 802.1Q 封装报头。接收交换机将这些帧解释为来自另一个 802.1Q 交换机,并将帧转发到目标 VLAN。

针对交换机欺骗攻击的两种预防措施是将边缘端口设置为静态接入模式,并在所有端口上禁用自动协商。

双标记

在此攻击中,连接到交换机本机 VLAN 端口的攻击者在帧报头中添加两个 VLAN 标签。第一个标签是本机 VLAN,第二个标签是目标 VLAN。当第一个交换机收到攻击者的帧时,它会删除第一个标签,因为本机 VLAN 的帧在中继端口上无需标签即可转发。

  • 由于第二个标签从未被第一个交换机删除,接收交换机将剩余的标签识别为 VLAN 目标,并将帧转发到该 VLAN 中的目标主机。双标记攻击利用了本机 VLAN 的概念。由于 VLAN 1 是接入端口的默认 VLAN 和干线上 的默认本机 VLAN,因此它很容易成为目标。

  • 第一个预防措施是从默认 VLAN 1 中移除所有接入端口,因为攻击者的端口必须与交换机的本机 VLAN 匹配。第二个预防措施是将所有交换机干线上的本机 VLAN 分配给一些未使用的 VLAN,例如 VLAN ID 999。最后,所有交换机都应配置为在干线端口上对本机 VLAN 帧进行显式标记。

无线局域网安全

无线局域网是在有限地理区域(例如办公楼或学校校园)内的无线节点网络。节点能够进行无线电通信。

无线局域网

无线局域网通常作为现有有线局域网的扩展来实现,以提供具有设备移动性的网络访问。最广泛实施的无线局域网技术基于 IEEE 802.11 标准及其修订版。

无线局域网中的两个主要组件是:

  • **接入点 (AP)** - 这些是无线网络的基站。它们传输和接收无线电频率以与无线客户端通信。

  • **无线客户端** - 这些是配备无线网络接口卡 (WNIC) 的计算设备。笔记本电脑、IP 电话、PDA 是无线客户端的典型示例。

Wireless LAN

许多组织都已实施无线局域网。这些网络正在飞速发展。因此,了解无线局域网中的威胁并学习常见的预防措施以确保网络安全至关重要。

无线局域网中的攻击

对无线局域网进行的典型攻击包括:

  • **窃听** - 攻击者被动地监控无线网络以获取数据,包括身份验证凭据。

  • **伪装** - 攻击者冒充授权用户,并在无线网络上获得访问权限和特权。

  • **流量分析** - 攻击者监控通过无线网络的传输以识别通信模式和参与者。

  • **拒绝服务** - 攻击者阻止或限制无线局域网或网络设备的正常使用或管理。

  • **消息修改/重播** - 攻击者通过删除、添加、更改或重新排序合法消息来更改或重播通过无线网络发送的合法消息。

无线局域网中的安全措施

安全措施提供了一种击败攻击和管理网络风险的方法。这些是网络管理、运营和技术措施。我们将在下面描述为确保通过无线局域网传输的数据的机密性、可用性和完整性而采用的技术措施。

在无线局域网中,所有 AP 都应配置为通过加密和客户端身份验证来提供安全性。无线局域网中用于提供安全性的方案类型如下:

有线等效隐私 (WEP)

这是一种内置于 802.11 标准中的加密算法,用于保护无线网络。WEP 加密使用 RC4 (Rivest Cipher 4) 流密码,密钥长度为 40 位/104 位,初始化向量为 24 位。它还可以提供端点身份验证。

然而,这是最弱的加密安全机制,因为在 WEP 加密中发现了一些缺陷。WEP 也没有身份验证协议。因此,不建议使用 WEP。

802.11i 协议

在此协议中,可以实现多种更强大的加密形式。它已被开发出来以取代弱 WEP 方案。它提供密钥分发机制。它支持每个站一个密钥,并且不为所有站使用相同的密钥。它使用与接入点分离的身份验证服务器。

IEEE 802.11i 要求使用名为计数器模式与 CBC-MAC 协议 (CCMP) 的协议。CCMP 提供传输数据的机密性和完整性以及发送者的真实性。它基于高级加密标准 (AES) 分组密码。

IEEE 802.11i 协议有四个操作阶段。

802.11i Protocol
  • STA 和 AP 通信并发现共同的安全功能,例如受支持的算法。

  • STA 和 AS 互相认证,并一起生成主密钥 (MK)。AP 充当“直通”。

  • STA 派生成对主密钥 (PMK)。AS 派生相同的 PMK 并发送到 AP。

  • STA 和 AP 使用 PMK 推导出时间密钥 (TK),用于消息加密和数据完整性。

其他标准

  • Wi-Fi 受保护访问 (WPA) − 此协议实现了 IEEE 802.11i 标准的大部分内容。它早于 IEEE 802.11i,并使用 RC4 算法进行加密。它有两种操作模式。“企业”模式下,WPA 使用身份验证协议 802.1x 与身份验证服务器通信,因此预主密钥 (PMK) 对客户端站是特定的。“个人”模式下,它不使用 802.1x,PMK 被预共享密钥取代,用于小型办公室家庭办公室 (SOHO) 无线局域网环境。

    WPA 还包含一个健全的消息完整性检查,取代了 WEP 标准使用的循环冗余校验 (CRC)。

  • WPA2 − WPA2 取代了 WPA。WPA2 实现了 IEEE 802.11i 方案的所有强制性元素。特别是,它包括对 CCMP 的强制性支持,这是一种基于 AES 的加密模式,具有强大的安全性。因此,就攻击而言,WPA2/IEEE802.11i 提供了足够的解决方案来防御 WEP 弱点、中间人攻击、伪造数据包和重放攻击。但是,它没有正确解决拒绝服务 (DoS) 攻击,也没有可靠的协议来阻止此类攻击,因为此类攻击针对的是物理层,例如干扰频段。

总结

在本章中,我们假设运行 IP 的交换式以太网网络来考虑攻击和缓解技术。如果您的网络不使用以太网作为第 2 层协议,则其中一些攻击可能不适用,但此类网络很可能容易受到不同类型的攻击。

安全取决于最薄弱的环节。在网络方面,第 2 层可能是一个非常薄弱的环节。本章提到的第 2 层安全措施在很大程度上可以保护网络免受多种类型的攻击。

网络安全 – 访问控制

网络访问控制是一种通过限制仅符合组织安全策略的终端设备才能访问网络资源的方法,从而增强私有组织网络安全性的方法。典型的网络访问控制方案包括两个主要组件:受限访问和网络边界保护。

对网络设备的受限访问是通过用户身份验证和授权控制实现的,它负责识别和验证不同用户对网络系统的访问。授权是授予或拒绝对受保护资源的特定访问权限的过程。

网络边界保护控制网络内外的数据连接。例如,可以部署多个防火墙来防止未经授权访问网络系统。还可以部署入侵检测和防御技术来防御来自互联网的攻击。

在本章中,我们将讨论网络访问的用户身份识别和身份验证方法,以及各种类型的防火墙和入侵检测系统。

保护对网络设备的访问

限制对网络上设备的访问是保护网络的一个非常重要的步骤。由于网络设备包括通信和计算设备,因此破坏这些设备可能会导致整个网络及其资源瘫痪。

矛盾的是,许多组织确保其服务器和应用程序具有出色的安全性,但却对通信网络设备的安全措施不足。

网络设备安全的一个重要方面是访问控制和授权。许多协议都是为了满足这两个需求并提高网络安全级别而开发的。

用户身份验证和授权

用户身份验证对于控制对网络系统(特别是网络基础设施设备)的访问是必要的。身份验证有两个方面:一般访问身份验证和功能授权。

一般访问身份验证是控制特定用户是否对尝试连接到的系统具有“任何”类型的访问权限的方法。通常,此类访问与用户在该系统中拥有“帐户”相关联。授权处理单个用户的“权限”。例如,它决定经过身份验证后用户可以做什么;用户可能被授权配置设备或仅查看数据。

用户身份验证取决于包括用户知道的内容(密码)、用户拥有的内容(加密令牌)或用户自身特征(生物特征)等因素。使用多个因素进行身份识别和身份验证为多因素身份验证提供了基础。

基于密码的身份验证

至少,所有网络设备都应具有用户名-密码身份验证。密码应是非平凡的(至少 10 个字符,混合字母、数字和符号)。

如果用户进行远程访问,则应使用一种方法来确保用户名和密码不会在网络上明文传输。此外,还应定期更改密码。

集中式身份验证方法

基于单个设备的身份验证系统提供基本的访问控制措施。但是,当网络拥有大量设备且大量用户访问这些设备时,集中式身份验证方法被认为更有效率。

传统上,集中式身份验证用于解决远程网络访问中遇到的问题。在远程访问系统 (RAS) 中,管理网络设备上的用户是不切实际的。将所有用户信息放在所有设备中,然后使该信息保持最新是一个管理噩梦。

RADIUS 和 Kerberos 等集中式身份验证系统解决了这个问题。这些集中式方法允许在一个位置存储和管理用户信息。这些系统通常可以与其他用户帐户管理方案(例如 Microsoft 的 Active Directory 或 LDAP 目录)无缝集成。大多数 RADIUS 服务器都可以使用正常的 RADIUS 协议与其他网络设备通信,然后安全地访问存储在目录中的帐户信息。

Centralized Authentication Methods

例如,Microsoft 的 Internet 身份验证服务器 (IAS) 连接 RADIUS 和 Active Directory,为设备用户提供集中式身份验证。它还确保用户帐户信息与 Microsoft 域帐户统一。上图显示了 Windows 域控制器同时作为 Active Directory 服务器和 RADIUS 服务器,以便网络元素可以验证到 Active Directory 域中。

访问控制列表

许多网络设备都可以配置访问列表。这些列表定义被授权访问设备的主机名或 IP 地址。例如,通常会限制除网络管理员以外的 IP 地址访问网络设备。

这将防止任何类型的未经授权的访问。这些类型的访问列表充当重要的最后一道防线,并且在某些设备上对于不同的访问协议具有不同的规则,因此功能非常强大。

网络安全 – 防火墙

几乎每个中大型组织都在互联网上都有业务,并且拥有连接到互联网的组织网络。在外部互联网和内部网络之间的边界处进行网络分区对于网络安全至关重要。有时,内部网络(内联网)被称为“可信”端,外部互联网被称为“不可信”端。

防火墙类型

防火墙是一种网络设备,它将组织的内部网络与更大的外部网络/互联网隔离。它可以是硬件、软件或组合系统,用于阻止对内部网络的未经授权的访问或来自内部网络的未经授权的访问。

所有进入或离开内部网络的数据包都必须经过防火墙,防火墙会检查每个数据包,并阻止不符合指定安全标准的数据包。

Firewall

在网络边界部署防火墙就像在一个点上聚合安全性。这类似于在入口处锁住公寓,而不必在每扇门上都锁上。

由于以下原因,防火墙被认为是实现网络安全的重要元素:

  • 内部网络和主机不太可能得到妥善保护。

  • 互联网是一个危险的地方,充满了罪犯、竞争公司用户、心怀不满的前雇员、来自不友好国家的间谍、破坏分子等等。

  • 防止攻击者对网络资源发起拒绝服务攻击。

  • 防止外部攻击者非法修改/访问内部数据。

防火墙分为三种基本类型:

  • 数据包过滤(无状态和有状态)
  • 应用级网关
  • 电路级网关

但是,这三类并非相互排斥。现代防火墙具有多种功能,可能将其归入三类中的不止一类。

Firewalls Types

无状态和有状态数据包过滤防火墙

在这种类型的防火墙部署中,内部网络通过路由器防火墙连接到外部网络/互联网。防火墙逐个检查和过滤数据包。

数据包过滤防火墙允许或阻止数据包主要基于诸如源和/或目标 IP 地址、协议、源和/或目标端口号以及 IP 头中的各种其他参数之类的标准。

决策可以基于除 IP 头字段以外的因素,例如 ICMP 消息类型、TCP SYN 和 ACK 位等。

数据包过滤规则有两个部分:

  • 选择标准− 它用作决策的条件和模式匹配。

  • 动作字段− 此部分指定如果 IP 数据包符合选择标准则要采取的动作。该动作可以是阻止(拒绝)或允许(允许)数据包通过防火墙。

数据包过滤通常通过在路由器或交换机上配置访问控制列表 (ACL) 来实现。ACL 是数据包过滤规则的表格。

当流量进入或离开接口时,防火墙从上到下将 ACL 应用于每个传入数据包,查找匹配的标准,然后允许或拒绝各个数据包。

Stateless Packet Firewall

无状态防火墙是一种严格的工具。它查看数据包,如果数据包符合标准,即使它不是任何已建立的持续通信的一部分,也允许它通过。

因此,在现代网络中,此类防火墙已被有状态防火墙取代。这种类型的防火墙提供了比无状态防火墙仅基于 ACL 的数据包检查方法更深入的检查方法。

有状态防火墙监控连接的建立和拆除过程,以检查 TCP/IP 级别上的连接。这使它们能够跟踪连接状态并确定哪些主机在任何给定时间都有打开的、授权的连接。

它们仅在请求新连接时才引用规则库。属于现有连接的数据包与防火墙的开放连接状态表进行比较,并做出允许或阻止的决定。此过程节省了时间并提供了额外的安全性。除非数据包属于已建立的连接,否则不允许任何数据包通过防火墙。它可以在防火墙之后使不活动的连接超时,之后它不再为该连接接收数据包。

应用程序网关

应用级网关充当应用级流量的中继节点。它们拦截传入和传出的数据包,运行代理来复制和转发网关上的信息,并充当代理服务器,防止可信服务器或客户端与不可信主机之间建立任何直接连接。

代理是特定于应用程序的。它们可以在 OSI 模型的应用层过滤数据包。

特定于应用程序的代理

Application-specific Proxies

特定于应用程序的代理仅接受由指定应用程序生成的数据包,这些应用程序设计用于复制、转发和过滤这些数据包。例如,只有 Telnet 代理才能复制、转发和过滤 Telnet 流量。

如果网络仅依赖于应用层网关,则传入和传出的数据包将无法访问未配置代理的服务。例如,如果网关运行FTP和Telnet代理,则只有这些服务生成的数据包才能通过防火墙。所有其他服务都将被阻止。

应用层过滤

应用层代理网关检查和过滤单个数据包,而不是简单地复制它们并盲目地转发它们通过网关。特定于应用程序的代理检查通过网关的每个数据包,验证数据包的内容直至应用层。这些代理可以过滤应用程序协议中的特定类型的命令或信息。

应用网关可以限制执行特定操作。例如,可以将网关配置为阻止用户执行“FTP put”命令。这可以防止攻击者修改存储在服务器上的信息。

透明性

虽然应用层网关可以是透明的,但许多实现都需要用户身份验证才能访问不受信任的网络,此过程降低了真正的透明性。如果用户来自内部网络或互联网,身份验证可能有所不同。对于内部网络,可以允许简单的IP地址列表连接到外部应用程序。但对于互联网方面,应实施强身份验证。

应用网关实际上在两个方向的两个TCP连接之间中继TCP段(客户端↔代理↔服务器)。

对于出站数据包,网关可能会将其自身的IP地址替换为源IP地址。此过程称为网络地址转换 (NAT)。它确保内部IP地址不会暴露于互联网。

电路级网关

电路级网关是数据包过滤器和应用网关之间的中间解决方案。它在传输层运行,因此可以充当任何应用程序的代理。

与应用网关类似,电路级网关也不允许跨网关的端到端TCP连接。它建立两个TCP连接并将TCP段从一个网络中继到另一个网络。但是,它不像应用网关那样检查应用程序数据。因此,有时它被称为“管道代理”。

SOCKS

SOCKS(RFC 1928)指的是电路级网关。这是一种网络代理机制,使SOCKS服务器一侧的主机能够完全访问另一侧的主机,而无需直接的IP可达性。客户端连接到防火墙上的SOCKS服务器。然后,客户端输入要使用的身份验证方法的协商,并使用所选方法进行身份验证。

客户端向SOCKS服务器发送连接中继请求,其中包含所需的目的地IP地址和传输端口。服务器在检查客户端是否满足基本过滤条件后接受请求。然后,网关代表客户端打开与请求的不可信主机的连接,然后密切监视随后的TCP握手。

SOCKS服务器通知客户端,如果成功,则开始在两个连接之间中继数据。当组织信任内部用户并且不想检查发送到互联网的内容或应用程序数据时,使用电路级网关。

带有DMZ的防火墙部署

防火墙是一种用于控制网络流量“进入”和“离开”组织内部网络的机制。在大多数情况下,这些系统有两个网络接口,一个用于外部网络(例如互联网),另一个用于内部网络。

防火墙进程可以严格控制允许从一侧到另一侧传输的内容。希望为其Web服务器提供外部访问的组织可以限制到达防火墙的所有流量,除了端口80(标准http端口)之外。所有其他流量(例如邮件流量、FTP、SNMP等)都不允许跨防火墙进入内部网络。下图显示了一个简单的防火墙示例。

Firewall Deployment with DMZ

在上述简单部署中,尽管阻止了来自外部的所有其他访问,但攻击者仍然可以联系不仅是Web服务器,而且是内部网络上意外或以其他方式留下端口80打开的任何其他主机。

因此,大多数组织面临的问题是如何在维护内部网络的严格安全性的同时,允许合法访问公共服务,例如Web、FTP和电子邮件。典型的方法是部署防火墙以在网络中提供隔离区 (DMZ)。

在此设置(如下图所示)中,部署了两个防火墙;一个位于外部网络和DMZ之间,另一个位于DMZ和内部网络之间。所有公共服务器都放置在DMZ中。

通过此设置,可以拥有允许公共访问公共服务器的防火墙规则,但内部防火墙可以限制所有传入连接。通过拥有DMZ,可以为公共服务器提供足够的保护,而不是将它们直接放置在外部网络上。

Dual Firewall Deployment

入侵检测/防御系统

数据包过滤防火墙基于仅涉及TCP/UDP/IP报头的规则运行。它们不会尝试在不同的会话之间建立相关性检查。

入侵检测/防御系统 (IDS/IPS) 通过查看数据包内容来执行深度数据包检测 (DPI)。例如,将数据包中的字符字符串与已知病毒、攻击字符串的数据库进行比较。

应用网关确实查看数据包内容,但仅限于特定应用程序。它们不会查找数据包中的可疑数据。IDS/IPS查找数据包中包含的可疑数据,并尝试检查多个数据包之间的相关性以识别任何攻击,例如端口扫描、网络映射和拒绝服务等等。

IDS和IPS的区别

IDS和IPS在检测网络异常方面相似。IDS是一种“可见性”工具,而IPS被认为是一种“控制”工具。

入侵检测系统位于网络的侧面,监控许多不同点的流量,并提供对网络安全状态的可见性。如果IDS报告异常,则由网络管理员或网络上的其他设备启动纠正措施。

入侵防御系统类似于防火墙,它们位于两个网络之间,并控制通过它们的流量。它在检测网络流量异常时强制执行指定的策略。通常,它会在注意到异常时丢弃所有数据包并阻止整个网络流量,直到管理员解决异常为止。

IDS Vs IPS

IDS的类型

IDS主要有两种类型。

  • 基于签名的IDS

    • 它需要一个包含已知攻击及其签名的数据库。

    • 签名由表征特定攻击的数据包类型和顺序定义。

    • 此类型IDS的局限性在于只能检测已知攻击。此IDS还会发出误报。当正常数据包流与攻击签名匹配时,可能会发生误报。

    • 著名的公共开源IDS示例是“Snort”IDS。

  • 基于异常的IDS

    • 此类型的IDS会创建正常网络操作的流量模式。

    • 在IDS模式下,它查看统计上异常的流量模式。例如,ICMP异常负载、端口扫描呈指数级增长等。

    • 检测到任何异常流量模式都会生成警报。

    • 此类型IDS部署面临的主要挑战是难以区分正常流量和异常流量。

总结

在本章中,我们讨论了用于网络访问控制的各种机制。通过访问控制实现网络安全的做法与本教程前面章节中讨论的不同网络层上实现安全控制的技术不同。但是,尽管实现方法不同,但它们是互补的。

网络访问控制包含两个主要组件:用户身份验证和网络边界保护。RADIUS是提供网络中央身份验证的流行机制。

防火墙通过将内部网络与公共互联网隔离开来提供网络边界保护。防火墙可以在网络协议的不同层上运行。IDS/IPS允许监控网络流量中的异常情况以检测攻击并采取预防措施。

网络安全 – 至关重要

信息和高效的沟通是每个企业成功的两个最重要的战略问题。随着电子通信和存储方式的出现,越来越多的企业转向使用数据网络来进行沟通、存储信息和获取资源。用于运行业务的网络基础设施类型和级别各不相同。

可以说,在现代世界中,没有什么比联网计算机对企业的影响更大。但联网带来了安全威胁,如果减轻这些威胁,则联网的好处将超过风险。

网络在企业中的作用

如今,几乎所有企业都将计算机网络视为一种资源。这种资源使他们能够收集、分析、组织和传播对其盈利能力至关重要的信息。大多数企业都安装了网络以保持竞争力。

计算机网络最明显的作用是,组织可以在中心位置存储几乎任何类型的信息,并通过网络在所需位置检索它。

网络的好处

计算机网络使人们能够轻松地共享信息和想法,从而提高工作效率和生产力。网络改善了采购、销售和客户服务等活动。网络使传统的业务流程更高效、更易于管理且成本更低。

企业从计算机网络中获得的主要好处是:

  • 资源共享 - 企业可以通过共享连接到网络的组件和外围设备来减少硬件支出。

  • 精简的业务流程 - 计算机网络使企业能够精简其内部业务流程。

  • 部门间的协作 - 当企业的两个或多个部门连接其网络的选定部分时,他们可以精简通常需要大量时间和精力并且经常难以提高生产力的业务流程。

  • 改进的客户关系 - 网络为客户提供了许多好处,例如开展业务的便利性、快速的快速服务响应等等。

联网还带来了许多其他特定于业务的好处。这些好处使得所有类型的企业都必须采用计算机网络。

网络安全的需求

由于现代技术的进步以及计算机网络容量的不断增长,有线或无线网络的威胁已大大增加。当今世界互联网在各种商业交易中的广泛使用,带来了信息盗窃以及对企业知识产权的其他攻击的挑战。

在当今时代,大多数业务都是通过网络应用程序进行的,因此,所有网络都面临被攻击的风险。对企业网络最常见的安全威胁是数据拦截和盗窃以及身份盗窃。

网络安全是一个专门的领域,它处理挫败此类威胁并保护企业计算机网络基础设施的可用性、可靠性、完整性和安全性。

网络安全对企业的重要性

  • 保护企业资产 - 这是网络安全的主要目标。资产是指存储在计算机网络中的信息。信息与公司任何其他有形资产一样重要和有价值。网络安全关注的是机密信息的完整性、保护和安全访问。

  • 遵守法规要求 - 网络安全措施帮助企业遵守有关信息安全的政府和行业特定法规。

  • 安全协同工作 − 网络安全鼓励同事间的协作,并通过提供安全的网络访问,方便与客户和供应商的沟通。它增强了客户和消费者对其敏感信息得到保护的信心。

  • 降低风险 − 采用网络安全措施可降低安全漏洞的影响,包括可能导致小型企业破产的法律诉讼。

  • 获得竞争优势 − 为网络建立有效的安全系统能够为组织提供竞争优势。在互联网金融服务和电子商务领域,网络安全尤为重要。

广告