Bối cảnh và vấn đề nghiên cứu
Sự phát triển của điện thoại thông minh cùng với hai hệ điều hành Android và iOS chiếm lĩnh gần như 100% thị phần di động toàn cầu (theo số liệu từ IDC) đã biến các thiết bị này thành công cụ thiết yếu phục vụ công việc, giải trí và thương mại điện tử. Tuy nhiên, theo báo cáo năm 2019, có đến 38% ứng dụng trên iOS và 43% ứng dụng trên Android tồn tại các lỗ hổng bảo mật nghiêm trọng, trong đó nguyên nhân cốt lõi bắt nguồn từ cơ chế bảo mật yếu kém với tỷ lệ lần lượt là 74% trên iOS, 57% trên Android và 42% tại máy chủ cung cấp dịch vụ.
Bên cạnh đó, sự gia tăng của các mạng WiFi công cộng (đạt 454 triệu điểm vào năm 2020) đặt ra thách thức lớn đối với an toàn dữ liệu, bởi ứng dụng di động thường không hiển thị tường minh phương thức trao đổi dữ liệu như trình duyệt web, tạo điều kiện cho các cuộc tấn công nghe lén hoặc giả mạo.
Nhằm giải quyết bài toán trên, đề tài luận văn tốt nghiệp ngành Khoa học Máy tính tại Trường Đại học Bách Khoa – ĐHQG TP.HCM của sinh viên Nguyễn Thanh Bình (MSSV: 1710023), dưới sự hướng dẫn của ThS. Lưu Quang Huân và ThS. Hồ Quang Chi Bảo, đã đặt ra 5 mục tiêu nghiên cứu cụ thể:
- Tìm hiểu, phân tích và đánh giá các 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".
- 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.
Phạm vi nghiên cứu: Giới hạn ở việc nghiên cứu, phân tích, đánh giá các cơ chế xác thực phổ biến và thiết kế, hiện thực, triển khai thí điểm máy chủ xác thực bảo mật cho ứng dụng hỗ trợ theo dõi và điều phối giao nhận hàng trong môi trường thực tế (PoC).
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và nguyên tắc an toàn thông tin
- Tam giác bảo mật CIA và các mở rộng: Hệ thống được phân tích dựa trên 3 trụ cột cơ bản: Tính bí mật (Confidentiality), Tính toàn vẹn (Integrity), Tính sẵn sàng (Availability), cùng 2 yếu tố mở rộng là Tính xác thực (Authentication) và Tính chống thoái thác (Non-repudiation).
- Mật mã học:
- Mã hóa đối xứng: Phân loại thành mã hóa khối (Block ciphers với các chế độ ECB, CBC, CFB, OFB) và mã hóa luồng (Stream ciphers gồm Synchronous và Self-synchronous); các giải thuật DES (56-bit), 3DES, AES (128, 192, 256-bit).
- Mã hóa bất đối xứng: Giải thuật RSA dựa trên cặp số nguyên tố lớn ($p, q$), khóa công khai $(n, e)$ và khóa bí mật $(n, d)$.
- Hàm băm mật mã học và Chữ ký số: Đảm bảo tính chất kháng va chạm (Collision-Resistance), kháng tiền ảnh (Pre-image Resistance) và kháng tiền ảnh thứ hai (2nd Pre-image Resistance); chữ ký số sử dụng khóa bất đối xứng và cơ chế mã xác thực thông điệp dựa trên hàm băm HMAC:
$$HMAC(K, m) = H((K' \oplus opad) \parallel H((K' \oplus ipad) \parallel m))$$
- Lưu trữ mật khẩu an toàn: Sử dụng các hàm băm chậm có thêm muối (salt) như Argon2, scrypt, bcrypt, PBKDF2.
- Chuẩn mật khẩu một lần (OTP):
- HOTP dựa trên HMAC và bộ đếm: $HOTP(K, C) = Truncate(Hmac(K, C))$.
- TOTP tính toán dựa trên các bước thời gian Unix: $T = \lfloor(t - t_0)/\Delta T\rfloor$ với khoảng thời gian $\Delta T$ dao động từ 30 đến 60 giây.
- Kiến trúc RESTful API: Tuân thủ 6 ràng buộc: Client-server, Stateless (không trạng thái), Cacheable, Uniform interface, Layered system và Code on demand.
- Mô hình rủi ro OWASP Top 10: Bao gồm Injection, Broken Authentication, Lộ thông tin nhạy cảm (Sensitive Data Exposure), XML External Entities (XXE), Broken Access Control, Cấu hình sai bảo mật (Security Misconfiguration), Cross-Site Scripting (XSS gồm Reflected, Stored, DOM), Giải mã dữ liệu không an toàn (Insecure Deserialization), Sử dụng thành phần có lỗ hổng đã biết, và Giám sát/ghi log không đầy đủ.
So sánh các yếu tố và khái niệm xác thực
| Yếu tố xác thực |
Hình thức thể hiện |
Rủi ro và hạn chế |
| Người dùng biết |
Tên đăng nhập/Mật khẩu, Mã PIN, Câu hỏi bảo mật |
Nhìn trộm, tấn công vét cạn (brute-force), tấn công từ điển, người dùng đặt mật khẩu yếu (như "123456") |
| Người dùng sở hữu |
Chìa khóa vật lý, Thẻ thông minh, Thiết bị di động, Mã OTP (SMS/App), NFC, RFID |
Thất lạc thiết bị, chi phí phần cứng cao, tấn công phát lại, tấn công Man-In-The-Middle (MitM) |
| Đặc trưng duy nhất |
Vân tay, Gương mặt, Giọng nói, Mống mắt/Võng mạc, Cử chỉ |
Bị ảnh hưởng bởi môi trường (ánh sáng, độ chói), chi phí cao, thay đổi sinh trắc học do tổn thương, tấn công giả mạo |
| Tiêu chí |
Authentication (Xác thực) |
Authorization (Phân quyền) |
| Mục đích |
Xác minh danh tính người dùng so với tuyên bố |
Cung cấp hoặc từ chối các quyền hạn, đặc quyền |
| Phương thức |
Mật khẩu, OTP, sinh trắc học, QR code |
Quản lý vai trò (Role-Based Access Control) |
| Tính trong suốt |
Không trong suốt với người dùng |
Trong suốt với người dùng |
Phương pháp nghiên cứu và công cụ sử dụng
- Phương pháp phân tích - tổng hợp: Nghiên cứu cơ chế vận hành của Basic Authentication, Bearer Authentication, API Key, OAuth 2.0 (các vai trò Client, Resource Owner, Authorization Server, Resource Server), các nền tảng Single Sign-On (SSO) và dịch vụ thương mại (Auth0, Google Sign In).
- Phương pháp thiết kế và thực nghiệm: Thiết kế hệ thống dịch vụ xác thực token-based, cài đặt mô hình xác thực đa yếu tố (MFA).
- Phương pháp kiểm thử an ninh: Thực hiện kiểm thử chức năng, kiểm thử đơn vị và kiểm thử xâm nhập (Penetration Testing) bằng các công cụ chuyên dụng:
- StackHawk: Kiểm thử an toàn ứng dụng và API.
- HostedScan tích hợp ZAP (Zed Attack Proxy): Dò quét lỗ hổng ứng dụng web.
- HostedScan tích hợp Nmap: Quét cổng và phân tích dịch vụ mạng.
- HostedScan tích hợp OpenVAS: Quét toàn diện các lỗ hổng hệ thống và cấu hình.
Thiết kế và triển khai giải pháp xác thực
Khóa luận thiết kế kiến trúc máy chủ xác thực độc lập cung cấp dịch vụ quản lý danh tính cho ứng dụng di động (thí điểm trên Hệ thống hỗ trợ theo dõi và điều phối giao nhận hàng):
+-----------------------------------------------------------------------------------+
| KIẾN TRÚC MÁY CHỦ XÁC THỰC |
| |
| +-----------------------------------+ +-------------------------------------+ |
| | Khối Logic Chức Năng | | Khối Tạo / Xác Thực Chuỗi Bí Mật | |
| | - Đăng ký / Đăng nhập OTP / QR | | - Bộ sinh và kiểm chứng JWT | |
| | - Cấp lại / Kiểm tra Access Token | | - Bộ sinh mã OTP (TOTP/HOTP) | |
| | - Khóa tài khoản khi sai nhiều lần| | - Bộ quản lý phiên mã QR | |
| | - Ràng buộc 1 thiết bị / thời điểm| | - Bộ sinh mã khôi phục mật khẩu | |
| +-----------------+-----------------+ +------------------+------------------+ |
| | | |
| +--------------------+-------------------+ |
| | |
| +---------------+---------------+ |
| | Khối Quản Lý Dữ Liệu User | |
| | - Lược đồ tài khoản cốt lõi | |
| | - Dữ liệu tài xế & phương tiện| |
| | - Băm mật khẩu có muối | |
| +-------------------------------+ |
+-----------------------------------------------------------------------------------+
1. Cơ chế quản lý mã bí mật và phiên làm việc
- JSON Web Token (JWT): Hệ thống phân tách rõ ràng giữa Access Token (AT) có thời gian sống ngắn để truy cập tài nguyên và Refresh Token (RT) có thời gian sống dài để tái cấp token.
- Cơ chế xoay vòng Refresh Token (Refresh Token Rotation): Mỗi lần người dùng gửi RT để lấy AT mới, hệ thống sẽ cấp một cặp AT và RT hoàn toàn mới, đồng thời vô hiệu hóa RT cũ. Nếu phát hiện một RT cũ đã hết hạn/đã qua sử dụng được gửi lại, hệ thống sẽ nhận diện rủi ro bị đánh cắp token và lập tức vô hiệu hóa toàn bộ chuỗi token liên quan.
- Xác thực đăng nhập đa yếu tố và QR Code: Kết hợp mật khẩu cùng mã OTP gửi về thiết bị hoặc quét mã QR tạm thời trên ứng dụng di động để đăng nhập mà không cần nhập mật khẩu trực tiếp.
2. Quản lý truy cập và bảo vệ dữ liệu người dùng
- Tạm khóa tài khoản: Thiết lập ngưỡng giới hạn số lần xác thực thất bại liên tiếp nhằm chống lại các cuộc tấn công đoán mật khẩu, tấn công vét cạn hoặc tấn công từ điển.
- Ràng buộc đăng nhập đơn thiết bị: Giới hạn mỗi tài khoản chỉ duy trì một phiên hoạt động hợp lệ trên một thiết bị tại một thời điểm; khi đăng nhập trên thiết bị mới, phiên làm việc cũ sẽ bị hủy.
- Lược đồ dữ liệu ủy quyền: Thiết kế phân lớp cơ sở dữ liệu cho phép mở rộng thông tin chuyên biệt cho dịch vụ giao nhận hàng (như hồ sơ tài xế, thông tin phương tiện vận tải) thông qua việc phân quyền truy xuất an toàn.
Nội dung chính theo từng chương
Báo cáo luận văn được cấu trúc thành 8 chương và phần phụ lục API:
- Chương 1: Giới thiệu
Trình bày tính cấp thiết của việc bảo mật trên thiết bị di động trong bối cảnh các lỗ hổng ứng dụng ngày càng phổ biến; xác định rõ 5 mục tiêu, phạm vi nghiên cứu và cấu trúc toàn văn.
- Chương 2: Kiến thức nền tảng
Phân tích chi tiết tam giác bảo mật CIA, phân biệt Authentication và Authorization, trình bày toán học giải thuật mã hóa đối xứng (DES, 3DES, AES), mã hóa bất đối xứng (RSA), hàm băm, chữ ký số (HMAC), chuẩn OTP, kiến trúc RESTful API và 10 lỗ hổng bảo mật nghiêm trọng theo OWASP.
- Chương 3: Các công trình nghiên cứu liên quan
Đánh giá các mô hình xác thực truyền thống và hiện đại (Basic Auth, Bearer Auth, API Key, OAuth 2.0), phân tích các rủi ro trong OAuth 2.0 (HTTP 307 Redirect, CSRF, Mixing IdP Redirect), khảo sát các dịch vụ SSO (Auth0, Google Sign In) và công cụ kiểm thử bảo mật (StackHawk, ZAP, Nmap, OpenVAS).
- Chương 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
Phân loại khái niệm Vulnerability, Threat, Risk; chỉ rõ các điểm yếu trong quản lý danh tính (đoán/liệt kê tài khoản, phương thức khóa tài khoản yếu, bypass xác thực/ủy quyền, chính sách mật khẩu yếu, lỗ hổng khôi phục mật khẩu) và các lỗi kiểm tra đầu vào (Reflected XSS, Stored XSS).
- Chương 5: Giải pháp đề xuất
Trình bày chi tiết kiến trúc hệ thống xác thực độc lập, định dạng chuỗi bí mật JWT, các luồng xử lý: Đăng ký người dùng, Đăng nhập qua OTP/QR Code, Cập nhật thông tin, Khôi phục mật khẩu, Cấp lại và kiểm tra mã truy cập, Cơ chế tạm khóa tài khoản, tích hợp dữ liệu tài xế/phương tiện và kiểm soát phiên làm việc đơn thiết bị.
- Chương 6: Đánh giá và cải tiến giải pháp đề xuất
Phân tích các rủi ro tiềm ẩn của hệ thống đề xuất; cài đặt giải pháp cải tiến bao gồm: cơ chế xoay vòng Refresh Token, ngăn chặn việc sử dụng lại Refresh Token hết hạn và quy trình khôi phục mật khẩu an toàn kết hợp lịch sử người dùng.
- Chương 7: Triển khai, thử nghiệm và đánh giá
Thiết lập môi trường thực nghiệm, tiến hành kiểm thử chức năng các API, đo đạc thời gian đáp ứng của máy chủ và thực hiện kiểm thử xâm nhập tự động bằng các công cụ StackHawk, ZAP, Nmap, OpenVAS để đánh giá mức độ kháng lỗi bảo mật.
- Chương 8: Tổng kết và hướng phát triển
Tổng kết các kết quả đạt được về mặt lý thuyết và ứng dụng thực tiễn, phân tích các điểm hạn chế và đề ra phương hướng hoàn thiện trong tương lai.
- Phụ lục A: Tài liệu API hệ thống
Đặc tả chi tiết các endpoint API: Đăng ký tài khoản, Đăng ký thông tin tài xế/xe, Đăng nhập mật khẩu + OTP, Đăng nhập QR, Khôi phục mật khẩu (OTP + câu hỏi bảo mật), Cập nhật thông tin/Đổi mật khẩu, Cấp lại và xác thực Access Token.
Kết quả và đóng góp
1. Kết quả kỹ thuật và thực nghiệm
- Xây dựng hoàn chỉnh máy chủ xác thực: Hiện thực đầy đủ các chức năng quản lý danh tính, hỗ trợ đa phương thức xác thực (Mật khẩu + OTP, QR Code) và quản lý phiên token an toàn.
- Kiểm thử xâm nhập (Penetration Test): Triển khai quét lỗ hổng toàn diện thông qua StackHawk và HostedScan (kết hợp ZAP, Nmap, OpenVAS), xác nhận hệ thống loại bỏ được các lỗ hổng phổ biến thuộc danh mục OWASP (như SQL Injection, Reflected/Stored XSS, Broken Authentication, Session Fixation).
- Đo lường thời gian đáp ứng: Khóa luận ghi nhận và tổng hợp thời gian xử lý các yêu cầu nghiệp vụ cốt lõi trên máy chủ triển khai thực tế (không tính độ trễ đường truyền):
| Endpoint / Nghiệp vụ hệ thống |
Thời gian thực hiện trung bình trên máy chủ |
| Đăng ký người dùng mới |
Ghi nhận trong Bảng 7.1 của luận văn |
| Đăng nhập (Mật khẩu + OTP / Quét mã QR) |
Ghi nhận trong Bảng 7.1 của luận văn |
| Xác thực / Cấp lại Access Token |
Ghi nhận trong Bảng 7.1 của luận văn |
| Khôi phục mật khẩu |
Ghi nhận trong Bảng 7.1 của luận văn |
2. Đóng góp của đề tài
- Đưa ra mô hình xác thực đa yếu tố tích hợp chặt chẽ với kiến trúc ứng dụng di động, giải quyết bài toán môi trường truyền thông không tin cậy qua mạng công cộng.
- Đề xuất quy trình xoay vòng token (Refresh Token Rotation) kết hợp cơ chế phát hiện tái sử dụng token trái phép, nâng cao tính an toàn cho các ứng dụng RESTful stateless.
- Ứng dụng thành công giải pháp vào bài toán thực tiễn của Hệ thống hỗ trợ theo dõi và điều phối giao nhận hàng.
Hạn chế và hướng nghiên cứu tiếp
Theo đánh giá của các giảng viên hướng dẫn (ThS. Lưu Quang Huân, ThS. Hồ Quang Chi Bảo) và giảng viên phản biện (ThS. Băng Ngọc Bảo Tâm), luận văn còn một số điểm hạn chế:
- Quy mô thử nghiệm: Mô hình triển khai và thử nghiệm mới dừng lại ở mức cơ bản, phù hợp với giai đoạn PoC (Proof of Concept) của dự án, chưa thực hiện kiểm thử hiệu năng chịu tải lớn (stress test/load test) trong điều kiện hàng triệu người dùng đồng thời.
- Tính đặc thù so với các giải pháp có sẵn: Chưa làm nổi bật rõ rệt sự khác biệt cốt lõi của mô hình tự phát triển so với các nền tảng IdP (Identity Provider) thương mại lớn hiện nay (như Auth0, Google Sign-In, Firebase Authentication).
- Tích hợp nguồn định danh quốc gia: Chưa kết nối và tích hợp được với các kênh dữ liệu định danh chính quy của Chính phủ để nâng cao tính định danh công dân trong thực tế.
Hướng mở rộng:
- Nghiên cứu cơ chế tích hợp linh hoạt cho các bên thứ ba có cấu trúc hệ thống khác biệt.
- Bổ sung các tầng bảo vệ chống tấn công từ chối dịch vụ phân tán (DDoS) và kiểm soát lưu lượng nâng cao.
- Nâng cấp khả năng tương thích với hệ thống định danh điện tử quốc gia.
Giá trị tham khảo
Tài liệu này là nguồn tài liệu hữu ích cho:
- Sinh viên ngành Khoa học Máy tính, Kỹ thuật Phần mềm, An toàn Thông tin: Tham khảo cách trình bày một khóa luận tốt nghiệp kỹ thuật bài bản từ cơ sở toán học mật mã, chuẩn giao thức đến hiện thực phần mềm.
- Kỹ sư phát triển ứng dụng di động và Backend: Tham khảo thiết kế quy trình xác thực đa yếu tố, xác thực QR Code, cơ chế xử lý Access Token/Refresh Token an toàn và cấu trúc tài liệu API theo chuẩn RESTful.
- Người làm nghiên cứu về an ninh ứng dụng: Tham khảo phương pháp xây dựng kịch bản kiểm thử xâm nhập tự động kết hợp nhiều công cụ (StackHawk, ZAP, OpenVAS, Nmap).
Câu hỏi thường gặp
1. Xác thực đa yếu tố (MFA) có làm ảnh hưởng đến tính sẵn sàng (Availability) trong tam giác CIA hay không?
Có. Việc áp dụng thêm các yếu tố phụ thuộc (như gửi mã OTP qua SMS hoặc dịch vụ mạng di động) tạo thêm các mắt xích trung gian. Nếu dịch vụ viễn thông gián đoạn hoặc thiết bị nhận OTP mất kết nối, người dùng hợp lệ có thể không đăng nhập được vào hệ thống, làm suy giảm tính sẵn sàng tức thời để đổi lấy tính bí mật và xác thực cao hơn.
2. Làm thế nào để thu hồi các JWT token khi tài khoản người dùng bị khóa trong kiến trúc RESTful stateless?
Hệ thống sử dụng cơ chế Access Token có thời gian sống rất ngắn và quản lý Refresh Token tại máy chủ. Khi tài khoản bị khóa, máy chủ lập tức hủy hiệu lực của Refresh Token và đánh dấu vô hiệu hóa chuỗi phiên trong cơ sở dữ liệu. Ngay khi Access Token hiện tại hết hạn, người dùng sẽ bị từ chối cấp token mới và không thể tiếp tục truy cập tài nguyên.
3. Cơ chế xoay vòng Refresh Token (Refresh Token Rotation) bảo vệ hệ thống trước nguy cơ lộ token như thế nào?
Mỗi khi Refresh Token được sử dụng để lấy Access Token mới, hệ thống hủy Refresh Token cũ và cấp một mã mới. Nếu kẻ tấn công đánh cắp được Refresh Token cũ và cố tình sử dụng lại, hệ thống sẽ phát hiện hành vi vi phạm chuỗi phiên, nhận diện phiên làm việc đã bị xâm phạm và tự động vô hiệu hóa toàn bộ các token đã cấp cho phiên đó.
4. Hệ thống phòng chống các cuộc tấn công duyệt danh tính (User Enumeration) và vét cạn mật khẩu bằng cách nào?
Hệ thống thiết lập cơ chế giới hạn số lần xác thực thất bại liên tiếp để tạm khóa tài khoản hoặc chặn yêu cầu từ địa chỉ đáng ngờ, đồng thời đồng nhất hóa các thông báo lỗi trả về nhằm tránh để lộ thông tin tài khoản có tồn tại trong cơ sở dữ liệu hay không.
Kết luận
Luận văn tốt nghiệp của sinh viên Nguyễn Thanh Bình đã nghiên cứu toàn diện các nguyên tắc an toàn thông tin và các mô hình xác thực phổ biến trên thiết bị di động. Tác giả đã thiết kế và hiện thực thành công máy chủ xác thực đa yếu tố tích hợp JWT, OTP và mã QR cho bài toán điều phối giao nhận hàng, đồng thời tiến hành kiểm thử xâm nhập bài bản bằng các công cụ chuyên dụng. Đề tài được Hội đồng chuyên môn đánh giá loại Giỏi (điểm phản biện 9.7/10), khẳng định tính đúng đắn về mặt học thuật và giá trị ứng dụng thực tiễn trong kỹ thuật an toàn phần mềm di động.