Php 本地Web服务器上可能被盗的双向加密

Php 本地Web服务器上可能被盗的双向加密,php,mysql,security,encryption,kiosk,Php,Mysql,Security,Encryption,Kiosk,我有一台离线的信息亭计算机,它将运行一个LAMP网络服务器,并为人们提供一个表格供他们走近并填写。他们提交的数据将被加密并存储在MySQL数据库中(所有数据都存储在该机器的本地) 问题是,如果整个盒子被偷,有人可能会进入密码,看到加密密钥并解密数据 是否有任何方法可以完成此设置,即使整个机器被盗,也会使加密数据变得无用?(即,保存在别处的加密密码,但仍允许在使用信息亭时对新输入的表单数据进行加密和存储) 谢谢。试试这个:你的“攻击者”有多聪明 你可以把钥匙放在ram里,这样当机器断电时它就会消失

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

问题是,如果整个盒子被偷,有人可能会进入密码,看到加密密钥并解密数据

是否有任何方法可以完成此设置,即使整个机器被盗,也会使加密数据变得无用?(即,保存在别处的加密密码,但仍允许在使用信息亭时对新输入的表单数据进行加密和存储)

谢谢。

试试这个:

你的“攻击者”有多聪明

你可以把钥匙放在ram里,这样当机器断电时它就会消失。为此,您可以装载一些ram作为分区(ramdisk),并让代码从那里加载密钥

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

编辑:

聪明的攻击者可以通过以下方式绕过此漏洞:

  • 在他们偷箱子之前复制钥匙
  • 在磁盘周围翻找钥匙。。或者可能是其中的一部分,其余部分则是蛮力。正如我所说,防止钥匙接触磁盘可能很困难

  • 你也可以做一些简单的反逆向工程,把代码拼凑在一起。这样,读出它就不难了。

    您可以使用非对称加密算法(例如RSA)来实现这一点。这样你就有了一对钥匙,一把私人钥匙和一把公共钥匙。顾名思义,公钥对每个人都是可用的,因此用户数据可以用这个公钥加密,而加密的数据只能用相应的私钥解密,在巡回赛中,机器所有者将保留私钥。因此,即使有人偷了你的机器,这将是非常困难的人解密的数据

    这就是你需要的。公钥加密允许任何拥有公钥的人(例如,信息亭)进行加密,而只有私钥持有者(您)才能解密。但是,您将无法使用kiosk.Awesome上数据库中的数据。非常感谢。我想这正是我需要的。。但信息亭不是双向的?信息亭只是用来收集数据的。数据将定期从信息亭中取出,并带回办公室进行解密。