Skip to content

Security & Privacy

Giải thích chi tiết DVDAddin xử lý data như thế nào — data flow, encryption, third-party services.

Data flow tổng quan

┌─────────────────┐
│ Workbook Excel  │ (local trên máy bạn)
└────────┬────────┘

         ↓ (chỉ data bạn chủ động dịch / hỏi AI)
┌─────────────────────────────────────────────┐
│ DVDAddin (chạy local)                       │
├─────────────────────────────────────────────┤
│ • Local computation (UDF text/date/math)    │ ← KHÔNG ra mạng
│ • Translate cell (Google/Gemini/ChatGPT)    │ ← Ra mạng
│ • AI Assistant chat                         │ ← Ra mạng
│ • License heartbeat (4h/lần)                │ ← Ra mạng (chỉ JWT)
│ • Update check (1 lần/khởi động)            │ ← Ra mạng (chỉ version)
└─────────────────────────────────────────────┘

         ↓ HTTPS encrypted
┌─────────────────────────────────────────────────────────────┐
│  Third-party services (chỉ khi user chủ động dùng)          │
├─────────────────────────────────────────────────────────────┤
│ • translate.google.com (text bạn dịch)                       │
│ • generativelanguage.googleapis.com (Gemini)                 │
│ • api.openai.com (ChatGPT, nếu config)                       │
│ • api.groq.com, api.cerebras.ai (nếu config)                 │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│  dvdpm.net Cloudflare backend (license + update)             │
├─────────────────────────────────────────────────────────────┤
│ • License heartbeat (JWT verify, no workbook data)           │
│ • Update notification check (version compare)                │
│ • Optional: Connect Server (team sync — chỉ user opt-in)    │
└─────────────────────────────────────────────────────────────┘

Loại data và destination

Loại dataCó ra mạng?Đi đâu?Encrypted?
Workbook content (cell values)KHÔNG
Filename / pathKHÔNG
Personal info (email, tên)Chỉ logindvdpm.netTLS 1.3
Text bạn dịchGoogle / Gemini / ChatGPTTLS 1.3
AI Assistant chatGemini / OpenAI / GroqTLS 1.3
Audio bạn transcribeGemini VisionTLS 1.3
Ảnh bạn OCRGemini VisionTLS 1.3
License tokenCó (4h/lần)Cloudflare Worker (dvdpm.net)TLS 1.3
Machine ID hashCó (kèm license)Cloudflare WorkerTLS 1.3
App versionCó (mỗi khởi động)Cloudflare WorkerTLS 1.3
Telemetry (opt-in)Chỉ khi tickdvdpm.netTLS 1.3
Connect Server data (opt-in)dvdpm.netTLS 1.3

Encryption layers

1. Network (TLS 1.3)

Tất cả communication addin → server qua HTTPS với TLS 1.3:

  • AES-256-GCM cipher.
  • Certificate pinning (in 2.8+).
  • Không chấp nhận TLS < 1.2.

2. License file (HMAC)

%LocalAppData%\DVDAddin\license.dat lưu format:

{json-content}|{hmac-hex}

HMAC-SHA256 với key hardcoded trong DLL (obfuscated). Nếu file bị tampering → HMAC mismatch → addin reject.

3. JWT signature (RS256)

License token là JWT signed bằng RS256:

  • Server có private key (Cloudflare secret).
  • Client có public key (hardcoded trong DLL).
  • Client verify signature mỗi lần load license → đảm bảo không bị forge.

4. Per-install signing salt (HKDF)

Mỗi machine có random 32-byte salt generated trên client, sent lên server qua /auth/login.

Mỗi API request sign bằng HKDF-derived key = HKDF(rootKey, machineId, saltHex).

→ Forge request giả từ machine khác cần cả root key + salt + mid → cực khó.

5. Clock-rollback anchor

HKCU registry value MaxSeenUtc lưu high-water mark của clock đã thấy.

Nếu clock máy < high-water mark - 1h → suspect rollback → lock license cho đến online verify.

Third-party API privacy

Google Translate (free)

  • Endpoint: translate.googleapis.com/translate_a/single.
  • Privacy: Google Translate Privacy Policy — text được train AI improvement.
  • Recommendation: KHÔNG dùng cho data nhạy cảm (lương, bí mật kinh doanh).

Google Gemini

  • Endpoint: generativelanguage.googleapis.com.
  • API key: do user tự lấy từ Google AI Studio (cá nhân).
  • Privacy: Google Gemini API Privacy — free tier có thể được dùng train model.
  • Paid tier (Gemini Pro qua Vertex AI) — KHÔNG train, enterprise privacy.

OpenAI ChatGPT

  • Endpoint: api.openai.com/v1/chat/completions.
  • Privacy: API tier (vs ChatGPT consumer) KHÔNG train data.
  • Recommendation: dùng ChatGPT API cho data nhạy cảm.

Groq / Cerebras

  • Endpoint: api.groq.com / api.cerebras.ai.
  • Privacy: tương tự OpenAI — API tier không train.

Cloudflare Workers (dvdpm.net)

  • Vị trí server: Cloudflare edge — closest data center (thường Singapore / HK cho user VN).
  • Data stored: license info (email, edition, expires_at, machine ID hash, salt). KHÔNG có workbook content.
  • GDPR / Vietnam Personal Data Law: compliant — user có quyền request xóa account.

What DVDAddin does NOT send

KHÔNG gửi:

  • Workbook content (trừ phần text bạn chủ động dịch / hỏi AI).
  • Filename, folder path.
  • Computer info ngoài OS version, Excel version, machine ID hash.
  • IP address (server log nhưng không link cá nhân).
  • Browsing history.
  • Other apps installed.

Audit: kiểm tra network traffic

Nếu paranoid, dùng tool monitor network:

Wireshark

  1. Cài Wireshark.
  2. Capture filter: tcp port 443 and host dvdpm.net or host *.googleapis.com.
  3. Mở Excel → dùng DVDAddin → quan sát traffic.
  4. SHOULD chỉ thấy outgoing tới:
    • *.googleapis.com (nếu dùng Translate Gemini).
    • translate.googleapis.com (nếu dùng Google Translate).
    • *.workers.dev hoặc dvdpm.net (license heartbeat).
    • api.openai.com / api.groq.com / api.cerebras.ai (nếu config).
    • github.com (download installer).

KHÔNG thấy traffic suspicious → an toàn.

Fiddler / Charles Proxy

Decrypt HTTPS để xem body:

  • Cài Fiddler + trust root cert.
  • Capture traffic Excel.
  • Verify body chỉ chứa text bạn chủ động dịch.

Compliance

Việt Nam — Luật An toàn thông tin mạng 2015

  • Data cá nhân lưu trong nước (Cloudflare có edge tại Việt Nam — Hà Nội + TP.HCM).
  • User có quyền access / xóa account qua email [email protected].

GDPR (EU)

  • DVDAddin chưa target EU market. Nếu sau này:
    • Sẽ thêm cookie consent banner.
    • Right-to-be-forgotten workflow.
    • Data Processing Agreement với CĐT-side EU.

HIPAA (US healthcare)

KHÔNG tuyên bố HIPAA-compliant. KHÔNG dùng DVDAddin cho data y tế.

Security best practices

1. KHÔNG nhập password vào AI

=DvdAskGemini("Mật khẩu admin là: ???")  ← NEVER

AI service log query → password leak.

2. Verify SHA-256 của setup.exe

Mỗi release publish SHA-256 trong release notes. Verify trước khi cài:

powershell
Get-FileHash setup.exe -Algorithm SHA256

So sánh với hash trên dvdpm.net.

3. Whitelist DVDAddin trong Antivirus

Một số AV (Bitdefender, Kaspersky) đôi khi flag .xll file. Whitelist:

  • C:\DVDAddin\.

4. Backup license.dat trước khi reset Windows

→ Xem Backup & Restore.

5. Disable Telemetry nếu không cần

Preferences → General → Telemetry → bỏ tick. (Mặc định đã tắt.)

Open source verification

Source code đầy đủ tại github.com/dangdvd/DVDAddin.

Review:

  • Mọi network call → grep httpClient.SendAsync / HttpRequestMessage.
  • License logic → src/DVDAddin.Services/Licensing/.
  • Telemetry → src/DVDAddin.Services/Common/Telemetry*.

Build từ source:

bash
git clone https://github.com/dangdvd/DVDAddin.git
cd DVDAddin
dotnet build -c Release

→ Verify binary giống setup.exe (reproducible build).

Report security vulnerability

⚠️ Tìm thấy lỗ hổng security:

  • Email [email protected] (KHÔNG public).
  • Hoặc GitHub Security Advisory (private).
  • KHÔNG đăng GitHub Issue public.

Tác giả sẽ trả lời trong 48h và fix trong 7 ngày cho critical issue.

Liên quan

Released under DVDAddin License.