密码保护文件是如何工作的?

3

我在黑莓应用商店看了一个创建PDF文件的应用程序,该应用程序声称可以对文件进行密码保护。那么如何对文件进行密码保护呢?如果读取文件的代码是可用的,那么如果程序决定不检查密码,密码将无用,对吗?

3个回答

3
除了其他答案(重点是加密任意文件)之外,这里的答案侧重于PDF的加密,而这也是最初震惊OP的用例:
PDF标准(ISO 32000-1)在第7.6节中描述了PDF应如何加密,以保持PDF的文件结构同时隐藏内容。 PDF由众多对象(数字,字符串,数组,字典,流,引用等)构建,规范描述的机制基本上只加密字符串和流内容。
就像@Mark所描述的通用情况一样,这些加密的字符串和流内容仅是一堆看起来随机的数据,在PDF显示之前必须解密,但其余对象未加密,允许PDF查看器和编辑器将文件识别为PDF。
此外,PDF规范允许两种基本的加密类型:
  • 用户密码:任何想要使用PDF的人都必须输入该密码。
  • 所有者密码:只需要为可配置的一组PDF使用(例如打印或编辑),而不是仅查看PDF时输入该密码。

显然,使用后一种密码的加密可以被规避:毕竟,如果您可以查看PDF,则可以提取所有数据并随意使用,除非您的软件与方案合作并禁止您这样做。很明显,并非所有软件都会合作。

基本上,所有者密码机制在PDF中存储了一个值,该值源自密码,足以解密加密数据,但不允许轻松计算原始密码。


1
如果正确执行,密码保护的文件将使用需要原始密码才能撤销加密的算法进行加密。密码用于初始化加密/解密过程,并不存储在文件中。如果您提供了错误的密码,则无法解密,程序也无法知道正确的解密密钥(除非进行暴力攻击)。

1
假设该应用程序编写得很好,使用密码加密.pdf文件以派生加密密钥——也就是说,在解密之前,该文件不是一个真正的.pdf文件。在此之前,该文件只是一堆看起来随机的数据,程序不知道解密密钥,直到您输入密码为止。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接