网络安全 – 应用层
现在,各种业务服务都通过客户端-服务器应用程序在线提供。最流行的形式是 Web 应用程序和电子邮件。在这两种应用程序中,客户端都会与指定的服务器通信并获得服务。
在使用任何服务器应用程序的服务时,客户端和服务器会在底层内联网或 Internet 上交换大量信息。我们意识到这些信息交易很容易受到各种攻击。
网络安全需要确保数据在网络上传输时免受攻击。为了实现这一目标,已经设计了许多实时安全协议。此类协议至少需要提供以下主要目标 −
- 各方可以交互协商以相互验证身份。
- 在网络上交换信息之前建立秘密会话密钥。
- 以加密形式交换信息。
有趣的是,这些协议在网络模型的不同层上工作。例如,S/MIME 协议在应用层工作,SSL 协议在传输层工作,而 IPsec 协议在网络层工作。
在本章中,我们将讨论实现电子邮件通信安全性的不同过程和相关的安全协议。随后将介绍保护 DNS 的方法。在后面的章节中,将介绍实现网络安全的协议。
电子邮件安全
如今,电子邮件已成为非常广泛使用的网络应用。在继续了解电子邮件安全协议之前,让我们简要讨论一下电子邮件基础设施。
电子邮件基础设施
发送电子邮件的最简单方法是将消息直接从发件人的机器发送到收件人的机器。在这种情况下,两台机器必须同时在网络上运行。但是,这种设置不切实际,因为用户可能偶尔会将他们的机器连接到网络。
因此,设置电子邮件服务器的概念应运而生。在这种设置中,邮件被发送到网络上永久可用的邮件服务器。当收件人的机器连接到网络时,它会从邮件服务器读取邮件。
一般来说,电子邮件基础设施由邮件服务器网格组成,也称为消息传输代理 (MTA) 和运行电子邮件程序的客户端机器组成,该程序由用户代理 (UA) 和本地 MTA 组成。
通常,电子邮件从其 UA 转发,通过 MTA 网格,最终到达收件人机器上的 UA。
用于电子邮件的协议如下 −
简单邮件传输协议 (SMTP) 用于转发电子邮件。
邮局协议 (POP) 和 Internet 消息访问协议 (IMAP) 用于按收件人从服务器检索消息。
MIME
基本 Internet 电子邮件标准于 1982 年制定,它描述了在 Internet 上交换的电子邮件格式。它主要支持以基本罗马字母文本形式编写的电子邮件。
到 1992 年,人们感到需要改进它。因此,定义了一个附加标准多用途 Internet 邮件扩展 (MIME)。它是基本 Internet 电子邮件标准的一组扩展。 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)发送机密电子邮件时,隐私得到如下保障 −
发送者和所有接收者都有一对自己的私钥-公钥。Exploder Server 为其维护的每个邮件列表(ListPUB、ListPVT)都有一对私钥-公钥。
发送者生成一个秘密对称密钥 Ks,然后用这个密钥加密消息。
发送者然后用与列表关联的公钥加密 KS,得到 ListPUB(KS)。
发送者发送加密消息和 ListPUB(KS)。爆炸器 MTA 使用 ListPVT 解密 ListPUB(KS) 并获得 KS。
爆炸器使用与列表中成员数量相同的公钥加密 KS。
爆炸器将收到的加密消息和相应的加密 KS 转发给列表中的所有收件人。例如,Exploder 将加密消息和 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 证书)认证。
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) 是一种可以阻止此类攻击的 Internet 标准。
标准 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 查找的安全。
在本章中,我们讨论了在应用层使用的为端到端通信提供网络安全的机制。