【问题标题】:Image encryption for storage in PHPPHP中用于存储的图像加密
【发布时间】:2012-08-16 23:09:36
【问题描述】:

我遇到了一种情况,不确定如何最有效地处理它。客户现有系统是为更改、盖章、签名等而构建的。PDF——也将 PDF 页面转换为图像 (png) 以供显示/查看,需要“保护”以处理医疗/法律文件和文档可能包含个人信息。

如果可以避免的话,我们不会直接将任何内容写入磁盘,尽可能多地保存在数据库中。我熟悉使用 mcrypt 来散列密码等 - 这是否是一种合理的方法来存储页面图像和生成的 PDF 直到检索?我是否正在考虑严重的处理开销?有更好的方法吗?

【问题讨论】:

  • 如果您在美国,HIPAA 将成为您的法律合规难题。
  • 如果您不想保存到磁盘,为什么要使用 PDF?只需使用安全的网络文档直接与您的数据库交互。
  • 是的,是的,这是我们试图尽可能谨慎和谨慎地处理这一问题的原因之一。
  • 147388:客户要求,用户希望下载这些文件的副本,但并非所有文件都是敏感文件。
  • 只要这些图像在处理过程中不会被保存到硬盘中(因为程序员懒惰或主内存太小),并且你将生成的 pngs 保存到数据库中,它主要是一个数据库相关权限问题(是否允许用户 X 检索包含 png 的 blob Y?)

标签: php security encryption mcrypt


【解决方案1】:

保护系统是一个相当广泛的话题,但您似乎专注于保护敏感数据的持久存储免受未经授权的访问。换句话说,您想让有权访问数据库的入侵者或 illojal 员工更难查看他不应该查看的 pdf 文档。 正如您所建议的,一种方法是加密数据库中的文档。这里重要且困难的决定是如何管理加密密钥。您应该问自己的问题是:

1) 我如何存储加密密钥,以便应用程序可以访问它们,而入侵者或 illojal 员工却不能?您当然可以不将它们存储在数据库中(如果您可以信任数据库,则根本不必加密文档)。一种安全但繁琐的解决方案是让受信任的员工在您启动应用程序时键入密钥并将其仅存储在内存中。另一种方法是创建一个特殊的、受保护的子系统,它只加密和解密文档。

2) 什么加密算法足够强大?您可能应该防止攻击者可以将您的许多或全部文档复制到他自己的系统并使用不同的技术来破解加密的情况。理论上,只要有足够的时间和硬件,所有算法都是可以破解的,因此这里的权衡是使用一种算法和密钥长度,使其几乎不可能破解加密,同时具有可接受的处理开销(您需要的处理能力越少解密文档,攻击者破解您的加密所需的处理能力越少)。

3) 文档的有效期是多久?加密方案和密钥不应该永远存在。您应该设计一个系统,您可以定期更改您的密钥,并在它们过时时更改加密算法。您还必须能够处理发现加密密钥被泄露的情况。换句话说,必须很容易更改密钥并使用新密钥重新加密所有文档。

保护系统当然需要您做的不仅仅是加密文档,但保护您的持久数据并不是一个糟糕的开始。

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 2018-03-05
    • 2019-09-12
    • 1970-01-01
    • 2013-04-02
    • 2016-07-19
    • 1970-01-01
    相关资源
    最近更新 更多