HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THÔNG KHOA AN TOÀN THÔNG TIN ĐỎ ÁN TÓT NGHIỆP ĐÈ TÀI: NGHIÊN CỨU KỸ THUẬT Giảng viên hướng dẫn: PGS TS Dé Xuân Chợ Sinh viên: Phạm Công Trường Mã sinh viên: B19DCAT202 Lớp: DI9CQAT02_B 2019 - 2024 Hà Nội, tháng 12 năm 2023 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành đến Thầy Đỗ Xuân Chợ — Giảng viên Khoa An toàn thông tin, Học viện Công nghệ Bưu chính Viễn thông đã nhiệt tình hướng dẫn em trong suốt thời gian làm đồ án Thầy đã tạo nhiều điều kiện thuận lợi, định hướng, chỉ bảo tận tình và cho những lời khuyên giúp em giải quyết được những khó khăn trong việc thực hiện đồ án Đồng thời, thầy đã giúp em hiểu được những kiến thức quan trọng, giúp em tiếp cận với cách tư duy, giải quyết và trình bày dé có thé tìm hiểu và hoàn thành đồ án đúng thời hạn Em cũng xin gửi lời cảm ơn chân thành với các thầy cô giáo trong Học viện Công nghệ Bưu chính Viễn thông nói chung, các thầy cô trong Khoa An toàn thông tin nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức và tạo điều kiện giúp đỡ trong suốt quá trình học tập trong những năm học vừa qua, là hành trang giúp em tự tin hơn trong công việc, cuộc sông và những mục tiêu trong tương lai Em xin chân thành cảm on! Sinh viên thực hiện Trường Phạm Công Trường LỜI CAM ĐOAN Em xin cam đoan đô án: “Nghiên cứu kỹ thuật mã hóa dau cuôi và ứng dụng” do chính cá nhân em nghiên cứu và thực hiện tat cả Kêt quả bai làm của đô án“Nghiên cứu kỹ thuật mã hóa dau cuôi và ứng dụng” là trung thực và không sao chép từ bât cứ khóa luận, đô án, luận văn của cá nhân/ nhóm khác Cac tài liệu tham khảo, tài liệu được sử dụng trong tiêu luận có nguôn gôc va xuat xu ro rang Em xin cam doan MỤC LỤC LOI CẢM ƠN 52-252 2S2212211221221127121127112112112112211111210 11111 212a 211 2 LỜI CAM ĐOAN 25-222 21 221221221221121121121121111121121121121t11r21e2.2 3 MG ĐẦU .-2 S52 21 2212211221211271121127112112112112111112111112111r11e 5 DANH MỤC CÁC TU VIET TẮTT 2: ©2+.+2+.22.EE2.EE£.EE.+2E.EEE.E22.E2.2E2.212.2E.Err-rrr-ei 7 DANH MỤC HINH ẢNH .- St.S.t.E.1 1.111.111.111.11 1111.111.1 1.111.11 EEE.EE.er-ke 8 CHƯƠNG 1: TONG QUAN VE MA HÓA 2-.5 s.2 2E.2EE.EE.EEE.2E.2EE.Ee.rkr-rr 10 1.1 TỔng quati ceccecccccesccssessessesssssessessessessessssusssessessessessessussussessssessesesesssetees 10 1.2 Vai trò của mã hÓa E1 222.111.11.223.111.11.211.11.120.11 111.111.1.1.g0-2-1-11k-xe 10 1.3 Phân loại mã hóa - - -G E2 11122211 11112531 11119211 1111811111991 0 223111111 ke 11 1.4 Một số ứng dụng của mật mã hỌc .-.- 2 3.+.1.11.33.23 EEs.sr.ree.er.rrr-es 16 CHƯƠNG 2: MÃ HÓA ĐẦU CUỐI 2 2.2+.2E+.2E+.EE£.2E.2EE.2E2.EEE.EEE.2EE.Ezr.rrr.ee 18 2.1 TỔng quan 2: ¿252222 ‡SE9EE9EE921121121122117127171121121121111111121112x1e1 18 2.2 Giao thức mã hóa đầu cuối OTR 2: + ++2.+££.+E.£2E.E2.EE+.EEt.EE.trE-erx-rr-rre-ee 19 2.3 Giao thức mã hóa đầu cuối Zalo c ceccccccssessesssessessessessesstsssessessessessessessseeees 30 2.4 Thực hành giao thức mã hóa đầu cuối OTR 2 s+.z.s+-s+-z+-+s2ze-: 41 CHƯƠNG 3: XÂY DUNG UNG DỤNG WEB CHAT MÃ HOA DAU CUOI 52 3.1 Ý tưởng, mục tiêu xây dung ứng dụng 2¿¿+2+2++zz+zx+zszxerxzxee 52 3.2 6iái(ái a 53 3.3 Thiết kế ứng Cun g esecceceeccececscscesessessesscsscsscseseesscsscscsesessesecsversecsvsvsnsaeeees 55 3.4 Cơ chế triển khai mã hóa đầu cuối ¿.5-.52.t+.E+E.+ES.EEEE.+E+.EEE.EEE.eEeE.rrr.rrr-sez 65 3.5 Hoạt động các chức năng chính của ứng dụng -. . .+ + ss.++.+s.ss.+2 66 KẾT LUAN u.cccccccsccscscsececsesesececsvsucecscsvsucecevsveeuceravsvsusesavavsusacasecucvavavavsvasasatereeetees 75 TÀI LIEU THAM KHẢO 5-5: Sc St E2E9EE2E9E12E5512E512111211121112111E21E1xe1E 76 MỞ ĐÀU 1 Lý do chọn đề tài Trong thời đại công nghệ thông tin và không gian mạng phát triển nhanh chóng, việc trao đổi thông tin trên không gian mạng ngày càng yêu cầu được tính bi mật và riêng tư tuyệt đối dé tránh được tat cả các nguy cơ tiềm tàng từ tội phạm và các cuộc tấn công nhăm vào người dùng Mã hóa đầu cuối (End-to-End Encryption - E2EE) là một phương pháp mạnh mẽ dé bảo vệ thông tin khỏi bat kỳ nguy cơ nao từ thời điểm mà nó được tạo ra đến thời điểm nó được sử dụng Với ngày càng nhiều đữ liệu cá nhân được truyền tải qua mạng, việc hiểu và nghiên cứu về kỹ thuật mã hóa đầu cuối giúp bảo vệ quyền riêng tư của người sử dụng Điều này có ứng dụng rộng rãi trong các ứng dụng như tin nhắn, giao dịch tài chính, và nhiều lĩnh vực khác Nghiên cứu về kỹ thuật này sẽ giúp hiểu rõ cách bảo vệ thông tin truyền tải qua mạng Việc sử dụng mã hóa đầu cuối giúp ngăn chặn nguy cơ mat mát dữ liệu khi đữ liệu đi qua môi trường mạng Điều này đặc biệt quan trọng trong môi trường mà việc chống thất thoát dữ liệu ngày càng trở nên quan trọng Các ứng dụng sử dụng E2EE ngày càng trở nên phô biến, từ các ứng dụng nhắn tin đến giao dịch trực tuyến Hiểu rõ về kỹ thuật mã hóa đầu cuối là cơ hội dé đóng góp vào sự phát triển của các công nghệ an toàn thông tin trong thế giới kỹ thuật số ngày nay Đồ án bao gồm 3 chương: Chương 1: Chương này sẽ trình bay tông quan vê mã hóa, vai trò va phân loại của các hệ mã hóa, làm tiên đê phát triên cho các hệ thông, giao thức mã hóa đâu đâu cuôi sau này Chương 2: Chương 2 sẽ trình bày tông quát các yêu yêu câu và tiêu chuân của một hệ mã hóa đầu cuối Trình bày bày hoạt động của giao thức mã hóa đầu cuối OTR và Zalo Chương 3 Tiên hành xây dựng ứng web chat mã hóa đâu cuôi và đáp ứng được các tiêu chuân chuẩn của một hệ giao thức trao đôi thông điệp an toàn 2 Mục đích nghiên cứu - Hiểu rõ về kỹ thuật mã hóa đầu cuối, đặc biệt là giao thức mã hóa đầu cuối Off- the-Record Messaging (OTR) - Thử nghiệm với ứng dụng web chát mã hóa đầu cuối sử dụng các hệ mã hóa thông dụng 3 Phương pháp nghiên cứu Phương pháp nghiên cứu là nghiên cứu lý thuyết kết hợp với thực nghiệm và triển khai ứng dụng DANH MỤC CÁC TU VIET TAT E2EE End-to-End Encryption Mã hóa đầu cudi OTR Off-the-Record Messaging | Giao thức mã hóa đầu cuối AES Off-the-Record Messaging SHA Advanced Encryption Standard Chuẩn mã hóa nâng cao Secure Hash Algorithm Thuat toan bam an toan DANH MỤC HÌNH ẢNH Hình 1 1 Mật mã đối xứng .2 2©.+.E2E.E2E.12E.19E.1E7.17.112.112.112.171-11-11-1.1 ye 11 Hình 1 2 Mật mã bat đối XUN ceecccceccecsecsesssessessessessessessesessesessesesseseeseeeteess 12 Hình 1 3 Hoạt động của ham băm .G.0 31.312.11.191.1 1.511.11.118.111.11.1 111 re., 13 Hình 1 4 Mô tả quá trình tạo và kiểm tra chữ ký sỐ 2.-5.: 5.+ z+.s.+s.z+.s+.5+-2 14 Hình 2 1 Trao đồi thông điệp trong giao thức OTR .2.+.cs.+s.e.zx.+x-cz-xs-ce-z 21 Hình 2 2 Giao thức trao đổi khóa Diffie Hellman 22 Hình 2 3 Tan công “Main-in-the-middÏe” s-.+ s2.s2.+E.+E.++E.xe.Ex.zE.er.xr.rr.re-rx-es 23 Hình 2 4 Xác thực danh tính trong khi thống nhất khóa bí mật chung 24 Hình 2 5 Xác minh tính toàn vẹn của thông điỆp 5.5.c.+.s‡.++.+s.ss.sx.s+.2 25 Hình 2 6 Cơ chế tạo khóa ký trong OTTR ¿2.s.+S2.+E++.E££.E£E.E£E.E2E.E2Ee.rEe.rxe.rer-xee 26 Hình 2 7 Giải mã và xác thực thông điệp trong OTTR 5.55.2.5 < s e -x- 28 Hình 2 S860 8.0 1 32 Hình 2 9 Giải thuật DH Ratchet . -.c.1 222.011.111.221.111.1 1.221.11.111.851.11.111.111.1 ke 33 Hình 2 10 Giải thuật Symmetric Key Ratchet -. 5c c.ss.s.s.ss.s.sk.k.r.es.e.k 34 Hình 2 11 Giải thuật DH Ratchet dé tạo đầu vào cho KDE .s.5 c.2- 35 Hình 2 12 Sử dung Symmetric Key Ratchet với Sending Chain Key 35 Hình 2 13 Quy trình tạo khóa TmỚII c.1 3.22.011.211.11.2 1.11.11.11.11.1.81.1 E.Er-rve 36 Hình 2 14 Giải thuật Double Ratchet -. c 5 22.22.11.11.325.52.2.11.1.1x.xx.krr.es 37 Hình 2 15 Quá trình thiết lập mã hóa đầu cuối 2.¿.2 s2.2.2.+E.+£x.sz.sz-xz-e+ 39 Hình 3 1 Kết nỗi Web Sockets ¿5.s.t.t 21 211.21.122.12.112.71.271.21.211- -1¿e- 54 Hình 3 2 Biểu đồ usecase ứng dUNg c eee eececcsseeseesessessesseseesessessesseseetsesesseseeeeees 56 Hình 3 3 Biểu đồ CSDL ứng dụng 2 + +.s+.Sx2.EE.2EE.2E£.EE.EEE.EE.E2E.EEE-2E-EEE-Er-rrr-ee 57 Hình 3 4 Các kiêu dit liệu ứng với các trường dữ liệu trong ứng dụng 58 Hình 3 5 Triển khai trao đôi khóa và xác thực danh tính ¿.2.s.=.sz.sz.z.zz-s+-z 65 Hình 3 6 Gửi thông điệp và xác thực thông điỆp - 2.-.25 3S s e 66 Hình 3 7 Dang ky tai Khoa eee eeeceeseceseeeseeeseeeseeeeeeeeeeeeeeeeeeeeeeneeeeeeeeensas 67 Hìn h 3 8 Đăng nhập vào hệ thống ¬ 67 Hìn h 3 9 Chức năng thay đối thông tin cá Nh4N eee eeeeseesseseeseseeeseseseesesens 68 Hìn h 3 10 Chức năng kết ban c.cececccccessessessessesssessessessessessessesessessessessessesseaes 68 Hìn h 3 11 Tạo cuộc trò chuyện nhóm -.-¿.+ +2.+3.2.E3.32.E.E*E.EE.E+.+se.ee.er.srr.ee.re-se 69 Hìn h 3 12 Thực hiện trao đôi thông điệp trong nhóm với các thành viên 70 Hìn h3 13 Trao đổi thông tin cá nhân không bảo mật .-.2.-5.52.2.+.2s.+-5271 Hìn h3 14 Server có thé đọc và hiểu các thông điệp của client 71 Hìn h 3 15 Kích hoạt tính năng mã hóa đầu cuối -.2.+ 2+.s+.2z.+£.e£.xz.£z-zx-d 72 Hìn h 3 16 Cuộc trò chuyện được bảo mậtt . .- ¿.+ 21+.+.23.*.*k.sr.i.rr.se.rr.rv.e 72 Hìn h 3 17 Trao đổi tin nhắn một cách an toàn .+.x.xx.vE.vEv.EEr.Er.tzx.ex-ere-ed 73 Hìn h 3 18 Server không thé đọc hiểu tin nhắn được mã hóa đầu cuối 73 CHƯƠNG 1: TONG QUAN VE MÃ HÓA 1.1 Tổng quan Trong thời đại thông tin số hiện nay, mã hóa là một khía cạnh quan trọng và không thé thiếu trong thé giới kỹ thuật số ngày nay, đặc biệt là khi dữ liệu di chuyên qua các mạng không an toàn Chức năng cơ bản của mã hóa là biến đổi thông tin từ dang ban đầu thành một dạng khác sao cho chỉ có những người được ủy quyền mới có thé đọc được nó Mã hóa bao gồm các thành phần: - Thong tin trước khi mã hóa (Plaintext) - Thong tin sau khi được mã hóa (Ciphertext) - Khóa (Key) - Phuong phap giai ma (Encryption/Decryption) Quá trình mã hóa được tiến hành băng cách sử dụng các hàm toán học Encryption lên thông tin Plaintext, von được biểu diễn dưới dạng số, dé trở thành thông tin mã hóa Ciphertext Trong khi đó giải mã là phương pháp đưa thông tin ở dang mã hóa về dang thông tin ban đầu, đây là quy trình ngược của mã hóa Quá trình giải mã được tiến hành thông qua các hàm toán học Decryption lên thông tin CipherText để được thông tin đã giải mã Plaintext và từ đó người được ủy quyên có thé đọc được thông tin 1.2 Vai trò của mã hóa Mật mã học có vai trò rất lớn trong việc dam bảo an toàn cho hệ thống thông tin cũng như các ứng dụng hiện nay Việc ứng dụng mật mã học nhằm đảm bảo các tính chất: - Tinh bí mật: Tính bí mật trong mật mã học là một thuộc tính quan trọng đánh giá mức độ an toàn của một hệ thống mật mã Nó đảm bảo rằng thông tin bí mật được bảo vệ khỏi sự tiếp cận trái phép hay xâm phạm từ bất kỳ bên nào không được ủy quyền, thông tin chỉ được phép truy cập bởi những đối tượng hợp lệ, những đối tượng được cấp phép - Tinh toàn vẹn thông tin: Tính toàn vẹn thông tin trong mật mã học đảm bảo rang thông tin không bị thay đổi trái phép trong quá trình truyền tải hoặc lưu trữ Điều này bao gồm khả năng phát hiện bất kỳ sự thay đổi nào của đữ liệu và đảm bảo răng người nhận có thê biệt được nêu có bat kỳ sự thay đôi nao đã xảy ra 10