我正在用PHP开发一个车队管理系统。我的位置跟踪是GPS (基于短信):我收到一个短信,其中包含坐标(Lat,Lng)。
我要的是加密这些坐标。当涉及到数据库时,它应该被加密,当我的web应用程序需要它时,它应该将(解密)转换成它的原始形式。我想保护坐标不被非法进入。
现在,我应该如何并在哪里对这些数据进行加密和解密?我需要你的意见--我找了很多,但没有成功。
发布于 2015-04-16 11:14:59
加密这些坐标可能没有任何意义--任何访问您数据库的人,例如数据库管理员,都可能还可以访问web服务器上的解密密钥(假设您正在考虑使用对称加密)。因此,你应该弄清楚你想要防范什么样的威胁,然后看看你的方法是否能做到这一点。
如果你担心黑客,同样的规则适用于流氓员工:一个可以窃取你的数据库副本的黑客很可能能够从网络服务器上窃取文件。
如果您的位置数据不需要经常被解密,或者如果有人必须输入密码才能看到它,这可能更容易实现。您可以用公钥加密坐标,然后才能用密码保护的私钥解密它们。获取公钥的攻击者将无法使用该公钥解密。
同样值得考虑的是,这些数据是否如此宝贵和私密,是否值得加密:您可以将花费在此项目上的资金用于第三方代码安全审计。
最后,如果出于数据保护的原因,这些数据被视为私有数据,则考虑对数据进行模糊化(即引入少量随机不准确),而不是对其进行加密。这只是一个选项,如果你不需要你的车辆的精确坐标。这是一种数据保护技术,在健康试验中使用匿名数据,精确的位置数据会造成隐私风险。当然,准确的位置数据是有用的车辆跟踪在发生盗窃,所以你需要决定你的优先事项在这里。
进一步阅读:您可能对一本名为半透明数据库的书感兴趣,这本书在构建受数据保护的数据库系统时考虑了加密、散列和模糊处理。这是一篇发人深省的读物。
发布于 2015-04-16 14:40:33
我想给出的建议是获得一个HSM (硬件安全模块)--类似于YubiHSM,并将其安装在一个服务器上。围绕它构建一个API来加密和解密数据。
那就没有钥匙可以偷了。攻击者要解密数据,就需要窃取HSM。没有物理芯片(无法复制),数据是无用的。
发布于 2015-04-16 10:55:53
为了充分的安全,他们应该加密之前,因为他们是通过短信发送。这样的话,没有人可以尝试获取短信,并读取其中的电线。其次,您可以检查购买是否正确,以确保您通过SMS获得的数据是有效的。所有这些都可以通过加密密钥来完成。但是这些需要被发送者和抵抗者知道。
当数据存储在DB中时,也可以加密。但是这样的话,到DB的所有方式都是不安全的,并且可能被用于攻击。
我最大的理解是,要么有人接到不适合阅读的短信,要么戴上有人发送带有虚假数据或注入的损坏短信。
https://stackoverflow.com/questions/29672449
复制相似问题