结合人类参与的安全数据存储与检索的制作方法

文档序号:6476693阅读:117来源:国知局
专利名称:结合人类参与的安全数据存储与检索的制作方法
技术领域
本技术领域一般涉及计算机处理,且更具体地涉及计算机安全。
北旦 冃牙、
典型的访问控制机制不区分由人提供的输入与由软件提供的输入。因此, 在系统上运行的流氓软件可模仿人类用户的行为并且获得对受保护资源的未 授权访问。例如,击键记录程序可以捕捉用户的帐户名称和口令并且稍后重放 它们作为访问验证序列的一部分。同样,典型的访问控制机制容易受到诸如字 典式攻击或者"中间人"攻击等蛮力攻击的影响。蛮力攻击对于受口令保护的 加密数据的存储特别不利。
概述
提供本概述以用简化形式介绍下面在说明性实施例的详细描述中进一步 描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或者必要特 征,也不旨在用于限制所要求保护的主题的范围。
一种验证机制需要人类参与访问验证序列。为访问数据,提供谜题。该谜 题的正确解答需要人类干预。选择谜题,使得其解答在人类的能力范围之内, 但却超出计算机系统领域的现有技术。在一示例实施例中,使用验证机制来确 保以用户口令加密的数据需要实际的人主体参与访问底层明文数据的每次尝试。
附图简述
以上概述以及以下详细描述在结合附图阅读时能被更好地理解。为了例示 结合人类参与的安全数据存储与检索,在附图中示出了其示例性结构;然而, 通过结合人类参与的安全数据存储与检索提供的功能不限于所公开的具体方 法和手段。

图1是用于安全地存储数据的示例事件序列的流程图。
图2是用于安全地检索数据的示例事件序列的流程图。
图3示出结合人类参与的安全数据存储与检索的存储序列的示例实现。
图4示出结合人类参与的安全数据存储与检索的检索序列的示例实现。
图5是用于实现结合人类参与的安全数据存储与检索的示例性处理器的图示。
图6是其中可实现结合人类参与的安全数据存储与检索的示例的合适计
算环境的示图。
说明性实施例的详细描述
图1和图2描绘用于实现结合人类参与的安全数据存储与检索的示例事件 序列的顺序流程图。图1描绘用于存储安全数据的示例事件序列,而图2描绘 用于检索安全数据的示例事件序列。用于数据的安全存储与检索的密码协议需 要来自人类授权,以便执行数据检索操作。在一示例配置中,使用两个代理来 实现该协议。如图l所示,第一代理14 (即客户机)管理与人类用户12的交 互。第二代理16 (即安全服务器)(称为人类验证服务或者HVS)协调密码 操作并用作受保护数据的储存库。为清楚起见,分开描绘客户机代理14和HVS 服务器16。然而要理解的是,客户机代理14和HVS服务器16可以包括分开 的处理器、同一处理器、或者其组合。例如,客户机代理14和HVS服务器16 可在单个计算机系统上的分开的进程中运行,可在多计算机网络中的分开的主 机上运行,或者其组合。
如上所述,图1是用于存储安全数据的示例事件序列的流程图。在步骤 18,客户机代理14生成密钥K。该密钥可以包括任何适当的随机密钥。在一 示例实施例中,密钥K是对称密钥(例如根据高级加密标准AES的对称密钥)。 在步骤20,用密钥K加密要存储的数据的明文以生成加密数据。在步骤22, 客户机代理14生成另一个密钥K,。密钥K,可以包括任何适当的密钥,诸如例 如对称密钥。要理解的是,在附图中描绘的事件序列是示例性的并因而不限于 此。事件序列可以适当地修改。例如,步骤22可以在步骤18或者步骤20之 前执行。
7客户机代理14在步骤24向用户询问秘密,诸如PIN、 口令等。在步骤26, 用户用该用户的秘密Su响应询问。在步骤28,客户机代理14用密码散列函数 对用户的秘密Su进行操作。散列函数是本领域已知的。散列函数是将可变大 小的输入变换成固定大小的值的函数。通常,散列函数是单向的,意味着从输 出(经变换的)值来确定输入值是不可行或者不可能的。向散列函数提供相同 的输入将提供相同的输出。输入中的轻微变化通常在输出中导致相当大的改 变。示例散列函数包括MD2、 MD5、 SHA-1、 SHA-224、 SHA-256、 SHA-384 和SHA-512。
在步骤30,用密钥K,来加密密钥K。在步骤32,用密钥K,来加密表示 用户秘密的散列值Hash(Su)(散列(Su))。在一示例实施例中,用户的秘密Su 在执行散列函数之后没有存储在客户机代理14中。这可以提供附加安全性, 因为用户的秘密Su更不容易被盗。在步骤34,用安全服务器16的公钥/私钥 对中的公钥来加密密钥K,。利用公钥/私钥对的公钥密码学是本领域已知的。 使用一个密钥进行加密而使用另一个密钥进行解密。 一个密钥的知识不提供另 一个密钥的知识。通常一个密钥保密,并且因而称为私钥。通常使另一个密钥 公开。公钥密码学的一个示例是RSA公钥密码学。在步骤30、 32和33加密 的信息(在图1中被称为二进制大对象)在步骤36被提供给安全服务器16。 即,在步骤36,客户机代理14将用密钥K,加密的密钥K、用密钥K,加密的 表示用户的秘密的散列值Hash(Su)、以及用安全服务器16的公钥/私钥对中的 公钥加密的密钥K,提供给安全服务器16。
在步骤38,安全服务器16生成在图1中被称为检索标记的唯一标记值, 以标识在步骤36接收到的二进制大对象。在步骤40,将该二进制大对象存储 在安全服务器的数据库、存储器等等之中。该二进制大对象由检索标记来索引。 因而,可以通过检索标记来从数据库、存储器等等之中检索该二进制大对象。 在步骤42,安全服务器16提供检索标记给客户机代理14。在步骤44,客户机 代理14使用该检索标记作为索引来存储在步骤20所生成的加密数据。S卩,客 户机代理14在数据库、存储器等等之中存储用密钥K加密的明文,并且使用 检索标记来索引所存储的加密数据,以便可以使用该检索标记来从存储中检索 加密数据。图2是用于安全地检索数据的示例事件序列的流程图。为检索原始的明
文,客户机代理14利用在存储过程期间(在步骤38)所生成的检索标记来访 问安全服务器16。在步骤46,在客户机代理14与安全服务器16之间建立安 全信道。可以按照任何合适的手段来建立安全信道。在步骤48,客户机代理 14将检索标记和对谜题的请求发送到安全服务器16。
在步骤50,生成谜题和该谜题的正确解答。谜题可以包括需要人类干预 来获得解答的任何适当类型的谜题。在各实施例中,谜题可能需要用户对视觉 呈现、音频呈现、或其组合作出响应。例如,谜题可能需要用户输入在失真图 像(例如全自动公开图灵测试,GAPTCHA)中观察到的字母。谜题可能需要 用户回答在失真图像中观察到的问题。谜题可能需要用户输入在失真音频中听 到的字母。谜题可能需要用户回答在失真音频中听到的问题。在各实施例中, 用户的响应可通过键盘、鼠标、口述、或其组合来提供。选择谜题以使得其解 答在人类的能力范围内,但却超出计算机系统领域的现有技术。谜题可由安全 服务器16、另一个处理器、或其组合来生成。在一示例实施例中,谜题是经由 可插入谜题生成程序的库来获得的。随着计算技术领域的现有技术使一些谜题 更容易受到机械解答的影响,该实施例允许替换谜题。在各实施例中,在每次 向安全服务器16提出请求时,安全服务器16可生成谜题,该谜题可以是预定 的谜题,谜题类型(例如谜题类别)可以是预定的,或其组合。如果谜题是预 定的谜题或者谜题类型是预定的,则在步骤48可提供谜题或者谜题类型的指 示。
在步骤52,安全服务器16生成随机密钥K2。密钥K2可以包括任何适当 的密钥,诸如例如对称密钥。在步骤54,用密钥K2加密谜题的正确解答。在 一示例实施例中,正确的解答包括时间戳并用密钥K2加密。在步骤56,安全 服务器16将加密的正确解答和可任选时间戳(称为验证二进制大对象)以及 谜题提供给客户机代理14。在步骤58,客户机代理14将谜题提供给用户12。 在步骤60,用户12结合人类参与来解答谜题并且将所提出的解答提供给客户 机代理14。在步骤62,向用户12询问用户的秘密。在步骤64,用户12用用 户的秘密Su响应(步骤62的)询问。在步骤66,客户机代理14将(在步骤 60收到的)所提出的解答、表示用户的秘密的散列值(Hash(Su))和验证二进
9制大对象(在步骤54生成的加密的正确解答和可任选时间戳)发送至安全服 务器16。
在步骤68,安全服务器16使用检索标记来检索经索引的客户机二进制大 对象。g卩,安全服务器16使用在步骤38所生成的检索标记来检索在步骤40 存储的用密钥K,加密的密钥K、用密钥K,加密的表示用户的秘密的散列值 Hash(S。、和用安全服务器16的公钥/私钥对中的公钥加密的密钥K,。在步骤 70,用安全服务器16的公钥/私钥对中的私钥PK"Hvs来解密用公钥PKHVS (在 步骤34)加密的密钥K,。在步骤72,用密钥K,来解密加密的(在步骤32) 表示用户的秘密的散列值(Hash(Su))。在步骤74,用密钥K2来解密加密的 (在步骤54)验证二进制大对象(生成正确解答和可任选时间戳)。
在步骤76执行验证。如果验证成功,则允许访问所存储的数据(明文)。 如果验证不成功,则不允许访问数据(明文)。在一示例实施例中,如果在步 骤64提供的表示用户秘密的散列值不同于在步骤26提供的表示用户秘密的散 列值,则验证失败。即,如果在客户机代理14初次询问用户12时所提供的用 户秘密不同于与用户提出的谜题解答一起提供的用户秘密,则验证失败。在一 示例实施例中,给予用户12—段有限的时间来提供所提出的谜题响应。因此, 如果当前时间即安全服务器16正在执行验证的时间与(在步骤54生成的)验 证二进制大对象中的时间戳所指示的时间相差大于预定的时间量,则验证失 败。例如,如果当前时间与时间戳所指示的时间相差超过30秒,则验证将失 败。如果用户12 (在步骤60)提供的所提出的谜题解答不同于正确的解答, 则验证失败。
图3和图4示出结合人类参与的安全数据存储与检索的示例实现,该实现 使用无源通用串行总线(USB)设备90作为存储管理应用程序86的存储。图 3示出结合人类参与的安全数据存储与检索的存储序列的示例实现。该实现包 括存储管理应用程序86 (例如客户机代理)、人类验证服务(HVS) 88 (例如 安全HVS服务器)、存储介质90、以及存储介质92。存储介质90可包括任 何适当的存储介质,诸如例如盘、半导体存储器、数据库等等。如图3所示, 在一示例实施例中,存储介质90包括USB存储设备(例如钥匙驱动器)。存 储设备90不需要特殊的密码能力。存储介质92可包括任何适当的存储介质,
10诸如例如盘、半导体存储器、数据库等等。
为实现安全数据的存储,存储管理应用程序86从用户接受要存储的用户 数据-密钥、口令和友好显示名称。用户数据密钥可包括保护敏感用户数据的 任何适当的秘密。例如,数据密钥可包括口令、加密等等。显示名称用于向用 户提示用户数据密钥的身份。显示名称不加密。在执行如上所述的结合人类参 与的安全数据存储与检索的存储序列之后,存储管理应用程序86拥有检索标
记和已经用密钥K加密的用户数据密钥的拷贝。存储管理应用程序86将检索 标记和用户数据密钥的拷贝两者与数据密钥的友好显示名成一起存储在USB 设备90上。
在执行如上所述的结合人类参与的存储与检索的存储序列之后,HVS 88 拥有密钥K的拷贝和表示用户秘密Su的散列值,这两者都被使用密钥K,加密。 HVS 88还拥有K,的加密拷贝,HVS 88可以通过使用HVS 88的私钥来再现 K,。这些项作为一个组来存储并且用检索标记值来索引。合起来,该数据将允 许HVS 88重新构建K的值和表示用户秘密的散列值。
图4示出结合人类参与的安全数据存储与检索的检索序列的示例实现。当 用户想要再现数据密钥时,用户再次执行存储管理应用程序86。存储管理应用 程序86向用户提供从USB设备90加载的友好显示名称列表。用户可选择显 示名称中的一个来再现相关联的数据密钥。在结合人类参与的安全数据存储与 检索的检索序列期间,存储管理应用程序86提示用户输入口令等并且向用户 提供需要人类参与以获得解答的谜题。在收到用户的响应(例如用户所提出的 谜题解答)后,存储管理应用程序86将用户的响应发送至HVS 88。 HVS 88 评估口令和用户所提出的谜题解答。如果HVS确定口令正确并且用户所提出 的谜题解答正确,则HVS 88返回原始密钥K给存储管理应用程序88。存储管 理应用程序86使用密钥K来解密来自USB存储设备90的原始用户数据密钥。 在存储序列或者检索序列期间的任何时候,HVS 88都无权访问用户数据密钥 的明文版本。
图5是用于实现结合人类参与的安全数据存储与检索的示例性处理器94 的图。处理器94包括处理部分96、存储器部分98和输入/输出部分100。处理 部分96、存储器部分98和输入/输出部分100耦合在一起(在图5中未示出耦
11合)以允许它们之间的通信。输入/输出部分100能够提供和/或接收用于实现 如上所述的结合人类参与的安全数据存储与检索的组件。例如,输入/输出部分 100能够接收和/或提供对用户秘密的询问、用户的秘密、加密信息、密钥、经 索引的信息、散列值、检索标记、谜题、所提出的谜题解答、或其组合。
处理部分96能够实现如上所述的结合人类参与的安全数据存储与检索。 例如,处理部分96能够生成密钥,执行加密,执行散列函数,生成检索标记, 存储经索引的信息,建立安全信道,生成需要人类参与以获得解答的谜题,检 索经索引的信息,执行解密,执行验证,确定当前时间与时间戳所指示的时间 是否相差至少预定的时间量,确定第一用户秘密是否不同于第二用户秘密,确 定所提出的谜题解答是否正确,或其组合。
处理器94可以实现为客户机处理器和/或服务器处理器。在一基本配置中, 处理器94可包括至少一个处理部分96和存储器部分98。存储器部分98可以 存储结合实现结合人类参与的安全数据存储与检索所使用的任何信息。例如, 存储器部分98可以存储密钥、用户秘密、谜题、谜题解答、散列值、经索引 的信息、检索标记、或其组合。取决于处理器的精确配置和类型,存储器部分 98可以是易失性的(诸如RAM) 102、非易失性的(诸如ROM、闪存等)104、 或其组合。处理器94可以具有附加特征/功能性。例如,处理器94可以包括附 加存储(可移动存储106和/或不可移动存储108),包括但不限于磁盘或光盘、 磁带、闪存、智能卡、或其组合。诸如存储器部分98、 102、 104、 106和108 等计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块
或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不 可移动介质。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存 或者其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光学存储、磁 盒、磁带、磁盘存储或者其它磁存储设备、通用串行总线(USB)兼容存储器、 智能卡、或者可用于存储所需信息并且能由处理器94访问的任何其它介质。 任何这样的计算机存储介质都可以是处理器94的一部分。
例如,处理器94还可包含允许处理器94与其它设备通信的通信连接114。 通信连接114是通信介质的一个示例。通信介质一般以诸如载波或其它传输机 制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传输介质。术语"已调制数据信号"指的是其一个或多个特 征以在信号中编码信息的方式被设置或更改变的信号。作为示例而非限制,通 信介质包括有线介质,诸如有线网络或者直接线连接,以及无线介质,诸如声 学、RF、红外和其它无线介质。此处使用的术语计算机可读介质包括存储介质 和通信介质两者。处理器94还可具有诸如键盘、鼠标、笔、语音输入设备、
触摸输入设备等输入设备112。还可包括输出设备110,诸如显示器、扬声器、
打印机等等。
图6和下面的讨论提供其中可实现结合人类参与的安全数据存储与检索
的示例的合适计算环境的简要概括描述。尽管不是必要的,但是结合人类参与 的安全数据存储与检索的各方面能在由诸如客户机工作站或服务器等计算机 执行的诸如程序模块等计算机可执行指令的一般上下文中描述。通常,程序模 块包括执行特定任务或者实现特定抽象数据类型的例程、程序、对象、组件、 数据结构等等。此外,结合人类参与的安全数据存储与检索的实现可用其它计 算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器的或者
可编程消费电子产品、网络PC、小型机、大型计算机等等。而且,通过结合
人类参与的安全数据存储与检索来提供功能也可在任务由通过通信网络链接 的远程处理设备来执行的分布式计算环境中实施。在分布式计算环境中,程序 模块可以位于本地和远程存储器存储设备中。
计算机系统可以大致分为三个组件分组硬件组件,硬件/软件接口系统
组件、以及应用程序组件(也称为"用户组件"或者"软件组件")。在计算
机系统的各实施例中,硬件组件可包括中央处理单元(CPU)521;存储器(ROM 564和RAM 525两者);基本输入/输出系统(BIOS) 566;和诸如键盘540、 鼠标542、监视器547和/或打印机(未示出)等各种输入/输出(I/O)设备。 硬件组件包括计算机系统的基本物理基础结构。
应用程序组件包括各种软件程序,包括但不限于编译器、数据库系统、文 字处理程序、商务程序、视频游戏等等。应用程序为各种用户(机器、其它计 算机系统和/或最终用户)提供利用计算机资源来解决问题、提供解决方案和处 理数据的手段。在一示例实施例中,应用程序执行与如上所述的结合人类参与 的安全数据存储与检索相关联的功能。
13硬件/软件接口系统组件包括(并且在一些实施例中可仅包括)操作系统, 操作系统在大多数情形中本身包括外壳和内核。"操作系统"(OS)是担当应 用程序与计算机硬件之间的中介的特殊程序。硬件/软件接口系统组件还可包括
虚拟机管理器(VMM)、公共语言运行库(CLR)或其功能等效物、java虚 拟机(JVM)或其功能等效物、或者作为对计算机系统中的操作系统的替换或 补充的其它这类软件组件。硬件/软件接口系统的目的是提供用户可以在其中执 行应用程序的环境。
硬件/软件接口系统通常在启动时被加载到计算机系统中,并且之后管理 计算机系统中的所有应用程序。应用程序通过经由应用程序接口 (API)请求 服务来与硬件/软件接口系统交互。一些应用程序允许最终用户经由诸如命令语 言或者图形用户界面(GUI)等用户界面来与硬件/软件接口系统交互。
硬件/软件接口系统在传统上在线用于应用程序的各种服务。在其中多个 程序可同时运行的多任务硬件/软件接口系统中,硬件/软件接口系统确定哪些 应用程序应当以什么次序运行以及在为轮流而切换到另一个应用程序之前应 当允许每一应用程序多长时间。硬件/软件接口系统还管理多个应用程序对内部 存储器的共享,并且处理来自诸如硬盘、打印机和拨号端口等附连硬件设备的 输入以及对它们的输出。硬件/软件接口系统还向每一个应用程序(并且在一些 情形中向最终用户)发送关于操作的状态和可能己经发生的任何错误的消息。 硬件/软件接口系统还可以卸载批处理任务(例如打印)的管理,使得启动应用 程序免于该工作并且可以继续其它处理和/或操作。在可提供并行处理的计算机 上,硬件/软件接口系统还管理划分程序以使它同时在多于一个的处理器上运 行。
硬件/软件接口系统外壳(称为"外壳")是对硬件/软件接口系统的交互 最终用户界面。(外壳也称为"命令解释程序"或者在操作系统中被称为"操 作系统外壳")。外壳是可直接由应用程序和/或最终用户访问的硬件/软件接 口系统的外层。与外壳相反,内核是直接与硬件组件交互的硬件/软件接口系统 的最内层。
如图6所示,示例性通用计算系统包括常规计算设备560等,其包括处理 单元521、系统存储器562和将包括系统存储器在内的各种系统组件耦合到处
14理单元521的系统总线523。系统总线523可以是若干类型的总线结构中的任 何一种,这些总线结构包括存储器总线或者存储器控制器、外围总线、以及使 用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器
(ROM) 564和随机存取存储器(RAM) 525。基本输入/输出系统566 (BIOS) 存储在ROM 564中,它包含帮助在诸如启动期间在计算设备560内的各种元 件之间传送信息的基本例程。计算设备560还可包括用于读写硬盘(未示出硬 盘)的硬盘驱动器527、用于读写可移动磁盘529 (例如软盘、可移动存储) 的磁盘驱动器528 (例如软盘驱动器)、以及用于读写诸如CDROM或其它光 学介质等可移动光盘531的光盘驱动器530。硬盘驱动器527、磁盘驱动器528 和光盘驱动器530分别通过硬盘驱动器接口 532、磁盘驱动器接口 533和光盘 驱动器接口 534连接到系统总线523。这些驱动器及其相关联的计算机可读介 质为计算设备560提供对计算机可读指令、数据结构、程序模块和其它数据的 非易失性存储。虽然此处所描述的示例性环境使用硬盘、可移动磁盘529和可 移动光盘531,但是本领域技术人员应当了解,在示例性操作环境中还可以使 用可存储能由计算机访问的数据的其它类型的计算机可读介质,诸如磁带盒、 闪存卡、数字视频盘、伯努利盒式磁带、随机存取存储器(RAM)、只读存储 器(ROM)等等。同样,示例性环境还可包括诸如热传感器和安全或火警系统 等许多类型的监视设备,以及其它信息源。
多个程序模块可存储在硬盘、磁盘529、光盘531、 ROM 564或RAM 525 中,包括操作系统535、 一个或多个应用程序536、其它程序模块537和程序 数据538。用户可通过诸如键盘540和定点设备542 (例如鼠标)等输入设备 将命令和信息输入到计算设备560中。其它输入设备(未示出)可包括话筒、 操纵杆、游戏键盘、卫星天线、扫描仪等等。这些和其它输入设备通常通过耦 合至系统总线的串行端口接口 546连接至处理单元521,但也可通过其它接口, 诸如并行端口、游戏端口或者通用串行总线(USB)连接。监视器547或其它 类型的显示设备也通过接口,诸如视频适配器548连接至系统总线523。除了 监视器547之外,计算设备一般包括其它外围输出设备(未示出),诸如扬声 器和打印机。图6的示例性环境还包括主机适配器555、小型计算机系统接口
(SCSI)总线556和连接到SCSI总线556的外部存储设备562。
15计算设备560可使用到诸如远程计算机549等一个或多个远程计算机的逻 辑连接在网络化环境中操作。远程计算机549可以是另一个计算设备(例如个 人计算机)、服务器、路由器、网络PC、对等设备或者其它常见网络节点, 并且一般包括上文相对于计算设备560描述的许多或全部元件,尽管在图6中 仅示出了存储器存储设备550 (软盘驱动器)。图6所示的逻辑连接包括局域 网(LAN) 551和广域网(WAN) 552。这样的连网环境在办公室、企业范围 计算机网络、内联网和因特网中是很常见的。
当在LAN连网环境中使用时,计算设备560通过网络接口或适配器553 连接至LAN551。当在WAN连网环境中使用时,计算设备560可以包括调制 解调器554或用于通过诸如因特网等广域网552来建立通信的其它装置。调制 解调器554可以是内置或外置的,其通过串行端口接口 546连接至系统总线 523。在网络化环境中,相对于计算设备560描绘的程序模块或者其部分可存 储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的并且可使 用在计算机之间建立通信链路的其它手段。
尽管可以想象,结合人类参与的安全数据存储与检索的众多实施例尤其适 用于计算机化的系统,但本文并不旨在将本发明限于这些实施例。相反,此处
使用的术语"计算机系统"旨在包含能够存储和处理信息和/或能够使用所存储 的信息来控制设备本身的行为或执行的任何及所有设备,而不管这些设备本质 上是电子的、机械的、逻辑的还是虚拟的。
此处描述的各种技术可结合硬件或软件,或者在适当的时候以其组合来实 现。因而,用于实现提供结合人类参与的安全数据存储与检索的功能的方法和 装置或者其某些方面或部分,可以采取包含在诸如软盘、CD-ROM、硬盘驱动 器或者任何其它机器可读存储介质等有形介质中的程序代码(即指令)的形式, 其中当程序代码被加载到诸如计算机等机器并由其执行时,该机器成为用于提 供结合人类参与的安全数据存储与检索的功能的装置。
如果需要,程序可以用汇编或者机器语言来实现。在任何情况下,语言可 以是编译或解释语言,并且与硬件实现相结合。用于实现结合人类参与的安全 数据存储与检索的方法和装置还可以经由以通过某种传输介质传输的程序代 码的形式体现的通信来实现,传输介质诸如通过电线或电缆、通过光纤或者通
16过任何其它传输形式,其中当程序代码由诸如EPROM、门阵列、可编程逻辑
器件(PLD)、客户机计算机等机器接收、加载并执行时。当在通用处理器上
实现时,程序代码与处理器相结合以提供一种用于调用结合人类参与的安全数 据存储与检索的功能的独特装置。另外,与结合人类参与的安全数据存储与检 索一起使用的任何存储技术总是可以是硬件和软件的组合。
尽管已经结合各附图的示例实施例描述了结合人类参与的安全数据存储 与检索,但要理解,可以使用其它类似的实施例,或者可以对所述实施例进行 修改和添加,以执行结合人类参与的安全数据存储与检索的相同功能而不背离 本发明。因此,此处所描述的结合人类参与的安全数据存储与检索不应限于任 何单个实施例,而是应当根据所附权利要求书的广度和范围来解释。
1权利要求
1.一种结合人类参与的计算机相关的安全方法,所述方法包括接收对存储在存储介质中的数据的请求;响应于所述请求,提供谜题,其中人类参与旨在获得所述谜题的解答;接收所述谜题的所提出的解答;确定所提出的解答是否正确;以及如果所提出的解答正确,则允许访问存储在所述存储介质中的所述数据。
2. 如权利要求1所述的方法,其特征在于,还包括,如果提供所述谜题与接收所提出的解答之间的时间量大于预定的时间量,则不允许访问所述数据。
3. 如权利要求1所述的方法,其特征在于,还包括在接收到所提出的解答之前,请求第一秘密;接收所述第一秘密;在接收到所述对数据的请求之后,请求第二秘密;接收所述第二秘密;将所述第一秘密与所述第二秘密相比较;以及如果所述第一秘密不匹配所述第二秘密,则不允许访问所述数据。
4. 如权利要求1所述的方法,其特征在于所述谜题旨在可视地呈现;以及所述谜题的解答旨在通过观察所述谜题的可视呈现来获得。
5. 如权利要求1所述的方法,其特征在于所述谜题旨在可听地呈现;以及所述谜题的解答旨在通过观察所述谜题的音频呈现来获得。
6. 如权利要求1所述的方法,其特征在于,还包括从可插入谜题生成程序的库中获得所述谜题。
7. 如权利要求1所述的方法,其特征在于,还包括用第一密钥加密所述数据;用第二密钥加密所述第一密钥;在所述存储介质中存储加密的数据和加密的第一密钥;以及如果所提出的解答正确,贝IJ:用所述第二密钥解密所述加密的第一密钥;以及 提供经解密的第一密钥。
8. —种用于实现结合人类参与的计算机相关的安全的系统,所述系统包括输入/输出部分,其被配置成接收对存储在存储器部分中的数据的请求;响应于所述请求,提供谜题,其中人类参与旨在获得所述谜题的解答;以及接收所述谜题的所提出的解答; 处理部分,其被配置成确定所提出的解答是否正确;以及如果所提出的解答正确,则允许访问存储在所述存储器部分中的所述数据;以及所述存储器部分被配置成存储所述数据。
9. 如权利要求8所述的系统,其特征在于,所述处理部分还被配置成,如 果提供所述谜题与接收所提出的解答之间的时间量大于预定的时间量,则不允 许访问所述数据。
10. 如权利要求8所述的系统,其特征在于 所述处理部分还被配置成在接收到所提出的解答之前,请求第一秘密; 在接收到所述对数据的请求之后,请求第二秘密; 将所述第一秘密与所述第二秘密相比较;以及如果所述第一秘密不匹配所述第二秘密,则不允许访问所述数据;以及 所述输入/输出部分还被配置成 接收所述第一秘密;以及 接收所述第二秘密。
11. 如权利要求8所述的系统,其特征在于 所述谜题旨在可视地呈现;以及所述谜题的解答旨在通过观察所述谜题的可视呈现来获得。
12. 如权利要求8所述的系统,其特征在于 所述谜题旨在可听地呈现;以及所述谜题的解答旨在通过观察所述谜题的音频呈现来获得。
13. 如权利要求8所述的系统,所述处理部分还被配置成从可插入谜题生 成程序的库中获得所述谜题。
14. 如权利要求8所述的系统,其特征在于 所述处理部分还被配置成用第一密钥加密所述数据; 用第二密钥加密所述第一密钥;在所述存储器部分中存储加密数据和加密的第一密钥;以及 如果所提出的解答正确,则用所述第二密钥解密所述加密的第一密钥;以及所述输入/输出部分还被配置成提供经解密的第一密钥。
15. —种在其上存储计算机可执行指令的计算机可读介质,所述计算机可 执行指令用于通过执行下列步骤来执行结合人类参与的计算机相关安全接收对存储在存储介质中的数据的请求; 响应于所述请求,从可插入谜题生成程序的库中获得谜题; 提供所述谜题,其中人类参与旨在获得所述谜题的解答; 接收所述谜题的所提出的解答; 确定所提出的解答是否正确;以及如果所提出的解答正确,则允许访问存储在所述存储介质中的所述数据。
16. 如权利要求15所述的计算机可读介质,其特征在于,还包括,如果提 供所述谜题与接收所提出的解答之间的时间量大于预定的时间量,则不允许访 问所述数据。
17. 如权利要求15所述的计算机可读介质,其特征在于,还包括 在接收到所提出的解答之前,请求第一秘密; 接收所述第一秘密;在接收到所述对数据的请求之后,请求第二秘密; 接收所述第二秘密;将所述第一秘密与所述第二秘密相比较;以及如果所述第一秘密不匹配所述第二秘密,则不允许访问所述数据。
18. 如权利要求15所述的计算机可读介质,其特征在于所述谜题旨在可视地呈现;以及所述谜题的解答旨在通过观察所述谜题的可视呈现来获得。
19. 如权利要求15所述的计算机可读介质,其特征在于所述谜题旨在可听地呈现;以及所述谜题的解答旨在通过观察所述谜题的音频呈现来获得。
20. 如权利要求15所述的计算机可读介质,其特征在于,还包括用第一密钥加密所述数据;用第二密钥加密所述第一密钥;在所述存储介质中存储加密数据和加密的第一密钥;以及如果所提出的解答正确,贝IJ:用所述第二密钥解密所述加密的第一密钥;以及提供经解密的第一密钥。
全文摘要
一种计算机相关的安全机制要求人类参与访问验证序列。在请求访问安全数据时,向请求者提供谜题。谜题的正确解答需要人类参与。选择谜题以使其解答在人类的能力范围之内,但却超出计算机系统领域的现有技术。谜题可以可视地和/或可听地向用户呈现。在一个配置中,经由可插入谜题生成程序的库来获得谜题。随着计算技术领域的现有技术的改进,可以替换库中的谜题生成程序。
文档编号G06F21/04GK101641702SQ200880009414
公开日2010年2月3日 申请日期2008年2月28日 优先权日2007年3月23日
发明者A·H·贝克, A·S·特克, B·J·瓜拉希, G·梅德文斯基, T·杜塔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1