Ir al contenido
getnextpdf.com

La redacción no es un rectángulo negro

Spec: ISO 32000-2, §7.11Spec: ISO 32000-2, §14.13.5

Un rectángulo negro dibujado sobre un nombre no oculta nada. La página parece redactada, pero el texto que hay debajo sigue ahí, sigue siendo seleccionable, sigue siendo copiable. La redacción real no cubre el contenido. Lo borra.

Esta página explica la brecha entre una superposición cosmética y la verdadera eliminación de contenido, por qué los metadatos y los archivos incrustados sobreviven a un trabajo ingenuo, y cómo el RedactionEngine enterprise de NextPDF se niega a fingir que una región ha desaparecido cuando no puede eliminarla realmente.

Las brechas de datos de PDF más citadas no fueron ataques ingeniosos. Fueron rectángulos negros. Alguien dibujó una caja rellena sobre un párrafo sensible, exportó el archivo y lo entregó. El destinatario pulsó la caja, arrastró sobre ella y las palabras originales se copiaron directamente del documento al portapapeles.

La razón es estructural. Una página PDF es un conjunto de operadores de dibujo superpuestos en orden. Pintar un rectángulo opaco añade un operador más encima; no elimina el operador de mostrado de texto que hay debajo. Para el ojo, el texto está oculto. Para la máquina, está exactamente donde siempre estuvo. La superposición es un disfraz, y un disfraz se quita.

Esto es caro porque el fallo es silencioso y definitivo. El documento parece correcto, supera una revisión visual y se publica. La fuga la descubre más tarde alguien que seleccionó el texto, y para entonces cada copia ya está fuera.

  • Una caja negra es una operación de dibujo superpuesta al texto, no una eliminación de él. Los bytes sobreviven.
  • El texto seleccionable sobrevive porque el flujo de contenido de la página sigue llevando los glifos que dibujan las palabras.
  • Los metadatos del documento sobreviven porque viven en un lugar separado —el diccionario de información del documento y el paquete XMP— que ningún rectángulo sobre una página puede alcanzar.
  • Los archivos incrustados sobreviven porque un PDF puede transportar archivos completos dentro de sí como flujos de archivo incrustado. Spec: ISO 32000-2, §7.11 Una marca sobre una página nunca toca un adjunto.
  • La redacción verdadera es destructiva. Elimina el contenido del flujo de bytes, no de la imagen. Lo que se ha ido, se ha ido, y las superficies de residuo también se limpian.

Cosmética frente a destructiva, con precisión

Sección titulada «Cosmética frente a destructiva, con precisión»

Una superposición cosmética cambia el aspecto de una página. La redacción destructiva cambia lo que el documento contiene. La primera es reversible para cualquiera con un cursor de texto. La segunda no deja nada que recuperar.

El RedactionEngine enterprise de NextPDF está construido para el caso destructivo a nivel de contenido de texto. Su método redact() toma el contenido, una RedactionPolicy que describe qué buscar y cómo reemplazarlo, y devuelve un RedactionResult. Por dentro, detecta los tramos sensibles, fusiona los que se solapan en rangos de cobertura disjuntos y luego reescribe la cadena de contenido con substr_replace, de modo que cada byte cubierto se elimina exactamente una vez. El texto sensible no se pinta por encima. Desaparece del búfer que el resultado devuelve.

El resultado es honesto sobre lo ocurrido: registra el hash SHA-256 del contenido original, el redactedContent reescrito, un informe de auditoría de cada hallazgo y una bandera wasModified. Puede demostrar que los bytes cambiaron, y puede demostrar cuáles.

Eliminar el texto visible es necesario pero no suficiente. Las mismas palabras, y palabras que nunca vio en la página, se esconden en lugares que una edición a nivel de página nunca alcanza.

Un documento lleva metadatos por partida doble: un diccionario de información heredado y un paquete XMP, cualquiera de los cuales puede contener el nombre de un autor, un título o la huella de una herramienta. Puede transportar archivos completos como flujos de archivo incrustado. Spec: ISO 32000-2, §7.11 Puede vincular esas cargas útiles a la estructura de la página como archivos asociados, un canal de artefactos relacionados que la página no renderiza pero el documento sí conserva. Spec: ISO 32000-2, §14.13.5 Ninguno de ellos está en la página que usted redactó, así que ninguno lo toca un rectángulo. La guía clásica sobre esto —el informe «Hidden Data and Metadata in Adobe PDF Files» de la NSA— existe precisamente porque muchísimas fugas reales vinieron del residuo, no de la página visible.

Una redacción que borra las palabras de la página pero deja el nombre del autor en el paquete XMP y la hoja de cálculo original como adjunto no ha redactado el documento. Ha redactado una vista de él.

  1. DetectFind every sensitive span — visible text, and the entity types a policy targets — not just the region you happen to see.
  2. 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.
  3. Clear the residueStrip the information dictionary and XMP metadata, and remove embedded and associated files that carry the same payload off-page.
  4. VerifyConfirm no selectable text, metadata field, or attachment reproduces the redacted content before the file leaves the building.
What a complete destructive redaction removes, in order: detect the sensitive content, delete the bytes from the content stream rather than draw over them, then clear the residue surfaces — metadata and embedded payloads — that a page-level mark never reaches, and finally verify nothing copyable survived.

Fallar de forma cerrada en lugar de fingirlo

Sección titulada «Fallar de forma cerrada en lugar de fingirlo»

Hay dos maneras de redactar: por contenido (encontrar este nombre, borrarlo) y por zona (pintar por encima este rectángulo de la página, sea lo que sea lo que haya debajo). El motor enterprise hace lo primero con honestidad. Deliberadamente no finge hacer lo segundo.

El método redact() acepta un tercer argumento, una lista de regiones de coordenadas ZoneRedaction. El motor de contenido de texto no tiene un sumidero de superposición de contenido de página —ninguna forma de eliminar realmente lo que se sitúa dentro de una caja de coordenadas—. Así que cuando esa lista no está vacía, no dibuja un rectángulo y llama a la zona «redactada». Lanza una RuntimeException tipada y le indica que encamine la zona a través de una canalización de redacción de contenido de página en su lugar.

Esa negativa es todo el sentido de esta página convertido en código. El motor prefiere detenerse y nombrar lo que no puede hacer antes que devolver un hallazgo de «redactado» para una región que dejó completamente intacta. Una superposición cosmética silenciosa reportada como una eliminación es exactamente la falsa seguridad que produce una brecha. Fallar de forma cerrada convierte esa brecha en un mensaje de error que usted ve antes de entregar.

«Dibujé una caja negra encima, así que está redactado.»

Esta es la trampa, y es la más común de todo el formato. Un rectángulo relleno es una instrucción de dibujo apilada sobre el texto. Los operadores de mostrado de texto siguen en el flujo de contenido, los glifos siguen dibujándose, y una selección o una copia los lee sin cambios. Ocultó una imagen; no cambió un documento.

Una segunda trampa, más sutil: «Borré el texto de la página, así que el documento está limpio.» Todavía no. El mismo contenido, y contenido que nunca mostró, puede persistir en los metadatos y en los archivos incrustados. La redacción solo termina cuando cada superficie —contenido de página, metadatos y adjuntos— está libre de lo que se propuso eliminar.

El alcance honesto de lo que NextPDF hace aquí, por edición:

  • El núcleo no tiene redacción de documentos en absoluto. Incluye un saneador de privacidad para la PII de registros de auditoría —mantener los valores sensibles fuera de sus propios registros de diagnóstico—, y eso es algo totalmente distinto de redactar un PDF entregado. Si está en el núcleo y necesita redactar un documento, la capacidad que busca no está presente. No dibuje una caja y suponga que el motor eliminó algo.
  • El RedactionEngine enterprise redacta contenido de texto, de forma destructiva. Reescribe el búfer de contenido para eliminar los bytes sensibles e informa de un hash, un informe de auditoría y una bandera wasModified, de modo que la eliminación sea demostrable.
  • La redacción por zona de coordenadas falla de forma cerrada. Pase una lista ZoneRedaction no vacía y el motor lanza una excepción en lugar de fingir una superposición. Es una propiedad de seguridad deliberada, no una función ausente: una región que no puede limpiar de verdad es una que se niega a llamar limpia.
  • Limpiar cada superficie de residuo también es responsabilidad del operador. Eliminar el texto visible es un paso. Un trabajo completo también despoja el diccionario de información, el paquete XMP y cualesquiera archivos incrustados o asociados (Spec: ISO 32000-2, §7.11, Spec: ISO 32000-2, §14.13.5) que lleven la misma carga útil fuera de la página.
Document redaction — edition availability
EditionAvailability
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.

ProNot 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.

  • Superposición cosmética: una operación de dibujo, como un rectángulo relleno, superpuesta al contenido para ocultarlo visualmente. No elimina el contenido que hay debajo, que sigue siendo seleccionable y copiable.
  • Redacción destructiva: eliminación del contenido del flujo de bytes del documento, no de la imagen. Una vez hecho, no hay nada debajo que recuperar.
  • Flujo de contenido: la lista ordenada de operadores de dibujo que renderizan una página, incluidos los operadores de mostrado de texto que dibujan los glifos. Una caja encima no borra los operadores de texto que hay debajo.
  • Superficie de residuo: un lugar donde un documento guarda contenido que la página no muestra: el diccionario de información, el paquete de metadatos XMP y los archivos incrustados o asociados. Una redacción completa los limpia todos.
  • Flujo de archivo incrustado: un archivo completo transportado dentro de un PDF (ISO 32000-2 §7.11). Una marca sobre una página nunca toca un adjunto.
  • Fallar de forma cerrada: detenerse con un error tipado cuando una operación no puede hacerse con honestidad, en lugar de producir un resultado de aspecto plausible que es erróneo. El motor enterprise hace esto para la redacción por zona de coordenadas que no puede cumplir.