【发布时间】:2017-12-08 17:58:13
【问题描述】:
我目前正在构建一个 Web 应用程序 (PHP/MySQL),用于保存来自人员的数据。这些数据中的大部分不值得通过加密保护,但其中一些是收入等财务信息。它不是一个支付应用程序,不存储可以像信用卡信息一样直接转化为金钱的信息,但仍然是您不希望在可能的泄漏中拥有的东西。这个平台必须卖给想要“安全”的客户,但这可能意味着任何事情,因为客户自己并不知道他们真正想要什么,因为他们是商人而不是密码学家(我也不是)。
这是一个管理平台,因此保存财务数据的人不是该平台的用户。该平台的用户只是一个附加权限的登录名。服务器本身永远不必访问数据。每个操作都由登录的用户(也可以是管理员)完成。多个用户需要访问相同的数据,因为他们有足够的权限。
我现在的问题是如何保护财务数据免受这些威胁:
- 有人发现 SQL 注入并远程转储所有表
- 有人盗用服务器硬盘(数据库+代码)
我肯定不会去的地方:大规模嗅探攻击或受损服务器(例如在 SSL 无关紧要的情况下嗅探服务器本身的所有流量)或社会工程/网络钓鱼。
我还想快速总结一下与当前系统相比,我还需要存储多少信息(密钥、数据等),当前系统只有一个简单的收入字段等,还有一个标准登录系统带有用户名和哈希密码。
编辑:几乎完全按照 cmets/answers 的建议重新提出问题
【问题讨论】:
-
我认为您会使用用户密码(但不是密码本身或您保存在数据库中的密码哈希)以可重现的方式生成的密钥做某事,那么您d 要求每次用户需要访问敏感数据时输入密码。这样您就不会将加密密钥保存在代码中。在这种情况下,它的对称或不对称并不重要。
-
@apokryfos 我确实编辑了我的问题,并且可能澄清了一些事情。我想你的评论已经很接近了,所以我也想得到你的答案,这样我就可以投票了:)
-
“我目前正在构建一个 Web 应用程序......这个平台必须卖给客户......” - 您的公司可能应该寻求安全服务建筑师。要么聘请一位,要么咨询一位。您要避免的一件事是将其展示给公司,而该公司的一位安全架构师会审查并拒绝它。 (我曾经是审查供应商产品的安全架构师之一。它们被称为“安全架构评估”)。
标签: php mysql security encryption