
- 网络安全教程
- 网络安全 - 首页
- 网络安全 – 概述
- 网络安全 – 应用层
- 网络安全 – 传输层
- 网络安全 – 网络层
- 网络安全 – 数据链路层
- 网络安全 – 访问控制
- 网络安全 – 防火墙
- 网络安全 – 关键必要性
- 零信任安全
- 零信任安全 - 简介
- 零信任安全模型
- 零信任架构
- 网络安全有用资源
- 网络安全 - 快速指南
- 网络安全 - 有用资源
- 网络安全 - 讨论
网络安全 – 应用层
现在许多业务服务通过客户端-服务器应用程序在线提供。最流行的形式是 Web 应用程序和电子邮件。在这两种应用程序中,客户端都与指定的服务器通信并获取服务。
在使用任何服务器应用程序的服务时,客户端和服务器会在底层内联网或互联网上交换大量信息。我们知道这些信息交易容易受到各种攻击。
网络安全包括在数据在网络上传输时保护数据免受攻击。为了实现这一目标,已经设计了许多实时安全协议。此类协议至少需要提供以下主要目标:
- 各方可以交互式地协商以相互验证身份。
- 在网络上交换信息之前建立一个秘密会话密钥。
- 以加密形式交换信息。
有趣的是,这些协议在网络模型的不同层工作。例如,S/MIME 协议在应用层工作,SSL 协议是在传输层开发的,而 IPsec 协议在网络层工作。

在本章中,我们将讨论实现电子邮件通信安全和相关安全协议的不同过程。随后将介绍保护 DNS 的方法。在后面的章节中,将描述实现 Web 安全的协议。
电子邮件安全
如今,电子邮件已成为非常广泛使用的网络应用程序。在了解电子邮件安全协议之前,让我们简要讨论一下电子邮件基础设施。
电子邮件基础设施
发送电子邮件最简单的方法是直接将消息从发送者的计算机发送到接收者的计算机。在这种情况下,两台计算机都必须同时运行在网络上。但是,由于用户可能会偶尔将他们的计算机连接到网络,因此这种设置是不切实际的。
因此,出现了建立电子邮件服务器的概念。在此设置中,邮件将发送到永久可用在网络上的邮件服务器。当接收者的计算机连接到网络时,它会从邮件服务器读取邮件。
一般来说,电子邮件基础设施由邮件服务器网络组成,也称为**邮件传输代理**(MTA)和运行包含用户代理(UA)和本地 MTA 的电子邮件程序的客户端计算机。
通常,电子邮件消息会从其 UA 转发,经过 MTA 网络,最终到达接收者计算机上的 UA。

用于电子邮件的协议如下:
简单邮件传输协议 (SMTP) 用于转发电子邮件消息。
邮局协议 (POP) 和互联网消息访问协议 (IMAP) 用于接收者从服务器检索消息。
MIME
基本的互联网电子邮件标准编写于 1982 年,它描述了在互联网上交换的电子邮件消息的格式。它主要支持用基本罗马字母书写的电子邮件消息。
到 1992 年,人们感到需要改进它。因此,定义了一个附加标准 *多用途互联网邮件扩展* (MIME)。它是对基本互联网电子邮件标准的一组扩展。MIME 提供了使用除基本罗马字母以外的其他字符(例如俄语使用的西里尔字母)、希腊字母或甚至汉字等表意文字发送电子邮件的能力。
MIME 满足的另一个需求是发送非文本内容,例如图像或视频剪辑。由于这些特性,MIME 标准已与 SMTP 广泛用于电子邮件通信。
电子邮件安全服务
越来越多的重要和关键交易使用电子邮件通信,需要提供某些基本安全服务,如下所示:
**机密性** - 除预期接收者外,任何人都不得阅读电子邮件消息。
**身份验证** - 电子邮件接收者可以确定发送者的身份。
**完整性** - 向接收者保证电子邮件消息自发送者发送以来未被更改。
**不可否认性** - 电子邮件接收者能够向第三方证明发送者确实发送了该消息。
**提交证明** - 电子邮件发送者收到邮件已交付给邮件传递系统的确认。
**送达证明** - 发送者收到接收者已收到邮件的确认。
隐私、身份验证、消息完整性和不可否认性等安全服务通常使用公钥密码学来提供。
通常,有三种不同的电子邮件通信场景。我们将讨论在这三种场景中实现上述安全服务的方法。
一对一电子邮件
在这种情况下,发送者只向一个接收者发送电子邮件消息。通常,通信中涉及的 MTA 不超过两个。

让我们假设发送者想要向接收者发送机密电子邮件。在这种情况下,隐私的提供如下实现:
发送者和接收者分别拥有他们的私钥-公钥对 (SPVT, SPUB) 和 (RPVT, RPUB)。
发送者生成一个用于加密的秘密对称密钥 KS。虽然发送者可以使用 RPUB 进行加密,但使用对称密钥可以实现更快的加密和解密。
发送者使用密钥 KS 加密消息,并使用接收者的公钥 RPUB 加密 KS。
发送者将加密的消息和加密的 KS 发送给接收者。
接收者首先通过使用其私钥 RPVT 解密编码的 KS 来获得 KS。
然后,接收者使用对称密钥 KS 解密消息。

如果在这种情况下还需要消息完整性、身份验证和不可否认性服务,则会向上述过程添加以下步骤。
发送者生成消息的哈希值,并使用其私钥 SPVT 对此哈希值进行数字签名。
发送者将此签名哈希值与其他组件一起发送给接收者。

接收者使用公钥 SPUB 并提取在发送者签名下接收到的哈希值。
然后,接收者对解密的消息进行哈希运算,现在比较这两个哈希值。如果它们匹配,则认为消息完整性已实现。
此外,接收者可以确定消息是由发送者发送的(身份验证)。最后,发送者不能否认他没有发送消息(不可否认性)。
一对多接收者电子邮件
在这种情况下,发送者向两个或多个接收者发送电子邮件消息。该列表由发送者的电子邮件程序 (UA + 本地 MTA) 管理。所有接收者都收到相同的消息。

让我们假设发送者想要向许多接收者(例如 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 将邮件展开到列表中的所有接收者。

在这种情况下,当发送者想要向邮件列表的接收者(例如 R1、R2 和 R3)发送机密电子邮件时;隐私的保证如下:
发送者和所有接收者都有他们自己的一对私钥-公钥。展开服务器为其维护的每个邮件列表(ListPUB,ListPVT)拥有一对私钥-公钥。
发送者生成一个秘密对称密钥 Ks,然后使用此密钥加密消息。
然后,发送者使用与该列表关联的公钥加密 KS,获得 ListPUB(KS)。
发送者发送加密的消息和 ListPUB(KS)。展开 MTA 使用 ListPVT 解密 ListPUB(KS) 并获得 KS。
展开程序使用与列表中成员一样多的公钥加密 KS。
展开程序将接收到的加密消息和相应的加密 KS 转发给列表中的所有接收者。例如,展开程序将加密的消息和 R1PUB(KS) 转发给接收者 1,依此类推。

为了提供消息完整性、身份验证和不可否认性,要遵循的步骤与一对一电子邮件场景中给出的步骤类似。
有趣的是,采用上述安全方法来保护电子邮件的电子邮件程序预计适用于上面讨论的所有可能的情况。大多数上述电子邮件安全机制由两种流行的方案提供:Pretty Good Privacy (PGP) 和 S/MIME。我们将在接下来的章节中讨论两者。
PGP
Pretty Good Privacy (PGP) 是一种电子邮件加密方案。它已成为提供电子邮件通信安全服务的实际标准。
如上所述,它使用公钥密码学、对称密钥密码学、哈希函数和数字签名。它提供:
- 隐私
- 发件人身份验证
- 消息完整性
- 不可否认性
除了这些安全服务外,它还提供数据压缩和密钥管理支持。PGP 使用现有的加密算法,例如 RSA、IDEA、MD5 等,而不是发明新的算法。
PGP 的工作原理

计算消息的哈希值。(MD5 算法)
使用发件人的私钥(RSA 算法)对生成的 128 位哈希值进行签名。
将数字签名与消息连接起来,然后压缩结果。
生成一个 128 位对称密钥 KS,并使用 IDEA 加密压缩后的消息。
使用 RSA 算法使用接收者的公钥加密 KS,并将结果附加到加密的消息。
PGP 消息的格式如下所示。ID 指示使用哪个密钥加密 KS 以及使用哪个密钥验证哈希上的签名。

在 PGP 方案中,消息经过签名和加密,然后在传输之前进行 MIME 编码。
PGP 证书
PGP 密钥证书通常通过信任链建立。例如,A 的公钥由 B 使用其公钥签名,B 的公钥由 C 使用其公钥签名。随着此过程的进行,它建立了一个信任网。
在 PGP 环境中,任何用户都可以充当认证机构。任何 PGP 用户都可以认证另一个 PGP 用户的公钥。但是,只有当用户将认证者识别为可信赖的介绍人时,此类证书才对另一个用户有效。
这种认证方法存在一些问题。可能很难找到从已知且可信的公钥到所需密钥的链。此外,可能存在多条链,可以导致所需用户的不同密钥。
PGP 也可以使用具有认证机构的 PKI 基础设施,并且公钥可以由 CA(X.509 证书)认证。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
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 方案在网络体系结构中的实现层如下图所示。这两种方案都提供了电子邮件通信的应用程序级安全性。

根据环境的不同,使用 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。

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 查询。
在本章中,我们讨论了在应用层使用的机制,以为了端到端通信提供网络安全。