CN106203129A - 用于确保数据安全性的方法、设备和装置 - Google Patents

用于确保数据安全性的方法、设备和装置 Download PDF

Info

Publication number
CN106203129A
CN106203129A CN201510220038.4A CN201510220038A CN106203129A CN 106203129 A CN106203129 A CN 106203129A CN 201510220038 A CN201510220038 A CN 201510220038A CN 106203129 A CN106203129 A CN 106203129A
Authority
CN
China
Prior art keywords
data
layer
operating system
equipment
input device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510220038.4A
Other languages
English (en)
Inventor
M·沙
唐文蔚
周瑜锋
夏念念
谢伟毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Enterprise Solutions Singapore Pte Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Priority to CN201510220038.4A priority Critical patent/CN106203129A/zh
Publication of CN106203129A publication Critical patent/CN106203129A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明的实施方式提供了用于加密数据的方法、设备和装置。具体地,在本发明的一个实施方式中,提供了一种方法,包括:在设备的固件层处获取从数据输入设备输入的数据,数据对设备的操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;在固件层处加密数据;以及将经加密的数据发送至远程服务器。在本发明的一个实施方式中,提供了一种设备,包括:数据输入设备;操作系统层;固件层,可操作以:获取从数据输入设备输入的数据,数据对操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;以及在固件层处加密数据以用于由操作系统层向远程服务器发送。

Description

用于确保数据安全性的方法、设备和装置
技术领域
本发明的各实施方式涉及数据安全,更具体地,涉及用于确保数据安全性的方法、设备和装置。
背景技术
随着计算机技术以及网络技术的发展,计算机已经逐渐遍及人们工作和生活的各个方面。例如,诸如银行、证券等行业已经不再局限于仅提供传统办公室,而是已经开始提供在线服务。一方面,随着在线服务的普及,需要经由网络来传输涉及用户的银行账号、银行密码等大量敏感信息;另一方面,现有的技术手段并不能确保网络传输的安全性,并且目前的数据获取经常会遭受诸如木马程序等恶意程序的攻击。
对于各行各业尤其是银行、证券等金融行业而言,如何确保用户在享受在线服务期间的数据安全性,成为目前数据安全领域的一个技术焦点。
发明内容
因而,期望能够开发出一种用于确保数据安全性的技术方案,并且期望该技术方案可以在尽量不改变计算设备的现有硬件配置的情况下,更为方便并且高效地确保数据安全性。
在本发明的一个实施方式中,提供了一种方法,包括:在设备的固件层处获取从数据输入设备输入的数据,数据对设备的操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;在固件层处加密数据;以及将经加密的数据发送至远程服务器。
在本发明的一个实施方式中,提供了一种设备,包括:数据输入设备;操作系统层;以及固件层,固件层可操作以:获取从数据输入设备输入的数据,数据对操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;以及在固件层处加密数据以用于由操作系统层向远程服务器发送。
在本发明的一个实施方式中,提供了一种装置,包括:数据输入设备;数据获取模块,配置用于获取从数据输入设备输入的数据,数据对操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;以及数据加密模块,配置用于在固件层处加密数据以用于由操作系统层向远程服务器发送。
采用本发明所述的方法和装置,可以在不增加硬件投入的情况下,提供更为方便并且高效的用于确保数据安全性的技术方案。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
图2示意性示出了根据一个技术方案的用于确保数据安全性的实现的示意图;
图3示意性示出了根据本发明一个实施方式的用于确保数据安全性的技术方案的架构图;
图4示意性示出了根据本发明一个实施方式的用于确保数据安全性的方法的流程图;
图5示意性示出了根据本发明一个实施方式的会话标识符的示意图;
图6示意性示出了根据本发明一个实施方式的各个设备经由网络的交互的示意图;以及
图7示意性示出了根据本发明一个实施方式的用于确保数据安全性的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机访问存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供者来通过因特网连接)。
下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
应当注意,在上文中仅以示意性方式介绍了其中可以实现本发明的实施方式的示例性计算机系统。在本发明的上下文中,还可以在其他计算机系统中、采用其他的编程语言来实现本发明所述的用于确保数据安全的方法、设备和装置。
当从数据输入设备采集用户输入的敏感数据(例如,银行账号和密码等)时,由于在计算设备上的恶意程序可能会窃取用户输入的敏感数据,目前已经提出了一些用于确保数据安全性的技术方案。这些技术方案可以将用户输入的敏感数据进行加密,以确保数据安全性。具体地,图2示意性示出了根据一个技术方案的用于确保数据安全性的实现的示意图2A和2B。
如图2A所示,其中示出了采用硬件加密技术来对数据进行加密的技术方案的框图。在图2A中,在数据输入设备210A和计算设备230A(例如,如图1中所示的计算机系统)之间耦合有加密设备220A。应当注意,在此的加密设备220A是用于将从数据输入设备210A输入的数据进行加密的专用设备。一方面,加密设备220A将占用额外的物理空间,另一方面还会增加硬件投入,这导致如图2A所示的基于硬件加密的技术方案并不完全满足用户需求。
如图2B所示,其中示出了基于软键盘的技术方案的框图。由于操作系统层的恶意程序可能会捕捉到用户按下键盘中的按键的事件,因而目前提出了基于软键盘来输入敏感数据的技术方案。在图2B所示的技术方案中,用户可以利用鼠标点击软键盘中的各个按键。然而,软键盘的技术方案也存在诸多不足:一方面,软件盘的操作并不方便;另一方面,恶意程序有可能通过分析鼠标的移动和悬停时间来猜测用户输入的敏感数据。
基于上述不足,期望在不增加额外的硬件设备的情况下,提供一种方便并且有效的用于确保数据安全性的技术方案。
在本发明的一个实施方式中,提出了一种方法,该方法包括:在设备的固件层处获取从数据输入设备输入的数据,该数据对设备的操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;在固件层处加密数据;以及将经加密的数据发送至远程服务器。
具体地,图3示意性示出了根据本发明一个实施方式的用于确保数据安全的技术方案的架构图300。如图3所示,数据输入设备320耦合至计算设备310。在此实施方式中,可以在计算设备310中的固件层312处获取从数据输入设备320输入的数据(如箭头A所示)。应当注意,在此实施方式中,由于固件层312在计算设备310中处于底层,因而固件层312独立于操作系统层314,并且在该固件层312获取的数据对计算设备310的操作系统层314不可访问。在此步骤中,所获取的数据可以是用户输入的敏感信息(例如,银行账号和密码等),该数据在后续步骤中将被加密并且被发送至远程服务器330。
接着,在固件层312处加密数据。在此实施方式中,可以采用现有技术中已知的、或者将在未来开发的各种加密算法来加密获取的数据。例如,可以基于如箭头B所示而获取的密钥,来加密该数据;并且如箭头C所示,可以将经加密的数据传输至操作系统层314。继而,如箭头D所示,将经加密的数据发送至远程服务器330。
图4示意性示出了根据本发明一个实施方式的用于确保数据安全性的方法的流程图400。如图4所示,在步骤410中,在设备的固件层处获取从数据输入设备输入的数据,数据对设备的操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层。
在本发明的上下文中,将以“统一可扩展固件接口”(UnifiedExtensible Firmware Interface,缩写UEFI)为具体示例,详细说明如何在固件层处执行步骤410。应当注意,UEFI是一种接口标准,在UEFI处层的各种操作的优先级高于在操作系统层的操作的优先级,因而可以以对操作系统层透明的方式,在UEFI处执行各种处理。
可以认为UEFI是基本输入/输出系统(Basic Input/Output System,缩写BIOS)的扩展,UEFI是一种“固件”,负责在开机时执行硬件启动和检测等工作,并且在计算系统运行时充当控制硬件(例如,数据输入设备)的中介。相对于BIOS而言,UEFI具备更多的灵活性,并且可以基于编程来实现更多的功能。在本发明的上下文中,可以通过在固件层的编程,来实现本发明中的各个步骤。
在步骤420中,在固件层处加密数据。在此步骤中例如可以使用各种加密算法来在固件层处加密数据。应当注意,在本发明的上下文中,由于已经在固件层处加密了敏感数据,此时即使在计算设备中存在恶意程序,由于恶意程序是处于计算设备中的操作系统层级,恶意程序并不能访问在固件层处获取的未加密的数据。
因而,即使在计算设备中存在恶意程序,该恶意程序也仅仅能够访问操作系统层可访问的数据,即,仅能访问已加密的数据。换言之,由于未加密数据对操作系统层不可见,并且仅有已加密数据对操作系统层可见,即使恶意程序获得了已加密的数据,也不能破解已加密数据中的敏感数据。因而,步骤410和420可以确保敏感数据对恶意程序不可见,因而确保了数据安全性。
接着,在步骤430中,将经加密的数据发送至远程服务器。在此步骤中,可以经由网络来将经加密的数据发送至远程服务器。以此方式,即使在计算设备的操作系统层、或者网络中的其他位置存在恶意程序,这些恶意程序也只能访问经加密数据,因而确保了数据安全性。
在下文中,将更详细地描述本发明的其他实施方式的细节。在本发明的一个实施方式中,获取数据包括:在固件层处基于系统管理中断(System Management Interrupt,缩写SMI)获取数据,系统管理中断的优先级高于在操作系统层处执行的操作的优先级。
SMI是计算设备中的一种较高优先级的中断,通常而言,该中断可以通过与主板、芯片集、输入/输出操作等相关联的事件而触发。在本发明的上下文中,用户经由数据输入设备输入敏感数据的操作可以触发SMI,因而可以在固件层处获取用户输入的敏感数据。
应当注意,用户经由数据输入设备输入的数据可能并不全是敏感数据。例如,当用户访问某银行的网站时,所输入的账号信息和密码属于敏感数据,而在该网站中搜索银行的营业时间时输入的信息则并非敏感数据。因而,在本发明的一个实施方式中,还可以首先判断用户输入的数据是否为敏感数据,并且仅在用户输入敏感数据时,才启动执行上文参见图4所述的方法。
本领域技术人员可以采用多种方式来判断输入的数据是否是敏感数据,例如,可以通过判断当前光标的位置是否处于“账号”、“密码”等输入域来进行判断。或者,本领域技术人员还可以基于其他方式进行判断,在此不再赘述。
在本发明的一个实施方式中,在固件层处基于系统管理中断获取数据包括:响应于在设备中检测到系统管理中断,启用系统管理模式(System Management Mode,缩写SMM);以及在系统管理模式中读取从数据输入设备输入的数据。
系统管理模式对操作系统是透明的,并且可以通过检测到系统管理中断而进入系统管理模式。换言之,操作系统根本不知道计算设备何时进入/退出系统管理模式以及在系统管理模式下进行了哪些操作。因而,即使在操作系统层中存在恶意程序,该恶意程序也不能知晓计算设备在系统管理模式下进行了哪些操作。因而,在在系统管理模式中读取从数据输入设备输入的数据的过程对于恶意程序是不可见的,因而可以确保数据的安全性。
在本发明的一个实施方式中,数据输入设备是被耦合到计算系统、并且可以经由其来向计算系统输入数据的任何设备。例如,数据输入设备可以是常规键盘、小键盘、或者能够向计算设备输入数据的任何其他设备。还应当注意,在本发明的上下文中并不限定数据输入设备通过何种接口来耦合至计算设备,而是数据输入设备可以经由目前已知的或者将在未来开发的各种接口标准来耦合至计算设备。仅作为具体示例,数据输入设备可以是经由通用串行总线(Uniform SerialBus,缩写USB)、或者个人计算机2(Personal System/2,缩写PS/2)而连接的键盘。
在本发明的一个实施方式中,数据输入设备是经由个人系统2接口耦合至设备的键盘,以及其中在系统管理模式中读取从数据输入设备输入的数据包括:响应于来自个人系统2接口的第一端口的字节指示系统管理中断是由键盘事件触发,从个人系统2接口的第二端口读取数据。
PS/2接口是计算设备中用于连接外部设备的一种常用接口,可以通过检测接口中各个端口的数据,来确定经由键盘输入的数据。具体地,在系统管理模式中,可以检测端口0x64(第一端口)处的数据,0指示用户按下了键盘中的某个按键(即,当前的系统管理中断是由于该按键被按下而触发),并且在端口0x60(第二端口)处可以读取到用户输入的数据。
在下文中将通过具体示例来说明读取用户输入数据的细节。当用户按下了PS/2键盘中的按键“a”时,计算设备因系统管理中断而进入系统管理模式。此时,在接口的端口0x64处的字节“0”指示用户按下了键盘中的按键,并且在接口的端口0x60处的字节将指示用户按下了键盘中的哪个按键(例如,按键“a”)。
在本发明的一个实施方式中,在系统管理模式中读取从键盘输入的数据进一步包括:响应于来自第一端口的字节指示系统管理中断是由鼠标事件触发,等待下一系统管理中断。
本领域技术人员应当注意,用户对于键盘和鼠标的操作都可以触发系统管理中断,因而,需要首先判断系统管理中断是由键盘事件触发还是由鼠标事件触发。具体地,在端口0x64处的字节“5”指示:该中断是由鼠标事件而触发。由于本发明的技术方案旨在针对用户经由键盘等字符输入设备输入的数据的安全性,因而可以不对鼠标事件进行特殊处理,而是等待下一个系统管理中断。
随着计算机技术的发展,越来越多的数据输入设备通过USB接口来耦合至计算设备。在本发明的一个实施方式中,数据输入设备是经由通用串行总线接口耦合至设备的键盘,以及其中在系统管理模式中读取从数据输入设备输入的数据包括:从通用串行总线接口读取数据。
USB提供了一种外部总线标准,外部设备可以基于该标准来与计算设备连接并通信。在本发明的各个实施方式中,本领域技术人员可以基于USB的数据通信格式,来从USB接口读取用户经由USB键盘输入的数据,在本发明的上下文中将不再赘述具体细节。
本领域技术人员应当理解,在上文中仅以示例性方式示出了经由PS/2接口和USB接口来耦合数据输入设备和计算设备的具体示例,本领域技术人员还可以基于本发明的上下文中记载的原理,来从经由其他接口耦合至计算设备的数据输入设备读取输入数据。
在本发明的上下文中,由于一个或者多个用户可以同时访问远程服务器(例如,多个用户正在同时访问银行的网站),并且每个用户可能会输入多个敏感数据(例如,账号和密码是两个不同的敏感数据)。因而此时为了进一步区分,还可以基于会话标识符来区分不同的敏感数据。
在本发明的一个实施方式中,进一步包括:获取与远程服务器相关联的会话的会话标识符;以及向经加密的数据附加会话标识符。现在参见图5来详细描述,图5示意性示出了根据本发明一个实施方式的会话标识符的示意图500。具体地,如图5所示,假设用户正在访问银行的网站,并且需要输入银行账号510和密码520。由于银行账号510和密码520是不同的数据,因而可以分别采用会话标识符“APP_BANK_ACC”和“APP_BANK_PWD”来区分两个数据。进一步,当多个用户同时访问银行网站时,还可以在会话标识符中加入区分用户身份的部分,以便针对每个用户输入的每个数据来设置唯一的会话标识符。
具体地,在用户输入了银行账号“12345678”后,可以首先将银行账号“12345678”进行加密并获得经加密的数据,并且利用会话标识符“APP_BANK_ACC”指示经加密的数据是用户输入的银行账号。可以将会话标识符附加至经加密的数据,并向远程服务器发送经加密的数据。远程服务器可以解密接收到的数据,并且可以通过会话标识符“APP_BANK_ACC”知晓接收到的数据是用户输入的银行账号。在此实施方式中,由于会话标识符清晰描述了经加密数据是什么数据,因而远程服务器可以迅速确定接收到的数据的含义。
应当注意,上文所述的“附加”包括广泛的含义,本领域技术人员可以将会话标识符插入到用户输入的原始银行账号之前、之中、或者附加至末尾,继而将银行账号和会话标识符一起加密;或者还可以将会话标识符插入到经加密的银行账号之前、之中、或者附加至末尾,等等。在本发明的各个实施方式中,并不针对“附加”步骤给出具体限定,而是只要能够将用户输入的敏感数据和用于标识该敏感数据的会话标识符封装到一个或者多个数据包中,并向远程服务器传输该一个或者多个数据包即可。
应当注意,在上文中的会话标识符仅仅示意性示出了一个具体示例,本领域技术人员可以基于具体应用环境来设计其他实施方式。例如,本领域技术人员可以采用其他方式来定义会话标识符,可以扩展会话标识符的定义以便向其中添加其他信息。在本发明的一个实施方式中,需要在远程服务器端设置相应的处理机制,使得该远程服务器能够理解当前接收到的经加密的数据是哪个用户输入的什么数据,继而使得远程服务器可以采取相应的解密方式来获得用户输入的数据。
另外,本领域技术人员应当理解,用户输入敏感信息的动作可以是连续的(例如,连续输入8位的银行账号),也可以是不连续的(例如,在输入银行账号期间进行了其他鼠标操作,或者将输入焦点移动至其他位置并输入了其他信息)。因而,本领域技术人员可以基于具体应用环境的要求而设计不同的实施方式。
例如,当检测到用户的输入焦点始终位于“账号”这一输入域、并且用户连续输入了8个数字时,可以在接收到全部8个数字后,将由8个数字组成的银行账号进行加密,并将经加密的银行账号发送至远程服务器。或者,还可以在每次检测到用户输入的一个数字后,单独将该数字加密并将经加密的数字逐一发送至远程服务器;或者,还可以将用户输入的一个或者多个数字加密,并且在一个或者多个发送操作中,向远程服务器发送经加密的一个或者多个数字。
在本发明的一个实施方式中,进一步包括:获取与数据相关联的时间戳和序列号中的至少任一项;以及向经加密的数据附加时间戳和序列号中的至少任一项。
在本发明的一个实施方式中,为了防止因网络原因造成的传输错误的情况,还可以获取与数据相关联的时间戳,以便远程服务器在接收到经加密的数据后,通过时间戳来判断如何处理接收到的经加密数据。在本发明的一个实施方式中,当在每个数据包中仅传输用户输入的一个数据(例如,一个字符)时,还可以获取该数据的序列号(即,该字符是用户输入的第几个字符),以便远程服务器接收到每个单独的字符后,可以通过序列号来拼装得到用户输入的原始序列。
例如,当用户输入银行账号“12345678”时,字符“1”的序列号可以是“1”、字符“2”的序列号可以是“2”、…、字符“8”的序列号可以是“8”。即使远程服务器以乱序方式接收到各个单独的字符,远程服务器也可以通过序列号1至8来获得用户输入的银行账号“12345678”。类似于上文的描述,本领域技术人员可以采用各种方式来向经加密的数据附加时间戳和序列号中的至少任一项。
在本发明的一个实施方式中,进一步包括:在存储器缓存中存储经加密的数据,其中存储器缓存由操作系统层可访问。在本发明的实施方式中,可以通过存储器缓存来在固件层和操作系统层之间传输经加密的数据。操作系统层与固件层彼此独立,操作系统层可访问存储器缓存,因而固件层可以将经加密的数据存储至存储器缓存,以便由操作系统层访问经加密的数据。以此方式,一方面确保了用户输入的敏感数据的安全性,另一方面,还可以在操作系统层向远程服务器发送经加密的数据。
在本发明的一个实施方式中,存储器缓存可以是UEFI中的存储空间。可以在该存储空间中指定以预定义的变量名称来存储经加密的数据,并且本领域技术人员可以自定义变量名称。例如,可以基于远程服务器的全局唯一标识符(Globally Unique Identifier,缩写GUID)和/或UEFI变量的名称来定义,或者还可以采用其他方式来定义,只要计算设备中的固件层和操作系统层预先知晓该变量名称即可。
应当注意,在本发明的上下文中,计算设备的用户可能会访问银行,因而此时可以基于各个银行的远程服务器的GUID,来存储器缓存中定义多个变量,以便在多个变量中的每个变量中存储与每个银行相关联的数据。
通过采用上文参见图3至图5描述的方法,即使在计算设备和/或网络中存在恶意程序,该恶意程序也仅能访问经加密的敏感数据而并不能获得用户原始输入的敏感数据,因而可以确保敏感数据的安全性。进一步,在远程服务器接收到来自计算设备的经加密数据后,可以按照与加密方法相对应的解密方法来执行解密操作,以便恢复出用户输入的原始数据。
具体地,图6示意性示出了根据本发明一个实施方式的各个设备经由网络的交互的示意图600。如图6所示,远程服务器610和计算设备620之间可以预先协商采用何种加密算法,并将密钥(例如,公钥和私钥)预先存储在密钥数据库630中。在本发明的实施方式中,并不限定密钥数据库630是否独立于远程服务器610,而是该密钥数据库630可以与远程服务器610位于相同的位置,或者可以是独立于远程服务器610和计算设备620的第三方数据库(例如,加密算法的提供者)。
计算设备620可以从密钥数据库630获取用于加密数据的公钥(如箭头a1所示),在计算设备620的固件层处获取来自数据输入设备的数据并将该数据进行加密。继而,计算设备620可以将经加密的数据经由网络640发送至远程服务器(如箭头b和c所示)。接着远程服务器610可以基于经由箭头a2所示而获得的私钥,来解密接收到的经加密的数据。以此方式,即使在计算设备620和/或网络640处存在恶意程序的情况下,仍然可以确保用户经由数据输入设备输入的敏感信息的安全性。
图7示意性示出了根据本发明一个实施方式的用于加密数据的设备的框图700。如图7所示,提供了一种设备,包括:数据输入设备710;操作系统层720;以及固件层730,固件层730可操作以:获取从数据输入设备输入的数据,数据对操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;以及在固件层处加密数据以用于由操作系统层向远程服务器发送。
在本发明的一个实施方式中,固件层730可操作以:基于系统管理中断获取数据,系统管理中断的优先级高于在操作系统层处执行的操作的优先级。
在本发明的一个实施方式中,固件层730可操作以:响应于在设备中检测到系统管理中断,启用系统管理模式;以及在系统管理模式中读取从数据输入设备输入的数据。
在本发明的一个实施方式中,数据输入设备710是经由个人系统2接口耦合至设备的键盘,以及固件层730可操作以:响应于来自个人系统2接口的第一端口的字节指示系统管理中断是由键盘事件触发,从个人系统2接口的第二端口读取数据。
在本发明的一个实施方式中,固件层730可操作以:响应于来自第一端口的字节指示系统管理中断是由鼠标事件触发,等待下一系统管理中断。
在本发明的一个实施方式中,数据输入设备710是经由通用串行总线接口耦合至设备的键盘,以及固件层730可操作以:从通用串行总线接口读取数据。
在本发明的一个实施方式中,固件层730可操作以:获取与远程服务器相关联的会话的会话标识符;以及向经加密的数据附加会话标识符。
在本发明的一个实施方式中,固件层730可操作以:获取与数据相关联的时间戳和序列号中的至少任一项;以及向经加密的数据附加时间戳和序列号中的至少任一项。
在本发明的一个实施方式中,进一步包括:存储器缓存,用于存储经加密的数据,其中存储器缓存由操作系统层可访问。
在本发明的一个实施方式中,提供了一种装置,包括:数据输入设备;数据获取模块,配置用于获取从数据输入设备输入的数据,数据对操作系统层不可访问并且将被发送至远程服务器,固件层独立于操作系统层;以及数据加密模块,配置用于在固件层处加密数据以用于由操作系统层向远程服务器发送。
在本发明的一个实施方式中,数据获取模块包括:中断模块,配置用于在固件层处基于系统管理中断获取数据,系统管理中断的优先级高于在操作系统层处执行的操作的优先级。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (20)

1.一种方法,包括:
在设备的固件层处获取从数据输入设备输入的数据,所述数据对所述设备的操作系统层不可访问并且将被发送至远程服务器,所述固件层独立于所述操作系统层;
在所述固件层处加密所述数据;以及
将经加密的所述数据发送至所述远程服务器。
2.根据权利要求1所述的方法,其中获取所述数据包括:
在所述固件层处基于系统管理中断获取所述数据,所述系统管理中断的优先级高于在所述操作系统层处执行的操作的优先级。
3.根据权利要求2所述的方法,其中在所述固件层处基于所述系统管理中断获取所述数据包括:
响应于在所述设备中检测到所述系统管理中断,启用系统管理模式;以及
在所述系统管理模式中读取从所述数据输入设备输入的所述数据。
4.根据权利要求3所述的方法,其中所述数据输入设备是经由个人系统2(PS/2)接口耦合至所述设备的键盘,以及其中在所述系统管理模式中读取从所述数据输入设备输入的所述数据包括:
响应于来自所述个人系统2(PS/2)接口的第一端口的字节指示所述系统管理中断是由键盘事件触发,从所述个人系统2(PS/2)接口的第二端口读取所述数据。
5.根据权利要求4所述的方法,其中在所述系统管理模式中读取从所述键盘输入的所述数据进一步包括:
响应于来自所述第一端口的所述字节指示所述系统管理中断是由鼠标事件触发,等待下一系统管理中断。
6.根据权利要求3所述的方法,其中所述数据输入设备是经由通用串行总线接口(USB)耦合至所述设备的键盘,以及其中在所述系统管理模式中读取从所述数据输入设备输入的所述数据包括:
从所述通用串行总线接口(USB)读取所述数据。
7.根据权利要求1所述的方法,进一步包括:
获取与所述远程服务器相关联的会话的会话标识符;以及
向经加密的所述数据附加所述会话标识符。
8.根据权利要求1所述的方法,进一步包括:
获取与所述数据相关联的时间戳和序列号中的至少任一项;以及
向经加密的所述数据附加所述时间戳和所述序列号中的至少任一项。
9.根据权利要求1所述的方法,进一步包括:
在存储器缓存中存储经加密的所述数据,其中所述存储器缓存由所述操作系统层可访问。
10.一种设备,包括:
数据输入设备;
操作系统层;
固件层,可操作以:
获取从所述数据输入设备输入的数据,所述数据对所述操作系统层不可访问并且将被发送至远程服务器,所述固件层独立于所述操作系统层;以及
在所述固件层处加密所述数据以用于由所述操作系统层向所述远程服务器发送。
11.根据权利要求10所述的设备,其中所述固件层可操作以:
基于系统管理中断获取所述数据,所述系统管理中断的优先级高于在所述操作系统层处执行的操作的优先级。
12.根据权利要求11所述的设备,其中所述固件层可操作以:
响应于在所述设备中检测到所述系统管理中断,启用系统管理模式;以及
在所述系统管理模式中读取从所述数据输入设备输入的所述数据。
13.根据权利要求12所述的设备,其中所述数据输入设备是经由个人系统2(PS/2)接口耦合至所述设备的键盘,以及所述固件层可操作以:
响应于来自所述个人系统2(PS/2)接口的第一端口的字节指示所述系统管理中断是由键盘事件触发,从所述个人系统2(PS/2)接口的第二端口读取所述数据。
14.根据权利要求13所述的设备,其中所述固件层可操作以:
响应于来自所述第一端口的所述字节指示所述系统管理中断是由鼠标事件触发,等待下一系统管理中断。
15.根据权利要求12所述的设备,其中所述数据输入设备是经由通用串行总线接口(USB)耦合至所述设备的键盘,以及所述固件层可操作以:
从所述通用串行总线接口(USB)读取所述数据。
16.根据权利要求10所述的设备,其中所述固件层可操作以:
获取与所述远程服务器相关联的会话的会话标识符;以及
向经加密的所述数据附加所述会话标识符。
17.根据权利要求10所述的设备,其中所述固件层可操作以:
获取与所述数据相关联的时间戳和序列号中的至少任一项;以及
向经加密的所述数据附加所述时间戳和所述序列号中的至少任一项。
18.根据权利要求10所述的设备,进一步包括:
存储器缓存,用于存储经加密的所述数据,其中所述存储器缓存由所述操作系统层可访问。
19.一种装置,包括:
数据输入设备;
数据获取模块,配置用于获取从所述数据输入设备输入的数据,所述数据对所述操作系统层不可访问并且将被发送至远程服务器,所述固件层独立于所述操作系统层;以及
数据加密模块,配置用于在所述固件层处加密所述数据以用于由所述操作系统层向所述远程服务器发送。
20.根据权利要求19所述的装置,其中所述数据获取模块包括:
中断模块,配置用于在所述固件层处基于系统管理中断获取所述数据,所述系统管理中断的优先级高于在所述操作系统层处执行的操作的优先级。
CN201510220038.4A 2015-04-30 2015-04-30 用于确保数据安全性的方法、设备和装置 Pending CN106203129A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510220038.4A CN106203129A (zh) 2015-04-30 2015-04-30 用于确保数据安全性的方法、设备和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510220038.4A CN106203129A (zh) 2015-04-30 2015-04-30 用于确保数据安全性的方法、设备和装置

Publications (1)

Publication Number Publication Date
CN106203129A true CN106203129A (zh) 2016-12-07

Family

ID=57458648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510220038.4A Pending CN106203129A (zh) 2015-04-30 2015-04-30 用于确保数据安全性的方法、设备和装置

Country Status (1)

Country Link
CN (1) CN106203129A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593550A (zh) * 2009-06-30 2009-12-02 公安部第三研究所 警用高强度加密u盘
US20100211687A1 (en) * 2009-02-16 2010-08-19 Dell Products L.P. Systems and methods for logging user input data for subsequent retrieval
US20140281577A1 (en) * 2013-03-15 2014-09-18 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
US8868927B1 (en) * 2012-08-14 2014-10-21 Google Inc. Method and apparatus for secure data input and output

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211687A1 (en) * 2009-02-16 2010-08-19 Dell Products L.P. Systems and methods for logging user input data for subsequent retrieval
CN101593550A (zh) * 2009-06-30 2009-12-02 公安部第三研究所 警用高强度加密u盘
US8868927B1 (en) * 2012-08-14 2014-10-21 Google Inc. Method and apparatus for secure data input and output
US20140281577A1 (en) * 2013-03-15 2014-09-18 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王占杰: "《64位微处理器及其编程》", 31 January 2006, 机械工业出版社 *

Similar Documents

Publication Publication Date Title
US9965653B2 (en) Trusted computing
US8176324B1 (en) Method and system for a secure virtual keyboard
JP6239788B2 (ja) 指紋認証方法、装置、インテリジェント端末及びコンピュータ記憶媒体
US9760727B2 (en) Secure host interactions
CN104903854B (zh) 用户可信设备及其引导计算机的方法
US9948668B2 (en) Secure host communications
CN108734031A (zh) 具有在数据安全桥中实现的安全功能的安全数据存储设备
US9547773B2 (en) Secure event log management
TW201539247A (zh) 密碼輸入與確認方法及其系統
KR20080034304A (ko) 유에스비 키보드의 보안장치 및 그 방법
CN103636166A (zh) 与请求-答复消息排队环境关联的动态数据保护策略
CN104252375A (zh) 用于位于不同主机的多个虚拟机共享USB Key的方法和系统
CN107528830B (zh) 账号登陆方法、系统及存储介质
JP2010517424A (ja) Usbトークン上の暗号化キーコンテナ
US20190377863A1 (en) Password input method, computer device and storage medium
US20150242609A1 (en) Universal Authenticator Across Web and Mobile
JP5049185B2 (ja) 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法
CN111475832A (zh) 一种数据管理的方法以及相关装置
CN109324843B (zh) 一种指纹处理系统、方法及指纹设备
CN106203129A (zh) 用于确保数据安全性的方法、设备和装置
JP6218225B2 (ja) データ通信システム、通信端末装置、及び通信プログラム
WO2021027145A1 (zh) 无应用支付方法、装置、计算设备和存储介质
JP5770354B1 (ja) サーバシステム及びリクエスト実行制御方法
KR100986123B1 (ko) 유에스비 키보드의 보안방법
US20160323251A1 (en) Method, device and equipment for ensuring data security

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20161207

WD01 Invention patent application deemed withdrawn after publication