22

我正在制作一个 Web 应用程序,并希望有一个安全区域,您只能使用指纹登录。我最初的想法是只使用一个 USB 条形码阅读器,然后你扫描它,它将 ID 输出到一个文本框中,但这不是很安全。所以我想使用 USB 指纹读取器来为每个人生成一个哈希值并将其存储在一个文本框中。然后它将根据每个人的哈希值检查数据库。有谁知道那里是否有可以做到这一点的指纹读取器,或者我可以轻松地将读取器集成到网站中?

编辑:这个网站的想法是,它就像一个登录系统(有点像如果你按小时获得报酬,你可以如何打卡进出)这个想法是没有人可以签入和签出其他人。如果您只使用密码,那么有人可以告诉他们的朋友可以输入密码的密码。这就是为什么我想到指纹或类似的东西......我愿意接受其他建议

另外,我正在使用 PHP

编辑 2:基本的想法是,我必须想出一种方法来通过签到来证明有人在那里。我不想使用密码,因为这样有人可以告诉别人他们的密码来输入。任何其他建议?它不一定是指纹。

4

6 回答 6

20

出于多种原因,生物识别技术是一种非常糟糕的身份验证方式:

  1. 它们本质上只是一个您永远无法更改的密码。(至少不是没有一些严重的痛苦!)使用传统的密码方案,如果您的密码被盗或被猜到,您至少可以更改它。但是如果有人偷了你的指纹,现在你会怎么做?
  2. 生物识别技术并不是秘密。每次您触摸某物时,您都会留下密码。每次拍摄照片时,您的面部图像/视网膜图像都会被复制。密码必须保密才能有用。

  3. 就像 Borealid 所说的那样,生物识别技术永远不会被完全相同地扫描两次。因此,当您进行匹配时,必须有某种软糖因素来允许输入。这个:

    1. 只是让攻击者更容易复制您的数据并重放它,因为他们不必获得完全匹配。攻击者只需靠近即可被接受。

    2. 它强制身份验证服务器以明文形式存储您的生物特征信息。您不能像对密码一样对生物特征数据进行哈希处理,因为那样您就必须与哈希值完全匹配。

所以不要这样做!

于 2010-11-12T23:16:06.227 回答
18

你不能做你想做的事,完全正确。

指纹永远不会完全匹配。即使您连续两次扫描自己的右手食指,扫描结果也不相同。所以“对指纹进行散列”是行不通的——同一手指的两个散列与两个不同手指的两个散列无法区分(具有良好的、加密的强散列)。

指纹读取器通过在机上存储一些密钥来工作,并且当且仅当给出的指纹与他们期望的指纹足够接近时才释放该密钥。指纹本身不用于直接访问阅读器之外的任何内容。

通过网络发送读者看到的指纹是不可接受的——人们对将指纹交给警察感到紧张。你认为他们会给你吗?

让读者说“手指 2 还可以”也是不可接受的。这很容易被欺骗。

相反,让您的用户使用 X.509 (SSL) 客户端证书来访问您的站点。如果他们愿意,他们可以通过指纹读取器控制对其私钥的访问。

编辑:更新这个答案。现在在 2014 年,FIDO 联盟制定了一个名为“UAF”的标准,该标准允许站点以跨不同站点工作的方式使用指纹认证。有传言说 Paypal 将很快开始使用它。

于 2010-11-12T22:40:30.013 回答
4

用于远程身份验证的生物特征永远不安全。您无法知道带有该指纹的真实手指是否在阅读器中,或者用户是否只向您发送了图像。因此,指纹只是成为用户永远无法更改的密码,对于您登录的每个服务都是相同的,并且留在用户触摸的每个对象上。

生物识别只能用于本地身份验证,您相信阅读器不会被黑客入侵(即您可以物理控制阅读器)并且阅读器可以区分真实的手指/眼睛/......与假的。大多数不能。

可以创建指纹的单向哈希。您首先必须提取一些可观察值,就像您可能为模糊匹配所做的那样。但是由于您需要与哈希完全匹配,因此您需要在提取的值处抛出错误代码,然后可以纠正每次测量的微小差异。编码并不容易,也不能解决上面列出的基本问题,但应该是可能的。

于 2010-11-12T22:45:49.587 回答
1

这太假了。为什么不能加密指纹?你的主人是加密存储的,你向服务器发送一个加密的。服务器软件对两者进行解密并进行比较。简单的。您的“专家”解决方案是虚假的。

于 2014-04-25T01:00:34.983 回答
1

那么你想使用本地认证机制来认证远程资源吗?这里有很多问题表明这不是一个明智的选择。例如,Web 应用程序如何知道哈希属于原始用户而不是具有重复项的人?

相反,我建议采用几年前银行将智能卡读卡器发送给信用卡客户的方式。使用指纹扫描仪存储用户登录名的本地副本,需要第二种形式的身份验证,例如密码。

于 2010-11-12T22:45:26.630 回答
0

为什么不使用面部匹配软件进行身份验证。

http://www.oculislabs.com/products/privateeye

于 2011-01-12T23:31:52.473 回答