我正在考虑为 Linux 实现击键动态(根据他们的打字模式对人进行身份验证)应用程序。在我看来,我有两种选择:
- 扩展 Linux 登录以支持击键动态
- 创建一个桌面锁程序,它“锁定”屏幕并且只能由具有特定打字模式的打字员解锁
备选方案 1 可能吗?Windows 支持通过 msgina.dll 扩展登录过程,Linux 是否支持类似的东西?
对于altenative 2,是否可以禁用鼠标和键盘?
我正在考虑为 Linux 实现击键动态(根据他们的打字模式对人进行身份验证)应用程序。在我看来,我有两种选择:
备选方案 1 可能吗?Windows 支持通过 msgina.dll 扩展登录过程,Linux 是否支持类似的东西?
对于altenative 2,是否可以禁用鼠标和键盘?
libpam 具有插件功能。所以是的,完全有可能,就像(in)着名的 msgina :)
锁定屏幕是嗯,相当敏感 - 谁负责?窗口管理器,X 服务器,会话管理器,屏幕保护程序,?
恐怕不同的桌面环境(Gnome、KDE...)可能会有不同的意见。虽然这些天来,我很肯定他们都会共享某种 FreeDesktop dbus 接口来协调这种类型的功能。
假设这不仅仅是一个玩具(换句话说,如果您打算分发),请务必考虑在出现问题时如何绕过打字模式分析。随着时间的推移,我的打字模式可能会发生相当大的变化,因为我的手腕问题时不时出现。当他们这样做时,我的打字可能会发生显着变化。即使我的打字从早到晚都有些变化,我也不会感到太惊讶,因为我或多或少地感到疲倦和/或含咖啡因。
嘿,Linux 是开源的,你可以做任何你想做的事情 :-)
您很可能不需要修改内核。例如,终端登录是由login
程序控制的。更改源并重建它肯定会让你做你需要做的,尽管我不知道这有多困难:-)
图形登录由窗口管理器负责,因此要更改哪个程序取决于您使用的窗口管理器。
编辑:再想一想,我不确定是否login
足够早地执行以捕捉击键动态。此外,这有点冒险,因为如果您的登录版本失败,可能会使登录和修复问题变得困难。您可能需要getty
查看一下它是如何调用login
. 如果您在图形界面中执行此操作,则可能会更容易,因为您始终可以回退到文本终端来解决任何问题。
执行此操作的正确方法可能是通过 PAM 身份验证模块。在此处查看模块编写者指南:http: //www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_MWG.html
基本上,您可以将您的模块添加到 PAM 堆栈,让它进行击键分析,然后将成功或失败传递给系统。这使您可以将其与控制台登录过程集成,如果在那里启用了 PAM,甚至可以与 SSH 集成。我不太确定它如何与 KDM 或 GDM 等图形登录一起工作。我知道您可以将 PAM 模块与这些模块一起使用,但当然交互是通过 GUI 文本框完成的。