在安全存储器域中绘制图像并关联用户输入的方法和系统的制作方法

文档序号:6587911阅读:125来源:国知局
专利名称:在安全存储器域中绘制图像并关联用户输入的方法和系统的制作方法
在安全存储器域中绘制图像并关联用户输入的方法和系统
背景技术
当通过机械键盘或定点设备将诸如电子支付交易信息这样的机密用户信息输入 计算机系统时,该信息可能易受到诸如间谍软件这样的恶意软件的攻击,所述恶意软件可 以在按键或输入坐标被传输到计算机系统或者在计算机系统内被传输时记录这些按键或 输入坐标。与机密用户信息的接收相关联的应用程序也可能易受到诸如间谍软件这样的恶 意软件的攻击。


图1是在受保护的存储器域中绘制数据输入图像并将用户输入与所绘制的图像 进行关联的示例性方法的处理流程图。图2是调用图1的方法来通过网络连接执行支付交易的示例性方法的处理流程 图。图3是将一图像绘制在显示器的一随机位置并在用户输入之后将该图像重新绘 制在该显示器的另一随机位置的示例性方法的处理流程图。图4是在安全存储器域中将输入显示图像绘制在用户图像之上的示例性方法的 处理流程图。图5是将确认图像绘制在显示器的随机位置的示例性方法的处理流程图。图6是当与所绘制的图像不相关的用户输入的数目超过阈值时放弃交易的示例 性方法的处理流程图。图7是在受保护的存储器域中绘制数据输入图像并将用户输入与所绘制的图像 进行关联的另一示例性方法的处理流程图。图8是示例性计算机环境的图形化说明。图9是与图8的示例性计算机环境相对应的示例性逻辑和数据的框图。在附图中,标号最左边的数字标识该标号首次出现所在的那幅图。
具体实施例方式图1是在受保护的存储器域中绘制数据输入图像并将用户输入与所绘制的图像 进行关联的示例性方法100的处理流程图。在102,在计算机系统中对访问受保护的存储器域进行配置。对受保护的存储器域 的访问被根据一个或多个规则而进行限制,以基本确保在受保护的存储器域内的数据和指 令对于受保护的存储器域外部的进程来说是不可访问的。受保护的存储器域可以包括系统 存储器、图形存储器及其组合的一个或多个部分。可以在软件、硬件及其组合的控制下(包 括虚拟机管理技术)对受保护的存储器域进行配置和实施。在104,在受保护的存储器域中启动应用程序。该应用程序可以包括使计算机系统 的处理器执行以下操作的指令在受保护的存储器域中绘制诸如键盘图像这样的数据输入图像,并将后续的用户输入与该图像进行关联。可以在启动之前使用软件、硬件及其组合对该应用程序进行认证,并且可以根据 一种或多种可以包含可信执行技术的哈希技术(包括代码签名哈希技术)来对该应用程序 进行认证。该应用程序可以被加载到安全存储器域中并在该安全存储器域中被认证。可替代 地或附加地,该应用程序或其一部分可以被加载到另一安全存储器域中,例如,与可信执行 技术模块相关联的访问受保护的固件。受保护的存储器域和对应用程序的认证可以单独或者彼此组合来保护该应用程 序(包括与该应用程序相关联的代码、控制流和数据结构)不受恶意代码(包括间谍软件) 影响,即使当在其下启动该应用程序的对应操作系统受到例如rootkit、病毒、蠕虫或间谍 软件的损害时也是如此。在102对受保护的存储器域进行的配置和/或在104对应用程序进行的加载、认 证和启动,可以在基于管理程序的安全防护单元(security visor)的控制下执行,所述基 于管理程序的安全防护单元保护存储器内的组件免受恶意代码的监听和修改。基于管理程序的安全防护单元可以被配置来识别代码和/或数据、测量与该代码 和/或数据相关联的一个或多个特征以进行认证,以及保护经认证的代码和/或数据。基于管理程序的安全防护单元可以被配置来在不对操作系统进行修改的情况下 工作。基于管理程序的安全防护单元可以包括完整性测量模块(IMM),其运行在操作系 统边界外的受保护的空间内,并因此位于工作环境中可能存在的恶意软件的界限之外。IMM 保护的空间可以包括受保护的硬件和/或在虚拟机管理器(VMM)上运行的受保护的虚拟机 (VM)。IMM可以被配置来针对包含应用程序的代码部分的哈希(例如,SHA-1哈希)的签名 文件来验证该代码的身份和完整性,并验证代码部分的入口点和对应的重定位表。基于管理程序的安全防护单元可以包括存储器保护模块(MPM),用于实施存储器 访问保护,并且在IMM已经成功识别并且测量应用程序之后,IMM可以被配置来用信号通知 MPM实施存储器访问保护。MPM可以被配置来创建一个或多个受保护的页表(PPT),并将应用程序的受保护 的代码和对应的数据页映射到PPT,并且切断从活动页表(APT)的对应映射。诸如VMM这样 的存储器管理器可以被配置来管理受保护的存储器的虚拟地址范围和受保护页的对应物 理地址的列表。一旦出现页故障,VMM可以被配置来将目的地页的虚拟地址和受保护页地 址的列表进行比较,并且当发现相匹配时,将虚拟机控制结构(VMCS)中的页表基址寄存器 (PTBR)切换到PPT基址的地址。反过来,VMM可以被配置来将PTBR从PPT地址切换到APT 基址。每当VMM尝试向APT添加页时,VMM可以检查物理页地址的列表。当VMM发现受保 护的页时,VMM可以拒绝将该受保护的页添加到APT,并且可以生成错误指示。当配置了存 储器保护时,与应用程序相关联的初始化向量可以是在受保护的应用程序域内要执行的第 一个代码部分。基于管理程序的安全防护单元可以包括英特尔公司开发的针对网络系统的VT完 整性月艮务(VT Integrity Services for Networking (VISN) system)。在106,将视频帧缓冲区分配给受保护的存储器域。
该应用程序可以被配置来将对应于图形适配器的视频帧缓冲区拉入受保护的存 储器域中,并直接向该视频帧缓冲区进行绘制。还可以将一个或多个视频帧后台缓冲区和/ 或其他表面(surface)分配给受保护的存储器域。当位于受保护的存储器域内时,包括任 意后台缓冲区和其他表面的视频帧缓冲区可以基本上被保护,而不受操作系统发起的写和 /或读进程以及该受保护的存储器域外部的其他进程的影响。相应地,包括任意后台缓冲区 和其他表面的该视频帧缓冲区对于运行在计算机系统上的恶意软件可以是基本免疫的,而 无论该恶意软件是何特权等级。该应用程序可以被配置来识别或确定与主或视频帧前台缓冲区以及一个或多个 视频帧后台缓冲区相对应的存储器地址,以从与操作系统(OS)相关联的APT中移除对应 的页,并将这些页与该应用程序的受保护的部分以及其他受保护的代码和数据页一起放入 PPT中。由此可以阻止屏幕抓取应用程序/恶意软件对受保护的页进行读和写。该应用程序可以被配置来执行直接图形绘制,例如,由MicrosoftWindows中的 DirectX和OpenGL以及Linux OS中的OpenGL所提供的。可以访问对应的库来寻找与视频 帧缓冲区相对应的地址,并移除可能存在的针对在0S下运行的应用程序的读和写限制。在102在受保护的存储器域内启动应用程序可以包括至少保护负责向视频帧缓 冲区进行写和/或从视频帧缓冲区进行读的代码、和针对该代码的数据部分。在106将视频帧缓冲区分配给受保护的存储器域可以包括识别针对该视频帧缓 冲区的指针的位置、或与该指针相对应的APT转换。定位针对视频帧缓冲区的指针可以包括使用与操作系统相关联的应用编程接口 (API)来确定该指针的虚拟地址。而可以根据操作系统或VMM维护的页表来识别相应的物 理地址。定位针对视频帧缓冲区的指针可以包括获得该指针的物理地址,并遍历诸如页 表这样的相对应的进程地址空间,来寻找该物理地址和相对应的虚拟地址。该指针的物理 地址可以被映射到已知的物理地址,例如地址0XA000。这可以包括每个步骤的超级调用 (hypercall)0虚拟地址和相对应的物理地址可以被拉入一个或多个PPT中。将视频帧缓冲区拉 入PPT可以包括将对应的存储器页在APT中标记为不存在,并将所述存储器页在PPT中标
记为读/写。在108,向视 帧缓冲区绘制用户输入设备的图像。该图像可以包括键盘的图像, 其可以包括数字键盘、字母键盘和数字字母键盘的图像中的一个或多个。作为在102加载应用程序的一部分,用户输入设备的图像可以被加载到受保护的 存储器域中并在其中被认证。在使用分立的图形适配器的情况下,图形适配器可以被配置来从该图形适配器内 的一个或多个存储器即视频RAM (VRAM)进行绘制;而在使用嵌入式的图形适配器的情况 下,其可以被配置来从共享的系统存储器(系统RAM)进行绘制,其中图形适配器可以被配 置来与通用处理器或其组合(例如与高级图形端口(AGP))共享系统RAM。图形卡可以被配置来通常使用本地VRAM,并在本地VRAM不足以用于在系统上运 行的进程时使用系统RAM。图形卡可以从一个或多个主视频帧缓冲区进行绘制。视频帧后 台缓冲区的内容可以被块图像传输(blitted)到主缓冲区,或者应用程序可以声明后台缓冲区链,并在链中将后台缓冲区翻转成主缓冲区。为了安全的输入和输出,ring-3应用程序可以声明多个表面,当绘制键盘时,其可 以包括纹理。图形卡和/或对应的显示器可以包括安全保护。在110,在绘制了输入显示图像之后,在受保护的存储器域中接收用户输入。用户 输入可以包括位置指示,其可以通过定点设备、诸如鼠标这样的光标设备、触摸板和触摸屏 显示器中的一个或多个来生成。在112,将用户输入与输入显示图像的特征进行关联。该关联可以包括将用户输入 的坐标与所绘制的键盘图像的键进行关联,以识别该键盘中的用户所选键。在114,将与用户输入相关的图像特征的指示存储在受保护的存储器域中。在图像 包括键盘图像的情况下,该存储可以包括存储用户所选键的指示。在116,可以从受保护的存储器域输出所存储的用户输入的指示,并且可以从受保 护的存储器释放视频帧缓冲区。方法100可以被调用,以接收诸如电子支付信息这样的机密用户输入。图2是调 用方法100来通过网络连接进行支付交易的示例性方法200的处理流程图。在202,在用户计算机系统和另一计算机系统之间通过网络来进行通信会话,所述 另一计算机系统相对于所述用户计算机系统可以是远程的。例如,可以通过互联网经由用 户计算机系统上运行的网络浏览器,来与商家网站或金融卡处理网站进行通信会话。在204,从远程计算机系统接收、并在用户计算机系统处检测针对用户信息的提
7J\ ο在204检测提示可以包括检测针对电子支付信息的提示,所述电子支付信息例 如是信用卡信息、借记卡信息或其他支付授权信息。在204检测提示可以包括检测一个或多个标准化支付提示,例如,行业标准的超 文本标记语言(HTML)的信用卡表格。在204检测提示可以包括搜索进入的网页以获得信用卡支付交易通用的数据输 入字段,例如,信用卡号码字段、日期字段和货币单位字段。可以通过用户计算机系统上运行的诸如网络浏览器这样的应用程序来检测提示。 用于检测提示的计算机可读指令可以被实现为浏览器插件来与浏览器应用程序一同工作, 并且可以被相对无缝地实现,而只对商家网站或金融卡处理网站进行很少修改或者不进行 修改。对提示进行检测可以包括截取在用户计算机系统上运行的浏览器和商家网站或 金融卡处理网站之间的安全套接层(SSL)信道或传输层安全(TLS)信道。可以通过用户计算机系统上运行的VMM来检测提示。在206,响应于所检测到的针对用户信息的提示而调用应用程序。在206调用应用 程序可以包括执行方法100或其一部分,并且可以包括获取受保护的存储器域中的信用卡 信息和来自用户的支付授权。在208,用来自受保护的存储器域的用户输入数据来填充(populate)该提示,并 将其返回给请求方。返回图1,在108进行的绘制可以包括向相对随机或伪随机的位置绘制输入显示图像,并且可以包括在用户输入之后向另一随机位置重新绘制该图像。随机定位可以包括 以下中的一种或多种真正的随机定位、伪随机定位、和定位到多个预先确定的位置其中之 一。随机定位可以有助于减小间谍软件或其他恶意代码将用户输入与所绘制的图像进行关 联的可能性。图3是将一图像绘制到一随机位置并在用户输入之后将该图像重新绘制到另一 随机位置的示例性方法300的处理流程图。方法300可以在图1中的102到106之前进行。在302,将键盘图像绘制到视频帧缓冲区的随机位置。该键盘图像可以具有比视频 帧缓冲区更小的大小,以允许向视频帧缓冲区内的多个随机位置进行绘制。在304,接收用户输入,例如上面参照图1中的110所描述的那样。在306,将用户输入的坐标与所绘制的键盘图像进行关联,并将用户所选键的对应 指示存储在受保护的存储器中,例如上面参照图1中的112和114所描述的那样。在308,当用户要提供另外的输入时,在310将键盘图像重新绘制到视频帧缓冲区 中的另一随机位置。可以重复在304进行的用户输入的接收和在306进行的关联与存储, 直到完成用户数据输入。可以在每次用户输入之后将键盘图像重新绘制到另一随机位置。 例如,在用户要输入一个多数字序列的情况下,可以在每个数字输入之后将键盘图像重新 绘制到另一随机位置。键盘图像可以包括用户数据输入完成键的图像,以允许用户指示数据输入完成。当在308完成用户数据输入时,在312可以从受保护的存储器域输出所存储的用 户所选键的指示,并且可以从受保护的存储器域释放视频帧缓冲区。回到图1,在108绘制输入显示图像可以包括将输入显示图像绘制在用户图像之 上。用户图像可以预先由用户来选择并且与应用程序相关联,作为安全措施。图4是将输 入显示图像绘制在用户图像之上的示例性方法400的处理流程图。在402,对受保护的存储器域进行配置,例如上面参照图1中的102所描述的那样。在404,在受保护的存储器域中启动应用程序,例如上面参照图1中的104所描述 的那样。在406,将用户图像或位图加载到受保护的存储器域中。可以从诸如硬盘这样的存 储设备获取用户图像来作为加密用户图像。可以在受保护的存储器域中加载该加密用户图 像并对其进行解密。解密可以在404启动的应用程序的控制下被执行,并且在认证或证实了应用程序 的代码和/或静态数据部分之后,安全防护模块可以将解密密钥提供给该应用程序。在408,将视频帧前台缓冲区和第一与第二视频帧后台缓冲区分配给受保护的存 储器域。在410,将键盘图像绘制到第一视频帧后台缓冲区的随机位置,例如上面参照图3 中的302所描述的那样。在412,将用户图像绘制到第二视频帧后台缓冲区中的与第一视频帧后台缓冲区 中键盘图像的随机位置相对应的位置处。用户图像的大小可以大于键盘图像的大小而小于 视频帧前台缓冲区的大小。在414,可以将第一与第二视频帧后台缓冲区合并到视频帧前台缓冲区。该合并可以包括将用户图像的一部分与键盘图像进行重叠。可以按照位块传输(BitBlt)或块图像传输(Blit)来执行该合并,其中,使用光栅操作(rastering operation)来组合多个位图。在416,接收用户输入,例如上面参照图1中的110所描述的那样。
在418,将用户输入的坐标与所绘制的键盘图像进行关联并存储到受保护的存储 器中,例如上面参照图1中的112和114所描述的那样。在420,当用户要提供另外的输入时,在422将键盘图像和用户图像重新绘制到对 应的第一与第二视频帧后台缓冲区中的另一随机位置。可以重复在414进行的合并、在416进行的用户输入的接收和在418进行的关联 与存储,直到用户数据输入完成。可以在每次用户输入之后将键盘图像与用户图像重新绘 制到另一随机位置。当在420完成用户数据输入时,在424可以从受保护的存储器域输出所存储的用 户所选键的指示,并且可以从受保护的存储器域释放视频帧缓冲区。当完成用户数据输入时,可以将确认图像绘制到一随机位置,以允许用户完成对 应的交易。图5是将确认图像绘制到视频帧缓冲区的随机位置的示例性方法500的处理流程 图。方法500可以跟在完成用户数据输入之后被实现,例如在图1中的114之后、在图3中 的308之后和在图4中的420之后。在502,将确认图像绘制到受保护的存储器域中的视频帧缓冲区。可以将确认图像 绘制在用户图像之上,例如上面参照图4所描述的那样。在504,接收用户输入,例如上面参照图1中的110所描述的那样。在506,将用户输入的坐标与所绘制的确认图像进行关联。在506,在用户输入的坐标与确认图像相关的情况下,在510可以从受保护的存储 器域输出对应的用户输入数据,例如用户所选键的指示,并且可以从受保护的存储器域释 放视频帧缓冲区。当在506用户输入的坐标与确认图像不相关的情况下,可以进行一个或多个操 作。例如,确认图像可以包括取消交易图像和编辑数据图像中的一个或多个,以允许用户选 择取消交易或编辑交易。上面描述的一种或多种方法可以包括对与所绘制的图像不相关的用户输入进 行计数,并且当不相关的输入的数目超过阈值时放弃交易。这可以帮助阻止点击所有位置 (click-everywhere)的攻击。图6是检测不相关的用户输入的示例性方法600的处理流程图。方法600可以参 照本文所公开的一种或多种其他方法来实现。在602,将图像绘制到视频帧缓冲区的随机位置。该图像可以包括输入显示图像、 确认图像和用户图像中的一个或多个。在604,接收用户输入。在606,确定用户输入是否与所绘制的图像相关。当在606用户输入与所绘制的图像相关的情况下,处理前进到608,其中根据相关 性来对用户输入进行处理。这可以包括在图1中的112进行的关联、在图3中的306进行 的关联、在图4中的418进行的关联以及在图5中的506进行的关联中的一个或多个。在用户输入与所绘制的图像不相关的情况下,处理前进到610,其中错误计数被递增。
在612,当错误计数低于阈值时,在614可以将图像重新绘制到另一随机位置,并 且处理返回到604以接收另一个用户输入。当在612错误计数高于阈值时,在616可以停止或终止一个或多个处理。这可以 包括以下中的一个或多个终止对应的网络连接、删除视频帧缓冲区的内容和/或之前输 入的用户数据、向管理员发送警告或报告以及终止应用程序。图7是在受保护的存储器域中绘制数据输入图像并接收与该图像相对应的用户 输入选择的示例性方法700的处理流程图。方法700的一个或多个特征可以与参照本文的 一种或多种其他方法所公开的一个或多个特征相结合来实现。在702,在安全存储器域中加载加密的或以其他方式受保护的用户图像,并对其进 行解密。可以使用一个或多个受保护的页表来对安全存储器域进行配置。用户图像可以类 似于站点密钥(site key)。在704,在用户图像之上将键盘图像绘制到安全显示屏幕的随机位置。该键盘图像 可以被块图像传输到用户图像之上。键盘图像和下层的用户图像的组合在本文中被称为安 全输入屏幕。在706,当用户在键盘图像上点击时,对应的按键被记录并被显示在安全显示屏幕 上的输出区域中,并且安全输入图像被随机地重新定位到另一位置。这可以阻止攻击者的 猜测攻击。用户可以通过安全输入屏幕来输入信用卡/银行卡号码。可替代地或附加地,用 户可以输入个人识别码(PIN)以访问保密信息值,例如信用卡号码。可以用访问密钥来保 护该保密值,例如上面参照加密用户图像所描述的那样。该访问密钥可以作为安全防护保 密平台密钥来被保护,以呈现给经认证的应用程序。该应用程序可以被配置来使用PIN对 保密值进行解锁。这可以减少用户输入的数据量,并且可以增加交易的安全性。在708,在完成用户数据输入之后,将确认图像绘制到安全显示屏幕,以提示用户 确认交易参数。如上面所描述的,确认图像可以被绘制在用户图像之上。确认图像和下层 的用户图像的组合在本文中被称为安全确认屏幕。安全确认屏幕可以被视为受保护的存储器域中的另一表面,其在用户已经完成了 证书和交易信息的输入之后被绘制。安全确认屏幕可以包括诸如商家名称、交易金额、日期 和要发送给商家或卡处理网站的证书这样的交易信息。安全确认屏幕可以包括一行或多行 来显示信息。在710,当用户在确认图像上点击时,可以从安全存储器域输出之前输入的按键或 其他对应的用户信息。这些按键或其他用户信息可以被输出到商家网站或信用卡处理网站。在输出之前可以对按键或其他用户信息进行加密和签名。交易信息可以例如用商 家或卡处理方的公钥来进行加密,并且可以用该用户的私钥来进行签名。可以对交易金额、 用户输入的信用卡号码、交易计数以及商家信息中的一个或多个应用哈希函数,以生成安 全交易值。该安全交易值可以被发送给商家或卡处理方。商家或卡处理网站可以在用户计算机处例如通过证书来进行认证。这可以帮助阻 止网络钓鱼(phishing)攻击。
确认图像可以被随机定位,并且可以在与该确认图像不相关的用户点击之后被随 机地重新定位。这可以防止攻击者根据对之前点击的分析来确定该确认图像的位置。当不 相关的用户点击数目超过阈值数目时,可以放弃该交易。这可以帮助阻止暴力的、点击所有 位置的攻击。本文所公开的一个或多个特征可以用硬件、软件、固件及其组合(包括分立和集 成的电路逻辑、专用集成电路(ASIC)逻辑和微控制器)来实现,并且可以被实现为特定领 域集成电路封装的一部分,或者多个集成电路封装的组合。如本文所使用的,术语软件是指 包括计算机可读介质的计算机程序产品,所述计算机可读介质中存储有计算机程序逻辑, 用于使计算机系统执行本文所公开的一个或多个特征和/或这些特征的组合。图8是示例性计算机环境800的图形化说明,包括在这里示出为处理器802和图 形处理器GPU 804的一个或多个计算机指令处理单元,用于执行计算机程序逻辑。处理器 802可以包括一个或多个通用处理器和/或处理器核心。计算机系统800包括存储器806,其可以包括视频存储器或VRAM812、以及物理系 统存储器或随机存取存储器(RAM)808中的一个或多个,其可以包括高级图形处理(AGP)端 口存储器810。除了 VRAM 812之外,AGP端口存储器810也可以被GPU 804所使用。存储器806可以包括计算机可读介质,其上存储有计算机程序产品逻辑或指令, 用于使处理器802和GPU 804中的一个或多个响应于其而执行一个或多个功能。存储器806或其部分的物理地址可以针对一个或多个操作环境814和应用程序而 被虚拟化。可以在一个或多个活动页表(APT)818中维护虚拟-物理存储器地址之间的存 储器映射。可以在存储器806中对一个或多个访问受保护的存储器域进行配置,并且可以在 一个或多个受保护的页表(PPT)820中维护对应的存储器地址映射。可以在访问控制管理器824的控制下,在安全防护环境822中对APT818和PPT 820进行配置和实施。图9是与图8中的存储器806相对应的示例性逻辑和数据的框图。在图9中,存储器806包括可以用PPT 820来配置的受保护的存储器域902。受保护的存储器域902包括应用逻辑904,其可以例如上面参照图1中的104所描 述的那样被进行认证。应用逻辑904可以包括视频帧缓冲区识别和保护逻辑906,用于使处理器802识别 与视频帧缓冲区对应的位置或地址映射,或视频帧缓冲区的指针的位置或地址映射,并且 对视频帧缓冲区进行访问保护,例如上面参照图1中的106所描述的那样。在图9的示例 中,视频帧缓冲区908被示出在受保护的存储器域902中。视频帧缓冲区908可以包括一 个或多个后台缓冲区910到912、和主或前台缓冲区914。应用逻辑904可以包括用户图像解密逻辑916,用于使处理器802将加密用户图像 获取到受保护的存储器域902中,并对该用户图像进行解密,例如上面参照图4中的406所 描述的那样。在图9的示例中,解密用户图像918被示出在受保护的存储器域902中。应用逻辑904可以包括随机绘制逻辑920,用于使处理器802将输入显示图像922 绘制到视频帧缓冲区908的随机位置,例如上面参照图3所描述的那样。随机绘制逻辑920 可以包括用于使处理器802进行以下操作的逻辑将输入显示图像922和解密用户图像918分别绘制到后台缓冲区910和912中的随机位置,并将这些图像从后台缓冲区910和 912合并或块图像传输到前台缓冲区914,例如上面参照图4所描述的那样。随机绘制逻辑920可以包括使处理器802进行以下操作的逻辑将确认图像924 绘制到视频帧缓冲区908的随机位置,例如上面参照图5中的502所描述的那样。随机绘 制逻辑920可以包括使处理器802进行以下操作的逻辑将确认图像924和解密用户图像 918分别绘制到后台缓冲区910和912中的随机位置,并将这些图像从后台缓冲区910和 912合并或块图像传输到前台缓冲区914,例如上面参照图4和5所描述的那样。应用逻辑904可以包括相关逻辑926,用于使处理器802将用户输入与所绘制的图 像进行关联,并将对应的用户输入存储在受保护的存储器域902中作为用户输入数据928, 例如上面分别参照图1中的112和114所描述的那样。
应用逻辑904可以包括放弃逻辑930,用于使处理器802对与所绘制的图像不相关 的用户输入进行计数,并在不相关的用户输入的数目超过阈值时放弃应用逻辑904的一个 或多个部分,例如上面参照图6所描述的那样。应用逻辑904可以包括使处理器802进行以下操作的逻辑将诸如信用卡信息这 样的加密用户值获取到受保护的存储器域902中,并对该用户值进行解密,例如上面参照 图7所描述的那样。在图9的示例中,解密用户值932被示出为在受保护的存储器域902 中。存储器806可以包括浏览器逻辑934,用于使处理器802通过网络与一个或多个远 程计算机系统进行交互。浏览器逻辑934可以包括提示检测逻辑936,用于使处理器802检 测来自远程计算机系统的提示,例如针对电子支付信息的提示,例如上面参照图2中的204 所描述的那样。浏览器逻辑934可以包括应用启动逻辑938,用于使处理器802在受保护 的存储器域902中启动应用逻辑904,并用用户输入数据928来填充提示,例如上面参照图 2中的206所描述的那样。提示检测逻辑936和应用启动逻辑938或其部分中的一个或多 个可以被实现在VMM内。本文所公开的方法和系统可以针对可配置来将信息传送到计算机系统的其他设 备来实现,所述其他设备包括但不限于生物识别扫描仪。借助于说明了其功能、特征和关系的功能构件块,本文公开了多种方法和系统。为 了方便描述,在本文中这些功能构件块的至少一些边界是被任意地定义的。可以定义替代 的边界,只要所规定的功能及其关系被正确地执行即可。本领域技术人员将认识到,这些功能构件块可以通过分立的组件、专用集成电路、 执行适当软件的处理器及其组合来实现。尽管本文公开了各种实施例,但是应该理解,仅通过示例而非限制的方式呈现了 这些实施例。对于相关领域技术人员来说显而易见的是,可以对其中的形式和细节做出各 种改变,而不偏离本文所公开的方法和系统的精神和范围。因此,所附权利要求的广度和范 围不应该受本文所公开的任何示例性实施例的限制。
权利要求
一种方法,包括在访问受保护的存储器域中启动应用程序的至少一部分;将视频帧缓冲区分配给所述访问受保护的存储器域;将键盘图像绘制到所述视频帧缓冲区中的随机位置;将用户输入的坐标与所绘制的键盘图像的键进行关联;将所述键的指示存储在所述访问受保护的存储器域中;响应于所述用户输入,将所述键盘图像重新绘制到所述视频帧缓冲区中的另一随机位置;针对另一用户输入来重复所述关联和所述存储;以及从所述访问受保护的存储器域输出所述键的指示;其中,所述分配、所述绘制、所述关联、所述存储、所述重新绘制、所述重复以及所述输出是在所述访问受保护的存储器域中的所述应用程序的至少一部分的控制下执行的。
2.根据权利要求1所述的方法,还包括在一个或多个受保护的页表中维护与所述视频帧缓冲区、所述键盘图像以及所述应用 程序和对应的数据相关联的物理地址和虚拟地址之间的转换;将对所述受保护的页表的访问基本上限制于所述应用程序;以及 在活动页表中将与针对所述视频帧缓冲区的指针相关联的物理地址和虚拟地址之间 的转换标识为不可用。
3.根据权利要求1所述的方法,其中,启动所述应用程序的至少一部分包括在可信执 行模块的控制下,在所述受保护的存储器域中加载、认证并启动所述应用程序的至少一部 分。
4.根据权利要求1所述的方法,还包括 通过通信网络与远程计算机系统进行交互;检测来自所述远程计算机系统的针对用户信息的提示;以及 响应于所述提示,调用所述访问受保护的存储器域中的所述应用程序的至少一部分; 其中,所述输出包括用所述键的指示来填充所述提示,并通过所述通信网络将所填充 的提示返回给所述远程计算机系统。
5.根据权利要求1所述的方法,还包括当所述用户输入与所述键盘图像不相关时,递增错误计数; 当所述错误计数超过阈值时,放弃所述应用程序的至少一部分;以及 当所述用户输入与所述键盘图像不相关并且所述错误计数低于所述阈值时,将所述键 盘图像重新绘制到所述视频帧缓冲区中的另一随机位置。
6.根据权利要求1所述的方法,还包括在所述访问受保护的存储器域中对用户图像进行加载和解密; 其中,绘制所述键盘图像和重新绘制所述键盘图像中的每一个均包括将位于所述用 户图像的至少一部分之上的所述键盘图像绘制到所述视频帧缓冲区中的对应的随机位置。
7.根据权利要求6所述的方法,还包括当所述用户输入与所述键盘图像不相关时,递增错误计数; 当所述错误计数超过阈值时,放弃所述应用程序的至少一部分;以及当所述用户输入与所述键盘图像不相关并且所述错误计数低于所述阈值时,将位于所 述用户图像的至少一部分之上的所述键盘图像绘制到所述视频帧缓冲区中的另一随机位置。
8.根据权利要求7所述的方法,还包括当用户数据输入完成时,将位于所述用户图像的至少一部分之上的确认图像绘制到所 述视频帧缓冲区中的随机位置;将后续的用户输入的坐标与所绘制的确认图像进行关联;响应于所述后续的用户输入的坐标和所述确认图像之间的关联,输出所述键的指示;当所述后续的用户输入与所述确认图像不相关时,递增所述错误计数;当所述后续的用户输入与所述确认图像不相关并且所述错误计数低于所述阈值时,将 位于所述用户图像的至少一部分之上的所述确认图像重新绘制到所述视频帧缓冲区中的 另一随机位置;以及当所述错误计数超过阈值时,放弃所述应用程序的至少一部分。
9.根据权利要求1所述的方法,其中将所述视频帧缓冲区分配给所述访问受保护的存储器域包括将所述视频帧缓冲区的 一部分分配给所述访问受保护的存储器域,并且允许所述访问受保护的存储器域外部的一 个或多个进程来访问所述视频帧缓冲区的剩余部分;以及所述绘制和所述重新绘制是针对所述视频帧缓冲区的分配给所述访问受保护的存储 器域的那部分而被执行的。
10.一种包括计算机可读介质的计算机程序产品,所述计算机可读介质中存储有计算 机程序逻辑,所述计算机程序逻辑用于使处理器响应于其而执行功能,所述计算机程序产 品包括存储器保护逻辑,用于使处理器对访问受保护的存储器域进行配置;以及应用逻辑,用于使所述处理器将视频帧缓冲区分配给所述访问受保护的存储器域,并 且用于使所述处理器将键盘图像从所述访问受保护的存储器域绘制到所述视频帧缓冲区 中的随机位置,响应于用户输入而将所述键盘图像从所述访问受保护的存储器域重新绘制 到所述视频帧缓冲区的另一随机位置,将用户输入的坐标与所述键盘图像的键进行关联, 将对应的键的指示存储在所述访问受保护的存储器域中,以及从所述访问受保护的存储器 域输出所述键的指示。
11.根据权利要求10所述的计算机程序产品,还包括可信执行逻辑,用于在所述受保 护的存储器域中加载、认证并启动所述应用逻辑的至少一部分。
12.根据权利要求10所述的计算机程序产品,其中,所述应用逻辑包括图像解密逻辑,用于使所述处理器在所述受保护的存储器域中对用户图像进行加载和 解密;以及绘制逻辑,用于使所述处理器将所述键盘图像从所述访问受保护的存储器域绘制和重 新绘制到所述视频帧缓冲区的随机位置并且位于所解密的用户图像之上。
13.根据权利要求12所述的计算机程序产品,其中,所述绘制逻辑包括用于响应于用户数据输入而使所述处理器进行以下操作的逻辑将确认图像从所述访 问受保护的存储器域绘制到所述视频帧缓冲区的随机位置并且位于所解密的用户图像之上。
14.根据权利要求13所述的计算机程序产品,其中,所述应用逻辑还包括放弃逻辑,用于使所述处理器对与所绘制的图像不相关的用户输入进行计数,并且在 不相关的用户输入的数目超过阈值时中止所述应用或其一部分。
15.根据权利要求10所述的计算机程序产品,还包括提示检测逻辑,用于使所述处理器检测来自远程计算机系统的针对用户输入的提示;调用逻辑,用于使所述处理器调用所述存储器保护逻辑,并响应于所检测到的提示而 调用在对应的访问受保护的存储器域中的所述应用;以及用于使所述处理器用所述键的指示来填充所述提示并将所填充的提示输出到所述远 程计算机系统的逻辑。
16.根据权利要求15所述的计算机程序产品,其中,所述提示检测逻辑包括浏览器插 件逻辑,用于使所述处理器在执行浏览器逻辑的同时检测所述提示。
17.根据权利要求16所述的计算机程序产品,其中,所述浏览器插件逻辑包括用于使 所述处理器在基本不对所述远程计算机系统的对应网站进行修改的情况下检测所述提示 的逻辑。
18.根据权利要求16所述的计算机程序产品,其中,所述浏览器插件逻辑包括用于使 所述处理器截取在所述处理器和所述远程计算机系统之间的安全套接层信道和传输层安 全信道中的一个或多个的逻辑。
19.根据权利要求10所述的计算机程序产品,其中,所述存储器保护逻辑包括用于使所述处理器在一个或多个受保护的页表中维护与所述视频帧缓冲区、所述键盘 图像以及所述应用程序和对应的数据相关联的物理地址和虚拟地址之间的转换的逻辑;用于使所述处理器将对所述受保护的页表的访问基本上限制于所述应用程序的逻辑;以及用于使所述处理器在活动页表中将与针对所述视频帧缓冲区的指针相关联的物理地 址和虚拟地址之间的转换标识为不可用的逻辑。
20.一种系统,包括处理器;图形处理器;存储器,其耦合到所述处理器,所述存储器中定义有所述图形处理器可访问的视频帧 缓冲区;以及计算机程序产品,其在所述存储器内,包括存储有计算机程序逻辑的计算机可读介质, 所述计算机程序逻辑用于使处理器响应于其而执行功能,所述计算机程序产品包括存储器保护逻辑,用于使处理器对所述存储器内的访问受保护的存储器域进行配置,应用逻辑,用于使所述处理器将视频帧缓冲区分配给所述访问受保护的存储器域,并 且用于使所述处理器将键盘图像从所述访问受保护的存储器域绘制到所述视频帧缓冲区 中的随机位置,响应于用户输入而将所述键盘图像从所述访问受保护的存储器域重新绘制 到所述视频帧缓冲区的另一随机位置,将用户输入的坐标与所述键盘图像的键进行关联, 将对应的键的指示存储在所述访问受保护的存储器域中,以及从所述访问受保护的存储器 域输出所述键的指示;以及4可信执行逻辑,用于使所述处理器在所述访问受保护的存储器域中加载、认证并启动 所述用户应用逻辑的至少一部分。
21.根据权利要求20所述的系统,其中,所述应用逻辑包括图像解密逻辑,用于使所述处理器在所述受保护的存储器域中对用户图像进行加载和 解密;以及绘制逻辑,用于使所述处理器将所述键盘图像从所述访问受保护的存储器域绘制和重 新绘制到所述视频帧缓冲区的随机位置并且位于所解密的用户图像之上。
22.根据权利要求21所述的系统,其中,所述绘制逻辑包括用于响应于用户数据输入而使所述处理器进行以下操作的逻辑将确认图像从所述访 问受保护的存储器域绘制到所述视频帧缓冲区的随机位置并且位于所解密的用户图像之 上。
23.根据权利要求22所述的系统,其中,所述应用逻辑还包括放弃逻辑,用于使所述处理器对与所绘制的图像不相关的用户输入进行计数,并且在 不相关的用户输入的数目超过阈值时中止所述应用或其一部分。
全文摘要
本发明的方法和系统用于将应用程序和视频帧缓冲区分配给受保护的存储器域;将键盘图像从所述受保护的存储器域绘制到所述视频帧缓冲区中的随机位置;以及将来自定点设备的用户输入与所绘制的键盘图像进行关联。所述键盘图像可以在用户输入之后被随机地重新定位。所述键盘图像可以被绘制在安全用户图像之上。确认图像可以被从所述受保护的存储器域绘制到所述视频帧缓冲区的随机位置,并且可以响应于与所述确认图像不相关的用户输入而被随机地重新定位。与被随机定位的图像不相关的用户输入可以被计数,并且当不相关的用户输入的数目超过阈值时,可以放弃一个或多个处理。
文档编号G06F21/00GK101840469SQ200911000268
公开日2010年9月22日 申请日期2009年12月25日 优先权日2008年12月31日
发明者D·德拉姆, P·德万 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1