Bảo mật PDF thực sự an toàn? AES-128 vs 256, owner vs user password

AES-128 vs AES-256, owner password vs user password. Tại sao "gỡ mật khẩu" hoạt động và giới hạn bảo mật PDF.

Đồng nghiệp mình hay đặt password PDF rồi yên tâm: "Có pass rồi, ai mở được". Nhưng mà... password PDF có 2 loại, và 1 loại gần như vô dụng. Mình từng gỡ owner password một file PDF trong đúng 3 giây bằng tool online miễn phí. Không hack gì hết — vì owner password chỉ là 1 cái flag.

Bài này mình giải thích rõ cơ chế bảo mật PDF, cái nào thật sự an toàn, cái nào chỉ là "khóa giấy".

2 loại password trong PDF

Loại Tên gọi Tác dụng Mức an toàn
User password Open password / Document password Mã hóa toàn bộ file. Không có pass = không mở được, không đọc được CAO — file thực sự bị encrypt
Owner password Permissions password / Master password Hạn chế quyền: cấm print, cấm copy text, cấm edit THẤP — chỉ là flag, dễ gỡ

Tại sao owner password gần như vô dụng?

Owner password hoạt động thế này: file PDF vẫn đọc được bình thường (không bị encrypt), nhưng trong metadata có ghi "permissions: no-print, no-copy". Phần mềm đọc PDF (Adobe Reader, Foxit) sẽ respect flag này và disable nút Print/Copy.

Vấn đề: flag này chỉ là gợi ý, không phải bắt buộc. Bất kỳ phần mềm nào không respect flag (hoặc cố tình bỏ qua) đều đọc/copy/in được. Các tool online remove owner password đơn giản bằng cách xóa permission flag trong file — done, không cần crack gì.

Thực nghiệm: Mình tạo file PDF có owner password "cấm copy text". Upload lên tool online (có hàng chục tool free) — 3 giây sau download file mới, copy text bình thường. File không bị encrypt nên tool chỉ cần edit metadata.

Vậy owner password dùng để làm gì? Nó chỉ ngăn người dùng phổ thông không biết cách tìm tool gỡ. Kiểu như khóa cửa bằng dây thun — ai muốn vào thì dứt dây là xong, nhưng ít nhất người ta biết bạn không muốn họ vào.

User password — mã hóa thật sự

User password (open password) hoàn toàn khác. Khi đặt user password, toàn bộ nội dung file bị encrypt bằng thuật toán mã hóa. Không có password = không giải mã được = không đọc được gì.

PDF hỗ trợ 2 thuật toán chính:

Thuật toán Có từ PDF version Key length Mức an toàn hiện tại
RC4 40-bit PDF 1.1 40 bit RẤT YẾU — crack được trong vài phút
RC4 128-bit PDF 1.4 128 bit YẾU — RC4 có lỗ hổng đã biết
AES-128 PDF 1.5 128 bit KHỎE — chưa bị crack
AES-256 PDF 2.0 256 bit RẤT KHỎE — chuẩn quân sự

AES-128 vs AES-256 — có cần 256?

Câu trả lời ngắn: AES-128 đã đủ an toàn cho mọi mục đích thực tế. AES-256 tốt hơn trên lý thuyết nhưng không có sự khác biệt thực tế ở thời điểm hiện tại.

Tính nhanh: brute force AES-128 cần thử 2^128 keys. Siêu máy tính nhanh nhất thế giới (Frontier, ~10^18 phép tính/giây) cần khoảng 10^21 năm để thử hết. AES-256 thì cần 10^57 năm. Cả hai đều "không thể" với công nghệ hiện tại.

Tuy nhiên, điểm yếu không nằm ở thuật toán — mà nằm ở password.

Thời gian brute force — phụ thuộc password

Dù file dùng AES-256, nếu password là "123456" thì crack trong 1 giây. Vì attacker không brute force key space (2^256) — họ brute force password space.

Loại password Ví dụ Thời gian crack (GPU)
6 chữ số 123456 < 1 giây
6 chữ cái thường abc123 ~5 giây
8 ký tự mix P@ss1234 ~2 ngày
12 ký tự mix Kh0ng$Crack! ~200 năm
16+ ký tự random xK9#mL2$pQ7&nR4! Không khả thi

Hashcat (tool crack password phổ biến) xử lý PDF AES-128 ở tốc độ ~100,000 password/giây trên 1 GPU RTX 3090. AES-256 chậm hơn (~50,000/giây) nhưng không đáng kể nếu password yếu.

Khuyến nghị: Password PDF tối thiểu 12 ký tự, mix chữ hoa/thường/số/đặc biệt. Hoặc dùng passphrase dài: "ConMeoDenNgoi@BanSo5" — dài, dễ nhớ, khó crack.

Giới hạn bảo mật PDF — những thứ password không bảo vệ được

  • Screenshot: Mở file xong chụp màn hình — không password nào ngăn được
  • Memory dump: File đã decrypt trong RAM có thể bị extract
  • Social engineering: Người nhận chia sẻ password cho người khác
  • Print → scan: In ra, scan lại = file PDF mới không có password
  • Metadata leak: Một số viewer hiện tiêu đề, author dù file bị lock

PDF password bảo vệ được: đọc nội dung file khi file nằm trên ổ cứng/email/cloud mà attacker chỉ có access vào file (không phải vào máy đang mở file).

Khi nào dùng loại nào?

Tình huống Nên dùng Lý do
File lương, hợp đồng gửi qua email User password (AES-128/256) Cần mã hóa thật sự — email không an toàn
File marketing cấm copy text Owner password Ngăn user phổ thông, chấp nhận không an toàn tuyệt đối
File nội bộ cấm in Owner password (hoặc DRM nếu quan trọng) Owner password đủ cho nội bộ, DRM cho trường hợp nghiêm túc
Tài liệu mật User password + gửi pass qua kênh riêng Không gửi file và pass cùng 1 email

Cách đặt password hiệu quả

Khi đặt mật khẩu PDF, nhớ mấy điều:

  1. Dùng user password nếu cần bảo mật thật sự (không chỉ owner password)
  2. Password dài > phức tạp — "TôiYêuCàPhêSữaĐá2024" tốt hơn "X#9k"
  3. Gửi password qua kênh khác — file qua email, pass qua Zalo/SMS
  4. Chọn AES encryption — tránh RC4 (tool hiện đại đều default AES rồi)
Fun fact: Nhiều cơ quan VN gửi file PDF có password... rồi ghi password ngay trong email: "Pass là 123456". Điều này vô nghĩa hoàn toàn — ai đọc được email = đọc được cả file. Luôn gửi password qua kênh riêng biệt.

Tóm lại

Bảo mật PDF có 2 level rõ ràng: owner password (hạn chế quyền, dễ gỡ, chỉ ngăn user thường) và user password (mã hóa thật, an toàn nếu password mạnh). Đừng nhầm lẫn 2 cái này — đặt owner password mà nghĩ file an toàn là sai lầm phổ biến nhất mình thấy.

AES-128 hay 256 đều đủ an toàn — điểm yếu luôn là con người chọn password yếu, không phải thuật toán.

Dùng ngay: Đặt mật khẩu bảo vệ PDF — Mã hóa AES 256-bit

Đặt mật khẩu bảo vệ file PDF online miễn phí. Mã hóa AES 256-bit. Khóa mở file, chặn in ấn, copy, chỉnh sửa. Nhanh và bảo mật — file tự xóa sau 1 giờ.

Mở công cụ →

Bài viết liên quan

OCR engine so sánh: Tesseract vs EasyOCR vs PaddleOCR — tiếng Việt So sánh 3 engine OCR cho tiếng Việt: kiến trúc, ưu nhược, tốc độ, độ chính xác trên văn bản Việt. PDF/A lưu trữ dài hạn: 1b vs 2b vs 3b — yêu cầu lưu trữ Việt Nam PDF/A-1b vs 2b vs 3b: khác biệt, use case, và yêu cầu lưu trữ theo Luật Lưu trữ 2024 Việt Nam. Lossy vs Lossless nén PDF: JPEG vs FLATE — khi nào mất dữ liệu là OK JPEG (DCT) vs FLATE (zlib) trong PDF. Khi nào nén mất dữ liệu chấp nhận được, khi nào phải giữ nguy… Font embedding trong PDF: tại sao lỗi font và cách fix triệt để Embedded vs subset vs system font. Tại sao PDF bị lỗi font tiếng Việt và cách đảm bảo font hiển thị…