使用JQuery进行简单击键动力学(KD)测量

时间:2011-02-14 16:10:27

标签: javascript jquery microsoft-dynamics keystroke biometrics

我想开发一个简单的应用来测量文本区域/框中的停留时间和飞行时间(请参阅http://www.techrepublic.com/article/reduce-multi-factor-authentication-costs-with-behavioral-biometrics/6150761)。如何使用keypress()或keydown()up()方法记录这些事件?

3 个答案:

答案 0 :(得分:4)

我不明白为什么这不值得。仅仅因为Javascript可以在客户端修改并不意味着攻击者可以重现实际用户的输入模式。

在客户端执行此操作还有一个额外的好处,即保持用户的数据私密(例如,您实际上并未收集用户的击键,而只是收集与其输入模式相关的信息)。

我确信仍然存在隐私问题,但这是一种非常有趣的身份验证(或审核/检测)控制。

答案 1 :(得分:0)

我相信这种方法在现实环境中不会有成效,因为你在Javascript中所做的任何处理,原则上都可以通过使用简单的javascript调试器或Firebug等程序轻松修改。 / p>

也就是说,你可以用这种方式衡量这两个指标:

  • 停留时间 = keydown()keyup()之间的时间。在keydown()方法中保存当前时间,并在keyup()计算twell时间作为当前时间与keydown()时间之间的差异。
  • 航班时间:从您链接的文章的图中我不能轻易理解它是如何定义的,但我会将其计算为离开最后一个键时的差异({{ 1}})当你开始按下一个键(keyup())时。因此,在keydown()中保存时间,例如keyup(),并在last_key_time中将广告时间计算为current_time - keydown()

答案 2 :(得分:0)

请在此处查看示例:http://jsfiddle.net/VDMPt/ source

但正如安德里亚所说,由于Javascript是客户端,因此不值得。

var xTriggered = 0;
$('#target').keyup(function(event) {
  if (event.keyCode == '13') {
     event.preventDefault();
   }
   xTriggered++;
   var msg = 'Handler for .keyup() called ' + xTriggered + ' time(s).';
  $.print(msg, 'html');
  $.print(event);
});

$('#other').click(function() {
  $('#target').keyup();
});