Web身份验证:使用指纹扫描仪

Web身份验证:使用指纹扫描仪,web,applet,raspberry-pi,fingerprint,Web,Applet,Raspberry Pi,Fingerprint,已经存在一个基于Raspberry Pi的终端,其任务是显示网站。这很有效。最终用户只有一个触摸屏来做所有事情,屏幕上只有一个网页 用户身份验证使用用户名和密码完成。两者都很短,因为终端使用触摸界面,安全性对于用例来说不是非常重要 因为输入用户名/密码仍然相对耗时,所以我喜欢在终端上使用指纹扫描仪。用户身份验证仍应在服务器端完成。在第一步中,客户机和服务器之间的通信不是很重要(客户机和服务器总是在同一个本地网络中) 我现在的想法是: 将向终端添加一个。() futronic API用于编写一个小

已经存在一个基于Raspberry Pi的终端,其任务是显示网站。这很有效。最终用户只有一个触摸屏来做所有事情,屏幕上只有一个网页

用户身份验证使用用户名和密码完成。两者都很短,因为终端使用触摸界面,安全性对于用例来说不是非常重要

因为输入用户名/密码仍然相对耗时,所以我喜欢在终端上使用指纹扫描仪。用户身份验证仍应在服务器端完成。在第一步中,客户机和服务器之间的通信不是很重要(客户机和服务器总是在同一个本地网络中)

我现在的想法是:

  • 将向终端添加一个。()
  • futronic API用于编写一个小程序,该程序仅读取扫描仪并将图像存储在本地某处
  • 终端显示的目标网站包含一个隐藏的Java小程序,该小程序已签名并具有所有本地权限
  • 如果用户连接到网站,小程序将启动并运行本地程序以读取指纹图像。然后将此映像发送到服务器,在那里它与一些本地存储的映像进行匹配
  • 服务器使用类似于指纹匹配的软件
  • 当然,网站总是知道当前的应用程序状态,并给用户提示要做什么(例如“现在扫描你的手指”)
  • 这行吗?我认为最困难的是做小程序的事情。有可能这样做吗?尤其是在没有任何警告的情况下。用户甚至不应该知道他正在使用的是一个网站,而不是一个本地应用程序

    或者,除了使用Java小程序访问本地USB连接的指纹扫描仪,还有其他“更干净”的方法吗?例如,自定义浏览器插件


    非常感谢

    我质疑用户不知道他们正在使用独立Java应用程序的好处。Java小程序是一种痛苦。如果您只是使用一个独立的Java程序,您可以这样做:

  • Java程序等待指纹扫描。
  • 指纹被扫描,Java通过https将图像上传到服务器,获取一次性密钥(用于有效扫描)或指示无效扫描的消息。
  • Java告诉用户有关无效扫描的信息并返回到步骤1,或者对于有效扫描,返回到步骤4。
  • Java编写一个本地html页面,其中包含:
    • 一次性代币
    • 提交一次性令牌的表单
    • 登录时提交表单的JavaScript
  • Java将浏览器打开到该临时页面。
  • 当浏览器关闭时,Java会删除页面
  • 小程序不会永远得到支持,而且它们的设置很麻烦。每次更新浏览器或JRE时,都必须重新允许执行此操作的所有权限。小程序也更难测试


    我上面概述的独立解决方案不需要JRE和浏览器进行协调,升级也不可能破坏它。事实上,通过调用操作系统的首选程序来处理.html文件,而不是启动特定的浏览器,可以完全不依赖于浏览器。

    我质疑用户不知道他们正在使用独立的Java应用程序的好处。Java小程序是一种痛苦。如果您只是使用一个独立的Java程序,您可以这样做:

  • Java程序等待指纹扫描。
  • 指纹被扫描,Java通过https将图像上传到服务器,获取一次性密钥(用于有效扫描)或指示无效扫描的消息。
  • Java告诉用户有关无效扫描的信息并返回到步骤1,或者对于有效扫描,返回到步骤4。
  • Java编写一个本地html页面,其中包含:
    • 一次性代币
    • 提交一次性令牌的表单
    • 登录时提交表单的JavaScript
  • Java将浏览器打开到该临时页面。
  • 当浏览器关闭时,Java会删除页面
  • 小程序不会永远得到支持,而且它们的设置很麻烦。每次更新浏览器或JRE时,都必须重新允许执行此操作的所有权限。小程序也更难测试


    我上面概述的独立解决方案不需要JRE和浏览器进行协调,升级也不可能破坏它。事实上,可以通过调用操作系统的首选程序来处理.html文件,而不是启动特定的浏览器,从而使其完全不受浏览器的影响。

    “小程序不会永远得到支持…”现在绝大多数互联网用户都不支持小程序了。看和。你的建议听起来不错:)我只有一个问题:如果用户不按任何按钮,Web应用程序会在几分钟后自动注销。服务器如何与应该开始扫描的客户端java应用程序通信?或者客户端应该进行轮询?Java应用程序可以在单独的线程中启动浏览器,然后返回轮询指纹。下一次指纹扫描成功后,终止所有现有的浏览器会话。或者获取派生线程的进程ID,然后查询netstat以查找浏览器拥有的已打开TCP端口。这些时间最终也会超时,当他们超时时,你知道一段时间内没有任何活动,你可以关闭浏览器。或者您可以让Java充当浏览器和服务器之间的代理。然后它可以直接看到交通堵塞。我肯定还有更多,但我已经没有空间了。“小应用程序不会永远得到支持……”现在绝大多数互联网用户都不支持了。你的建议听起来不错:)我只有一个问题:Web应用程序在几分钟后自动注销