4

我们要求防止保存网络驱动器上存在的其他 PDF 副本。目前,我们已在格式允许的范围内“锁定”PDF - 这意味着防止复制/粘贴、编辑和打印。但是,客户要求一旦打开 PDF,任何人都不能再创建 PDF 的副本。

使用本机 PDF,这是不可能的,因为首先,他们总是可以单击浏览器中的链接并将“另存为...”到他们的桌面。此外,他们可以在 Acrobat Reader 中单击“另存为...”,并且没有办法(除了黑客之外)将其关闭。此外,即使我们破解了 Acrobat Viewer,他们也总有可能在另一个 3rd 方查看器中查看并重新保存 PDF。

有几个初步的替代方案浮现在脑海中:

  1. 使用 DRM 提供程序来锁定对文件的访问 - 由于费用,这不是一个选项

  2. 创建一个将文件转换为 TIFF 的 Web 服务,然后使用“秘密”密钥对其进行加密,并将它们作为“.abc”文件提供服务。为仅在客户端网络内部运行的“.abc”文件创建一个特殊查看器,并打开此文件并对其进行解密。如果没有自定义查看器,他们将无法查看文件。他们可以制作它们的副本,但如果查看器被锁定在他们的个人计算机上或必须在公司网络中运行(例如,在启动之前检查来自 Web 服务的密钥),他们制作的任何副本都不会被打开 -有能力的。

  3. 创建一个 Flash 或 Silverlight 查看器,其功能与上述基本相同,但从不实际将文件保存到 PC - 只是在浏览器中显示它。

有没有人有任何其他可能更简单的选择?目标不是拥有 100% 的防弹安全性,只是为了防止员工轻松制作副本、将这些副本通过电子邮件发送给竞争对手、朋友或其他不应访问这些敏感文件的人。

4

4 回答 4

3

您提到的唯一有可能工作(并且实施成本不会太高)的选项是自定义阅读器。

阅读器应用程序中不应存储任何“秘密”信息(例如密钥),并且只能在内部使用,方法是通过私有 Web 服务访问密钥和图像数据。你已经注意到了。

它也不应该存储文件;但只需将密钥和数据加载到内存中,解密图像,然后对其进行查看。

真正的“困难”部分是转换数据。在大多数情况下,其余的都是相当基本的东西。

这里需要注意的是,用户仍然可以轻松打印屏幕并保存图像。

最终,让他们查看文档但不保存文档的唯一真正安全的方法是完全阻止他们查看他们拥有任何物理或一般网络访问权限的系统上的文档。

于 2010-11-21T16:09:24.043 回答
2

那么,他们难道不能仍然使用打印屏幕获取信息吗?最后,用户总是可以手动重写它。安全性实际上只是提高标准,使窃取信息变得太乏味或太耗时。

我会说方法 2 非常复杂,会占用你很多时间,同时仍然容易打印屏幕。我会做第 3 点,您可以在其中重用大量现有代码,并获得类似级别的安全性。

于 2010-11-21T16:06:56.740 回答
1

鉴于您的限制,没有办法完全安全。如果数据足够有价值,人们就会找到方法。最原始的就是手动复制,上一步是每页拍一张照片(手机),上一步就是打印屏幕,再上一步就是打印屏幕宏,保存所有页面到一个文件夹,上面的一个步骤是从内存中读取它。

尽管如此,如果您的目标仅仅是“足够好”的安全性(理解它可能会被打败,但大多数用户不会愿意这样做)将是一个“客户阅读器”。它可以通过闪光灯或银光来完成。它甚至可以通过独立的 winform 应用程序来完成。

有用于显示 pdf 的库。您可以简单地将 pdf 文件“包装”在加密层中,给它一个唯一的扩展名 (pdx),然后让您的“自定义播放器”解密并显示 pdf。鉴于您正在实现一个 pdf 库,您可以准确控制可用的选项。您还应该研究使打印屏幕更加困难的技术,因为接下来您只需将攻击向量移动到打印屏幕。

于 2010-11-22T19:15:15.833 回答
-1

您可以使用脚本或组策略禁用 Print Screen 键。

下面从这里复制了一个示例。

Windows 外壳脚本

# =============================================================================# 
#* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF          *# 
#* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED           *# 
#* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A          *# 
#* PARTICULAR PURPOSE.                                                        *# 
# =============================================================================# 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,2a,e0,37,e0,00,00,37,e0,00,00,54,00,00,00,00,00 
# ****************************************************************************** 
# The sample scripts are not supported under any Microsoft 
# standard support program or service. The sample scripts 
# are provided AS IS without warranty of any kind. Microsoft 
# further disclaims all implied warranties including, without 
# limitation, any implied warranties of merchantability or of 
# fitness for a particular purpose. The entire risk arising out 
# of the use or performance of the sample scripts and documentation 
# remains with you. In no event shall Microsoft, its authors, or  
# anyone else involved in the creation, production, or delivery of  
# the scripts be liable for any damages whatsoever (including, without 
# limitation, damages for loss of business profits, business  
# interruption, loss of business information, or other pecuniary loss) 
# arising out of the use of or inability to use the sample scripts or 
# documentation, even if Microsoft has been advised of the possibility 
# of such damages. 
# ****************************************************************************** 
于 2014-09-11T02:59:45.160 回答