我有一台离线信息亭计算机,它将运行 LAMP 网络服务器并托管一个表格,供人们上前填写。他们提交的数据将被加密并存储在 MySQL 数据库中(全部存储在该机器本地)。
令人担忧的是,如果整个盒子被盗,有人可能会进入代码,查看加密密钥并解密数据。
即使整台机器被盗,是否有任何方法可以使加密数据变得无用?(即保存在其他地方的加密密码,但仍允许在使用信息亭时对新输入的表单数据进行加密和存储)?
谢谢。
我有一台离线信息亭计算机,它将运行 LAMP 网络服务器并托管一个表格,供人们上前填写。他们提交的数据将被加密并存储在 MySQL 数据库中(全部存储在该机器本地)。
令人担忧的是,如果整个盒子被盗,有人可能会进入代码,查看加密密钥并解密数据。
即使整台机器被盗,是否有任何方法可以使加密数据变得无用?(即保存在其他地方的加密密码,但仍允许在使用信息亭时对新输入的表单数据进行加密和存储)?
谢谢。
你的“攻击者”有多聪明?
您可以使用 ram 中的钥匙,这样当机器断电时它会(有点)消失。为此,您可以将一些 ram 挂载为分区(ramdisk)并让代码从那里加载密钥。
但是,防止密钥接触磁盘可能很困难。例如,操作系统可以将其换出。
编辑:
聪明的攻击者可以通过以下任一方式规避这一点:
您还可以做一些轻微的反逆向工程,并将代码拼凑在代码中。那样的话,读出来就不会是微不足道的(但也不是那么难)。
您可以使用非对称加密算法(例如 RSA)来实现这一点。有了它,您将拥有一对密钥,一个私有的和一个公共的。并且顾名思义,公钥对每个人都是可用的,所以用户数据可以用这个公钥加密,加密后的数据只能使用对应的私钥解密,在旅游案例机器所有者将保留。因此,即使有人偷了你的机器,人们也很难解密数据。