本地Web服务器上的双向加密,可能会被窃取

3
我有一台离线的kiosk电脑,将运行一个LAMP网站服务器并托管一个表单供人们填写。他们提交的数据将被加密并存储在一个MySQL数据库中(全部存储在该机器上)。
问题是如果整个盒子被盗了,某人有可能进入代码,查看加密密钥并解密数据。
有没有办法以一种方式完成此设置,即使整个机器被盗也能使加密的数据无效?(例如,在其他地方保留加密密码,但仍允许在使用kiosk时加密和存储新输入的表单数据)?
谢谢。
3个回答

3

这就是你所需要的。公钥加密可以让任何拥有公钥(例如,自助亭)的人进行加密,只有私钥持有者(即你)才能进行解密。但是,在自助亭的数据库中无法使用数据。 - rojoca
嗯...但是在亭子里它不是双向的? - Øyvind Skaar
这个亭子只是用来收集数据的。数据将定期从亭子中提取并带回办公室进行解密。 - insomniak29

0

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

你可以将密钥放在RAM中,这样当机器失去电源时,密钥就会消失(某种程度上)。要做到这一点,你可以将一些RAM挂载为分区(ramdisk),并让代码从那里加载密钥。

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

编辑:

聪明的攻击者可以通过以下两种方式规避此问题:

  1. 在窃取计算机之前复制密钥
  2. 搜索磁盘以找到密钥...或者可能只找到部分然后用暴力方式破解剩下的部分。正如我所说,让密钥永远不接触磁盘可能很困难...

你也可以进行轻微的反反汇编,并在代码中拼凑代码。这样,读取代码就不是一件易事了(但也不是太难)。


0

您可以使用非对称加密算法(例如RSA)来实现此目的。这样,您将拥有一对密钥,一个私钥和一个公钥。正如其名称所示,公钥将对所有人可用,因此用户数据可以使用此公钥进行加密,并且只能使用相应的私钥解密加密数据,而在您的情况下,机器所有者将保留该私钥。因此,即使有人窃取了您的机器,也很难解密数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接