Bối cảnh và vấn đề nghiên cứu

Sự phát triển mạnh mẽ của mạng Internet đã thúc đẩy việc ứng dụng sâu rộng công nghệ thông tin vào hầu hết các lĩnh vực đời sống xã hội như hội họp, giáo dục trực tuyến, thương mại điện tử, dịch vụ tài chính - ngân hàng và chính phủ điện tử. Cùng với sự gia tăng về lưu lượng dữ liệu trao đổi là các nguy cơ an ninh mạng nghiêm trọng, khi thông tin nhạy cảm của người dùng trở thành mục tiêu của các cuộc tấn công khai thác trái phép và phá hoại hệ thống. Nhằm bảo vệ an toàn thông tin trên môi trường mạng, các giải pháp mật mã có thể được can thiệp tại một trong bốn tầng của mô hình TCP/IP gồm tầng ứng dụng, tầng vận chuyển, tầng mạng và tầng truy cập mạng. Trong đó, việc triển khai các giao thức bảo mật tại tầng giao vận như SSL/TLS là phương thức phổ biến và mang lại hiệu quả cao để thiết lập kênh liên lạc an toàn. TLS 1.3 là phiên bản tiêu chuẩn mới nhất, sở hữu nhiều cải tiến vượt trội về tốc độ thiết lập kết nối và độ an toàn mật mã so với các phiên bản tiền nhiệm.

Xuất phát từ yêu cầu thực tiễn đó, đồ án tập trung giải quyết các mục tiêu và nhiệm vụ nghiên cứu sau:

  1. Nghiên cứu tổng quan và chi tiết về cơ sở lý thuyết của giao thức TLS 1.3, bao gồm cấu trúc các giao thức thành phần (Handshake, Record, Alert Protocol), các bộ thuật toán mật mã tích hợp, hàm dẫn xuất khóa HKDF và cơ chế chống tấn công phát lại.
  2. Phân tích các ưu điểm và cải tiến trọng tâm của TLS 1.3 so với TLS 1.2 về mặt giảm thiểu độ trễ bắt tay (1-RTT, 0-RTT) và việc loại bỏ các thuật toán mật mã không còn an toàn.
  3. Thiết kế giải pháp truyền tin bảo mật trong mạng nội bộ (mạng LAN) áp dụng các cơ chế của TLS 1.3 theo mô hình máy trạm/máy chủ (Client/Server).
  4. Cài đặt thực nghiệm phần mềm truyền tin và truyền tệp tin an toàn bằng ngôn ngữ C trên hệ điều hành Linux với sự hỗ trợ của thư viện mật mã BoringSSL.
  5. Kiểm thử, bắt và phân tích luồng lưu lượng gói tin thực tế thông qua công cụ Wireshark để đánh giá tính bảo mật của kênh truyền.
  • Đối tượng nghiên cứu: Giao thức bảo mật tầng giao vận TLS 1.3, các thuật toán mật mã liên kết (X25519, AES-GCM, AES-CCM, ChaCha20-Poly1305, SHA-256, SHA-384, HKDF), các cơ chế bắt tay và bảo vệ bản ghi.
  • Phạm vi nghiên cứu: Mô hình truyền tin điểm - điểm (Point-to-Point) trong không gian mạng cục bộ (mạng LAN), triển khai trên nền giao thức TCP, thực hiện tại Học viện Công nghệ Bưu chính Viễn thông năm 2022.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết của đồ án dựa trên các tiêu chuẩn kỹ thuật mật mã và tài liệu đặc tả giao thức mạng từ IETF và NIST:

  • Kiến trúc phân tầng TLS 1.3: Hoạt động tại tầng giao vận, bao gồm ba giao thức thành phần: Giao thức bắt tay (Handshake Protocol), Giao thức bản ghi (Record Protocol) và Giao thức cảnh báo (Alert Protocol).
  • Mô hình mã hóa xác thực AEAD (Authenticated Encryption with Associated Data): Khung mật mã kết hợp đồng thời chức năng bảo mật dữ liệu và xác thực tính toàn vẹn của dữ liệu liên kết.
  • Hệ thống dẫn xuất khóa HKDF: Sử dụng hàm dẫn xuất khóa dựa trên mã xác thực thông điệp HMAC (SHA-256 hoặc SHA-384) để trích xuất và mở rộng các khóa bí mật trong suốt phiên liên lạc (Early Secret, Handshake Secret, Master Secret).
  • Thuật toán trao đổi khóa Diffie-Hellman trên đường cong Elliptic (ECDHE): Tiêu chuẩn X25519 trên đường cong Montgomery Curve25519 với số nguyên tố $p = 2^{255} - 19$.
  • Hệ mật đối xứng và cơ chế xác thực: Mã khối AES (chế độ GCM, CCM) và mã dòng ChaCha20 kết hợp cơ chế xác thực Poly1305 (RFC 7539).

Phương pháp nghiên cứu được tác giả áp dụng bao gồm:

  • Phương pháp phân tích và tổng hợp lý thuyết: Hệ thống hóa các đặc tả kỹ thuật của TLS 1.3, đối chiếu với phiên bản TLS 1.2 để làm rõ các điểm cải tiến cốt lõi.
  • Phương pháp thiết kế hệ thống: Sử dụng mô hình hình thức (Use case, biểu đồ tuần tự Sequence Diagram) để mô tả luồng giao tiếp mạng và các bước xử lý mật mã.
  • Phương pháp thực nghiệm kỹ thuật: Lập trình trực tiếp ứng dụng Client/Server bằng ngôn ngữ C sử dụng giao diện lập trình Socket trên hệ điều hành Linux, liên kết với thư viện mật mã BoringSSL.
  • Phương pháp đo kiểm và phân tích gói tin: Sử dụng phần mềm phân tích mạng Wireshark để bắt gói tin tại giao diện mạng, kiểm chứng quá trình bắt tay và tình trạng mã hóa payload.

Thiết kế và triển khai

Hệ thống truyền tin bảo mật trong mạng LAN được xây dựng theo kiến trúc Client/Server trên nền tảng giao thức TCP, sử dụng cổng mặc định 8400.

Mô đun hệ thống Chức năng kỹ thuật Cơ chế / Thuật toán áp dụng
Mô đun kết nối mạng Khởi tạo, lắng nghe, chấp thuận và đóng socket TCP giữa Client và Server trên Linux. Các hàm hệ thống Linux Socket API: socket(), bind(), listen(), connect(), accept(), close().
Mô đun Handshake Protocol Thỏa thuận phiên bản, lựa chọn Cipher Suite và thiết lập khóa chia sẻ bí mật. Trao đổi khóa X25519 trên Curve25519 ($p = 2^{255} - 19, A = 486662, X = 9$); thuật toán Montgomery Ladder.
Mô đun Record Protocol Phân mảnh dữ liệu tầng ứng dụng, bổ sung padding, tạo Nonce, mã hóa AEAD và đóng gói Header. Phân mảnh $\le 2^{14}$ bytes; Pre-record Nonce (Sequence 64-bit XOR static IV); AES-GCM hoặc ChaCha20-Poly1305.
Mô đun Alert Protocol Phát hiện sự cố, gửi các thông báo đóng phiên có thứ tự hoặc cảnh báo lỗi nghiêm trọng. Cơ sở dữ liệu cảnh báo (close_notify, unexpected_message, bad_record_mac, handshake_failure,...); hàm SSL_alert_type_string_long().

Quy trình tuần tự của phiên làm việc diễn ra như sau:

  1. Phía Server mở Socket TCP tại cổng 8400 và chờ kết nối. Phía Client kết nối tới địa chỉ IP của Server qua cổng 8400.
  2. Client sinh cặp khóa X25519 (khóa bí mật $a$, khóa công khai $A$) và gửi gói tin ClientHello chứa: Khóa công khai 32 byte, các phần mở rộng bắt buộc (supported_versions định danh 0x0304), cùng danh sách bộ mã hóa hỗ trợ (TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256).
  3. Server sinh cặp khóa X25519 (khóa bí mật $b$, khóa công khai $B$), tính toán khóa chia sẻ chung $SharedSecretKey = \text{Curve25519}(b, A)$. Server gửi lại gói tin ServerHello chứa khóa công khai $B$, Cipher Suite được chọn (TLS_CHACHA20_POLY1305_SHA256), chứng thư số và chữ ký số xác thực.
  4. Client nhận ServerHello, tính toán khóa chia sẻ chung $SharedSecretKey = \text{Curve25519}(a, B)$, xác minh chứng thư số và chữ ký của Server.
  5. Cả hai bên sử dụng hàm dẫn xuất khóa HKDF với các đầu vào mầm khóa để tạo ra các khóa lưu lượng ứng dụng (Client Application Traffic Secret, Server Application Traffic Secret).
  6. Dữ liệu tin nhắn hoặc tệp tin (ví dụ: ThanhBien_K26.txt) được xử lý bởi Record Protocol: phân mảnh, tính thẻ xác thực Tag 128 bit, mã hóa bản mã và truyền tải qua mạng nội bộ.

Nội dung chính theo từng chương

CHƯƠNG 1. NGHIÊN CỨU GIAO THỨC TLS 1.3

Chương 1 hệ thống hóa toàn diện lý thuyết về giao thức TLS 1.3, bắt đầu từ lịch sử tiến hóa của bộ giao thức từ SSL 1.0 (1994), SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2 đến TLS 1.3. Nội dung phân tích sâu ba giao thức thành phần (Handshake Protocol, Record Protocol, Alert Protocol), cấu trúc từng trường dữ liệu trong các thông điệp ClientHello, ServerHello và vai trò của các trường mở rộng (Extensions) như supported_versions, key_share, signature_algorithms.

Chương này trình bày 5 bộ Cipher Suite chuẩn được định nghĩa trong TLS 1.3:

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_CCM_SHA256
  • TLS_AES_128_CCM_8_SHA256

Về mặt trao đổi khóa, chương 1 phân tích cơ chế DHE trên trường hữu hạn (từ ffdhe2048 đến ffdhe8192), ECDHE trên đường cong Weierstrass (secp256r1, secp384r1, secp512r1) và đường cong Edward/Montgomery (x25519, x448), cùng cơ chế Pre-Shared Key (PSK). Ngoài ra, chương 1 luận giải chi tiết cấu trúc phân nhánh quản lý khóa thông qua HKDF (gồm các giai đoạn Early Secret, Handshake Secret, Master Secret) và các cơ chế phòng chống tấn công phát lại (Replay Attack) bằng chữ ký số kèm tem thời gian và Single-Use Tickets trong chế độ 0-RTT.

Tiêu chí so sánh Giao thức TLS 1.2 Giao thức TLS 1.3
Thời gian bắt tay (RTT) 2-RTT để hoàn tất thỏa thuận 1-RTT cho kết nối mới; 0-RTT cho phiên tái kết nối
Hệ mật mã đối xứng Hỗ trợ CBC, RC4, DES, 3DES, AEAD Chỉ cho phép các thuật toán mã hóa xác thực AEAD
Hàm băm và xác thực Sử dụng MD5, SHA-1, SHA-256 Loại bỏ hoàn toàn MD5 và SHA-1; chỉ dùng SHA-256, SHA-384
Giao thức trao đổi khóa Hỗ trợ RSA tĩnh, Diffie-Hellman tĩnh/tạm thời Bắt buộc sử dụng Ephemeral Diffie-Hellman (DHE, ECDHE) hoặc PSK
Bảo vệ thông điệp bắt tay Phần lớn thông điệp bắt tay không mã hóa Mã hóa các thông điệp bắt tay ngay sau ServerHello

CHƯƠNG 2. THIẾT KẾ GIẢI PHÁP TRUYỀN TIN TRONG MẠNG LAN SỬ DỤNG GIAO THỨC TLS 1.3

Chương 2 mô tả chi tiết thiết kế kỹ thuật của 4 mô đun phục vụ giải pháp truyền tin an toàn. Về giao thức trao đổi khóa, tác giả lựa chọn và đặc tả giao thức X25519 dựa trên đường cong Curve25519 với phương trình dạng Montgomery: $$y^2 = x^3 + 486662x^2 + x \pmod{2^{255} - 19}$$ Quá trình tính toán nhân vô hướng khóa bí mật với điểm cơ sở $X = 9$ được thiết kế thông qua thuật toán Montgomery Ladder và hàm LADDERSTEP.

Đối với mô đun xử lý dữ liệu (Record Protocol), dữ liệu ứng dụng được chia thành các phân mảnh có độ dài tối đa không vượt quá $2^{14}$ bytes (16.384 bytes). Cơ chế bảo vệ bản ghi được thiết kế tích hợp cơ chế đệm bản ghi (Record Padding) để che giấu kích thước thực của luồng dữ liệu trước người quan sát. Về thuật toán mã hóa, chương 2 phân tích chi tiết cấu trúc ma trận trạng thái 4x4 word (16 word) của mã dòng ChaCha20 với 20 vòng lặp xử lý luân phiên qua hàm biến đổi QUARTERROUND, kết hợp cùng cơ chế sinh thẻ xác thực Poly1305 hoạt động trên trường hữu hạn $Z(2^{130} - 5)$ để tạo thẻ tag 128 bit. Đồng thời, cấu trúc hoạt động của chế độ mã khối AES-GCM và AES-CCM cũng được xây dựng hoàn chỉnh. Mô đun cảnh báo được thiết kế dựa trên tập danh mục các mã lỗi chuẩn của TLS 1.3 và tích hợp giao diện hàm của thư viện BoringSSL.

CHƯƠNG 3. CÀI ĐẶT THỰC NGHIỆM TRUYỀN TIN CÓ BẢO MẬT TRONG MẠNG LAN VỚI GIAO THỨC TLS 1.3

Chương 3 trình bày việc hiện thực hóa thiết kế thành phần mềm hoàn chỉnh. Tác giả xây dựng biểu đồ Use case tổng quát, phân rã chức năng Client (kết nối IP Server cổng TCP, truyền tin nhắn, xem danh mục và sao chép tệp tin từ Server) và chức năng Server (mở cổng kết nối, chấp thuận kết nối, truyền tệp tin tới Client), cùng biểu đồ tuần tự chi tiết của hệ thống.

Phần mềm được viết bằng ngôn ngữ C trên nền Linux, sử dụng mã nguồn thư viện BoringSSL (các tệp tiêu đề trong thư mục include và mã nguồn thuật toán trong crypto). Kết quả thử nghiệm thực tế ghi nhận phần mềm thực thi trơn tru các chức năng:

  • Thiết lập kết nối bảo mật giữa Client và Server tại cổng 8400.
  • Hiển thị công khai các thông số mật mã của phiên (khóa công khai hai bên, khóa chung tính toán được, thẻ xác thực tag).
  • Thực thi lệnh list_file để duyệt danh mục tập tin chia sẻ tại Server.
  • Sao chép và truyền nhận thành công tệp tin thử nghiệm ThanhBien_K26.txt từ Server về Client với tính toàn vẹn dữ liệu được đảm bảo.

Quá trình kiểm thử bằng công cụ Wireshark đã bắt và phân tích chi tiết luồng lưu lượng: gói tin ClientHello, ServerHello, quá trình thỏa thuận bộ mã TLS_CHACHA20_POLY1305_SHA256, và xác nhận toàn bộ dữ liệu ứng dụng trao đổi sau pha bắt tay đều được mã hóa hoàn toàn ở dạng bản mã nhị phân, không để lộ nội dung bản rõ trên kênh truyền mạng LAN.


Kết quả và đóng góp

Kết quả chính đạt được

  • Về mặt lý thuyết: Hệ thống hóa chi tiết kiến trúc, cơ chế vận hành, cấu trúc gói tin của ba giao thức thành phần và quy trình dẫn xuất khóa đa tầng trong TLS 1.3; làm rõ các cơ chế bảo mật mới và cải tiến hiệu năng so với phiên bản tiền nhiệm.
  • Về mặt thiết kế: Xây dựng hoàn chỉnh tài liệu thiết kế các mô đun chức năng cho ứng dụng truyền tin mạng nội bộ, bao gồm mô đun kết nối mạng socket TCP, mô đun bắt tay trao đổi khóa X25519, mô đun bản ghi bảo vệ dữ liệu bằng AEAD và mô đun xử lý cảnh báo lỗi.
  • Về mặt thực nghiệm: Cài đặt thành công ứng dụng truyền tin Client/Server viết bằng ngôn ngữ C trên Linux, tích hợp thư viện BoringSSL; triển khai truyền tin nhắn và truyền tệp tin an toàn tại cổng TCP 8400.
  • Về mặt kiểm thử: Sử dụng Wireshark chứng minh luồng dữ liệu ứng dụng được mã hóa tuyệt đối bằng thuật toán ChaCha20-Poly1305, các khóa phiên được thỏa thuận chính xác qua X25519 và tính toàn vẹn của tệp tin nhận được (ThanhBien_K26.txt) được bảo toàn trọn vẹn.

Đóng góp của tác giả

  • Cung cấp một nghiên cứu thực nghiệm có tính hệ thống về việc áp dụng phiên bản giao thức TLS 1.3 vào bài toán bảo mật mạng cục bộ.
  • Hiện thực hóa thành công thuật toán trao đổi khóa hiện đại X25519 trên Curve25519 và các hệ mật AEAD tiên tiến thông qua mã nguồn C, chứng minh tính khả thi của việc triển khai giải pháp mật mã tầng giao vận mà không phụ thuộc hoàn toàn vào các dịch vụ web cấp cao.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Thử nghiệm hệ thống mới chỉ dừng lại trong phạm vi mô hình mạng cục bộ (mạng LAN) với quy mô kết nối điểm - điểm đơn lẻ; chưa thực hiện đánh giá định lượng về năng lực chịu tải và độ trễ khi có số lượng lớn Client kết nối đồng thời; chưa khảo sát thực nghiệm chuyên sâu các kịch bản tấn công phát lại đối với tính năng 0-RTT trong các môi trường mạng phức tạp.
  • Hướng phát triển: Mở rộng giải pháp để hoạt động trên môi trường mạng diện rộng (WAN/Internet); tích hợp cơ chế xác thực chứng thư số thông qua các tổ chức phát hành chứng chỉ công cộng (Public CA); tối ưu hóa mã nguồn để ứng dụng trên các thiết bị mạng nhúng và hệ thống IoT có tài nguyên tính toán giới hạn.

Giá trị tham khảo

Đồ án là tài liệu tham khảo kỹ thuật hữu ích dành cho sinh viên, học viên cao học và cán bộ nghiên cứu thuộc các chuyên ngành Công nghệ thông tin, An toàn thông tin, Mạng máy tính và Truyền thông dữ liệu. Các nội dung có giá trị tham khảo cao bao gồm:

  • Tài liệu phân tích chuyên sâu về lý thuyết và cấu trúc gói tin của giao thức TLS 1.3 so với TLS 1.2 tại Chương 1.
  • Toàn bộ cơ sở toán học và quy trình thực thi của các thuật toán mật mã hiện đại như đường cong Montgomery Curve25519 (X25519), mã dòng ChaCha20 và cơ chế xác thực Poly1305 tại Chương 2.
  • Phương pháp lập trình Socket TCP bằng ngôn ngữ C kết hợp tích hợp thư viện mật mã BoringSSL, cùng quy trình sử dụng Wireshark để phân tích lưu lượng gói tin mã hóa tại Chương 3.

Câu hỏi thường gặp

1. Giao thức TLS 1.3 hỗ trợ những bộ thuật toán mật mã AEAD nào theo đặc tả trong khóa luận?

TLS 1.3 hỗ trợ 5 bộ thuật toán mật mã xác thực liên kết (AEAD) chuẩn gồm: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_CCM_SHA256 và TLS_AES_128_CCM_8_SHA256.

2. Quá trình bắt tay của TLS 1.3 có ưu thế gì về tốc độ so với TLS 1.2?

TLS 1.3 rút ngắn thời gian bắt tay (Handshake) từ 2 vòng hành trình (2-RTT) ở TLS 1.2 xuống còn 1 vòng hành trình (1-RTT) đối với kết nối thông thường. Ngoài ra, TLS 1.3 còn bổ sung chế độ 0-RTT cho phép Client gửi kèm dữ liệu tầng ứng dụng ngay trong thông điệp ClientHello ở các phiên tái kết nối sử dụng khóa chia sẻ trước (PSK).

3. Thuật toán trao đổi khóa X25519 được tác giả thiết kế dựa trên các tham số kỹ thuật nào?

Thuật toán X25519 được xây dựng trên đường cong Elliptic dạng Montgomery Curve25519 với phương trình $y^2 = x^3 + 486662x^2 + x \pmod{p}$, số nguyên tố $p = 2^{255} - 19$ (mức an toàn 128 bit), hoành độ điểm cơ sở $X = 9$, độ dài khóa 32 byte và sử dụng thuật toán Montgomery Ladder (với hàm tính toán LADDERSTEP) để thực hiện phép nhân vô hướng.

4. Phần mềm thực nghiệm được xây dựng bằng công nghệ gì và hoạt động tại cổng mạng nào?

Phần mềm được lập trình bằng ngôn ngữ C trên hệ điều hành Linux, sử dụng trực tiếp Linux Socket API và thư viện mật mã BoringSSL (thư mục crypto và include), thiết lập kết nối truyền tin và truyền tệp tin an toàn tại cổng TCP 8400.

5. Giao thức Record Protocol trong TLS 1.3 xử lý và bảo vệ gói tin như thế nào?

Record Protocol chia nhỏ dữ liệu ứng dụng thành các phân mảnh có kích thước không vượt quá $2^{14}$ bytes (16.384 bytes), tạo Pre-record Nonce bằng cách lấy số hiệu dãy 64-bit XOR với static IV, đệm thêm các byte 0 vào trường ContentType (Record Padding) để che giấu độ dài thực của thông điệp, sau đó tiến hành mã hóa xác thực bằng thuật toán AEAD và gắn Header TLS trước khi truyền đi.


Kết luận

Đồ án "Nghiên cứu, xây dựng giải pháp truyền tin có bảo mật mạng nội bộ với TLS 1.3" đã hoàn thành đầy đủ các mục tiêu đề ra về mặt nghiên cứu lý thuyết lẫn thực nghiệm kỹ thuật. Tác giả đã làm sáng tỏ kiến trúc phân tầng, các cơ chế bảo mật nâng cao và sự vượt trội về hiệu năng của TLS 1.3 so với các phiên bản tiền nhiệm. Giải pháp phần mềm truyền tin Client/Server viết bằng ngôn ngữ C trên Linux tích hợp BoringSSL hoạt động chính xác, đảm bảo trọn vẹn tính bí mật và tính toàn vẹn của dữ liệu truyền tải trên mạng LAN. Kết quả của đồ án cung cấp một tài liệu tham khảo có giá trị cao cho việc nghiên cứu, phát triển và ứng dụng giao thức TLS 1.3 trong các hệ thống an toàn thông tin thực tế.