本页内容
PDF 加密的历史演进
PDF 1.1–1.3(RC4 40位):最早的 PDF 加密,密钥空间仅有 2^40,在现代计算机上几秒内即可暴力破解,已完全不安全。
PDF 1.4(RC4 128位):密钥空间扩展至 2^128,但 RC4 算法本身存在严重的密码学缺陷,被认为不安全。
PDF 1.5–1.6(AES-128):引入 AES,以 CBC 模式使用 128 位密钥。AES 是目前最广泛使用的对称加密算法,128 位密钥仍被认为足够安全。
PDF 1.7(AES-256):升级至 256 位 AES 密钥,提供最高级别的安全性,是当前的推荐标准。
加密范围与例外
PDF 加密不是对整个文件进行加密,而是选择性地加密内容流(content streams)。文件头、交叉引用表、加密字典本身不被加密。
这种设计允许 PDF 阅读器在不知道密码的情况下读取文件结构,判断文件是否加密及使用了哪种算法,然后再提示用户输入密码。
PDF 权限系统
PDF 加密字典中的 P 字段是一个 32 位整数,每一位对应一种权限:打印(位 3)、内容修改(位 4)、复制(位 5)、注释(位 6)、表单填写(位 9)。
这些权限位仅在设置了加密时才有效。合规的 PDF 阅读器会读取这些位并相应地限制功能,非合规软件可以忽略。
实际安全建议
对于需要真正保密的 PDF,应同时设置用户密码(确保内容加密)和强密码(12位以上随机字符)。仅设置所有者密码无法阻止技术用户读取内容。
避免使用 PDF 1.4 及以下版本的加密格式(RC4)。在 Adobe Acrobat 中创建加密 PDF 时,应选择"AES-256"加密兼容性(Acrobat X 及以上)。
提示
- 查看 PDF 加密版本:用文本编辑器打开 PDF,找到 /Encrypt 字典,查看 /V 和 /R 字段。V=4, R=4 表示 AES-128;V=5, R=6 表示 AES-256。