我想建立一个应用程序,基本上是一个短信订阅服务。
用户通过我的网站提交电话号码。我向他们发送带有密钥的确认文本,如果他们正确输入了密钥,则他们将被订阅,此后每天我都会向他们发送带有特定消息的文本,直到他们取消订阅。
问:我希望以一种我(开发人员或存储层管理员)无法查看这些电话号码的方式存储这些电话号码,以保护隐私。我不能只是散列存储它们,那么我的应用程序如何读取它们来发送文本消息?我该怎么做呢?
编辑:这是一个安全和隐私问题...我希望黑进我的系统的人不能获得任何电话号码,即使他们有完全访问数据库的权限。
发布于 2012-01-21 15:01:06
我想加密是你唯一的选择。您必须对电话号码进行加密,但只允许软件/服务应用程序访问密钥。您可以将密钥存储在离线系统上,并让应用程序通过SSH或SSL检索密钥,只将其存储在内存中。这并不是说密钥对管理员来说是100%安全的,但它们只是电话号码,无法想象一个人为了手机号码花费了大量的精力。
发布于 2012-01-21 15:39:59
当系统上的软件可以解密它们时,任何有足够权限访问系统的人都可以解密。您能做的最好的事情就是通过对实际的消息传递部分使用专用系统来降低风险。通过将消息传递作为此系统唯一能做的事情,您可以限制入侵系统的选项。则通过使用公钥/私钥加密,消息传送系统将是唯一需要解密密钥的系统。用于实际注册用户或更改电话号码的系统将只需要加密密钥。
现在,如果您想进一步保护解密密钥,您可以通过设置一个没有人知道的密码来使管理员无法访问此系统,并且可以禁用所有登录方法。哦,还要确保密钥只存在于内存中,而不是磁盘上!
如果此消息传递系统出现故障,您将需要启动一个新的消息传递系统,您需要该系统的密钥。所以你想把钥匙的副本放在安全的地方,放在不同人拥有钥匙的多个锁后面。然后,这些人可以监督密钥被正确地输入到新系统中,而不需要任何其他人制作密钥的任何副本,并且之后所有登录都被适当地禁用。
https://stackoverflow.com/questions/8951246
复制相似问题