Hub không đọc được credential DKMH.
Hub lưu tài khoản, mã mời, phương án học tập và catalog đã loại bỏ trạng thái riêng của sinh viên. Không endpoint nào nhận access token, id_rs, CURRENT_USER hoặc toàn bộ state của userscript. Nếu bạn tự bật tự đăng nhập, Hub chỉ giữ bản đã mã hóa và không có khóa để mở.
Snapshot catalog
Snapshot catalog chỉ gồm mã/tên môn, nhóm, tổ, tín chỉ, lớp sinh viên, sức chứa cố định và chuỗi lịch học. Số chỗ còn lại, trạng thái đã đăng ký và khóa phiên đều bị loại trước khi export.
DKMH Turbo Extension
Extension chỉ có quyền trên cổng DKMH và đúng Hub origin, cùng các quyền tối thiểu: alarms, notifications, sidePanel và storage. Extension không xin cookie, history, webRequest hoặc quyền trên mọi website.
Device token được lưu cục bộ trong chrome.storage.local; Hub chỉ giữ HMAC digest. CURRENT_USER, access_token, id_rs, cookie, lịch sử URL và raw response không được đồng bộ.
Tài khoản DKMH đã lưu
Mặc định extension không đọc hay lưu mật khẩu; password manager của browser lo phần autofill. Bạn có thể tự bật tự đăng nhập: khi đó trình duyệt của bạn mã hóa mật khẩu bằng khóa công khai của từng bản cài extension (ECDH P-256 + AES-256-GCM) rồi mới gửi lên. Hub lưu ciphertext cùng một chuỗi che kiểu 21•••23; khóa riêng nằm trong IndexedDB của extension, không xuất ra được và không bao giờ rời máy bạn.
Lưu hoặc xóa tài khoản này đều yêu cầu nhập lại mật khẩu Hub, nên một phiên đang mở sẵn trên máy người khác không đủ để thay mật khẩu mà extension của bạn dùng để đăng nhập.
Trang quản trị thấy được rằng bạn có lưu tài khoản DKMH hay không, cho bao nhiêu thiết bị, từ lúc nào, các lần lưu hoặc xóa trong audit log, và chuỗi che kiểu 21•••23 để biết đó là tài khoản DKMH nào. Nội dung tài khoản thì không: Hub không giữ khóa nào mở được bản mã hóa đó, nên mật khẩu của bạn không nằm trong tầm đọc của bất kỳ ai.
Extension chỉ điền form đăng nhập một lần cho mỗi lượt. DKMH từ chối một lần là nó dừng hẳn cho tới khi bạn lưu mật khẩu mới, để không làm khóa tài khoản. Xóa tài khoản đã lưu ở trang Nguồn catalog sẽ gỡ ciphertext khỏi Hub và khỏi mọi thiết bị ở lần đồng bộ kế tiếp.
Chương trình đào tạo của bạn
Khi bạn bật tự lấy danh mục, extension gửi kèm danh sách mã môn mà tài khoản DKMH của bạn đánh dấu là thuộc chương trình đào tạo, chưa học hoặc cần học lại. Planner dùng nó để lọc ra phần liên quan thay vì hiện toàn bộ danh mục của trường.
Danh sách này chỉ gồm mã môn và ba giá trị đúng/sai. Nó gắn với riêng tài khoản bạn, không được gộp chung, không dùng để đối chiếu cộng đồng, không hiện trong trang quản trị, và bị xóa cùng khi bạn bấm “Xóa dữ liệu extension”.
Bảng điểm và chương trình đào tạo
Cùng lần đồng bộ đó, extension đọc thêm hai màn hình của DKMH: Xem điểm và Chương trình đào tạo. Hub nhận điểm tổng kết từng môn, điểm trung bình và số tín chỉ của từng học kỳ, cùng danh sách môn trong chương trình kèm cờ đã học / đã đạt. Trang Kết quả học tập dựng thống kê và tính tín chỉ từ đúng dữ liệu đó.
Điểm thành phần, khóa thi, số báo danh và nhóm tổ bị loại ngay trên máy bạn, trước khi bất cứ thứ gì rời trình duyệt. Bản ghi này gắn với riêng tài khoản bạn: không sinh viên nào khác đọc được, không được gộp chung, không dùng để đối chiếu cộng đồng, và bị xóa cùng khi bạn bấm “Xóa dữ liệu extension”. Mọi con số trung bình và tích lũy là con số DKMH báo, Hub không tự tính lại.
Telemetry
Telemetry mặc định tắt. Khi người dùng opt-in, Hub chỉ nhận version, chuyển trạng thái, latency bucket và mã lỗi chuẩn hóa; retention mặc định 30 ngày. User có thể tắt telemetry trong Side Panel, thu hồi device và xem run summary đã làm sạch tại trang Extension. Nút “Xóa dữ liệu extension” thu hồi mọi device và xóa pairing, telemetry, run summary, tài khoản DKMH đã mã hóa, danh sách chương trình đào tạo và bảng điểm owner-scoped; wishlist/catalog Hub được giữ riêng.