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