网络安全——应用层
现在通过客户端-服务器应用程序在线提供各种商业服务。最流行的形式是网络应用程序和电子邮件。在这两个应用程序中,客户端与指定的服务器通信并获取服务。
在使用任何服务器应用程序的服务时,客户端和服务器会在底层 Intranet 或 Internet 上交换大量信息。我们知道这些信息交易很容易受到各种攻击。
网络安全需要保护数据在网络上传输时免受攻击。为了实现这一目标,人们设计了许多实时安全协议。此类协议至少需要提供以下主要目标 -
- 双方可以交互协商以相互验证。
- 在网络上交换信息之前建立秘密会话密钥。
- 以加密形式交换信息。
有趣的是,这些协议适用于网络模型的不同层。例如,S/MIME协议工作在应用层,SSL协议被开发出来工作在传输层,IPsec协议工作在网络层。
在本章中,我们将讨论实现电子邮件通信安全的不同过程以及相关的安全协议。随后介绍保护 DNS 的方法。在后面的章节中,将描述实现网络安全的协议。
电子邮件安全
如今,电子邮件已经成为非常广泛使用的网络应用。在继续了解电子邮件安全协议之前,让我们先简要讨论一下电子邮件基础结构。
电子邮件基础设施
发送电子邮件的最简单方法是将消息直接从发件人的计算机发送到收件人的计算机。在这种情况下,两台计算机必须同时在网络上运行。然而,这种设置是不切实际的,因为用户可能偶尔会将其计算机连接到网络。
因此,建立电子邮件服务器的概念应运而生。在此设置中,邮件将发送到网络上永久可用的邮件服务器。当收件人的计算机连接到网络时,它会从邮件服务器读取邮件。
一般来说,电子邮件基础设施由邮件服务器(也称为消息传输代理(MTA))网络和运行由用户代理 (UA) 和本地 MTA 组成的电子邮件程序的客户端计算机组成。
通常,电子邮件从其 UA 转发,穿过 MTA 网格,最后到达收件人计算机上的 UA。
用于电子邮件的协议如下 -
用于转发电子邮件的简单邮件传输协议 (SMTP)。
邮局协议 (POP) 和 Internet 消息访问协议 (IMAP) 用于由收件人从服务器检索消息。
哑剧
基本互联网电子邮件标准于 1982 年编写,它描述了在互联网上交换的电子邮件消息的格式。它主要支持以基本罗马字母文本形式编写的电子邮件消息。
到 1992 年,人们感到需要对此进行改进。因此,定义了附加标准多用途互联网邮件扩展(MIME)。它是基本 Internet 电子邮件标准的一组扩展。MIME 提供了使用基本罗马字母以外的字符发送电子邮件的能力,例如西里尔字母(用于俄语)、希腊字母,甚至中文的表意字符。
MIME 满足的另一个需求是发送非文本内容,例如图像或视频剪辑。由于此功能,MIME 标准与 SMTP 一起广泛用于电子邮件通信。
电子邮件安全服务
越来越多地使用电子邮件通信进行重要和关键的交易,需要提供某些基本的安全服务,如下所示 -
保密性- 除预期收件人外,任何人都不得阅读电子邮件消息。
身份验证- 电子邮件收件人可以确定发件人的身份。
完整性- 向收件人保证电子邮件自发件人传输以来没有被更改。
不可否认性- 电子邮件收件人能够向第三方证明发件人确实发送了邮件。
提交证明- 电子邮件发件人获得消息已传递至邮件传送系统的确认。
送达证明- 发件人得到收件人收到消息的确认。
隐私、身份验证、消息完整性和不可否认性等安全服务通常通过使用公钥加密技术来提供。
通常,电子邮件通信存在三种不同的场景。我们将讨论在这些场景下实现上述安全服务的方法。
一对一电子邮件
在这种情况下,发件人仅向一个收件人发送一封电子邮件。通常,通信中涉及的 MTA 不超过两个。
假设发件人想要向收件人发送一封机密电子邮件。在这种情况下,隐私的规定是通过以下方式实现的 -
发送方和接收方的私钥-公钥分别为(SPVT , SPUB )和(RPVT , RPUB )。
发送者生成一个秘密对称密钥 K S用于加密。尽管发送方可以使用 R PUB进行加密,但使用对称密钥来实现更快的加密和解密。
发送者使用密钥 K S加密消息,并且还使用接收者的公钥 R PUB加密 K S。
发送者将加密的消息和加密的K S发送给接收者。
接收者首先通过使用其私钥 R PVT解密编码的 K S 来获得K S。
然后接收者使用对称密钥 K S解密消息。
如果该场景还需要消息完整性、认证、不可否认服务,则在上述流程中添加以下步骤。
发送者生成消息的哈希值并使用他的私钥 S PVT对该哈希值进行数字签名。
发送者将此签名的哈希值与其他组件一起发送给接收者。
接收者使用公钥 S PUB并提取在发送者签名下收到的哈希值。
然后,接收者对解密的消息进行哈希处理,然后比较两个哈希值。如果它们匹配,则认为实现了消息完整性。
此外,接收方确信该消息是由发送方发送的(身份验证)。最后,发送者不能否认他没有发送消息(不可否认)。
一对多收件人电子邮件
在这种情况下,发件人将电子邮件发送给两个或更多收件人。该列表由发件人的电子邮件程序(UA + 本地 MTA)管理。所有收件人都会收到相同的消息。
我们假设,发件人想要将机密电子邮件发送给许多收件人(例如 R1、R2 和 R3)。在这种情况下,隐私的规定是通过以下方式实现的 -
发送者和所有接收者都有自己的私钥-公钥对。
发送方生成一个秘密对称密钥 K s并用该密钥加密消息。
然后发送者用R1、R2和R3的公钥对K S进行多次加密,得到R1 PUB (K S )、R2 PUB (K S )和R3 PUB (K S )。
发送者将加密的消息和相应的加密的K S发送给接收者。例如,接收者 1 (R1) 接收加密消息和 R1 PUB (K S )。
每个接收者首先通过使用其私钥解密编码的 K S来提取密钥 K S 。
然后,每个接收者使用对称密钥 K S解密消息。
为了提供消息完整性、身份验证和不可否认性,要遵循的步骤与上面在一对一电子邮件场景中提到的步骤类似。
一对一分发列表电子邮件
在这种情况下,发件人将电子邮件发送给两个或更多收件人,但收件人列表不是由发件人本地管理的。通常,电子邮件服务器 (MTA) 维护邮件列表。
发件人将邮件发送到管理邮件列表的 MTA,然后 MTA 将邮件分解给列表中的所有收件人。
在这种情况下,当发件人想要向邮件列表的收件人(例如 R1、R2 和 R3)发送机密电子邮件时;隐私保证如下:
发送者和所有接收者都有自己的私钥-公钥对。Exploder Server为其维护的每个邮件列表(List PUB、 List PVT )都有一对私钥-公钥。
发送者生成一个秘密对称密钥 K s,然后用该密钥加密消息。
然后发送方用与该列表关联的公钥对K S进行加密,得到List PUB (K S )。
发送者发送加密消息和列表PUB (K S )。爆炸器MTA使用List PVT解密List PUB (K S )并获得K S。
爆炸器使用与列表中的成员一样多的公钥来加密 K S 。
Exploder将收到的加密消息和相应的加密K S转发给列表中的所有接收者。例如,Exploder 将加密消息和 R1 PUB (K S ) 转发给接收者 1 等等。
为了提供消息完整性、身份验证和不可否认性,要遵循的步骤与一对一电子邮件场景中给出的步骤类似。
有趣的是,采用上述安全方法来保护电子邮件的电子邮件程序预计适用于上述所有可能的情况。大多数上述电子邮件安全机制由两种流行的方案提供:Pretty Good Privacy (PGP) 和 S/MIME。我们将在以下几节中讨论这两个问题。
前列腺素
Pretty Good Privacy (PGP) 是一种电子邮件加密方案。它已成为为电子邮件通信提供安全服务的事实上的标准。
如上所述,它使用公钥密码术、对称密钥密码术、散列函数和数字签名。它提供 -
- 隐私
- 发件人身份验证
- 消息完整性
- 不可否认性
除了这些安全服务之外,它还提供数据压缩和密钥管理支持。PGP 使用现有的加密算法,如 RSA、IDEA、MD5 等,而不是发明新的算法。
PGP 的工作
计算消息的哈希值。(MD5算法)
使用发送者的私钥(RSA 算法)对生成的 128 位哈希进行签名。
数字签名被连接到消息,并且结果被压缩。
生成128 位对称密钥 K S ,并使用 IDEA 来加密压缩消息。
K S使用接收者的公钥通过 RSA 算法进行加密,并将结果附加到加密消息中。
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 可以在强制网络中提供安全的电子邮件通信。对于 Internet 上的电子邮件安全(经常与新的未知用户交换邮件),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。教程点.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 示例如下表所示。
域名 | 生存时间 | 类型 | 价值 |
---|---|---|---|
教程点.com | 86400 | NS | dns.tutorialspoint.com |
dns.tutorialspoint.com | 86400 | A | 36..1.2.3 |
教程点.com | 86400 | 钥匙 | 3682793A7B73F731029CE2737D... |
教程点.com | 86400 | 特殊兴趣小组 | 86947503A8B848F5272E53930C... |
KEY记录是“tutorialspoint.com”的公钥。
SIG 记录是顶级 .com 服务器对 NS、A 和 KEY 记录字段进行签名的哈希值,用于验证其真实性。其值为 Kcom pvt (H(NS,A,KEY))。
由此可以认为,当DNSSEC全面推出后,用户的计算机能够确认DNS响应的合法性和真实性,避免通过DNS缓存中毒发起DNS攻击。
概括
保护电子邮件的过程可确保通信的端到端安全性。它提供机密性、发送者身份验证、消息完整性和不可否认性等安全服务。
已经为电子邮件安全开发了两种方案:PGP 和 S/MIME。这两种方案都使用秘密密钥和公钥加密技术。
标准 DNS 查找容易受到 DNS 欺骗/缓存中毒等攻击。通过使用采用公钥加密技术的 DNSSEC 可以确保 DNS 查找的安全。
在本章中,我们讨论了应用层使用的为端到端通信提供网络安全的机制。