Redakcja to nie czarny prostokąt
Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5
W skrócie
Dział zatytułowany „W skrócie”Czarny prostokąt narysowany nad nazwiskiem niczego nie ukrywa. Strona wygląda na zredagowaną, ale tekst pod spodem wciąż tam jest, wciąż zaznaczalny, wciąż kopiowalny. Prawdziwa redakcja nie zakrywa treści. Usuwa ją.
Ta strona wyjaśnia lukę między kosmetyczną nakładką a prawdziwym usunięciem treści, dlaczego metadane i pliki osadzone przeżywają naiwną robotę oraz jak enterprise’owy RedactionEngine NextPDF odmawia udawania, że region zniknął, gdy nie może go faktycznie usunąć.
Dlaczego to ma znaczenie
Dział zatytułowany „Dlaczego to ma znaczenie”Najczęściej cytowane wycieki danych z plików PDF nie były sprytnymi atakami. Były czarnymi prostokątami. Ktoś narysował wypełnione pudełko nad wrażliwym akapitem, wyeksportował plik i wysłał go. Odbiorca nacisnął pudełko, przeciągnął po nim, a oryginalne słowa skopiowały się wprost z dokumentu do schowka.
Powód jest strukturalny. Strona PDF to zbiór operatorów rysowania ułożonych w kolejności. Namalowanie nieprzezroczystego prostokąta dodaje jeszcze jeden operator na wierzch; nie usuwa operatora wyświetlania tekstu pod spodem. Dla oka tekst jest ukryty. Dla maszyny jest dokładnie tam, gdzie zawsze był. Nakładka to kostium, a kostium da się zdjąć.
To kosztowne, ponieważ niepowodzenie jest ciche i ostateczne. Dokument wygląda poprawnie, przechodzi przegląd wizualny i zostaje opublikowany. Wyciek jest odkrywany później przez kogoś, kto zaznaczył tekst, a do tego czasu każda kopia jest już na zewnątrz.
Wersja skrócona
Dział zatytułowany „Wersja skrócona”- Czarne pudełko to operacja rysowania nałożona na tekst, a nie jego usunięcie. Bajty przeżywają.
- Zaznaczalny tekst przeżywa, ponieważ strumień treści strony wciąż niesie glify, które rysują słowa.
- Metadane dokumentu przeżywają, ponieważ żyją w osobnym miejscu — słowniku informacji o dokumencie oraz pakiecie XMP — którego żaden prostokąt na stronie nie sięga.
- Pliki osadzone przeżywają, ponieważ PDF może nieść w sobie całe pliki jako strumienie plików osadzonych. Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11 Znak na stronie nigdy nie dotyka załącznika.
- Prawdziwa redakcja jest destrukcyjna. Usuwa treść ze strumienia bajtów, a nie z obrazu. Co zniknęło, to zniknęło, a powierzchnie pozostałości też są oczyszczone.
Jak podchodzi do tego NextPDF
Dział zatytułowany „Jak podchodzi do tego NextPDF”Kosmetyczne kontra destrukcyjne, dokładnie
Dział zatytułowany „Kosmetyczne kontra destrukcyjne, dokładnie”Kosmetyczna nakładka zmienia to, jak strona wygląda. Destrukcyjna redakcja zmienia to, co dokument zawiera. Pierwszą może odwrócić każdy z kursorem tekstowym. Druga nie pozostawia niczego do odzyskania.
Enterprise’owy RedactionEngine NextPDF jest zbudowany dla przypadku
destrukcyjnego na poziomie treści tekstowej. Jego metoda redact() bierze
treść, RedactionPolicy opisującą, co znaleźć i jak to zastąpić, i zwraca
RedactionResult. Wewnątrz wykrywa wrażliwe zakresy, scala wszelkie nakładające
się w rozłączne pokrywające zakresy, a następnie przepisuje łańcuch treści za
pomocą substr_replace, tak by każdy pokryty bajt został usunięty dokładnie raz.
Wrażliwy tekst nie jest zamalowany. Zniknął z bufora, który niesie wynik.
Wynik jest uczciwy co do tego, co się stało: zapisuje skrót SHA-256 oryginalnej
treści, przepisaną redactedContent, raport audytowy każdego znaleziska oraz
flagę wasModified. Możesz dowieść, że bajty się zmieniły, i możesz dowieść,
które.
Pozostałość, którą musisz ścigać
Dział zatytułowany „Pozostałość, którą musisz ścigać”Usunięcie widocznego tekstu jest konieczne, ale niewystarczające. Te same słowa, oraz słowa, których nigdy nie widziałeś na stronie, kryją się w miejscach, do których edycja na poziomie strony nigdy nie sięga.
Dokument niesie metadane podwójnie: przestarzały słownik informacji oraz pakiet XMP, z których każdy może trzymać nazwisko autora, tytuł lub odcisk narzędzia. Może nieść całe pliki jako strumienie plików osadzonych. Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11 Może wiązać te ładunki ze strukturą strony jako pliki powiązane — kanał powiązanego artefaktu, którego strona nie renderuje, ale dokument wciąż go trzyma. Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5 Żadna z tych rzeczy nie jest na stronie, którą zredagowałeś, więc żadnej z nich nie dotyka prostokąt. Klasyczna wytyczna w tej sprawie — raport NSA „Hidden Data and Metadata in Adobe PDF Files” — istnieje właśnie dlatego, że tak wiele rzeczywistych wycieków pochodziło z pozostałości, a nie z widocznej strony.
Redakcja, która usuwa słowa na stronie, ale pozostawia nazwisko autora w pakiecie XMP i oryginalny arkusz jako załącznik, nie zredagowała dokumentu. Zredagowała jeden jego widok.
- DetectFind every sensitive span — visible text, and the entity types a policy targets — not just the region you happen to see.
- Delete, do not coverRewrite the content stream so the glyphs are removed from the bytes. An opaque box on top leaves the text underneath intact.
- Clear the residueStrip the information dictionary and XMP metadata, and remove embedded and associated files that carry the same payload off-page.
- VerifyConfirm no selectable text, metadata field, or attachment reproduces the redacted content before the file leaves the building.
Zawodzić bezpiecznie zamiast udawać
Dział zatytułowany „Zawodzić bezpiecznie zamiast udawać”Są dwa sposoby redagowania: według treści (znajdź to nazwisko, usuń je) oraz według strefy (zamaluj ten prostokąt strony, cokolwiek pod nim jest). Enterprise’owy silnik robi pierwszy uczciwie. Celowo nie udaje, że robi drugi.
Metoda redact() przyjmuje trzeci argument, listę regionów współrzędnych
ZoneRedaction. Silnik treści tekstowej nie ma ujścia do nakładki treści strony
— żadnego sposobu, by naprawdę usunąć to, co siedzi wewnątrz pudełka
współrzędnych. Więc gdy ta lista jest niepusta, nie rysuje prostokąta i nie
nazywa strefy „zredagowaną”. Zgłasza typowany RuntimeException i mówi ci, byś
poprowadził strefę przez potok redakcji treści strony.
Ta odmowa to cały sens tej strony zamieniony w kod. Silnik woli się zatrzymać i nazwać to, czego nie potrafi, niż zwrócić znalezisko „zredagowane” dla regionu, który pozostawił całkowicie nietknięty. Cicha kosmetyczna nakładka raportowana jako usunięcie to dokładnie ta fałszywa pewność, która wytwarza wyciek. Zawodzenie bezpiecznie zamienia ten wyciek w komunikat o błędzie, który widzisz, zanim wyślesz plik.
Częste nieporozumienie
Dział zatytułowany „Częste nieporozumienie”„Narysowałem nad tym czarne pudełko, więc to jest zredagowane.”
To pułapka i najczęstsza w całym formacie. Wypełniony prostokąt to instrukcja rysowania ułożona na wierzchu tekstu. Operatory wyświetlania tekstu wciąż są w strumieniu treści, glify wciąż rysują, a zaznaczenie lub kopia odczytuje je niezmienione. Ukryłeś obraz; nie zmieniłeś dokumentu.
Druga, subtelniejsza pułapka: „Usunąłem tekst na stronie, więc dokument jest czysty.” Jeszcze nie. Ta sama treść, oraz treść, której nigdy nie wyświetliłeś, może utrzymywać się w metadanych i w plikach osadzonych. Redakcja jest skończona dopiero wtedy, gdy każda powierzchnia — treść strony, metadane oraz załączniki — jest czysta z tego, co zamierzałeś usunąć.
Ograniczenia i granice
Dział zatytułowany „Ograniczenia i granice”Uczciwy zakres tego, co NextPDF tu robi, według edycji:
- Edycja podstawowa (Core) nie ma redakcji dokumentu w ogóle. Dostarcza sanityzator prywatności dla danych osobowych (PII) w dzienniku audytu — trzymający wrażliwe wartości z dala od twoich własnych zapisów diagnostycznych — a to coś zupełnie innego niż redagowanie dostarczanego PDF. Jeśli jesteś na Core i musisz zredagować dokument, możliwości, której chcesz, nie ma. Nie rysuj pudełka i nie zakładaj, że silnik cokolwiek usunął.
- Enterprise’owy
RedactionEngineredaguje treść tekstową, destrukcyjnie. Przepisuje bufor treści, by usunąć wrażliwe bajty, i raportuje skrót, raport audytowy oraz flagęwasModified, dzięki czemu usunięcie jest dowiedlne. - Redakcja strefy współrzędnych zawodzi bezpiecznie. Podaj niepustą listę
ZoneRedaction, a silnik zgłosi wyjątek, zamiast udawać nakładkę. To celowa właściwość bezpieczeństwa, a nie brakująca funkcja: region, którego nie potrafi naprawdę oczyścić, jest regionem, który odmawia nazwać czystym. - Oczyszczenie każdej powierzchni pozostałości to także odpowiedzialność operatora. Usunięcie widocznego tekstu to jeden krok. Kompletna robota zdejmuje też słownik informacji, pakiet XMP oraz wszelkie pliki osadzone lub powiązane (Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11, Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5), które niosą ten sam ładunek poza stroną.
| Edition | Availability |
|---|---|
| Core | Not in this edition. Core has no document redaction. It provides only an audit-log PII sanitiser, which keeps sensitive values out of your own diagnostic records — it does not redact a delivered PDF. |
| Pro | Not in this edition |
| Enterprise | Available. The enterprise RedactionEngine performs destructive text-content redaction and fails closed — it throws a typed exception — on coordinate-zone redaction it cannot truly fulfil, rather than painting a cosmetic overlay and reporting a region as removed. |
Powiązane dokumenty
Dział zatytułowany „Powiązane dokumenty”- Jak naprawdę działa szyfrowanie PDF — dlaczego zaszyfrowanie pliku to nie to samo co usunięcie z niego treści oraz gdzie każde z nich cię chroni.
- Metadane i pakiet XMP — powierzchnia pozostałości, której redakcja na poziomie strony nigdy nie dotyka, w szczegółach.
- API, które odmawia zgadywania — ta sama postawa zawodzenia bezpiecznie, którą silnik redakcji stosuje wobec strefy, której nie potrafi spełnić.
Słownik pojęć
Dział zatytułowany „Słownik pojęć”- Kosmetyczna nakładka — operacja rysowania, taka jak wypełniony prostokąt, nałożona na treść, by ukryć ją wizualnie. Nie usuwa treści pod spodem, która pozostaje zaznaczalna i kopiowalna.
- Destrukcyjna redakcja — usunięcie treści ze strumienia bajtów dokumentu, a nie z obrazu. Gdy się dokona, nie ma pod spodem niczego do odzyskania.
- Strumień treści — uporządkowana lista operatorów rysowania, które renderują stronę, w tym operatory wyświetlania tekstu, które rysują glify. Pudełko na wierzchu nie usuwa operatorów tekstu pod nim.
- Powierzchnia pozostałości — miejsce, w którym dokument trzyma treść, której strona nie wyświetla: słownik informacji, pakiet metadanych XMP oraz pliki osadzone lub powiązane. Kompletna redakcja oczyszcza je wszystkie.
- Strumień pliku osadzonego — cały plik niesiony wewnątrz PDF (ISO 32000-2 §7.11). Znak na stronie nigdy nie dotyka załącznika.
- Zawodzić bezpiecznie (fail closed) — zatrzymać się z typowanym błędem, gdy operacji nie da się wykonać uczciwie, zamiast wytworzyć wiarygodnie wyglądający wynik, który jest błędny. Enterprise’owy silnik robi to dla redakcji strefy współrzędnych, której nie potrafi spełnić.