专利名称:虚拟用户认证系统和方法
虛拟用户i/a正系统和方法
背景技术:
通常通过验证与用户相关的一个或多个安全凭证(credential )(例 如,用户名、密码、个人识别码(PIN)等)来认证计算平台的用户。 认证信息也可以与密码令牌(cryptographic token)或智能卡结合使
用来提供多因素认证以加强用户的安全性和真实性。然而,存在执行存 储器扫描和/或鍵击记录(keystroke logging)的各种程序。因此,容
易危及安全凭证的安全性(例如,当用来访问强化安全的 (security-hardened)密码令牌或智能卡时)。
为了更全面地理解本发明及其优点,现在结合附图参考下面作出的 描述,附图中
图1是示出根据本发明的虛拟用户认证系统的实施例的图; 图2A和2B是示出根据本发明的虛拟用户认证方法的实施例的流程 图;以及
图3是示出根据本发明的虛拟用户认证系统的另 一实施例的图。
具体实施例方式
通过参考附图1 - 3可以最好地理解本发明的优选实施例及其优点, 相似的附图标记被用于各个附图中的相似和相应部分。
图1是示出根椐本发明的虛拟用户认证系统10的实施例的图。在 图1所示出的实施例中,系统10包括用户操作系统(0S)12、服务0S 14 和虛拟机管理器(VMM) 16。 VMM 16包括软件层以虛拟化到布置在分区 的存储器空间上的用户OS 12和服务0S 14中的每一个的硬件接口。在 图1所示出的实施例中,操作系统的两个实例被示出为由VMM 16来连 接(interface)。然而,应当理解,更多的操作系统可以使用VMM 16 来虚拟化。
在图l所示出的实施例中,用户OS 12被配置为主操作系统,由计 算平台的用户使用其来访问和/或以其他方式使用各种应用(application) 20,例如但不限于文字处理应用、互联网浏览器或者 财务管理应用。服务0S 14用来处理从键盘/键击输入设备30所接收的 键击,该键击是去往一个(或)应用20的(例如,被输入以便向该特 定应用20提供信息)。例如,服务0S 14被配置为与VMM 16以及驻留 在用户0S 12上的键击代理70连接以确定由用户输入的特定键击是否 与用于特定应用20的安全敏感凭证(例如,用户名、密码、个人识别 码(PIN)、社会安全号码或者其它类型的其安全受到关注的信息)相 关。服务OS 14处理对应于特定应用20的键击输入并且促进将该键击 输入提供给特定应用20,使得可以与用户OS 12的键盘/输入协议栈相 关和/或以其他方式与其集成的键击记录器和/或扫描应用不被给予用 户的真实键击输入,从而提供增强的用户认证和/或安全凭证的安全性。 在图1所示出的实施例中,VMM 16包括虛拟鍵盘驱动器32,该虚 拟键盘驱动器32可以包括硬件、软件、固件或其组合。虛拟鍵盘驱动 器32从键盘/键击输入设备30接收输入并将该键击输入传送到服务OS 14(来自键盘/键击输入设备30的输入在图1中被标识为键击输入40)。 因此,在操作中,来自键盘/键击输入设备30的、去往驻留和/或以其 他方式运行在用户0S 12上的特定应用20的输入被VMM 16截取并发送 到服务OS 14。
在图1中,服务OS 14包括物理鍵盘驱动器50、过滤驱动器52和 键击緩沖器54。物理键盘驱动器50和过滤驱动器52可以包括软件、硬 件、固件或其组合。物理键盘驱动器50接收和/或以其他方式处理从VMM 16接收的键击输入40。过滤驱动器52与物理键盘驱动器50和/或应用 20连接以确定键击输入40是否与安全凭证相关。例如,在本发明的一 些实施例中,响应于用户启动(launch)和/或以其他方式运行特定应 用20和/或与特定应用20相关的功能,过滤驱动器52与应用20连接 以确定鍵击输入40是否与用于应用20的安全凭证输入(例如,用于用 户名、密码或其它类型的安全凭证的输入窗口 )相关。如果过滤驱动器 52确定键击输入40与安全凭证相关,则过滤驱动器52生成与形成键击 输入40的字符对应的任意的和/或混杂的(miscellaneous)占位符字 符串。例如,如果键击输入40包括被定义为"BLD1 359"的密码,则过 滤驱动器52为键击输入40的每一个字符都生成任意字符。因此,在该 示例中,过滤驱动器52可以生成被定义为"P**$&N2,,的字符串。应当理解,任意的占位符字符可以包括预定的字符串(例如,全星号)或者 随机生成的字符串。
任意的占位符字符由过滤驱动器52发送到与用户OS 12相关的虛 拟键盘驱动器60,如图1中的箭头62所表示的。虛拟键盘驱动器60从 过滤驱动器52接收任意的占位符字符并且处理该任意的占位符字符就 好像该任意的占位符字符是键击输入40。例如,虛拟键盘驱动器60可 以将该任意的占位符字符显示在用户界面和/或对应于应用20的输入窗 口内的显示设备上。然而,应当理解,至少对于与安全凭证相关的键击 输入40,键击输入4D不被虛拟键盘驱动器60接收和/或以其他方式处 理。因此,可以被附接到和/或以其他方式与虛拟键盘驱动器60连接的 键击记录器和/或扫描器将会具有到键击输入40的受限访问和/或不能 访问4建击输入40。
优选地,过滤驱动器52也使得键击输入40被緩冲在键击緩沖器54 内。在图1中,驻留在用户OS 12上的键击代理70 (其可以包括硬件、 软件、固件或其组合)响应于由服务OS 14所接收的鍵击输入40的终 止字符而与过滤驱动器52和/或鍵击緩冲器54连接。如在这里使用的, 键击输入40的终止字符通常被定义为后面跟着标准"回车,,(CR)字 符的或者在用户以其他方式发出表示输入结束的信号(例如,点击"0K" 按钮,等等)时的特定键击输入的最后的或最终的字符。因此,例如, 对于定义为"BLD 1 359"的密码,输入的终止可以用信号表示为数字"9" 的字符,其后面跟着回车(ENTER键)序列或应用内动作的启用(例如, 点击"OK"按钮)。响应于接收到鍵击输入40的终止字符,键击代理 70与键击緩沖器54连接以从键击緩沖器54自动取回(retrieve )键击 输入40并将键击输入40提供给键击输入40要去往的(destined)特 定应用20。因此,在该示例中,大大减少了可以扫描存储器位置以确定 和/或以其他方式识别安全凭证的时间周期。在上述示例中,鍵击输入 40被存储和/或緩存在键击緩沖器54中直到接收到终止字符。然而,同 样应当理解,可以在将键击输入40提供给去往的(destined)应用20 之前不緩冲键击输入40的所有字符的情况下,处理键击输入40。例如, 在本发明一些实施例中,键击代理70可以被配置为连续地或周期性地 取回键击输入40的各个字符和/或字符组并将这样的键击输入40提供 给去往的应用20。在上述实施例中,如果键击输入40与安全凭证相关则过滤驱动器 52生成任意的占位符字符。然而,应当理解,过滤驱动器52可以被配 置为对所有类型的键击输入40 (例如,无论其是否与安全凭证相关)都 生成任意的占位符字符并将其发送到虛拟键盘驱动器60。此外,应当理 解,如果键击输入40不与安全凭证相关,则键击输入40可以被直接传 送到虚拟键盘驱动器60从而用于处理。
图2 A和2 B是示出根据本发明的虛拟用户认证方法的实施例的流程 图。该方法开始于块200,其中在VMM16处接收鍵击输入40。在块202 处,虛拟键盘驱动器32将键击输入40传送到服务OS 14。在判定块204 处,确定鍵击输入40是否与安全凭证和/或安全有关的应用20相关。 如果键击输入40不与安全凭证和/或安全有关的应用20相关,则该方 法前进到块206,其中过滤驱动器52将键击输入40发送和/或以其他方 式传送到用户OS〗2的虛拟键盘驱动器60。该方法前进到块208,其中 虛拟键盘驱动器60将所接收的键击输入40提供给去往的应用20。
如果在判定块204处确定键击输入40与安全凭证和/或安全有关的 应用20相关,则该方法前进到块210,其中过滤驱动器52生成任意的 和/或混杂的占位符字符。在块212处,过滤驱动器52将该占位符字符 发送和/或以其他方式传送到用户OS 12的虛拟键盘驱动器60。在块214 处,过滤驱动器52使得键击输入40被緩存在鍵击緩冲器54中。
在判定块216处,确定用于去往的应用20的键击输入40的终止字 符是否已经被输入/接收。如果终止字符还没有被输入/接收,则该方法 前进到块214,其中键击输入40继续被緩存在键击緩沖器54中。如果 在判定块216处确定键击输入40的终止字符已经被输入/接收,则该方 法前进到块218,其中键击代理70与键击緩冲器54连接以从鍵击緩冲 器54取回和/或以其他方式获得键击输入40。在块220处,键击代理 70将从键击緩沖器54取回的键击输入40提供给去往的应用20。
在结合图1、 2A和2B所示出和描述的实施例中,与处理键击输入 40相关的各种类型的通信和/或功能在服务OS 14与用户OS 12之间直 接执行(例如,服务OS 14的键击緩沖器54与用户OS 12的键击代理 70之间的通信和/或用户OS 12的键击代理70对服务OS 14的键击緩沖 器54的访问,服务OS 14的过滤驱动器52与用户OS 12的虛拟键盘驱 动器60之间的通信等等)。然而,应当理解,与处理键击输入40相关
6过VMM 16在月1务0S 14与用户OS 12 之间处理和/或通信。例如,在本发明一些实施例中,由过滤驱动器52 生成的任意的和/或混杂的占位符字符会由服务OS 14传送到VMM 16, 并且VMM 16会将该任意的和/或混杂的占位符字符传送到虛拟键盘驱动 器60。此外,例如,在本发明一些实施例中,存储在緩沖器54中的键 击输入40被传送到VMM 16,并且VMM 16与键击代理70连接以促进向 特定的应用20提供真实的键击输入40。因此,在本发明一些实施例中, VMM 16用作在处理键击输入40的不同OS分区之间通信的关守 (gatekeeper )或控制器。
图3是示出根据本发明的虛拟用户认证系统10的另 一实施例的图。 在图3中,过滤驱动器52被示出为与虛拟键盘驱动器60直接通信和/ 或与该虛拟键盘驱动器60直接连接(由箭头62表示),用于将任意的 占位符字符(例如,用于安全凭证输入)发送到虛拟键盘驱动器60。在 图3所示出的实施例中,如果键击输入不与安全凭证相关,则这样的非 安全凭证输入被从服务OS 14传回到VMM 16,如箭头90所表示的,并 且由VMM 16提供给用户0S 12,如箭头92所表示的。
因此,本发明实施例提供了用于处理键击输入的旁路(bypass)机
制,使得可能存在于操作系统上的、键击输入要去往的键记录器 (keylogger )或者其它类型的键击扫描应用(例如,在这样的操作系 统上运行的应用)很少或不访问键击输入。例如,本发明过程的实施例 利用虛拟机管理器,该虛拟机管理器截取键击输入并通过不同的操作系 统或平台来处理该键击输入。此外,本发明实施例在旁路操作系统中緩 存键击输入直到优选地接收到所有键击输入,此时键击输入被取回并装 栽到去往的应用中,由此显著地减少了可用于扫描这样的键击输入的存 储器空间的时间。
权利要求
1、一种虚拟用户认证系统(10),包括虚拟机管理器(VMM)(16),其通信地耦合到用户操作系统(OS)(12)和服务OS(14),所述VMM(16)被配置为接收去往在所述用户OS(12)上运行的应用(20)的键击输入并且将所述键击输入传送到所述服务OS(14),所述键击输入由所述服务OS(14)来处理。
2、 根据权利要求l的系统(10),进一步包括键击代理(70), 其被布置在所述用户OS ( 12)上并被配置为取回用于所述应用(20)的 鍵击输入。
3、 根据权利要求1的系统(10),其中所述服务OS (14)被配 置为确定所述键击输入是否与安全敏感凭证相关。
4、 根据权利要求1的系统(10),其中所述服务OS(14)被配 置为如果所述鍵击输入与安全敏感凭证相关则生成与所述键击输入的字符对应的任意的占位符字符。
5、 根据权利要求4的系统(10),其中所述任意的占位符字符 被传送到所述用户OS (12)的虛拟键盘驱动器(60)。
6、 根据权利要求1的系统(10),进一步包括键击代理(70), 其被布置在所述用户OS ( U)上并被配置为响应于确定已经输入了与所 述键击输入相关的终止字符,而取回所述键击输入。
7、 一种虛拟用户认证方法,包括在虛拟机管理器(VMM) (16)处接收去往在用户操作系统(OS) (12)上运行的应用(20)的键击输入;将所述鍵击输入从所述VMM (16)发送到服务OS (14);以及 由所述服务OS (14)处理所述键击输入。
8、 根据权利要求7的方法,进一步包括由所述服务OS(14)确定所迷键击输入是否与安全敏感凭证相关。
9、 根据权利要求7的方法,进一步包括如果所述键击输入与安 全凭证相关则由所述服务OS ( 14 )生成与所述键击输入的字符对应的任 意的占位符字符。
10、 根据权利要求9的方法,进一步包括将所述任意的占位符字 符发送到所述用户OS (12)的虛拟键盘驱动器(60)。
全文摘要
一种虚拟用户认证系统(10),包括虚拟机管理器(VMM)(16),通信地耦合到用户操作系统(OS)(12)和服务OS(14),所述VMM(16)被配置为接收去往在用户OS(12)上运行的应用(20)的键击输入并且将所述键击输入传送到所述服务OS(14),所述键击输入由所述服务OS(14)来处理。
文档编号G06F21/04GK101496023SQ200780028082
公开日2009年7月29日 申请日期2007年7月19日 优先权日2006年7月25日
发明者M·J·阿尔滕多夫, M·诺沃亚, V·Y·阿利 申请人:惠普开发有限公司