我正在制作一个网络应用程序,并希望有一个安全区域,您只能用指纹登录。我最初的想法是只使用一个usb条形码阅读器并扫描它,然后将ID输出到文本框中,但这不是很安全。因此,我想使用USB指纹识别器为每个人生成一个哈希,并将其存储在文本框中。然后,将针对具有每个人的哈希值的数据库进行检查。有没有人知道是否有指纹识别器可以做到这一点,或者我可以轻松地将阅读器集成到网站中?
编辑: 这个网站的想法是,它就像一个登录系统(如果你每小时收到报酬就像你可以进出的那样)。这个想法是没有人可以在其他人身上签字。如果您只是使用密码,那么有人可以告诉他们的朋友可以输入密码的密码。这就是为什么我想到了指纹或类似的东西......我对其他建议持开放态度
另外,我正在使用PHP
编辑2:基本的想法,是我必须想办法通过登记证明有人在那里。我不想使用密码,因为那时有人可以告诉别人他们的密码输入还有其他建议吗?它不一定是指纹。答案 0 :(得分:18)
生物识别技术是一种非常糟糕的身份验证方式,原因有很多:
生物识别技术不是秘密。每当你触摸某些东西时,你就会留下密码。每次拍摄照片时,您的面部图像/视网膜图像都会被复制。密码必须保密才有用。
像Borealid所说,生物识别技术从未完全扫描过两次。所以当你进行匹配时,必须有一些允许输入的软糖因素。这个:
让攻击者更容易复制您的数据并重播,因为他们不必完全匹配。攻击者只需接近即可接受。
它强制身份验证服务器以明文形式存储您的生物信息。您不能像密码那样哈希生物识别数据,因为那时您必须与哈希值完全匹配。
所以不要这样做!
答案 1 :(得分:15)
你完全不能做你想做的事。
指纹永远完全匹配。即使您连续两次扫描自己的右手食指,扫描也不会相同。所以“哈希指纹”将无法工作 - 同一个手指的两个哈希值与两个不同手指的两个哈希值无法区分(具有良好的,密码学上强大的哈希值)。
指纹识别器的工作原理是将一些键存储在板上,当且仅当指纹给出的距离足够接近他们的预期时,才能输出该键。指纹本身不用于直接访问阅读器外的任何内容。
读者通过网络发送的指纹是不可接受的 - 人们很担心将他们的照片发给警察。你认为他们可以把它们交给你吗?
同样不可接受的是让读者说“手指2没问题”。这可能很容易被欺骗。
相反,让您的用户使用X.509(SSL)客户端证书来访问您的站点。如果愿意,他们可以通过指纹识别器控制对其私钥的访问。
编辑:更新此答案。现在在2014年,FIDO联盟的标准称为“UAF”,它允许站点以跨不同站点的方式使用指纹认证。有传言称Paypal即将开始使用它。
答案 2 :(得分:3)
远程身份验证的生物统计学永远不会安全。您无法知道具有该指纹的真实手指是否在阅读器中,或者用户是否仅向您发送图像。因此,指纹只会成为用户永远无法更改的密码,这对于您登录的每项服务都是相同的,并且留在用户触摸的每个对象上。
生物测量只能用于本地认证,您可以信任读者不被黑客攻击(即您对阅读器具有物理控制权),并且阅读器可以将真实的手指/眼睛/ ...与假手指区分开来。哪个最不能。
可以创建指纹的单向散列。首先必须像提取模糊匹配一样提取一些可观察对象。但是,由于您需要与哈希值完全匹配,因此您需要在提取的值处输入错误代码,然后才能纠正每次测量的微小差异。编码并不容易,并且它不能解决上面列出的基本问题,但它应该是可能的。
答案 3 :(得分:1)
那么您想使用本地身份验证机制来验证远程资源吗?这里有很多问题表明这不是一个明智的选择。例如,Web应用程序如何知道散列属于原始用户而不是具有重复的人?
我建议的是,几年前当他们将智能卡读卡器发送给信用卡客户时,可以选择银行的路线。使用指纹扫描程序存储用户登录名的本地副本,需要第二种形式的身份验证,例如密码。
答案 4 :(得分:1)
这太虚伪了。为什么不加密指纹?您的主服务器已加密存储,您将加密的主服务器发送到服务器。服务器软件对两者进行解密并进行比较。简单。您的专家'解决方案是虚假的。
答案 5 :(得分:0)
为什么不使用面部匹配软件进行身份验证。