Web services 防止";另存为;Adobe PDF格式

Web services 防止";另存为;Adobe PDF格式,web-services,security,pdf,encryption,Web Services,Security,Pdf,Encryption,我们要求防止保存网络驱动器上存在的PDF的其他副本。目前,我们已经“锁定”了PDF格式所允许的数量——这意味着可以防止复制/粘贴、编辑和打印。但是,客户机要求任何人在打开PDF后都不能创建额外的PDF副本 使用本机PDF,这是不可能的,因为首先,他们可以始终单击浏览器中的链接并“另存为…”到他们的桌面。此外,他们还可以在Acrobat Reader中单击“另存为…”,但没有办法(除了黑客攻击)将其关闭。此外,即使我们入侵了Acrobat Viewer,他们也有可能在另一个第三方查看器中查看并重新

我们要求防止保存网络驱动器上存在的PDF的其他副本。目前,我们已经“锁定”了PDF格式所允许的数量——这意味着可以防止复制/粘贴、编辑和打印。但是,客户机要求任何人在打开PDF后都不能创建额外的PDF副本

使用本机PDF,这是不可能的,因为首先,他们可以始终单击浏览器中的链接并“另存为…”到他们的桌面。此外,他们还可以在Acrobat Reader中单击“另存为…”,但没有办法(除了黑客攻击)将其关闭。此外,即使我们入侵了Acrobat Viewer,他们也有可能在另一个第三方查看器中查看并重新保存PDF

我想到了几个最初的备选方案:

  • 使用DRM提供商锁定对文件的访问-由于费用原因,这不是一个选项

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

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


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

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


    我想说的是,方法2非常复杂,会占用您大量的时间,同时仍然容易打印屏幕。我会做第三件事,在那里你可以重用大量的现有代码,并获得类似的安全级别。

    你提到的唯一有可能工作的选项是定制阅读器(而且实现成本不太高)

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

    它也不应该存储任何文件;但只需将密钥和数据加载到内存中,解密图像,然后提供查看

    “困难”的部分将是转换数据,真的。其余的大部分是相当基本的东西

    这里需要注意的是,用户打印屏幕和保存图像仍然很容易


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

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

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


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

    你可以使用脚本或组策略禁用打印屏幕键。 我们举了一个例子

    Windows Shell脚本

    # =============================================================================# 
    #* 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. 
    # ****************************************************************************** 
    

    如果它们那么敏感,就值得用手机摄像头记录或拍照。这不是对你问题的回答,但仍然是一个选择:你可以使用唯一的密码分发支持用户/所有者密码的PDF,这将有助于找到复制泄漏的来源(但当然不会阻止).DRM从未编写过,也永远不可能。计算机不是这样工作的。+1感谢你提到DRM真的不可行。你的公司不信任它的员工?正如在你问题的评论中提到的,拍照也是一种逃避现实的可能。我的猜测是,这可能比您需要考虑的需求要远一点,但是需要记住的是。