
Mục đích thiết kế chương trình: Mật mã học hậu lượng tử (PQC), thường được gọi là chống lượng tử, an toàn lượng tử hoặc kháng lượng tử, tập trung vào việc phát triển các thuật toán mật mã, chủ yếu là các thuật toán khóa công khai, được thiết kế để chống lại các cuộc tấn công phá mã tiềm năng của máy tính lượng tử. Mục đích của chương trình Network PQC Attack Resistance Evaluator của chúng tôi là tạo ra một công cụ giám sát và đánh giá động. Công cụ này nhằm kiểm tra và đánh giá mức độ kháng/khả năng phục hồi của giao tiếp giữa hai điểm, chẳng hạn như hai máy chủ, chống lại các cuộc tấn công Quantum Crypto Attacks. Bằng cách sử dụng công cụ này, người dùng có thể đánh giá hiệu quả của các biện pháp mật mã trong thời gian thực, đảm bảo an ninh mạnh mẽ trước các mối đe dọa lượng tử mới nổi.
# Created: 2022/01/16
# Version: v_0.1.0
# Copyright: Copyright (c) 2022 LiuYuancheng
# License: GNU GENERAL PUBLIC LICENSE version3
Giới thiệu
Các thuật toán mật mã hậu lượng tử được thiết kế với mục tiêu chính là bảo mật hệ thống chống lại các mối đe dọa tiềm tàng từ máy tính lượng tử. Những cỗ máy tính toán tiên tiến này có khả năng phá vỡ các lược đồ mật mã được sử dụng rộng rãi, bao gồm RSA và ECC. Mục tiêu của dự án này là phát triển một chương trình thăm dò/quét tinh vi. Chương trình này sẽ phân tích các gói mạng được trao đổi giữa hai điểm hoặc tất cả các gói đến một máy chủ, cung cấp mức độ tin cậy định lượng về khả năng kháng cự của chúng đối với các cuộc tấn công Quantum Crypto Attacks. Mục đích là cung cấp một công cụ đánh giá mạnh mẽ và năng động, giúp người dùng đánh giá tình hình bảo mật của các kênh liên lạc trong kỷ nguyên tiến bộ của điện toán lượng tử.
Với khó khăn cố hữu trong việc mô phỏng các cuộc tấn công mật mã lượng tử bằng phần cứng hiện tại của chúng tôi, trọng tâm của chúng tôi là phân tích các gói mạng từ phía máy chủ/đích hoặc trong các điểm giữa mạng. Cách tiếp cận này cho phép phân tích các giao thức truyền thông mạng để xác định tính an toàn lượng tử của chúng. Phương pháp luận bao gồm việc so sánh các giao thức đã xác định với cơ sở dữ liệu toàn diện có thể tùy chỉnh của chúng tôi về các tiêu chuẩn an toàn lượng tử, đặc biệt sử dụng NSA_Suite_B_Cryptography's Quantum Resistant Suite. Ví dụ:
-
Nếu một gói sử dụng giao thức OpenSSH 2.3.1(SSH2) với mã hóa aes128-ctr, chúng tôi kết luận rằng nó thiếu khả năng kháng cự chống lại các cuộc tấn công Quantum Crypto Attacks.
-
Nếu gói sử dụng giao thức WireGuard, tận dụng Curve25519 để trao đổi khóa, ChaCha20 để mã hóa đối xứng, Poly1305 cho mã xác thực thông điệp, SipHash cho khóa bảng băm và BLAKE2s cho hàm băm mật mã, chúng tôi thể hiện mức độ tin cậy 80% vào khả năng kháng cự của nó chống lại các cuộc tấn công Quantum Crypto Attacks. Đánh giá có hệ thống này đảm bảo sự hiểu biết sâu sắc về khả năng phục hồi lượng tử của các giao thức truyền thông khác nhau, cung cấp những hiểu biết có giá trị về bối cảnh bảo mật.
Giao diện người dùng chính của Network PQC Attack Resistance Evaluator
Để nâng cao trải nghiệm người dùng, công cụ của chúng tôi bao gồm một giao diện thân thiện với người dùng giúp đơn giản hóa quy trình. Người dùng có thể dễ dàng chọn nguồn giám sát, sau đó đánh giá điểm kháng tấn công lượng tử P2P cùng với thông tin chi tiết về danh mục gói. Dưới đây là cái nhìn tổng quan về giao diện người dùng của Network PQC Attack Resistance Evaluator, cung cấp một nền tảng rõ ràng và trực quan để người dùng điều hướng và truy xuất thông tin quan trọng.

Version: 0.2.1
Nguồn dữ liệu mạng đầu vào tương thích có thể là pcap từ Wireshark / t-shark, tcp dump hoặc gói được đánh hơi tạo ra bởi chức năng phản chiếu của Ettercap.
Trình ghi yêu cầu Http(s)
Mô-đun này được sử dụng để ghi lại tất cả các yêu cầu http(s) đi ra từ một máy Ubuntu để thu thập dữ liệu nhằm phân tích xem có bất kỳ hoạt động độc hại nào được tạo ra từ máy chủ hay không. Dữ liệu sẽ được ghi lại trong thư mục Logs. Dự án này bao gồm 5 mô-đun như hình dưới đây. Tất cả các mô-đun cần được chạy dưới quyền sudo.
Thiết kế chương trình
Chi tiết thiết kế mô-đun chương trình
Chương trình Network PQC Attack Resistance Evaluator bao gồm ba phần chính:
-
Mô-đun thu thập / đánh hơi gói lưu lượng mạng.
-
Mô-đun đánh giá khả năng kháng tấn công lượng tử của thuật toán mã hóa giao thức.
-
Mô-đun giao diện người dùng xử lý hành động người dùng và hiển thị kết quả.
Ba mô-đun sẽ chạy trong ba luồng song song và được quản lý bởi trình quản lý dữ liệu chính của chương trình, quy trình làm việc chi tiết được hiển thị dưới đây:

Version: 0.2.1
Mô-đun thu thập / đánh hơi gói lưu lượng mạng
Mô-đun Thu thập/Đánh hơi Gói Lưu lượng Mạng được thiết kế để thu thập và tải hiệu quả tất cả các gói truyền thông từ một tệp cap hoặc trực tiếp từ giao diện mạng. Mô-đun này thực hiện việc lọc và phân loại gói một cách tỉ mỉ dựa trên các cài đặt do người dùng định nghĩa. Sau đó, nó chuẩn hóa thông tin gói, bao gồm các chi tiết lớp đa dạng và các thuật toán mã hóa thông điệp. Thông tin đã xử lý sau đó được truyền liền mạch đến Mô-đun Đánh giá để phân tích chuyên sâu. Quy trình hợp lý này đảm bảo một cách tiếp cận toàn diện và có tổ chức để xử lý gói và tạo tiền đề cho việc đánh giá và thẩm định kỹ lưỡng.
Mô-đun đánh giá khả năng kháng tấn công lượng tử của thuật toán mã hóa giao thức
Hệ thống được trang bị để truy xuất bản đồ/từ điển điểm kháng tấn công lượng tử từ cơ sở dữ liệu. Trong mỗi phiên giao tiếp giữa hai thiết bị ngang hàng, Mô-đun Đánh giá sẽ phân tích một cách có hệ thống các lớp khác nhau của giao thức mạng (các lớp trên lớp IP). Sau đó, nó tạo ra một dấu hiệu đặc biệt đại diện cho khả năng kháng cự chống lại các cuộc tấn công Quantum Crypto Attacks cho phiên giao tiếp cụ thể đó.
Kết quả đánh giá khả năng kháng tấn công cũng sẽ được lưu trữ trong cơ sở dữ liệu cho các ứng dụng nghiên cứu trong tương lai. Để đảm bảo tính phù hợp của phân tích, chúng tôi cam kết liên tục cập nhật bản đồ/từ điển điểm kháng tấn công trong suốt quá trình nghiên cứu đang diễn ra. Ngoài ra, người dùng có thể linh hoạt tùy chỉnh bản đồ điểm kháng cự của riêng họ, điều chỉnh quy trình đánh giá để đáp ứng nhu cầu cụ thể của họ.
Mô-đun giao diện người dùng xử lý hành động người dùng và hiển thị kết quả.
Chúng tôi cũng cung cấp giao diện người dùng/Bảng điều khiển để lấy phần nguồn sử dụng, sau đó hiển thị tất cả các giao tiếp giữa A và B trong một danh sách, phân loại tất cả các gói theo loại giao thức và làm nổi bật kết quả chúng tôi đã tính toán để đưa ra kết luận cho người dùng. Thiết kế hiển thị giao diện người dùng được thể hiện dưới đây:

Version: 0.2.1
Quy trình đánh giá gói mạng
Phân tích sự phức tạp của giao thức bắt đầu bằng việc phân tích chi tiết từ lớp TCP/UDP. Bằng cách khớp tỉ mỉ các nguyên thủy được giao thức sử dụng, chúng tôi sau đó suy ra mức độ tin cậy cho thấy khả năng kháng cự của nó chống lại các cuộc tấn công Quantum Crypto Attacks. Nhiệm vụ cấp bách là liên tục cập nhật cơ sở dữ liệu của chúng tôi củng cố cam kết của chúng tôi trong việc theo kịp nghiên cứu đang phát triển. Ví dụ minh họa, dữ liệu được phân tích từ gói bao gồm các chi tiết sau:
Ví dụ, chúng tôi phân tích các dữ liệu này từ gói:
Ví dụ-1:
Khi chúng tôi chỉ kiểm tra mã hóa thông điệp lớp dữ liệu sử dụng ssh như hình dưới đây:

Chúng tôi xác định rằng giao tiếp có khả năng kháng tấn công mật mã lượng tử rất thấp. Sau đó, chúng tôi cho nó điểm thấp.
Ví dụ-2:
Khi chúng tôi chỉ kiểm tra mã hóa lớp TCP sử dụng wg(wireguard) như hình dưới đây:

Chúng tôi xác định rằng giao tiếp có thể có khả năng kháng tấn công mật mã lượng tử. Sau đó, chúng tôi kiểm tra mã hóa lớp thông điệp sử dụng TLC-v1.2:

chúng tôi sẽ tăng điểm lên cao hơn.
Dưới đây là quy trình làm việc chi tiết của quá trình phân tích dữ liệu:

Tính toán điểm kháng tấn công lượng tử của giao thức
Chúng tôi tính toán điểm an toàn lượng tử của một giao thức dựa trên bộ kháng lượng tử của NSA_Suite_B_Cryptography [https://en.wikipedia.org/wiki/NSA_Suite_B_Cryptography] Ví dụ giao thức WireGuard:
| Tiêu chuẩn | Thuật toán WG được sử dụng | Phù hợp tiêu chuẩn |
|---|---|---|
| Advanced Encryption Standard (AES), theo FIPS 197, sử dụng khóa 256 bit để bảo vệ đến mức TOP SECRET | ChaCha20 | Có |
| Elliptic Curve Diffie-Hellman (ECDH) Key Exchange, theo FIPS SP 800-56A, sử dụng Curve P-384 để bảo vệ đến mức TOP SECRET. | Curve25519 | Không |
| Elliptic Curve Digital Signature Algorithm (ECDSA), theo FIPS 186-4 | Curve25519 | Không |
| Secure Hash Algorithm (SHA), theo FIPS 180-4, sử dụng SHA-384 để bảo vệ đến mức TOP SECRET. | BLAKE2s | Có |
| Diffie-Hellman (DH) Key Exchange, theo RFC 3526, mô-đun tối thiểu 3072-bit để bảo vệ đến mức TOP SECRET | Poly1305 | Có |
| RSA để thiết lập khóa (NIST SP 800-56B rev 1) và chữ ký số (FIPS 186-4), mô-đun tối thiểu 3072-bit để bảo vệ đến mức TOP SECRET | Poly1305 | Có |
Vì vậy, chúng tôi cho WG[QS-Score] = 6.6667
Điểm kháng cự hiện tại cho mỗi giao thức lớp mạng chúng tôi sử dụng được hiển thị dưới đây, người dùng cũng có thể điều chỉnh dựa trên yêu cầu của họ:
{
"Transport layer": {
"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
},
"Session layer": {
"NetBIOS": 1.0,
"NetDump": 1.0,
"ONC-RPC": 1.0,
"DCE-RPC": 1.0,
"HTTP": 1.0,
"SMTP": 1.0
},
"Presentation layer": {
"MIME": 1.0
},
"Application layer": {
"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
}
}
Điểm số cao hơn có nghĩa là khả năng kháng tấn công mật mã lượng tử cao hơn.
Thiết lập chương trình
Môi trường phát triển: python 3.7.4
Thư viện/Phần mềm bổ sung cần thiết
-
wxPython : https://docs.wxpython.org/index.html
Install: pip install wxPython -
pyShark / tshark : https://github.com/KimiNewt/pyshark
Install: pip install pyshark
Phần cứng cần thiết: Không
Danh sách tệp chương trình
| Tệp chương trình | Môi trường thực thi | Mô tả |
|---|---|---|
src/uiRun.py |
python 3 | Khung giao diện người dùng chính. |
src/uiPanel.py |
python 3 | Bảng hiển thị trực quan hóa kết quả |
src/pkgGlobal.py |
python 3 | Bộ điều khiển tham số toàn cục |
src/PacketParser.py |
python 3 | Mô-đun phân tích gói. |
src/ProtocolChecker.py |
python 3 | Mô-đun khớp giao thức và tính toán điểm QS. |
src/DataMgr.py |
python 3 | Mô-đun quản lý dữ liệu nội bộ chương trình. |
ProtocolRef.json |
Từ điển khớp điểm QS. | |
capData/*.cap, *capng |
Tệp dữ liệu bắt gói kiểm tra. |
httpRequestLogger.py
Một Trình giám sát lưu lượng HTTP/HTTPS cục bộ sử dụng pyshark (tshark): Thu thập lưu lượng HTTP/HTTPS đi từ một giao diện mạng và ghi lại tất cả các yêu cầu vào các tệp nhật ký. Nó sẽ chỉ thu thập các yêu cầu đã gửi thành công. Các chức năng bao gồm:
-
Lưu lượng HTTP (cổng 80) được giải mã hoàn toàn: phương thức, máy chủ, URI, tiêu đề.
-
Lưu lượng HTTPS (cổng 443) chỉ hiển thị siêu dữ liệu IP/cổng (TLS được mã hóa).
-
Để giải mã HTTPS hoàn toàn, bạn sẽ cần khóa riêng của máy chủ hoặc sử dụng SSLKEYLOGFILE với một ứng dụng hỗ trợ (xem tùy chọn --keylog).
Thư viện yêu cầu:
sudo apt install tshark
sudo pip3 install pyshark --break-system-packages
Chạy chương trình:
sudo python3 httpRequestLogger.py
httpRecorder.py
Trình giám sát yêu cầu đi HTTP/HTTPS/DNS cho Ubuntu Ghi lại TẤT CẢ các yêu cầu HTTP/HTTPS đi, bao gồm cả những yêu cầu đến các miền không tồn tại. Quy trình làm việc của chương trình được hiển thị dưới đây:
-
Đánh hơi các gói thô trên cổng 80 (HTTP) và 443 (HTTPS/TLS)
-
Trích xuất tiêu đề HTTP Host + phương thức + đường dẫn cho HTTP văn bản rõ
-
Trích xuất TLS SNI từ ClientHello cho HTTPS (không cần giải mã)
-
Thu thập các truy vấn DNS (cổng 53) để ghi lại ý định trước khi kết nối TCP
-
Ghi nhật ký các gói TCP SYN làm dự phòng cho các kết nối không có tải trọng đọc được
-
Ghi vào cả stdout và một tệp nhật ký xoay vòng
Thư viện yêu cầu:
sudo apt install tshark
sudo apt-get install python3-pip libpcap-dev tcpdump
sudo pip3 install scapy --break-system-packages
Chạy chương trình:
sudo python httpRecorder.py
Các mô-đun khác:
-
Log.py : Mô-đun này được sử dụng để ghi lại thông tin thực thi chương trình (info, warning, debug, error).
-
RequestTest.py: Gửi một yêu cầu đơn giản từ một người dùng không phải quản trị viên khác để xem liệu yêu cầu có thể được ghi lại bởi
httpRequestLogger.pyhay không. -
log4jtest.py : Gửi một yêu cầu log4j đơn giản từ một người dùng không phải quản trị viên khác để xem liệu yêu cầu có thể được ghi lại bởi
httpRecorder.pyhay không.
Cách sử dụng chương trình
Thực thi chương trình
python uiRun.py
Tải dữ liệu gói từ tệp
-
Trong giao diện người dùng (UI), chọn
Load Datatừ thanh menu và chọnLoad From File:

-
Chọn tệp và nhấn nút
open, sau khi tệp được tải, nhấn nútparse data.
Tải gói từ giao diện mạng
-
Chạy chương trình dưới quyền quản trị. Trong giao diện người dùng (UI), chọn
Load Datatừ thanh menu và chọnLoad From network interface:

-
Chọn giao diện mạng bạn muốn đánh hơi.
-
Đặt thời gian bạn muốn đánh hơi (giao diện: WI-Fi:30 <- số này có nghĩa là đánh hơi gói trong 30 giây), vui lòng tránh đặt số quá lớn. Vì tôi không sử dụng trình lặp tệp để lưu trữ dữ liệu gói vào một tệp tạm thời, nên tất cả dữ liệu gói đã đánh hơi sẽ được lưu trong bộ nhớ máy tính của bạn. Nếu bạn đang xem video và sử dụng chức năng đánh hơi, có thể xảy ra lỗi bộ nhớ sau khi chạy chức năng đánh hơi trong một thời gian ngắn.
Traffic Logger Ví dụ thực thi:
Khi bạn chạy lần đầu tiên, bạn sẽ thấy điều này:
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
Điều này là do chúng ta chưa thiết lập NIC mà chúng ta muốn ghi lại, vì vậy nó sẽ liệt kê tất cả các NIC của máy và mặc định chọn cái đầu tiên, bạn có thể thay đổi NIC bằng cách sửa đổi tham số gCurrentNIC với tên hiện tại chúng ta sử dụng để liên kết với tường lửa như hình dưới đây:

Nhật ký ví dụ thực thi được hiển thị bên dưới khi chạy chương trình với quyền quản trị viên và ghi lại dữ liệu đi ra từ người dùng khác:

Thiết lập và Sử dụng Chương trình
Để kiểm tra mã nguồn, thiết lập chi tiết và cách sử dụng, vui lòng tham khảo liên kết dự án:
https://github.com/LiuYuancheng/Network_PQC_Attack_Resistance_Evaluator
Mô-đun ghi nhật ký yêu cầu Http(s) đi ra: https://github.com/LiuYuancheng/Network_PQC_Attack_Resistance_Evaluator/tree/main/localHttpLogger/src
Loại giấy phép:
GNU GENERAL PUBLIC LICENSE version3
Nếu bạn gặp bất kỳ vấn đề nào trong quá trình sử dụng hoặc tìm thấy bất kỳ lỗi nào, vui lòng tạo một vấn đề (issue) hoặc gửi tin nhắn cho tôi.
Cảm ơn bạn đã dành thời gian kiểm tra chi tiết bài viết, nếu bạn có bất kỳ câu hỏi, đề xuất hoặc tìm thấy bất kỳ lỗi chương trình nào, vui lòng gửi tin nhắn cho tôi. Rất cảm ơn nếu bạn có thể đưa ra một số nhận xét và chia sẻ bất kỳ lời khuyên cải tiến nào để chúng tôi có thể làm cho công việc của mình tốt hơn ~
No comment for this article.