3

我有一台离线信息亭计算机,它将运行 LAMP 网络服务器并托管一个表格,供人们上前填写。他们提交的数据将被加密并存储在 MySQL 数据库中(全部存储在该机器本地)。

令人担忧的是,如果整个盒子被盗,有人可能会进入代码,查看加密密钥并解密数据。

即使整台机器被盗,是否有任何方法可以使加密数据变得无用?(即保存在其他地方的加密密码,但仍允许在使用信息亭时对新输入的表单数据进行加密和存储)?

谢谢。

4

3 回答 3

3

试试这个:http ://andytson.com/blog/2009/07/php-public-key-cryptography-using-openssl/

于 2010-10-14T15:27:53.650 回答
0

你的“攻击者”有多聪明?

您可以使用 ram 中的钥匙,这样当机器断电时它会(有点)消失。为此,您可以将一些 ram 挂载为分区(ramdisk)并让代码从那里加载密钥。

但是,防止密钥接触磁盘可能很困难。例如,操作系统可以将其换出。

编辑:

聪明的攻击者可以通过以下任一方式规避这一点:

  1. 在他们偷走盒子之前复制钥匙
  2. 在磁盘周围挖掘以找到密钥..或者可能是其中的一部分并暴力破解其余部分。正如我所说,让钥匙永远不接触磁盘可能很困难..

您还可以做一些轻微的反逆向工程,并将代码拼凑在代码中。那样的话,读出来就不会是微不足道的(但也不是那么难)。

于 2010-10-14T15:28:42.123 回答
0

您可以使用非对称加密算法(例如 RSA)来实现这一点。有了它,您将拥有一对密钥,一个私有的和一个公共的。并且顾名思义,公钥对每个人都是可用的,所以用户数据可以用这个公钥加密,加密后的数据只能使用对应的私钥解密,在旅游案例机器所有者将保留。因此,即使有人偷了你的机器,人们也很难解密数据。

于 2010-10-15T06:47:17.267 回答