密碼系統 - 攻擊



密碼學就像一種用於保護資訊的秘密程式碼。有時,有些人試圖破解這些程式碼以訪問私人資訊。這些嘗試就是我們所說的攻擊。密碼系統可能會遭受多種形式的攻擊,我們將在本文中討論這些攻擊。

在當前情況下,不僅商業,幾乎所有人類生活方面都由資訊驅動。因此,保護敏感資訊免受攻擊和其他惡意活動變得至關重要。讓我們考慮一下,資訊通常是一種攻擊型別。

Cryptosystem Attacks

通常,攻擊根據攻擊者採取的操作進行分類。攻擊可能分為兩種形式:被動或主動。

讓我們看看這些攻擊是什麼 -

被動攻擊

被動密碼攻擊試圖透過監控或記錄廣泛的通訊來未經授權地訪問敏感資料或資訊。在這種情況下,資料和通訊保持不變且未被篡改。攻擊者可以訪問的所有內容都是資料。

這些操作是被動的,因為它們不會影響資訊或干擾通訊渠道。被動攻擊通常被認為是資訊盜竊。產品盜竊和資訊盜竊之間唯一的區別在於,資料盜竊仍然使資料處於所有者的控制之下。因此,被動資訊攻擊比商品盜竊更危險,因為資訊盜竊可能在所有者不知情的情況下發生。

Passive Attacks

主動攻擊

主動攻擊包括對資訊執行某個過程以某種方式更改它。例如,

  • 以未經授權的方式修改資訊。

  • 發起意外或未經授權的資訊傳輸。

  • 修改身份驗證資料,包括髮件人的身份或與資訊相關的日期時間戳。

  • 未經授權的資料刪除。

  • 拒絕授權使用者訪問資訊(拒絕服務)。

Active Attacks

密碼學中提供了許多工具和方法來建立能夠抵禦上述大多數攻擊的密碼系統。

攻擊者如何思考

讓我們看看密碼系統的當前環境以及用於破解它們的攻擊。

密碼系統周圍的環境

在考慮潛在攻擊時,瞭解密碼系統的環境非常重要。攻擊者的能力取決於攻擊者的假設和環境資訊。

對密碼學中的安全環境和攻擊者的技能做出了三個假設。

加密方案詳細資訊

以下兩種密碼學演算法是密碼系統設計的基石 -

  • 公開演算法 - 在這種情況下,演算法的完整規範可供公眾領域使用,眾所周知。

  • 專有演算法 - 這些演算法僅為設計系統及其使用者的人員所知。

對於專有演算法,安全是透過模糊性來確保的。由於私有演算法是在內部建立的,並且可能沒有經過徹底的缺陷檢查,因此它們可能不是最強大的演算法。

其次,它們僅允許封閉組之間進行通訊。因此,對於人們在現代通訊中相互通訊的大量已知和未知專案,它們效率低下。此外,根據 Kerckhoff 原則,應公開包含加密強度的金鑰的方法。

因此,攻擊者對加密演算法的瞭解是關於安全環境的初始假設。

密文的可用性

我們知道,資料在從明文轉換為密文後,會透過不安全的公共通道(如電子郵件)傳輸。這意味著攻擊者可以假設可以訪問密碼系統生成的密文。

明文和密文的可用性

這個假設不如其他假設明顯。但是,可能存在攻擊者可以訪問明文和相關密文的情況。一些此類可能的情況是 -

  • 攻擊者透過說服傳送方轉換所選明文來獲取密文。

  • 無意中,接收者可能會向攻擊者提供明文訪問許可權。攻擊者可以訪問從開放通道收集的相應密文。

  • 在公鑰密碼系統中,任何可能的攻擊者都可以知道加密金鑰,因為它處於公開領域。他可以使用此金鑰建立明文和密文的匹配對。

密碼攻擊

攻擊者的主要目標是破解密碼系統並從密文中提取明文。由於該技術現在已成為公開知識,因此攻擊者只需要發現秘密解密金鑰即可檢索明文。

然後,他盡一切努力發現密碼系統的金鑰。在攻擊者成功找到金鑰後,被攻擊的系統被宣佈已遭到破壞或破解。

根據使用的方法,對密碼系統的攻擊可分為以下幾種:

  • **僅密文攻擊 (COA)** - 攻擊者使用此方法時可以訪問密文集合。他無法控制相關的明文。當可以使用給定的一組密文來確定相應的明文時,COA 被認為是成功的。在某些情況下,此方法可用於找出加密金鑰。當前的密碼系統可以防止針對僅密文的攻擊。

  • **已知明文攻擊 (KPA)** - 使用此技術,攻擊者知道密文的某些部分為明文。利用這些知識,挑戰在於解密其餘密文。這可以透過查詢金鑰或以其他方式完成。分組密碼最有效地使用線性密碼分析進行攻擊。

  • **選擇明文攻擊 (CPA)** - 攻擊者使用此方法加密他選擇文字的版本。因此,他可以選擇密文和明文對。這使得他更容易找出加密金鑰。針對雜湊函式和分組密碼使用的差分密碼分析就是這種攻擊型別的示例。RSA(一種眾所周知的公鑰密碼系統)容易受到選擇明文攻擊。

  • **字典攻擊** - 此方法有多種版本,所有這些版本都涉及建立“字典”。在最基本的攻擊版本中,攻擊者會建立一個包含他隨著時間的推移學習到的密文和匹配明文的字典。當攻擊者將來收到密文時,他會在字典中檢查以確定匹配的明文。

  • **蠻力攻擊 (BFA)** - 使用此技術,攻擊者嘗試所有可能使用的金鑰以找出金鑰。如果金鑰有 8 位,則有 28 = 256 個可能的金鑰。攻擊者嘗試使用 256 個金鑰中的每一個依次解密,瞭解演算法和密文。如果金鑰很長,則攻擊將花費很長時間才能完成。

  • **生日攻擊** - 攻擊利用了蠻力方法的另一種版本。它用於攻擊密碼學中的雜湊函式。當老師問班上的學生他們的出生日期時,學生可以回答 365 個可用日期中的任何一個。假設第一個學生出生在 8 月 3 日。然後,要找到下一個出生日期為 8 月 3 日的學生,我們需要詢問大約 1.25 * √365 ≈ 25 名學生。

    同樣,如果雜湊函式產生 64 位雜湊值,則可能的雜湊值是 1.8x1019。透過不斷檢查函式的多個輸入,在大約 5.1x109 個隨機輸入後,大約會獲得相同的輸出。

    當攻擊者找到兩個產生相同雜湊值的不同的輸入時,就會發生**衝突**;在這種情況下,雜湊函式被認為已損壞。

  • **中間人攻擊 (MIM)** - 大多數公鑰密碼系統(在通訊前需要金鑰交換)都是這種攻擊的目標。

    • 為了與主機 B 通訊,主機 A 請求 B 的公鑰。

    • 攻擊者沒有回覆此請求,而是傳送了他的公鑰。

    • 因此,攻擊者可以讀取主機 A 傳送給主機 B 的任何內容。

    • 攻擊者使用他的公鑰讀取資料,重新加密它,並將其傳送給 B 以保持通訊線路暢通。

    • 為了使其看起來像是 BA 接收資料,攻擊者將他的公鑰作為 A 的公鑰傳送。

  • **側通道攻擊 (SCA)** - 這種攻擊不針對任何特定型別的演算法或密碼系統。相反,它的目的是利用密碼系統物理實現中的弱點。

  • **定時攻擊** - 它們利用不同處理器計算以不同速率計算的事實。可以透過測量這些時間來確定處理器正在執行的特定計算。例如,延長的加密時間表示金鑰很長。

  • **功耗分析攻擊** - 這些攻擊類似於定時攻擊,因為可以透過測量功耗來確定有關底層計算型別的資訊。

  • **故障分析攻擊** - 在這些攻擊中,密碼系統被誘匯出錯,攻擊者檢查輸出以查詢有價值的資訊。

實際的密碼攻擊

由於此處提到的對密碼系統的大多數攻擊都起源於學術界,因此它們被認為具有極高的教育意義。實際上,許多學術攻擊都涉及對攻擊者和環境的能力做出極其不切實際的假設。例如,在選擇密文攻擊中,攻擊者需要數量不切實際的故意選擇明文密文對。它可能根本不切實際。

但是,任何攻擊的存在都應該引起警覺,尤其是在攻擊方法具有發展潛力的情況下。

防止密碼攻擊

應建立強大的密碼系統以防止密碼攻擊。防止這種情況的一些方法包括:

  • 定期更新密碼演算法和協議,使其不會過時。

  • 確保資料得到正確加密,以便即使落入壞人之手也無法讀取。

  • 應使用強大且唯一的金鑰進行加密。

  • 將金鑰儲存在安全的地方。

  • 確保密碼系統的正確實施。

  • 定期測試系統是否存在漏洞。

  • 教育員工瞭解密碼攻擊預防措施。

廣告

© . All rights reserved.