Đăng ký Đăng nhập
Trang chủ Tìm hiểu về một số giải pháp bảo mật xác thực cho ứng dụng trên thiết bị di động...

Tài liệu Tìm hiểu về một số giải pháp bảo mật xác thực cho ứng dụng trên thiết bị di động

.PDF
123
1
67

Mô tả:

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU VỀ MỘT SỐ GIẢI PHÁP BẢO MẬT XÁC THỰC CHO ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG Ngành: Khoa học máy tính HỘI ĐỒNG: Khoa học máy tính 1 GVHD: ThS. Lưu Quang Huân ThS. Hồ Quang Chi Bảo GVPB: ThS. Băng Ngọc Bảo Tâm SVTH: Nguyễn Thanh Bình (1710023) TP.HCM, 2021 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU VỀ MỘT SỐ GIẢI PHÁP BẢO MẬT XÁC THỰC CHO ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG Ngành: Khoa học máy tính HỘI ĐỒNG: Khoa học máy tính 1 GVHD: ThS. Lưu Quang Huân ThS. Hồ Quang Chi Bảo GVPB: ThS. Băng Ngọc Bảo Tâm SVTH: Nguyễn Thanh Bình (1710023) TP.HCM, 2021 ĈҤ,+Ӑ&48Ӕ&*,$73+&0  75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$ .+2$ .+ .70i\WtQK %Ӝ0Ð1 .+07 &Ӝ1*+Ñ$;­+Ӝ,&+Ӫ1*+Ƭ$9,ӊ71$0 ĈӝFOұS7ӵGR+ҥQKSK~F 1+,ӊ09Ө/8Ұ1È17Ӕ71*+,ӊ3 &K~ê6LQKYLrQSK̫LGiQWͥQj\YjR WUDQJQK̭WFͯDE̫QWKX\͇WWUuQK +Ӑ9¬7Ç11*8<ӈ17+$1+%Î1+ 1*¬1+.+2$+Ӑ&0È<7Ë1+ 0669 /Ӟ307.+ ĈҫXÿӅOXұQiQ 7uPKLӇXYӅPӝWVӕJLҧLSKiSEҧRPұW[iFWKӵFFKRӭQJGөQJWUrQWKLӃWEӏGLÿӝQJ 1KLӋPYө \rXFҫXYӅQӝLGXQJYjVӕOLӋXEDQÿҫX  7uPKLӇXYӅPӝWVӕSKѭѫQJSKiSEҧRPұWYj[iFWKӵFWK{QJWLQWURQJWUDRÿәLGӳOLӋX 7uPKLӇXYӅFiFSKѭѫQJWKӭF[iFWKӵFQJѭӡLGQJ 7uPKLӇXFiFFѫFKӃOѭXWUӳÿӇEҧRYӋWK{QJWLQQJѭӡLGQJ 1Jj\JLDRQKLӋPYөOXұQiQ 1Jj\KRjQWKjQKQKLӋPYө +ӑWrQJLҧQJYLrQKѭӟQJGүQ  7K6/ѭX4XDQJ+XkQ  7K6+ӗ4XDQJ&KL%ҧR 3KҫQKѭӟQJGүQ 1ӝLGXQJYj\rXFҫX/971ÿmÿѭӧFWK{QJTXD%ӝP{Q 1Jj\WKiQJQăP &+Ӫ1+,ӊ0%Ӝ0Ð1 *,Ҧ1*9,Ç1+ѬӞ1*'Ү1&+Ë1+ .êYjJKLU}K͕WrQ .êYjJKLU}K͕WrQ 3+̮1'¬1+&+2.+2$%͠0Ð1 1JѭӡLGX\ӋW FKҩPVѫEӝ  ĈѫQYӏ 1Jj\EҧRYӋ ĈLӇPWәQJNӃW 1ѫLOѭXWUӳOXұQiQ TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ---------------------------Ngày 07 tháng 08 năm 2021 PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người hướng dẫn) 1. Họ và tên SV: NGUYỄN THANH BÌNH MSSV:1710023 Ngành (chuyên ngành): Khoa học Máy tính 2. Đề tài: Tìm hiểu về một số giải pháp bảo mật và xác thực cho ứng dụng trên thiết bị di động 3. Họ tên người hướng dẫn: ThS. Lưu Quang Huân - ThS. Hồ Quang Chi Bảo 4. Tổng quát về bản thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính toán: Hiện vật (sản phẩm) 5. Tổng quát về các bản vẽ: - Số bản vẽ: Bản A1: Bản A2: Khổ khác: - Số bản vẽ vẽ tay Số bản vẽ trên máy tính: 6. Những ưu điểm chính của LVTN: - Nhận thức được bối cảnh thực tế của những vấn đề liên quan đến bảo mật và xác thực người dùng trên thiết bị di động, từ đó xác định rõ động lực, mục tiêu khi thực hiện đề tài. - Tìm hiểu kỹ các nguyên tắc trong bảo mật cũng như phân tích được nhiều khía cạnh liên quan như: các yếu tố bảo mật, các nhân tố ảnh hưởng, những phương thức được sử dụng phổ biến, và những lỗ hổng cùng với những nguy hại tiềm ẩn trong ứng dụng cho thiết bị di động. - Từ những nghiên cứu và phân tích, nhóm thực hiện đã đề xuất được kiến trúc cho một dịch vụ xác thực người dùng, trong đó mô hình xác thực đa yếu tố được áp dụng để nâng cao khả năng bảo mật, có tính ứng dụng cao trong thực tế. - Áp dụng các biện pháp bảo mật tiên tiến, đồng thời kết hợp được nhiều biện pháp kỹ thuật để hiện thực thành công giải pháp đề xuất. Triển khai giải pháp trên môi trường thực tế và đạt được kết quả tốt. Thực hiện bài bản các bước kiểm thử chức năng, kiểm thử xâm nhập,... để đánh giá mức độ kháng lỗi trong bảo mật. Bên cạnh đó, mức độ đáp ứng của hệ thống cũng được quan tâm và kiểm tra trên một máy chủ cụ thể. - Cấu trúc luận văn rõ ràng, tài liệu tham khảo đầy đủ, luận văn được thực hiện nghiêm túc với tinh thần cầu thị cao, giao tiếp tốt và có trách nhiệm với các nhóm liên quan. 7. Những thiếu sót chính của LVTN: - Mô hình triển khai, thử nghiệm, và đánh giá ở mức cơ bản, chỉ phù hợp với giai đoạn PoC của dự án. - Chưa làm nổi bật vai trò và ý nghĩa của việc hiện thực mô hình đề xuất khi có không ít những nền tảng cung cấp dịch vụ xác thực người dùng. - Cần làm rõ hơn định hướng kết hợp với nhiều kênh dữ liệu chính quy của Chính phủ để nâng cao tính xác thực người dùng trong phần mở rộng. 8. Đề nghị: Được bảo vệ √ Bổ sung thêm để bảo vệ □ Không được bảo vệ □ 9. 3 câu hỏi SV phải trả lời trước Hội đồng: a. Xác thực đa yếu tố có làm ảnh hưởng đến tính sẵn sàng trong tam giác CIA hay không? Tại sao? b. Cơ chế quản lý truy cập mà đề tài đề xuất có đảm bảo tránh khỏi các hình thức tấn công vào xác thực như Fixed Session, User Enumeration ? c. Trong hệ thống sử dụng Access Token và Refresh Token để trao đổi dữ liệu, làm sao thu hồi những token này khi tài khoản người dùng bị khóa? 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm : 9.8/10 Ký tên (ghi rõ họ tên) TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ---------------------------Ngày 08 tháng 08 năm 2021 PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người phản biện) 1. Họ và tên SV: NGUYỄN THANH BÌNH MSSV: 1710023 Ngành (chuyên ngành): Khoa học Máy tính 2. Đề tài: Tìm hiểu về một số giải pháp bảo mật và xác thực cho ứng dụng trên thiết bị di động 3. Họ tên người phản biện: ThS. Băng Ngọc Bảo Tâm 4. Tổng quát về bản thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính toán: Hiện vật (sản phẩm) 5. Tổng quát về các bản vẽ: - Số bản vẽ: Bản A1: Bản A2: Khổ khác: - Số bản vẽ vẽ tay Số bản vẽ trên máy tính: 6. Những ưu điểm chính của LVTN: ● Nắm bắt được các vấn đề liên quan đến bảo mật và xác thực người dùng, để từ đó vận dụng, ứng dụng và đề xuất các giải pháp bảo mật và xác thực trên thiết bị di động. ● Nghiên cứu và tìm hiểu kỹ về các mô hình xác thực người dùng, từ những phương thức được sử dụng phổ biến cho đến các phương thức phức tạp. Cùng với việc giải thích cụ thể các lỗ hổng bảo mật, mối đe dọa và rủi ro để từ đó đề xuất một mô hình dịch vụ xác thực người dùng mới. ● Kết hợp nhiều phương pháp xác thực hiện đại để hiện thực mô hình đề xuất. Thực hiện các bước kiểm thử đơn vị, kiểm thử chức năng, … bài bản. Ngoài ra còn kết hợp với việc kiểm thử các lỗ hỏng bảo mật bằng một phần mềm kiểm tra của bên thứ ba để đánh giá độ hiệu quả và tin cậy của mô hình đề xuất. ● Luận văn được trình bày cụ thể, rõ ràng, bố cục hợp lý, tài liệu tham khảo đầy đủ. Phần mô hình giải pháp đề xuất cũng như quá trình kiểm thử sản phẩm được trình bày và giải thích rất chi tiết. 7. Những thiếu sót chính của LVTN: ● Chưa làm nổi bật được những ý tưởng cốt lõi của hệ thống đề xuất để so với các phương pháp xác thực và bảo mật hiện tại. ● Chưa thực hiện kiểm thử hiệu năng để biết khả năng chịu tải có đáp ứng được với thực tế hay không. 8. Đề nghị: Được bảo vệ √ Bổ sung thêm để bảo vệ □ 9. 3 câu hỏi SV phải trả lời trước Hội đồng: Không được bảo vệ □ a. Hệ thống đề xuất được xem như 1 bên thứ 3 dùng để cung cấp một giải pháp xác thực dữ liệu cho bên A và bên B. Vậy nếu cấu trúc hệ thống của bên A và bên B khác nhau hoàn toàn thì việc tích hợp sẽ như thế nào? b. Cơ chế lưu mật khẩu và token có đảm bảo yếu tố bí mật và tránh khỏi các hình thức tấn công như vét cạn, MiTM hay không? c. Hệ thống sẽ xử lý như thế nào trong trường hợp bị DDoS hay gặp dạng tấn công man in the middle? 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm: 9.7/10 Ký tên (ghi rõ họ tên) Băng Ngọc Bảo Tâm LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu và thực hiện của tôi. Mọi số liệu, tài liệu dược sử dụng trong phân tích đều đươc dẫn chứng và công bố rõ ràng. Trong trường hợp sao chép không hợp lệ, vi phạm các quy định, tôi xin hoàn toàn chịu trách với mọi hình thức kỷ luật được đề ra. NGUYỄN THANH BÌNH LỜI CẢM ƠN Đầu tiên, tôi xin trân trọng cảm ơn đến thầy Lưu Quang Huân, giảng viên khoa Khoa học và Kỹ thuật Máy tính - trường Đại học Bách Khoa - ĐHQG TP.HCM, và anh Hồ Quang Chi Bảo đã tận tình chỉ dẫn, định hướng tôi trong suốt quá trình làm luận văn. Đồng thời, tôi cũng xin gửi lời cảm ơn đến anh Nguyễn Trọng Dư cùng hai bạn Nguyễn Quang Lâm và Trần Mạnh Hưng đã giúp đỡ tôi trong thời gian vừa qua để có thể hoàn thành luận văn này. Tiếp đến, tôi xin gửi lời cảm ơn chân thành đến quý thầy cô trường Đại học Bách Khoa, đặc biệt là khoa Khoa học và Kỹ thuật máy tính cũng như các thầy cô ở bậc phổ thông đã truyền đạt cho tôi nhiều kinh nghiệm, kiến thức để tôi có thể nghiên cứu, phát triển và hoàn thành đề tài luận văn. Cuối cùng, tôi xin gửi cảm ơn đến gia đình, bạn bè đã luôn ủng hộ, tạo động lực cho tôi trong suốt quá trình thực hiện và hoàn thành luận văn. NGUYỄN THANH BÌNH MỤC LỤC Danh sách hình vẽ 5 Danh sách bảng 7 1 Giới thiệu 1 1.1 Động lực . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Mục tiêu đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Phạm vi đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Cấu trúc báo cáo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Kiến thức nền tảng 4 2.1 Các nguyên tắc trong bảo mật thông tin. . . . . . . . . . . . . . . . . . . . 4 2.1.1 Tính bí mật dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.2 Tính toàn vẹn dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.3 Tính sẵn sàng dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.4 Tính xác thực . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.5 Tính chống thoái thác . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Xác thực người dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.2 Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 So sánh Authentication và Authorization . . . . . . . . . . . . . . 9 2.3 OTP (One-time-password) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1 HOTP (HMAC-based One-time Password) . . . . . . . . . . . . . 10 2.3.2 TOTP (Time-Based One-Time Password) . . . . . . . . . . . . . . 10 2.4 Mã hóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.1 Mã hóa đối xứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.2 Mã hóa bất đối xứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.3 Hàm băm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.4 Chữ ký số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 RESTful API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6 OWASP Top 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6.1 Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 21 MỤC LỤC 2 2.6.2 Broken Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.6.3 Lộ thông tin nhạy cảm người dùng . . . . . . . . . . . . . . . . . . 22 2.6.4 XML External Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.6.5 Broken Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.6.6 Cấu hình sai các cài đặt bảo mật . . . . . . . . . . . . . . . . . . . . 24 2.6.7 Cross-Site Scripting (XSS) . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6.8 Giải mã dữ liệu không an toàn . . . . . . . . . . . . . . . . . . . . . 26 2.6.9 Sử dụng các công cụ với các lỗ hổng bảo mật đã được biết . . . 26 2.6.10 Giám sát hệ thống không đầy đủ . . . . . . . . . . . . . . . . . . . . 27 3 Các công trình nghiên cứu liên quan 3.1 Các mô hình xác thực người dùng. . . . . . . . . . . . . . . . . . . . . . . . 28 28 3.1.1 Basic Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.2 Bearer Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.1.3 API Key Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.4 OAuth 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2 Các dịch vụ xác thực người dùng . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.1 Single Sign-On (SSO) . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.2 Auth0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.3 Google Sign In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 Các nghiên cứu tăng cường bảo mật . . . . . . . . . . . . . . . . . . . . . . 36 3.3.1 Bài báo "Two-Factor Authentication: Too Little, Too Late" . . . 3.3.2 Bài báo "A secure method for signing in using quick response 36 codes with mobile authentication" . . . . . . . . . . . . . . . . . . 37 3.4 Các công cụ, thư viện kiểm thử và đánh giá bảo mật. . . . . . . . . . . . 37 3.4.1 OWASP ZAP (Zed Attack Proxy). . . . . . . . . . . . . . . . . . . . . 37 3.4.2 Burp Suite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.3 Công cụ StackHawk . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4 Các lỗ hổng, mối đe dọa và rủi ro trong bảo mật và xác thực người dùng 40 4.1 Vulnerability, threat và risk . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2 Quản lý danh tính (Identity management) . . . . . . . . . . . . . . . . . . 41 4.2.1 Đoán và liệt kê các tài khoản . . . . . . . . . . . . . . . . . . . . . . 41 4.3 Xác thực (Authentication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3.1 Phương thức khóa tài khoản yếu kém . . . . . . . . . . . . . . . . 41 4.3.2 Bypass quá trình xác thực . . . . . . . . . . . . . . . . . . . . . . . . 42 4.3.3 Yêu cầu về mật khẩu yếu . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.3.4 Điểm yếu trong quá trình thay đổi, khôi phục mật khẩu . . . . 43 MỤC LỤC 3 4.4 Ủy quyền (Authorization) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4.1 Bypass quá trình ủy quyền . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4.2 Privilege escalation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.5 Quản lý phiên (Session management) . . . . . . . . . . . . . . . . . . . . . 44 4.5.1 Session Fixation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.5.2 CSRF (Cross Site Request Forgery). . . . . . . . . . . . . . . . . . . 45 4.6 Kiểm tra đầu vào (Input validation). . . . . . . . . . . . . . . . . . . . . . . 45 4.6.1 Reflected Cross Site Scripting . . . . . . . . . . . . . . . . . . . . . . 45 4.6.2 Stored Cross Site Scripting . . . . . . . . . . . . . . . . . . . . . . . . 46 4.6.3 SQL Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5 Giải pháp đề xuất 5.1 Phân tích yêu cầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 48 5.1.1 Định dạng chuỗi bí mật trong mô hình . . . . . . . . . . . . . . . 49 5.1.2 Các loại mã JWT trong hệ thống . . . . . . . . . . . . . . . . . . . . 50 5.1.3 Thu hồi các chuỗi bí mật . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2 Kiến trúc tổng quan hệ thống. . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3 Hiện thực khối quản lý việc tạo / xác thực các mã trong hệ thống . . . 52 5.3.1 Quá trình tạo và kiểm chứng mã JWT. . . . . . . . . . . . . . . . . 52 5.3.2 Quá trình tạo mã OTP . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3.3 Quá trình tạo, xác nhận và kiểm tra cho mã QR . . . . . . . . . . 55 5.3.4 Quá trình tạo và kiểm tra cho mã khôi phục mật khẩu . . . . . 56 5.4 Hiện thực khối quản lý thông tin người dùng . . . . . . . . . . . . . . . . 56 5.5 Hiện thực khối logic chức năng . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.5.1 Đăng ký người dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.5.2 Đăng nhập (sử dụng mật khẩu và OTP) . . . . . . . . . . . . . . . 59 5.5.3 Đăng nhập sử dụng mã QR . . . . . . . . . . . . . . . . . . . . . . . 60 5.5.4 Cập nhật thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.5.5 Khôi phục mật khẩu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.5.6 Đăng xuất . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.5.7 Cấp lại mã truy cập (AT) . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.5.8 Kiểm tra mã truy cập (RT) . . . . . . . . . . . . . . . . . . . . . . . . 65 5.5.9 Tạm khóa tài khoản theo ràng buộc về số lần thất bại . . . . . . 66 5.6 Case study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.6.1 Lược đồ lưu trữ cho dữ liệu được ủy quyền quản lý bởi dịch vụ điều phối . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.6.2 Quá trình đăng ký bổ sung thông tin tài xế và phương tiện . . . 67 5.6.3 Quá trình ủy quyền người dùng thay cho dịch vụ điều phối . . 69 MỤC LỤC 5.6.4 4 Giới hạn một người dùng chỉ được đăng nhập trên một thiết bị tại một thời điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Đánh giá và cải tiến giải pháp đề xuất 69 71 6.1 Đánh giá giải pháp đề xuất . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.2 Các rủi ro và giải pháp cải tiến . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.3 Hiện thực giải pháp cải tiến . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.3.1 Trong việc xoay vòng mã làm mới . . . . . . . . . . . . . . . . . . . 74 6.3.2 Ngăn chặn kịp thời việc sử dụng lại mã làm mới đã hết hạn . . 74 6.3.3 Khôi phục mật khẩu sử dụng lịch sử người dùng . . . . . . . . . 75 7 Triển khai, thử nghiệm và đánh giá 78 7.1 Triển khai. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 7.2 Thử nghiệm và kiểm thử mô hình . . . . . . . . . . . . . . . . . . . . . . . . 78 7.2.1 Kiểm thử yêu cầu hệ thống . . . . . . . . . . . . . . . . . . . . . . . 78 7.2.2 Kiểm thử xâm nhập (Penetration Test) . . . . . . . . . . . . . . . . 81 7.3 Đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 8 Tổng kết 86 8.1 Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 8.2 Những hạn chế và hướng phát triển . . . . . . . . . . . . . . . . . . . . . . 87 Tài liệu tham khảo 88 A Tài liệu API hệ thống 93 A.1 Đăng ký . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 A.1.1 Đăng ký tài khoản . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 A.1.2 Đăng ký bổ sung thông tin tài xế, phương tiện . . . . . . . . . . . 94 A.2 Đăng nhập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 A.2.1 Đăng nhập sử dụng mật khẩu và OTP . . . . . . . . . . . . . . . . 95 A.2.2 Đăng nhập sử dụng QR . . . . . . . . . . . . . . . . . . . . . . . . . . 97 A.3 Khôi phục mật khẩu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 A.3.1 Khôi phục sử dụng OTP và câu hỏi bảo mật . . . . . . . . . . . . 100 A.4 Cập nhật thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 A.4.1 Thay đổi mật khẩu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 A.5 Quản lý token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.5.1 Cấp lại access token . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.5.2 Kiểm tra access token . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 DANH SÁCH HÌNH VẼ 2.1 Ví dụ về phân quyền trong hệ thống . . . . . . . . . . . . . . . . . . . . . 9 2.2 Quá trình mã hóa và giải mã trong mã hóa đối xứng . . . . . . . . . . . 11 2.3 Mã hóa và giải mã khối sử dụng ECB . . . . . . . . . . . . . . . . . . . . . 12 2.4 Mã hóa và giải mã khối sử dụng CCB . . . . . . . . . . . . . . . . . . . . . 12 2.5 Mã hóa và giải mã khối sử dụng CFB . . . . . . . . . . . . . . . . . . . . . 13 2.6 Mã hóa và giải mã khối sử dụng OFB . . . . . . . . . . . . . . . . . . . . . 13 2.7 Synchronous stream ciphers . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.8 Self-synchronous stream ciphers . . . . . . . . . . . . . . . . . . . . . . . 14 2.9 Quá trình mã hóa và giải mã trong mã hóa bất đối xứng . . . . . . . . . 15 2.10 Sử dụng hàm băm để kiểm tra tính toàn vẹn dữ liệu . . . . . . . . . . . 17 2.11 Quá trình ký dữ liệu khi gửi (mã hóa bất đối xứng) . . . . . . . . . . . . 17 2.12 Quá trình xác thực dữ liệu khi nhận (mã hóa bất đối xứng) . . . . . . . 18 2.13 Quá trình ký dữ liệu khi gửi (mã hóa đối xứng) . . . . . . . . . . . . . . . 19 2.14 Quá trình xác thực dữ liệu khi nhận (mã hóa đối xứng) . . . . . . . . . 20 3.1 Quá trình của Basic Authentication . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Quá trình của Bearer Authentication . . . . . . . . . . . . . . . . . . . . . 29 3.3 Quá trình xác thực sử dụng API Key . . . . . . . . . . . . . . . . . . . . . . 30 3.4 Quá trình xác thực đơn giản của OAuth . . . . . . . . . . . . . . . . . . . 32 3.5 Quá trình SSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.6 Quá trình xác thực và ủy quyền của Auth0 . . . . . . . . . . . . . . . . . 35 3.7 Quá trình xác thực và ủy quyền của Google Sign In . . . . . . . . . . . . 36 3.8 Giao diện của Burp Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.1 Kiến trúc của hệ thống đề xuất . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2 Các thành phần trong JWT . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3 Kiến trúc tổng quan hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4 Quá trình xác thực sử dụng mã QR . . . . . . . . . . . . . . . . . . . . . . 55 5.5 Lược đồ cơ sở dữ liệu lưu trữ thông tin người dùng . . . . . . . . . . . . 58 5.6 Quá trình đăng ký người dùng . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.7 Quá trình đăng nhập sử dụng mật khẩu và xác thực OTP . . . . . . . . 60 5.8 Quá trình đăng nhập sử dụng QR . . . . . . . . . . . . . . . . . . . . . . . 62 5 DANH SÁCH HÌNH VẼ 6 5.9 Quá trình cập nhật thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.10 Quá trình khôi phục mật khẩu . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.11 Quá trình đăng xuất trên một thiết bị . . . . . . . . . . . . . . . . . . . . . 64 5.12 Quá trình cấp lại mã truy cập . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.13 Quá trình kiểm tra mã truy cập . . . . . . . . . . . . . . . . . . . . . . . . 65 5.14 Lược đồ cơ sở dữ liệu lưu trữ thông tin người dùng với các thông tin được bổ sung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.15 Quá trình đăng ký bổ sung thông tin tài xế và phương tiện . . . . . . . 68 5.16 Quá trình đăng nhập sử dụng mật khẩu và xác thực OTP (được sửa đổi) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.17 Quá trình đăng nhập với ràng buộc chỉ được sử dụng một thiết bị . . . 70 6.1 Quá trình xoay vòng mã làm mới . . . . . . . . . . . . . . . . . . . . . . . 73 6.2 Quá trình khôi phục mật khẩu (đã được cải tiến) . . . . . . . . . . . . . 77 7.1 Kết quả sử dụng công cụ StackHawk . . . . . . . . . . . . . . . . . . . . . 81 7.2 Kết quả sử dụng công cụ HostedScan với ZAP . . . . . . . . . . . . . . . 82 7.3 Kết quả sử dụng công cụ HostedScan với Nmap . . . . . . . . . . . . . . 83 7.4 Kết quả sử dụng công cụ HostedScan với OpenVAS . . . . . . . . . . . . 84 DANH SÁCH BẢNG 2.1 Hình thức, rủi ro và hạn chế của các yếu tố xác thực . . . . . . . . . . . 8 2.2 So sánh giữa authentication và authorization . . . . . . . . . . . . . . . 9 3.1 Một số dịch vụ SSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1 Giá trị lưu trữ liên quan đến mã QR trong quá trình thực hiện . . . . . 56 7.1 Thời gian thực hiện các yêu cầu trên máy chủ được triển khai (không bao gồm độ trễ đường truyền) . . . . . . . . . . . . . . . . . . . . . . . . . 80 7 1 GIỚI THIỆU 1.1. ĐỘNG LỰC Ngày nay, điện thoại thông minh đóng một vai trò quan trọng trong cuộc sống. Không chỉ dừng lại ở việc sử dụng những chức năng cơ bản như nghe gọi, gửi tin nhắn..., điện thoại thông minh còn được sử dụng như một phương tiện để giải trí, mua sắm online và công cụ hữu hiệu để làm việc. Theo thống kê từ trang IDC [1], Android và iOS là hai hệ điều hành dành cho thiết bị di động phổ biến nhất hiện nay, chiếm lĩnh gần như 100% tổng số các thiết bị hiện tại. Với số lượng thiết bị và người sử dụng nhiều như vậy, vấn đề bảo mật dữ liệu cũng như thông tin người dùng trở thành vấn đề cấp thiết và luôn được quan tâm bởi những nhà nghiên cứu, phát triển. Tuy nhiên, trong một báo cáo năm 2019 [2], có đến 38% ứng dụng trên iOS và 43% ứng dụng trên Android đối mặt với những lỗ hổng nghiêm trọng. Nguyên nhân phổ biến nhất gây ra tình trạng này là do cơ chế bảo mật yếu kém với tỷ lệ lần lượt là 74%, 57% và 42% tương ứng với ứng dụng trên iOS, Android, và máy chủ cung cấp dịch vụ. Tuy vấn đề bảo mật luôn được quan tâm cải tiến và nâng cấp, nhưng vẫn luôn tồn tại những cơ chế bảo mật yếu kém, mà nguyên nhân có thể đến từ việc chủ quan của những người quản trị hoặc sự hạn chế kiến thức chuyên sâu trong lĩnh vực bảo mật của những người phân tích, thiết kế dẫn đến việc đánh giá chưa đầy đủ làm cho một số lỗ hổng bị khai thác, và hậu quả là hàng triệu record dữ liệu của người dùng bị rò rỉ ra ngoài. Yếu tố bảo mật trong việc quản lý thông tin người dùng nói riêng và trong việc phát triển ứng dụng đang được quan tâm và trở thành yếu tố cốt lõi cho việc khẳng định giá trị của sản phẩm. Khác với trình duyệt web, ứng dụng di động thường không phản hồi một cách 1 1.2. MỤC TIÊU ĐỀ TÀI 2 tường minh về phương thức mà dữ liệu người dùng được trao đổi trong quá trình sử dụng. Vì vậy việc trao đổi dữ liệu riêng tư có được an toàn hay không đều phải phụ thuộc hoàn toàn vào nhà phát triển. Bên cạnh đó số lượng các điểm truy cập WiFi công cộng không ngừng tăng lên, tính đến năm 2020, có tới 454 triệu điểm trên toàn cầu [3]. Việc đảm bảo an toàn trong quá trình gửi nhận thông tin của người dùng trong môi trường như vậy càng trở nên thách thức hơn bởi vì dữ liệu của họ có thể bị đọc bởi bất kỳ một người nào đó đang cùng tham gia vào trong mạng WiFi công cộng. Qua đó cũng thấy được rằng việc tìm hiểu các giải pháp về bảo mật và xác thực cho ứng dụng trên thiết bị di động tuy không mới nhưng vẫn còn là vấn đề cấp thiết trong bối cảnh ngày nay. Và cũng vì vậy mà nó trở thành động lực chính của luận văn này. 1.2. MỤC TIÊU ĐỀ TÀI Trong đề tài này, các mục tiêu sau đây được đề ra và tập trung để hoàn tất : • Tìm hiểu, phân tích, và đánh giá những mô hình bảo mật và xác thực cho ứng dụng trên thiết bị di động hiện có. • Đề xuất giải pháp cho mô hình bảo mật trong xác thực người dùng cho các ứng dụng trên thiết bị di động. • Xây dựng một số mô hình xác thực phổ biến trên thiết bị di động đảm bảo được các tiêu chuẩn an toàn trong quá trình xác thực người dùng. • Hiện thực và triển khai thí điểm phương thức để xác thực người dùng cho Hệ thống hỗ trợ theo dõi và điều phối giao nhận hàng [4]. • Xây dựng mô hình thực nghiệm, thực hiện việc kiểm thử, đo đạc và đánh giá kết quả của các giải pháp đề xuất. 1.3. PHẠM VI ĐỀ TÀI Trong đề tài này, việc nghiên cứu sẽ được giới hạn trong phạm vi tìm hiểu, phân tích và đánh giá các phương thức xác thực đang được sử dụng phổ biến dành cho các ứng dụng trên thiết bị di động. Về mặt giải pháp, việc thiết kế, xây dựng và triển khai thí điểm máy chủ xác thực cho ứng dụng hỗ trợ theo dõi và điều phối giao nhận hàng sẽ được thực hiện với mục tiêu đảm bảo sự an toàn và tin cậy trong quá trình xác thực người dùng theo điều kiện thực tế. 1.4. CẤU TRÚC BÁO CÁO 3 1.4. CẤU TRÚC BÁO CÁO Báo cáo được chia thành 8 chương với nội dung cụ thể như sau: Chương 1 giới thiệu về đề tài luận văn, nêu lên động lực và phạm vi thực hiện của đề tài. Chương 2 trình bày các khác niệm cơ bản, kiến thức nền tảng liên quan đến những vấn đề bảo mật cho hệ thống công nghệ thông tin nói chung và trong ứng dụng trên thiết bị di động nói riêng. Chương 3 phân tích, đánh giá các giải pháp, công trình nghiên cứu liên quan phổ biến hiện nay, từ đó áp dụng vào việc thiết kế, xây dựng và thực hiện đề tài này. Chương 4 phân tích một số rủi ro xảy ra trong thực tế liên quan đến vấn đề bảo mật và xác thực người dùng trên ứng dụng di động, từ đó đề các giải pháp để khắc phục. Chương 5 đưa ra giải pháp thí điểm cho việc xác thực người dùng cho một bài toán cụ thể trong thực tế. Đồng thời áp dụng những phân tích, đánh giá ở Chương 3, 4 để xây dựng các mục tiêu và tiêu chí trong mô hình bảo mật của giải pháp. Chương 6 đánh giá và phân tích giải pháp thí điểm trên các khía cạnh bảo mật cũng như đề ra hướng giải quyết cho các vấn đề tồn đọng mà mô hình gặp phải. Chương 7 xây dựng và triển khai thử nghiệm giải pháp đã đề xuất trong điều kiện thực tế dựa trên những kịch bản được thiết kế nhằm đánh giá mức độ thỏa mãn các mục tiêu đề ra ở Chương 5. Chương 8 tổng kết lại những kết quả đã đạt được trong quá trình nghiên cứu, phân tích, đánh giá và đề ra giải pháp. Nêu lên những mặt hạn chế, đồng thời đề ra hướng phát triển cho đề tài trong tương lai. 2 KIẾN THỨC NỀN TẢNG 2.1. CÁC NGUYÊN TẮC TRONG BẢO MẬT THÔNG TIN Mô hình tam giác bảo mật CIA [5] hiện nay vẫn được đánh giá cao bởi cách tiếp cận đơn giản phù hợp với việc tìm hiểu, hình dung, và giải quyết các vấn đề trong lĩnh vực bảo mật thông tin ở mức ý niệm. Tam giác CIA được hình thành từ ba khái niệm cơ bản gồm: • Confidentiality: Tính bí mật dữ liệu. • Integrity: Tính toàn vẹn dữ liệu. • Availability: Tính sẵn sàng dữ liệu. Ba yếu tố C-I-A trong mô hình này thể hiện sự cân bằng của 3 đặc tính cần phải có khi xây dựng những hệ thống tương tác đến dữ liệu của người dùng. Ngoài ra, khi cần mở rộng phạm vi tác động của việc bảo mật thông tin, còn có 2 khái niệm khác được bổ sung bao gồm: Tính xác thực (Authentication), và Chống thoái thác (Non-repudiation) [5]. 2.1.1. TÍNH BÍ MẬT DỮ LIỆU Dữ liệu phải được bảo đảm an toàn để bảo vệ sự riêng tư của người sở hữu dữ liệu đó. Điều này đồng nghĩa với việc ngăn chặn dữ liệu bị tiết lộ trong suốt quá trình truyền tải giữa các bên liên quan. Tính bí mật có thể đạt được nhờ vào cơ chế mã hóa thông tin, đảm bảo dữ liệu chỉ có thể được truy xuất bởi người gửi và người nhận. Một khi nguyên tắc này bị phá hủy, các thông tin nhạy cảm của người dùng 4
- Xem thêm -

Tài liệu liên quan