Giao thức TLS (Transport Layer Security) là một giao thức bảo mật dữ liệu truyền trên mạng Internet và hoạt động ở tầng giao vận trong kiến trúc mạng TCPIP. Phiên bản TLS 1.3 là phiên bản mới nhất của giao thứ TLS bao gồm nhiều cải tiến về mặt bảo mật so với TLS 1.2. TLS 1.3 loại bỏ các thuật toán mã hóa yếu như DES, 3DES, đồng thời thêm các thuật toán mã hóa xác thực mới với độ bảo mật cao là AESCCM, ChaCha20Poly1305.
BỘ THƠNG TIN VÀ TRUYỀN THƠNG HỌC VIỆN BƯU CHÍNH VIỄN THÔNG - ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: 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 Giảng viên hướng dẫn Học viên thực Lớp Khóa Chuyên ngành : TS Nguyễn Mạnh Quân : Nguyễn Quốc Bảo : K26 : 26 : Công nghệ thông tin Hà Nội, 2022 BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN BƯU CHÍNH VIỄN THƠNG - ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: 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 Giảng viên hướng dẫn Học viên thực Lớp Khóa Chuyên ngành : TS Nguyễn Mạnh Quân : Nguyễn Quốc Bảo : K26 : 26 : Công nghệ thông tin Hà Nội, 2022 LỜI CẢM ƠN Em xin gửi lời cảm ơn quan tâm, giúp đỡ thầy cô Khoa công nghệ thông tin, thầy cô Học viện Đặc biệt thầy giáo, Tiến sĩ Nguyễn Mạnh Quân trực tiếp hướng dẫn giúp đỡ em nhiều suốt q trình nghiên cứu hồn thành đồ án Do trình độ kiến thức có hạn, thời gian ngắn khả tổng hợp, xử lý tài liệu hạn chế nên đồ án nhiều thiếu sót Em mong nhận quan tâm góp ý thầy, cô bạn để đồ án hoàn thiện Em xin chân thành cảm ơn! i LỜI CAM ĐOAN Em xin cam đoan đồ án em tự nghiên cứu hướng dẫn thầy giáo TS Nguyễn Mạnh Quân Để hoàn thành đồ án này, em sử dụng tài liệu ghi tài liệu tham khảo, ngồi khơng sử dụng tài liệu khác mà không ghi Nếu sai, em xin chịu hình thức kỷ luật theo quy định Học viện Hà Nội, ngày tháng năm 2022 Học viên thực ii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii DANH MỤC TỪ VIẾT TẮT v DANH MỤC HÌNH ẢNH vi LỜI NÓI ĐẦU viii CHƯƠNG NGHIÊN CỨU GIAO THỨC TLS 1.3 1.1 Giới thiệu giao thức TLS 1.3 1.1.1 Khái niệm 1.1.2 Lịch sử phát triển 1.1.3 Chức giao thức 1.1.4 Kiến trúc, thành phần 1.2 Nguyên lý hoạt động giao thức TLS 1.3 1.2.1 Giao thức thành phần Handshake Protocol 1.2.2 Giao thức thành phần Record Protocol 10 1.2.3 Giao thức thành phần Alert Protocol 12 1.3 Các thuật toán mật mã giao thức TLS 1.3 14 1.3.1 Thuật tốn mã hóa xác thực với liệu liên kết 15 1.3.2 Thuật toán hàm băm 16 1.3.3 Thuật toán ký số 16 1.3.4 Thuật tốn giao thức trao đổi khóa 16 1.4 Cơ chế chống công phát lại 17 1.5 Quản lý khóa giao thức TLS 1.3 18 1.6 Những cải tiến TLS 1.3 so với phiên TLS 1.2 19 1.7 Kết luận chương 21 iii CHƯƠNG THIẾT KẾ GIẢI PHÁP TRUYỀN TIN TRONG MẠNG LAN SỬ DỤNG GIAO THỨC TLS 1.3 22 2.1 Sơ đồ hoạt động chung giải pháp truyền tin mạng LAN sử dụng TLS 1.3 22 2.2 Những chức phần mềm truyền tin 23 2.3 Thiết kế mô đun cài đặt giải pháp truyền tin 23 2.3.1 Thiết kế mô đun thực kết nối mạng 23 2.3.2 Thiết kế mô đun giao thức thành phần Record Protocol 27 2.3.3 Thiết kế mơ đun thuật tốn mã hóa liệu 30 2.3.4 Thiết kế mơ đun chế độ mã hóa có xác thực 32 2.3.5 Thiết kế mô đun Alert Protocol 36 2.4 Kết luận chương 37 CHƯƠNG 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 38 3.1 Phân tích thiết kế hệ thống phần mềm 38 3.1.1 Biểu đồ Use case 38 3.1.2 Biểu đồ 39 3.2 Thuyết minh mã nguồn mở số mô đun phần mềm 42 3.3.1 Mã nguồn mô đun thực kết nối mạng 44 3.3.2 Mã nguồn thực thi kết nối TLS 1.3 48 3.3 Hoàn thiện, thử nghiệm phân tích hoạt động phần mềm 55 3.3.1 Hồn thiện, thử nghiệm chương trình 55 3.3.2 Phân tích luồng lưu lượng phần mềm Wireshark 59 3.4 Kết luận chương 61 KẾT LUẬN 62 TÀI LIỆU THAM KHẢO 63 XÁC NHẬN NƠI CHẾ BẢN IN ẤN 64 iv DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt AEAD Authenticated Encryption with Mã hóa xác thực với liệu Additional Data liên kết AES Advanced Encryption Standard Tiêu chuẩn mã hóa liệu tiên tiến Hoa Kỳ năm 2001 CBC Cipher Block Chaining Chế độ xích mã khối CCM Counter with Cipher Block Chế độ đếm kết hợp mã xác Chaining Message thực CBC Authentication Code DH Diffle Hellman Key Exchange ECDHE Elliptic-curve Diffie–Hellman Trao đổi khóa Diffle Hellman Diffie-Hellman Ephemeral cải tiến đường cong Elliptic ECDSA Elliptic Curve Digital Signature Thuật toán ký số đường Algorithm cong Elliptic dạng Weirstrass HKDF Key Derivation Function (KDF) Hàm dẫn xuất khóa dựa Based on HMAC Message mã xác thực thông điệp HMAC Authentication Code GCM Galois/Counter Mode Chế độ mã hóa xác thực trường Galois MAC Message Atuthentication Code Mã xác thực thông báo NIST National Institure of Standard Viện tiêu chuẩn công nghệ and Technology Quốc gia Hoa kỳ PRF Pseudorandom Function Hàm sinh số giả ngẫu nhiên SSL Secure Socket Layer Giao thức bảo mật tầng giao vận TLS Transport Layer Security Giao thức bảo mật liệu tầng giao vận v Trao đổi khóa Diffle Hellman DANH MỤC HÌNH Hình 1.1: Lịch sử phát triển giao thức TLS Hình 1.2: Kiến trúc giao thức TLS Hình 1.3: Hoạt động TLS 1.3 Handshake Protocol Hình 1.4: Bộ thuật tốn mật mã sử dụng TLS 1.3 14 Hình 1.5: Ký số Server Hello 17 Hình 1.6: Quản lý khóa TLS 1.3 18 Hình 1.7: Quá trình bắt tay TLS 1.2 TLS 1.3 20 Hình 2.1: Sơ đồ thiết kế chung mô đun hoạt động giao thức TLS 1.3 22 Hình 2.2: Mơ hình lập trình socket TCP 24 Hình 2.3: Lược đồ hoạt động giao thức X25519 25 Hình 2.4: Thuật toán Montegomery Ladder 26 Hình 2.5: Hàm tính tốn LADDERSTEP 27 Hình 2.6: Xử lý gói tin bên gửi Record Protocol 28 Hình 2.7: Xử lý gói tin bên nhận Record Protocol 28 Hình 2.8: Hoạt động mã khối AES 30 Hình 2.9: Mơ hình hoạt động thuật toán Chacha20 31 Hình 2.10: Word đầu vào Chacha20 32 Hình 2.11: Phép biến đổi QUARTERROUND 32 Hình 2.12: Quá trình mã hóa mã khối chế độ GCM 33 Hình 2.13: Quá trình giải mã mã khối chế độ GCM 34 Hình 2.14: Hoạt động mã khối chế độ CCM 35 Hình 2.15: Quá trình tính tốn chế Poly1305 36 Hình 2.16: Tính tốn thẻ xác thực Poly1305 36 Hình 2.17: Xây dựng mô đun Alert Protocol 37 Hình 3.1: Use case tổng quát 38 Hình 3.2: Phân rã chức Client 38 vi Hình 3.3: Phân rã chức Server 39 Hình 3.4: Mơ hình truyền tin P2P 39 Hình 3.5: Biểu đồ trình hoạt động hệ thống mạng sử dụng phần mềm truyền tin có bảo mật TLS 1.3 41 Hình 3.6: Thư viện mật mã BoringSSL 42 Hình 3.7: Mã nguồn thuật toán mật mã thư mục crypto 43 Hình 3.8: Các tập tin header thuật tốn mật mã thư mục include 43 Hình 3.9: Các tập tin header thuật toán mật mã thư mục include 44 Hình 3.10: Phần mềm chạy bên phía Client 55 Hình 3.11: Phần mềm chạy bên phía Server 56 Hình 3.12: Tùy chọn list_file thực thi phía Client 57 Hình 3.13: Danh mục tập tin chia sẻ phía Server 57 Hình 3.14: Tập tin chia sẻ phía Server 58 Hình 3.15: Thực chép tập tin ThanhBien_K26.txt phía Client 58 Hình 3.16: Thực chép tập tin ThanhBien_K26.txt phía Server 58 Hình 3.17: Sao chép thành cơng tập tin ThanhBien_K26.txt từ Server 58 Hình 3.18: Tập tin nhận chia sẻ Client 59 Hình 3.19: Luồng lưu lượng thơng tin vận chuyển Server Client 59 Hình 3.20: Gói tin Client Hello 60 Hình 3.21: Gói tin có nội dung thơng điệp mã hóa gửi tới Server 60 Hình 3.22: Dữ liệu kênh truyền mã hóa sau giai đoạn bắt tay TLS 1.3 61 vii LỜI NÓI ĐẦU Mạng Internet ngày ứng dụng sâu rộng vào sống người hội họp, học tập trực tuyến, thương mại điện tử, ngân hàng, tài chính, phủ điện tử Lượng thông tin chia sẻ trao đổi mạng ngày lớn, có nhiều thơng tin nhạy cảm, quan trọng người dùng Do mơi trường Internet vơ hình chung lại nơi cho kẻ xấu lợi dụng để công khai thác liệu quan trọng hay thực mục đích trục lợi hay phá hoại bất hợp pháp Do nhu cầu cấp thiết đặt cần có giải pháp bảo vệ thông tin nhạy cảm, quan trọng truyền môi trường mạng Để bảo vệ thơng tin truyền hệ thống mạng, can thiệp mật mã vào bốn tầng tầng ứng dụng, tầng vận chuyển, tầng mạng, tầng truy cập mạng giao thức TCP/IP - giao thức tảng Internet Trong đó, giải pháp sử dụng giao thức SSL/TLS để thiết lập kênh truyền tin an toàn Internet giải pháp sử dụng rộng rãi hiệu Khi đó, liệu kênh liên lạc sẽ mã hóa xác thực đảm bảo an toàn TLS 1.3 phiên giao thức SSL/TLS với nhiều ưu điểm tốc độ nhanh độ an toàn cao Việc nghiên cứu giao thức TLS 1.3 chuyên sâu lý thuyết thực hành triển khai thực tế để cập nhật, áp dụng sản phẩm mật mã ATTT cần thiết Vì em lựa chọn thực đề tài “Nghiên cứu, xây dựng giải pháp truyền tin có bảo mật mạng nội với TLS 1.3” làm đồ án tốt nghiệp viii SSL *ssl = SSL_new(ctx); SSL_set_fd(ssl, sock); configure_connection(ssl); - Thiết lập kết nối configure_context(ctx): TLS 1.3 tới Server từ hàm void configure_context(SSL_CTX *ctx) { SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, NULL); SSL_CTX_set_min_proto_version(ctx, TLS1_3_VERSION); SSL_CTX_set_keylog_callback(ctx, keylog_callback); } - Cấu hình số thông số kết nối TLS 1.3 từ Client tới Server hàm configure_connection(): void configure_connection(SSL *ssl) { SSL_set_tlsext_host_name(ssl, "example.ulfheim.net"); SSL_set_connect_state(ssl); if (SSL_do_handshake(ssl)