Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin và không gian mạng phát triển nhanh chóng, các hoạt động trao đổi thông tin trực tuyến đặt ra yêu cầu nghiêm ngặt về tính bí mật và quyền riêng tư nhằm ngăn ngừa các hiểm họa tấn công từ tội phạm mạng. Dữ liệu cá nhân, nội dung tin nhắn và giao dịch tài chính khi truyền qua hạ tầng mạng công cộng luôn đối mặt với nguy cơ bị nghe lén, can thiệp hoặc thất thoát dữ liệu. Kỹ thuật mã hóa đầu cuối (End-to-End Encryption - E2EE) xuất hiện như một giải pháp bảo vệ dữ liệu xuyên suốt từ điểm khởi tạo đến điểm tiếp nhận, đảm bảo các bên trung gian—kể cả nhà cung cấp dịch vụ mạng (ISP) lẫn máy chủ ứng dụng—không thể giải mã hay đọc trộm nội dung. Đề tài đồ án tốt nghiệp "Nghiên cứu kỹ thuật mã hóa đầu cuối và ứng dụng" được thực hiện bởi sinh viên Phạm Công Trường (ngành An toàn thông tin, Học viện Công nghệ Bưu chính Viễn thông) dưới sự hướng dẫn của PGS. TS Đỗ Xuân Chợ nhằm hệ thống hóa lý thuyết mật mã, đánh giá các giao thức E2EE tiêu biểu và thử nghiệm ứng dụng thực tế.
Mục tiêu và nhiệm vụ nghiên cứu của đồ án được xác định gồm hai trọng tâm:
- Nghiên cứu, làm rõ bản chất kỹ thuật của mã hóa đầu cuối, đặc biệt đi sâu phân tích cơ chế bảo mật của giao thức Off-the-Record Messaging (OTR) cùng kiến trúc giao thức E2EE ứng dụng trong Zalo (kết hợp X3DH, Double Ratchet và Sesame).
- Thực nghiệm kiểm chứng giao thức OTR trên phần mềm nhắn tin chuyên dụng và xây dựng hệ thống web chat mã hóa đầu cuối ứng dụng các thuật toán mật mã phổ biến nhằm đáp ứng các tiêu chuẩn trao đổi thông điệp an toàn.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Các thuật toán mật mã học cơ bản (đối xứng, bất đối xứng, hàm băm, chữ ký số), các giao thức thỏa thuận khóa và trao đổi thông điệp bảo mật (Diffie-Hellman, OTR, X3DH, Double Ratchet), cùng mô hình kiến trúc ứng dụng web chat tích hợp E2EE.
- Phạm vi không gian và thời gian: Nghiên cứu được triển khai tại Khoa An toàn thông tin, Học viện Công nghệ Bưu chính Viễn thông trong giai đoạn khóa học 2019 – 2024, hoàn thành và nghiệm thu vào tháng 12 năm 2023. Hệ thống thử nghiệm được giới hạn trên môi trường mạng máy tính với giao thức nhắn tin mở XMPP (thông qua phần mềm Pidgin) và ứng dụng web chat phân tán chạy trên nền tảng WebSockets.
Cơ sở lý thuyết và phương pháp
Đồ án dựa trên nền tảng mật mã học hiện đại và lý thuyết truyền thông bảo mật. Các khái niệm, mô hình và công nghệ được tác giả khảo sát và vận dụng bao gồm:
- Hệ mật mã đối xứng: Khảo sát các thuật toán như Data Encryption Standard (DES) và Advanced Encryption Standard (AES). Trong đó, AES với độ dài khóa 128 bit được sử dụng làm giải thuật mã hóa bản rõ trực tiếp trong giao thức OTR.
- Hệ mật mã bất đối xứng và đường cong elliptic: Phân tích các hệ mã hóa khóa công khai RSA, Rabin và đường cong Curve25519 (khóa 256 bit) dùng cho việc định danh, xác thực và sinh khóa phiên.
- Hàm băm mật mã và mã xác thực: Ứng dụng các hàm băm MD5, SHA-1, SHA-256 và giải thuật mã xác thực thông báo dựa trên hàm băm (HMAC/HMAC-SHA256) nhằm đảm bảo tính toàn vẹn và tính xác thực cho bản mã.
- Giao thức trao đổi khóa: Giao thức Diffie-Hellman (kích thước nhóm 1536 bit trong OTR) và trao đổi khóa dựa trên đường cong elliptic (ECDH).
- Mô hình giao thức E2EE nâng cao:
- Giao thức OTR (Off-the-Record Messaging).
- Giao thức đồng thuận khóa bất đồng bộ Extended Triple Diffie-Hellman (X3DH).
- Giải thuật quản lý và xoay vòng khóa Double Ratchet (kết hợp Diffie-Hellman Ratchet và Symmetric Key Ratchet dựa trên hàm dẫn xuất khóa KDF/HKDF).
- Giải thuật quản lý phiên đa thiết bị Sesame.
- Phương pháp nghiên cứu: Tác giả kết hợp chặt chẽ giữa nghiên cứu lý thuyết mật mã (phân tích cấu trúc toán học, luồng bản tin, thuộc tính bảo mật) với phương pháp thực nghiệm mô phỏng và kỹ thuật công nghệ phần mềm (thiết kế cơ sở dữ liệu, ca sử dụng và lập trình ứng dụng web chat).
- Nguồn dữ liệu: Tài liệu chuẩn giao thức mật mã học quốc tế, tài liệu kỹ thuật công bố về giao thức mã hóa đầu cuối của ứng dụng Zalo, các bộ thư viện mã nguồn mở hỗ trợ OTR trên ứng dụng Pidgin, cùng dữ liệu thử nghiệm phiên kết nối XMPP trên máy chủ công cộng
wiuwiu.de.
Nội dung chính theo từng chương
CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA
Chương này cung cấp hệ thống lý thuyết nền tảng về mật mã học, phân tích bốn thành phần cơ bản của một hệ mã hóa bao gồm: Bản rõ (Plaintext), Bản mã (Ciphertext), Khóa (Key), và Thuật toán mã hóa/giải mã (Encryption/Decryption). Tác giả làm rõ năm thuộc tính cốt lõi cấu thành an toàn thông tin:
- Tính bí mật (Confidentiality): Ngăn chặn truy cập trái phép từ các bên không được ủy quyền.
- Tính toàn vẹn (Integrity): Đảm bảo thông tin không bị sửa đổi trái phép trong quá trình truyền tải hoặc lưu trữ.
- Tính sẵn sàng (Availability): Duy trì khả năng truy cập thông tin tin cậy, phòng chống lỗi phần cứng, phần mềm và tấn công từ chối dịch vụ.
- Tính xác thực (Authenticity): Xác minh danh tính chủ thể và nguồn gốc xuất xứ của thông điệp.
- Tính chống chối bỏ (Non-repudiation): Buộc người gửi không thể phủ nhận thông điệp đã tạo hoặc phát đi.
Nội dung chương phân loại hệ thống mã hóa theo ba tiêu chí:
- Theo khóa mã hóa: Mã hóa đối xứng (AES, DES) với ưu thế tốc độ cao, chi phí tính toán thấp; và mã hóa bất đối xứng (RSA, Rabin) phục vụ quản lý khóa và xác thực danh tính.
- Theo mục đích: Mã hóa dữ liệu bảo vệ thông tin cá nhân; hàm băm một chiều (MD5, SHA-1, SHA-256) xác minh tính toàn vẹn; và chữ ký số kết hợp băm an toàn với khóa riêng để xác minh nguồn gốc.
- Theo cơ chế thực hiện: Mã hóa dòng (A5/1, RC4) xử lý luồng dữ liệu liên tục độ trễ thấp; và mã hóa khối áp dụng các phép thế, hoán vị tạo tính hỗn loạn (confusion) và khuếch tán (diffusion).
Chương 1 cũng điểm qua các ứng dụng mật mã học tiêu biểu trong thực tế gồm PGP (Pretty Good Privacy của Phil Zimmermann ra đời năm 1991), các giao thức bảo mật tầng truyền tải và mạng (SSL/TLS, SSH, IPSec), mạng riêng ảo (VPN), từ đó dẫn nhập vào khái niệm mã hóa đầu cuối (E2EE).
CHƯƠNG 2: MÃ HÓA ĐẦU CUỐI
Chương 2 là trọng tâm lý thuyết của đồ án, định nghĩa E2EE là hệ thống giao tiếp an toàn ngăn chặn mọi bên thứ ba (kể cả ISP, nhà cung cấp ứng dụng, tin tặc) can thiệp hoặc đọc dữ liệu truyền dẫn. Tác giả phân tích bốn tính chất bắt buộc của một giao thức trao đổi tin nhắn an toàn:
- Confidentiality: Giữ bí mật tuyệt đối nội dung thông điệp trước bên thứ ba.
- Authenticity: Xác định chính xác nguồn gốc và đảm bảo thông điệp không bị thay đổi.
- Forward Secrecy (Tính chuyển tiếp bí mật): Việc lộ một khóa phiên tại thời điểm hiện tại không làm ảnh hưởng đến tính an toàn của các tin nhắn đã trao đổi trong quá khứ.
- Deniability (Tính chối bỏ): Bên thứ ba không thể sử dụng bản mã để chứng minh một thực thể cụ thể đã gửi thông điệp đó, cho phép người dùng phủ nhận dữ liệu mà không làm giảm tính xác thực giữa hai bên giao tiếp nội bộ.
Chương này tập trung mổ xẻ chi tiết hai giao thức:
- Giao thức OTR (Off-the-Record Messaging): Sử dụng kết hợp mã hóa khối AES (khóa 128 bit), trao đổi khóa Diffie-Hellman (nhóm 1536 bit) và hàm băm SHA-1. Cơ chế hoạt động trải qua 7 bước:
- Alice và Bob thống nhất khóa phiên đối xứng tạm thời qua Diffie-Hellman.
- Xác thực danh tính bằng chữ ký bất đối xứng trên giá trị trao đổi trung gian để triệt tiêu nguy cơ tấn công trung gian (Man-in-the-Middle - MitM).
- Mã hóa nội dung tin nhắn bằng AES với khóa phiên chung.
- Tạo khóa ký đối xứng bằng cách băm khóa phiên mật mã (
Khóa ký = SHA-1(Khóa phiên)), sau đó ký bản mã bằng thuật toán HMAC.
- Người nhận giải mã bằng khóa đối xứng và kiểm tra tính hợp lệ của chữ ký HMAC.
- Người gửi công khai (public) khóa HMAC sau khi gửi thành công để đảm bảo thuộc tính Deniability (bất kỳ ai cũng có thể tạo chữ ký giả mạo sau khi khóa ký được công khai, khiến bằng chứng mật mã không còn giá trị pháp lý chống chối bỏ trước bên thứ ba).
- Cả hai bên hủy bỏ (quên) khóa phiên để duy trì tính Forward Secrecy cho từng tin nhắn.
- Giao thức mã hóa đầu cuối của Zalo: Phân tích kiến trúc E2EE được Zalo áp dụng từ đầu năm 2022 dựa trên các chuẩn mã nguồn mở:
- Hệ thống cặp khóa Curve25519: Bao gồm Identity Key ($I$ - khóa định danh 256 bit trên thiết bị chính), Signed PreKeys ($S$ - thay thế định kỳ), One-Time Prekeys ($O$ - khóa dùng một lần), và Ephemeral Keys ($E, D$ - khóa tạm thời sinh phiên).
- Giao thức X3DH: Thiết lập khóa bí mật chủ (Master Secret Key) giữa hai thực thể qua 3 hoặc 4 phép tính Diffie-Hellman kết hợp qua hàm KDF:
$$\text{Master SK} = \text{KDF}(\text{DH1} \parallel \text{DH2} \parallel \text{DH3} \parallel \text{DH4})$$
Trong đó $\text{DH1}=\text{DH}(I_A, S_B)$, $\text{DH2}=\text{DH}(E_A, I_B)$, $\text{DH3}=\text{DH}(E_A, S_B)$, và $\text{DH4}=\text{DH}(E_A, O_B)$ (nếu có $O_B$). Phép tính hỗ trợ gửi tin nhắn khởi tạo phiên ngay cả khi người nhận ngoại tuyến (offline).
- Giải thuật Double Ratchet: Kết hợp Diffie-Hellman Ratchet (thay đổi khóa bí mật theo từng lượt gửi nhận) với Symmetric Key Ratchet (sinh khóa Message Key - MK duy nhất cho từng tin nhắn từ Chain Key qua KDF/HKDF), đảm bảo Forward Secrecy và Break-in Recovery.
- Giải thuật Sesame: Quản lý các phiên mã hóa (active sessions) bất đồng bộ trên kiến trúc đa thiết bị (multi-device) của cùng một tài khoản người dùng, đồng bộ trạng thái khi thêm hoặc xóa thiết bị.
Phần cuối chương trình bày thực hành cấu hình OTR trên phần mềm chat Pidgin qua giao thức XMPP.
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG WEB CHAT MÃ HÓA ĐẦU CUỐI
Chương 3 trình bày việc hiện thực hóa lý thuyết thành một sản phẩm phần mềm web chat hoàn chỉnh:
- Ý tưởng và mục tiêu: Xây dựng nền tảng giao tiếp trực tuyến thời gian thực đáp ứng các tiêu chuẩn an toàn E2EE; phía máy chủ (Server) chỉ đóng vai trò định tuyến lưu lượng bản tin mà hoàn toàn không thể đọc hiểu hay can thiệp vào nội dung trao đổi của người dùng.
- Thiết kế ứng dụng: Xây dựng biểu đồ ca sử dụng (Use Case) bao gồm các chức năng: đăng ký tài khoản, đăng nhập hệ thống, cập nhật thông tin cá nhân, kết bạn, tạo phòng trò chuyện nhóm, kích hoạt tính năng E2EE và gửi nhận tin nhắn. Xây dựng sơ đồ cơ sở dữ liệu (CSDL) lưu trữ thông tin thực thể, danh bạ và các trường khóa mã hóa.
- Cơ chế triển khai E2EE và kết nối mạng: Tích hợp giao thức truyền thông hai chiều WebSockets nhằm đảm bảo tốc độ trao đổi dữ liệu tức thời. Tiến hành sinh cặp khóa trên trình duyệt máy khách (Client), thực hiện giao thức trao đổi khóa an toàn và kiểm tra chữ ký xác thực.
- Hoạt động các chức năng chính: Đồ án kiểm chứng hai trạng thái trao đổi: chế độ không bảo mật (Server lưu trữ và đọc được bản rõ) và chế độ kích hoạt E2EE (dữ liệu gửi lên server ở dạng chuỗi bản mã hóa, chỉ thiết bị của người nhận hợp lệ mới khôi phục được nội dung gốc).
Thiết kế và triển khai
Hệ thống kỹ thuật trong đồ án được triển khai trên hai phương diện: thực nghiệm giao thức chuẩn trên phần mềm mã nguồn mở và xây dựng ứng dụng phần mềm độc lập.
1. Thực nghiệm kiểm chứng giao thức OTR trên phần mềm Pidgin
- Môi trường và cấu hình:
- Ứng dụng khách: Phần mềm nhắn tin đa giao thức Pidgin (hỗ trợ IRC, Jabber/XMPP, SILC, Zephyr...).
- Giao thức mạng: Extensible Messaging and Presence Protocol (XMPP) - tiêu chuẩn nhắn tin phi tập trung.
- Máy chủ thử nghiệm: Máy chủ XMPP công cộng
wiuwiu.de.
- Tài khoản thực nghiệm: Thiết lập hai tài khoản người dùng thử nghiệm gồm
truong.17@wiuwiu.de và b19dcat202@wiuwiu.de.
- Thành phần mã hóa: Plugin Off-the-Record Messaging 4.2.
- Quy trình thực nghiệm:
- Kích hoạt plugin OTR và sinh cặp khóa riêng biệt cho từng tài khoản; thu được dấu vân tay khóa mật mã (Fingerprint). Cụ thể, vân tay của tài khoản được sinh trực tiếp trên giao diện:
CD0FE1A0 DB6FBC51 79BBA544 6E4BFA0E D9EF790B và 6D73E966 B73A49CC FD9FC764 78D7C728 28925D1C.
- Khởi tạo phiên trò chuyện bảo mật. Ban đầu, phiên hiển thị trạng thái "Unverified" (Chưa xác thực) do đối phương chưa được chứng minh danh tính, tiềm ẩn nguy cơ tấn công MitM.
- Thực hiện xác thực đối phương (Authenticate Buddy) bằng phương pháp Bí mật chia sẻ dạng Câu hỏi và Câu trả lời (Shared Secret / Question and Answer). Tác giả thiết lập câu hỏi: "What is my student card name?" và câu trả lời phân biệt chữ hoa-thường: "B19DCAT202".
- Sau khi đối phương nhập chính xác câu trả lời, giá trị trung gian được ký số và kiểm tra thành công, phiên trò chuyện chuyển sang trạng thái bảo mật hoàn toàn ("Private").
2. Thiết kế và hiện thực ứng dụng Web Chat E2EE
- Kiến trúc phần mềm: Mô hình Client - Server kết hợp kỹ thuật truyền thông hai chiều thời gian thực qua giao thức WebSockets.
- Thiết kế cơ sở dữ liệu và ca sử dụng: Hệ thống quản lý các bảng dữ liệu về người dùng, danh sách bạn bè, phiên trò chuyện và các trường lưu trữ thông số định danh/khóa công khai. Biểu đồ Use Case bao gồm: Đăng ký tài khoản, Đăng nhập, Thay đổi thông tin cá nhân, Kết bạn, Tạo cuộc trò chuyện nhóm và Bật/Tắt tính năng mã hóa đầu cuối.
- Quy trình vận hành mã hóa tại Client:
- Khởi tạo và trao đổi khóa: Khi hai người dùng bắt đầu kết nối, phía client tự động sinh tham số mật mã và trao đổi giá trị công khai qua trung gian server mà không làm lộ khóa bí mật.
- Đóng gói và truyền tải thông điệp: Bản rõ của tin nhắn được mã hóa đối xứng ngay tại trình duyệt của người gửi. Bản mã kèm chữ ký xác thực được truyền qua WebSocket đến máy chủ.
- Xử lý phía Server: Server tiếp nhận bản tin ở dạng mã hóa hoàn toàn, ghi nhận log luồng truyền nhưng không có khóa để giải mã nội dung, sau đó chuyển tiếp bản mã tới client người nhận.
- Tiếp nhận và giải mã: Trình duyệt của người nhận áp dụng khóa đã đồng thuận để giải mã bản mã trở lại bản rõ ban đầu và hiển thị lên giao diện trò chuyện.
Kết quả và đóng góp
1. Kết quả kỹ thuật đạt được
Đồ án đã tổng hợp và kiểm chứng các đặc tính kỹ thuật cốt lõi của các mô hình giao thức mật mã qua bảng đối sánh:
| Tiêu chí kỹ thuật |
Giao thức PGP |
Giao thức OTR |
Giao thức E2EE Zalo |
| Hệ mật mã đối xứng |
Tùy chọn (IDEA, 3DES, CAST5) |
AES (128 bit) |
AES / Phối hợp KDF |
| Trao đổi khóa / Bất đối xứng |
RSA / ElGamal |
Diffie-Hellman (1536 bit) |
Curve25519 (ECDH, X3DH) |
| Hàm băm & Xác thực |
MD5, SHA-1, RIPEMD-160 |
SHA-1, HMAC (khóa băm) |
SHA-256, HMAC-SHA256 |
| Tính chuyển tiếp bí mật (Forward Secrecy) |
Không hỗ trợ (dùng khóa tĩnh) |
Có (hủy khóa phiên sau mỗi tin) |
Rất cao (Double Ratchet sinh MK liên tục) |
| Tính chối bỏ (Deniability) |
Không (chữ ký số bất đối xứng cố định) |
Có (công khai khóa ký HMAC sau phiên) |
Có (tích hợp trong cơ chế X3DH) |
| Hỗ trợ tin nhắn ngoại tuyến (Offline) |
Có |
Hạn chế (đòi hỏi tương tác trực tuyến) |
Rất tốt (nhờ Prekeys của X3DH) |
| Hỗ trợ đa thiết bị (Multi-device) |
Thủ công (chia sẻ khóa riêng) |
Kém (chủ yếu kết nối 1-1 đơn lẻ) |
Tối ưu hóa tự động (giải thuật Sesame) |
Thông qua thực nghiệm trên phần mềm Pidgin, tác giả đã chứng minh việc thiết lập thành công phiên trao đổi mã hóa đầu cuối với độ dài khóa trao đổi Diffie-Hellman lớn, loại bỏ hoàn toàn khả năng can thiệp trung gian nhờ quy trình xác thực bằng câu hỏi bí mật. Đồng thời, ứng dụng Web Chat xây dựng trong đồ án đã chứng minh trên thực tế: ngay cả khi máy chủ bị kiểm soát hoàn toàn, nội dung tin nhắn của người dùng vẫn được bảo vệ bí mật tuyệt đối.
2. Giải pháp và kiến nghị
- Khuyến nghị áp dụng giao thức Double Ratchet kết hợp X3DH cho các hệ thống nhắn tin hiện đại thay vì giao thức OTR truyền thống, nhằm khắc phục triệt để nhược điểm không hỗ trợ tin nhắn bất đồng bộ khi người nhận ngoại tuyến.
- Quá trình triển khai E2EE cần tách bạch rõ ràng giữa dữ liệu nội dung (content) và siêu dữ liệu (metadata). Dù E2EE che giấu toàn diện nội dung, các thông số về thời gian, địa điểm và định danh người nhận vẫn cần các biện pháp bảo vệ phụ trợ để tránh lộ lọt thông tin phân tích lưu lượng.
3. Đóng góp của tác giả
- Hệ thống hóa chi tiết và trực quan hóa toàn bộ quy trình toán học, chuỗi bản tin của giao thức OTR từ khâu bắt tay Diffie-Hellman, ký chống giả mạo, mã hóa AES, xác thực HMAC đến cơ chế công khai khóa ký để đạt tính chối bỏ.
- Phân tích toàn diện kiến trúc mã hóa đầu cuối thực tế của ứng dụng Zalo thông qua các giải thuật tiên tiến: X3DH, DH Ratchet, Symmetric Key Ratchet, Double Ratchet và Sesame.
- Xây dựng thành công kịch bản kiểm thử OTR thực tế trên nền tảng XMPP và thiết kế hoàn chỉnh mô hình ứng dụng web chat tích hợp mã hóa E2EE thời gian thực qua WebSockets.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các phân tích và phạm vi nghiên cứu của đồ án, các hạn chế và định hướng phát triển được xác định:
- Hạn chế:
- Vấn đề quản lý và phân phối khóa: Việc lưu trữ và đồng bộ khóa an toàn trên thiết bị người dùng cuối đòi hỏi độ phức tạp cao; nếu người dùng làm mất thiết bị hoặc lộ thông tin đăng nhập tài khoản gốc, tính an toàn của toàn bộ hệ thống bị đe dọa.
- Chi phí tính toán và độ trễ: Quá trình liên tục tính toán các phép toán mật mã trên đường cong elliptic và xoay vòng khóa phiên tạo áp lực tính toán lên các thiết bị đầu cuối có cấu hình phần cứng hạn chế.
- Hạn chế về tính năng phụ trợ: Việc mã hóa đầu cuối khiến máy chủ không thể đọc được nội dung, dẫn đến việc không thể cung cấp các tiện ích tự động thông minh từ nhà cung cấp dịch vụ (như tự động đặt lịch hẹn, lọc tin nhắn rác hoặc tìm kiếm nội dung phía máy chủ).
- Phạm vi thử nghiệm ứng dụng web chat: Hệ thống web chat tự xây dựng dừng lại ở mức mô hình thực nghiệm tính năng E2EE cơ bản trên nền tảng web, chưa tối ưu hóa toàn diện giải thuật Sesame cho môi trường phân tán đa nền tảng phức tạp.
- Hướng nghiên cứu tiếp:
- Nghiên cứu tối ưu hóa hiệu năng giải thuật Double Ratchet trên các thiết bị di động có tài nguyên hạn chế.
- Mở rộng cơ chế mã hóa đầu cuối an toàn cho các cuộc trò chuyện nhóm quy mô lớn (Group Chat E2EE) nhằm giảm thiểu số lượng khóa phiên cần khởi tạo.
- Tích hợp các kỹ thuật quản lý sao lưu khóa an toàn (Secure Key Backup) phục hồi phiên mã hóa khi người dùng thay đổi thiết bị mà không làm tổn hại đến tính chuyển tiếp bí mật.
Giá trị tham khảo
Đồ án là tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn dành cho:
- Đối tượng thụ hưởng: Sinh viên, học viên chuyên ngành An toàn thông tin, Công nghệ thông tin, Kỹ thuật Mạng và Truyền thông đang thực hiện đồ án, khóa luận hoặc đề tài nghiên cứu về an ninh mạng và mật mã ứng dụng.
- Các nội dung đáng tham khảo chuyên sâu:
- Quy trình phân tích toán học và cơ chế đảm bảo tính chối bỏ (Deniability) thông qua việc công khai khóa ký HMAC trong giao thức OTR (Chương 2).
- Bản mô tả chi tiết quy trình tính toán khóa qua các bước DH1, DH2, DH3, DH4 trong giao thức X3DH và cơ chế hoạt động của Double Ratchet ứng dụng trong kiến trúc Zalo E2EE (Chương 2).
- Kịch bản thực hành cấu hình bảo mật, phân tích dấu vân tay (Fingerprint) và quy trình xác thực người dùng trên giao thức XMPP bằng phần mềm Pidgin (Chương 2).
- Kiến trúc phân lớp và quy trình xử lý dữ liệu của mô hình ứng dụng web chat thời gian thực sử dụng WebSockets kết hợp E2EE (Chương 3).
Câu hỏi thường gặp
1. Tại sao trong giao thức OTR, người gửi lại phải công khai (public) khóa ký HMAC sau khi hoàn thành việc gửi nhận tin nhắn?
Khóa ký HMAC được tạo ra từ việc băm khóa phiên đối xứng. Việc công khai khóa này sau khi bên nhận đã xác minh tin nhắn thành công giúp đảm bảo thuộc tính Deniability (Tính chối bỏ). Khi khóa ký đã được công khai rộng rãi, bất kỳ ai cũng có thể sử dụng nó để tạo ra một chữ ký HMAC hợp lệ cho bản mã. Do đó, bên thứ ba (kể cả kẻ tấn công nghe lén) không thể dùng chữ ký đó làm bằng chứng mật mã xác thực trước pháp lý để chứng minh rằng chính người gửi ban đầu đã tạo ra thông điệp đó.
2. Giao thức OTR giải quyết nguy cơ tấn công trung gian (Man-in-the-Middle) trong quá trình trao đổi khóa Diffie-Hellman bằng cách nào?
Để ngăn chặn kẻ tấn công (như Eve) chặn bắt và giả mạo tham số trao đổi khóa giữa Alice và Bob, OTR yêu cầu hai bên phải ký lên các giá trị trung gian của giao thức Diffie-Hellman bằng khóa bí mật bất đối xứng của mình. Người nhận sau đó dùng khóa công khai của đối phương để xác minh chữ ký; nếu chữ ký không hợp lệ, phiên kết nối sẽ bị hủy bỏ, ngăn chặn hoàn toàn việc kẻ tấn công thiết lập hai kết nối giả mạo song song.
3. Sự khác biệt căn bản giữa hai thành phần DH Ratchet và Symmetric Key Ratchet trong giải thuật Double Ratchet là gì?
Symmetric Key Ratchet sử dụng hàm dẫn xuất khóa KDF với đầu vào hằng số để sinh ra một Message Key (MK) duy nhất cho từng tin nhắn từ Chain Key hiện tại, sau đó xóa ngay MK cũ nhằm đảm bảo Forward Secrecy trong cùng một phiên. Trong khi đó, DH Ratchet can thiệp ở cấp độ cao hơn: mỗi khi nhận được một khóa công khai Diffie-Hellman mới từ đối phương, nó tiến hành bắt tay DH mới để tạo ra một Chain Key hoàn toàn mới, cung cấp khả năng tự phục hồi bảo mật (Break-in Recovery) nếu một khóa phiên tạm thời bị lộ.
4. Giao thức X3DH giải quyết bài toán nhắn tin bất đồng bộ khi người nhận ngoại tuyến (offline) như thế nào?
Trước khi ngoại tuyến, người nhận công bố lên máy chủ các bộ khóa công khai bao gồm Khóa định danh ($I$), Khóa tiền ký ($S$), và danh sách các Khóa dùng một lần ($O$). Khi người gửi muốn truyền tin, họ lấy bộ khóa này từ máy chủ để tính toán Master Key thông qua các phép toán Diffie-Hellman ($\text{DH1}, \text{DH2}, \text{DH3}, \text{DH4}$) và gửi bản mã khởi tạo ngay cả khi người nhận không trực tuyến. Khi người nhận kết nối trở lại, họ chỉ cần tải thông điệp và dùng các khóa riêng tương ứng để khôi phục Master Key và giải mã.
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" của tác giả Phạm Công Trường đã hệ thống hóa toàn diện cơ sở lý thuyết mật mã và làm sáng tỏ nguyên lý vận hành của các giao thức mã hóa đầu cuối hiện đại như OTR, X3DH và Double Ratchet. Nghiên cứu đã thực hiện thành công việc kiểm chứng thực nghiệm giao thức OTR trên phần mềm Pidgin/XMPP và hiện thực hóa quy trình bảo mật thông qua việc thiết kế ứng dụng web chat E2EE trên nền tảng WebSockets. Công trình là tài liệu kỹ thuật có giá trị tham khảo cao về mặt cấu trúc giải thuật lẫn phương pháp triển khai bảo mật thông điệp trong lĩnh vực an toàn thông tin.