我正在开展一个我们打算为发展中国家启动的项目,因此,我希望限制登录和识别所需的信息量,同时仍保持个人隐私和安全。
与团队交谈时,很明显密码是不行的,因为用户可能最终只有在第三方提供访问互联网的机会时才能访问该服务(甚至一年一次或两次)。在那种情况下,记住密码、使用电子邮件或任何类似的东西都行不通。
整个事情是我需要存储一些关于每个用户的数据,我不想知道它是谁的数据。它不是特别敏感的数据,但我正在尝试构建一些尽可能保护隐私的东西。
因此,我想知道如何用他们知道的信息来识别用户,并且不需要付出任何额外的努力去记住。
因此,我们将可用信息缩小到:全名和出生日期(即使出生日期对某些人来说也是个问题)。直观地说,看起来人们无法使用这些数据构建非常安全的东西。name 和 DoB 的一个关键缺陷是,人们可以轻松地遍历“John Smith”的所有组合以及所有可能的出生日期,并找到匹配的哈希值。
因此,我们想到的一个粗略的解决方案是对名称和 DoB 进行哈希处理并用作“用户名”(当然,所有这些都发生在后台)。一些额外的措施是打乱出生日期并在哈希中添加盐。
然后将通过面部识别进行身份验证。这个想法是使用名称和 DoB 的某种组合来加密用户的图片,因此至少数据库管理员不容易访问它。
用户将仅使用他们的姓名、DoB 和图片登录系统,该系统将首先搜索哈希值直到找到匹配项,然后解密相应的图片并比较两张图片以允许登录与否。
总之,用户凭据将类似于:
SHA256(NAME + SCRAMBLED_DOB + SALT) => AES(PICTURE_DATA, (NAME+SCRAMBLED_DOB))
盐也可以添加到图片的加密中,这样,在登录时:
- SCRAMBLED_DOB 的所有潜在版本都使用多个盐进行测试,直到找到数据库中包含的哈希
- 从步骤 1 中找到的 DoB 中的特定哈希和数字序列用于解密图像
- 图像与登录时提交的图像进行比较,然后丢弃
这个过程可能会很长,但取决于多长时间,以隐私的名义可能是可以接受的。
所以,基本上,我想知道的是:
SHA256(NAME + SCRAMBLED_DOB + SALT)考虑到项目的要求,是否足够安全?- 有什么更好的加密图片方法的建议吗?
- 对这个系统整体有什么建议吗?
提前致谢!