3

我正在考虑为 Linux 实现击键动态(根据他们的打字模式对人进行身份验证)应用程序。在我看来,我有两种选择:

  1. 扩展 Linux 登录以支持击键动态
  2. 创建一个桌面锁程序,它“锁定”屏幕并且只能由具有特定打字模式的打字员解锁

备选方案 1 可能吗?Windows 支持通过 msgina.dll 扩展登录过程,Linux 是否支持类似的东西?

对于altenative 2,是否可以禁用鼠标和键盘?

4

4 回答 4

3

libpam 具有插件功能。所以是的,完全有可能,就像(in)着名的 msgina :)

锁定屏幕是嗯,相当敏感 - 谁负责?窗口管理器,X 服务器,会话管理器,屏幕保护程序,?

恐怕不同的桌面环境(Gnome、KDE...)可能会有不同的意见。虽然这些天来,我很肯定他们都会共享某种 FreeDesktop dbus 接口来协调这种类型的功能。

于 2009-01-18T00:27:54.390 回答
2

假设这不仅仅是一个玩具(换句话说,如果您打算分发),请务必考虑在出现问题时如何绕过打字模式分析。随着时间的推移,我的打字模式可能会发生相当大的变化,因为我的手腕问题时不时出现。当他们这样做时,我的打字可能会发生显着变化。即使我的打字从早到晚都有些变化,我也不会感到太惊讶,因为我或多或少地感到疲倦和/或含咖啡因。

于 2009-01-19T04:51:14.197 回答
0

嘿,Linux 是开源的,你可以做任何你想做的事情 :-)

您很可能不需要修改内核。例如,终端登录是由login程序控制的。更改源并重建它肯定会让你做你需要做的,尽管我不知道这有多困难:-)

图形登录由窗口管理器负责,因此要更改哪个程序取决于您使用的窗口管理器。

编辑:再想一想,我不确定是否login足够早地执行以捕捉击键动态。此外,这有点冒险,因为如果您的登录版本失败,可能会使登录和修复问题变得困难。您可能需要getty查看一下它是如何调用login. 如果您在图形界面中执行此操作,则可能会更容易,因为您始终可以回退到文本终端来解决任何问题。

于 2009-01-18T00:21:01.267 回答
0

执行此操作的正确方法可能是通过 PAM 身份验证模块。在此处查看模块编写者指南:http: //www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_MWG.html

基本上,您可以将您的模块添加到 PAM 堆栈,让它进行击键分析,然后将成功或失败传递给系统。这使您可以将其与控制台登录过程集成,如果在那里启用了 PAM,甚至可以与 SSH 集成。我不太确定它如何与 KDM 或 GDM 等图形登录一起工作。我知道您可以将 PAM 模块与这些模块一起使用,但当然交互是通过 GUI 文本框完成的。

于 2009-01-18T04:19:49.820 回答