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ì.
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.
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:
- Dùng user password nếu cần bảo mật thật sự (không chỉ owner password)
- Password dài > phức tạp — "TôiYêuCàPhêSữaĐá2024" tốt hơn "X#9k"
- Gửi password qua kênh khác — file qua email, pass qua Zalo/SMS
- Chọn AES encryption — tránh RC4 (tool hiện đại đều default AES rồi)
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ụ →