
程序设计目的: 后量子密码学 (PQC),通常被称为量子安全、抗量子或量子抵抗,专注于开发密码算法,主要是公钥算法,旨在抵御量子计算机可能发起的密码分析攻击。我们的网络PQC攻击抵抗评估器程序旨在创建一个动态监控和评估工具。该工具旨在检查和测试两点之间(例如两台服务器)的通信对量子密码攻击的抵抗水平/弹性。通过使用此工具,用户可以实时衡量密码措施的有效性,确保在面对新兴量子威胁时的强大安全性。
# 创建日期: 2022/01/16
# 版本: v_0.1.0
# 版权所有: Copyright (c) 2022 LiuYuancheng
# 许可证: GNU GENERAL PUBLIC LICENSE version3
简介
后量子密码算法的主要目标是保护系统免受量子计算机带来的潜在威胁。这些先进的计算机器有能力破坏广泛使用的密码方案,包括RSA和ECC。本项目的目标是开发一个精密的探测/扫描程序。该程序将分析两点之间交换的网络数据包或进入一个主机的所有数据包,提供关于其对量子密码攻击抵抗能力的定量置信水平。目的是提供一个强大而动态的评估工具,赋能用户在量子计算进步的时代评估其通信信道的安全态势。
鉴于我们当前的硬件在模拟量子密码攻击方面存在固有困难,我们的重点是解析来自主机/目标端或网络中间点的网络数据包。这种方法能够分析网络通信协议以确定其量子安全性。该方法涉及将已识别的协议与我们可定制的综合量子安全标准数据库进行比较,特别是利用NSA_Suite_B_Cryptography的Quantum Resistant Suite。例如:
-
如果数据包采用OpenSSH 2.3.1(SSH2)协议并使用aes128-ctr加密,我们得出结论,它缺乏对量子密码攻击的抵抗能力。
-
如果数据包采用WireGuard协议,利用Curve25519进行密钥交换,ChaCha20进行对称加密,Poly1305进行消息认证码,SipHash用于哈希表键,以及BLAKE2s用于密码哈希函数,我们对其抵抗量子密码攻击的能力表示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层之上的层)。随后,它生成一个独特的标记,表示该特定通信实例对量子密码攻击的抵抗能力。
攻击抵抗评估结果也将存档在数据库中,用于未来的研究应用。为确保我们分析的相关性,我们致力于在正在进行的研究中持续更新攻击抵抗分数映射/字典。此外,用户可以灵活地自定义自己的抵抗分数映射,根据其特定需求定制评估过程。
用户操作处理和结果可视化UI模块。
我们还提供UI/仪表板,用于获取使用源部分,然后以列表形式显示A和B之间的所有通信,按协议类型对所有数据包进行分类,并突出显示我们计算的结果,为用户提供结论。用户界面显示设计如下:

Version: 0.2.1
网络数据包评估过程
分析协议复杂性始于解析TCP/UDP层中的详细信息。通过细致地匹配协议所使用的原语,我们得出一个置信水平,表明其对量子密码攻击的抵抗能力。持续更新数据库的紧迫任务支撑着我们紧跟不断发展的研究的承诺。作为说明性示例,从数据包中解析的数据包含以下详细信息:
例如,我们从数据包中解析这些数据:
示例-1:
当我们只检查数据层消息加密使用ssh,如下所示:

我们发现该通信对量子密码攻击的抵抗能力非常低。然后给予低分。
示例-2:
当我们只检查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
额外库/软件需求
-
wxPython : https://docs.wxpython.org/index.html
Install: pip install wxPython -
pyShark / tshark : https://github.com/KimiNewt/pyshark
Install: 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
从文件加载数据包数据
-
在UI中,从菜单栏中选择
加载数据,然后选择从文件加载:

-
选择文件并按下
打开按钮,文件加载后按下解析数据按钮
从网络接口加载数据包
-
在管理员权限下运行程序。在UI中,从菜单栏中选择
加载数据,然后选择从网络接口加载:

-
选择您要嗅探的网络接口。
-
设置您要嗅探多长时间 (接口: 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,将其设置为当前用于连接防火墙的名称,如下所示:

以下显示了以管理员身份运行程序并捕获来自其他用户的出站数据的执行示例日志:

程序设置与使用
要查看源代码、详细设置和使用方法,请参考项目链接:
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
如果您在使用过程中遇到任何问题或发现任何 bug,请提出 issue 或给我发送消息。
感谢您花时间查阅本文详情,如果您有任何疑问、建议或发现任何程序错误,请随时给我留言。如果您能提供一些评论并分享任何改进建议,以便我们能做得更好,将不胜感激!
No comment for this article.