0

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

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

4

1 回答 1

1

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

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

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

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

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

祝你好运

于 2012-08-21T18:48:11.187 回答