Cách che thông tin nhạy cảm trong PDF đúng cách
Che (redact) một PDF là một trong những công việc trông có vẻ dễ nhưng đi sai theo những cách ngoạn mục. Vẽ một hình chữ nhật đen lên một cái tên trong Acrobat hoặc Preview che giấu cái tên về mặt thị giác nhưng để lại văn bản gốc trong tài liệu, có thể phục hồi trong vài giây bởi bất kỳ ai có một trình đọc PDF miễn phí. Các vụ rò rỉ nổi tiếng tại Liên Hợp Quốc, Bộ Tư pháp Hoa Kỳ và đội ngũ pháp lý của Manafort tất cả đều liên quan chính xác sai lầm này. Việc che chính xác loại bỏ vĩnh viễn văn bản khỏi tài liệu, điều khó hơn nghe có vẻ và được hưởng lợi từ một công cụ được xây dựng cho mục đích này.
Lịch sử ngắn về các thất bại che PDF
Các thất bại che PDF đã là một câu chuyện tin tức tái diễn trong hơn hai mươi năm. Vào tháng 5 năm 2005, quân đội Mỹ đã xuất bản một báo cáo về vụ giết hại nhà báo Ý Nicola Calipari ở Iraq với các phần nhạy cảm được "che" bằng các lớp phủ đen; các nhà báo Ý tải xuống PDF có thể chọn và sao chép văn bản bên dưới trong vài phút. Năm 2009, Bộ Tư pháp Mỹ phát hành một bản ghi nhớ về thẩm vấn nâng cao với cùng khuyết điểm. Năm 2019, đội ngũ pháp lý của Paul Manafort đã nộp một tài liệu tòa án với các vùng che màu đen trong dấu ngoặc hóa ra là các hộp trong suốt, làm lộ các chi tiết về các liên hệ của ông với Konstantin Kilimnik. Cùng năm đó, một hồ sơ bí mật của Boeing nộp cho FAA về hệ thống MCAS 737 MAX đã đến tay các phóng viên ở dạng hoàn toàn có thể đọc được vì các vùng che chỉ là hình dạng.
Mô hình này nhất quán đến mức NSA đã xuất bản hướng dẫn "Redacting with Confidence: How to Safely Publish Sanitized Reports Converted from Word to PDF" vào cuối năm 2005, và Adobe và Foxit đều phát hành các chế độ che chuyên dụng trong những năm tiếp theo. Bài học cốt lõi: một công cụ che phải xóa văn bản bên dưới và thay thế nó bằng một dấu hiệu mờ; che bằng hình chữ nhật về mặt thị giác không bao giờ là đủ.
Tại sao che văn bản về mặt thị giác lại thất bại
PDF lưu trữ một trang dưới dạng content stream: một chuỗi các toán tử vẽ đặt văn bản, đường, hình chữ nhật và hình ảnh trên trang. Khi bạn vẽ một hình chữ nhật đen lên một cái tên trong Acrobat, PDF bây giờ chứa cả toán tử văn bản (viết tên) và toán tử hình chữ nhật (vẽ hộp lên trên nó). Người xem render cả hai, theo thứ tự, tạo ra một trang nơi tên được giấu về mặt thị giác. Toán tử văn bản vẫn còn trong file, có thể lập chỉ mục, có thể sao chép và có thể phục hồi bởi bất kỳ trình phân tích PDF nào. Reader của chính Adobe sẽ cho phép bạn chọn văn bản ẩn bằng Ctrl+A và dán vào Notepad.
Các trường biểu mẫu, bình luận và metadata được lưu trữ trong các từ điển hoàn toàn riêng biệt trong PDF và không bị ảnh hưởng bởi các lớp phủ thị giác chút nào. Một PDF "đã che" mà vẫn có tên tác giả trong metadata, bình luận tham chiếu văn bản bị che theo tên, hoặc các giá trị trường biểu mẫu chứa dữ liệu gốc cũng dễ rò rỉ như một PDF có văn bản dưới một hình chữ nhật.
Cách một công cụ che thực sự hoạt động
Một việc che thực sự làm ba điều:
- Loại bỏ nội dung văn bản từ content stream tại các khu vực bị che, để bất kỳ trình phân tích nào trong tương lai thấy dấu hiệu che, không phải văn bản gốc.
- Loại bỏ bất kỳ metadata nào tham chiếu nội dung gốc, bao gồm tác giả tài liệu, người chỉnh sửa cuối, phần mềm, tên file gốc và bất kỳ trường metadata XMP tùy chỉnh nào.
- Loại bỏ các trường biểu mẫu, bình luận và file đính kèm trùng lặp hoặc tham chiếu các khu vực bị che.
- Thay thế khu vực bằng một dấu hiệu mờ (thường là một hình chữ nhật đen, đôi khi với lý do che như "[FOIA exemption b6]") được vẽ lên trên nội dung giờ đã trống.
Các công cụ che dựa trên trình duyệt sử dụng pdf-lib hoặc PDF.js có thể làm tất cả điều này trong JavaScript mà không cần tải lên file. PDF đã che được xây dựng lại cục bộ và được cung cấp dưới dạng tải xuống. Vì bản gốc không bao giờ rời thiết bị của bạn, bảo đảm về quyền riêng tư là toàn diện.
Cách che một PDF, từng bước
- Tải lên PDF. Thả file lên trang. Công cụ đọc nó vào bộ nhớ và hiển thị trang đầu tiên để xem trước. Không có gì được tải lên.
- Tìm những gì cần che. Sử dụng tìm kiếm văn bản để tìm tên, số tài khoản, ngày sinh, địa chỉ, hoặc bất kỳ chuỗi nhạy cảm tái diễn nào khác. Công cụ làm nổi bật mọi lần xuất hiện.
- Đánh dấu các khu vực che. Nhấp và kéo để vẽ một hình chữ nhật, hoặc nhấp "che tất cả các kết quả khớp" để áp dụng dấu hiệu cho mọi trường hợp được tìm thấy cùng một lúc.
- Tùy chọn thêm nhãn lý do. Quy trình của chính phủ (FOIA, GDPR Điều 17, HIPAA) thường yêu cầu việc che phải được dán nhãn với cơ sở pháp lý. Gõ nhãn và nó sẽ được vẽ bên trong hình chữ nhật.
- Áp dụng việc che. Đây là bước then chốt: nó vĩnh viễn xóa văn bản dưới các hình chữ nhật khỏi content stream, làm sạch metadata, và lưu một PDF mới với các dấu hiệu được đốt vào.
- Xác minh kết quả. Mở PDF đã che, thử Ctrl+A rồi Ctrl+C và dán vào trình soạn thảo văn bản. Bạn nên thấy các nhãn che (hoặc không có gì) ở nơi văn bản gốc từng ở, không bao giờ thấy văn bản gốc.
Cần che những gì
Các trường hợp rõ ràng là tên, địa chỉ, số điện thoại, địa chỉ email và số tài khoản. Những trường hợp ít rõ ràng hơn gây ra phần lớn các rò rỉ trong thế giới thực:
| Danh mục | Cần tìm gì |
|---|---|
| Định danh trực tiếp | Tên, địa chỉ, số điện thoại, địa chỉ email, số an sinh xã hội |
| Tài chính | Số tài khoản, số thẻ tín dụng, IBAN, số routing, số dư |
| Sức khỏe | Chẩn đoán, thuốc, ngày điều trị, ID bệnh nhân, số bảo hiểm |
| Chính phủ | Số vụ án, định danh nguồn, ngày và thời gian hoạt động, vị trí |
| Định danh gián tiếp | Chức danh + chủ sử dụng lao động + thành phố (định danh duy nhất), mô tả phương tiện độc đáo, tình trạng y tế đặc biệt |
| Metadata | Tác giả tài liệu, tên file gốc, người chỉnh sửa cuối, phiên bản phần mềm, tổng thời gian chỉnh sửa |
| Bình luận | Bình luận của người đánh giá, chú thích "H: ai là người này?", các thay đổi được theo dõi |
| Trường biểu mẫu | Các giá trị được điền sẵn, ngay cả từ các phiên bản trước |
| File đính kèm | Các file nhúng được tài liệu tham chiếu |
| Khu vực hình ảnh | Tên trên ảnh chụp màn hình, khuôn mặt trong ảnh, biển số xe, địa chỉ trên phong bì |
Hàng cuối cùng đặc biệt quan trọng: ảnh chụp màn hình của một CRM hiển thị một bản ghi khách hàng, được nhúng trong PDF dưới dạng hình ảnh raster, sẽ không được che bởi các công cụ lớp văn bản. Bản thân hình ảnh phải được sơn phủ lên.
Các cạm bẫy phổ biến
- Đặt hộp đen trong Word và xuất lại sang PDF. Văn bản dưới hộp vẫn ở trong tài liệu Word và sống sót sau khi xuất. Ngay cả khi trang hiển thị của bạn trông sạch sẽ, content stream PDF chứa văn bản gốc.
- Sử dụng làm nổi bật + đổi màu sang đen. Làm nổi bật là một chú thích bình luận, không phải là một thay đổi content stream. Bất kỳ ai cũng có thể loại bỏ chú thích để hiển thị bản gốc.
- Quên metadata. Một bản ghi nhớ đã che với "Tác giả: John Smith" trong thuộc tính tài liệu cho bạn biết ai đã viết nó, ngay cả khi mọi tên trong thân tài liệu đã được che.
- Quên bình luận. Người đánh giá Adobe và PDFelement thường thêm bình luận tham chiếu các tên đang được che trong thân tài liệu. Loại bỏ tất cả bình luận.
- Quên lịch sử trường biểu mẫu. Các biểu mẫu PDF đã điền có thể mang các giá trị của các lần nộp biểu mẫu trước đó trong từ điển AcroForm của chúng. Làm phẳng loại bỏ trường, nhưng giá trị có thể vẫn còn trong lịch sử tài liệu.
- Không che hình ảnh của văn bản. OCR tài liệu, xác định các hộp giới hạn văn bản, sau đó sơn phủ các khu vực đó trong bản thân hình ảnh, không chỉ trong lớp văn bản OCR.
- Nhầm lẫn print-to-PDF với che. In ra PDF raster hóa trang, điều này thực sự loại bỏ lớp văn bản, nhưng tạo ra một file lớn hơn nhiều và mất khả năng tìm kiếm. Đó là một giải pháp nặng tay, không phải một việc che.
- Vô tình chia sẻ bản gốc. Luôn đổi tên file đã che với một hậu tố rõ ràng (
-redacted.pdf) để bạn không thể vô tình đính kèm bản gốc. - Chỉ tin vào đánh giá thị giác. PDF đã che có thể trông hoàn hảo và vẫn rò rỉ. Luôn kiểm tra bằng cách chọn tất cả văn bản và sao chép, bằng cách trích xuất metadata với
pdfinfohoặcexiftool, và bằng cách kiểm tra kích thước file so với bản gốc. - "Che" dựa trên quyền. Khóa một PDF bằng mật khẩu hoặc hạn chế sao chép không phải là che. Dữ liệu vẫn ở trong file và các hạn chế chỉ là khuyến cáo; các công cụ loại bỏ mật khẩu PDF chỉ cách một cú nhấp chuột.
Các công cụ và quy trình thay thế
| Công cụ | Điểm mạnh | Cần chú ý |
|---|---|---|
| Browser PDF redactor (công cụ này) | Cục bộ, không tải lên, miễn phí | Chậm hơn các công cụ gốc trên các PDF rất lớn |
| Adobe Acrobat Pro | Tiêu chuẩn ngành, che hàng loạt, dấu vết audit có chữ ký | Trả phí, xử lý cục bộ nhưng vendor lock-in |
| Foxit PhantomPDF | Rẻ hơn Adobe, bộ tính năng tương tự | Một số việc che ở cấp đăng ký |
| qpdf (CLI) | Mạnh mẽ, có thể script, miễn phí | Không phải công cụ che thực sự, bạn phải kết hợp với pdftotext + sed để loại bỏ văn bản |
| pdftk | Phổ biến cho việc chia tách và gộp | Không bao gồm che; đừng sử dụng nó để loại bỏ dữ liệu nhạy cảm |
| Rasterization in-sang-PDF | Loại bỏ lớp văn bản theo thiết kế | Kích thước file khổng lồ, mất khả năng tìm kiếm, dấu vết cấp hình ảnh có thể còn lại |
| Dịch vụ "che" trực tuyến | UI nhanh chóng | Tải lên máy chủ bên thứ ba; xem xét chính sách lưu giữ và quyền riêng tư của họ |
Đối với một lần nộp đơn pháp lý hoặc đơn xin việc, công cụ trình duyệt là câu trả lời đúng. Đối với việc che hàng loạt hàng trăm yêu cầu FOIA, Acrobat Pro hoặc một pipeline qpdf + pdftotext được script tự trả lại chính nó. Đối với việc che các bản scan có nhiều hình ảnh, hãy chạy OCR trước rồi che các hộp giới hạn cả trong lớp văn bản OCR và raster cơ bản.
Danh sách kiểm tra xác minh trước khi chia sẻ
Trước khi bạn gửi một PDF đã che ra ngoài đội của bạn, hãy chạy qua danh sách kiểm tra này:
- Chọn tất cả văn bản (Ctrl+A) và sao chép vào trình soạn thảo văn bản. Các chuỗi đã che không nên xuất hiện.
- Mở metadata:
exiftool file.pdfhoặc sử dụng hộp thoại thuộc tính của trình xem PDF. Tác giả, người tạo, người chỉnh sửa cuối, tên file gốc, các trường XMP tùy chỉnh đều phải trống hoặc ẩn danh. - Kiểm tra bình luận và chú thích một cách rõ ràng. Bảng bình luận Acrobat, danh sách chú thích của Preview, hoặc
pdftotext -layoutsẽ làm nổi tất cả chúng. - Xác nhận kích thước file nhỏ hơn đáng kể so với bản gốc (văn bản và metadata đã loại bỏ nên giảm kích thước). Một PDF đã che có kích thước byte giống bản gốc là đáng ngờ.
- Đối với tài liệu có hình ảnh: mở trong trình xem hình ảnh và phóng to vào các khu vực đã che. Một số trình xem tiết lộ nội dung hình ảnh dưới các lớp phủ.
- Đối với tài liệu nhiều trang: kiểm tra điểm ít nhất là trang đầu tiên, cuối cùng và ba trang giữa ngẫu nhiên. Tìm kiếm các tên đã che lần nữa để chắc chắn không có lần xuất hiện nào bị bỏ sót.
Quyền riêng tư và redactor
Browser PDF redactor chạy hoàn toàn trong bộ nhớ thiết bị của bạn. File bạn thả được đọc bởi File API, được phân tích bởi pdf-lib hoặc PDF.js trong JavaScript, được render lại với các việc che được áp dụng, và được cung cấp lại dưới dạng tải xuống. Không có gì được tải lên, không có gì được ghi nhật ký, không có gì được cache phía máy chủ. Đối với tài liệu nhạy cảm (hồ sơ tòa án, hồ sơ y tế, phản hồi FOIA, thông báo vi phạm), luồng chỉ-cục-bộ đó là sự khác biệt giữa một việc che bạn kiểm soát và một việc che bạn phải tin tưởng người khác xử lý đúng cách. Toàn bộ công cụ có thể chạy ngoại tuyến sau khi trang được tải, điều bạn có thể xác minh bằng cách ngắt kết nối mạng và che một file khác.
Câu hỏi thường gặp
Is drawing a black box over text in a PDF editor enough to redact it?
No. Drawing a black rectangle over text only hides the text visually. The underlying characters remain in the PDF and can be recovered by copying, by selecting the text under the rectangle, or by extracting the text layer with any PDF parser. Proper redaction removes the text from the document and replaces it with an opaque shape.
What kinds of information can be recovered from a poorly redacted PDF?
Text content (even if covered visually), embedded metadata (author, last editor, software, original filename), revision history if the PDF was saved with track changes, comments, form field values, attached files, and sometimes raster image previews that show the original page before the redaction overlay.
Does flattening a PDF redact it?
Flattening merges layers and removes form fields, but does not by itself remove the text under a drawn rectangle. The text content remains in the content stream. You must explicitly delete the text, not just cover it.
How do I redact text that appears as part of an image (a scan)?
For scanned documents, run OCR first to detect the text positions, then redact those regions in the underlying image (not just the OCR layer). Some tools let you paint over the image with a solid colour at the redaction location, which is the correct approach for raster content.
What standards define proper PDF redaction?
The U.S. National Security Agency published "Redacting with Confidence" in 2005-2006, after several high-profile failed redactions led to leaks. Adobe's PDF Reference and the ISO 32000-1 PDF specification describe content streams in enough detail to confirm that visually covering text does not remove it. The CIA, FBI, and most government agencies now require the use of dedicated redaction tools that destroy the underlying content, not just hide it.