Saltar al contenido
PDFLove

cómo funciona el cifrado de un pdf

Cómo funciona el cifrado de un PDF

Un PDF puede llevar dos contraseñas, y solo una de ellas cifra algo. La otra es una petición que se confía en que los lectores respeten, y por eso mismo se puede quitar.

01

Una clave, dos puertas

Cuando se cifra un PDF se genera una clave de cifrado de archivo aleatoria. Esa clave es lo que protege realmente el contenido, y no se guarda nunca dentro del archivo.

Lo que sí se guarda son dos copias cifradas de ella, en las entradas `/O` y `/U` del diccionario de cifrado. La contraseña de usuario abre una; la de propietario abre la otra. Da cualquiera de las dos y llegas a la misma clave de archivo, que es el detalle crucial que casi nadie conoce y el origen de casi toda la confusión sobre qué significa aquí la protección.

Los bits de permisos — se puede imprimir, se puede copiar, se puede modificar — se guardan en el diccionario de cifrado como un simple número entero. No los impone la criptografía. Son una declaración de intenciones que un lector conforme acepta respetar.

02

Por qué quitar una contraseña de propietario no es romper nada

Casi todos los PDF que restringen la impresión o la copia no tienen ninguna contraseña de usuario. El archivo se abre al instante en cualquier lector porque la contraseña de usuario es la cadena vacía, y la cadena vacía deriva la clave del archivo.

Así que una herramienta que quita restricciones no está atacando el cifrado. Descifra el archivo exactamente igual que hace tu lector, con la contraseña vacía, y escribe una copia sin los indicadores de permisos activados. El contenido nunca estuvo oculto para nadie que lo abriera; el archivo simplemente pedía a los lectores que no permitieran ciertas acciones.

Es una decisión de diseño deliberada y no un defecto, y la especificación es franca al respecto. Los permisos existen para expresar una intención al software que colabora. Cualquier programa dispuesto a ignorar los indicadores — y cualquier programa capaz de mostrar la página puede, porque ya ha descifrado el contenido para dibujarlo — se queda al margen de ellos.

Contraseña de usuario
Cifrado de verdad. Sin ella los flujos son texto cifrado y nada puede dibujar el archivo. No se puede quitar sin la contraseña.
Contraseña de propietario
Fija los indicadores de permisos. El contenido ya es descifrable con la contraseña de usuario vacía, así que quitarla es una reescritura, no un ataque.
Las dos puestas
Necesitas la contraseña de usuario para abrirlo siquiera. Una vez abierto, las restricciones se quitan igual de fácil que siempre.
Ninguna
No hay diccionario de cifrado. No hay nada que quitar.

03

Qué se cifra realmente, y cómo

No el archivo entero. La estructura de objetos, el árbol de páginas y la tabla de referencias cruzadas siguen siendo legibles: un lector tiene que poder navegar por el documento antes de descifrar nada. Lo que se cifra es el contenido: los datos de los flujos y las cadenas.

Cada objeto recibe su propia clave, derivada de aplicar un resumen a la clave del archivo junto con el número y la generación de ese objeto. Por eso dos imágenes idénticas dentro del mismo archivo se cifran a bytes distintos, y por eso también un objeto cifrado no se puede renumerar: el número forma parte de su clave. Las herramientas de unir y dividir tienen que descifrar antes de poder copiar nada.

04

Los algoritmos, y cuáles siguen significando algo

El gestor de seguridad se ha revisado varias veces, y la versión que lleve un archivo determina cuánto vale su contraseña.

RC4 de 40 bits (PDF 1.1)
Prácticamente ninguna protección. El espacio de claves es lo bastante pequeño como para recorrerlo entero con hardware normal.
RC4 de 128 bits (PDF 1.4)
Mejor longitud de clave, pero RC4 ya no se considera sólido y la derivación de clave son unas pocas rondas de MD5: barato de atacar probando contraseñas.
AES-128 (PDF 1.6)
Un cifrado sólido. La debilidad que queda es lo rápida que es la derivación de clave.
AES-256, revisión 6 (PDF 2.0)
El estándar actual. Derivación de clave deliberadamente cara, así que probar contraseñas es lento. Aquí una contraseña fuerte es fuerte de verdad.

05

Qué significa esto para cómo lo usas

Si el documento no debe ser leído por la persona equivocada, pon una contraseña de usuario, usa un nivel de cifrado moderno y manda la contraseña por un canal distinto del documento. Una contraseña enviada por correo en el mismo hilo que el archivo no protege de nada.

Si lo único que quieres es desanimar la copia o la impresión casuales, una contraseña de propietario hace eso y nada más. Es un aviso de cortesía con fuerza real entre software que colabora y ninguna en cualquier otro caso. Tratarlo como seguridad es el error que conviene evitar: cualquiera lo bastante motivado para querer el texto puede seleccionarlo en un lector que ignore los indicadores, o pasarle el OCR a una captura de pantalla.

Y cuando un documento de verdad no deba editarse en lugar de no deber leerse, aplanar suele ser el instrumento mejor. Funde las anotaciones y los campos de formulario dentro de la página, así que no queda nada con lo que interactuar, y no depende de que nadie respete un indicador.

Preguntas

Preguntas relacionadas

Si una herramienta puede quitar la contraseña, ¿el cifrado de PDF no sirve de nada?

Solo se puede quitar la de permisos, y esa nunca fue cifrado. Una contraseña de usuario es AES real sobre el contenido: ninguna herramienta puede quitarla sin la contraseña, porque los flujos son texto cifrado y no hay nada que leer.

¿Es legal quitarle las restricciones a un PDF?

Para un documento que es tuyo o que tienes derecho a usar, en general sí: estás reescribiendo tu propio archivo. Quitar la protección para redistribuir el trabajo de otra persona es otra cosa y depende de los derechos de autor, no de lo que pueda hacer la herramienta.

¿Qué nivel de cifrado elijo?

AES-256 salvo que tengas que dar soporte a software anterior a 2017 más o menos. Los modos RC4 antiguos existen solo por compatibilidad y hoy no hay que confiar en ninguno.

¿Por qué puedo abrir un PDF que dice que no se permite imprimir?

Porque abrir e imprimir se gobiernan con mecanismos distintos. Abrir necesita la contraseña de usuario, que en ese archivo está vacía. Imprimir lo controla un indicador que tu lector ha decidido respetar.