Перейти к содержимому
PDFLeanДокументация
Перейти на Pro

Удаление SSN из PDF

Номера социального страхования (SSN) — классический пример для удаления: SSN короткий, его легко не заметить, он однозначно идентифицирует человека и наносит непоправимый ущерб в случае утечки. Если вы готовите документы для суда, запрос на предоставление публичной информации, договор с поставщиком или страховой пакет, фраза «я закрыл это чёрным квадратом» — это не защита, а закладка для тех, кто знает, как искать. Вот как на самом деле работает удаление конфиденциальных данных и как это сделать без загрузки документа куда-либо.

Критическая ошибка: рисование чёрного квадрата

Заголовок раздела «Критическая ошибка: рисование чёрного квадрата»

Первый порыв — открыть PDF-редактор, нарисовать чёрный прямоугольник поверх конфиденциального текста и сохранить. Это неизменно приводит к провалу, и причина кроется в самом формате PDF.

PDF хранит два параллельных представления текста. Существует видимый слой — глифы, которые отрисовываются на экране, — и текстовый слой, фактические коды символов, которые находятся в потоке содержимого страницы и читаются встроенным поиском, функциями копирования-вставки и программами чтения с экрана. Когда вы рисуете чёрный квадрат, вы изменяете только видимый слой. Текстовый слой под ним остаётся совершенно нетронутым, и любой может выделить «удалённый» фрагмент, скопировать его или экспортировать текст и прочитать SSN в открытом виде. Хуже того, некоторые функции «удаления» в базовых редакторах — это буквально просто прямоугольники с тёмной заливкой.

Этот тип сбоя имеет название в сфере электронного раскрытия информации (e-discovery): он называется утечкой метаданных / текстового слоя, и из-за него были раскрыты засекреченные документы в реальных судебных делах. Если ваше удаление можно обойти с помощью Ctrl+A, Ctrl+C, то это не удаление.

Подлинное удаление убирает текст из самого потока содержимого. Символы физически удаляются из файла, и только после этого визуальная область скрывается. После настоящего удаления:

  • Выделение области ничего не выделяет.
  • Копирование-вставка не возвращает скрытый текст.
  • Поиск SSN в файле находит ноль совпадений.
  • Коды символов больше не существуют в байтах файла.

Любой инструмент, который делает меньше, чем это, не удаляет данные, и эту разницу можно проверить за секунды (об этом ниже).

Другая классическая ошибка: удаление SSN на странице 4 и оставление идентичного номера на странице 12 — в колонтитуле, блоке подписи или приложении. Тщательная работа начинается со сканирования по шаблону, а не с ручного прочтения.

Американский SSN соответствует предсказуемому шаблону (девять цифр, часто сгруппированных 3-2-4), что означает, что его можно найти программно — наряду с другими идентификаторами высокого риска: номерами паспортов и национальных удостоверений личности, номерами кредитных карт, номерами телефонов, адресами электронной почты и реквизитами банковских счетов. Инструмент PDFLean для удаления PII выполняет это сканирование локально: он обнаруживает кандидатов по шаблону SSN, ID, телефону, карте и электронной почте в браузере, показывает каждого из них в контексте и позволяет подтвердить или отклонить перед удалением. Пользовательские ключевые слова (кодовое имя проекта, имя контрагента) можно добавить в тот же проход.

Важен шаг «показать каждое совпадение в контексте и дать пользователю подтвердить»: одно лишь сопоставление по шаблону пометит множество безобидных девятизначных чисел. Удаление необратимо, поэтому человек должен одобрить каждое совпадение.

  1. Откройте инструмент PII Redaction. Все сканирование выполняется в вашем браузере.
  2. Загрузите PDF. Он попадает только в локальную память — ничего не передаётся.
  3. Проверьте обнаруженных кандидатов (SSN, ID, телефон, карта, электронная почта, пользовательские ключевые слова). Включите или выключите каждое совпадение в зависимости от окружающего контекста.
  4. Запустите удаление. Инструмент удаляет коды символов из потока содержимого и скрывает затронутые области.
  5. Проверьте (следующий раздел — не пропускайте).
  6. Сохраните отредактированную копию.

Для целенаправленного удаления — одного конкретного имени или значения, которое вы уже знаете, — инструмент для ручного удаления Redact PDF принимает список ключевых слов и удаляет каждое совпадение таким же образом.

Шаг проверки, который почти все пропускают

Заголовок раздела «Шаг проверки, который почти все пропускают»

Заявления об удалении ничего не стоят; доказательством служит проверка. На выходном файле выполните все три действия:

  1. Тест поиска. Откройте сохранённый PDF и найдите точный SSN (попробуйте с дефисами и без них: 123-45-6789 и 123456789). Ноль совпадений — единственный приемлемый результат.
  2. Тест выделения. Выделите удалённую область перетаскиванием и скопируйте. Если в вашем буфере обмена появились цифры, текстовый слой уцелел.
  3. Тест извлечения текста. Экспортируйте весь текст (Text Extractor делает это локально) и выполните поиск в дампе. Если номер появляется где-либо, удаление неполное — скорее всего, есть вторая копия на другой странице.

Делайте это на финальном сохранённом файле, а не в предпросмотре в приложении. Предпросмотр рендерится из текущего состояния; правду говорят только сохранённые байты.

Текстовое содержимое — очевидная цель, но метаданные PDF — более незаметная. Свойства документа — автор, название, тема, программа, которая его создала, а иногда и пользовательские поля — могут содержать имена, ID и внутренние пути из приложения, в котором документ был создан. Документ, полностью прошедший удаление данных, с полем Author: J. Smith, SSN 123-45-6789 в свойствах всё ещё допускает утечку.

Удалите метаданные в качестве последнего шага любой работы по удалению, а если файл отправляется во враждебную среду (публичная подача, ответ на запрос FOIA), инструмент Sanitize удаляет встроенные скрипты, скрытые действия и другой активный контент в том же духе.

Когда удаление — неподходящий инструмент

Заголовок раздела «Когда удаление — неподходящий инструмент»

Удаление данных навсегда уничтожает исходный текст. Если вам нужно будет раскрыть номер позже (внутренняя команда, которой нужен оригинал без удаления данных), храните отдельную копию оригинала в контролируемом хранилище и удаляйте данные только из той копии, которую вы распространяете. Распространяемым файлом должна быть именно очищенная копия; мастер-копия остаётся там, где уже хранятся ваши конфиденциальные документы.

Для форм, которые используются повторно, лучшим подходом часто является удаление на копии (redact-on-copy): сохраняйте оригинал в чистоте и создавайте версию с удалёнными данными для каждого внешнего получателя, чтобы ни одна ошибка удаления не распространялась обратно в ваш исходный документ.

Могу ли я удалить данные из отсканированного PDF? Вы можете закрыть видимое изображение, но у скана нет текстового слоя для удаления — сначала распознайте его с помощью OCR (PDF OCR), удалите восстановленный текст, а затем решите, сохранить или свести слой изображения. Чёрный квадрат поверх скана достаточен, только если пиксели скана действительно уничтожены, а не просто закрашены.

Можно ли отменить удаление данных? Нет — в этом и весь смысл. Байты исчезли. Вот почему важно подтверждать каждого обнаруженного кандидата перед запуском и почему вы сохраняете чистую мастер-копию.

Считается ли защита паролем удалением данных? Нет. Шифрование контролирует доступ; удаление убирает содержимое. Защищённый паролем PDF с неудалённым SSN всё ещё содержит SSN, и любой, у кого есть пароль (или взлом), его прочитает.

Почему кнопка «удалить» в моём инструменте просто создаёт чёрный квадрат? Многие базовые редакторы реализуют выделение/обводку в стиле аннотаций, а не истинное удаление из потока содержимого. Если после обработки инструмент не может показать результат, который не находится поиском, — он рисует, а не удаляет.


Вся работа сводится к одному проверяемому утверждению: после того, как вы закончите, конфиденциальные символы не должны существовать в файле. Ищите их, выделяйте, извлекайте текст — если что-либо из этого находит номер, удаление не удалось. Нарисуйте квадрат, удалите байты, проверьте сохранённый файл, очистите метаданные и сохраняйте чистую мастер-копию. Эта последовательность — и ничего меньше — и есть то, что означает «данные удалены».