Удаление 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, телефону, карте и электронной почте в браузере, показывает каждого из них в контексте и позволяет подтвердить или отклонить перед удалением. Пользовательские ключевые слова (кодовое имя проекта, имя контрагента) можно добавить в тот же проход.
Важен шаг «показать каждое совпадение в контексте и дать пользователю подтвердить»: одно лишь сопоставление по шаблону пометит множество безобидных девятизначных чисел. Удаление необратимо, поэтому человек должен одобрить каждое совпадение.
Шаг за шагом: удаление без загрузки
Заголовок раздела «Шаг за шагом: удаление без загрузки»- Откройте инструмент PII Redaction. Все сканирование выполняется в вашем браузере.
- Загрузите PDF. Он попадает только в локальную память — ничего не передаётся.
- Проверьте обнаруженных кандидатов (SSN, ID, телефон, карта, электронная почта, пользовательские ключевые слова). Включите или выключите каждое совпадение в зависимости от окружающего контекста.
- Запустите удаление. Инструмент удаляет коды символов из потока содержимого и скрывает затронутые области.
- Проверьте (следующий раздел — не пропускайте).
- Сохраните отредактированную копию.
Для целенаправленного удаления — одного конкретного имени или значения, которое вы уже знаете, — инструмент для ручного удаления Redact PDF принимает список ключевых слов и удаляет каждое совпадение таким же образом.
Шаг проверки, который почти все пропускают
Заголовок раздела «Шаг проверки, который почти все пропускают»Заявления об удалении ничего не стоят; доказательством служит проверка. На выходном файле выполните все три действия:
- Тест поиска. Откройте сохранённый PDF и найдите точный SSN (попробуйте с дефисами и без них:
123-45-6789и123456789). Ноль совпадений — единственный приемлемый результат. - Тест выделения. Выделите удалённую область перетаскиванием и скопируйте. Если в вашем буфере обмена появились цифры, текстовый слой уцелел.
- Тест извлечения текста. Экспортируйте весь текст (Text Extractor делает это локально) и выполните поиск в дампе. Если номер появляется где-либо, удаление неполное — скорее всего, есть вторая копия на другой странице.
Делайте это на финальном сохранённом файле, а не в предпросмотре в приложении. Предпросмотр рендерится из текущего состояния; правду говорят только сохранённые байты.
И еще одно: метаданные
Заголовок раздела «И еще одно: метаданные»Текстовое содержимое — очевидная цель, но метаданные PDF — более незаметная. Свойства документа — автор, название, тема, программа, которая его создала, а иногда и пользовательские поля — могут содержать имена, ID и внутренние пути из приложения, в котором документ был создан. Документ, полностью прошедший удаление данных, с полем Author: J. Smith, SSN 123-45-6789 в свойствах всё ещё допускает утечку.
Удалите метаданные в качестве последнего шага любой работы по удалению, а если файл отправляется во враждебную среду (публичная подача, ответ на запрос FOIA), инструмент Sanitize удаляет встроенные скрипты, скрытые действия и другой активный контент в том же духе.
Когда удаление — неподходящий инструмент
Заголовок раздела «Когда удаление — неподходящий инструмент»Удаление данных навсегда уничтожает исходный текст. Если вам нужно будет раскрыть номер позже (внутренняя команда, которой нужен оригинал без удаления данных), храните отдельную копию оригинала в контролируемом хранилище и удаляйте данные только из той копии, которую вы распространяете. Распространяемым файлом должна быть именно очищенная копия; мастер-копия остаётся там, где уже хранятся ваши конфиденциальные документы.
Для форм, которые используются повторно, лучшим подходом часто является удаление на копии (redact-on-copy): сохраняйте оригинал в чистоте и создавайте версию с удалёнными данными для каждого внешнего получателя, чтобы ни одна ошибка удаления не распространялась обратно в ваш исходный документ.
Часто задаваемые вопросы
Заголовок раздела «Часто задаваемые вопросы»Могу ли я удалить данные из отсканированного PDF? Вы можете закрыть видимое изображение, но у скана нет текстового слоя для удаления — сначала распознайте его с помощью OCR (PDF OCR), удалите восстановленный текст, а затем решите, сохранить или свести слой изображения. Чёрный квадрат поверх скана достаточен, только если пиксели скана действительно уничтожены, а не просто закрашены.
Можно ли отменить удаление данных? Нет — в этом и весь смысл. Байты исчезли. Вот почему важно подтверждать каждого обнаруженного кандидата перед запуском и почему вы сохраняете чистую мастер-копию.
Считается ли защита паролем удалением данных? Нет. Шифрование контролирует доступ; удаление убирает содержимое. Защищённый паролем PDF с неудалённым SSN всё ещё содержит SSN, и любой, у кого есть пароль (или взлом), его прочитает.
Почему кнопка «удалить» в моём инструменте просто создаёт чёрный квадрат? Многие базовые редакторы реализуют выделение/обводку в стиле аннотаций, а не истинное удаление из потока содержимого. Если после обработки инструмент не может показать результат, который не находится поиском, — он рисует, а не удаляет.
Вся работа сводится к одному проверяемому утверждению: после того, как вы закончите, конфиденциальные символы не должны существовать в файле. Ищите их, выделяйте, извлекайте текст — если что-либо из этого находит номер, удаление не удалось. Нарисуйте квадрат, удалите байты, проверьте сохранённый файл, очистите метаданные и сохраняйте чистую мастер-копию. Эта последовательность — и ничего меньше — и есть то, что означает «данные удалены».