Bảo mật & quyền riêng tư
Trang này giải thích chi tiết cách DVDAddin xử lý dữ liệu của bạn: dữ liệu đi những đâu, được mã hoá ra sao và có những dịch vụ bên thứ ba nào tham gia.
Tổng quan luồng dữ liệu
┌─────────────────┐
│ Workbook Excel │ (nằm trên máy bạn)
└────────┬────────┘
│
↓ (chỉ phần dữ liệu bạn chủ động dịch / hỏi AI / gửi đi)
┌─────────────────────────────────────────────┐
│ DVDAddin (chạy ngay trên máy) │
├─────────────────────────────────────────────┤
│ • 50 hàm UDF tính ngay trên máy │ ← KHÔNG ra mạng (trừ 4 hàm mạng/AI)
│ • Dịch (Google / Gemini / ChatGPT…) │ ← Ra mạng
│ • Trợ lý AI, OCR, Trích bảng, Ghi âm→chữ │ ← Ra mạng
│ • DVD Chat (nhắn tin nhóm) │ ← Ra mạng
│ • Kết nối Server (LAN hoặc MQTT) │ ← Ra mạng (khi bật)
│ • Kiểm tra bản quyền (30 phút/lần) │ ← Ra mạng (chỉ JWT + mã máy)
│ • Kiểm tra cập nhật (khi bạn bấm) │ ← Ra mạng (chỉ số phiên bản)
└─────────────────────────────────────────────┘
│
↓ HTTPS
┌─────────────────────────────────────────────────────────────┐
│ Dịch vụ bên thứ ba (chỉ khi bạn chủ động dùng) │
├─────────────────────────────────────────────────────────────┤
│ • translate.googleapis.com (Dịch — Google) │
│ • generativelanguage.googleapis.com (Gemini) │
│ • api.openai.com (ChatGPT, nếu đã cài) │
│ • api.groq.com (Groq, nếu đã cài) │
│ • integrate.api.nvidia.com (NVIDIA NIM, nếu đã cài)│
│ • *.firebasedatabase.app (DVD Chat) │
│ • open.er-api.com / api.frankfurter.app (hàm DVDFx) │
│ • PriceBoard.vcbs.com.vn (hàm dvdStock) │
└─────────────────────────────────────────────────────────────┘
│
↓
┌─────────────────────────────────────────────────────────────┐
│ Cloudflare Worker — dvdaddin-license-server…workers.dev │
├─────────────────────────────────────────────────────────────┤
│ • Đăng nhập / kiểm tra bản quyền / neo ngày bắt đầu Trial │
│ • Đơn hàng + bảng giá (mua bản quyền) │
│ • Nguồn tin cập nhật (/api/update/latest) │
│ • KHÔNG nhận nội dung workbook │
└─────────────────────────────────────────────────────────────┘Loại dữ liệu và nơi nhận
| Loại dữ liệu | Có ra mạng? | Gửi tới đâu? |
|---|---|---|
| Nội dung workbook (giá trị ô nói chung) | KHÔNG | — |
| Tên file / đường dẫn | KHÔNG | — |
| Kết quả tính của 50 hàm UDF (trừ 4 hàm mạng/AI) | KHÔNG | — |
| Đoạn chữ bạn chủ động dịch | Có | Google / Gemini / OpenAI / Groq / NVIDIA |
| Câu hỏi + vùng ô đính kèm trong Trợ lý AI | Có | Nhà cung cấp AI đang chọn |
| Ảnh / PDF bạn OCR hoặc Trích bảng | Có | Gemini (mặc định) hoặc OpenAI / Groq / NVIDIA |
| File âm thanh bạn chuyển thành chữ | Có | OpenAI hoặc Groq (địa chỉ /audio/transcriptions) |
| Tin nhắn + file trong DVD Chat | Có | Firebase Realtime DB + Firebase Storage (asia-southeast1) |
| Ô và định dạng khi bật Kết nối Server | Có | Máy host trong mạng LAN, hoặc broker MQTT bạn khai báo |
| Email + mật khẩu đăng nhập license | Chỉ khi đăng nhập | Cloudflare Worker |
| Machine ID (băm SHA-256, 16 ký tự) | Có, kèm mọi lần gọi tới máy chủ license | Cloudflare Worker |
| Tên máy Windows + phiên bản hệ điều hành | Có, khi neo ngày dùng thử hoặc đăng nhập | Cloudflare Worker |
| Phiên bản add-in | Khi bấm Kiểm tra cập nhật | Cloudflare Worker |
Đọc kỹ dòng "tên máy"
DVDAddin có gửi tên máy Windows (Environment.MachineName) và chuỗi phiên bản hệ điều hành lên máy chủ license, kèm trong gói dữ liệu khi neo ngày dùng thử và khi đăng nhập. Thông tin này dùng để chống gian lận thời gian dùng thử, nhưng cũng có nghĩa add-in không phải "không gửi gì cả" — nếu tên máy của bạn có chứa thông tin nhạy cảm (tên người, mã dự án), bạn nên biết điều đó.
Machine ID được tính thế nào
MachineId = SHA-256( MachineGuid | TenMay | PhienBanOS ) → lấy 16 ký tự hex đầuMachineGuid được đọc từ HKLM\SOFTWARE\Microsoft\Cryptography (nhánh registry 64-bit). Trộn cả ba thành phần để hai máy nhân bản từ cùng một bản ghost (image) Windows vẫn ra ID khác nhau.
Điều cần biết: đổi tên máy Windows hoặc nâng cấp phiên bản Windows sẽ làm đổi Machine ID — hệ thống license coi đó là một máy mới và có thể yêu cầu đăng nhập lại.
Các lớp mã hoá
1. Đường truyền — HTTPS
Mọi kết nối ra ngoài đều đi qua HTTPS, dùng chính bộ TLS có sẵn của Windows/.NET 8 (mặc định TLS 1.2/1.3). Add-in không ghim chứng chỉ (certificate pinning): nó tin kho chứng chỉ gốc của Windows, nên proxy kiểm soát nội dung của doanh nghiệp (đã cài chứng chỉ gốc riêng) vẫn giải mã được lưu lượng.
2. File license (HMAC-SHA256)
File %LocalAppData%\DVDAddin\license.dat được lưu dạng JSON, kèm mã HMAC-SHA256 tính bằng khoá nhúng trong DLL.
HMAC ở đây không phải cơ chế bảo mật — máy chủ mới là bên có quyền quyết định; HMAC chỉ ngăn việc sửa tay file lưu tạm này.
Khi không ghi được vào thư mục đó (do phân quyền ACL hoặc Controlled Folder Access), add-in lưu dự phòng vào HKCU\Software\DVD\DVDAddin\Licensing\LicenseBlob.
3. Chữ ký JWT (RS256)
Mã license (token) là một JWT được ký bằng RS256:
- Máy chủ giữ khoá bí mật (private key, cất trong mục secret của Cloudflare Worker).
- Máy người dùng giữ khoá công khai RSA-2048 (nhúng trong DLL).
- Mỗi lần nạp license, add-in tự xác minh chữ ký — token không qua được bước này bị coi là giả và bị bỏ.
JWT có hạn 7 ngày, cộng thêm khoảng 1 ngày đệm của bộ nhớ tạm trên máy. Nghĩa là add-in chạy đầy đủ khi không có mạng tối đa khoảng 8 ngày kể từ lần kiểm tra trực tuyến gần nhất.
4. Salt ký riêng cho từng máy (HKDF)
Mỗi lần đăng nhập, add-in sinh mới (hoặc dùng lại) một chuỗi salt ngẫu nhiên 32 byte riêng cho máy đó.
Mọi yêu cầu gửi tới các địa chỉ license/mua hàng đều được ký thêm hai header:
X-DVDA-Ts: <unix seconds>
X-DVDA-Sig: HMAC-SHA256(METHOD + "\n" + PATH + "\n" + sha256(body) + "\n" + TS, key)trong đó key = HKDF(rootKey, machineId, salt). Yêu cầu bị phát lại sau hơn 5 phút sẽ bị máy chủ từ chối vì lệch thời gian; gọi thẳng bằng curl/Postman mà không có hai header này thì nhận lỗi 403.
5. Mốc chống lùi đồng hồ
HKCU\Software\DVD\DVDAddin\Licensing\MaxSeenUtc ghi lại mốc thời gian muộn nhất mà add-in từng thấy. Nếu đồng hồ máy lùi quá xa so với mốc đó, add-in coi là đã chỉnh giờ để kéo dài thời gian dùng thử hoặc license.
Quyền riêng tư với API bên thứ ba
Google Translate (miễn phí, không cần API key)
- Địa chỉ:
https://translate.googleapis.com/translate_a/t(POST, trả về JSON, không cần API key) — đây không phải API có hợp đồng dịch vụ. Địa chỉ này dùng chung cho lệnh Dịch ngôn ngữ, phím tắt Dịch nhanh (Ctrl+Shift+J/Ctrl+Shift+E) và hàmdvdTranslate. - Hệ quả: giữa bạn và Google không có thỏa thuận xử lý dữ liệu nào cho luồng này.
- Khuyến nghị: KHÔNG dùng cho dữ liệu nhạy cảm (đơn giá, lương, điều khoản hợp đồng chưa ký).
Google Gemini
- Địa chỉ:
generativelanguage.googleapis.com. - API key: do bạn tự lấy ở Google AI Studio và tự khai vào add-in — key là của bạn, không đi qua máy chủ DVDAddin.
- Quyền riêng tư: theo điều khoản của Gemini API, nội dung gửi ở gói miễn phí có thể được dùng để cải thiện dịch vụ; gói trả phí thì không.
OpenAI / Groq / NVIDIA NIM
- Địa chỉ:
api.openai.com/v1/chat/completions,api.groq.com/openai/v1/chat/completions,integrate.api.nvidia.com/v1/chat/completions. - Cả ba đều dùng API key riêng của bạn. Chính sách cho gói API thường không dùng dữ liệu của bạn để huấn luyện — nhưng chính sách thay đổi theo thời gian, hãy tự đọc điều khoản của nhà cung cấp bạn chọn.
- Từ tháng 6/2026, NVIDIA NIM thay cho nhà cung cấp Cerebras trước đây; thiết lập cũ ghi "Cerebras" được add-in tự chuyển sang NVIDIA.
DVD Chat (Firebase)
DVD Chat là kênh nhắn tin nhóm chạy trên Firebase Realtime Database + Firebase Storage đặt tại vùng asia-southeast1. Tin nhắn và file bạn gửi trong DVD Chat nằm trên hạ tầng của Google, không nằm trên máy bạn. Đừng dán mật khẩu, đơn giá dự thầu hay dữ liệu cần bảo mật vào đó.
Kết nối Server (làm việc nhóm)
Kết nối Server có hai đường kết nối và không đi qua máy chủ của DVDAddin:
- LAN — một máy trong mạng chạy server ở một cổng (mặc định 8888), các máy khác nối vào theo IP. Dữ liệu không rời khỏi mạng nội bộ. Gói tin được mã hoá bằng Mật khẩu Dữ liệu mà cả nhóm cùng nhập.
- Internet (MQTT) — mặc định trỏ tới broker công cộng
broker.hivemq.com. Đây là hạ tầng dùng chung, ai biết mã phòng cũng vào được. Với dữ liệu dự án thật, hãy dựng broker riêng, đặt mã phòng khó đoán và đặt Mật khẩu Dữ liệu mạnh.
Cloudflare Worker (license)
- Địa chỉ:
dvdaddin-license-server.dangvandangdvd.workers.dev. - Vị trí: chạy trên mạng biên của Cloudflare, thường là trung tâm dữ liệu gần bạn nhất.
- Dữ liệu lưu trên máy chủ: email, gói bản quyền (edition), hạn dùng, Machine ID đã băm, salt ký, tên máy. Không có nội dung workbook.
- Muốn xoá tài khoản/dữ liệu: gửi email tới support@dvdpm.net.
Những gì DVDAddin không gửi đi
Add-in không gửi:
- Nội dung workbook (trừ đúng phần bạn chủ động dịch, hỏi AI, OCR, chat hoặc đồng bộ nhóm).
- Tên file, đường dẫn thư mục, danh sách sheet.
- Lịch sử duyệt web, danh sách ứng dụng đã cài, dữ liệu của phần mềm khác.
- Kết quả tính của 50 hàm UDF — trừ bốn hàm vốn dĩ phải ra mạng:
dvdTranslate,dvdAIExplain,DVDFx,dvdStock.
Add-in có gửi (đã nêu ở trên, nhắc lại cho rõ): Machine ID đã băm, tên máy Windows, phiên bản hệ điều hành, phiên bản add-in, email đăng nhập.
Tự kiểm tra lưu lượng mạng
Wireshark
- Cài Wireshark, bắt gói tin trên card mạng đang dùng.
- Nhập bộ lọc hiển thị (display filter)
tls.handshake.type == 1để chỉ xem các phiên TLS mới mở, rồi đọc cột Server Name (SNI) — cách này cho biết máy đang kết nối tới đâu mà không cần giải mã. - Mở Excel, chạy lần lượt từng lệnh và xem các tên miền hiện ra ở cột SNI.
Các tên miền hợp lệ bạn có thể thấy:
dvdaddin-license-server.dangvandangdvd.workers.dev— license, đơn hàng, nguồn cập nhật.translate.googleapis.com— khi dịch bằng Google.generativelanguage.googleapis.com— Gemini (dịch, AI, OCR, Trích bảng).api.openai.com,api.groq.com,integrate.api.nvidia.com— khi bạn chọn nhà cung cấp tương ứng.*.firebasedatabase.app,firebasestorage.googleapis.com,identitytoolkit.googleapis.com,securetoken.googleapis.com— DVD Chat.open.er-api.com,api.frankfurter.app,cdn.jsdelivr.net— hàmDVDFx.priceboard.vcbs.com.vnhoặcquotes.vcbs.com.vn— hàmdvdStock.github.com/objects.githubusercontent.com— khi tải bộ cài.
Ngoài ra add-in còn mở trình duyệt tới vài địa chỉ khi bạn bấm vào liên kết trong giao diện — lưu lượng này là của trình duyệt, không phải của Excel: dvdaddin.dvdpm.net và youtube.com, zalo.me, github.com (cửa sổ Giới thiệu); aistudio.google.com, platform.openai.com, console.groq.com, build.nvidia.com (các nút "lấy API key" trong Tùy chọn).
Nếu trong lúc chỉ dùng DVDAddin mà thấy tên miền nằm ngoài hai danh sách này thì đáng để xem xét kỹ.
Fiddler / mitmproxy
Muốn xem cả nội dung từng yêu cầu gửi đi thì cần một proxy giải mã HTTPS (phải cài chứng chỉ gốc của công cụ đó). Vì add-in không ghim chứng chỉ nên cách này dùng được. Bạn kiểm tra được:
- Dữ liệu gửi lên nhà cung cấp AI đúng bằng phần chữ bạn chọn, không kèm thêm ô nào khác.
- Dữ liệu gửi lên máy chủ license (Worker) chỉ gồm machineId, tên máy, email — không có dữ liệu bảng tính.
Tuân thủ quy định
Việt Nam
- Dữ liệu cá nhân chỉ lưu ở mức tối thiểu: email, tên máy, Machine ID đã băm, thông tin license.
- Bạn có quyền yêu cầu truy cập dữ liệu hoặc xoá tài khoản qua support@dvdpm.net.
- Nếu cần dữ liệu không rời khỏi mạng nội bộ: dùng Kết nối Server ở chế độ LAN và tránh các lệnh AI, dịch, chat.
GDPR (EU)
DVDAddin chưa hướng tới thị trường EU và chưa có quy trình chính thức về thỏa thuận xử lý dữ liệu (DPA) hay "quyền được lãng quên". Đơn vị có nghĩa vụ tuân thủ GDPR nên tự đánh giá trước khi triển khai.
HIPAA (y tế Mỹ)
DVDAddin không tuyên bố tuân thủ HIPAA. Không dùng cho dữ liệu bệnh án.
Nguyên tắc bảo mật
1. Không đưa bí mật vào bất kỳ lệnh AI nào
Mọi thứ bạn chọn trước khi bấm Dịch thuật, Trợ lý AI, OCR hay Trích bảng đều được gửi nguyên văn tới nhà cung cấp AI. Trước khi chạy lệnh trên một sheet, hãy nhìn lại vùng chọn — dịch nhầm cả cột "Ghi chú nội bộ" là chuyện đã xảy ra với nhiều người.
2. Đối chiếu SHA-256 của bộ cài
Nguồn cập nhật của add-in có thể kèm trường sha256 cho gói tải về. Hãy đối chiếu trước khi cài:
Get-FileHash .\DVDAddin.rar -Algorithm SHA256Chỉ tải bộ cài từ liên kết mà lệnh Kiểm tra cập nhật hoặc Tải Tool mở ra, không tải từ nguồn chia sẻ lại.
3. Cho DVDAddin vào danh sách ngoại lệ của phần mềm diệt virus
Một số phần mềm diệt virus đôi khi cách ly file .xll. Hãy thêm thư mục C:\DVDAddin\ vào danh sách ngoại lệ.
Ngược lại, vẫn nên để phần mềm diệt virus chạy — Outlook chỉ thôi hiện cảnh báo "một chương trình đang truy cập email" khi Windows Security báo máy đang được bảo vệ.
4. Bảo vệ API key của bạn
API key nằm trong HKCU\Software\DVD\DVDAddin\API Keys\ (GeminiAPI, ChatGPTAPI, GroqAPI, NvidiaAPI) dưới dạng văn bản thường, không mã hoá. Ai vào được tài khoản Windows của bạn là đọc được key.
- Máy dùng chung: đăng xuất Windows khi rời máy, đừng dùng chung tài khoản Windows.
- Nghi bị lộ: thu hồi key trên trang quản lý của nhà cung cấp, rồi khai key mới trong Tùy chọn → mục Trợ lý AI.
5. Sao lưu license.dat trước khi cài lại Windows
→ Xem Sao lưu & khôi phục.
6. Cẩn thận với chế độ MQTT của Kết nối Server
Broker mặc định là hạ tầng công cộng. Hãy đặt mã phòng riêng, Mật khẩu Dữ liệu mạnh, và ngắt kết nối khi xong việc bằng lệnh Ngắt kết nối.
Báo lỗ hổng bảo mật
Nếu bạn phát hiện lỗ hổng:
- Gửi email tới support@dvdpm.net, tiêu đề bắt đầu bằng
[SECURITY], mô tả lỗ hổng kèm các bước tái hiện. - Vui lòng không công bố chi tiết cách khai thác trước khi có bản vá.
Liên quan
- Bản quyền — chi tiết hệ thống license và cách kích hoạt.
- Tùy chọn — nơi khai API key (mục Trợ lý AI).
- Kết nối Server — LAN và MQTT, hai mức rủi ro khác nhau.
- DVD Chat — nhắn tin nhóm chạy trên Firebase.
- Sao lưu & khôi phục.
- Hỏi đáp — Bảo mật & quyền riêng tư.