Network PQC Attack Resistance Evaluator and Outgoing Traffic Logger

English 简体中文 繁体中文 Tiếng Việt
Summary

The Network PQC Attack Resistance Evaluator is a dynamic monitoring tool designed to assess the resilience of network communication against potential quantum cryptanalytic attacks. It functions by capturing and parsing network packets, then analyzing the cryptographic protocols and algorithms employed across different layers. The tool compares these identified primitives against a customizable database of quantum-safe standards, such as the NSA Suite B, to assign a quantitative confidence level or score for quantum resistance. This evaluation is presented via a user-friendly interface, enabling developers to gauge the security posture of their communication channels in real-time. Additionally, the program includes an outgoing HTTP(S) traffic logger module for monitoring host activities.

程式設計目的:Post-quantum cryptography (PQC),通常被稱為量子安全、量子防護或抗量子,專注於開發加密演算法,主要是公鑰演算法,旨在抵禦量子電腦潛在的密碼分析攻擊。我們的網路 PQC 攻擊抵抗評估器程式的目的是創建一個動態監控與評估工具。此工具旨在檢查和測試兩點(例如兩台伺服器)之間的通訊對抗 Quantum Crypto Attacks 的抵抗等級/韌性。透過利用此工具,使用者可以即時衡量加密措施的有效性,確保在新興量子威脅面前的穩健安全性。

# Created:     2022/01/16
# Version:     v_0.1.0
# Copyright:   Copyright (c) 2022 LiuYuancheng
# License:     GNU GENERAL PUBLIC LICENSE version3

介紹

Post-quantum cryptographic algorithms 的設計主要目標是保護系統免受量子電腦帶來的潛在威脅。這些先進的計算機有能力破壞廣泛使用的加密方案,包括 RSA 和 ECC。本專案的目標是開發一個精密的探測/掃描程式。此程式將分析在兩點之間交換的網路封包或進入單一主機的所有封包,提供一個關於其對抗 Quantum Crypto Attacks 抵抗能力的定量置信水平。其目的是提供一個穩健且動態的評估工具,讓使用者能夠在量子計算進步的時代衡量其通訊通道的安全態勢。

鑑於我們目前的硬體在模擬量子密碼攻擊方面存在固有困難,我們的重點是從主機/目的地端或網路中點解析網路封包。這種方法能夠分析網路通訊協定以確定其量子安全性。該方法涉及將已識別的協定與我們可自訂的量子安全標準綜合資料庫進行比較,特別是利用 NSA_Suite_B_Cryptography 的 Quantum Resistant Suite。例如:

  • 如果封包使用 OpenSSH 2.3.1(SSH2) 協定並採用 aes128-ctr 加密,我們得出結論,它缺乏對抗 Quantum Crypto Attacks 的能力。

  • 如果封包使用 WireGuard 協定,利用 Curve25519 進行金鑰交換,ChaCha20 進行對稱加密,Poly1305 進行訊息認證碼,SipHash 進行雜湊表金鑰,以及 BLAKE2s 進行密碼雜湊函數,我們對其抵抗 Quantum Crypto Attacks 的能力表示 80% 的置信水平。這種系統性評估確保了對各種通訊協定量子韌性的細緻理解,為安全格局提供了寶貴的見解。

網路 PQC 攻擊抵抗評估器主 UI 視圖

為了提升使用者體驗,我們的工具包含一個使用者友善的介面,簡化了流程。使用者可以輕鬆選擇監控來源,然後評估 P2P 量子攻擊抵抗分數以及詳細的封包類別資訊。以下是網路 PQC 攻擊抵抗評估器使用者介面的概覽,為使用者提供了一個清晰直觀的平台,以便導航並檢索關鍵資訊。

Version: 0.2.1

相容的輸入網路資料來源可以是來自 Wireshark / t-shark 的 pcap、tcp dump 或由 Ettercap 的鏡像功能產生的嗅探封包。

HTTP(s) 請求記錄器

此模組用於記錄從 Ubuntu 機器發出的所有出站 HTTP(s) 請求,以收集資料來分析主機是否產生任何惡意活動。資料將記錄在 Logs 資料夾中。本專案包含以下 5 個模組。所有模組都需要在 sudo 權限下運行。


程式設計

程式模組設計詳情

網路 PQC 攻擊抵抗評估器程式包含三個主要部分:

  • 網路流量封包收集/嗅探模組。

  • 協定加密演算法量子攻擊抵抗評估模組。

  • 使用者操作處理和結果視覺化 UI 模組。

這三個模組將在三個並行執行緒中運行,並由程式主資料管理器管理,詳細的工作流程如下所示:

Version: 0.2.1

網路流量封包收集/嗅探模組

網路流量封包收集/嗅探模組旨在高效地捕獲和載入所有通訊封包,無論是從 cap 檔案還是直接從網路介面。此模組根據使用者定義的設定對封包進行細緻的過濾和分類。隨後,它標準化封包資訊,包括各種層次細節和訊息加密演算法。處理後的資訊隨後無縫傳輸到評估模組進行深入分析。這種簡化的流程確保了對封包處理的全面和有組織的方法,並為徹底的評估和鑑定奠定了基礎。

協定加密演算法量子攻擊抵抗評估模組

系統配備了從資料庫中檢索量子攻擊抵抗分數圖/字典的功能。在兩個對等點之間的每個通訊會話期間,評估模組系統地分析網路協定的不同層次(IP 層之上的層次)。隨後,它為該特定通訊實例生成一個獨特的標記,代表其對抗 Quantum Crypto Attacks 的抵抗能力。

攻擊抵抗評估結果也將存檔在資料庫中,以供未來的研究應用。為確保我們分析的相關性,我們承諾在持續研究中不斷更新攻擊抵抗分數圖/字典。此外,使用者可以靈活地自訂自己的抵抗分數圖,根據其特定需求調整評估過程。

使用者操作處理和結果視覺化 UI 模組。

我們還提供 UI/儀表板,用於選擇使用來源部分,然後以列表形式顯示 A 和 B 之間的所有通訊,將所有封包按協定類型分類,並突出顯示我們計算的結果,為使用者提供結論。使用者介面顯示的設計如下所示:

Version: 0.2.1

網路封包評估流程

分析協定複雜性始於解析 TCP/UDP 層的詳細資訊。透過仔細匹配協定使用的原語,我們隨後得出一個置信水平,表明其對抗 Quantum Crypto Attacks 的抵抗能力。不斷更新我們的資料庫是我們緊跟不斷發展的研究的承諾的基礎。作為一個說明性範例,從封包解析的資料包含以下詳細資訊:

例如,我們從封包中解析這些資料:

範例一

當我們只檢查資料層訊息加密使用 ssh 如下所示:

我們識別出該通訊對量子密碼攻擊的抵抗能力非常低。然後給予低分。

範例二:

當我們只檢查 TCP 層加密使用 wg(wireguard) 如下所示:

我們識別出該通訊可能具有對抗量子密碼攻擊的能力。然後我們檢查了訊息層加密使用 TLC-v1.2

我們將提高分數。

以下是資料解析過程的詳細工作流程:

協定量子攻擊抵抗分數計算

我們根據 NSA_Suite_B_Cryptography 的 Quantum resistant suite[https://en.wikipedia.org/wiki/NSA_Suite_B_Cryptography] 計算協定的量子安全分數。例如 WireGuard 協定:

標準 WG 使用演算法 符合標準
進階加密標準 (AES),依 FIPS 197,使用 256 位元金鑰保護至最高機密 ChaCha20
橢圓曲線 Diffie-Hellman (ECDH) 金鑰交換,依 FIPS SP 800-56A,使用 Curve P-384 保護至最高機密。 Curve25519
橢圓曲線數位簽章演算法 (ECDSA),依 FIPS 186-4 Curve25519
安全雜湊演算法 (SHA),依 FIPS 180-4,使用 SHA-384 保護至最高機密。 BLAKE2s
Diffie-Hellman (DH) 金鑰交換,依 RFC 3526,最小 3072 位元模數保護至最高機密 Poly1305 Poly1305
RSA 用於金鑰建立 (NIST SP 800-56B rev 1) 和數位簽章 (FIPS 186-4),最小 3072 位元模數保護至最高機密 Poly1305

因此我們給予 WG[QS-Score] = 6.6667

我們使用的每個網路層協定的當前抵抗分數如下所示,使用者也可以根據自己的要求進行調整:

{
    "傳輸層": {
        "DCCP": 0.0,
        "SCTP": 0.0,
        "UDP": 0.0,
        "UDP-Lite": 0.0,
        "TCP": 0.0,
        "PortReference": 0.0,
        "RTP": 0.0,
        "RTCP": 0.0
    },
    "會話層": {
        "NetBIOS": 1.0,
        "NetDump": 1.0,
        "ONC-RPC": 1.0,
        "DCE-RPC": 1.0,
        "HTTP": 1.0,
        "SMTP": 1.0
    },
    "表現層": {
        "MIME": 1.0
    },
    "應用層": {
        "ANCP": 2.0,
        "BOOTP": 2.0,
        "DHCP": 2.0,
        "DNS": 2.0,
        "FTP": 2.0,
        "IMAP": 2.0,
        "iWARP-DDP": 2.0,
        "iWARP-MPA": 2.0,
        "iWARP-RDMAP": 2.0,
        "NTP": 2.0,
        "PANA": 2.0,
        "POP": 2.0,
        "RADIUS": 2.0,
        "RLogin": 2.0,
        "RSH": 2.0,
        "SSH": 4.0,
        "SSHv1": 3.0,
        "SSHv2": 5.0,
        "SNMP": 2.0,
        "Telnet": 2.0,
        "TFTP": 2.0,
        "SASP": 3.0,
        "TLS": 4.0,
        "TLSv1": 5.0,
        "TLSv1.1": 5.0,
        "TLSv1.2": 6.0,
        "TLSv1.3": 7.0,
        "WG": 8.0
    }
}

分數越高表示對量子密碼攻擊的抵抗能力越強。


程式設定

開發環境:python 3.7.4
所需額外函式庫/軟體
  1. wxPythonhttps://docs.wxpython.org/index.html

    安裝: pip install wxPython
  2. pyShark / tsharkhttps://github.com/KimiNewt/pyshark

    安裝: pip install pyshark
所需硬體:無
程式檔案列表
程式檔案 執行環境 描述
src/uiRun.py python 3 主使用者介面框架。
src/uiPanel.py python 3 結果視覺化顯示面板
src/pkgGlobal.py python 3 全域參數控制器
src/PacketParser.py python 3 封包解析模組。
src/ProtocolChecker.py python 3 協定匹配和 QS 分數計算模組。
src/DataMgr.py python 3 程式內部資料管理模組。
ProtocolRef.json   QS 分數匹配字典。
capData/*.cap, *capng   測試封包捕獲資料檔案。

httpRequestLogger.py

一個使用 pyshark (tshark) 的本地 HTTP/HTTPS 流量監控器:從網路介面捕獲出站 HTTP/HTTPS 流量,並將所有請求記錄到日誌檔案。它只會捕獲成功發送的請求。包含的功能:

  • HTTP (埠 80) 流量完全解碼:方法、主機、URI、標頭。

  • HTTPS (埠 443) 流量僅顯示 IP/埠元資料 (TLS 已加密)。

  • 若要完全解密 HTTPS,您需要伺服器的私鑰或使用 SSLKEYLOGFILE 搭配支援的應用程式(請參閱 --keylog 選項)。

所需函式庫:

sudo apt install tshark
sudo pip3 install pyshark --break-system-packages

運行程式:

sudo python3 httpRequestLogger.py 

 


httpRecorder.py

適用於 Ubuntu 的 HTTP/HTTPS/DNS 出站請求監控器:記錄所有出站 HTTP/HTTPS 請求,包括對不存在網域的請求。程式工作流程如下所示:

  • 嗅探埠 80 (HTTP) 和 443 (HTTPS/TLS) 上的原始封包

  • 提取明文 HTTP 的 HTTP Host 標頭 + 方法 + 路徑

  • 從 ClientHello 中提取 HTTPS 的 TLS SNI(無需解密)

  • 捕獲 DNS 查詢(埠 53)以在 TCP 連接前記錄意圖

  • 記錄 TCP SYN 封包作為沒有可讀酬載的連接的備用方案

  • 寫入標準輸出和輪轉日誌檔案

所需函式庫:

sudo apt install tshark
sudo apt-get install python3-pip libpcap-dev tcpdump
sudo pip3 install scapy --break-system-packages

運行程式:

sudo python httpRecorder.py

其他模組:

  • Log.py:此模組用於記錄程式執行資訊。(資訊、警告、除錯、錯誤)

  • RequestTest.py:從另一個非管理員使用者發送一個簡單請求,以查看請求是否可以被 httpRequestLogger.py 記錄。

  • log4jtest.py:從另一個非管理員使用者發送一個簡單的 log4j 請求,以查看請求是否可以被 httpRecorder.py 記錄。

 


程式使用

程式執行
python uiRun.py
從檔案載入封包資料
  1. 在 UI 中,從選單列中選擇 Load Data,然後選擇 Load From File

  1. 選擇檔案並按下 open 按鈕,檔案載入後按下 parse data 按鈕

從網路介面載入封包
  1. 管理員權限 下運行程式。在 UI 中,從選單列中選擇 Load Data,然後選擇 Load From network interface

  1. 選擇您要嗅探的網路介面。

  2. 設定您要嗅探多長時間(介面:WI-Fi:30 <- 這個數字表示嗅探 30 秒內的封包),請避免將數字設定得太大。因為我沒有使用檔案迭代器將封包資料快取到臨時檔案中,所以所有嗅探到的封包資料都將儲存在您的電腦記憶體中。如果您正在觀看影片並使用嗅探功能,在運行嗅探一段時間後可能會出現記憶體錯誤。

Traffic Logger 執行範例:

當您第一次執行時,將會看到以下內容:

2026-02-23 16:30:45,398 INFO     Start the local http(s) request logger module.
2026-02-23 16:30:45,609 INFO     Available interfaces:
1. enp0s31f6
2. any
3. lo (Loopback)
4. bluetooth-monitor
5. nflog
6. nfqueue
7. dbus-system
8. dbus-session
9. ciscodump (Cisco remote capture)
10. dpauxmon (DisplayPort AUX channel monitor capture)
11. randpkt (Random packet generator)
12. sdjournal (systemd Journal Export)
13. sshdump (SSH remote capture)
14. udpdump (UDP Listener remote capture)
15. wifidump (Wi-Fi remote capture)
2026-02-23 16:30:45,610 INFO     [x] No network interface configured, try to use the 1st one as default.
2026-02-23 16:30:45,612 INFO     Start to capture the http(s) request on interface: enp0s31f6
2026-02-23 16:30:52,612 INFO

這是因為我們尚未設定要記錄的 NIC,因此它會列出機器上所有的 NIC 並預設選擇第一個,您可以透過修改參數 gCurrentNIC 來更改 NIC,該名稱是我們目前用於連接防火牆的名稱,如下所示:

以下顯示了以管理員身份執行程式並捕獲來自另一個用戶的傳出數據的執行範例日誌:

程式設定與使用

要查看原始碼、詳細設定和使用方式,請參考專案連結:

https://github.com/LiuYuancheng/Network_PQC_Attack_Resistance_Evaluator

傳出 Http(s) 請求記錄器模組: https://github.com/LiuYuancheng/Network_PQC_Attack_Resistance_Evaluator/tree/main/localHttpLogger/src

授權類型:

GNU GENERAL PUBLIC LICENSE version3

如果您在使用過程中遇到任何問題或發現任何錯誤,請提出問題或發送訊息給我。

感謝您花時間查閱文章詳情,如果您有任何疑問、建議或發現任何程式錯誤,請隨時與我聯繫。如果您能提供一些評論並分享任何改進建議,以便我們能做得更好,將不勝感激~

  RELATED

No related programming articles found. Browse all programming tutorials and articles.

  COMMENTS

0

No comment for this article.