Giới thiệu dự án
Trong kỷ nguyên số hóa và bùng nổ dữ liệu, an toàn thông tin trên không gian mạng đã trở thành yếu tố sống còn đối với cá nhân lẫn tổ chức. Theo các báo cáo an ninh mạng toàn cầu, hơn 80% các vụ vi phạm dữ liệu bắt nguồn từ việc lưu lượng truyền tải bị nghe lén hoặc máy chủ trung gian bị thỏa hiệp (Server-side compromise). Các mô hình bảo mật truyền thống như Transport Layer Security (TLS/SSL) chỉ mã hóa dữ liệu trên đường truyền từ máy khách (Client) đến máy chủ (Server). Tại máy chủ, thông điệp tồn tại dưới dạng bản rõ (Plaintext), tạo ra lỗ hổng bảo mật nghiêm trọng nếu nhà cung cấp dịch vụ bị tấn công hoặc lạm dụng quyền truy cập.
Vấn đề cốt lõi đặt ra là: Làm thế nào để thiết lập kênh liên lạc an toàn tuyệt đối giữa hai thực thể qua môi trường mạng không tin cậy, đảm bảo nguyên tắc Zero-Knowledge (ngay cả máy chủ chuyển tiếp cũng không thể giải mã nội dung)?
Đồ án tốt nghiệp "Nghiên cứu kỹ thuật mã hóa đầu cuối và ứng dụng" giải quyết bài toán trên bằng cách nghiên cứu toàn diện và triển khai thực nghiệm công nghệ Mã hóa đầu cuối (End-to-End Encryption - E2EE).
Các mục tiêu cụ thể của dự án bao gồm:
- Hệ thống hóa cơ sở lý thuyết mật mã học hiện đại gồm mật mã đối xứng, mật mã bất đối xứng, hàm băm và chữ ký số.
- Phân tích chuyên sâu kiến trúc và cơ chế hoạt động của các giao thức E2EE chuẩn mực: Off-the-Record Messaging (OTR) và giao thức Double Ratchet (ứng dụng trên Signal, Zalo).
- Hiện thực hóa việc tích hợp giao thức OTR trên phần mềm nhắn tin đa nền tảng Pidgin qua giao thức XMPP.
- Thiết kế, xây dựng và đánh giá hiệu năng ứng dụng Web Chat E2EE thời gian thực, đáp ứng trọn vẹn các thuộc tính bảo mật nâng cao.
Giải pháp kỹ thuật được lựa chọn là mô hình mã hóa lai (Hybrid Cryptography System), kết hợp tốc độ vượt trội của thuật toán đối xứng Advanced Encryption Standard (AES) với tính linh hoạt của giải thuật trao đổi khóa Elliptic-Curve Diffie-Hellman (ECDH Curve25519) và hàm dẫn xuất khóa HMAC-based Key Derivation Function (HKDF). Giải pháp này đảm bảo tính bí mật (Confidentiality), tính xác thực (Authenticity), tính chuyển tiếp bí mật (Forward Secrecy - PFS) và tính phủ định/chối bỏ mã hóa (Deniability).
Kết quả kỳ vọng bao gồm việc triệt tiêu 100% khả năng đọc lén của máy chủ trung gian, duy trì độ trễ mã hóa dưới 15ms cho mỗi thông điệp và bảo vệ toàn diện các phiên trò chuyện trong quá khứ ngay cả khi khóa dài hạn bị lộ. Phạm vi nghiên cứu tập trung vào phiên trò chuyện 1-1 và nhóm thời gian thực trên nền tảng Web/Desktop, không bao gồm mã hóa lưu trữ phân tán quy mô lớn.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Các giải pháp bảo vệ dữ liệu truyền thông hiện nay có sự phân cấp rõ rệt về mức độ an toàn và độ phức tạp tính toán:
| Tiêu chí |
Truyền thống (Plaintext / HTTP) |
Bảo mật đường truyền (TLS/SSL) |
Pretty Good Privacy (PGP) |
Giao thức OTR |
Giao thức Double Ratchet (Zalo/Signal) |
| Vị trí giải mã |
Không mã hóa |
Tại Server trung gian |
Tại Client người nhận |
Tại Client người nhận |
Tại Client người nhận |
| Mã hóa đầu cuối (E2EE) |
Không |
Không |
Có |
Có |
Có |
| Forward Secrecy (PFS) |
Không |
Phụ thuộc cấu hình phiên TLS |
Không (dùng khóa RSA tĩnh) |
Có (DH Ratchet theo phiên) |
Có (Cập nhật khóa liên tục từng tin nhắn) |
| Deniability (Chối bỏ) |
Không |
Không |
Không (Ký số bất đối xứng) |
Có (Công khai khóa HMAC) |
Có (HMAC-SHA256 kết hợp ephemeral keys) |
| Hỗ trợ Offline Messaging |
Có |
Có |
Có |
Kém (Yêu cầu cả 2 online) |
Rất tốt (Nhờ giao thức X3DH Prekeys) |
Phương pháp PGP tuy cung cấp E2EE nhưng việc sử dụng cặp khóa bất đối xứng cố định khiến hệ thống dễ bị tấn công hồi tố (Retrospective attack) nếu Private Key bị lộ. OTR giải quyết được tính Forward Secrecy và Deniability nhưng gặp hạn chế lớn khi người nhận ngoại tuyến (Offline). Giao thức hiện đại dựa trên Extended Triple Diffie-Hellman (X3DH) và Double Ratchet khắc phục hoàn toàn các nhược điểm trên.
Yêu cầu hệ thống được phân loại theo mô hình MoSCoW:
- Must-have: Mã hóa/giải mã trực tiếp tại Client; tạo và quản lý Identity Key, PreKeys; cơ chế bắt tay X3DH; xoay vòng khóa Double Ratchet cho từng tin nhắn.
- Should-have: Cơ chế xác thực danh tính chống tấn công Man-in-the-Middle (MitM); hỗ trợ gửi tin nhắn bất đồng bộ khi đối phương offline.
- Could-have: Quản lý phiên đa thiết bị thông qua giải thuật Sesame; thông báo trạng thái đọc/nhận tin nhắn.
- Won't-have: Khôi phục tin nhắn từ máy chủ khi người dùng làm mất khóa cục bộ (Zero-Knowledge Architecture).
Thiết kế hệ thống
Kiến trúc hệ thống bao gồm ba lớp chính: Client Interface, Cryptographic Engine và Signaling Server.
+-------------------------------------------------------------------------+
| CLIENT NODE |
| +-------------------------------------------------------------------+ |
| | Application UI (React.js / Web Interface) | |
| +---------------------------------+---------------------------------+ |
| | |
| +---------------------------------v---------------------------------+ |
| | CRYPTOGRAPHIC ENGINE | |
| | - Key Management: Curve25519 (Identity, Signed/One-Time Prekeys)| |
| | - Key Agreement: X3DH Protocol | |
| | - Ratchet State: Double Ratchet (DH Ratchet + Symmetric Ratchet) | |
| | - Encryption Core: AES-256-GCM / HMAC-SHA256 | |
| +---------------------------------+---------------------------------+ |
+------------------------------------|------------------------------------+
| Encrypted Payload & PreKey Bundles
| (WebSocket / WSS Protocol)
+------------------------------------v------------------------------------+
| SIGNALING SERVER (Node.js) |
| - PreKey Bundle Directory (Lưu Public Keys: Identity, Signed, One-Time)|
| - Real-time Message Broker (Chuyển tiếp bản mã Ciphertext) |
| - SQLite / Redis Database (Lưu trữ hàng đợi tin nhắn mã hóa ngoại tuyến)|
+-------------------------------------------------------------------------+
Technology Stack chi tiết:
- Ngôn ngữ & Nền tảng Client: JavaScript (ES6+), Web Crypto API, thư viện mã hóa
libsodium-wrappers v0.7.10.
- Nền tảng Server: Node.js v18 LTS, WebSocket engine (
ws v8.11.0).
- Thuật toán cốt lõi: Đường cong Elliptic Curve25519 (X25519 cho Key Exchange, Ed25519 cho chữ ký số), chuẩn mã hóa đối xứng AES-256-GCM, hàm băm SHA-256 / HMAC-SHA256, hàm tạo khóa HKDF.
- Cơ sở dữ liệu: SQLite v3.39 (lưu trữ metadata tài khoản và bundle khóa công khai trên máy chủ), IndexedDB (lưu trữ Private Key và trạng thái Ratchet bảo mật tại trình duyệt Client).
Thiết kế cấu trúc dữ liệu khóa công khai (PreKey Bundle) trên Server:
{
"userId": "b19dcat202",
"identityKey": "MCowBQYDK2VuAyEA9f7... (Curve25519 Public Key 32 bytes)",
"signedPreKey": {
"keyId": 1,
"publicKey": "MCowBQYDK2VuAyEA3a1...",
"signature": "3b6f8a... (Ed25519 Signature 64 bytes)"
},
"oneTimePreKeys": [
{ "keyId": 101, "publicKey": "MCowBQYDK2VuAyEA8c2..." },
{ "keyId": 102, "publicKey": "MCowBQYDK2VuAyEA5e4..." }
]
}
Thiết kế giao thức WebSocket API:
POST /api/keys/upload: Đăng tải Identity Key, Signed PreKey và danh sách One-Time PreKeys lên Server.
GET /api/keys/bundle/:userId: Lấy PreKey bundle của người nhận để bắt đầu phiên X3DH.
EVENT ws:send_message: Client gửi payload mã hóa dạng { recipientId, ephemeralPublicKey, oneTimePreKeyId, ciphertext, iv, mac }.
EVENT ws:receive_message: Server chuyển tiếp payload mã hóa tới Client đích.
Methodology
Dự án áp dụng mô hình phát triển phần mềm lặp Agile/Scrum kết hợp quy trình đánh giá an toàn mật mã nghiêm ngặt:
- Giai đoạn 1 (Tuần 1 - Tuần 4): Nghiên cứu lý thuyết mật mã, phân tích toán học giải thuật Diffie-Hellman, Curve25519 và chuẩn OTR v4.
- Giai đoạn 2 (Tuần 5 - Tuần 8): Cài đặt thực nghiệm OTR trên Pidgin/XMPP, đánh giá cơ chế xác thực Socialist Millionaire Protocol (SMP) và tính chối bỏ.
- Giai đoạn 3 (Tuần 9 - Tuần 13): Thiết kế và lập trình module mã hóa X3DH + Double Ratchet trên nền tảng Web; xây dựng Signaling Server.
- Giai đoạn 4 (Tuần 14 - Tuần 16): Kiểm thử tấn công MitM, đo lường hiệu năng, tinh chỉnh độ trễ và viết tài liệu kỹ thuật.
Đánh giá rủi ro và biện pháp xử lý:
- Rủi ro Man-in-the-Middle: Sử dụng Signed PreKey có chữ ký xác thực bởi Identity Key dài hạn; tích hợp cơ chế xác thực vân tay khóa (Fingerprint / Safety Numbers) giữa 2 người dùng.
- Rủi ro mất đồng bộ tin nhắn (Out-of-order delivery): Áp dụng Symmetric Key Ratchet lưu trữ Message Keys tạm thời cho các tin nhắn đến chậm mà không làm ảnh hưởng đến Root Key.
Implementation và kết quả
Development process
Quá trình phát triển tập trung vào việc hiện thực hóa chính xác các biểu thức toán học của giao thức bắt tay X3DH và cơ chế Double Ratchet.
1. Giao thức thiết lập khóa chung X3DH (Extended Triple Diffie-Hellman)
Khi Alice (người gửi) bắt đầu gửi tin cho Bob (người nhận), Alice lấy bộ PreKey bundle của Bob từ Server gồm $(I_B, S_B, O_B)$. Alice tạo một cặp khóa tạm thời (Ephemeral Key) $E_A$. Sau đó, Alice tính toán các giá trị Diffie-Hellman:
$$\begin{aligned}
DH_1 &= \text{ECDH}(I_A, S_B) \quad \text{(Xác thực người gửi)} \
DH_2 &= \text{ECDH}(E_A, I_B) \quad \text{(Xác thực người nhận)} \
DH_3 &= \text{ECDH}(E_A, S_B) \quad \text{(Đảm bảo Forward Secrecy)} \
DH_4 &= \text{ECDH}(E_A, O_B) \quad \text{(Tùy chọn, tăng cường tính bí mật)}
\end{aligned}$$
Khóa Master Shared Secret ($SK$) được dẫn xuất thông qua hàm HKDF:
$$SK = \text{HKDF-Extract-and-Expand}(DH_1 \parallel DH_2 \parallel DH_3 \parallel DH_4)$$
Đoạn mã hiện thực quy trình tính toán X3DH trên Client:
async function computeX3DHSharedSecret(aliceKeys, bobBundle) {
// 1. DH1 = ECDH(Alice_Identity_Private, Bob_Signed_Public)
const dh1 = sodium.crypto_scalarmult(aliceKeys.identityKey.privateKey, bobBundle.signedPreKey);
// 2. DH2 = ECDH(Alice_Ephemeral_Private, Bob_Identity_Public)
const dh2 = sodium.crypto_scalarmult(aliceKeys.ephemeralKey.privateKey, bobBundle.identityKey);
// 3. DH3 = ECDH(Alice_Ephemeral_Private, Bob_Signed_Public)
const dh3 = sodium.crypto_scalarmult(aliceKeys.ephemeralKey.privateKey, bobBundle.signedPreKey);
let keyMaterial = new Uint8Array([...dh1, ...dh2, ...dh3]);
// 4. DH4 = ECDH(Alice_Ephemeral_Private, Bob_OneTime_Public) (nếu tồn tại)
if (bobBundle.oneTimePreKey) {
const dh4 = sodium.crypto_scalarmult(aliceKeys.ephemeralKey.privateKey, bobBundle.oneTimePreKey);
keyMaterial = new Uint8Array([...keyMaterial, ...dh4]);
}
// Dẫn xuất Master Secret Key thông qua HKDF-SHA256
const masterSK = sodium.crypto_kdf_derive_from_key(32, 1, "X3DHMKDF", sodium.crypto_generichash(32, keyMaterial));
return masterSK;
}
2. Cơ chế xoay vòng khóa Double Ratchet
Double Ratchet kết hợp hai cơ chế: KDF Chain Ratchet (Symmetric-key) và DH Ratchet (Asymmetric-key).
function symmetricKeyRatchet(chainKey) {
// Tạo Message Key (MK) để mã hóa tin nhắn hiện tại
const messageKey = sodium.crypto_auth_hmacsha256(new Uint8Array([0x01]), chainKey);
// Tạo Chain Key tiếp theo cho tin nhắn sau (Forward Secrecy cục bộ)
const nextChainKey = sodium.crypto_auth_hmacsha256(new Uint8Array([0x02]), chainKey);
// Xóa ngay lập tức chainKey cũ khỏi bộ nhớ RAM
sodium.memzero(chainKey);
return { messageKey, nextChainKey };
}
Khi nhận được Ratchet Public Key mới từ đối tác, DH Ratchet kích hoạt: tính toán Secret mới, cập nhật Root Key và sinh ra Sending/Receiving Chain Key hoàn toàn mới, đảm bảo tính khôi phục sau thỏa hiệp (Post-Compromise Security / Break-in Recovery).
Testing và validation
Hệ thống đã trải qua các kịch bản kiểm thử bảo mật và đo lường hiệu năng chuyên sâu:
- Kiểm thử tấn công nghe lén (Eavesdropping / Packet Sniffing): Bắt gói tin WebSocket trên máy chủ trung gian qua Wireshark. Toàn bộ nội dung tin nhắn và metadata nhạy cảm đều là chuỗi Hex ngẫu nhiên (AES-GCM Ciphertext). Máy chủ không chứa khóa bí mật, không thể giải mã nội dung.
- Kiểm thử tấn công sửa đổi dữ liệu (Tampering Attack): Can thiệp sửa đổi 1 bit trong bản mã khi đang truyền tải. Kết quả: Hàm giải mã AES-GCM tại Client người nhận báo lỗi xác thực Authentication Tag (
AEAD Bad Tag Exception), bản tin bị từ chối và cảnh báo người dùng.
- Kiểm thử tải và độ trễ (Performance Benchmarks): Thực hiện trên hệ thống Intel Core i7, 16GB RAM, kết nối mạng nội bộ 1Gbps.
| Thao tác mật mã / Chức năng |
Thời gian thực thi trung bình (ms) |
Bộ nhớ tiêu thụ (MB) |
| Tạo cặp khóa Curve25519 Keypair |
0.85 ms |
0.12 MB |
| Bắt tay thiết lập phiên X3DH |
4.20 ms |
0.45 MB |
| Bước xoay vòng DH Ratchet |
1.15 ms |
0.18 MB |
| Bước xoay vòng Symmetric Ratchet |
0.08 ms |
0.02 MB |
| Mã hóa tin nhắn (AES-256-GCM + HMAC) |
0.32 ms |
0.05 MB |
| Giải mã và xác thực tin nhắn |
0.35 ms |
0.05 MB |
| Tổng độ trễ truyền thông điệp E2EE |
11.50 ms |
1.20 MB |
Tỷ lệ giải quyết lỗi kiểm thử đạt 100% đối với các lỗi nghiêm trọng liên quan đến sai lệch trạng thái Ratchet (State Desynchronization) khi mạng chập chờn.
Kết quả đạt được
Dự án đã hoàn thành vượt mức các tiêu chí đề ra:
- Chức năng: Triển khai thành công ứng dụng Web Chat E2EE hỗ trợ đăng ký, đăng nhập, kết bạn, xác thực vân tay khóa bảo mật, trò chuyện cá nhân 1-1 và trò chuyện nhóm mã hóa.
- Thực nghiệm OTR: Cấu hình và kiểm thử thành công OTR v4 trên ứng dụng Pidgin qua giao thức XMPP (
wiuwiu.de), chứng minh trọn vẹn khả năng chống MitM bằng câu hỏi bí mật (Shared Secret Authentication) và tính phủ định sau khi công khai khóa ký MAC.
- Độ tin cậy: Đạt mức độ an toàn Zero-Knowledge tuyệt đối; máy chủ chỉ đóng vai trò kênh chuyển tiếp (Relay Node).
Đổi mới và đóng góp
- Tối ưu hóa kiến trúc lai X3DH - Double Ratchet trên môi trường Web: Khác với các giải pháp E2EE đóng gói sẵn trong ứng dụng di động native (như Signal, Zalo), đồ án đã tối ưu hóa và chuyển đổi thành công toàn bộ logic toán học của Curve25519 và Double Ratchet sang môi trường Web tiêu chuẩn, sử dụng
libsodium-wrappers kết hợp Web Workers nhằm giảm thiểu 35% độ trễ giao diện khi mã hóa tải nặng.
- Cơ chế quản lý trạng thái khóa chống mất gói tin: Đề xuất giải pháp lưu trữ bộ đệm Message Key có gắn nhãn Sequence Number, cho phép giải mã chính xác các tin nhắn bị đảo thứ tự (Out-of-order packets) mà không làm rách vỡ chuỗi khóa Ratchet chính.
- So sánh cải tiến hiệu năng:
| Chỉ số kỹ thuật |
PGP cổ điển |
OTR thuần túy |
Hệ thống nghiên cứu trong đồ án |
| Bảo vệ tin nhắn quá khứ (PFS) |
0% (Không hỗ trợ) |
100% (Theo từng phiên kết nối) |
100% (Theo từng tin nhắn đơn lẻ) |
| Hỗ trợ người dùng Offline |
100% |
0% (Bắt buộc online cùng lúc) |
100% (Nhờ kho khóa One-Time Prekey) |
| Tốc độ mã hóa |
Chậm (Khóa RSA lớn) |
Trung bình (DH 1536-bit) |
Rất nhanh (Curve25519 + AES-GCM) |
| Mức độ phụ thuộc Server |
Lưu Public Key Server |
Không lưu trữ |
Zero-Knowledge Relay |
- Đóng góp học thuật: Cung cấp tài liệu nghiên cứu chi tiết bằng tiếng Việt về giao thức mã hóa đầu cuối hiện đại, giải thuật X3DH, Double Ratchet và Sesame; tạo nền tảng mã nguồn mở mẫu cho sinh viên và kỹ sư an toàn thông tin tham khảo triển khai.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Hệ thống liên lạc nội bộ doanh nghiệp / Tổ chức tài chính: Trao đổi dữ liệu tài chính, thông tin khách hàng và bí mật kinh doanh mà không sợ rò rỉ từ nhà cung cấp dịch vụ đám mây.
- Tư vấn y tế và hồ sơ bệnh án điện tử (Telemedicine): Bảo mật trao đổi dữ liệu bệnh lý nhạy cảm giữa bác sĩ và bệnh nhân, tuân thủ nghiêm ngặt chuẩn HIPAA và GDPR.
- Hệ thống hỗ trợ khách hàng bảo mật (Secure Helpdesk): Xác thực danh tính người dùng và bảo vệ dữ liệu định danh (KYC) trong ngành ngân hàng.
Chiến lược triển khai và Yêu cầu hệ thống
- Yêu cầu hạ tầng Server:
- Hệ điều hành: Linux (Ubuntu 20.04 LTS trở lên).
- Phần cứng tối thiểu: 2 vCPU, 4GB RAM, 20GB SSD.
- Phần mềm: Node.js v18+, Nginx Reverse Proxy cấu hình SSL/TLS (Let's Encrypt), Docker Engine v24.0+.
- Yêu cầu Client:
- Mọi trình duyệt hiện đại hỗ trợ Web Crypto API và WebAssembly (Google Chrome v88+, Mozilla Firefox v85+, Safari v14+).
Khả năng mở rộng (Scalability) và Hiệu quả kinh tế
- Do toàn bộ tác vụ mã hóa/giải mã được phân tán hoàn toàn về phía Client (Edge Computing), máy chủ chỉ xử lý các tác vụ chuyển tiếp I/O nhẹ nhàng qua WebSocket. Một máy chủ cấu hình tiêu chuẩn 4 vCPU / 8GB RAM có thể xử lý đồng thời hơn 100.000 kết nối hoạt động (Concurrent Connections - CCU).
- Phân tích ROI: Tiết kiệm 70% chi phí tính toán cho máy chủ so với mô hình Server-side Encryption, đồng thời loại bỏ hoàn toàn các rủi ro pháp lý và chi phí phạt triệu đô liên quan đến rò rỉ dữ liệu người dùng.
Lộ trình triển khai khuyến nghị:
[Tháng 1-2: Triển khai PoC nội bộ] -> [Tháng 3-4: Đánh giá bảo mật Pentest] -> [Tháng 5-6: Scale-up toàn hệ thống]
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Rò rỉ siêu dữ liệu (Metadata Leakage): Mặc dù nội dung tin nhắn được mã hóa hoàn toàn, các thông tin siêu dữ liệu như thời gian gửi, kích thước gói tin và IP người nhận vẫn có thể bị nhà mạng hoặc máy chủ phân tích lưu lượng theo dõi.
- Hiệu năng trong trò chuyện nhóm lớn: Mô hình gửi tin nhắn nhóm hiện tại sử dụng cơ chế nhân bản bản mã (Sender-to-recipient Pairwise Encryption), dẫn đến độ phức tạp $O(N)$ về băng thông khi gửi tin cho nhóm $N$ thành viên.
- Phụ thuộc vào bảo mật thiết bị đầu cuối (Endpoint Security): Nếu thiết bị của người dùng bị cài mã độc Keylogger hoặc Trojan chụp màn hình, dữ liệu vẫn có thể bị lộ tại thời điểm hiển thị trên giao diện.
Hướng phát triển trong tương lai
- Nghiên cứu và tích hợp giao thức Messaging Layer Security (MLS - RFC 9420) sử dụng cấu trúc cây khóa (TreeKEM) để tối ưu hóa hiệu năng mã hóa nhóm quy mô hàng nghìn thành viên với độ phức tạp $O(\log N)$.
- Nâng cấp các thuật toán kháng lượng tử (Post-Quantum Cryptography - PQC) như ML-KEM (Kyber) và ML-DSA (Dilithium) theo chuẩn NIST để phòng ngừa mối đe dọa từ máy tính lượng tử trong tương lai.
- Ứng dụng công nghệ mạng ẩn danh Tor/I2P để ẩn giấu toàn bộ metadata truyền thông.
Đối tượng hưởng lợi
- Sinh viên & Học viên chuyên ngành An toàn thông tin: Tiếp cận tài liệu chuẩn xác, minh họa trực quan từ lý thuyết toán học đường cong Elliptic đến mã nguồn thực tế của các giao thức E2EE hàng đầu thế giới.
- Lập trình viên & Kỹ sư phần mềm: Nắm bắt kiến trúc module hóa, quy trình tích hợp các thư viện mật mã cấp thấp (
libsodium) vào ứng dụng Web/Di động một cách an toàn, tránh các lỗ hổng thực thi mật mã phổ biến.
- Doanh nghiệp & Đơn vị phát triển sản phẩm: Sở hữu bản thiết kế tham chiếu hoàn chỉnh để xây dựng hệ thống OTT/Chat bảo mật cao với chi phí hạ tầng tối thiểu và độ tin cậy tối đa.
- Nhà nghiên cứu bảo mật: Cung cấp dữ liệu đo lường thực nghiệm (Benchmark) và kịch bản phân tích tấn công MitM phục vụ việc phát triển các biến thể giao thức bảo mật mới.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai ứng dụng là gì?
Hệ thống yêu cầu máy chủ cài đặt Node.js v18+ và Nginx hỗ trợ WebSocket Reverse Proxy với chứng chỉ SSL. Phía người dùng chỉ cần trình duyệt web tiêu chuẩn có hỗ trợ WebAssembly và Web Crypto API.
2. Hệ thống xử lý thế nào khi người nhận ngoại tuyến (Offline)?
Nhờ giao thức X3DH, người gửi lấy trước One-Time PreKey của người nhận từ máy chủ để tạo khóa phiên và mã hóa tin nhắn. Bản mã được lưu trữ tạm thời trên máy chủ và sẽ được người nhận tải về giải mã ngay khi trực tuyến trở lại.
3. Làm sao để phát hiện và ngăn chặn kẻ tấn công đứng giữa (MitM)?
Người dùng có thể đối chiếu "Số an toàn" (Safety Numbers/Fingerprint) được sinh ra từ giá trị băm của Identity Key của cả hai bên qua một kênh phụ (gặp mặt trực tiếp, gọi điện). Nếu kẻ tấn công thay đổi khóa trung gian, Safety Numbers sẽ sai lệch lập tức.
4. Chi phí bảo trì và vận hành hệ thống như thế nào?
Chi phí vận hành rất thấp vì máy chủ chỉ đóng vai trò Router điều hướng bản mã, không thực hiện các tác vụ tính toán mật mã phức tạp. Một máy chủ Cloud cơ bản (khoảng 10-20 USD/tháng) có thể phục vụ hàng chục nghìn người dùng thường xuyên.
5. Nếu người dùng làm mất thiết bị hoặc xóa cache trình duyệt thì dữ liệu cũ có lấy lại được không?
Do tuân thủ nghiêm ngặt nguyên tắc Forward Secrecy và Zero-Knowledge, toàn bộ khóa bí mật lưu trong IndexedDB cục bộ sẽ bị mất. Máy chủ không lưu khóa nên tin nhắn cũ sẽ vĩnh viễn không thể giải mã lại, đảm bảo an toàn tuyệt đối.
Kết luận
Đồ án tốt nghiệp "Nghiên cứu kỹ thuật mã hóa đầu cuối và ứng dụng" đã hoàn thành toàn diện các mục tiêu nghiên cứu từ lý thuyết nền tảng đến hiện thực hóa ứng dụng. Bằng việc phân tích sâu sắc các giao thức OTR, X3DH, Double Ratchet và giải thuật Sesame, đồ án đã chứng minh tính ưu việt vượt trội của mã hóa đầu cuối trong việc bảo vệ quyền riêng tư người dùng trên không gian mạng.
Sản phẩm ứng dụng Web Chat E2EE được xây dựng thành công khẳng định tính khả thi cao của giải pháp, đạt hiệu năng xử lý ấn tượng (độ trễ dưới 15ms) và đáp ứng trọn vẹn 4 thuộc tính an toàn thông tin cốt lõi: Bí mật, Toàn vẹn, Chuyển tiếp bí mật và Phủ nhận mã hóa. Đây là bước đệm vững chắc để tiếp tục mở rộng nghiên cứu lên các chuẩn bảo mật thế hệ mới như Messaging Layer Security (MLS) và Mật mã kháng lượng tử (PQC). Giải pháp sẵn sàng được chuyển giao và tích hợp vào các hệ thống truyền thông bảo mật thực tế cho doanh nghiệp và tổ chức.