D5 · 12% · CGRC

C05 — Quyền riêng tư dữ liệu

Data Privacy — GDPR, CCPA, Nghị định 13/2023 Việt Nam, PDPA Thái Lan: quyền của chủ thể dữ liệu, PIA/DPIA, data classification, retention policy, breach notification và Privacy by Design.

Tools
GDPR · NĐ 13/2023
Platform
PowerShell · Bash
Quarter
Q2/2026
Updated
24/05/2026
Author
Trần Văn Hòa (MCT)
Version
v1.0

Mục tiêu bài học — Learning Objectives

  • So sánh GDPR (EU), CCPA (California), Nghị định 13/2023 (Việt Nam) và PDPA (Thái Lan) — điểm tương đồng và khác biệt
  • Thực hiện Privacy Impact Assessment (PIA) và Data Protection Impact Assessment (DPIA)
  • Xây dựng data classification scheme và retention schedule phù hợp quy định
  • Áp dụng Privacy by Design (PbD) 7 principles vào thiết kế hệ thống
  • Xây dựng quy trình Data Subject Rights Management và breach notification workflow

Lý thuyết — Theory

1. Các quy định bảo vệ dữ liệu toàn cầu — Global Privacy Regulations

Quy địnhPhạm viQuyền chủ thểPhạt vi phạm
GDPR (EU 2018) Mọi tổ chức xử lý dữ liệu công dân EU Access, Rectify, Erase, Portability, Object, Restrict, Profiling opt-out €20M hoặc 4% global turnover
CCPA (CA 2020) Business thu thập dữ liệu cư dân California Know, Delete, Opt-out of sale, Non-discrimination, Correct (CPRA) $2,500-$7,500/vi phạm cố ý
NĐ 13/2023 (VN) Tổ chức xử lý dữ liệu cá nhân công dân Việt Nam Biết, Đồng ý, Truy cập, Xóa, Hạn chế, Phản đối, Khiếu nại Đang hoàn thiện (dự thảo Luật BVDLCN)
PDPA (Thái 2022) Xử lý dữ liệu cá nhân tại/về Thái Lan Tương tự GDPR, thêm Data Portability THB 5M (~$140K) + criminal penalties
Điểm chung của mọi privacy law: Lawful basis cho xử lý dữ liệu (consent/contract/legal obligation/legitimate interest), transparency (privacy notice), data minimization, purpose limitation, storage limitation, security, và accountability.

2. Privacy Impact Assessment (PIA) & DPIA

PIA/DPIA là quy trình đánh giá tác động của việc xử lý dữ liệu lên quyền riêng tư. GDPR Article 35 bắt buộc DPIA cho xử lý "có khả năng gây rủi ro cao".

Khi nào BẮT BUỘC làm DPIA (GDPR Art.35):
  • • Systematic profiling với tác động pháp lý
  • • Xử lý dữ liệu nhạy cảm ở quy mô lớn (health, biometric)
  • • Giám sát công cộng có hệ thống (CCTV khu vực công)
  • • Matching hoặc combining datasets
  • • Dữ liệu của vulnerable subjects (trẻ em, người bệnh)
  • • Innovative technology sử dụng lần đầu
DPIA gồm 7 bước:
  1. Mô tả processing và mục đích
  2. Xác định lawful basis và necessity
  3. Đánh giá rủi ro với quyền tự do của data subjects
  4. Xác định biện pháp giảm thiểu rủi ro
  5. Tham khảo DPO (Data Protection Officer)
  6. Nếu rủi ro cao: tham khảo Supervisory Authority
  7. Tài liệu hóa và review định kỳ

3. Data Classification & Retention Policy

Data classification là nền tảng để áp dụng controls phù hợp — không thể bảo vệ dữ liệu nếu không biết dữ liệu đó là gì và ở đâu.

Restricted (Secret) PII, PHI, PCI data, trade secrets, M&A info. Mã hóa bắt buộc, MFA, need-to-know. VD: Customer SSN, credit card PAN, medical records.
Confidential Internal business data, HR records, financial projections. Access control, không public. VD: Salary info, internal memos, vendor contracts.
Internal Thông tin nội bộ không public nhưng không nhạy cảm cao. Chỉ share trong tổ chức. VD: Meeting minutes, project plans, org charts.
Public Dữ liệu được công bố ra ngoài. Không yêu cầu protection đặc biệt về confidentiality. VD: Press releases, marketing, product docs.
Retention Schedule (Quy định giữ dữ liệu):
• PCI DSS: Cardholder data — tối thiểu 1 năm, xóa khi hết cần
• HIPAA: PHI — 6 năm từ ngày tạo hoặc lần dùng cuối
• GDPR: Theo mục đích xử lý — storage limitation principle
• NĐ 13/2023 VN: Chưa quy định rõ — theo ngành và hợp đồng
• Financial records (SOX): 7 năm
• Email: 3-7 năm (tùy ngành và quốc gia)

4. Privacy by Design — 7 Foundational Principles

Privacy by Design (PbD) do Ann Cavoukian phát triển — tích hợp privacy vào hệ thống từ giai đoạn thiết kế, không phải bổ sung sau. GDPR Art.25 yêu cầu "Data Protection by Design and by Default".

1. Proactive, not Reactive: Phòng ngừa privacy violations trước khi xảy ra, không chỉ phản ứng.
2. Privacy as Default: Mặc định thu thập ít nhất dữ liệu cần thiết — opt-in, không opt-out.
3. Embedded into Design: Privacy là phần không thể tách rời của hệ thống, không phải add-on.
4. Full Functionality: Privacy và security KHÔNG phải zero-sum — cả hai đều đạt được đầy đủ.
5. End-to-End Security: Bảo vệ dữ liệu suốt lifecycle: thu thập → lưu trữ → sử dụng → xóa.
6. Visibility & Transparency: Đảm bảo tất cả parties biết dữ liệu được xử lý như thế nào.
7. Respect for User Privacy: Lấy cá nhân làm trung tâm — consent rõ ràng, easy opt-out, truy cập dữ liệu của mình.

5. Data Breach Notification & DSR Management

Breach Notification Timelines:
GDPR: 72 giờ báo Supervisory Authority; "undue delay" báo data subjects nếu high risk
HIPAA: 60 ngày báo HHS + individuals; nếu >500 người → báo media
NĐ 13/2023 VN: 72 giờ báo Bộ Công an (Cục A05)
CCPA/CPRA: "Expedient time" — không định lượng cụ thể
Data Subject Rights (DSR) — Quy trình:
  1. Nhận request (email, web form, phone)
  2. Xác thực danh tính requester (phải là subject đó)
  3. Phân loại request: Access / Erase / Correct / Port
  4. Tìm kiếm dữ liệu trong ALL systems
  5. Đánh giá exceptions (legal obligation, third-party rights)
  6. Respond trong 30 ngày (GDPR) — có thể extend thêm 60 ngày
  7. Tài liệu hóa request & response

Bài thực hành — Hands-on Labs

LAB 01

PII Data Discovery — PowerShell quét file system tìm dữ liệu cá nhân

Platform
Windows PowerShell 7
Tools
PowerShell, Regex
Output
PII Discovery Report
Thời gian
25 phút
# PII Data Discovery — tìm dữ liệu cá nhân trong file system
# Phục vụ data mapping và DPIA requirements

$scanPath  = "C:\DataScan"
$fileTypes = @("*.txt", "*.csv", "*.log", "*.json")
$report    = @()

# PII Pattern definitions
$patterns = @{
    "CCCD/CMND VN"  = '\b\d{9}(\d{3})?\b'           # 9 or 12 digits
    "Email Address"  = '[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}'
    "Phone VN"       = '\b(0|\+84)[3-9]\d{8}\b'
    "Credit Card"    = '\b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})\b'
    "Date of Birth"  = '\b(0[1-9]|[12]\d|3[01])[\/\-](0[1-9]|1[0-2])[\/\-](19|20)\d{2}\b'
    "IP Address"     = '\b(?:\d{1,3}\.){3}\d{1,3}\b'
}

# Scan files
foreach ($ext in $fileTypes) {
    Get-ChildItem -Path $scanPath -Filter $ext -Recurse -ErrorAction SilentlyContinue |
    ForEach-Object {
        $file    = $_
        $content = Get-Content $file.FullName -Raw -ErrorAction SilentlyContinue
        if (-not $content) { return }

        foreach ($piiType in $patterns.Keys) {
            $matches = [regex]::Matches($content, $patterns[$piiType])
            if ($matches.Count -gt 0) {
                $report += [PSCustomObject]@{
                    File       = $file.FullName
                    PIIType    = $piiType
                    Count      = $matches.Count
                    SizeMB     = [math]::Round($file.Length / 1MB, 2)
                    LastWrite  = $file.LastWriteTime.ToString("yyyy-MM-dd")
                    Risk       = switch ($piiType) {
                        "Credit Card" { "CRITICAL" }
                        "CCCD/CMND VN" { "HIGH" }
                        "Date of Birth" { "HIGH" }
                        default { "MEDIUM" }
                    }
                }
            }
        }
    }
}

$report | Sort-Object Risk, PIIType | Format-Table -AutoSize
$report | Export-Csv "C:\GRC\pii-discovery-report.csv" -NoTypeInformation -Encoding UTF8

# Risk summary
Write-Host "`nPII Discovery Summary:" -ForegroundColor Yellow
$report | Group-Object Risk | Select-Object @{N="Risk";E={$_.Name}}, Count | Format-Table
KẾT QUẢ ĐẦU RA (Expected Output)
File                           PIIType        Count  SizeMB  LastWrite   Risk
----                           -------        -----  ------  ---------   ----
C:\DataScan\orders-2025.csv    Credit Card    234    2.4     2025-12-31  CRITICAL
C:\DataScan\customers.csv      CCCD/CMND VN   891    5.1     2026-01-15  HIGH
C:\DataScan\employees.csv      Date of Birth  156    0.8     2026-03-20  HIGH
C:\DataScan\crm-export.csv     Email Address  1247   8.2     2026-05-10  MEDIUM
C:\DataScan\access.log         IP Address     3421   12.6    2026-05-24  MEDIUM

PII Discovery Summary:
Risk      Count
----      -----
CRITICAL  1
HIGH      2
MEDIUM    2

Action required: Immediate remediation for CRITICAL finding (Credit Card in CSV)
LAB 02

Data Anonymization Script — Bash thực hiện k-anonymity và data masking

Platform
Linux / Ubuntu
Tools
Bash, awk, sed
Output
Anonymized CSV
Thời gian
20 phút
#!/bin/bash
# Data Anonymization & Masking for GDPR/NĐ13 compliance

INPUT="customers-raw.csv"
OUTPUT="customers-anonymized.csv"

# Create sample input data
cat > $INPUT <<'EOF'
name,email,phone,cccd,dob,zip,salary
Nguyen Van An,[email protected],0912345678,079201012345,1990-05-15,700000,25000000
Tran Thi Bich,[email protected],0987654321,031199534567,1985-11-22,550000,18000000
Le Minh Cuong,[email protected],0901122334,036200078901,2000-03-08,100000,12000000
EOF

echo "Original data:"
cat $INPUT
echo ""

# Apply anonymization techniques
awk -F',' 'BEGIN{OFS=","} NR==1{print; next} {
    # 1. Pseudonymize name (hash-like prefix + row ID)
    name = "USER_" NR-1

    # 2. Mask email (keep domain, replace local part)
    split($2, e, "@")
    email = substr(e[1],1,2) "***@" e[2]

    # 3. Mask phone (keep prefix, mask middle)
    phone = substr($3,1,4) "****" substr($3,9,4)

    # 4. Generalize CCCD (keep region code only)
    cccd = substr($4,1,3) "**********"

    # 5. Generalize date of birth (year only — k-anonymity)
    split($5, d, "-")
    dob = d[1] "-XX-XX"

    # 6. Generalize zip (round to nearest 100000)
    zip = int($6/100000) * 100000

    # 7. Suppress salary (remove sensitive field entirely)
    salary = "REDACTED"

    print name, email, phone, cccd, dob, zip, salary
}' $INPUT > $OUTPUT

echo "Anonymized data:"
cat $OUTPUT

echo ""
echo "Techniques applied:"
echo "  - Pseudonymization: name → USER_N"
echo "  - Masking: email local part, phone middle digits, CCCD digits"
echo "  - Generalization: DOB → year only, zip → 100K range"
echo "  - Suppression: salary field removed"
echo "Output: $OUTPUT (GDPR-safe for analytics use)"
KẾT QUẢ ĐẦU RA (Expected Output)
Original data:
name,email,phone,cccd,dob,zip,salary
Nguyen Van An,[email protected],0912345678,079201012345,1990-05-15,700000,25000000
...

Anonymized data:
name,email,phone,cccd,dob,zip,salary
USER_1,an***@company.com,0912****5678,079**********,1990-XX-XX,700000,REDACTED
USER_2,bi***@email.vn,0987****4321,031**********,1985-XX-XX,500000,REDACTED
USER_3,cu***@gmail.com,0901****2334,036**********,2000-XX-XX,100000,REDACTED

Techniques applied:
  - Pseudonymization: name → USER_N
  - Masking: email local part, phone middle digits, CCCD digits
  - Generalization: DOB → year only, zip → 100K range
  - Suppression: salary field removed
Output: customers-anonymized.csv (GDPR-safe for analytics use)

Tình huống doanh nghiệp — Business Scenario

CASE STUDY — VietShop E-commerce (GDPR & NĐ 13/2023)

VietShop là sàn TMĐT có 2 triệu khách hàng Việt Nam và 50,000 khách EU. Họ nhận được email từ một khách hàng Đức yêu cầu xóa toàn bộ dữ liệu cá nhân (GDPR Right to Erasure). Đồng thời, phát hiện database export chứa PII bị lưu không mã hóa trên server phát triển.

1
DSR Xử lý Right to Erasure: Verify danh tính → search trong 7 systems (CRM, order DB, marketing, analytics, backup, logs, support tickets) → xóa những gì có thể, giữ order history vì legal obligation (hóa đơn 5 năm theo Luật Kế toán). Respond trong 28 ngày.
2
PII Exposure Incident: Database export (1.2M records với name, email, phone, address) trên dev server — không mã hóa, accessible từ internet. Classify là potential breach → báo Cục A05 trong 72 giờ theo NĐ 13/2023.
3
Root Cause & Fix: Developer copy data thật sang dev environment — vi phạm data minimization. Fix: chỉ dùng anonymized data trong dev; encrypted S3 bucket cho data exports; DLP tool kiểm tra data flows.
4
Privacy by Default Implementation: New registration form: chỉ thu thập name + email + address (không phone optional). Marketing consent separate checkbox — không pre-checked. Data retention: 2 năm sau lần mua cuối, tự động xóa inactive accounts.

Tự kiểm tra — Self-Assessment (5 câu)

1. GDPR yêu cầu báo cáo data breach cho Supervisory Authority trong thời gian nào?

A. 24 giờ
B. 72 giờ ✓
C. 7 ngày
D. 30 ngày

2. Privacy by Design Principle nào yêu cầu hệ thống thu thập ít nhất dữ liệu cần thiết theo mặc định?

A. Proactive, not Reactive
B. Privacy as Default Setting ✓
C. End-to-End Security
D. Full Functionality

3. Kỹ thuật thay thế giá trị thực của dữ liệu bằng giá trị giả (có thể reverse nếu có key) được gọi là gì?

A. Anonymization
B. Pseudonymization ✓
C. Tokenization
D. Masking

Pseudonymization có thể reverse với key (vẫn là personal data theo GDPR). Anonymization không thể reverse — không còn là personal data.

4. Tổ chức phải thực hiện DPIA bắt buộc theo GDPR Art.35 trong tình huống nào sau đây?

A. Thu thập email newsletter với 100 subscribers
B. Log file trên web server
C. Hệ thống facial recognition tại nơi công cộng ✓
D. Bảng chấm công nhân viên offline

5. Nghị định 13/2023 Việt Nam yêu cầu báo cáo sự cố dữ liệu cá nhân đến cơ quan nào?

A. Bộ Thông tin và Truyền thông (MIC)
B. Cục An toàn thông tin (AIS)
C. Bộ Công an — Cục An ninh mạng (A05) ✓
D. Ủy ban Bảo vệ Dữ liệu Cá nhân (PDPC)

Frameworks & Tiêu chuẩn Quốc tế về Bảo vệ Dữ liệu

ISO/IEC 27701:2019 — Privacy Extension (PIMS)

ISO 27701 mở rộng ISO 27001 (ISMS) với các kiểm soát riêng về quyền riêng tư → tạo thành PIMS (Privacy Information Management System). Một cuộc audit duy nhất bao phủ cả bảo mật lẫn quyền riêng tư.

Annex A — PII Controller (Bên Kiểm soát)

Tổ chức xác định mục đích và phương tiện xử lý PII — tương đương Data Controller theo GDPR.

  • Purpose specification: Ghi rõ mục đích thu thập
  • Consent management: Cơ chế thu và rút đồng ý
  • Data minimization: Chỉ thu thập dữ liệu cần thiết
  • Data subject rights: Access, correction, erasure
Annex B — PII Processor (Bên Xử lý)

Tổ chức xử lý PII theo chỉ thị của Controller — tương đương Data Processor theo GDPR.

  • Contractual agreements: DPA ký với Controller
  • Sub-processor management: Kiểm soát bên xử lý phụ
  • Processing purposes: Chỉ xử lý theo chỉ thị Controller
  • Records of processing: Nhật ký xử lý PII
Lộ trình chứng chỉ ISO 27701
Bước 1: ISO 27001 (bắt buộc trước)
Bước 2: Thêm ISO 27701 extension
Bước 3: Joint audit = PIMS Certified

DPIA vs PIA — Phân biệt quan trọng

Tiêu chí PIA (Privacy Impact Assessment) DPIA (Data Protection Impact Assessment)
Jurisdiction Mỹ (NIST SP 800-122, FedRAMP) EU — GDPR Article 35
Cơ sở pháp lý Tự nguyện hoặc theo policy nội bộ Bắt buộc theo luật
Khi nào bắt buộc Agency policy, FedRAMP, E-Gov Act 2002 3 trigger: giám sát công cộng, xử lý dữ liệu nhạy cảm quy mô lớn, quyết định tự động
Output PIA Report (công bố công khai) DPIA Report + consultation DPA nếu rủi ro cao
Cơ quan quản lý OMB, agency CISO/privacy officer DPA (Data Protection Authority) quốc gia
GDPR Article 35 — Ba điều kiện bắt buộc DPIA
1. Giám sát hệ thống khu vực công cộng quy mô lớn (CCTV, tracking)
2. Xử lý dữ liệu đặc biệt quy mô lớn (sức khỏe, sinh trắc, tội phạm)
3. Quyết định tự động có ảnh hưởng pháp lý (automated profiling, credit scoring)

Quy trình DPIA: Mô tả xử lý → Đánh giá tính cần thiết/cân xứng → Xác định rủi ro → Tham vấn DPA nếu còn rủi ro cao

Frameworks Quốc tế — PDPA Singapore & DPF EU-US

🇸🇬 Singapore PDPA — 10 Nghĩa vụ
10 Nghĩa vụ cốt lõi
1. Consent
2. Purpose Limitation
3. Notification
4. Access
5. Correction
6. Accuracy
7. Protection
8. Retention Limitation
9. Transfer Limitation
10. Openness
Đặc điểm độc đáo: Do Not Call (DNC) Registry — cơ chế opt-out khỏi marketing calls/SMS, duy nhất trong khu vực Đông Nam Á.
🇪🇺🇺🇸 EU-US Data Privacy Framework (DPF, 2023)

Lịch sử: Privacy Shield bị vô hiệu hóa 2020 (Schrems II ruling). DPF 2023 thay thế, cơ sở pháp lý là Executive Order 14086 của Tổng thống Biden về tăng cường bảo vệ tín hiệu thông tin.

Cơ chế: Tự chứng nhận (self-certification) qua US Department of Commerce. Tổ chức cam kết tuân thủ nguyên tắc DPF để nhận dữ liệu từ EU hợp pháp.

Rủi ro: DPF vẫn có thể bị thách thức pháp lý (Schrems III). Tổ chức nên có Standard Contractual Clauses (SCCs) như cơ chế dự phòng.
So sánh nhanh: GDPR vs PDPA vs CCPA
Tiêu chí GDPR (EU) PDPA (Singapore) CCPA (California)
Mô hình đồng ý Opt-in (tường minh) Opt-in (implied/express) Opt-out (quyền từ chối bán)
Quyền chủ thể 8 quyền (xóa, di chuyển...) Access + Correction Biết, xóa, không bán, không phân biệt
Phạt tối đa €20M / 4% doanh thu toàn cầu SGD 1M $7,500/vi phạm cố ý
DPO bắt buộc Có (điều kiện cụ thể) Không bắt buộc Không bắt buộc
C04: Risk Management C06: Third-Party Management
Zalo