用于使一次性口令的使用安全的技术的制作方法

文档序号:9355210阅读:221来源:国知局
用于使一次性口令的使用安全的技术的制作方法
【技术领域】
[0001] 本文所述的多个实施例一般涉及在计算设备的存储设备中所定义的用于安全地 解密并使用一次性口令的安全飞地的使用。
【背景技术】
[0002] 虽然长时间以来口令被用作用于在控制对计算设备和由位于远程的计算设备所 提供的数据/功能的访问时提供安全的工具,但是,长久以来也存在着对保持不变并在长 期时期期间被反复使用的"静态"口令的使用的担忧。长时间以来已认可一次性口令(OTP) 因其一次使用的性质是更安全的。然而,长时间以来存在着关于如何生成并提供它们的挑 战。
[0003] 长期存在的解决方案已用于提供微型OTP生成器设备,其授权用户可携带着它 们。此类设备经常以信用卡或钥匙坠的形状和尺寸出现,并且以示出频繁变化的OTP的小 型字母数字显示器为特征。由此类设备使用各种算法中的任何算法来生成这些0TP,各种算 法通常需要初始的"种子"值和诸如一天中的时刻或单调计数器的当前输出之类的持续变 化的"变量"值。所生成的OTP旨在允许对其访问的计算设备也执行具有相同种子和变量 值的相同算法。结果,微型OTP生成器设备和寻求访问其的计算设备应当随时间生成完全 相同的0TP,尽管历经从数月到数年的时期在它们的相对时序上可能有轻微的漂移。
[0004] 尽管此类微型OTP生成器设备的预设是有效的,并且在伴随着敏感信息工作的人 员之间广泛地使用,但是需要持有物理设备以便在需要时具有OTP的事实是不方便的。此 外,此类设备的用户发现,如果微型OTP生成器设备被损坏、丢失或仅仅是需要时他们没有 持有,则他们就不能够使用计算设备的服务。对此的一个提出的解决方案是将OTP生成功 能合并进个人所拥有的个人的计算设备中,包括个人最有可能频繁地着用于多种使用的手 持式便携设备。遗憾的是,对于那些个人拥有的计算设备的频繁具有的弱安全等级而导致 种子和/或变量值可能被破解存在着担忧。正是针对这些和其他考虑才需要本文所述的多 个实施例。
【附图说明】
[0005] 图1示出多个计算设备之间的交互的第一实施例。
[0006] 图2和图3各自示出图1的实施例的部分。
[0007] 图4示出图2和图3的部分的变型。
[0008] 图5示出第一逻辑流程的实施例。
[0009] 图6示出第二逻辑流程的实施例。
[0010] 图7示出第三逻辑流程的实施例。
[0011] 图8示出第四逻辑流程的实施例。
[0012] 图9示出处理架构的实施例。
【具体实施方式】
[0013] 各实施例一般涉及安全飞地(enclave)的预设和使用,该安全飞地在计算设备的 存储设备内由该计算设备的处理器元件定义,并且用于存储OTP组件实现逻辑的可执行指 令,该OTP组件实现逻辑用于生成并使用用于允许对由另一计算设备提供的服务的访问的 一次性口令(OTP)。该安全飞地占据由处理器元件通过使用其指令集中的特定指令而创建 的存储设备中的可寻址位置中的至少一个区间(range)。在各种实现中,由不是存储在该安 全飞地内的软件进行的访问可能是不允许的,本质上是高度受限的和/或需要解密。
[0014] 最初向计算设备提供OTP组件以通过与预设服务器之间的通信来生成并使用 0TP,其中,测试计算设备的完整性和/或安全特征的多个方面以确保可信度。此外,在对预 设服务器的最初访问中使用通过完全不同的机制(例如,通过经由邮政服务的信、通过电 话呼叫、通过当面的方式等)提供给计算设备的操作者的初始通行码。假定测试成功完成, 则由预设服务器将种子值提供给计算设备。然后,使计算设备执行附加步骤,在这些附加步 骤中,利用在该计算设备中生成的密封密钥对该种子值重新加密,以供稍后由OTP组件使 用。
[0015] 在此类预设之后,每当需要OTP来访问提供计算设备的操作者力图访问的各种服 务中的任何服务的账户服务器时,都使计算设备重新实例化安全飞地。在对安全飞地的重 新实例化之后,将OTP组件和经重新加密的种子值存储在其中,并且由计算设备的处理器 元件在其中执行该OTP组件。同样,以需要密钥的生成以对经重新加密的种子值解密的的 方式,对存储在安全飞地中的内容进行完整性进行校验。如果至少OTP组件的完整性没有 丢失,则所生成的密钥应当用于对种子值解密。
[0016] 为了支持这些各种各样的测试并且在保持计算设备以及预设服务器和账户服务 器中的每一个之间的通信的完整性时提供支持,该计算设备可合并各种附加特征来防止捕 捉操作者的登录相关的输入和/或呈现给该操作者的登录相关的视觉信息的屏幕捕捉。更 具体地说,可利用硬件和/或软件组件来定义用于登录相关的信息的安全路径以防止破 解。
[0017] 根据对本文中使用的标记法和命名法的一般引用,可以在计算机或计算机网络上 执行的程序过程方面来呈现以下详细描述的多个部分。这些程序性描述和表示是由本领域 技术人员使用以便最有效地将他们工作的实质传递给本领域其他技术人员。过程在此一般 被理解为导致所期望结果的自洽的操作序列。这些操作是需要对物理量进行物理操控的那 些操作。通常但非必然地,这些量采取能被存储、传输、组合、比较并以其他方式操控的电、 磁或光信号的形式。主要出于惯用法的原因,时不时地将这些信号称为位、值、元素、符号、 字符、项、数字等被证明是方便的。然而,应当注意,所有这些和类似项旨在与适当的物理量 相关联,并且仅仅是应用于那些量的方便的标记。
[0018] 此外,通常按术语将这些操控称为常与由人类操作者执行的脑力操作相关联的相 加或比较。然而,在形成一个或多个实施例的部分的本文所述的操作中的任何操作中,在多 数情况下,没有人类操作者的此类能力是必需的或需要的。相反,这些操作是机器操作。用 于执行各实施例的多个操作的有用的机器包括通用数字计算机,其由存储于其中的、根据 本文的教导而被写入的计算机程序选择性地激活或配置;和/或包括专门为所需目的而构 造的设备。各实施例也涉及用于执行这些操作的设备或系统。可为所需目的专门构造这些 设备,或者这些装置可包括通用计算机。各种这样的机器的所需结构将从给定的描述中出 现。
[0019] 现在将参考附图,自始至终相同的参考编号用于指相同的元件。在以下描述中,为 了进行解释,阐述了众多具体细节以便提供对该描述的全面理解。然而,显而易见的是,可 以不利用这些具体细节而实施多个新颖的实施例。在其他实例中,以框图形式示出了多个 公知的结构和设备以便于对这些结构和设备的描述。本发明旨在涵盖在权利要求范围之内 的所有修改、等效方案和替换方案。
[0020] 图1描绘了在计算服务系统1000的多个计算设备之间的交互的框图,该计算服务 系统1000包括:预设服务器100,其用于提供OTP组件;计算设备300,将向其预设OTP组件 并且其将使用这些OTP组件;以及账户服务器600,其提供服务,使用具有OTP组件的计算 设备300来寻求对这些服务的访问。这些计算设备100、300和600中的每一个可以是各种 类型的计算设备中的任何一个,包括但不限于,台式计算机系统、数据录入终端、膝上型计 算机、上网本计算机、超级本计算机、平板计算机、手持式个人数字助理、智能电话、数码相 机、移动设备、合并到衣服中的身体穿戴的计算设备、集成到车辆中的计算设备、服务器、月艮 务器群集、服务器场等。
[0021] 如所描绘的那样,这些计算设备100、300和600交换传达与OTP的使用相关联的 可执行指令和数据的信号,以便通过系统1000的网络999获取对服务的访问。然而,这些 计算设备中的一个或多个可交换与OTP或其使用完全不相关的其他数据。在各实施例中, 网络999可以是可能限于在单个建筑或其他相对有限区域内延伸的单个网络、可能延伸相 当长距离的多个经连接网络的组合和/或可包括因特网。由此,网络999可基于通过其可 交换信号的各种通信技术(或通信技术的组合)中的任何技术,包括但不限于,采用电和/ 或光导电缆布线的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
[0022] 应当注意,尽管对于预设服务器100、计算设备300和账户服务器600中的每一种 进行了仅一个的特定描绘,但是应当理解,包括这些计算设备中的每一种的多个设备的实 施例是可能的。作为示例,预想了预设服务器100或账户服务器600中的任何一种的单个 可支持大量的计算设备300。同样作为示例,预想了可用可能由多个预设服务器100提供的 多个版本的OTP组件来预设单个的计算设备300,以便允许对由多个账户服务器300提供的 多个不同服务的访问。此外,应当注意,尽管描绘了分开的服务器用于支持对OTP组件的预 设和使用,但是在其中单个服务器可合并和/或支持两个功能的实施例是可能的。因此,对 单个的这些计算设备中的每一种和两个服务器之间的功能的具体分离的特定描绘,此类特 定描绘不过是用于便于讨论的示例,并且不应当被当作是限制性的。
[0023] 在各实施例中,预设服务器100包括处理器元件150、存储设备160以及用于将该 预设服务器100耦合至网络999的接口 190中的一个或多个。存储设备160存储控制例程 140、0TP种子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,以便结合控制例程来使用。
[0024] 在各实施例中,计算设备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。
[0025] 控制装置320和显示器380为计算设备300的操作者提供用户接口。控制装置 320可以是各种类型的手工能操作的控制装置中的任何一个,包括但不限于,键盘、鼠标、小 键盘、触板、触笔、指纹读取器等中的一个或多个。显示器380可以是各种类型的显示设备 中的任何一个,包括但不限于,液晶显示器(IXD)、电致发光(EL)显示器、等离子体显示器 等。此外,应当注意,可将控制装置320和显示器380组合进诸如触屏显示器之类的单个组 件中。能够通过接口控制器395a来循环地监测控制装置320。通过显示接口 385的操作, 能够使显示器380可视化地呈现各种形式的内容。如将更详细地解释的那样,通过使用用 于经过控制器400的信息的移动的替代路径中的一条或两条以及在与存储在安全飞地(例 如,安全飞地367)之内的可执行代码交换此类信息时使用加密,可保护在计算设备300及 其操作者之间传递的此类信息免受未经授权的访问(例如,监听、击键监视、图像缓冲器捕 捉等)。
[0026] 可采用类似的安全措施,以便通过接口控制器395b,跨网络999进行与其他计算 设备(例如,预设服务器100和/或账户服务器600)之间的数据的交换。具体而言,就接 口控制器395a和显示接口 385中的每一个而言,可采用用于此类数据经过控制器400的移 动的替代路径和/或在与存储在安全飞地(例如,安全飞地367)之内的可执行代码进行此 类数据的交换中的加密。
[0027] 如受制于相对严格的访问限制那样,安全飞地367可由经处理器元件350定义的 一个或多个地址区段构成。此类限制可包括授予被存储在安全飞地367之内的可执行指令 (例如,控制例程370)遍及存储设备360地在其他地址处相对自由地访问数据和/或可执 行指令的能力,同时可极大地限制或完全不允许来自安全飞地367之外的其他可执行指令 (例如,控制例程340)的访问的能力。实际上,可对存储在安全飞地367之内的可执行指令 和/或数据加密以进一步保护它们免受来自安全飞地367外部的可执行指令的所尝试的访 问。替代地或附加地,可授予存储在安全飞地367之内的可执行指令在各个地址位置处访 问计算设备300的相对宽选择的组件的能力,同时由安全飞地367外部的其他可执行指令 进行的访问可限于相对有限选择的组件。如将更详细地解释的那样,处理器元件350的指 令集包括用于由可执行指令支持一个或多个安全飞地的实例化的指令,这些可执行指令力 图定义存储设备360中可安全地存储数据并且可安全地执行可执行指令的部分。
[0028] 处理器元件450和存储设备460定义控制器400之内的操作环境的多个部分,该 操作环境基本上与由至少处理器元件350和存储设备360定义的操作环境分开。该分开的 操作环境使得能够执行控
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1