CN105074716B - 用于使一次性口令的使用安全的技术 - Google Patents
用于使一次性口令的使用安全的技术 Download PDFInfo
- Publication number
- CN105074716B CN105074716B CN201480008538.5A CN201480008538A CN105074716B CN 105074716 B CN105074716 B CN 105074716B CN 201480008538 A CN201480008538 A CN 201480008538A CN 105074716 B CN105074716 B CN 105074716B
- Authority
- CN
- China
- Prior art keywords
- otp
- secure enclave
- stored
- measurement
- sealed key
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
各实施例一般涉及安全飞地的提供和使用,该安全飞地在计算设备的存储设备内由该计算设备的处理器元件定义,并且用于存储一次性口令(OTP)组件实现逻辑的可执行指令,该OTP组件实现逻辑用于生成并使用OTP以允许对由另一计算设备提供的服务的访问。设备包括:存储设备;第一处理器元件;以及第一逻辑,其用于:接收一次性口令(OTP)例程;将该OTP例程存储在存储设备之内的由第一处理器元件定义的第一安全飞地中;利用存储在第一安全飞地中的OTP例程来获取对该第一安全飞地的内容的测量;将第一测量传送到计算设备;以及接收OTP种子。描述了其他实施例,并要求它们的权利。
Description
技术领域
本文所述的多个实施例一般涉及在计算设备的存储设备中所定义的用于安全地解密并使用一次性口令的安全飞地的使用。
背景技术
虽然长时间以来口令被用作用于在控制对计算设备和由位于远程的计算设备所提供的数据/功能的访问时提供安全的工具,但是,长久以来也存在着对保持不变并在长期时期期间被反复使用的“静态”口令的使用的担忧。长时间以来已认可一次性口令(OTP)因其一次使用的性质是更安全的。然而,长时间以来存在着关于如何生成并提供它们的挑战。
长期存在的解决方案已用于提供微型OTP生成器设备,其授权用户可携带着它们。此类设备经常以信用卡或钥匙坠的形状和尺寸出现,并且以示出频繁变化的OTP的小型字母数字显示器为特征。由此类设备使用各种算法中的任何算法来生成这些OTP,各种算法通常需要初始的“种子”值和诸如一天中的时刻或单调计数器的当前输出之类的持续变化的“变量”值。所生成的OTP旨在允许对其访问的计算设备也执行具有相同种子和变量值的相同算法。结果,微型OTP生成器设备和寻求访问其的计算设备应当随时间生成完全相同的OTP,尽管历经从数月到数年的时期在它们的相对时序上可能有轻微的漂移。
尽管此类微型OTP生成器设备的预设是有效的,并且在伴随着敏感信息工作的人员之间广泛地使用,但是需要持有物理设备以便在需要时具有OTP的事实是不方便的。此外,此类设备的用户发现,如果微型OTP生成器设备被损坏、丢失或仅仅是需要时他们没有持有,则他们就不能够使用计算设备的服务。对此的一个提出的解决方案是将OTP生成功能合并进个人所拥有的个人的计算设备中,包括个人最有可能频繁地着用于多种使用的手持式便携设备。遗憾的是,对于那些个人拥有的计算设备的频繁具有的弱安全等级而导致种子和/或变量值可能被破解存在着担忧。正是针对这些和其他考虑才需要本文所述的多个实施例。
附图说明
图1示出多个计算设备之间的交互的第一实施例。
图2和图3各自示出图1的实施例的部分。
图4示出图2和图3的部分的变型。
图5示出第一逻辑流程的实施例。
图6示出第二逻辑流程的实施例。
图7示出第三逻辑流程的实施例。
图8示出第四逻辑流程的实施例。
图9示出处理架构的实施例。
具体实施方式
各实施例一般涉及安全飞地(enclave)的预设和使用,该安全飞地在计算设备的存储设备内由该计算设备的处理器元件定义,并且用于存储OTP组件实现逻辑的可执行指令,该OTP组件实现逻辑用于生成并使用用于允许对由另一计算设备提供的服务的访问的一次性口令(OTP)。该安全飞地占据由处理器元件通过使用其指令集中的特定指令而创建的存储设备中的可寻址位置中的至少一个区间(range)。在各种实现中,由不是存储在该安全飞地内的软件进行的访问可能是不允许的,本质上是高度受限的和/或需要解密。
最初向计算设备提供OTP组件以通过与预设服务器之间的通信来生成并使用OTP,其中,测试计算设备的完整性和/或安全特征的多个方面以确保可信度。此外,在对预设服务器的最初访问中使用通过完全不同的机制(例如,通过经由邮政服务的信、通过电话呼叫、通过当面的方式等)提供给计算设备的操作者的初始通行码。假定测试成功完成,则由预设服务器将种子值提供给计算设备。然后,使计算设备执行附加步骤,在这些附加步骤中,利用在该计算设备中生成的密封密钥对该种子值重新加密,以供稍后由OTP组件使用。
在此类预设之后,每当需要OTP来访问提供计算设备的操作者力图访问的各种服务中的任何服务的账户服务器时,都使计算设备重新实例化安全飞地。在对安全飞地的重新实例化之后,将OTP组件和经重新加密的种子值存储在其中,并且由计算设备的处理器元件在其中执行该OTP组件。同样,以需要密钥的生成以对经重新加密的种子值解密的的方式,对存储在安全飞地中的内容进行完整性进行校验。如果至少OTP组件的完整性没有丢失,则所生成的密钥应当用于对种子值解密。
为了支持这些各种各样的测试并且在保持计算设备以及预设服务器和账户服务器中的每一个之间的通信的完整性时提供支持,该计算设备可合并各种附加特征来防止捕捉操作者的登录相关的输入和/或呈现给该操作者的登录相关的视觉信息的屏幕捕捉。更具体地说,可利用硬件和/或软件组件来定义用于登录相关的信息的安全路径以防止破解。
根据对本文中使用的标记法和命名法的一般引用,可以在计算机或计算机网络上执行的程序过程方面来呈现以下详细描述的多个部分。这些程序性描述和表示是由本领域技术人员使用以便最有效地将他们工作的实质传递给本领域其他技术人员。过程在此一般被理解为导致所期望结果的自洽的操作序列。这些操作是需要对物理量进行物理操控的那些操作。通常但非必然地,这些量采取能被存储、传输、组合、比较并以其他方式操控的电、磁或光信号的形式。主要出于惯用法的原因,时不时地将这些信号称为位、值、元素、符号、字符、项、数字等被证明是方便的。然而,应当注意,所有这些和类似项旨在与适当的物理量相关联,并且仅仅是应用于那些量的方便的标记。
此外,通常按术语将这些操控称为常与由人类操作者执行的脑力操作相关联的相加或比较。然而,在形成一个或多个实施例的部分的本文所述的操作中的任何操作中,在多数情况下,没有人类操作者的此类能力是必需的或需要的。相反,这些操作是机器操作。用于执行各实施例的多个操作的有用的机器包括通用数字计算机,其由存储于其中的、根据本文的教导而被写入的计算机程序选择性地激活或配置;和/或包括专门为所需目的而构造的设备。各实施例也涉及用于执行这些操作的设备或系统。可为所需目的专门构造这些设备,或者这些装置可包括通用计算机。各种这样的机器的所需结构将从给定的描述中出现。
现在将参考附图,自始至终相同的参考编号用于指相同的元件。在以下描述中,为了进行解释,阐述了众多具体细节以便提供对该描述的全面理解。然而,显而易见的是,可以不利用这些具体细节而实施多个新颖的实施例。在其他实例中,以框图形式示出了多个公知的结构和设备以便于对这些结构和设备的描述。本发明旨在涵盖在权利要求范围之内的所有修改、等效方案和替换方案。
图1描绘了在计算服务系统1000的多个计算设备之间的交互的框图,该计算服务系统1000包括:预设服务器100,其用于提供OTP组件;计算设备300,将向其预设OTP组件并且其将使用这些OTP组件;以及账户服务器600,其提供服务,使用具有OTP组件的计算设备300来寻求对这些服务的访问。这些计算设备100、300和600中的每一个可以是各种类型的计算设备中的任何一个,包括但不限于,台式计算机系统、数据录入终端、膝上型计算机、上网本计算机、超级本计算机、平板计算机、手持式个人数字助理、智能电话、数码相机、移动设备、合并到衣服中的身体穿戴的计算设备、集成到车辆中的计算设备、服务器、服务器群集、服务器场等。
如所描绘的那样,这些计算设备100、300和600交换传达与OTP的使用相关联的可执行指令和数据的信号,以便通过系统1000的网络999获取对服务的访问。然而,这些计算设备中的一个或多个可交换与OTP或其使用完全不相关的其他数据。在各实施例中,网络999可以是可能限于在单个建筑或其他相对有限区域内延伸的单个网络、可能延伸相当长距离的多个经连接网络的组合和/或可包括因特网。由此,网络999可基于通过其可交换信号的各种通信技术(或通信技术的组合)中的任何技术,包括但不限于,采用电和/或光导电缆布线的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
应当注意,尽管对于预设服务器100、计算设备300和账户服务器600中的每一种进行了仅一个的特定描绘,但是应当理解,包括这些计算设备中的每一种的多个设备的实施例是可能的。作为示例,预想了预设服务器100或账户服务器600中的任何一种的单个可支持大量的计算设备300。同样作为示例,预想了可用可能由多个预设服务器100提供的多个版本的OTP组件来预设单个的计算设备300,以便允许对由多个账户服务器300提供的多个不同服务的访问。此外,应当注意,尽管描绘了分开的服务器用于支持对OTP组件的预设和使用,但是在其中单个服务器可合并和/或支持两个功能的实施例是可能的。因此,对单个的这些计算设备中的每一种和两个服务器之间的功能的具体分离的特定描绘,此类特定描绘不过是用于便于讨论的示例,并且不应当被当作是限制性的。
在各实施例中,预设服务器100包括处理器元件150、存储设备160以及用于将该预设服务器100耦合至网络999的接口190中的一个或多个。存储设备160存储控制例程140、OTP种子331和控制例程370。控制例程140包括在处理器元件150上操作以实现用于执行各种功能的逻辑的指令序列。在执行控制例程140的指令序列时,使处理器元件150操作接口190,以便首先将控制例程370传送到计算设备300。随着如此将控制例程370预设给计算设备300,如将更详细地描述的那样,然后使处理器元件150等待对测量数据437的接收,在计算设备300中,从控制例程370被存储到其中的安全飞地的测量到的参数中导出该测量数据437。然后使处理器元件150分析测量数据437以确定计算设备300是否包含了包括对合适的安全飞地的支持的安全特征的所选择的最小组合,并且确定是否由伴随计算设备300的此类安全飞地成功地接收了控制例程370并且未加更改地将该控制例程370存储在了伴随计算设备300的此类安全飞地中。假定处理器元件150确定了计算设备300确实包含此类特征,并且已经这样存储了控制例程370,则随后使处理器元件150将OTP种子331传送到计算设备300,以便结合控制例程来使用。
在各实施例中,计算设备300包括处理器元件350(担当计算设备300的主处理器)、存储设备360、显示器380和耦合至该显示器的显示接口385、控制装置320和耦合至该控制装置的接口控制器395a、控制器400以及用于将计算设备300耦合至网络999的接口控制器395b中的一个或多个。处理器元件350包含ID码351,并定义存储设备360中的安全飞地367。存储设备360将控制例程370、登录框339和OTP种子331存储在安全飞地367内。然而,控制例程340被存储在存储设备360之内的、安全飞地367的外部。控制器400包括处理器元件450(担当计算设备300的控制器400的控制器处理器)、存储设备460和计数器元件415中的一个或多个。存储设备460存储控制例程440、密封密钥431和测量数据437。
控制装置320和显示器380为计算设备300的操作者提供用户接口。控制装置320可以是各种类型的手工能操作的控制装置中的任何一个,包括但不限于,键盘、鼠标、小键盘、触板、触笔、指纹读取器等中的一个或多个。显示器380可以是各种类型的显示设备中的任何一个,包括但不限于,液晶显示器(LCD)、电致发光(EL)显示器、等离子体显示器等。此外,应当注意,可将控制装置320和显示器380组合进诸如触屏显示器之类的单个组件中。能够通过接口控制器395a来循环地监测控制装置320。通过显示接口385的操作,能够使显示器380可视化地呈现各种形式的内容。如将更详细地解释的那样,通过使用用于经过控制器400的信息的移动的替代路径中的一条或两条以及在与存储在安全飞地(例如,安全飞地367)之内的可执行代码交换此类信息时使用加密,可保护在计算设备300及其操作者之间传递的此类信息免受未经授权的访问(例如,监听、击键监视、图像缓冲器捕捉等)。
可采用类似的安全措施,以便通过接口控制器395b,跨网络999进行与其他计算设备(例如,预设服务器100和/或账户服务器600)之间的数据的交换。具体而言,就接口控制器395a和显示接口385中的每一个而言,可采用用于此类数据经过控制器400的移动的替代路径和/或在与存储在安全飞地(例如,安全飞地367)之内的可执行代码进行此类数据的交换中的加密。
如受制于相对严格的访问限制那样,安全飞地367可由经处理器元件350定义的一个或多个地址区段构成。此类限制可包括授予被存储在安全飞地367之内的可执行指令(例如,控制例程370)遍及存储设备360地在其他地址处相对自由地访问数据和/或可执行指令的能力,同时可极大地限制或完全不允许来自安全飞地367之外的其他可执行指令(例如,控制例程340)的访问的能力。实际上,可对存储在安全飞地367之内的可执行指令和/或数据加密以进一步保护它们免受来自安全飞地367外部的可执行指令的所尝试的访问。替代地或附加地,可授予存储在安全飞地367之内的可执行指令在各个地址位置处访问计算设备300的相对宽选择的组件的能力,同时由安全飞地367外部的其他可执行指令进行的访问可限于相对有限选择的组件。如将更详细地解释的那样,处理器元件350的指令集包括用于由可执行指令支持一个或多个安全飞地的实例化的指令,这些可执行指令力图定义存储设备360中可安全地存储数据并且可安全地执行可执行指令的部分。
处理器元件450和存储设备460定义控制器400之内的操作环境的多个部分,该操作环境基本上与由至少处理器元件350和存储设备360定义的操作环境分开。该分开的操作环境使得能够执行控制例程440,同时被可由处理器元件350执行的其他较不可信的软件破解的风险大大降低。将数据存储在存储设备460之内进一步辅助确保控制例程440的执行的完整性。因此,控制器环境力图利用分开的硬件来进行伴随安全飞地367的实例化所做的,即,提供在其中可执行特定指令的安全环境。
计数器元件415提供来自控制器400内部的基于硬件的计数功能,旨在由安全的计数设备依赖该控制器400作为变量值输出的可信源。在一些实施例中,计数器元件415包括基于硬件的时钟,其保持一个或多个时区中的时间,或可能保持诸如格林尼治标准时间(GMT)或协调世界时(UTC)之类的时基。在其他实施例中,计数器元件415包括单调计数器,其以一致的速率进展(递减或递增)而从不往回运行,并且具有足够大的位宽使得在未来许多年或几十年不会达到其计数极限。
控制例程340包括在处理器元件350上的操作的指令序列,该处理器元件350按其作用作为用于实现用于执行各种功能的逻辑的计算设备300的主处理器元件。在执行控制例程340的指令序列时,使处理器元件350允许计算设备300的操作者能够与控制装置320和显示器380交互,以便使计算设备300访问预设服务器100,从而实现用一个或多个OTP组件来预设计算设备300。这可作为各种使用场景中的任何场景的部分发生,各种使用场景涉及结合由账户服务器600提供的服务对计算设备300的所期望的使用,其中,对那些服务的访问需要登录账户。此类可能的使用场景包括但不限于:操作者是维护账户服务器600的金融机构的客户,其希望利用该账户服务器600参与网上银行操作;操作者是医疗专业人员,其需要访问维护账户服务器600的医院中的其病人中的一位的医疗记录。
在访问预设服务器100时,该预设服务器100可以可是地向操作者视觉地呈现各种提示,以便经由显示器380从预设服务器100下载控制例程370。在执行那些提示时,预设服务器100将控制例程370传送到计算设备300。在接收到控制例程370时,尽管不一定直接将其存储到安全飞地367中,但也将其存储在存储设备360中。预设服务器100可与控制例程340交互以提示操作者同意控制例程370的执行,以便安装它。在一些实施例中,控制例程340可以是web浏览器或用于支持与其他计算设备的通信的其他形式的软件,并且控制例程370可以是“插件”或用于扩充控制例程340的能力的其他形式的“附加”软件。
控制例程370也包括在处理器元件350上操作以实现用于执行各种功能的逻辑的指令序列。无论控制例程340和370之间交互的确切性质如何,由处理器元件350对控制例程370的执行使处理器元件350实例化安全飞地367,并且在其中存储至少控制例程370的副本。从那时起,处理器元件350执行安全飞地367之内的控制例程370的指令,在安全飞地367中,此类执行现在在安全的环境中发生,伴随着在执行时控制例程370被破解的最低风险。在此类执行时,至少控制例程370使处理器元件350与预设服务器100协作以在该预设服务器100和安全飞地367之间建立安全的通信,使得控制例程370能够安全地与供服务器100交换来自安全飞地367内部的数据。随着建立了此类安全通信,进一步使处理器元件350与预设服务器100协作以向计算设备300的操作者呈现提供初始通行码的提示,该初始通行码经由不同于网络999的通信路径(诸如,通过邮政服务、通过电话、当面等)由操作者接收。
在这种对通行码输入的提示的呈现中,在一些实施例中,显示接口385能够参与同安全飞地367的经加密的通信。结果,安全飞地367能够将由安全飞地367之内的控制例程370从预设服务器100接收到输入通行码的可视化提示的文本和/或图像中继到显示接口385以便以加密形式在显示器380上呈现,使得它不会被可能是驻留在计算设备300之内的安全飞地367外部的位置中的恶意软件监视、复制或以其他方式操控。此外,可将显示接口385的图像缓冲器配置为至少不可由存储在安全飞地367的外部并在外部执行的软件访问,和/或配置为仅能以其加密形式访问。在其他实施例中,能以使处理器元件450能够将来自安全飞地367的此类可视化提示的文本和/或图像中继到显示控制器385的方式来将显示控制器385链接到控制器400。
类似地,在一些实施例中,接口控制器395a能够参与同安全飞地367的经加密的通信,使得由操作者经由控制装置320输入的数据(例如,实际的通行码)不会被可能是驻留在计算设备300值内的安全飞地367外部的位置中的恶意软件(例如,击键记录器)监视、复制或以其他方式操控。在其他实施例中,能以使处理器元件450能够将由操作者输入的数据中继到安全飞地367的方式将接口控制器395a链接到控制器400,使得仅处理器元件350的操作环境中的控制例程370具有对该数据的访问权。
在将文本和/或图像传递到显示控制器385时的此类安全和/或在传递由操作者从接口控制器395a输入的数据时的此类安全可能在一些实施例中是不可由操作者(也许通过键盘键的特定组合)调用的,或在其他实施例中是不可由控制例程370的可执行指令调用的。无论如何来调用此类安全,并且不管将操作者对通行码的输入安全地提供给安全飞地367中的控制例程370的确切方式如何,控制例程370都将该通行码传送到预设服务器100。操作码到预设服务器100的传输将计算设备300的操作者验证为是经授权来使用账户服务器600的服务的人员。
控制例程440包括在处理器元件450上的操作的指令序列,该处理器元件450按其作用作为用于实现用于执行各种功能的逻辑的控制器400的控制器处理器。除了使得向预设服务器100提供通过另一渠道给予操作者的通行码之外,控制例程370还使处理器元件350与执行控制例程440的处理器元件450协作以从安全飞地367的内容中导出测量数据437,以便传输到预设服务器100。更具体而言,处理器元件450能够访问安全飞地367的内容以用算术方法从中导出测量数据437(例如,散列或循环冗余校验值),并且由处理器元件350用信号通知处理器元件450这样做。在创建测量数据437时,处理器元件450将其提供给处理器元件350,并且由控制例程370使处理器元件350将其传送到预设服务器100。
在接收到测量数据437后,预设服务器100检验其以确定其是否如所期望的那样。利用驻留在安全飞地中的控制例程370,从该安全飞地的内容中形成测量数据437旨在向预设服务器100提供计算设备300拥有形成安全飞地的能力,并且该计算设备300实际上确实这样做并以未受破坏的形式将控制例程370置于其中的证明。因此,测量数据437向预设服务器100提供了计算设备300具有允许将计算设备300视为用于完全预设以生成OTP的充分可信平台的安全特征的至少基线集的证据。
假定测试数据437确实通过了预设服务器100对其执行的无论什么测试,则预设服务器100将OTP种子331传送到计算设备300。取决于用于访问账户服务器600的特定OTP的生成算法方案,即便在多个计算设备可能与单个操作者相关联的情况下,OTP种子331对于预设服务器100将其提供给的每一个计算设备是唯一的也是可能的。在通过较早时在预设服务器100和安全飞地367之间建立的安全通信接收到OTP种子331之后,通过其所传输的加密对OTP种子331解密,并将该OTP种子331存储在安全飞地367之内。然后使处理器元件350用信号通知处理器元件450从至少测量数据437中导出密封密钥431。
可采用各种算法中的任何算法来从测量数据437中导出密封密钥431。此外,可将一个或多个ID码(例如,处理器元件350的ID码351)和/或向预设服务器100验证操作者时所使用的初始通行码合并进密封密钥431的创建中,使得密封密钥431的使用专用于计算设备300,如将更详细地解释的那样。随着这样导出了密封密钥,处理器元件450将它提供给处理器元件350,由控制例程370使该处理器元件350使用密封密钥431对OTP种子331重新加密。在对OTP种子331重新加密之后,对计算设备300的预设以生成在访问账户服务器600时使用的OTP完成。控制例程370和预设服务器100之间的安全通信被停止。将控制例程370和OTP种子331存储在存储设备360中的别处(或计算设备300中的别处),并且对安全飞地367去实例化。重要的是要注意到丢弃了密封密钥431,并且不将其存储在计算设备300中的任何地方或别处。
在对上述计算设备300的预设之后的稍后时刻,由处理器元件350对控制例程340的执行使得计算设备300的操作者能够与控制装置320和显示器380交互以使用计算设备300来访问账户服务器600。在访问账户服务器600时,该账户服务器600可与控制例程340协作以便向操作者可视地呈现向账户服务器600提供至少OTP以及作为第二安全因素(例如,单独键入的口令、指纹扫描等)的可能的某种其他形式的安全“质询”(“challenge”)的各种提示。也由账户服务器600通过控制例程340或由操作者触发控制例程370的执行以生成所请求的OTP。
在由处理器元件350执行控制例程370时,使处理器元件350再次实例化安全飞地367,并且将至少该控制例程370的副本存储在其中。从那时起,处理器元件350再次执行安全飞地367之内的控制例程370的指令,其中,此类执行现在在安全的环境中发生,伴随着在执行时控制例程370被破解的最低风险。同样,可由操作者或经由控制例程370的可执行指令来调用已针对将来自安全飞地367的文本和/或图像传递到显示控制器385和/或已针对将由操作者从接口控制器395a输入的数据传递到安全飞地367所描述的此类安全。凭借此类安全的调用,使向操作者呈现安全质询的提示和操作者对其的响应(例如,口令的键入、指纹扫描的提供等)安全而免受可能是驻留在存储设备360之内的在安全飞地367外部的位置处的恶意软件监视或复制。
在执行安全飞地367之内的控制例程370时,处理器元件350用信号通知处理器元件450再次导出安全飞地367的内容的测量数据437,并再次附加地从其中的测量中导出密封密钥431。本质上,用信号通知处理器元件450再次重新重建密封密钥431。在这样做时,处理器元件450将重新创建的密封密钥431提供给处理器元件350。凭借利用控制例程370(其是与当在预设期间进行测量时被存储在安全飞地367内的内容相同的配置)对安全飞地进行的测量,使处理器元件350首先将经加密的种子数据331的副本存储在安全飞地367中,然后使用重新创建的密封密钥431来对种子数据331解密,以供在生成OTP时使用。假定控制例程370和安全飞地367的结构都没有经更改或以其他方式被破坏,则重新创建的密封密钥431应当与先前所述的在预设期间用于对种子数据331加密的原始创建的密封密钥431完全相同。因此,控制例程370应当能够使用重新创建的密封密钥来对OTP种子331解密,从而向控制例程370提供在生成OTP中使用的种子值。
也由控制例程370使处理器元件350从控制器400请求变量值。如先前所讨论的那样,需要种子值(在OTP种子331内传递)和变量值两者来创建OTP(随时间的流逝而变化的值)。在接收到来自处理器元件350的对变量值的请求时,由控制例程440使处理器元件450从计数器元件415中检索当前的变量值,并将其提供给处理器元件350。在接收到来自处理器元件450的变量值时,由控制例程370使处理器元件350使用该变量值及经正确解密的OTP种子331的种子值来生成OTP。
在一些实施例中,控制例程370可简单地使处理器元件350将所生成的OTP传送到账户服务器600以允许对其服务的访问。然而,在其他实施例中,可使处理器元件350创建登录框339,在该登录框339中组合OTP以及操作者响应于质询提示而提供的无论什么输入以传送到账户服务器600。仍然可将其他数据片段结合进登录框339,诸如,处理器元件350的ID码351或原始提供给操作者以结合预设服务器100使用的通行码。假定成功地重新创建了密封密钥431,使得所生成的OTP是正确的,则无论单独地或结合其他信息片段将OTP预设给账户服务器600都应当使账户服务器600授予计算设备300的操作者对它提供的服务的访问权。
在各实施例中,账户服务器600包括处理器元件650、存储设备660以及用于将该账户服务器600耦合至网络999的接口690中的一个或多个。存储设备660存储控制例程640和OTP种子331的副本。控制例程640包括在处理器元件650上操作以实现用于执行各种功能的逻辑的指令序列。正如所描述的那样,在执行控制例程640的指令序列时,使处理器元件650操作接口690以与计算设备300交互,以便接收并验证至少由计算设备300生成和传送的OTP。在较早时刻,账户服务器600接收来自预设服务器100的OTP种子331的副本。响应于接收到由计算设备300生成的OTP,使处理器元件650独立地将OTP种子331及其对应部分(counterpart)用于计算设备300的计数器元件415以生成OTP,并且随后确定它的所生成的OTP与从计算设备300接收到的OTP是否匹配。假定它们匹配,则使处理器元件650将对账户服务器650的服务的访问权授予计算设备300。
在各实施例中,处理器元件150、350、450和650中的每一个可包括各种商业上可获得的处理器中的任何处理器,包括但不限于,的速龙()、毒龙()或皓龙()处理器;的应用、嵌入式或安全处理器;的和/或摩托罗拉的龙珠()或处理器;IBM和/或索尼的Cell处理器;或英特尔的赛扬()、酷睿(2)酷睿(2)酷睿酷睿酷睿凌动()、安腾()、奔腾()、至强()或处理器。此外,这些处理器元件中的一个或多个可包括多核处理器(无论多个核共同位于相同的管芯上还是在分开的管芯上)和/或凭借其能以某种方式链接多个物理上分开的处理器的一些其他种类的多处理器架构。
在各实施例中,存储设备160、360、460和660中的每一个可基于各种信息存储技术中的任何技术,可能包括需要不中断的电力供应的易失性技术,并且可能包括需要可以是或可以不是可移动的机器可读存储介质的使用的技术。因此,这些存储设备中的每一个包括各种类型(或各种类型的组合的)存储设备中的任何存储设备,包括但不限于,只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡、一个或多个单铁磁盘驱动器或组织为一个或多个阵列的多个存储设备(例如,组织为独立盘冗余阵列的阵列(或RAID阵列)的多个铁磁盘驱动器)。应当注意,尽管将这些存储设备中的每一个描绘为单个块,但是这些中的一个或多个可包括可基于不同存储技术的多个存储设备。因此,例如这些所描绘的存储设备中的每一种的一个或多个可表示下列的组合:光驱动器或闪存卡读取器,凭借其可存储并在某种形式的机器可读存储介质上传递程序和/或数据;铁磁盘驱动器,用于在本地存储程序和/或数据达相对延长的时期;以及一个或多个易失性固态存储设备(例如,SRAM或DRAM),其允许对程序和/或数据的相对快的访问。还应当注意,这些存储设备中的每一个可由基于完全相同的存储技术但因使用中的专用性而被分开保持的多个存储组件组成(例如,将一些DRAM设备用作主存储设备,而将其他DRAM设备用作不同的图形控制器的帧缓冲器)。
在各实施例中,接口190、395b和690中的每一个可采用如已描述的那样允许计算设备300和600中的每一个通过网络999而耦合的各种信令技术中的任何技术。这些接口中的每一个包括提供用于启用此类耦合的必不可少的功能中的至少一些的电路。然而,也可至少部分地利用由处理器元件150、350、450和650中的对应元件所执行的指令序列来实现这些接口中的每一个(例如,实现协议栈或其他特征)。在网络999中的一个或多个部分采用电和/或光导电缆布线的情况下,这些接口中的对应接口可采用符合各种行业标准中的任何标准的信令和/或协议,这些行业标准包括但不限于,RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。替代地或附加地,在网络999的一个或多个部分需要使用无线信号传输的情况下,这些接口中的对应接口可采用符合各种行业标准中的任何标准的信令和/或协议,各种行业标准包括但不限于,IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常被称为“移动宽带无线访问”);蓝牙;ZigBee;或蜂窝无线电电话服务,诸如,利用通用分组无线电服务的GSM(GSM/GPRS)、CDMA/lxRTT、用于全球演进的增强型数据速率(EDGE)、演进仅数据/演进经优化数据(EV-DO)、针对数据和语音的演进(EV-DV)、高速下行链路分组访问(HSDPA)、高速上行链路分组访问(HSUPA)、4G LTE等。应当注意,尽管将这些接口中的每一个描绘为单个块,但是这些中的一个或多个可包括可基于不同信令技术的多个接口。尤其在这些接口中的一个或多个将这些计算设备中的对应设备耦合至各自采用不同的通信技术的多于一个的网络的情况下,情况可能如此。
图2和图3一起更详细地示出图1的框图的部分的框图。更具体地说,在图2中描绘了在进行预设以允许生成OTP期间计算设备300和控制器400的操作环境的多个方面,而图3中描绘了OTP的生成期间的情况,其中,由控制例程340、370和440中的对应例程的执行使处理器元件350和450执行上述功能。如本领域技术人员将理解的那样,选择这些控制例程中的每一个(包括组成每一个的多个组件)以在无论什么类型的一个或多个处理器上操作,选择这些处理器来实现这些处理器元件中的每一个的对应元件。
在各实施例中,控制例程340、370和440中的每一个可包括操作系统、设备驱动程序和/或应用级例程(例如,提供在盘介质上的所谓的“软件套件”、从远程服务器获取的“小应用程序”等)的组合。在包括了操作系统的情况下,该操作系统可以是各种可用的操作系统中的任何一个,可用的操作系统包括但不限于WindowsTM、OS XTM、或安卓OSTM。在包括了一个或多个设备驱动程序的情况下,那些设备驱动程序可提供对计算设备300和控制器400的各种其他组件中的任何组件(无论是硬件还是软件组件)的支持。
如所描绘的那样,控制例程370包括至少OTP组件375和通信组件379。OTP组件375可由处理器元件350执行,以便在创建测量数据437和密封密钥431时以及在使用OTP种子331的种子值和由计数器元件415提供的变量值来生成OTP时,在处理器元件350和450之间协调动作。通信组件379可由处理器元件350执行,以便在创建安全飞地367之内的控制例程370以及预设服务器100、账户服务器600、接口控制器395a和显示接口385之间的一个或多个之间的安全通信时进行辅助。
如所描绘的那样,控制例程440至少包括安全转移组件445、密钥生成器441和测量组件447。安全转移组件445可由处理器元件440执行,以便在一个或多个安全飞地(例如,安全飞地367)以及接口控制器395a和显示接口385中的一个或两个之间传递数据。测量组件447可由处理器元件440执行,以便通过各种算术算法中的任何算法导出对安全飞地(例如,安全飞地367)的内容的测量来作为验证该安全飞地中的代码和/或可执行指令的完整性的部分。密钥生成器组件441可由处理器元件440执行,以便从由测量组件导出的对安全飞地的内容的测量中生成密钥(例如,密封密钥431来自存储对安全飞地367的内容的测量的测量数据437)。
转到关于预设的图2,通信组件379与预设服务器100协作以通过网络999和接口395b在其间建立安全通信。然后,通信组件379接收来自预设服务器100的、将呈现在显示器380上的各种可视化提示,并且响应于此类提示,将由操作者输入的通行码传送到预设服务器100。通信组件379也从预设服务器100接收按其原始加密形式的OTP种子331。在一些实施例中,通信组件379也可与接口控制器395a和显示接口385中的一个或两个建立安全通信,以便参与将呈现在显示器380上的提示和/或由操作者经由控制装置320提供的通行码的经加密的交换。
OTP组件375用信号通知控制器400的处理器元件450提供从对安全飞地367的内容的测量中导出的测量数据437以及从至少该测量数据437中导出的密封密钥431。在接收到OTP种子331之后,如所描述的那样,OTP组件375随后使用密封密钥431来对OTP种子331加密,以便将来在生成OTP时使用。
安全转移组件445提供安全通信可在控制例程370以及显示接口385和接口控制器395a中的一个或两个之间发生的另一机制。在各实施例中,转移组件445可附加于或取代与显示接口385和接口控制器395a中的一个或两个建立安全通信的通信组件379来做到这一点。本质上,转移组件445提供了替代路径,凭借此路径,能以防止可能是驻留在存储设备360之内的安全飞地367的外部的恶意软件拦截或修改的方式来交换对将在显示器380上呈现给操作者的可视化提示和由操作者经由控制装置320提供的通行码的安全交换。
测量组件447导出测量数据437,该测量数据437由在将OTP种子331包括在其中之前对安全飞地367的内容的测量组成。密钥生成器441从至少测量数据437中生成密封密钥431。在密封密钥431的生成中,密钥生成器441也可包括计算设备300的数据的一个或多个标识片段,诸如,处理器元件350的ID码351。通过包括对计算设备300唯一的此类数据的标识片段,将用于对OTP种子331的后续解密的密封密钥431的稍后生成有效地“绑定”到计算设备300,使得在数据的该标识片段可用于创建正确的密封密钥的情况下,它必须发生在计算设备300上。
转到关于OTP生成的图3,通信组件379与账户服务器600协作以通过网络999和接口395b在其间建立安全通信。然后,通信组件379接收来自账户服务器600的、将呈现在显示器380上的各种可视化提示,并且将至少所生成的OTP传送到账户服务器600。如同在预设期间的情况(就如同参考图2所讨论的那样),通信组件379和安全转移组件445之间的一个或两个启用安全飞地367以及显示接口385和接口控制器395中的每一个之间的数据的安全交换。在不同的实施例中,可使用这些中的一个或两个。
OTP组件375用信号通知控制器400的处理器元件450基于对安全飞地367的内容的测量重新提供密封密钥431,该安全飞地367是为了生成OTP以提供给账户服务器600而再次经实例化的。OTP组件375也用信号通知处理器元件450提供来自计数器元件415的当前变量值。OTP组件随后使用重新创建的密封密钥431来对OTP种子331解密来获取其种子值,并随后使用该种子值和由计数器元件415生成的变量值两者来生成OTP。然后,OTP组件要么可将所生成的OTP提供给通信组件379以传输到账户服务器600,要么可生成登录框339,在其中所生成的OTP与一个或多个其他项(例如,经由控制装置320的操作者的键入的口令或指纹扫描)组合以传输到账户服务器600。
测量组件447再次利用包括在安全飞地367之内的OTP组件375但不利用OTP种子331来导出对安全飞地367的内容的测量。这样做是为了在预设期间(其中,安全飞地367包括OTP组件375但不包括OTP种子331)匹配安全飞地367的内容,因为在预设期间的该时刻,还没有接收到OTP种子331。每当进行对安全飞地367的内容的测量时,在该安全飞地367中具有相同的内容是有必要的,从而使来源于此类测量的所导出的测量数据437每次将是相同的。密钥生成器441再次从测量数据437和无论什么其他项的相同组合中生成密封密钥431,其中,测量数据437由测量组件447从安全飞地367的内容中导出,而其他项在预设期间原始生成密封密钥431的时候被包括(例如,诸如ID码351之类的标识数据)。在测量数据437的导出之后,随后将OTP种子331的副本存储在安全飞地367中以在安全条件下实现其解密。假定在当前经重新实例化以生成OTP的安全飞地367的结构中没有任何改变,并且假定在生成密封密钥431时可被包括的其他项中没有任何项已被改变,则当前创建以在对OTP种子331解密来启用OTP的生成的密封密钥431应当与在预设期间原始生成以对OTP种子331加密的密钥431完全相同。
图4示出可凭借其在组件之间的交互中提供安全的方式的变型。具体而言,描绘了使在安全转移组件445、通信组件379、显示接口385和接口控制器395a之间的数据交换安全的多个方面。
如所描绘的那样,在一些实施例中,可由处理器元件350在存储设备360内定义另一安全飞地366。该附加的安全飞地366可存储控制例程340的部分以提供安全服务,包括实例化和去实例化安全飞地,以及提供用于与(或通过)控制器400通信的作为硬件抽象层的接口。此外,虽然已将控制例程440讨论为被存储在控制器400的完全分开的操作环境中或在该完全分开的操作环境中被执行,但是在替代实施例中,可由控制例程340的驻留在附加的安全飞地366中的部分执行由控制例程440执行的功能中的一个或多个。此外,也可将被实现为可由处理器元件350执行的指令的计数器元件415的变型存储在附加的安全飞地366中并且在该附加的安全飞地366中执行。换言之,可将附加的安全飞地366包括在各实施例中以提供对其他安全飞地(例如,安全飞地367)的支持,和/或可包括其以代替控制器400的分开的环境。
如所讨论的那样,可使用用于防止拦截或篡改的加密将通过操作者对控制装置320(图1-3)的操作而接收到的通行码、口令、指纹扫描和/或其他输入从接口控制器395a安全地传递到通信组件379,或者通过借助于安全转移组件445的控制器400来将它们安全地传递到安全飞地366。同样如所讨论的那样,可由通信组件379使用用于防止拦截或篡改的加密或通过借助于安全转移组件445的控制器400来将与登录有关的文本和/或图像安全地传递到显示接口385。在替代实施例中,通过控制器400对此类数据的路由可包括通过附加的安全飞地366来路由它们,其中,该安全飞地366为其他安全飞地到控制器400以进行此类安全路由提供接口。
图4还描绘了与登录进入预设服务器100和账户服务器600中的一个或另一个有关的图像881的可视化呈现的示例。如将为本领域技术人员所熟悉的那样,被寻求访问的服务器可传送经选择以与特定操作者的特定账户相关联的图像,以便向该操作者提供他们正在与他们寻求访问的服务器(或其代理)而非伪装为该服务器的计算设备通信的可视化指示。此类图像趋向于是各种符号、彩色图案、对象的图片等。对凭借其可将此类图像(例如,图像881)从安全飞地367内部传递到显示接口385的机制的提供确保了它不会被可能驻留在存储设备360内的安全飞地366和367外部的恶意软件捕捉或篡改。如果此类恶意软件能够捕捉图像881的副本,则随后此类恶意软件可尝试在显示器380上呈现被寻求访问的服务器的登录屏幕的其自身的虚假版本,从而诱使操作者提供口令、指纹扫描等。
图5示出逻辑流2100的一个实施例。逻辑流程2100可代表由本文所述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流程2100可示出由处理器元件350在执行至少控制例程340和/或370时所执行的和/或由计算设备300的其他组件所执行的操作。
在2110处,计算设备(例如,计算设备300)从预设服务器(例如,预设服务器100)接收OTP例程(例如,控制例程370或至少其OTP组件375)。如所讨论的那样,预设服务器可提示计算设备的操作者输入通行码,该通行码由该操作者“以带外方式”通过诸如邮政服务或电话或当面之类的完全不同的通信机制来接收。
在2120处,计算设备的主处理器元件(例如,计算设备300的处理器元件350)执行OTP例程,并且该执行引起OTP例程中的调用对安全飞地的实例化的指令的执行。主处理器元件响应于那些指令创建安全飞地,OTP例程被存储在其中,并且对OTP例程的进一步执行发生在其中,在其中可提供更大的安全性以免受可能驻留在计算设备中别处的软件的恶意片段。
在2130处,获取对安全飞地的内容的测量。如所讨论的那样,可通过请求计算设备之内的控制器的控制器处理器元件(例如,控制器400的处理器元件450)导出对该飞地的内容的测量来做到这一点。然而,同样如所讨论的那样,也可替代地通过主处理器元件执行另一安全飞地之内的指令以导出对OTP例程存储在其中的安全飞地的测量来做到这一点。
在2140处,将该测量传送到预设服务器。在2150处,从预设服务器接收到OTP种子,并且将其存储在OTP例程所驻留的安全飞地中。
在2160处,获取基于对该安全飞地的较早进行的测量(即,在将OTP种子存储在该安全飞地中之前)的密封密钥。作为测量的衍伸,可由控制器之内的控制器处理器元件或由执行存储在另一安全飞地之内的指令的主处理器元件来创建该密封密钥。如所讨论的那样,在创建密封密钥时,可连同对OTP例程和种子存储在其中的安全飞地的新测量来使用计算设备的组件的ID码(例如,主处理器元件的ID码)。
在2170处,在对OTP种子加密时采用该密封密钥。在2180处,将OTP例程和经重新加密的OTP种子但不是密封密钥保持在计算设备的存储设备中,供稍后在生成OTP时使用。该密封密钥被丢弃。如所讨论的那样,由于预料到一旦预设完成,将对安全飞地去实例化,因此停止将OTP例程和OTP种子存储在该安全飞地中。
图6示出逻辑流2200的一个实施例。逻辑流程2200可代表由本文所述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流程2200可示出由处理器元件450在执行至少控制例程440时所执行的和/或由控制器400的其他组件执行的操作。
在2210处,计算设备的控制器处理器元件(例如,计算设备300的控制器400的处理器元件450)接收来自计算设备的主处理器元件(例如,处理器元件350)的对安全飞地的内容的测量的请求,由主处理器元件将该安全飞地实例化在计算设备的存储设备中以允许对存储在其中的指令的安全执行(例如,安全飞地367)。在2220处,控制器处理器元件提供对该安全飞地内容的测量,并将它提供给主处理器元件。
在2230处,控制器处理器元件从主处理器元件接收至少基于对安全飞地内容的较早进行的测量来提供密封密钥的请求。在2240处,控制器处理器元件从至少先前进行的测量中,可能也从与计算设备的组件或其他方面相关联的ID码中创建密封密钥。
图7示出逻辑流2300的一个实施例。逻辑流程2300可代表由本文所述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流程2300可示出由处理器元件350在执行至少控制例程340和/或370时所执行的和/或由计算设备300的其他组件执行的操作。
在2310处,计算设备的主处理器元件(例如,计算设备300的处理器元件350)执行OTP例程,并且该执行引起OTP例程(例如,控制例程370或至少其OTP组件375)中的调用对安全飞地的实例化的指令的执行。主处理器元件响应于那些指令创建安全飞地,OTP例程被存储在其中,并且对OTP例程的进一步执行发生在其中,在其中能够提供更大的安全性以免受可能驻留在计算设备中别处的软件的恶意片段。如所讨论的那样,可能计算设备的操作者操作该计算设备来访问该操作者在其上具有针对各种服务的提供的账户的账户服务器(例如,账户服务器600),并且正是对此类账户服务器的该访问触发了对OTP例程的该执行。同样如所讨论的那样,此类远程触发以执行OTP例程可以是OTP例程是被存储在计算设备中的web浏览器的“插件”或“扩展”并可由操作者操作以访问账户服务器的结果。
在2320处,重新创建基于对该安全飞地的内容(包括OTP例程,但还不包括OTP种子)的新测量的密封密钥。在这种情况下,实际上基于同样对安全飞地的内容重新进行的测量来重新创建密封密钥。这源自在预设时对OTP种子加密之后丢弃了用于该加密的密封密钥的事实。既然将使用OTP种子,则必须再次重新创建密封密钥。如所讨论的那样,可由计算设备之内的控制器的控制器处理器元件(例如,控制器400的处理器元件450)或由执行存储在另一飞地之内用于这样做的指令的主处理器元件来重新创建密封密钥。同样如所讨论的那样,在重新创建密封密钥时,可连同对OTP例程和种子存储在其中的安全飞地的新测量来使用计算设备的组件的ID码(例如,主处理器元件的ID码)。
在2330处,使用重新创建的密封密钥来对OTP种子解密以从中获取种子值。要做到这一点,在进行了新测量之后,将OTP种子存储在安全飞地之内以在由安全飞地提供的安全环境中启用其解密。对OTP种子的成功解密推定了刚获取的重新创建的密封密钥与在预设时所创建的原始密封密钥完全相同。
在2340处,从计数器元件中获取变量值。如所讨论的那样,可通过请求控制器之内的控制器处理器元件提供来自该控制器之内的基于硬件的计数器元件的变量值来做到这一点。然而,同样如所讨论的那样,可替代地通过主处理器元件执行另一安全飞地中的指令以导出产生变量值来做到这一点。
在2350处,执行OTP例程的主处理器元件使用种子值和变量值来生成OTP。在2360处,响应于对从账户服务器接收到的并且在计算设备的显示器上呈现的输入的质询提示,接收到来自计算设备的计算设备操作控制装置的操作者的输入。
在2370处,组合至少来自操作者的输入和所生成的OTP以形成登录框。如所讨论的那样,也可包括诸如与至少计算设备的组件相关联的ID码之类的其他信息片段。在2380处,将该登录框传送到账户服务器。
图8示出逻辑流2400的一个实施例。逻辑流程2400可代表由本文所述的一个或多个实施例执行的操作中的一些或全部。更具体地说,逻辑流程2400可示出由处理器元件450在执行至少控制例程440时执行的和/或由控制器400的其他组件执行的操作。
在2410处,计算设备的控制器处理器元件(例如,计算设备300的控制器400的处理器元件450)从计算设备的主处理器元件(例如,处理器元件350)接收至少基于对安全飞地的内容的新测量来提供密封密钥的请求。如所讨论的那样,作为计算设备的操作者寻求对账户服务器的访问的结果来请求此类新测量,使得必须生成OTP。
在2420处,控制器处理器导出对安全飞地的内容的新测量,由主处理器元件在计算设备的存储设备中实例化该安全飞地(例如,安全飞地367)以启用对存储于其中的指令的安全执行。在2430处,控制器处理器元件从至少新的测量中,可能也从与计算设备的组件或其他方面相关联的ID码中创建密封密钥。
图9示出适于实现如前所述的各实施例的示例性处理架构3000的实施例。更具体地说,可将处理架构3000(或其变型)实现为计算设备100、300和600中的一个或多个的部分。应当注意,给予处理架构300的多个组件参考标号,按这些参考标号的末两位数字对应于较早描绘以及描述为这些计算设备中的每一个的部分的组件的参考标号的末两位数字。在各实施例中,做到这一点以作为使可采用该示例性处理架构的这些计算设备中的无论什么设备中的此类组件相关联的辅助。
处理架构3000包括通常在数字处理中采用的各种元件,包括但不限于,一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本申请中所使用的那样,术语“系统”和“组件”旨在是指在其中实施数字处理的计算设备的实体,无论该实体是硬件、硬件和软件的组合、软件还是执行中的软件,由所描绘的该示例性处理架构来提供其示例。例如,组件可以是但不限于是在处理器元件上运行的进程、处理器元件自身、可采用光和/或磁存储介质的存储设备(例如,硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、可执行指令序列、执行线程、程序和/或整个计算设备(例如,整个计算机)。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且可将组件局部化在一个计算设备上和/或分布在两个或更多计算设备之间。此外,组件可通过各种类型的通信介质彼此通信地耦合以协调操作。该协调可以涉及单向或双向信息交换。例如,组件能以在通信介质上传递的信号的形式来传递信息。可将该信息实现为分配给一根或多根信号线的信号。每一个消息可以是串行地或基本上并行地传送的一个或多个信号。
如所描绘的那样,在实现处理架构3000时,计算设备包含至少处理器元件950、存储设备960、到其他设备的接口990和耦合装置(coupling)955。取决于实现处理架构3000的计算设备的各方面(包括其预期使用和/或使用条件),此类计算设备可进一步包含附加组件,诸如但不限于计数器元件915。
耦合装置955包括将至少处理器元件950通信地耦合至存储设备960的一个或多个总线、点对点互连、收发机、缓冲器、交叉点交换机和/或其他导体和/或逻辑。耦合装置955可进一步将处理器元件950耦合至接口990和显示接口985中的一个或多个(取决于这些中的哪个和/或其他组件也是存在的)。随着由耦合装置955这样来耦合处理器元件950,该处理器元件950能够执行上述针对实现处理架构3000的计算设备100、300和600中的无论哪些所详细描述的任务中的各种任务。可利用凭借其以光和/或电方式传递信号的各种技术中的任何技术或多种技术的组合来实现耦合装置955。此外,耦合装置955的至少多个部分可采用符合各种行业标准中的任何标准的时序和/或协议,各种行业标准包括但不限于,加速图形端口(AGP)、卡片式总线、扩展的工业标准架构(E-ISA)、微通道架构(MCA)、网络用户总线(NuBus)、外围组件互连(扩展式)(PCI-X)、PCI快速(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、超传输TM、快速路径等。
如先前所讨论的那样,处理器元件950(对应于处理器元件150、350、450和650中的一个或多个)可包括采用各种技术并且利用以多种方式中的任何方式物理地组合的一个或多个核而实现的各种商业上可获得的处理器中的任何处理器。
如先前所讨论的那样,存储设备960(对应于存储设备160、360、460和660中的一个或多个)可包括基于各种技术中的任何技术或多种技术的组合的一个或多个不同的存储设备。更具体而言,如所描绘的那样,存储设备960可包括易失性存储设备961(例如,基于一种或多种形式的RAM技术的固态存储设备)、非易失性存储设备962(例如,不需要恒定的电力供应来保持其内容的固态、铁磁或其他存储设备)和可移动介质存储设备963(例如,可利用其在多个计算设备之间传递信息的可移动盘或固态存储卡存储设备)中的一个或多个。将存储设备960描绘为可能包括多个不同类型的存储设备的这种描绘承认了在计算设备中对多于一种类型的存储设备的普遍使用,其中,一种类型提供允许由处理器元件950对数据的更迅速操控的相对迅速的读取和写入能力(但是可能使用持续地需要电力的“易失性”技术),而另一类型提供相对高密度的非易失性存储设备(但是可能提供相对慢的读取和写入能力)。
考虑到采用不同技术的不同的存储设备之间通常具有的不同特性,通过不同的存储控制器将此类不同的存储设备耦合至计算设备的其他多个部分也是常见的,这些不同的存储控制器通过不同接口被耦合到它们不同的存储设备。作为示例,在易失性存储设备961存在并且基于RAM技术的情况下,可通过提供到可能采用行和列寻址的易失性存储设备961的合适接口的存储控制器965a将易失性存储设备961通信地耦合至耦合装置955,并且其中存储控制器965a可执行行刷新和/或其他维护任务来辅助保持被存储在易失性存储设备961中的信息。作为另一示例,在非易失性存储设备962存在并且包括一个或多个铁磁和/或固态盘驱动器的情况下,可通过提供到可能采用对信息块和/或磁柱和扇区的寻址的非易失性存储设备962的合适接口的存储控制器965b将该非易失性存储设备962通信地耦合至耦合装置955。作为又一示例,在可移动介质存储设备963存在并且包括采用可移动机器可读存储介质969的一个或多个片段的一个或多个光盘和/或固态盘驱动器的情况下,可通过提供到可能采用信息块的寻址的可移动介质存储设备963的合适接口的存储控制器965c将可移动介质存储设备963通信地耦合至耦合装置955,并且其中,存储控制器965c能以专用于延长机器可读存储介质969的寿命的方式来协调读取、擦除和写入操作。
易失性存储设备961或非易失性存储设备962中的一个或另一个可包括机器可读存储介质形式的制品,取决于每一个所基于的技术,可在其上存储包括可由处理器元件950执行的指令序列的例程。作为示例,在非易失性存储设备962包括基于铁磁的盘驱动器(例如,所谓的“硬驱动器”)的情况下,每一个此类盘驱动器通常采用一个或多个旋转盘片,在这些盘片上,沉积磁响应粒子的涂层,并且按各种图案进行磁取向,以便按类似于诸如软盘之类的可移动存储介质之类的方式存储诸如指令序列之类的信息。作为另一示例,非易失性存储设备962可由固态存储设备的多个存储库(bank)组成,它们用于以类似于紧凑型闪存卡之类的方式来存储诸如指令序列之类的信息。同样,在不同时刻,在计算设备中采用不同类型的存储设备来存储可执行例程和/或数据是常见的。因此,最初可将包括将由处理器元件950执行的指令序列的例程存储在机器可读存储介质969中,随后可采用可移动介质存储设备963来将该例程存储到非易失性存储设备962中,以便不需要机器可读存储介质969的持续存在就可实现更长期的存储,和/或将该例程复制到易失性存储设备961,以便在执行该例程时,允许处理器元件950更迅速的访问。
如先前所讨论的那样,接口990(对应于接口190和690以及包含接口395a和395b的接口中的一个或多个)可采用对应于可用于将计算设备通信地耦合至一个或多个其他设备的各种通信技术中的任何技术的各种信令技术中的任何技术。同样,可采用各种形式的有线或无线信令中的一种或两种来使处理器元件950能够可能通过网络(例如,网络999)或经互连的网络集与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其他计算设备交互。认可通常必须由任何一个计算设备支持的多种类型的信令和/或协议的通常显著不同的特点,将接口990描绘为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可采用用于从诸如所描绘的键盘920之类的用户输入设备中接收串行传输的消息的各种类型的有线数字串行接口或射频无线接口中的任何接口。接口控制器995b可采用用于通过所描绘的网络999(可能是包括一条或多条链路的网络、较小的网络或可能是因特网)来访问其他计算设备的各种基于电缆布线的或无线信令、时序和/或协议中的任何一个。接口995c可采用允许串行或并行信号传输的使用以将数据传递到所描绘的打印机925的各种导电光缆布线中的任何一种。可通过接口990的一个或多个接口控制器而被通信地耦合的设备的其他示例包括但不限于,话筒、远程控制装置、指示笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操控杆、其他键盘、视网膜扫描仪、触屏的触摸输入组件、跟踪球、各种传感器、激光打印机、喷墨打印机、机械机器人、铣床(milling machine)等。
在将计算设备通信地耦合至(或者可能实际包括)显示器(例如,所描绘的示例显示器980)的情况下,实现处理架构3000的此类计算设备也可包括显示接口985。虽然可在通信地耦合至显示器时采用更通用类型的接口,但是当在显示器上可视化地显示各种形式的内容时经常需要的略微专业化的附加处理以及所使用的基于电缆布线的接口的略微专业化的性质通常使不同的显示接口的提供是令人满意的。可由显示接口985在显示器980的通信式耦合中采用的有线和/或无线信令技术可利用符合各种行业标准中的任何标准的信令和/或协议,各种行业标准包括但不限于,各种模拟视频接口、数字视频接口(DVI)、显示端口等中的任何一个。
更一般而言,计算设备100、300和600的各种元件可包括各种硬件元件、软件元件或这两者的组合。硬件元件的示例可包括器件、逻辑器件、组件、处理器、微处理器、电路、处理器元件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。然而,确定使用硬件元件和/或软件元件来实现实施例可能根据任意数量的因素而不同,这些因素诸如对于给定实现所期望的所需的计算速率、功率等级、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
可使用表述“一个实施例”和“实施例”及其派生词来描述一些实施例。这些术语意思是结合该实施例所描述的特定特征、结构或特性被包括在至少一个实施例中。在本说明书中的不同位置处出现短语“在一个实施例中”不一定全都指同一个实施例。此外,可以用表述“耦合的”和“连接的”及其派生词来描述一些实施例。这些术语不一定旨在作为彼此的同义词。例如,可使用术语“连接的”和/或“耦合的”来描述一些实施例以指示两个或更多元件彼此直接物理接触或电接触。然而,术语“耦合的”还可意味着两个或更多元件彼此不直接接触,但仍然彼此协作或相互作用。
需要强调,提供本公开的摘要以使读者快速地确定本技术公开的性质。提交该摘要,并且理解该摘要将不用于解释或限制权利要求的范围或含义。此外,在前述具体实施方式中可以看出,为了使本公开流畅,在单个实施例中,将各个特征成组到一起。这种公开方法不应被解释为反映要求保护的实施例需要比每一项权利要求中明确陈述的更多的特征的意图。相反,如所附权利要求所反映的那样,发明主题在于少于单个公开的实施例的所有特征。因此,所附权利要求在此被合并到具体实施方式中,其中每项权利要求作为单独的实施例而独立存在。在所附权利要求中,术语“包括”和“其中”分别被用作相应的术语“包括”和“其中”的简明英语对等词。此外,术语“第一”、“第二”、“第三”等仅用作标记,并不旨在对它们的对象施加数值要求。
上文已描述的包括所公开架构的多个示例。当然,描述组件和/或方法的每一个可想到的组合是不太可能的,但本领域普通技术人员会理解,许多进一步的组合和排列都是可能的。因此,该新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的所有此类更改、修改和变型。详细公开现在转到提供涉及进一步实施例的示例。以下提供的示例不旨在是限制性的。
用于提供安全访问的设备的示例包括:计算机可读存储设备;第一处理器元件,耦合至计算机可读存储设备;以及第一逻辑,其用于:接收一次性口令(OTP)例程;将该OTP例程存储在存储设备之内的由第一处理器元件定义的第一安全飞地中;利用存储在第一安全飞地中的OTP例程来获取对该第一安全飞地的内容的测量;将测量传送到计算设备;以及接收OTP种子。
设备的上述示例,其中,第一逻辑用于执行OTP例程的指令,这些指令用于使第一处理器元件定义第一安全飞地。
设备的上述示例中的任何一个,其中,第一逻辑用于执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的指令,这些指令用于使第一处理器元件导出测量。
设备的上述示例中的任意一个,其中,该设备包括控制器,并且第一逻辑用于用信号通知该控制器提供测量。
设备的上述示例中的任意一个,其中,第一逻辑用于将OTP种子存储在第一安全飞地中。
设备的上述示例中的任意一个,其中,第一逻辑用于:在将OTP种子存储在安全飞地中之后,使用从至少测量中创建的密封密钥来对该OTP种子加密。
设备的上述示例中的任意一个,其中,从至少测量和第一处理器元件的标识码中创建密封密钥。
设备的上述示例中的任意一个,其中,第一逻辑用于:执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的第一指令,该第一指令用于使第一处理器元件在OTP种子被存储在第一安全飞地中之前导出测量;以及执行存储在第二安全飞地中的密钥生成器的第二指令,该第二指令用于使第一处理器元件创建密封密钥。
设备的上述示例中的任意一个,其中,该设备包括控制器,并且第一逻辑用于,用信号通知该控制器提供密封密钥。
设备的上述示例中的任意一个,其中,控制器包括用于生成密封密钥的第二处理器元件和第二逻辑。
设备的上述示例中的任意一个,其中,该设备包括显示器和手工能操作的控制装置;并且第一逻辑用于:可视化地呈现提供通行码的提示;接收指示用于提供通行码的手工能操作的控制装置的操作的信号;以及将该通行码传送到计算设备。
用于提供安全访问的另一设备的示例,其包括:计算机可读存储设备;第一处理器元件,耦合至该计算机可读存储设备;以及第一逻辑,其用于:将OTP种子和OTP例程存储在存储设备之内的、由第一处理器元件定义的第一安全飞地中;利用存储在第一安全飞地中的OTP种子和OTP例程,从至少对第一安全飞地的内容的测量中获取密封密钥;使用该密封密钥来对OTP种子解密以获取种子值;从计数器元件中获取变量值;生成OTP;以及将该OTP传送到计算设备。
另一设备的上述示例,其中,第一逻辑用于执行OTP例程的指令,这些指令用于使第一处理器元件定义第一安全飞地。
另一设备的上述示例,其中,该设备包括手工能操作的控制装置,并且第一逻辑用于:接收信号,该信号指示用于提供输入的该手工能操作的控制装置的操作;并且将该输入传送到计算设备。
另一设备的上述示例中的任意一个,其中,手工能操作的控制装置包括键盘和指纹读取器中的一个,并且输入包括口令和指纹中的一个。
另一设备的上述示例中的任意一个,其中,逻辑用于:执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的第一指令,其中,该第一指令用于使第一处理器元件导出测量;以及执行存储在第二安全飞地中的密钥生成器的第二指令,其中,该第二指令用于使第一处理器元件从至少测量中创建密封密钥。
另一设备的上述示例中的任意一个,其中,该设备包括控制器,并且第一逻辑用于:用信号通知该控制器提供密封密钥。
另一设备的上述示例中的任意一个,其中,控制器包括用于生成密封密钥的第二处理器元件和第二逻辑。
另一设备的上述示例中的任意一个,其中,从至少测量和第一处理器元件的标识码中创建密封密钥。
提供安全访问的计算机实现的方法的示例,包括:接收一次性口令(OTP)例程;将该OTP例程存储在存储设备之内的、由第一处理器元件定义的第一安全飞地中;利用存储在第一安全飞地中的OTP例程来获取对第一安全飞地的内容的第一测量;将该第一测量传送到计算设备;以及接收OTP种子。
计算机实现的方法的上述示例,其中,该方法包括:执行OTP例程中的指令以使第一处理器元件定义第一安全飞地。
计算机实现的方法的上述示例中的任意一个,其中,该方法包括:执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件中的指令以使第一处理器元件导出第一测量。
计算机实现的方法的上述示例中的任意一个,其中,该方法包括用信号通知第二处理器元件提供第一测量。
计算机实现的方法的上述示例中的任意一个,其中,该方法包括:利用存储在第一安全飞地中的OTP例程,并且在将OTP种子存储在第一安全飞地中之前,从至少对第一安全飞地的内容的第一测量中获取第一密封密钥;将OTP种子存储在第一安全飞地中;在将OTP种子存储在第一安全飞地中之前,使用第一密封密钥对该OTP种子加密;丢弃第一密封密钥;以及对第一安全飞地去实例化。
计算机实现的方法的上述示例中的任意一个,其中,该方法包括:执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的第一指令,其中,该第一指令用于使第一处理器元件在OTP种子被存储在第一安全飞地中之前导出第一测量;以及执行存储在第二安全飞地中的密钥生成器的第二指令,其中,该第二指令用于使第一处理器元件从至少第一测量中创建第一密封密钥。
计算机实现的方法的上述示例中的任意一个,其中,该方法包括用信号通知第二处理器元件提供第一密封密钥。
计算机实现的方法的上述示例中的任意一个,其中,该方法包括:将OTP例程存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中;利用存储在第二安全飞地中的OTP例程以及不存储在第二安全飞地中的OTP种子,从第二安全飞地的内容的至少所获取的第二测量中获取第二密封密钥;将OTP种子存储在第二安全飞地中;在将OTP种子存储在第二安全飞地中之后,使用第二密封密钥对OTP种子解密以获取种子值;从计数器元件获取变量值;生成OTP;以及传送该OTP。
计算机实现的方法的上述示例中的任意一个,其中,该方法包括:从至少第二测量和第一处理器元件的标识码中创建第二密封密钥。
用于提供安全访问的设备的示例,其包括用于执行计算机实现的方法的上述示例中的任意一个的装置。
至少一种机器可读存储介质的示例,其包括指令,当由计算设备执行这些指令时,这些指令使该计算设备用于:接收一次性口令(OTP)例程;将该OTP例程存储在计算设备的存储设备之内的、由该计算设备的第一处理器元件定义的第一安全飞地中;利用存储在第一安全飞地中的OTP例程来获取对第一安全飞地的内容的第一测量;将该第一测量传送到预设服务器;以及接收OTP种子。
至少一种机器可读存储介质的上述示例,其中,使计算设备执行OTP例程的指令以使第一处理器元件定义第一安全飞地。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的指令以使第一处理器元件导出第一测量。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备用信号通知计算设备的第二处理器元件提供第一测量。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备:利用存储在第一安全飞地中的OTP例程,并且在将OTP种子存储在第一安全飞地中之前,从至少对第一安全飞地的内容的第一测量中获取第一密封密钥;将OTP种子存储在第一安全飞地中;在将OTP种子存储在第一安全飞地中之前,使用第一密封密钥对该OTP种子加密;丢弃第一密封密钥;以及对第一安全飞地去实例化。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备:执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的第一指令,其中,该第一指令用于使第一处理器元件在OTP种子被存储在第一安全飞地中之前导出第一测量;以及执行存储在第二安全飞地中的密钥生成器的第二指令,其中,该第二指令用于使第一处理器元件从至少第一测量中创建第一密封密钥。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备用信号通知第二处理器元件提供第一密封密钥。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备:将OTP例程存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中;利用存储在第二安全飞地中的OTP例程以及不存储在第二安全飞地中的OTP种子,从至少对第二安全飞地的内容的所获取的第二测量中获取第二密封密钥;将OTP种子存储在第二安全飞地中;在将OTP种子存储在第二安全飞地中之后,使用第二密封密钥对OTP种子解密以获取种子值;从计数器元件中获取变量值;生成OTP;以及传送该OTP。
至少一种机器可读存储介质的上述示例中的任何一个,其中,使计算设备从至少第二测量和第一处理器元件的标识码中创建第二密封密钥。
用于提供安全访问的又一设备的示例,包括多个装置,这些装置用于:接收一次性口令(OTP)例程;将该OTP例程存储在计算设备的存储设备之内的、由计算设备的第一处理器元件定义的第一安全飞地中;利用存储在第一安全飞地中的OTP例程来获取对第一安全飞地的内容的第一测量;将该第一测量传送到预设服务器;以及接收OTP种子。
又一设备的上述示例,其中,该设备包括用于执行OTP例程的指令以使第一处理器元件定义第一安全飞地的装置。
又一设备的上述示例中的任意一个,其中,该设备包括用于执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的指令以使第一处理器元件导出第一测量的装置。
又一设备的上述示例中的任意一个,其中,该设备包括用于用信号通知计算设备的第二处理器元件提供第一测量的装置。
又一设备的上述示例中的任意一个,其中,该设备包括多个装置,这些装置用于:利用存储在第一安全飞地中的OTP例程,并且在将OTP种子存储在第一安全飞地中之前,从至少对第一安全飞地的内容的第一测量中获取第一密封密钥;将OTP种子存储在第一安全飞地中;在将OTP种子存储在第一安全飞地中之后,使用第一密封密钥对该OTP种子加密;丢弃第一密封密钥;以及对第一安全飞地去实例化。
又一设备的上述示例中的任意一个,其中,该设备包括多个装置,这些装置用于:执行存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中的测量组件的第一指令,该第一指令用于使第一处理器元件在OTP种子被存储在第一安全飞地中之前导出第一测量;以及执行存储在第二安全飞地中的密钥生成器的第二指令,该第二指令用于使第一处理器元件从至少第一测量中创建第一密封密钥。
又一设备的上述示例中的任意一个,其中,该设备包括用于用信号通知第二处理器元件提供第一密封密钥的装置。
又一设备的上述示例中的任意一个,其中,该设备包括多个装置,这些装置用于:将OTP例程存储在存储设备之内的、由第一处理器元件定义的第二安全飞地中;利用存储在第二安全飞地中的OTP例程以及不存储在第二安全飞地中的OTP种子,从第二安全飞地的内容的至少所获取的第二测量中获取第二密封密钥;将OTP种子存储在第二安全飞地中;在将OTP种子存储在第二安全飞地中之后,使用第二密封密钥对OTP种子解密以获取种子值;从计数器元件获取变量值;生成OTP;以及传送该OTP。
又一设备的上述示例中的任意一个,其中,该设备包括用于从至少第二测量和第一处理器元件的标识码中创建第二密封密钥的装置。
Claims (20)
1.一种用于提供安全访问的设备,包括:
计算机可读存储设备;
第一处理器元件,耦合至所述计算机可读存储设备;以及
第一逻辑,用于:
接收一次性口令OTP例程;
将所述OTP例程存储在所述存储设备之内的、由所述第一处理器元件定义的第一安全飞地中;
利用存储在所述第一安全飞地中的所述OTP例程来获取对所述第一安全飞地的内容的第一测量;
将所述测量传送到计算设备;
接收OTP种子;
从至少所述第一测量导出密封密钥;
将所述OTP种子存储在所述第一安全飞地中;
在将所述OTP种子存储在所述第一安全飞地中之后用所述密封密钥来加密所述OTP种子;
丢弃所述密封密钥;
将所述第一安全飞地去实例化;
在丢弃所述密封密钥和将所述第一安全飞地去实例化之后的时间在所述存储设备内实例化由所述第一处理器元件定义的第二安全飞地;
将所述OTP例程存储在所述第二安全飞地内;
利用存储在所述第二安全飞地中的所述OTP例程和没有存储在所述第二安全飞地中的所述OTP种子来获取对所述第二安全飞地的内容的第二测量;
从至少所述第二测量重新创建所述密封密钥;
将所述OTP种子存储在所述第二安全飞地内;
用所述密封密钥解密所述OTP种子以获得种子值;以及
从所述种子值用所述OTP例程来生成OTP。
2.如权利要求1所述的设备,其特征在于,从至少所述第一测量和所述第一处理器元件的标识码中创建所述密封密钥。
3.如权利要求1所述的设备,其特征在于,所述第一逻辑用于:
执行存储在所述存储设备之内的、由所述第一处理器元件定义的第三安全飞地中的测量组件的第一指令,所述第一指令用于使所述第一处理器元件在所述OTP种子被存储在所述第一安全飞地中之前导出所述第一测量;以及
执行存储在所述第二安全飞地中的密钥生成器的第二指令,所述第二指令用于使所述第一处理器元件创建所述密封密钥。
4.如权利要求1所述的设备,其特征在于,包括控制器,所述第一逻辑用于用信号通知所述控制器提供所述密封密钥。
5.如权利要求4所述的设备,其特征在于,所述控制器包括用于生成所述密封密钥的第二处理器元件和第二逻辑。
6.一种用于提供安全访问的设备,包括:
计算机可读存储设备;
第一处理器元件,耦合至所述计算机可读存储设备;以及
第一逻辑,用于:
将OTP种子和OTP例程存储在所述存储设备之内的、由所述第一处理器元件定义的第一安全飞地中;
利用存储在所述第一安全飞地中的所述OTP种子和OTP例程,从对至少所述第一安全飞地的内容的测量中获取密封密钥;
在将所述OTP种子存储在所述第一安全飞地中之后用所述密封密钥来加密所述OTP种子;
丢弃所述密封密钥;
将所述第一安全飞地去实例化;
在丢弃所述密封密钥和将所述第一安全飞地去实例化之后的时间在所述存储设备内实例化由所述第一处理器元件定义的第二安全飞地;
将所述OTP例程存储在所述第二安全飞地内;
利用存储在所述第二安全飞地中的所述OTP例程和没有存储在所述第二安全飞地中的所述OTP种子来获取对所述第二安全飞地的内容的第二测量;
从至少所述第二测量重新创建所述密封密钥;
将所述OTP种子存储在所述第二安全飞地内;
使用所述密封密钥对所述OTP种子解密以获取种子值;
从计数器元件获取变量值;
生成OTP;以及
将所述OTP传送到计算设备。
7.如权利要求6所述的设备,其特征在于,包括手工能操作的控制装置,所述第一逻辑用于:
接收信号,所述信号指示用于提供输入的所述手工能操作的控制装置的操作;以及
将所述输入传送到所述计算设备。
8.如权利要求7所述的设备,其特征在于,所述手工能操作的控制装置包括键盘和指纹读取器中的一个,并且所述输入包括口令和指纹中的一个。
9.如权利要求6所述的设备,其特征在于,包括控制器,所述第一逻辑用于用信号通知所述控制器提供所述密封密钥。
10.如权利要求9所述的设备,其特征在于,所述控制器包括用于生成所述密封密钥的第二处理器元件和第二逻辑。
11.如权利要求6所述的设备,其特征在于,从至少所述测量和所述第一处理器元件的标识码中创建所述密封密钥。
12.一种提供安全访问的计算机实现的方法,包括:
接收一次性口令OTP例程;
将所述OTP例程存储在存储设备之内的、由第一处理器元件定义的第一安全飞地中;
利用存储在所述第一安全飞地中的所述OTP例程来获取对所述第一安全飞地的内容的第一测量;
将所述第一测量传送到计算设备;
接收OTP种子;
从至少所述第一测量导出密封密钥;
将所述OTP种子存储在所述第一安全飞地中;
在将所述OTP种子存储在所述第一安全飞地中之后用所述密封密钥来加密所述OTP种子;
丢弃所述密封密钥;
将所述第一安全飞地去实例化;
在丢弃所述密封密钥和将所述第一安全飞地去实例化之后的时间在所述存储设备内实例化由所述第一处理器元件定义的第二安全飞地;
将所述OTP例程存储在所述第二安全飞地内;
利用存储在所述第二安全飞地中的所述OTP例程和没有存储在所述第二安全飞地中的所述OTP种子来获取对所述第二安全飞地的内容的第二测量;
从至少所述第二测量重新创建所述密封密钥;
将所述OTP种子存储在所述第二安全飞地内;
用所述密封密钥解密所述OTP种子以获得种子值;以及
从所述种子值用所述OTP例程来生成OTP。
13.如权利要求12所述的计算机实现的方法,其特征在于,包括:执行存储在所述存储设备之内的、由所述第一处理器元件定义的第三安全飞地中的测量组件中的指令以使所述第一处理器元件导出所述第一测量。
14.如权利要求12所述的计算机实现的方法,其特征在于,用信号通知第二处理器元件提供所述第一测量。
15.如权利要求13所述的计算机实现的方法,其特征在于,包括:
执行存储在所述存储设备之内的、由所述第一处理器元件定义的第三安全飞地中的测量组件的第一指令,所述第一指令用于使所述第一处理器元件在所述OTP种子被存储在所述第一安全飞地中之前导出所述第一测量;以及
执行存储在所述第三安全飞地中的密钥生成器的第二指令,所述第二指令用于使所述第一处理器元件从至少所述第一测量中创建第一密封密钥。
16.如权利要求13所述的计算机实现的方法,其特征在于,用信号通知第二处理器元件提供第一密封密钥。
17.如权利要求13所述的计算机实现的方法,其特征在于,包括:
从计数器元件获取变量值;
从所述种子值和所述变量值生成OTP;以及
传送所述OTP。
18.如权利要求17所述的计算机实现的方法,其特征在于,包括:从至少所述第二测量和所述第一处理器元件的标识码中重新创建所述密封密钥。
19.一种用于提供安全访问的设备,包括用于执行如权利要求12-18中任意一项所述的方法的装置。
20.至少一种机器可读介质,包括指令,当由计算设备执行所述指令时,所述指令使所述计算设备执行如权利要求12-18中任意一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/797,915 | 2013-03-12 | ||
US13/797,915 US9208354B2 (en) | 2013-03-12 | 2013-03-12 | Techniques for securing use of one-time passwords |
PCT/US2014/018842 WO2014163912A1 (en) | 2013-03-12 | 2014-02-27 | Techniques for securing use of one-time passwords |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105074716A CN105074716A (zh) | 2015-11-18 |
CN105074716B true CN105074716B (zh) | 2018-02-02 |
Family
ID=51535023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480008538.5A Active CN105074716B (zh) | 2013-03-12 | 2014-02-27 | 用于使一次性口令的使用安全的技术 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9208354B2 (zh) |
EP (1) | EP2973167B1 (zh) |
KR (1) | KR101698776B1 (zh) |
CN (1) | CN105074716B (zh) |
WO (1) | WO2014163912A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218473B2 (en) * | 2013-07-18 | 2015-12-22 | Suprema Inc. | Creation and authentication of biometric information |
US9509502B2 (en) | 2014-03-13 | 2016-11-29 | Intel Corporation | Symmetric keying and chain of trust |
US9521125B2 (en) | 2014-03-13 | 2016-12-13 | Intel Corporation | Pseudonymous remote attestation utilizing a chain-of-trust |
US9348997B2 (en) | 2014-03-13 | 2016-05-24 | Intel Corporation | Symmetric keying and chain of trust |
US10044695B1 (en) | 2014-09-02 | 2018-08-07 | Amazon Technologies, Inc. | Application instances authenticated by secure measurements |
US9754116B1 (en) | 2014-09-03 | 2017-09-05 | Amazon Technologies, Inc. | Web services in secure execution environments |
US10061915B1 (en) | 2014-09-03 | 2018-08-28 | Amazon Technologies, Inc. | Posture assessment in a secure execution environment |
US9584517B1 (en) * | 2014-09-03 | 2017-02-28 | Amazon Technologies, Inc. | Transforms within secure execution environments |
US10079681B1 (en) | 2014-09-03 | 2018-09-18 | Amazon Technologies, Inc. | Securing service layer on third party hardware |
US9246690B1 (en) | 2014-09-03 | 2016-01-26 | Amazon Technologies, Inc. | Secure execution environment services |
US9491111B1 (en) * | 2014-09-03 | 2016-11-08 | Amazon Technologies, Inc. | Securing service control on third party hardware |
US9577829B1 (en) | 2014-09-03 | 2017-02-21 | Amazon Technologies, Inc. | Multi-party computation services |
US9660983B2 (en) * | 2014-10-24 | 2017-05-23 | Ca, Inc. | Counter sets for copies of one time password tokens |
CN107077568B (zh) * | 2014-11-17 | 2020-08-25 | 英特尔公司 | 对称密钥和信任链 |
KR102485830B1 (ko) * | 2015-02-13 | 2023-01-09 | 삼성전자주식회사 | 보안 정보의 처리 |
US9870467B2 (en) * | 2015-03-27 | 2018-01-16 | Intel Corporation | Apparatus and method for implementing a forked system call in a system with a protected region |
US10642972B2 (en) * | 2016-10-20 | 2020-05-05 | Intel Corporation | Extending packet processing to trusted programmable and fixed-function accelerators |
KR102645817B1 (ko) * | 2016-12-06 | 2024-03-08 | 한화로보틱스 주식회사 | 로봇의 비헤이비어 관리 방법 및 장치 |
US10382413B1 (en) * | 2016-12-23 | 2019-08-13 | Cisco Technology, Inc. | Secure bootstrapping of client device with trusted server provided by untrusted cloud service |
US11036875B2 (en) * | 2017-01-24 | 2021-06-15 | Microsoft Technology Licensing, Llc | Dependent enclave binaries |
US11443033B2 (en) * | 2017-01-24 | 2022-09-13 | Microsoft Technology Licensing, Llc | Abstract enclave identity |
US10691837B1 (en) | 2017-06-02 | 2020-06-23 | Apple Inc. | Multi-user storage volume encryption via secure enclave |
TWI635413B (zh) * | 2017-07-18 | 2018-09-11 | 義隆電子股份有限公司 | 指紋感測積體電路 |
CN109945911A (zh) * | 2017-12-15 | 2019-06-28 | 富泰华工业(深圳)有限公司 | 电子装置、拆机监测装置及方法 |
EP3762846B1 (en) * | 2018-04-11 | 2023-06-07 | Google LLC | Mutually distrusting enclaves |
US11088838B2 (en) * | 2018-05-11 | 2021-08-10 | Palo Alto Networks, Inc. | Automated authentication of a new network element |
US10846432B2 (en) | 2018-09-11 | 2020-11-24 | OneLogin, Inc. | Secure data leak detection |
CN114126969B (zh) * | 2019-07-08 | 2023-11-28 | 赛峰电子与防务公司 | 用于更新包括在飞行器中的计算装置的数据的系统和方法 |
US11706211B2 (en) | 2021-09-28 | 2023-07-18 | Capital One Services, Llc | Computer-based systems configured for one-time passcode (OTP) protection and methods of use thereof |
WO2023121671A1 (en) * | 2021-12-23 | 2023-06-29 | Eque Corporation | Systems configured for validation with a dynamic cryptographic code and methods thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101517562A (zh) * | 2006-09-15 | 2009-08-26 | 因尼科技株式会社 | 通过多个模式对一次性密码的用户进行注册和验证的方法以及记录有执行该方法的程序的计算机可读记录介质 |
CN102647415A (zh) * | 2012-03-30 | 2012-08-22 | 时代亿宝(北京)科技有限公司 | 基于音频接口提供身份认证的方法及系统 |
CN103026686A (zh) * | 2010-08-03 | 2013-04-03 | 西门子公司 | 用于提供一次性口令的方法和装置 |
CN104135369A (zh) * | 2006-04-21 | 2014-11-05 | 弗里塞恩公司 | 基于时间和事件的一次性密码 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050177749A1 (en) * | 2004-02-09 | 2005-08-11 | Shlomo Ovadia | Method and architecture for security key generation and distribution within optical switched networks |
KR20060094453A (ko) * | 2005-02-24 | 2006-08-29 | 삼성전자주식회사 | Eap 를 이용한 시간제 서비스에 대한 인증 방법 및 그시스템 |
US8468361B2 (en) * | 2005-09-21 | 2013-06-18 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US8438618B2 (en) | 2007-12-21 | 2013-05-07 | Intel Corporation | Provisioning active management technology (AMT) in computer systems |
US8898749B2 (en) | 2009-04-09 | 2014-11-25 | Intel Corporation | Method and system for generating one-time passwords |
US8296841B2 (en) | 2009-10-27 | 2012-10-23 | Microsoft Corporation | Trusted platform module supported one time passwords |
US8972746B2 (en) * | 2010-12-17 | 2015-03-03 | Intel Corporation | Technique for supporting multiple secure enclaves |
EP2482220A1 (en) * | 2011-01-27 | 2012-08-01 | SafeNet, Inc. | Multi-enclave token |
-
2013
- 2013-03-12 US US13/797,915 patent/US9208354B2/en not_active Expired - Fee Related
-
2014
- 2014-02-27 WO PCT/US2014/018842 patent/WO2014163912A1/en active Application Filing
- 2014-02-27 KR KR1020157021879A patent/KR101698776B1/ko active IP Right Grant
- 2014-02-27 EP EP14779610.6A patent/EP2973167B1/en active Active
- 2014-02-27 CN CN201480008538.5A patent/CN105074716B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135369A (zh) * | 2006-04-21 | 2014-11-05 | 弗里塞恩公司 | 基于时间和事件的一次性密码 |
CN101517562A (zh) * | 2006-09-15 | 2009-08-26 | 因尼科技株式会社 | 通过多个模式对一次性密码的用户进行注册和验证的方法以及记录有执行该方法的程序的计算机可读记录介质 |
CN103026686A (zh) * | 2010-08-03 | 2013-04-03 | 西门子公司 | 用于提供一次性口令的方法和装置 |
CN102647415A (zh) * | 2012-03-30 | 2012-08-22 | 时代亿宝(北京)科技有限公司 | 基于音频接口提供身份认证的方法及系统 |
Non-Patent Citations (2)
Title |
---|
《一种改进的一次性口令认证方案》;王鹏 等;《信息安全与通信保密》;20101110;第66-67、70页 * |
《基于事件的一次性口令双向认证的实现》;王冠 等;《信息安全与通信保密》;20100210;第79-81页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014163912A1 (en) | 2014-10-09 |
KR101698776B1 (ko) | 2017-01-23 |
KR20150108865A (ko) | 2015-09-30 |
EP2973167A4 (en) | 2016-11-09 |
CN105074716A (zh) | 2015-11-18 |
US9208354B2 (en) | 2015-12-08 |
EP2973167B1 (en) | 2019-05-01 |
EP2973167A1 (en) | 2016-01-20 |
US20140282935A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105074716B (zh) | 用于使一次性口令的使用安全的技术 | |
CN107278313B (zh) | 支付手段操作支持方法和用于支持该方法的电子设备 | |
US10009173B2 (en) | System, device, and method of secure entry and handling of passwords | |
CN104915601B (zh) | 对装置中的文件夹进行加密的系统和方法 | |
CN102567662B (zh) | 用于处理数据的装置和方法 | |
US9947012B2 (en) | Secure transactions using a personal device | |
CN104982005B (zh) | 实施虚拟化环境中的特权加密服务的计算装置及方法 | |
US8176324B1 (en) | Method and system for a secure virtual keyboard | |
CN105894268A (zh) | 支付处理方法及支付其的电子设备 | |
CN103390124B (zh) | 安全输入和处理口令的设备、系统和方法 | |
CN106127076B (zh) | 一种相册照片的查看方法及移动终端 | |
US10325101B2 (en) | Touchscreen image mapping for augmented reality devices | |
CN107408251A (zh) | 提供电子支付功能的电子设备及其操作方法 | |
CN109076072A (zh) | Web服务图片密码 | |
CN101529366A (zh) | 可信用户界面对象的标识和可视化 | |
CN112912880A (zh) | 用于个性化的网络服务的容器构建器 | |
CN107924445A (zh) | 保留隐私的计算的相互认可 | |
CN106663018A (zh) | 在容器化工作空间环境中修改android应用生命周期以控制其执行的方法 | |
CN108475376A (zh) | 在设备上认证用户的系统和方法 | |
CN106462678A (zh) | 使用可控输入/输出端口提供认证的系统和方法 | |
CN104067285A (zh) | 安全数据容器和数据访问控制 | |
WO2020199028A1 (zh) | 一种安全芯片、安全处理方法及相关设备 | |
CN107395589A (zh) | 指纹信息获取方法及终端 | |
CN109154903A (zh) | 用于虚拟机的恢复环境 | |
KR20190012093A (ko) | 데이터 보호 기능을 갖는 ssd 기반의 저장미디어 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |