📜  网络安全–应用层

📅  最后修改于: 2020-12-06 11:58:10             🧑  作者: Mango


现在可以通过客户端服务器应用程序在线提供各种业务服务。最受欢迎的形式是Web应用程序和电子邮件。在两个应用程序中,客户端都与指定的服务器通信并获得服务。

在使用来自任何服务器应用程序的服务时,客户端和服务器会在基础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不超过两个。

一对一电子邮件

假设发件人希望将机密电子邮件发送给收件人。在这种情况下,提供隐私的方式如下-

  • 发送方和接收方的私钥分别为(S PVT ,S PUB )和(R PVT ,R PUB )。

  • 发送者生成一个对称对称密钥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,并使用此密钥对消息进行加密。

  • 发送者则K多重次R1,R2,和R3的公共密钥,得到R1 PUB(K S)中,R 2 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为它维护的每个邮件列表(列表PUB ,列表PVT )都有一对私钥-公钥。

  • 发送方生成一个对称对称密钥K s ,然后使用此密钥对消息进行加密。

  • 然后,发送者用与列表相关联的公共密钥加密K S ,获得列表PUB (K S )。

  • 发送方发送加密消息和列表PUB(K S)。爆炸程序MTA使用列表PVT解密列表PUB (K S )并获得K S。

  • 爆炸程序使用与列表中的成员一样多的公共密钥来加密K S。

  • 爆炸器将接收到的加密消息和相应的加密K S转发给列表中的所有收件人。例如,爆炸程序将加密的消息和R1 PUB (K S )转发给收件人1,依此类推。

加密邮件

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

有趣的是,采用上述安全性方法来保护电子邮件的电子邮件程序有望在上述所有可能的情况下工作。上面的大多数电子邮件安全机制是由两种流行的方案提供的,它们是“很好的隐私”(PGP)和S / MIME。我们将在以下各节中进行讨论。

PGP

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

如上所述,它使用公共密钥加密,对称密钥加密,哈希函数和数字签名。它提供-

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

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

PGP的工作

PGP的工作

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

  • 使用发送者的私钥对结果的128位哈希进行签名(RSA算法)。

  • 将数字签名连接到消息,并压缩结果。

  • 生成一个128位的对称密钥K S ,并将其用于使用IDEA加密压缩消息。

  • 使用RSA算法使用收件人的公钥对K S进行加密,并将结果附加到加密的消息中。

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

PGP消息格式

在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方案的网络体系结构中的实现层。这两种方案都为电子邮件通信提供了应用程序级别的安全性。

S / MIME的可使用性

根据环境使用方案之一,PGP或S / MIME。通过适应PGP,可以在专属网络中提供安全的电子邮件通信。对于Internet上的电子邮件安全(经常与新的未知用户交换邮件),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。

标准DNS漏洞

DNSSEC定义

使用DNSSEC执行DNS查找时,涉及到响应实体对答复进行签名。 DNSSEC基于公钥加密。

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

使用DNSSEC,查找过程如下-

  • 当您的计算机询问可以在其中找到.com的根区域时,答复将由根区域服务器签名。

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

  • 在答复中,根区域提供有关.com区域服务器的签名密钥及其位置的信息,从而使计算机能够与.com目录联系并确保其合法。

  • 然后,.com目录提供了tutorialspoint.com的签名密钥和信息,从而使其可以与google.com联系并确认您已连接到真正的tutorialspoint.com,这在其上方的区域中得到了证实。

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

Domain Name Time to live Type Value
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记录进行签名的哈希,以验证其真实性。其值为Kcom pvt (H(NS,A,KEY))。

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

概要

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

已经开发了两种用于电子邮件安全的方案:PGP和S / MIME。这两种方案都使用秘密密钥和公共密钥加密。

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

在本章中,我们讨论了在应用程序层用于为端到端通信提供网络安全性的机制。