【发布时间】:2014-06-20 04:38:50
【问题描述】:
我一直在研究我的 Web 应用程序的数据库层的加密。它使用的是 MySQL 5.1(或更高版本,我不记得了)。
由我的组织管理的应用程序为公共客户存储数据。
最简单的选择是 AES_ENCRYPT/AES_DECRYPT,如果坏人以某种方式访问了我的数据库(假设他们不知道密钥),这将有所帮助。
但是,我想更进一步,防止我组织中的任何人查看以未加密形式为客户存储的任何数据。
我们使用这个前提来存储密码;我们在应用程序级别加密原始密码,并将其与数据库级别的预加密密码进行比较。这显然是一种非常常见的方法,但我们有来自用户的输入 - 与我尝试做的关键区别是我们无法存储未加密的“密钥”并且使用用户的密码是有问题的,因为(除了另一个原因)如果他们改变它,所有的加密数据都必须改变。
我无法理解这个想法(您可能已经猜到我不是密码学专家),但希望 Google 能提出一些建议。不幸的是,我找不到太多东西。如果有任何关于从哪里开始研究的指示,我将不胜感激。
【问题讨论】:
-
您的威胁模型是什么?也就是说,你想保护什么?
-
数据属于财务性质;银行账户,交易细节等。因此,它是敏感数据,不能泄露。目前,该应用程序仍在开发中,因此仍在探索威胁可能来自何处。但不能排除在组织内部,因此我有兴趣阻止任何人查看存储的数据。
-
您的 Google 搜索字词是“加密密钥管理”。预计会有一个陡峭的学习曲线。
-
谢谢 PaulG,至少我知道应该把我的研究工作导向哪里。很有趣的阅读,虽然你说的很复杂。
标签: php mysql security encryption