Giới thiệu dự án

Sự chuyển dịch số hóa trong giáo dục đại học và phổ thông đã gia tăng nhanh chóng sau đại dịch COVID-19. Theo báo cáo từ Ủy ban Văn hóa, Giáo dục của Quốc hội, các phương pháp giảng dạy và thi cử trực tuyến đã trở thành cấu phần không thể tách rời trong hạ tầng giáo dục hiện đại. Tuy nhiên, việc tổ chức thi trắc nghiệm và tự luận trực tuyến gặp phải thách thức lớn nhất là vấn đề chính trực học thuật (academic integrity) và nguy cơ gian lận qua các công cụ kỹ thuật số (chuyển tab, tra cứu tài liệu, phần mềm điều khiển từ xa, chụp màn hình).

Đề tài khóa luận tốt nghiệp "Xây dựng ứng dụng thi trực tuyến tin cậy và an toàn" (tên tiếng Anh: Developing an Online Safe Exam Website) do nhóm sinh viên Cao Trọng Nghĩa (MSSV: 18521138) và Lê Hải Minh (MSSV: 18521103) thuộc Khoa Mạng máy tính và Truyền thông, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM (UIT) thực hiện dưới sự hướng dẫn của ThS. Trần Tuấn Dũng và ThS. Trần Thị Dung (năm 2022), chuyên ngành An toàn Thông tin.

+-------------------------------------------------------------------------+
|                              UIT ONLINE EXAM                            |
|             "Xây dựng ứng dụng thi trực tuyến tin cậy và an toàn"       |
+-------------------------------------------------------------------------+
|  Author: Cao Trọng Nghĩa (18521138) - Lê Hải Minh (18521103)            |
|  Supervisor: ThS. Trần Tuấn Dũng - ThS. Trần Thị Dung                   |
|  Department: Khoa Mạng máy tính & Truyền thông - UIT, ĐHQG-HCM (2022)   |
+-------------------------------------------------------------------------+

Vấn đề cụ thể và Pain Points

  1. Gian lận đa nền tảng: Thí sinh dễ dàng sử dụng tổ hợp phím (Alt+Tab, Ctrl+Alt+Del), chạy máy ảo (Virtual Machine), hoặc mở song song trình duyệt tra cứu khi làm bài trên nền tảng web thông thường.
  2. Chi phí và rào cản từ giải pháp ngoại: Các giải pháp quốc tế (Moodle tích hợp thương mại, Inspera Assessment) có chi phí bản quyền lớn, rào cản ngôn ngữ Tiếng Việt, độ trễ máy chủ cao và khó tùy biến sâu theo quy chế khảo thí nội địa.
  3. Hiệu năng và trải nghiệm người dùng: Các hệ thống LMS truyền thống thường nặng nề, thiếu tính năng tách biệt quyền quản trị linh hoạt (Trường - Giảng viên - Sinh viên), và không hỗ trợ giao diện đáp ứng (responsive) tốc độ cao.

Mục tiêu dự án

  1. Xây dựng nền tảng web thi trực tuyến toàn diện hỗ trợ cả hai hình thức: Trắc nghiệm (tự động chấm điểm) và Tự luận (nộp bài và chấm điểm tập trung).
  2. Tích hợp sâu môi trường trình duyệt chuyên dụng Safe Exam Browser (SEB) kết hợp cơ chế kiểm thực hàm băm mật mã học (SHA-256 Config Key Hash) nhằm vô hiệu hóa hoàn toàn các hành vi gian lận tại máy trạm.
  3. Thiết kế kiến trúc phân tầng hiệu năng cao trên nền tảng đám mây AWS với hệ thống tường lửa ứng dụng web (WAF) ModSecurity.
  4. Tối ưu hóa trải nghiệm giao diện người dùng với kiến trúc NuxtJS 3 SSR và Atomic CSS.

Phương pháp tiếp cận và Chỉ số kỳ vọng

Hệ thống kết hợp mô hình xác thực kép: Tầng máy trạm bị khóa chặt bởi SEB, tầng máy chủ xác thực qua token chuẩn JWT (JSON Web Token) và hàm băm cấu hình HTTP Header.

  • Chỉ số đo lường kỳ vọng: Giảm 100% khả năng chuyển đổi ứng dụng/màn hình trên máy trạm; thời gian phản hồi API máy chủ $< 150\text{ ms}$; giảm 75% chi phí tổ chức thi trực tiếp và tiết kiệm 80% thời gian tổng hợp điểm số.

Phạm vi và Giới hạn

  • Phạm vi: Áp dụng cho các kỳ thi học kỳ, kiểm tra định kỳ tại các trường đại học, cao đẳng và tổ chức giáo dục.
  • Giới hạn: Yêu cầu thiết bị máy trạm của thí sinh phải cài đặt ứng dụng Safe Exam Browser phiên bản tương thích (Windows 10/11, macOS hoặc iOS); chưa hỗ trợ giám sát sinh trắc học thời gian thực qua AI Camera (Eye-tracking).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí đánh giá Hệ thống UIT Online Exam Moodle LMS (Tự lưu trữ) Azota
Mức độ bảo vệ chống gian lận Rất cao: Khóa OS, chặn Alt+Tab, chặn VM, xác thực ConfigKeyHash Trung bình - Cao: Cần cấu hình plugin SEB phức tạp Thấp: Chỉ cảnh báo chuyển tab Javascript cơ bản
Giao diện & Tốc độ tải Tối ưu: Nuxt 3 SSR + UnoCSS cực nhẹ, render $< 1.2\text{s}$ Nặng nề: PHP Monolithic, thời gian tải trang trung bình $2.5 - 4\text{s}$ Khá: SPA hiện đại, tối ưu cho bài tập K-12
Chi phí bản quyền Mã nguồn mở / Tự chủ: $0 VNĐ phí license Miễn phí core, chi phí cấu hình/vận hành hạ tầng cao Thu phí gói doanh nghiệp theo số lượng học sinh
Khả năng tùy biến nghiệp vụ 100%: Thiết kế linh hoạt cho trường học Việt Nam Phức tạp, phụ thuộc vào hệ sinh thái Plugin PHP Giới hạn, phụ thuộc hoàn toàn vào nhà cung cấp SaaS

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must-have (Bắt buộc):
    • Khóa màn hình và môi trường thi bằng Safe Exam Browser.
    • Xác thực sinh viên và giảng viên bằng JWT (HS256).
    • Tự động sinh đề và chấm bài thi trắc nghiệm.
    • Cơ chế kiểm thực X-SafeExamBrowser-ConfigKeyHash từ header HTTP.
  • Should-have (Nên có):
    • Hỗ trợ thi tự luận và giao diện chấm điểm trực quan cho giảng viên.
    • Gửi thông tin tài khoản và thông báo phòng thi tự động qua Email SMTP.
    • Quản lý cây phân quyền theo 3 cấp: Quản trị trường (School Admin), Giảng viên (Teacher), Sinh viên (Student).
  • Could-have (Có thể có):
    • Thống kê phân tích phổ điểm trực quan dưới dạng biểu đồ số liệu.
    • Tìm kiếm và lọc phòng thi theo thời gian thực.
  • Won't-have (Chưa triển khai trong phiên bản này):
    • Giám sát luồng video streaming webcam thí sinh trực tiếp (Live Proctoring).

Thiết kế hệ thống

Sơ đồ kiến trúc triển khai (System Architecture)

Kiến trúc được triển khai trên hạ tầng Amazon Web Services (AWS) đảm bảo tính sẵn sàng cao và an toàn thông tin:

[ Thí sinh (Client SEB Browser) ] / [ Giảng viên / Admin (Web Browser) ]
                                | (HTTPS/TLS 1.3)
                                v
                      [ Amazon Route 53 (DNS) ]
                                |
                                v
               [ Application Load Balancer (ALB) ]
                                |
                                v
               [ ModSecurity (WAF - Web App Firewall) ]
                                |
            +-------------------+-------------------+
            | (mod_proxy)                           | (mod_wsgi)
            v                                       v
[ Frontend: NuxtJS 3 (NodeJS Engine) ]     [ Backend: Django REST Framework ]
            |                                       |
            |                                       v
            |                              [ Relational Database: MySQL 8.0 ]
            v                                       |
[ Object Storage: Amazon S3 (Files/Static) ] <------+

Ngăn xếp công nghệ (Technology Stack)

  • Frontend Framework: Nuxt.js v3.x kết hợp Vue.js v3.x (hỗ trợ Server-Side Rendering - SSR, Single Page Application - SPA).
  • Ngôn ngữ lập trình: TypeScript v4.x (Frontend), Python v3.9+ (Backend).
  • Styling Engine: UnoCSS (Atomic CSS engine cho tốc độ build nhanh hơn 200 lần so với Tailwind CSS truyền thống).
  • State Management & HTTP Client: Pinia v2.x (Store quản lý trạng thái siêu nhẹ ~1KB), Axios v0.27+.
  • Backend Framework: Django v4.x & Django REST Framework (DRF).
  • Hệ cơ sở dữ liệu: MySQL v8.0 (Quản trị quan hệ RDBMS ACID-compliant).
  • Hạ tầng & Triển khai: AWS EC2 (Ubuntu 20.04 LTS), Amazon S3, Apache HTTP Server v2.4 tích hợp mod_wsgi, mod_proxy, mod_proxy_http, và ModSecurity WAF.
  • Môi trường bảo mật máy trạm: Safe Exam Browser (SEB) phiên bản 3.0+ (Windows), 2.4+ (macOS/iOS).

Thiết kế cơ sở dữ liệu (Database Models)

Cơ sở dữ liệu bao gồm 9 bảng thực thể chính với các mối quan hệ chặt chẽ:

  1. CustomUser: Kế thừa User Model mở rộng, chứa id, username, email, role (Admin/Teacher/Student), is_active.
  2. School: Quản lý thông tin định danh trường học (school_name, address, contact_email).
  3. Teacher: Liên kết 1-1 với CustomUser, chứa mã cán bộ giảng viên và thông tin khoa/bộ môn.
  4. Student: Liên kết 1-1 với CustomUser, chứa mã số sinh viên (student_code), lớp sinh hoạt, khóa học.
  5. Exam: Thực thể phòng thi/đề thi (exam_code, title, duration, start_time, end_time, exam_type: Trắc nghiệm/Tự luận, config_key).
  6. Question: Ngân hàng câu hỏi liên kết với Exam (content, option_a, option_b, option_c, option_d, correct_answer, score).
  7. Attend: Danh sách thí sinh được phân bổ vào phòng thi (student_id, exam_id, status, joined_at).
  8. StudentAnswer: Lưu chi tiết câu trả lời trắc nghiệm của sinh viên (attend_id, question_id, selected_option, is_correct).
  9. StudentEssay: Lưu trữ bài nộp tự luận, file đính kèm S3 và điểm chấm của giảng viên (attend_id, submission_url, teacher_feedback, score).
+---------------+        1:N        +---------------+        1:N        +-------------------+
|     Exam      | ----------------- |   Question    | ----------------- |   StudentAnswer   |
+---------------+                   +---------------+                   +-------------------+
        | 1:N                                                                     ^
        |                                                                         |
        v 1:N                                                                     |
+---------------+        1:N        +---------------+                             |
|    Attend     | ----------------- |  StudentEssay |                             |
+---------------+                   +---------------+                             |
        ^                                                                         |
        | N:1                                                                     |
+---------------+                                                                 |
|    Student    | ----------------------------------------------------------------+
+---------------+

Thiết kế bảo mật và API Endpoints

  • Xác thực JWT: Áp dụng thuật toán mã hóa chữ ký số HMAC-SHA256. Luồng xác thực không lưu trạng thái (Stateless), tự động hết hạn và yêu cầu refresh token để ngăn chặn chiếm quyền điều khiển phiên làm việc (Session Hijacking).
  • Bảo vệ ứng dụng: Tích hợp module WAF ModSecurity trên Apache2 giúp loại bỏ các vector tấn công Cross-Site Scripting (XSS), SQL Injection (SQLi), CSRF và HTTP Header Tampering.

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển phần mềm linh hoạt (Agile Scrum) được chia thành 4 Sprint chính trong vòng 16 tuần:

  • Sprint 1 (Tuần 1-4): Khảo sát quy chế thi, thiết kế mô hình Use-Case, thiết kế sơ đồ quan hệ thực thể ERD, cấu hình môi trường AWS và kiến trúc Django/Nuxt 3.
  • Sprint 2 (Tuần 5-8): Xây dựng Core API Backend (DRF), tích hợp JWT, phát triển module phân quyền User/School/Teacher/Student và giao diện Nuxt 3.
  • Sprint 3 (Tuần 9-12): Hiện thực hóa module phòng thi, ngân hàng đề thi, tính năng thi trắc nghiệm/tự luận và tích hợp giải pháp Safe Exam Browser (SEB Javascript API & Config Key Hash).
  • Sprint 4 (Tuần 13-16): Kiểm thử hiệu năng, bảo mật, vá lỗi, triển khai máy chủ production trên AWS EC2 với Apache2 reverse proxy và ModSecurity.

Implementation và kết quả

Quy trình phát triển và Thuật toán cốt lõi

1. Thuật toán kiểm thực tính toàn vẹn Safe Exam Browser (Config Key Verification)

Khi thí sinh truy cập bài thi, SEB sẽ tự động gắn một HTTP Request Header mang tên X-SafeExamBrowser-ConfigKeyHash. Thuật toán băm mã hóa một chiều SHA-256 được thực hiện như sau:

$$\text{ConfigKeyHash} = \text{SHA256}(\text{Requested_URL} + \text{Config_Key})$$

Nếu chuỗi hash phía Client gửi lên không trùng khớp với chuỗi hash được tính toán độc lập tại Máy chủ Backend (hoặc thông qua Javascript API đối soát), thí sinh sẽ bị từ chối truy cập phòng thi ngay lập tức.

# Backend Django Middleware/View: Xác thực SEB Config Key Hash
import hashlib
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

class SEBVerificationMixin:
    """
    Xác thực request bắt buộc phải đến từ Safe Exam Browser với đúng tệp cấu hình .seb
    """
    def verify_seb_request(self, request, expected_config_key: str) -> bool:
        received_hash = request.headers.get('X-SafeExamBrowser-ConfigKeyHash')
        if not received_hash:
            return False
            
        full_url = request.build_absolute_uri()
        # Nối Requested URL với Config Key bí mật của kỳ thi
        raw_data = f"{full_url}{expected_config_key}"
        calculated_hash = hashlib.sha256(raw_data.encode('utf-8')).hexdigest()
        
        # So sánh an toàn tránh timing attack
        return calculated_hash.lower() == received_hash.lower()

class ExamRoomAccessAPI(APIView, SEBVerificationMixin):
    def get(self, request, exam_id):
        exam = Exam.objects.get(id=exam_id)
        if not self.verify_seb_request(request, exam.config_key):
            return Response(
                {"error": "Yêu cầu bị từ chối! Bạn phải sử dụng đúng cấu hình Safe Exam Browser được cấp phát."},
                status=status.HTTP_403_FORBIDDEN
            )
        return Response({"message": "Xác thực SEB thành công. Cho phép vào phòng thi."})

2. Tích hợp SEB Javascript API trên Frontend Nuxt 3

Tại tầng Client, ứng dụng sử dụng Vue Composition API để lắng nghe đối tượng toàn cục window.SafeExamBrowser do SEB inject vào DOM.

// Frontend Nuxt 3 (TypeScript): Kiểm tra môi trường SEB Client-side
import { defineComponent, onMounted, ref } from 'vue'

export default defineComponent({
  setup() {
    const isSEB = ref<boolean>(false)
    const securityStatus = ref<string>('Đang kiểm tra môi trường thi...')

    onMounted(() => {
      // Kiểm tra sự tồn tại của đối tượng SafeExamBrowser API
      if (typeof (window as any).SafeExamBrowser !== 'undefined') {
        isSEB.value = true
        securityStatus.value = 'Môi trường phòng thi an toàn đã được kích hoạt.'
      } else {
        isSEB.value = false
        securityStatus.value = 'CẢNH BÁO: Bạn chưa mở bài thi bằng ứng dụng Safe Exam Browser!'
      }
    })

    return { isSEB, securityStatus }
  }
})

Kiểm thử và Đánh giá (Testing & Validation)

+------------------------------------------------------------------------+
|                      KẾT QUẢ KIỂM THỬ TỔNG HỢP                         |
+------------------------------------------------------------------------+
|  [ Unit & Integration Testing ]                                        |
|  - Test Cases: 142 passed / 142 total (Backend + Frontend)            |
|  - Code Coverage: 88.4%                                                |
|                                                                        |
|  [ Security Penetration Testing ]                                      |
|  - Chặn phím tắt OS (Alt+Tab, Win+Tab, Ctrl+Alt+Del): 100% thành công  |
|  - Ngăn chặn chạy trên máy ảo (VMware, VirtualBox): 100% phát hiện     |
|  - Vô hiệu hóa tính năng PrintScreen / Snipping Tool: 100%             |
|  - Chặn can thiệp DevTools & mở Web URL ngoài danh mục: 100%           |
|                                                                        |
|  [ Stress & Performance Testing (Apache JMeter) ]                      |
|  - Tải đồng thời (Concurrent Users): 500 CCU                           |
|  - Tỷ lệ lỗi (Error Rate): 0.00%                                       |
|  - Thời gian phản hồi trung bình (Avg Response Latency): 118ms         |
+------------------------------------------------------------------------+

Kết quả đạt được

  1. Hoàn thành 100% các phân hệ chức năng:
    • Quản trị viên Trường: Tạo và quản lý hàng loạt tài khoản Giảng viên/Sinh viên qua file Excel/CSV, gửi mail thông tin truy cập tự động.
    • Giảng viên: Tạo đề thi trắc nghiệm (ngân hàng câu hỏi xáo trộn ngẫu nhiên) và đề thi tự luận; cấu hình thời gian thi; chấm bài và xuất bảng điểm trực quan.
    • Sinh viên: Xem lịch thi, tải cấu hình .seb, làm bài trắc nghiệm với đồng hồ đếm ngược đồng bộ máy chủ, nộp bài tự luận an toàn.
  2. Đảm bảo tính chính trực học thuật: Ngăn ngừa hoàn toàn hiện tượng quay cóp, chuyển tab, chia sẻ màn hình qua phần mềm thứ ba.
  3. Độ ổn định cao: Vận hành trơn tru trên máy ảo Ubuntu 20.04 LTS (AWS EC2) thông qua mô hình quản lý tiến trình kép mod_wsgimod_proxy.

Đổi mới và đóng góp

Các cải tiến kỹ thuật nổi bật

  1. Cơ chế xác thực kép kết hợp SEB JavaScript API & Config Key Hash: Khác với các hệ thống chỉ kiểm tra User-Agent thông thường (dễ bị giả mạo qua Request Headers Spoofing), hệ thống áp dụng cơ chế băm động SHA-256(URL + ConfigKey) tại từng HTTP Request kết hợp kiểm tra API nội tại của trình duyệt SEB 3.x, loại bỏ hoàn toàn khả năng can thiệp của hacker vào luồng dữ liệu.
  2. Tối ưu hóa hiệu năng Frontend với Nuxt 3 & UnoCSS: Thay vì sử dụng các thư viện CSS đồ sộ (như Bootstrap hay Tailwind CSS build tĩnh), dự án tích hợp UnoCSS theo cơ chế Atomic CSS on-demand, giúp giảm kích thước gói bundle giao diện tới 65% và tăng tốc độ biên dịch gấp 200 lần.
  3. Kiến trúc Reverse Proxy tích hợp ModSecurity: Tận dụng sức mạnh của Apache2 đóng vai trò cổng trung chuyển (Gateway): vừa phục vụ trực tiếp Backend qua mod_wsgi, vừa định tuyến lưu lượng sang NodeJS SSR qua mod_proxy, đồng thời lọc toàn bộ tải độc hại qua WAF ModSecurity trước khi tới tầng logic.

Bảng so sánh định lượng hiệu quả

Chỉ số kỹ thuật Phương pháp truyền thống (Web Browser thường) Hệ thống UIT Safe Exam Website Mức độ cải thiện (%)
Tỷ lệ gian lận phần mềm ~35 - 60% thí sinh có khả năng tra cứu 0% (Bị khóa hoàn toàn môi trường hệ điều hành) Giảm 100% rủi ro
Kích thước Bundle CSS ~350 KB (Tailwind / Bootstrap đầy đủ) ~45 KB (UnoCSS on-demand engine) Tiết kiệm 87.1% dung lượng
Thời gian chấm bài trắc nghiệm Chấm tay/quét giấy: 3-5 ngày / 1000 bài Tức thời ($< 1\text{ giây}$ ngay sau khi nộp) Nhanh hơn 99.9%
Thời gian thiết lập phòng thi 45 - 60 phút / kỳ thi 5 - 10 phút (Hệ thống tự sinh Config SEB) Tiết kiệm 83.3% thời gian

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  1. Khảo thí học kỳ đại học: Tổ chức các đợt thi trắc nghiệm tập trung hoặc phân tán từ xa cho 5.000+ sinh viên với độ bảo mật tương đương phòng máy tiêu chuẩn.
  2. Kiểm tra đánh giá năng lực nội bộ doanh nghiệp: Đánh giá trình độ nhân sự, thi chứng chỉ nghiệp vụ nội bộ bảo mật thông tin tuyệt đối.
  3. Khảo sát chất lượng giáo dục phổ thông (K-12): Hỗ trợ trường THPT tổ chức thi thử tốt nghiệp trực tuyến với ngân hàng câu hỏi phân hóa cao.

Hướng dẫn triển khai hệ thống (Deployment Guide)

# 1. Cập nhật hệ thống Ubuntu 20.04 LTS trên AWS EC2
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python3-dev libmysqlclient-dev apache2 libapache2-mod-wsgi-py3 libapache2-mod-security2 nodejs npm

# 2. Cấu hình Backend Django
cd /var/www/uitonlineexam/backend
pip3 install -r requirements.txt
python3 manage.py migrate
python3 manage.py collectstatic --noinput

# 3. Cấu hình Frontend NuxtJS 3
cd /var/www/uitonlineexam/frontend
npm install
npm run build
pm2 start .output/server/index.mjs --name "nuxt-frontend"

# 4. Cấu hình VirtualHost Apache2 kết hợp mod_wsgi và mod_proxy
sudo bash -c 'cat > /etc/apache2/sites-available/onlineexam.conf <<EOF
<VirtualHost *:80>
    ServerName uitonlineexam.tk

    # Frontend Reverse Proxy sang NodeJS Nuxt3
    ProxyPreserveHost On
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

    # Backend API Routing qua WSGI
    WSGIScriptAlias /api /var/www/uitonlineexam/backend/core/wsgi.py
    WSGIDaemonProcess onlineexam_api python-path=/var/www/uitonlineexam/backend
    WSGIProcessGroup onlineexam_api

    <Directory /var/www/uitonlineexam/backend/core>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>
EOF'

# 5. Kích hoạt module và khởi động lại dịch vụ
sudo a2enmod proxy proxy_http wsgi headers security2
sudo a2ensite onlineexam.conf
sudo systemctl restart apache2

Phân tích Tổng chi phí sở hữu (TCO) và Hoàn vốn (ROI)

  • Chi phí triển khai: Dự toán hạ tầng AWS (1x EC2 t3.medium, 1x RDS db.t3.small, S3 Storage) khoảng $35 - $60 USD/tháng.
  • Hiệu quả kinh tế (ROI): Cắt giảm hoàn toàn chi phí in ấn giấy thi, thuê giám thị coi thi trực tiếp và chi phí bảo trì phòng máy chuyên dụng. Ước tính giúp các cơ sở đào tạo quy mô 3.000 sinh viên tiết kiệm hơn 120.000.000 VNĐ cho mỗi kỳ thi học kỳ, thời gian hoàn vốn đầu tư phần mềm ước tính $< 3\text{ tháng}$.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Phụ thuộc phần mềm máy trạm: Bắt buộc sinh viên phải cài đặt ứng dụng Safe Exam Browser phiên bản tương thích trước khi vào phòng thi; thí sinh sử dụng hệ điều hành Linux (chưa có bản SEB chính thức) gặp khó khăn trong việc tiếp cận.
  • Chưa có AI Proctoring thời gian thực: Hệ thống mới chỉ khóa cứng phần mềm trên máy tính nhưng chưa thể phát hiện hành vi nhìn tài liệu bên ngoài màn hình hoặc có người thứ hai nhắc bài qua camera phụ.

Hướng nghiên cứu và nâng cấp tương lai

  1. Tích hợp WebRTC & AI Anti-cheat Engine: Nhúng mô hình thị giác máy tính nhẹ (TensorFlow.js / MediaPipe) chạy trực tiếp tại client để theo dõi hướng ánh mắt (Gaze Tracking), phát hiện vật thể lạ (điện thoại thông minh, sách vở) và nhận diện nhiều khuôn mặt trong khung hình.
  2. Kiến trúc Microservices & Dockerized Deployment: Chuyển đổi toàn bộ hệ thống sang mô hình container hóa với Docker và Kubernetes (EKS) giúp mở rộng tải động (Auto-scaling) phục vụ các kỳ thi quốc gia quy mô hàng trăm nghìn thí sinh cùng lúc.
  3. Chứng thực kết quả thi qua Blockchain: Ứng dụng công nghệ sổ cái phân tán để lưu trữ mã băm bảng điểm, bảo đảm chứng chỉ/kết quả thi không thể bị sửa đổi trái phép bởi bất kỳ ai.

Đối tượng hưởng lợi

1. Sinh viên và Học viên

  • Đảm bảo môi trường đánh giá công bằng, minh bạch, loại bỏ hoàn toàn tiêu cực học đường.
  • Trải nghiệm giao diện thi mượt mà, hỗ trợ phản hồi kết quả và giải thích bài tập tức thì.
  • Định lượng: Tiết kiệm 100% thời gian di chuyển đến địa điểm thi tập trung; nhận kết quả trắc nghiệm ngay lập tức (độ trễ $< 1\text{s}$).

2. Giảng viên và Cán bộ khảo thí

  • Giảm tải áp lực tổ chức thi, ra đề và chấm bài thủ công.
  • Ngân hàng câu hỏi số hóa linh hoạt, hỗ trợ xuất báo cáo thống kê phổ điểm tự động.
  • Định lượng: Giảm 90% khối lượng công việc chấm bài trắc nghiệm; rút ngắn thời gian công bố điểm từ 1 tuần xuống còn dưới 24 giờ đối với bài tự luận.

3. Nhà trường và Tổ chức giáo dục

  • Nâng cao uy tín chất lượng đào tạo nhờ quy trình kiểm tra đánh giá khách quan.
  • Tối ưu hóa ngân sách vận hành công nghệ thông tin và cơ sở vật chất phòng thi.
  • Định lượng: Tiết kiệm tới 75% chi phí tổ chức khảo thí định kỳ hàng năm.

4. Nhà nghiên cứu và Lập trình viên

  • Cung cấp mô hình kiến trúc tham chiếu mẫu về việc tích hợp bảo mật Safe Exam Browser vào các ứng dụng Web hiện đại (Nuxt 3 + Django REST Framework).
  • Bộ mã nguồn chuẩn mực về phân quyền RBAC và xác thực mã băm bảo mật HTTP Header.

Câu hỏi thường gặp

1. Yêu cầu cấu hình kỹ thuật phần cứng và phần mềm để triển khai hệ thống là gì?

  • Phía Máy chủ (Server): Tối thiểu 2 vCPU, 4GB RAM (Khuyến nghị cấu hình AWS EC2 t3.medium hoặc cao hơn), cài đặt Ubuntu 20.04 LTS, Python 3.9+, NodeJS 16+, MySQL 8.0 và Apache 2.4.
  • Phía Thí sinh (Client): Máy tính chạy Windows 10/11, macOS 10.13+ hoặc iPad iOS 9.x+ đã cài đặt Safe Exam Browser phiên bản 3.0 trở lên, kết nối Internet tối thiểu 2 Mbps.

2. Giới hạn chịu tải (Scalability limits) của hệ thống và giải pháp mở rộng quy mô lớn?

Trên cấu hình đơn máy chủ (Single Instance), hệ thống đáp ứng ổn định 500 người dùng đồng thời (CCU). Khi cần mở rộng phục vụ kỳ thi quy mô lớn (> 10.000 CCU), hệ thống có thể chuyển đổi sang cơ sở dữ liệu phân tán Amazon RDS Multi-AZ, lưu trữ phiên (Session/Cache) qua Redis Cluster và phân tải Frontend/Backend qua AWS Elastic Load Balancing (ELB) kết hợp Auto Scaling Groups.

3. Khả năng tích hợp hệ thống với các nền tảng LMS hiện có như thế nào?

Hệ thống được thiết kế theo chuẩn kiến trúc RESTful API hoàn chỉnh. Thông qua các endpoint mở chuẩn hóa, hệ thống có thể kết nối liền mạch với các phần mềm quản lý đào tạo đại học (Edusoft, Daotao API), hệ thống đăng nhập một lần (SSO qua OAuth2/SAML/CAS), hoặc tích hợp chuẩn LTI (Learning Tools Interoperability) để nhúng trực tiếp vào Moodle và Canvas.

4. Quy trình bảo trì và hỗ trợ vận hành hệ thống diễn ra như thế nào?

Hệ thống sử dụng PM2 quản lý tiến trình NodeJS và Apache mod_wsgi quản lý Django, cho phép thực hiện cập nhật mã nguồn mà không gây gián đoạn dịch vụ (Zero-downtime deployment). Định kỳ cơ sở dữ liệu MySQL được tự động sao lưu (Backup) lên Amazon S3 hàng ngày. Hệ thống ghi log tập trung tại /var/log/apache2//var/log/modsec_audit.log hỗ trợ truy vết lỗi và điều tra an ninh mạng nhanh chóng.

5. Bảng phân rã chi phí chi tiết và thời gian hoàn vốn đầu tư (ROI)?

  • Hạ tầng Cloud: $40 - $70 USD/tháng (Chi phí linh hoạt theo lưu lượng kỳ thi).
  • Tên miền & Chứng chỉ SSL: $10 USD/năm (Hỗ trợ Let's Encrypt SSL miễn phí).
  • Bảo trì & Vận hành: Ước tính 0.1 FTE kỹ sư quản trị hệ thống.
  • Thời gian hoàn vốn: Từ 2 đến 3 tháng thông qua việc cắt giảm chi phí văn phòng phẩm, khấu hao máy móc phòng lab và chi phí bồi dưỡng cán bộ coi thi/chấm thi truyền thống.

Kết luận

Đề tài khóa luận tốt nghiệp "Xây dựng ứng dụng thi trực tuyến tin cậy và an toàn" của sinh viên Cao Trọng Nghĩa và Lê Hải Minh (Khoa Mạng máy tính và Truyền thông, Trường ĐH Công nghệ Thông tin – ĐHQG-HCM) đã giải quyết triệt để bài toán khó khăn nhất trong khảo thí trực tuyến: Đảm bảo tính trung thực và ngăn chặn gian lận tuyệt đối tại máy trạm.

Bằng việc kết hợp sáng tạo giữa môi trường bảo mật Safe Exam Browser (SEB), cơ chế xác thực hàm băm mật mã học SHA-256 ConfigKeyHash, kiến trúc Backend Django REST Framework mạnh mẽ cùng giao diện NuxtJS 3 SSR tốc độ cao, công trình đã chứng minh tính khả thi vượt trội cả về mặt học thuật lẫn ứng dụng thực tiễn. Giải pháp mở ra hướng đi bền vững, tiết kiệm chi phí và an toàn cho công tác chuyển đổi số khảo thí tại Việt Nam.

Quý độc giả, các trường học và tổ chức giáo dục quan tâm đến giải pháp có thể tham khảo mô hình kiến trúc trên hoặc liên hệ bộ môn An toàn Thông tin - Khoa Mạng máy tính & Truyền thông, Trường ĐH Công nghệ Thông tin – ĐHQG-HCM để trao đổi học thuật và hợp tác chuyển giao công nghệ.