Cómo funciona realmente el cifrado en PDF — y sus límites
Spec: ISO 32000-2, §7.6ISO 32000-2 §7.6
De un vistazo
Sección titulada «De un vistazo»El cifrado en PDF revuelve las palabras y las imágenes del interior de un documento de modo que solo quien tenga la contraseña correcta pueda leerlas. Es criptografía genuina, y hace bien el único trabajo que tiene. También se malinterpreta mucho, porque la misma función lleva un segundo mecanismo —los indicadores de permiso— que parece un candado y no lo es.
Esta página separa ambos. Explica qué protege realmente AES-256, para qué sirven de verdad las dos contraseñas y dónde se sitúa la frontera honesta.
Por qué esto importa
Sección titulada «Por qué esto importa»La gente recurre al cifrado cuando un documento es sensible: un contrato, una nómina, una carta médica. La expectativa es razonable: mantén esto privado e impide que la gente lo imprima o lo copie. PDF cumple la primera mitad de ese deseo de forma convincente y la segunda mitad solo por el sistema del honor.
Confundir ambas cosas es donde recae el coste. Un equipo marca un archivo «sin copia», confía en que la plataforma lo haga cumplir y lo envía. Meses después alguien copia el texto en treinta segundos con otro lector, y la suposición que nunca se sostuvo se convierte en silencio en una fuga. El cifrado nunca se rompió. Simplemente se le pidió que hiciera algo que no hace.
La versión corta
Sección titulada «La versión corta»- El cifrado protege la confidencialidad. Con AES-256, el contenido de cadenas y flujos de un PDF es texto cifrado real. Sin la clave, es ilegible.
- La contraseña de usuario abre el documento. Si la proporcionas, puedes ver el contenido. Sin ella, no hay nada que leer.
- La contraseña de propietario gobierna los permisos. Es la clave de «derechos plenos». Los indicadores de permiso que protege —imprimir, copiar, modificar— están registrados dentro del documento cifrado.
- Los indicadores de permiso dependen de la cooperación del lector. Son una petición a un lector que se porta bien, no una imposición. Un lector que los ignora puede imprimir, copiar o editar de todos modos.
- La estructura permanece visible. El cifrado oculta el contenido, no el esqueleto del documento: el número de páginas y la disposición de los objetos no son el secreto.
Cómo lo aborda NextPDF
Sección titulada «Cómo lo aborda NextPDF»El cifrado en PDF está definido por Spec: ISO 32000-2, §7.6ISO 32000-2 §7.6. El modelo es preciso: un gestor de seguridad deriva una clave de cifrado de archivo a partir de una contraseña, las cadenas y los flujos del documento se cifran con esa clave, y un diccionario de cifrado —referenciado desde el tráiler del archivo— registra qué cifrado se usó, qué longitud tiene la clave y qué permisos declaró el autor.
El cifrado moderno y recomendado es AES con una clave de 256 bits. Cuando se cifra un PDF de esta manera, la carga útil legible —el texto que extraerías, los bytes de imagen, los datos de fuente— se transforma en texto cifrado. La forma externa del documento permanece legible por diseño: un lector tiene que encontrar el diccionario de cifrado y conocer la longitud de la clave antes de poder pedirte una contraseña. Por eso el cifrado se entiende mejor como confidencialidad del contenido, no como opacidad del archivo completo.
Las dos contraseñas se sitúan en capas distintas, y la distinción es la parte que más conviene acertar.
- Se proporciona una contraseñaLa contraseña de usuario (abrir) o la de propietario (derechos plenos).
- El gestor de seguridad deriva la claveISO 32000-2 §7.6.4 convierte la contraseña en la clave de cifrado de archivo.
- El contenido se descifraAES-256 vuelve a convertir las cadenas y flujos cifrados en bytes legibles.
- Se consultan los permisosLa clave de propietario concede todos los derechos; la clave de usuario queda ligada a los indicadores de permiso declarados, si el lector decide respetarlos.
La contraseña de usuario es la contraseña de apertura. Responde a una pregunta: ¿puedes ver el contenido siquiera? Sin contraseña de usuario, no hay documento legible: esa parte se hace cumplir criptográficamente, porque sin la clave derivada no hay nada que descifrar.
La contraseña de propietario es la contraseña de permisos. Un archivo puede abrirlo cualquiera (sin contraseña de usuario) y aun así declarar una contraseña de propietario que controla las acciones de «derechos plenos»: imprimir a alta resolución, copiar texto, modificar el archivo. Es crucial que los bits de permiso que la contraseña de propietario protege estén protegidos en su integridad por el gestor de seguridad estándar: alterarlos se detecta y se rechaza en un lector conforme, porque el gestor liga los permisos declarados a las claves de cifrado. Los bits no son literalmente bytes ilegibles o ineditables —un atacante puede cambiarlos—, pero una copia alterada no validará, de modo que un lector conforme la trata como corrupta. Son a prueba de manipulación evidente. Simplemente no se imponen por sí mismos.
Ejemplo práctico
Sección titulada «Ejemplo práctico»Los ajustes de cifrado son sencillos de expresar. Lo que importa es leer el resultado con honestidad: esto configura la intención, y la parte de permisos de esa intención es orientativa.
<?php
declare(strict_types=1);
use NextPDF\Core\Document;use NextPDF\Security\Encryption\EncryptionMode;use NextPDF\Security\Encryption\Permission;
$document = Document::createStandalone();$document->setTitle('Confidential Offer');$document->addPage();
// Confidentiality is real: AES-256 means the content is unreadable// without the user password. This half is cryptographically enforced.$document->encrypt( userPassword: 'open-sesame', ownerPassword: 'full-rights-key', mode: EncryptionMode::Aes256, // Permissions are a declared request to a cooperating reader, // recorded inside the encrypted document — not a hard lock. permissions: Permission::Print->value | Permission::CopyContent->value,);
$document->save('offer.pdf');Las contraseñas de usuario y de propietario son claves distintas con trabajos
distintos. El argumento permissions declara lo que un lector que se porta bien
debería permitir. Son metadatos honestos, protegidos en su integridad por el
gestor de seguridad de modo que la manipulación sea detectable, y ese es el techo
de lo que una biblioteca productora puede prometer.
Concepto erróneo habitual
Sección titulada «Concepto erróneo habitual»La trampa es leer «permisos» como «imposición». Es intuitivo: el indicador dice imprimir no permitido, así que seguro que imprimir está bloqueado. Pero nada en el PDF puede llegar a desactivar el botón de imprimir de un lector. El entero de permisos se registra para que un lector que coopera lo respete. Un lector que elige no cooperar —y varios no lo hacen— es libre de imprimir, copiar y editar.
NextPDF es deliberado en esto. La ruta de cifrado de Core trata los indicadores de permiso como intención declarada y nunca finge imponerlos. Si necesitas que ciertas acciones se impidan de verdad, ese control tiene que vivir fuera del archivo: en a quién entregas el documento, o en un sistema de control de acceso a su alrededor.
Límites y fronteras
Sección titulada «Límites y fronteras»Sé preciso sobre lo que garantiza cada mitad. El cifrado (la capa de la contraseña de usuario) es un control de confidencialidad real: fuerte si la contraseña es fuerte, y solo tan bueno como el secreto que elijas. Los permisos (la capa de la contraseña de propietario) son metadatos a prueba de manipulación evidente, no control de acceso.
| Lo que podrías esperar | Lo que el cifrado realmente ofrece |
|---|---|
| Nadie puede leer el contenido sin la contraseña | Cierto. Con AES-256 y una contraseña de usuario fuerte, las cadenas y los flujos son ilegibles sin la clave. Se hace cumplir de verdad. |
| Nadie puede reescribir «sin copia» como «copia permitida» | A prueba de manipulación evidente, no imposible. Los indicadores de permiso están protegidos en su integridad por el gestor de seguridad estándar: un extraño puede editar los bytes, pero la copia alterada no validará, de modo que un lector conforme detecta y rechaza el cambio. |
| Se impedirá al lector copiar o imprimir | No lo garantiza ningún productor de PDF. Un lector que no coopera puede ignorar los indicadores. Esto es una propiedad del formato, no una limitación de NextPDF. |
Conviene enunciar con claridad otras dos fronteras. Primera, el cifrado protege el
contenido, no la estructura del documento: la disposición de objetos y el número
de páginas permanecen visibles, lo cual es normal y necesario para que un lector
localice el diccionario de cifrado. Segunda, un PDF cifrado no puede reclamar
además conformidad de archivo PDF/A: ese perfil prohíbe la entrada Encrypt, así
que eliges uno u otro. La
página de solución de problemas de cifrado y permisos
cubre en detalle las excepciones específicas y el rechazo de PDF/A.
Documentos relacionados
Sección titulada «Documentos relacionados»- El panorama de las normas: dónde se sitúan ISO 32000-2 y sus cláusulas de cifrado entre las normas de PDF.
- Cifrado e indicadores de permiso: las entradas prácticas: fallos de descifrado y la frontera de permisos en código.
- Qué es realmente un PDF: el modelo de objetos que el cifrado protege, y la estructura que deja visible.
- Cómo se integra una firma en un PDF: la otra mitad de la confianza documental: el cifrado oculta, las firmas prueban.
Glosario
Sección titulada «Glosario»- AES-256: el Advanced Encryption Standard con una clave de 256 bits, el cifrado moderno recomendado para el cifrado de contenido en PDF.
- Contraseña de usuario (contraseña de apertura): el secreto necesario para abrir y leer un documento cifrado. Sin él, el contenido no se puede descifrar.
- Contraseña de propietario (contraseña de permisos): el secreto de «derechos plenos» que gobierna los indicadores de permiso. Un documento puede tener una sin requerir una contraseña de usuario para abrirse.
- Indicadores de permiso: la intención declarada de imprimir/copiar/modificar almacenada en el diccionario de cifrado. Protegidos en su integridad para que la manipulación sea detectable, pero respetados solo por un lector que coopera.
- Gestor de seguridad: el componente que deriva la clave de cifrado de archivo a partir de una contraseña, definido por el gestor de seguridad estándar en ISO 32000-2.
- Cooperación del lector: un control que depende de que el software consumidor elija obedecerlo, en lugar de ser impuesto por el propio archivo.