我正在建立一个以安全,隐私和匿名为中心的基于网络的应用。该应用程序的主要原则之一是用户可以匿名存储敏感数据 。
因此,我希望完全外包系统身份验证,最好使用OAuth或OpenID。
这甚至可能吗?我想避免在我这边存储电子邮件地址或任何其他类型的用户识别信息。
答案 0 :(得分:2)
首先,OAuth与您项目的范围是完全不同的。
我想这取决于你对“匿名”的定义。如果您使用OpenID,则会保存用户的OpenID网址。换句话说,您的系统将与用户的OpenID完全一样匿名。
更本质上的匿名解决方案可能是让用户输入任意字符串来标识自己。返回用户只需再次输入相同的字符串即可。如果要显示用户的“标识”,可以通过哈希函数运行该字符串。无需注册(与4chan的安全旅行代码不同)。
答案 1 :(得分:2)
几年前,我的一位朋友正在研究这个问题。他的想法是将一个电子邮件地址和一个拇指或指纹散列到一个独特的图像中(生物识别数据只是一个比特流,理论上是一个相当独特的人类输入密码,如“123456”)。
然后可以使用自己的密码或bitlocker将该图像存储在该人的设备上,甚至可以打印出来并将其锁定在物理上。当显示到网络摄像头或上传时,图像将成为关键,即QR码的反转。
当然,图像创建将是潜在的跟踪点。但如果这完全是在内存中或使用免费且广泛分布的密钥生成工具完成的,那么您可能会受到一些法律保护,不必被迫透露原始用户的数据或身份。 (这一切都掩盖了广泛使用生物识别扫描仪和安全连接的需要)
编辑:
生物识别数据流每次拍摄时都会略有不同。如果您按原样散列像这样的流,则没有“密码恢复”,它可能永远不会相同。大多数降维将使其安全性降低,并且可能仍然有可能无法再现。