網路安全 – 應用層



現在許多業務服務透過客戶端-伺服器應用程式線上提供。最流行的形式是 Web 應用程式和電子郵件。在這兩種應用程式中,客戶端都與指定的伺服器通訊並獲取服務。

在使用任何伺服器應用程式的服務時,客戶端和伺服器會在底層內聯網或網際網路上交換大量資訊。我們知道這些資訊交易容易受到各種攻擊。

網路安全包括在資料在網路上傳輸時保護資料免受攻擊。為了實現這一目標,已經設計了許多即時安全協議。此類協議至少需要提供以下主要目標:

  • 各方可以互動式地協商以相互驗證身份。
  • 在網路上交換資訊之前建立一個秘密會話金鑰。
  • 以加密形式交換資訊。

有趣的是,這些協議在網路模型的不同層工作。例如,S/MIME 協議在應用層工作,SSL 協議是在傳輸層開發的,而 IPsec 協議在網路層工作。

Application Layer

在本章中,我們將討論實現電子郵件通訊安全和相關安全協議的不同過程。隨後將介紹保護 DNS 的方法。在後面的章節中,將描述實現 Web 安全的協議。

電子郵件安全

如今,電子郵件已成為非常廣泛使用的網路應用程式。在瞭解電子郵件安全協議之前,讓我們簡要討論一下電子郵件基礎設施。

電子郵件基礎設施

傳送電子郵件最簡單的方法是直接將訊息從傳送者的計算機發送到接收者的計算機。在這種情況下,兩臺計算機都必須同時執行在網路上。但是,由於使用者可能會偶爾將他們的計算機連線到網路,因此這種設定是不切實際的。

因此,出現了建立電子郵件伺服器的概念。在此設定中,郵件將傳送到永久可用在網路上的郵件伺服器。當接收者的計算機連線到網路時,它會從郵件伺服器讀取郵件。

一般來說,電子郵件基礎設施由郵件伺服器網路組成,也稱為**郵件傳輸代理**(MTA)和執行包含使用者代理(UA)和本地 MTA 的電子郵件程式的客戶端計算機。

通常,電子郵件訊息會從其 UA 轉發,經過 MTA 網路,最終到達接收者計算機上的 UA。

E-mail Infrastructure

用於電子郵件的協議如下:

  • 簡單郵件傳輸協議 (SMTP) 用於轉發電子郵件訊息。

  • 郵局協議 (POP) 和網際網路訊息訪問協議 (IMAP) 用於接收者從伺服器檢索訊息。

MIME

基本的網際網路電子郵件標準編寫於 1982 年,它描述了在網際網路上交換的電子郵件訊息的格式。它主要支援用基本羅馬字母書寫的電子郵件訊息。

到 1992 年,人們感到需要改進它。因此,定義了一個附加標準 *多用途網際網路郵件擴充套件* (MIME)。它是對基本網際網路電子郵件標準的一組擴充套件。MIME 提供了使用除基本羅馬字母以外的其他字元(例如俄語使用的西裡爾字母)、希臘字母或甚至漢字等表意文字傳送電子郵件的能力。

MIME 滿足的另一個需求是傳送非文字內容,例如影像或影片剪輯。由於這些特性,MIME 標準已與 SMTP 廣泛用於電子郵件通訊。

電子郵件安全服務

越來越多的重要和關鍵交易使用電子郵件通訊,需要提供某些基本安全服務,如下所示:

  • **機密性** - 除預期接收者外,任何人都不得閱讀電子郵件訊息。

  • **身份驗證** - 電子郵件接收者可以確定傳送者的身份。

  • **完整性** - 向接收者保證電子郵件訊息自發送者傳送以來未被更改。

  • **不可否認性** - 電子郵件接收者能夠向第三方證明發送者確實傳送了該訊息。

  • **提交證明** - 電子郵件傳送者收到郵件已交付給郵件傳遞系統的確認。

  • **送達證明** - 傳送者收到接收者已收到郵件的確認。

隱私、身份驗證、訊息完整性和不可否認性等安全服務通常使用公鑰密碼學來提供。

通常,有三種不同的電子郵件通訊場景。我們將討論在這三種場景中實現上述安全服務的方法。

一對一電子郵件

在這種情況下,傳送者只向一個接收者傳送電子郵件訊息。通常,通訊中涉及的 MTA 不超過兩個。

One-to-One E-mail

讓我們假設傳送者想要向接收者傳送機密電子郵件。在這種情況下,隱私的提供如下實現:

  • 傳送者和接收者分別擁有他們的私鑰-公鑰對 (SPVT, SPUB) 和 (RPVT, RPUB)。

  • 傳送者生成一個用於加密的秘密對稱金鑰 KS。雖然傳送者可以使用 RPUB 進行加密,但使用對稱金鑰可以實現更快的加密和解密。

  • 傳送者使用金鑰 KS 加密訊息,並使用接收者的公鑰 RPUB 加密 KS

  • 傳送者將加密的訊息和加密的 KS 傳送給接收者。

  • 接收者首先透過使用其私鑰 RPVT 解密編碼的 KS 來獲得 KS

  • 然後,接收者使用對稱金鑰 KS 解密訊息。

Confidential E-mail

如果在這種情況下還需要訊息完整性、身份驗證和不可否認性服務,則會向上述過程新增以下步驟。

  • 傳送者生成訊息的雜湊值,並使用其私鑰 SPVT 對此雜湊值進行數字簽名。

  • 傳送者將此簽名雜湊值與其他元件一起傳送給接收者。

Message Integrity Authentication and Non-repudiation
  • 接收者使用公鑰 SPUB 並提取在傳送者簽名下接收到的雜湊值。

  • 然後,接收者對解密的訊息進行雜湊運算,現在比較這兩個雜湊值。如果它們匹配,則認為訊息完整性已實現。

  • 此外,接收者可以確定訊息是由傳送者傳送的(身份驗證)。最後,傳送者不能否認他沒有傳送訊息(不可否認性)。

一對多接收者電子郵件

在這種情況下,傳送者向兩個或多個接收者傳送電子郵件訊息。該列表由傳送者的電子郵件程式 (UA + 本地 MTA) 管理。所有接收者都收到相同的訊息。

One-to-Multiple Recipients E-mail

讓我們假設傳送者想要向許多接收者(例如 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 將郵件展開到列表中的所有接收者。

One-to-Distribution List E-mail

在這種情況下,當傳送者想要向郵件列表的接收者(例如 R1、R2 和 R3)傳送機密電子郵件時;隱私的保證如下:

  • 傳送者和所有接收者都有他們自己的一對私鑰-公鑰。展開伺服器為其維護的每個郵件列表(ListPUB,ListPVT)擁有一對私鑰-公鑰。

  • 傳送者生成一個秘密對稱金鑰 Ks,然後使用此金鑰加密訊息。

  • 然後,傳送者使用與該列表關聯的公鑰加密 KS,獲得 ListPUB(KS)。

  • 傳送者傳送加密的訊息和 ListPUB(KS)。展開 MTA 使用 ListPVT 解密 ListPUB(KS) 並獲得 KS

  • 展開程式使用與列表中成員一樣多的公鑰加密 KS

  • 展開程式將接收到的加密訊息和相應的加密 KS 轉發給列表中的所有接收者。例如,展開程式將加密的訊息和 R1PUB(KS) 轉發給接收者 1,依此類推。

Encrypted Message

為了提供訊息完整性、身份驗證和不可否認性,要遵循的步驟與一對一電子郵件場景中給出的步驟類似。

有趣的是,採用上述安全方法來保護電子郵件的電子郵件程式預計適用於上面討論的所有可能的情況。大多數上述電子郵件安全機制由兩種流行的方案提供:Pretty Good Privacy (PGP) 和 S/MIME。我們將在接下來的章節中討論兩者。

PGP

Pretty Good Privacy (PGP) 是一種電子郵件加密方案。它已成為提供電子郵件通訊安全服務的實際標準。

如上所述,它使用公鑰密碼學、對稱金鑰密碼學、雜湊函式和數字簽名。它提供:

  • 隱私
  • 發件人身份驗證
  • 訊息完整性
  • 不可否認性

除了這些安全服務外,它還提供資料壓縮和金鑰管理支援。PGP 使用現有的加密演算法,例如 RSA、IDEA、MD5 等,而不是發明新的演算法。

PGP 的工作原理

Working of PGP
  • 計算訊息的雜湊值。(MD5 演算法)

  • 使用發件人的私鑰(RSA 演算法)對生成的 128 位雜湊值進行簽名。

  • 將數字簽名與訊息連線起來,然後壓縮結果。

  • 生成一個 128 位對稱金鑰 KS,並使用 IDEA 加密壓縮後的訊息。

  • 使用 RSA 演算法使用接收者的公鑰加密 KS,並將結果附加到加密的訊息。

PGP 訊息的格式如下所示。ID 指示使用哪個金鑰加密 KS 以及使用哪個金鑰驗證雜湊上的簽名。

PGP Message Format

在 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 方案在網路體系結構中的實現層如下圖所示。這兩種方案都提供了電子郵件通訊的應用程式級安全性。

Employability of 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。

Standard DNS Vulnerability

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 查詢。

在本章中,我們討論了在應用層使用的機制,以為了端到端通訊提供網路安全。

廣告