保持用户匿名 – 安全数据库唯一选项 – 一般思路?

我正在研究一个Web应用程序,在那里正在考虑如何保持用户的身份完全匿名。

但是我已经得出结论 ,除了专注于保护数据库免遭黑客攻击之外,我可以做的不多。

这是在StackOverflow的一般共识,还是有我可能错过了任何方法?

所以我想:

  • 然而,直接的encryption哈希和盐会导致与用户联系的各种原因。
  • 密码重置。 我可以保存恢复问题/答案,但当然,答案将需要可读性,以打败事情。
  • 还有一点就是说他们忘记了这些安全问题或我在注册时产生的用户名。 没有办法将他们链接到一个帐户。
  • 还有什么想到(假设我征服了上述)限制重复的用户。 如果我在加工过程中进行哈希/腌制search会相当“沉重”? 我可以简单地保留一个使用的电子邮件的长长的名单,但那么问题再次链接到一个现有的帐户?

有兴趣听到你的想法。

谢谢。

       

网上收集的解决方案 "保持用户匿名 – 安全数据库唯一选项 – 一般思路?"

我认为你描述的一个场景是可能的。 您可以在login时向用户提供解密令牌。 令牌可以分配给前端应用程序中的variables,所以如果他们离开网站或页面,令牌将丢失,他们将不得不再次login。

使用令牌,应用程序可以解密来自服务器的encryption数据。 所以,所有的数据都可以使用令牌进行encryption。 然后,如果需要更改密码,则可以在生成新密码时生成新的令牌,并且服务器必须解密,然后使用新令牌重新encryption所有数据。 通过这种方式,您可以在使用SSL时对所有服务器文件,代码和数据库进行encryption,以便所有数据都是匿名的,直到到达用户的显示位置。 用户login将是获取令牌解密来自服务器的任何数据的唯一方法。 这会大大降低服务器的性能。

爱特梅尔在其微芯片中使用这种技术,可以从设备到云端进行100%的encryption。 这对于芯片是有意义的,因为用户不需要直观地与其交互。 在webapp的情况下,需要有一些方法来解密数据以供显示。 这限制了可能性。

这里有几个链接,可能会有用的这样做: https://www.jamesward.com/2013/05/13/securing-single-page-apps-and-rest-services https://www.fourmilab .CH / javascrypt / javascrypt.html

这是使用上述安全方法的Atmel芯片的链接。 http://www.atmel.com/products/security-ics/cryptoauthentication/

首先,完全匿名的唯一方法是永远不要上网。 没有什么,我什么都没有意思,是完全安全的。 任何哈希,encryption,数据库等可以被破解。 如果一个恶意的“黑客”真的想要这些信息,他们会find一种方法来获取它,不pipe你多么努力。

现在已经说了,你所描述的是可能的,例如,看看Tor,代理,VPN等,如果你完全encryption从用户获取的信息的每一个位,然后你进入了一些东西。 这可能会成为一个问题,如果出了问题,例如说你三重散列,多盐所有的散列,并遇到一个问题,你需要解密的用户信息(为了争辩,FBI请求)一个使用MD5encryption的单盐渍散列可以花费2-5小时解密/破解。 你已经encryption了所有的信息,包括IP,用户名,密码,电子邮件,名字等,现在你可能每天都在查看单个用户的密码。

不过,你可以按照制作encryption隧道的方式来做一些事情,用户必须通过浏览器访问才能运行浏览器(有点像VPN),然后从浏览器的URL中抛出代理来进一步提升规则。 这样,用户就可以使用不同IP的encryption隧道,并使用通过隧道提供的IP。 你甚至可以每隔一段时间跳一次IP,改变代理。

现在让我们来保护数据库,我会build议使用多腌制散列,用口令保护它们,并从数据库所在的计算机上删除口令。 如果您需要访问哈希进行解密,这也会很麻烦。

我说这样做,最糟糕的是你会有一个用户的痕迹。 但是要记住,如果你成功地创造了这个,那么有恶意的人会试图利用它,只是为了看看他们是否可以。