CN109154952A - 用于保护存储数据的方法和系统 - Google Patents
用于保护存储数据的方法和系统 Download PDFInfo
- Publication number
- CN109154952A CN109154952A CN201680084594.6A CN201680084594A CN109154952A CN 109154952 A CN109154952 A CN 109154952A CN 201680084594 A CN201680084594 A CN 201680084594A CN 109154952 A CN109154952 A CN 109154952A
- Authority
- CN
- China
- Prior art keywords
- data
- lock
- user
- request
- network
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000003860 storage Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000000875 corresponding effect Effects 0.000 claims description 15
- 230000007613 environmental effect Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 5
- 230000002596 correlated effect Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 5
- 238000005096 rolling process Methods 0.000 claims description 5
- 230000006855 networking Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 2
- 230000002427 irreversible effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 63
- 238000012545 processing Methods 0.000 description 24
- 230000006399 behavior Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 239000012634 fragment Substances 0.000 description 11
- 238000013475 authorization Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000013480 data collection Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 230000003442 weekly effect Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 210000000352 storage cell Anatomy 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/316—User authentication by observing the pattern of computer usage, e.g. typical user behaviour
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2111—Location-sensitive, e.g. geographical location, GPS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Social Psychology (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于访问存储数据的方法和系统包括接收访问存储在数据存储单元中的数据的请求。该请求要求由具有对存储数据的访问权的系统执行的一个或多个数据操作。响应于该数据请求,一个或多个锁被导出并且被分配给数据操作中的一个或多个。各个锁控制对分配了相应锁的数据操作的调用。所述导出部分地基于(i)从发出请求的用户获得的用户景况数据和(ii)包括请求的一个或多个属性的数据景况。一个或多个锁中的每一个被解锁,并且在所述一个或多个锁被解锁之后,所述一个或多个数据操作被调用。
Description
相关申请的交叉引用
本申请要求2016年4月12日提交的美国临时申请第62/321,302号和2016年6月27日提交的美国临时申请第62/355,290号的权益,它们的内容以引用的方式并入本文。
背景技术
存储数据容易遭到未经授权的访问并且遭受恶意更改和操纵(即攻击)的问题自计算机问世以来就人所共知,也就是说,这个问题存在了超过六十年。隔三差五地就会有报道此类攻击的新闻。政府、企业和银行全都报告过因为这些攻击而遭受损失。这已经成了一个引起许多计算机工程师,安全专业人士和商业领袖关注的主要问题。到目前为止,还没有设计出完全安全的系统和方法来规避所有这些攻击。
附图说明
图1A示出了通过创建一系列锁来控制操作R的调用的计算实体。
图1B描绘了用于打开锁的方法的实例。
图1C示出了图1B的方法中采用的验证步骤的一个实例。
图2A是图解说明用于访问诸如存储数据这样的锁定对象的方法的一个实例的流程图。
图2B描绘了可用于实现图2A的方法的对等网络的一个实例的逻辑示意图。
图2C示出了图2B中所示的用于实现图2A的方法的网络的功能图。
图3A示出了关系数据库系统的主要子系统的示范性框图。
图3B示出了分片方式的示范性数据布局。
图3C示出了关系数据库的实例。
图4A,4B和4C各自示出了用私钥锁定的锁定对象R。
图5示出了在一周内平均的用户环境数据的概要,其可以用于生成可以用于认证用户的模板数据。
图6描绘了用户的示范性身份表,其中将一行模板数据与一行操作数据进行比较,以基于匹配程度对用户进行认证。
图7示出了可用于确定用户请求的重要性的数据值表,可以根据该重要性分配解锁锁所需的计算工作量。
图8示出了可以由图2C的网络执行的、用来处理用户请求的一系列步骤。
图9示出了可由传统数据库查询处理系统执行的、用来导出处理查询的计划的一系列步骤。
图10描绘了表格的一个实例,该表格示出了执行生成各种大小的输出的数据检索操作所需的计算工作量。
图11描绘了表格的一个实例,该表格示出了基于交易将为存储在数据记录中的数值带来的百分比变化的、执行交易所需的计算工作量。
图12描绘了表格的一个实例,该表格示出了基于所请求的交易与先前的这种请求间的不同的范围的度量的、执行交易所需的计算工作量。
图13示出了用于处理询问"谁是客户约翰的银行专员"的用户请求的方法的一个实例。
图14描绘了图2C中所示的网络的实现方式的一个实例。
发明内容
按照本文公开的主题的一个方面,提供了一种用于访问存储数据的方法和系统。按照该方法,接收访问存储在数据存储单元中的数据的请求。该请求要求由具有对存储数据的访问权的系统执行的一个或多个数据操作。响应于该数据请求,一个或多个锁被导出并且被分配给数据操作中的一个或多个。各个锁控制对分配了相应锁的数据操作的调用。所述导出部分地基于(i)从发出请求的用户获得的用户景况数据和(ii)包括请求的一个或多个属性的数据景况。所述一个或多个锁中的每一个被解锁,并且在所述一个或多个锁被解锁之后,所述一个或多个数据操作被调用。
按照本文公开的主题的另一个方面,提供了一种认证用户的方法。按照该方法,从要认证的用户的网络相关活动中收集操作数据的时间序列。操作数据代表用户与一个或多个网络和一个或多个智能装置的交互。将所述操作数据的时间序列与先前获得的用户的网络相关活动的模板数据的时间序列进行比较。如果先前获得的模板数据的时间序列与操作数据的时间序列匹配到指定的置信等级内,则确定所述用户是认证用户。
具体实施方式
在一个方面,本发明解决存储数据的易受攻击性问题。我们提出了一种系统和方法,通过使授权或非授权用户成功实现恶意修改和访问在计算上不可行来减小数据易受攻击性。简言之,本发明并不试图从一开始就将攻击统统消除。而是,使攻击成功变得高度不可能。此外,通过巧妙地选择某些参数,可以使攻击成功的可能性极其微小,所述选择是系统管理员的职权范围。这些选择的代价是系统响应时间减小或使用的计算能力更多。
术语"计算上不可行"的意思是,要想获得访问数据,需要一个经授权或未经授权的实体来执行某些计算任务并通过某些测试。只要关于熵的热力学定律不是错的,这些测试和任务就不可能被假造或正确猜出,因为正确猜出答案的概率极低。因此,实体被迫真正执行这些任务并通过这些测试。
本发明并不试图了解软件程序如何管理存储的数据或输入的查询和交易。因此,它避免了与程序理解相关的常见和众所周知的问题。相反,它依赖于作业的热力学或计算学概念。要想获得访问数据,就需要完成相关的计算作业。该作业观念并不是固定的或默认设置的。而是由用户行为、用户身份、用户的过去访问历史、用户请求的数据的变化幅度、用户访问的数据量等对其进行参数设置。将每次数据访问操作与发出请求的用户及其背景一起加以分析,以确定为获得访问而需要执行的作业的参数量。可以将每组条件或限制视为需要清除才能获得访问权限或对存储数据进行更改的障碍。
此外,一个以上的计算实体可以竞争执行与所请求的数据访问相关联的热力学(即,计算学)作业,并且先于任何其他实体完成的实体(即,第一个完成的实体)获得访问数据的权利。因此,实体用于完成作业的硬件需要具备达到一定的最小速度的能力,否则某些其他硬件实体将会首先完成。从这个角度讲,本发明使用与诸如比特币网络这样的加密货币网络中使用的技术类似的技术。本发明部分地依赖于这样的必要硬件速度:底层硬件的最低能力需要达到2014年左右才在世界范围内普及的现代制造技术(例如14Nm芯片制造技术)的标准,或者更新的制造技术的标准,比如预计将于2017年左右推出的10Nm芯片制造技术。这样,那些栖身于车库中、使用着老旧个人计算机的恶意用户通过解答计算任务来"模仿"系统的硬件实体的想法将会是非常难以实现的。
总体说明
本发明所采取的解决保护存储数据的问题的方法部分地基于控制软件操作的调用,这可以借助于软件锁的概念来解释。软件锁是一种软件功能,这一功能取得一定数量的具有特定值的输入,然后返回"真/假"这样的答案。只要对锁的输入值保持未指定或者是错误的,那么就会将其视为被锁定。如果提供了所需的输入值并且锁的评价结果为"真",则称为被解锁。如果输入值被指定并且锁的评估结果为"假",即根据锁的规定,这些输入值不正确,则该功能被认为保持锁定。
考虑如下所述的情况。
锁L包括功能F,该功能需要输入值X,Y等。我们可以描绘如下这样一种情境。
锁L:[功能F(x,y,…)|操作R]
锁L会一直"保卫"着操作R,直到输入值X,Y,...都被提供给它的功能,从而使得功能"F"评估结果为"真"。词"保卫"的意思是锁控制操作"R"的调用。(在更现代的用法中,"启动"一词用作调用的同义词,例如启动应用程序。)
希望控制操作R的调用的计算实体会创建一系列的锁100-400(图1A)。各个锁基于各种不同的参数,如下。
·私钥锁100:基于用户的私钥/公钥。
·传感器锁200:是用户行为规则获得的,而用户行为规则是由与用户的智能装置、智能或受感测环境和网络相关联的传感器数据导出的。
·工作锁300:是从用户景况获得的,用户景况包括系统的当前用户和其他用户的过往访问历史,请求的性质,所请求的数据量,数据请求的性质。
·障碍锁400:是从数据景况获得的,数据景况包括与先前数据请求及企业法规和政策相比由操作500造成的数据变化的幅度。
重要的一点是,要注意(并且将立即变得更加明显)锁是由系统响应于所接收的数据请求而导出的,导出时要注意打开锁的特定顺序,即执行的顺序。还有很重要的一点是,要注意锁的数量和强度,即打开锁所需的计算工作量,是随着输入请求的各种参数、用户和存储数据的状态而变化的。不同的请求关联于不同的锁、不同的锁执行顺序和不同的锁强度。甚至在第一个请求之后从同一用户接收到的第二个请求都可能关联于不同的锁数量、锁强度等,因为存储的数据可能已经在过渡期间发生了改变。
在一些实施例中,传感器锁基于从用户的智能装置导出的数据,他的网络连接、他在访问一个或其他网络时或者从一个装置/网络转换到另一个装置/网络时的行为、他与其他智能装置的接近度,例如,他的狗的智能项圈等。然后可以在(多个)传感器锁的导出中使用这样的数据,以便用户可以得到正确认证。工作锁可以基于输入请求的性质和数据的当前状态。障碍锁可以基于企业规则和法规,这可以对与一个或多个用户相关联的授权施加或多或少的严格要求。
我们现在给出与锁定和解锁概念相关的更多细节。假设系统接收到需要调用操作"R"的数据请求。为了保护"R"的调用,系统现在导出一个锁L,它具有保卫操作"R"的功能"F"。假设"F"需要两个输入值,如果它们的总和等于整数7,则返回"真"。注意,两个输入值之和必须等于7这一约束条件仅仅是为了说明的目的而提出的。更加一般地,输入值可以受制于任何一种(多种)约束条件,或甚至根本没有约束条件。
这样,锁"L"可以写成如下形式,其中符号?A和?B是用来表示需要提供其值来作为指定函数的输入的变量。
L:[?A:?B:F(A,B){若A+B=7则"真",否则"假"}|操作R]
图1B表示开锁所遵循的方法。在步骤100中,由名为"系统"的实体从实体"输入装置"接收数据请求,然后系统决定将锁"L"与所述接收的请求关联起来。我们直观地将锁"L"表示为200,它可以被理解如下。"符号"?A"和"?B"是需要提供值的输入变量,"加","等于"和"7"分别是系统提供的函数和值"。
在步骤300中,输入装置分别提供值3和4,然后这两个值替换对象400内的"?A"和"?B"(分别)。在步骤500中,执行验证步骤(稍后详述),导致锁"L"被成功打开(600)。因此,现在可以调用操作"R",因为已经打开了锁。
图1C示出了上述验证步骤的实例的细节。为了验证对象50,该实例使用现有技术中公知的基于堆栈的机器。图1C示出了堆栈100至600的各种状态。基于堆栈的机器的工作原理如下。
要执行的对象,即对机器进行输入,被表示为50,其中指针60一次一个方块地从左向右移动,如箭头70所示。如果箭头60
·指向一个值,机器将该值移动到堆栈顶部并且自己向右移动一步。
·指向一个函数,机器将函数应用于堆栈顶部的(多个)值(在处理中消耗这些值),即"弹出"堆栈,并将结果放在堆栈顶部。
·到达输入的末尾并且堆栈顶部的值为"真",则认为机器具有为真的验证。否则验证失败。
假设输入如图1C中的50所示,机器继续进行如下处理。
最初,堆栈为空(100),同时指针60指向值"3"。机器将值"3"置于堆栈上(200)并向右移动一步,即,它现在指向值"4"。接下来,机器将值"4"入栈并且向右移动(300)。
机器现在看到函数"加"并将其应用于堆栈中顶部的两个值,在处理过程中消耗掉这两个值。结果为"7",该结果被机器放置在堆栈顶部(400)。机器向右移动其指针。
接下来,机器看到它送入堆栈中的值7(500)并将其指针向右移动。现在机器看到函数"等于"并将其应用于堆栈顶部的两个值,消耗堆栈上的两个顶部值,并将"真"置于堆栈顶部。
由于机器到达了其输入的末尾并且堆栈的顶部值为"真",因此机器已成功验证该对象。
重要的一点是要注意,基于堆栈的机器强制施行开锁的执行顺序。这样,如果堆栈机应用于图1A所示的锁定对象,锁的执行顺序将是"从左到右"。总的来说,普通技术人员将注意到,基于堆栈的机器强加了被称为"逆波兰"或"后缀"顺序的顺序,例如,35+7*是更常见的((3+5)*7)中缀表示法的后缀表示法。普通技术人员还将注意到基于堆栈的机器的选择是没有限制的。许多其他形式的抽象机器是可用的并且可能已经被使用了,并且不同的机器可以对锁强加不同的执行顺序。在本说明中,基于堆栈的机器仅仅是出于讲解的原因而使用的,不是对本发明的限制,并且如所观察到的,它们对锁强加了从左到右的执行顺序。
我们现在可以介绍如下的我们解决保护存储数据问题的一般方法。如果输入的请求需要使用一个或多个数据操作,我们导出一个或多个锁定对象,以便我们可以以特定方式控制某些数据操作的调用。
此外,我们在多节点网络600(图1A)上执行上面所创建的锁定对象。我们稍后将更加详细地解释在多节点网络600上执行锁定对象的方法。一般来说,多节点网络包括分布式计算机组,每个计算机接收锁定对象的副本。各计算机通过首先尝试以所需顺序打开锁定对象的锁来执行它接收的锁定对象。成功打开所有锁的第一台计算机获得对受保卫操作的访问权,即得以调用受保卫的操作。
由于锁需要计算量,具有不同资源(例如CPU能力)的计算机通常会花费不同量的时间来打开锁。因此,多节点网络中的一台或多台计算机将首先完成。正如将要看到的,这样的多节点网络创建了一个更安全的计算环境。
密钥验证
在介绍本发明的系统和方法的主要组件之前,我们会介绍某些现有技术,这些现有技术将在后面的说明中用到。
现有技术可以区分身份验证和授权。身份验证是确认个人身份的处理。授权是权利和权限与身份的关联。
使用某些种类的密码函数来生成"密钥"以授权对计算机系统和数据的访问在现有技术中是公知的。不过,在基于公共加密法的系统中,用户的身份,即身份验证问题仍未解决。
这方面的问题被称为公钥身份验证问题。通常,虽然公钥是广为人知的,但是没有令人满意的已知解决方案来确定与公钥对应的个人的身份。也就是说,公钥和个人身份之间的关联是未经验证的,因此可能遭到恶意使用。
网络环境
节点是一个或多个计算机的集合,这些计算机被配置为共同执行一组期望的功能。网络通常定义一个消息传播机制,也称为协议,通过该机制在网络的节点之间传递消息/信息。对等网络是相互连接的一个或多个节点的网络,使得一个节点连接到一个或多个其他节点,称为它的对等节点,这些对等节点又连接到它们的对等节点,等等。这样,例如,为了在整个网络中传播消息,一个节点可以将消息发送给它的对等节点,然后这些对等节点可以将消息发送给它们的对等节点,等等。对等网络可以使用广播类型协议或其他形式的协议来在节点之间传播消息。在本发明中,我们假设使用广播类型协议,这是出于讲解原因而不是对本发明进行限制。例如,我们可以通过假设网络是完全连接的,来考虑一种特别简单形式的传播协议。完全连接的"N"节点网络的一个含义是任何节点都具有"N-1"个对等节点。按照另外一种替代方案,完全连接的网络使得所有路径具有单一长度,即,网络是单跳网络。我们需要这样的传播协议:它保持跨越网络所有节点的消息具有相互一致性和完全复制性。
所介绍的网络可以在逻辑上划分为一个或多个子网络,各个子网络包括一个或多个节点。可以出于地理分布的原因或出于将某些功能定位到网络的某些节点等的原因来进行这一划分。在后一种情况下,可能需要子网中的所有节点执行相同的功能集,即,子网络可以说是同质的。
计算工作及其证明
现有技术描述了一类基于计算不可逆性的函数,即以相对较少的计算量产生给定输入的输出的函数;不过,给定输出的输入是不能轻易计算出来的,例如,不依赖于在天文学角度都很巨大的可能性空间内进行的随机猜测就不能轻易计算出来。这些函数的例子是SHA128,SHA256,所谓的Rabin函数,离散对数函数等。例如,函数SHA256将任何信息字符串(文本,数字,字符等)作为输入,并产生-不需要很大的计算量-一个256位的字符串(或64个处于[0,1,2,...,9,A,B,C,D,E,F]范围内的十六进制字符)作为输出。
不过,找到一个会导致SHA256生成给定输出的输入通常需要大量的计算;还不知道有效的方法来找到这样的输入。
考虑SHA256的这样一个输入:它产生一串二进制数字作为输出。输出中的第一比特为"0"的概率为50%,并且后续比特位置为"0"的概率呈几何级数减小。现在考虑下列问题。我们得到一个输入,说"hello"。我们应该将一个称为"随机数"的字符串"附加"到"hello"上,从而"hello+随机数"在被作为输入供应给SHA256时,会产生一个小于给定数字的数字,称为"目标"。例如,目标可以是具有5个前导零的数字。然后我们可以重复运行SHA256,每次"猜测"一个"随机数",直到输出小于目标。这样,我们可以开始向SHA256提供输入"hello1","hello2"等,直到它产生一个小于目标的字符串作为输出。
然而,使用SHA256进行一定量的工作可能需要大量的猜测,即大量的计算工作,验证所需的工作已经完成相对容易。设输入为"X",随机数为"Y"并且目标为"Z",我们只需要将Y附加到X上,将其作为输入送入SHA256并将输出与给定目标"Z"进行比较。
具体地,可以建立基于工作证明的锁定对象并将其表示为
[?随机数:?输入:?目标:验证工作|操作R]
其中"验证工作"被假定为使用SHA-256的系统提供函数,当在前面介绍的堆栈机上执行时,如果为"随机数"、"输入"和"目标"提供的值满足前面介绍的SHA-256的条件,则该函数返回"真"。上述验证计算工作的处理称为工作证明。注意,工作证明要求我们被告知输入、随机数和目标数字。
日志
对节点的请求是针对所述节点的基于所述节点的逻辑执行一个或多个动作的命令。日志是与网络节点相关联的预留存储量。各个节点都有自己的日志。
日志记录节点收到的请求。特别是,它将请求分为两类(1)已满足的请求,以及(2)仍有待满足的请求。如前所述,假设网络的传播协议在网络的所有节点上保持日志的相互一致性和完全复制性。
一个节点在接收到新请求时,为其分配用户标识号和表示接收到它时的"网络时间"的时间戳。然后,所述节点可以将新接收的请求传播到网络中它的对等节点。节点在接收到请求时可以将其作为未满足的请求记录在它的日志中。由于新请求可以到达对等网络中的不止一个节点,因此一个节点可能会接收到重复的未满足请求。
特别地,在任何给定时刻,节点的日志可以包含得到满足的请求的列表(比如说,按照收到时间戳来组织的)和未满足的请求的列表。在一个实施例中,后一个列表可以被组织为先入先出(FIFO)列表。
节点的主要任务是满足其FIFO列表中未满足的请求。这样,节点从FIFO列表的前面选择项目,满足它,并且如果成功(如稍后将解释的那样),则向网络中它的对等节点宣告它的成功。该宣告包括成功满足的请求的详细信息。接收到这一宣告的节点相应地记录它,即,接收节点修改其满足和未满足列表以与新接收的宣告实现一致。
考虑初始化时的网络,即,所有节点的日志具有空的FIFO列表(可以假设得到满足的列表是空的或非空)。现在,新的请求被一个节点接收到,该节点将其记录在它的日志中,为其分配用户标识号和收到时间戳,并将其传播给它的所有对等节点。
所有节点都接收所传播的请求并将其记录在它们的FIFO列表中。按照它们的主要任务,如上所述,节点选择它们的FIFO列表上的第一项,在这种情况下是最新到达的请求,并尝试满足它。如果节点成功满足了请求,则它会将此宣告给网络中的所有其他节点。
假设正在尝试满足请求的节点"N"接收到某个其他节点已成功满足该请求的宣告。则该节点"N"被要求接受该宣告,即节点"N"验证接收的信息是有效的(如后面将解释的那样),并且如果验证成功,则节点"N"将该请求从它的FIFO列表移动到得到满意的请求的列表中。然后它可以继续尝试满足它的FIFO列表中的(下一个)第一项。
我们现在可以将更多信息添加到本发明的总体介绍中。数据请求,即从用户接收的访问某个数据项的请求,被网络的一个或多个节点接收。所接收的请求被用于导出一个或多个锁定对象,各个锁定对象具有一个或多个具有不同强度的、保卫某些数据操作的锁。锁定对象被添加到网络节点的FIFO列表中。在稍后的某个时间,网络的所有节点都会参与到满足(解锁)锁定对象的尝试中。解锁锁定对象的第一个节点得以调用受保卫的数据操作。
因此可以看出,一个节点能否成功满足输入数据请求,取决于该节点解锁保卫着输入请求所涉及的一个或多个数据操作的所有锁的能力。
说明性实施例
图2A中示出了本发明的说明性实施例处理请求的总体和一般方法。
在步骤100(初始化步骤)中,收集各种不同种类的传感器数据以使系统准备好验证用户的身份。这一数据被用于导出传感器锁。
在步骤200中,对输入请求进行分析,以确定所涉及的数据操作。锁被导出以保卫所涉及的数据操作。
在步骤300中,尝试依次打开所有导出的锁定对象的所有锁。在步骤400中,确定是否已经为所有锁定对象成功打开了所有锁。在步骤500中,成功解锁所有锁定对象导致一个或多个受保卫的数据操作的调用。如果针对输入数据请求,任何一个锁定对象未被成功打开,则所有的导出对象和数据请求都被抛弃。
在步骤600中,调用各种不同数据操作的结果被组合为对输入请求的响应。
图2B描述了可用于实现图2A的处理的对等网络的逻辑示意图。
具有网络连接的计算机(或包含处理器的装置)在本文中称为智能装置。它还可以另外包含传感器(硬件或软件)或者处于产生与智能装置或智能装置的用户的状态、环境或条件有关的数据的其他传感器装置的范围内(在传感器装置附近)。在图2B中,300描绘了一个或多个计算机,其任务是收集源自可能包含或接近传感器装置的各种智能装置的传感器数据。如此收集的数据被提供给一个或多个计算机500。
由计算机500执行的一个功能是将由装置300收集的传感器数据转换成系统的其他组成部分所需的格式。另一个功能是接收来自用户的输入请求,并确定输入请求所涉及的基本数据操作列表。计算机500的再另一个功能是导出与所确定的基本数据操作相对应的一个或多个锁定对象,并将其注入网络2000。
网络2000由分别编号为600和700的两(2)个子网络组成。601,602和603是子网络600的节点。701和702是子网络700的节点。没有假设节点601,602,603,701和702中的任何一个包含类似的计算机或装置以及计算机数量。仅示出了构成子网络600和700中的每一个的少量几个节点。实际上,子网络可以包含比所示节点的数量更多或更少的节点。子网络600中的所有节点执行相同的逻辑功能。不过,它们可以在它们的物理计算机的结构和数量、存储量等方面有所不同。类似地,子网络700中的所有节点执行相同的逻辑功能。不过,子网络600的节点执行的逻辑功能不同于子网络700的节点执行的逻辑功能。也就是说,两个子网络600和700执行不同的功能,并且它们是各自同质的子网络。
图2B中的箭头代表控制和数据的流程。标号为0的箭头是用来表达初始化步骤,在该初始化步骤期间收集并准备传感器数据以供以后使用。箭头1表示新的数据请求到达。与所接收的数据请求相对应的一个或多个锁定对象被导出并被注入(箭头2)到子网络600中,从那里控制流程经由箭头3到达网络700。接下来,针对所存储的数据记录,已经被子网络700解锁的数据操作可以被调用(箭头4)。在步骤5中,来自被保卫操作的调用的数据被发送到包括500的计算机,从那里将其组装成对输入请求的响应。
图2C示出了图2B(和图2A的方法)的功能细分。400包括一个或多个计算机,其任务是从包含传感器装置的一个或多个智能装置300接收传感器数据或者接收处于用户的智能装置附近的传感器数据100。模块400可以汇总输入的传感器数据,使其标准化并为系统的其他组件处理做好准备。
在一些情况下,智能装置可以结合或以其他方式与一个或多个硬件或软件传感器相关联,所述硬件或软件传感器收集和传输与智能装置的状态、环境或条件、位置等有关的数据。智能装置还可以从其他类型的传感器接收这样的数据,这些传感器本身就是智能装置(即,它们包括处理器和网络连接)。智能传感器装置的例子包括诸如Apple的iBeacon这样的信标,智能手表,智能恒温器,冰箱,包含GPS定位技术的装置,室内GPS系统,诸如计步器、血压监测装置、脉搏血氧仪之类的用户佩戴的医疗传感器装置,可以进行目前由侵入性技术、健身手镯等进行的测试的装置。包含一个或多个传感器的诸如智能电话,平板电脑,智能眼镜,智能手表,可穿戴计算机等的移动装置也被视为本发明范围内的示例性智能装置。
在初始化步骤中,各种传感器数据被400接收、收集和制表,并根据其他组件的指示和需要经由连接50提供给所述组件。
用户请求150被一个或多个计算机(500)接收,并且可能由500通过响应200做出响应。图2C中的转换引擎(TE)500表示一个或多个计算机,其主要功能是导出锁定对象来保卫输入请求所涉及的数据操作。
在图2C中,执行引擎(EE)600是一个或多个节点的子网络,其主要功能(稍后更详细地介绍)是解锁从500注入的锁定对象的除障碍锁以外的所有锁。
在图2C中,验证引擎(VE)700是一个或多个节点的子网络,其主要功能(稍后更详细地介绍)是解锁锁定对象的障碍锁。
在图2C中,800描绘的是可以通过调用某些数据操作来访问的一组存储数据记录。一旦锁定对象的所有锁都被解锁,就可以针对该存储数据记录调用该锁中保卫的操作。
图2C示出的600和700作为不同的子网络,各个子网络具有执行某些功能的自己的一组节点。如前所述,子网络600的节点和子网络700的节点执行的功能是不同的。子网络600和700中的每一个是各自同质的,但是它们的组合是非同质的。
标有"传播"的箭头是用来表示消息被传播到子网络600中并且从600传播到子网络700。标有"内部传播"的圆形箭头是用来表达消息在所指示的子网络内传播。标有"访问"的箭头表明子网络700中的节点具有访问800中的资源的必要授权。
图2C中的800代表数据记录,例如,如关系数据库技术中所描述的数据记录。图2C中的1000是可由500,600和700访问的数据表的集合,并且包含将在稍后更详细讨论的各种供应数据和二级索引。
数据的关系模型
1970年,E.F.Codd发明了数据关系模型,它构成了所谓的关系数据库系统的基础。(术语"大型共享数据库"是历史性的,E.F.Codd在他的开创性论文《E.F.Codd:Arelational model of data for large shared data banks》(ACM通讯,第13卷,第6期,1970年6月)中使用了这一术语。在本发明中,我们使用数据的关系模型作为示范性数据存储系统。不过,本发明的方法一般适用于所有数据管理系统。
图3A示出了关系数据库系统的主要子系统的示范性框图。客户端1(100)是被配置为用来访问关系数据库系统的计算机程序。它可以在各种各样的计算机上运行,比如台式机、移动计算机、平板电脑、笔记本电脑、智能装置等。所述计算机程序可以运行在包含在其他装置中的任何数量和种类的处理器上。所述计算机程序可以接收文本、音频、视频或机器可读字符串或者它们的组合的形式的输入。它可以以上面指出的格式当中的任何一种格式或任何组合格式来产生输出。子系统200验证用户,即客户端装置,并接收输入的查询和交易,然后将它们传递给子系统300,在子系统300中对它们进行处理。子系统400通常包括一种或多种数据访问方法,通过该方法可以检索,编辑,改变存储的数据等。子系统400一般还控制和管理外围存储系统,比如磁盘驱动器、磁带等。
图3A绘出了子系统的逻辑视图。实际上,一个或多个子系统(例如,数据存储子系统400)可以分布在多个装置上,这些装置本身可以位于地理上不同的位置。因此,产生了对相互连接各种分布式组成部分的通信链路的需求。
组建数据存储子系统的一种方法是以通过通信网络相互连接的水平分区数据集(也称为分片)的集合的形式来组建,各个这样的分区驻留在不同的云集群中。例如,邮政编码小于50000的客户的数据记录位于一个分区(称为东区),而邮政编码大于50000的客户的数据记录位于第二个分区中,称为西区。为了得到全体客户,我们可能需要对两个分片进行一个联合。
图3B示出了分片形式的示范性数据布局。表格被分割成分片并存储在地理上分布式的站点上,可通过利用任何数量的网络拓扑的各种通信网络访问,例如,图3B示出了用于保存表格分片的5个分布式站点的星形网络拓扑。在这样的布局中,由于所有节点没有连接到所有其他节点,因此数据请求可能需要中间传递到用于聚合目的辅助节点之一。这种数据检索技术是现有技术的一部分。
可以基于加密验证的请求来访问各个分片。
将数据部署为分片的好处是,可能需要传输和处理相当少量的数据就可以回答用户查询。例如,涉及前面例子中东海岸客户的查询可能需要访问仅包含在本地分片中的数据。
图3C图解说明了包括三个关系CUSTOMER,BRANCH和BANKER的关系数据库的例子。前两个关系可以被实现为表格数据结构,图3中示出了其中一种可能的实例。通过使用现有技术中已知的关系代数算子,BANKER关系也可以被实现为表格结构或派生关系。(在现有技术中充分讨论了这种决定的利弊。)注意,支行经理和客户之间的"Banker"关系可能没有明确地存储在数据库中;相反,它可以是通过操纵其他数据而导出的。在本说明中,我们假设后一种选择。图3C还示出了示例查询和交易。
还要注意,数据库模式并不包含任何数据值,仅包含数据库结构的描述,多少关系,哪些属性,哪些属性用作标识符等。
还应注意,某些属性/值用于唯一地标识关系的一个或多个元组。这些属性被称为关键属性,不要与后面讨论的"私有"和"公共"密钥混淆。
如现有技术中公知的,关键属性用于构造有助于高效检索数据的二级索引数据结构。参照图3A,在图3A中被绘制为(300)的查询和交易处理子系统包含二级索引数据结构。
在查询处理系统中,典型地,执行下面的一般方法。客户端系统100(图3A)产生由子系统200接收的查询。查询用户的身份通过用户提供的凭证进行认证,并且如果确定了该用户被允许访问该系统/数据,则该查询被转发到查询子系统300。子系统300中的软件逻辑计算需要什么元组(数据记录),所述元组是通过它们的关键属性/值对来识别的。这一连串的在被执行时会导致对给定查询做出回答的动作在现有技术中被称为"计划"。计划使用数据库的方案描述中包含的信息。关键属性/值用于从数据存储系统400中检索元组,然后该元组可以被返回,作为对查询的答案集合。
我们观察到计划的基本组成部分涉及对存储数据的访问。一旦访问了数据,就可以在将数据作为对输入请求的响应发送之前对其进行操作和处理。所有数据管理系统在基本和基础层面上都要求存储数据在某一时刻被访问,作为其查询和交易处理系统的一部分。
因此,本文介绍的实施例重点关注本发明对数据访问操作的适用性,因此,本发明不仅限于关系数据库系统中的应用。特别是,本发明适用于依赖于访问存储数据的数据操作的所有数据管理系统。
在传统的数据库系统中,要在查询和交易之间进行区分。查询是不会更改数据状态的请求。例如,"约翰的帐户余额是多少"是一个查询。交易是会更改/添加/修改/删除数据状态的请求。例如,"向约翰的帐户添加200美元"是一项交易。
需要注意的是,在关系数据库中,查询的答案的大小,实际上是上限,可以通过在实际检索数据之前借助方案信息和二级索引结构来计算,例如,二级索引的大小给出了关系/表格中元组/行数的上限。关系/表格的大小是关系/表格中的元组/行的数量。
一般而言,交易是按照如下的逻辑项处理的。
第一步是将所接收的交易视为查询,即检索所需的数据元组、根据交易的要求修改所需的数据元组、再将其存储回数据库中。如果要在数据库中插入之前并不存在于该数据库中的新数据值(例如,新的银行客户帐户),则可以将相应的交易假设为包含空查询,在该空查询之后是在数据库中插入元组。空查询是一个答案为空的查询。
公钥加密法
我们现在介绍图2C的优选实施例的功能,首先从对用户授权的问题开始。回想一下,对用户授权涉及基于他们的通过身份验证过程建立的身份来确定用户的权利。
现有技术建议使用公钥加密法来对用户请求授权。在这样的系统中,用户生成一对称为私钥和公钥的加密数据。公钥是所有人都知道的;私钥只有它们的所有者才知道。一对公钥和私钥形成一个唯一的对子。
假设用户鲍勃希望只有爱丽丝可以调用操作"R"。鲍勃于是可以创建一个锁定的对象。令爱丽丝的公钥为Pub(Alice),她的私钥为Pri(Alice)。于是图4A示出了相应的锁定对象。请注意,锁定对象只能由爱丽丝打开,因为只有她有权使用她的私钥。为了解锁该对象,爱丽丝必须提供她的私钥作为"?Pri(Alice)"的输入;她的公钥是众所周知的并且可以被合并到"私钥锁"功能中。
这样,设计为仅由爱丽丝打开的锁可以由锁[?Pri(Alice):私钥锁]更简洁地表示,假设相应的公钥已被合并到功能"私钥锁"中(图4B)。设计为由爱丽丝和查理在彼此之间协作下才能打开的私钥锁可以表示为[?Pri(Alice):?Pri(Charlie):私钥锁](图4C)。后者将要求爱丽丝和查理二人都对功能"私钥锁"进行输入才能打开锁,假设它们各自的公钥已被合并到功能"私钥锁"中。
环境感官标志(ESI)
现在转到验证用户身份的问题,即对用户进行身份验证,我们发现公钥加密的一个核心问题是它不能提供给定公钥为真的证据,即它属于主张方。公钥和个人身份之间的关联可能是假的。援引维基百科"到目前为止,还没有找到完全满意的'公钥认证问题'解决方案"(在线维基百科,en.Wikipedia.org/wiki/Public-key cryptography)。
现有技术解决公钥真实性问题的典型方式是引入充当公钥验证者的"可信第三方"。但是,如果该可信第三方变节,则该方案将失败。
我们现在介绍一种说明性实施例的建立系统的用户的身份的方法。该方法基于从用户的智能装置,与用户的智能装置相关联的传感器,与所述用户非常接近的其他智能装置,与用户的智能装置通信的网络(有线和/或无线)等等获得的传感数据。
现在,用户拥有和使用多个智能装置是很常见的。智能装置是具有网络连接的计算机(或包含处理器的装置)。它还可以另外包含传感器(硬件或软件)或者处于其他传感器装置的范围内(靠近传感器装置),这些传感器产生与智能装置的状态、环境或条件有关的数据。智能装置的例子包括但不限于台式计算机和便携式计算机、平板计算机、移动装置(例如,移动电话,智能手表,智能眼镜)、包含移动装置的装置等。
来自智能装置内或附近的物理的或基于软件的传感器的数据可以由智能装置接收、处理和收集,或者被发送到与智能装置相连的服务器。
例如,用户的工作地点可以支持Wi-Fi网络。这样,当用户在他的工作地点时,他的智能装置可以与Wi-Fi网络连接,从Wi-Fi路由器接收数据,记录所述数据或将其发送到与所述智能装置相连接的服务器。
此外,当用户在家时,他的智能电话可以连接到他的家庭Wi-Fi网络,该家庭Wi-Fi网络可以生成不同的数据集。当用户在他的汽车中时,他的智能装置可以与他的汽车的音乐系统建立蓝牙连接,从而产生其他可记录数据。
因此可以看出,当用户开始他的日常生活时,他的智能装置从一个或多个其他智能装置、传感器和网络接收数据。因此,我们可以获取关于这些装置的数据、连接的时间和持续时间、连接到一个网络/装置之后再连接到另一个网络或装置的模式,等等。因此,用户在各种网络上的出现、他从一个网络转换到另一个网络、出现在这些网络上的持续时间和时刻、他在各个地理位置的出现以及相关的日期、时间和天数都可以由用户的(多个)智能装置或连接到所述装置的服务器记录为数据集。这样的数据集可以被称为环境数据集,并且可以被分析,从而导致从事件中导出模式。例如,我们可能能够将一种这样的模式描述为:"用户在他的办公室花费的时间量为X,在他的汽车中花费的时间量为Y,并且他家中花费的时间量为Z"。作为另一实例,我们可以推导出一条规则,在所有的网络转换中,超过80%都是用户从网络X转换到网络Y。
环境数据集中的信息可用于获得如图5中所示的概要。该表格示出了用户"用户1"的数据,该用户的环境数据是一周内的平均值。该表格显示,在该周内,用户1平均花费6小时连接到他的工作Wi-Fi,每天8小时连接到他的家庭Wi-Fi,平均30分钟连接到蓝牙网络。第二个表格显示了他从一个网络到另一个网络的转换频率。从用户的智能装置或处于用户附近的智能装置获得的每日、每周或每月数据集中收集的这种概要数据可用于建立所述用户的身份,如下所述。
首先要求用户提供一定长度的训练期(例如1周)的样本数据。为了获得样本数据,可以由人类操作员(例如安全人员)监视用户。还可以要求用户佩戴诸如可穿戴智能手镯之类的监视设备。在本周期间,系统将来自所述用户的智能装置、人类操作员或邻近装置的数据汇集到数据集中。然后分析数据集以生成概要数据集,表示为被称为身份表的表格。
在1周的训练期结束时,所述用户进入所谓的操作阶段,在该阶段期间来自用户的智能装置或邻近装置的数据被基于"滚动"的方式汇集到称为操作行的身份表的一行中。重要的是要注意,实际的行是以"滚动周"的方式保持最新,即系统总是具有最新一周的数据。
为了建立用户的身份,在所述用户进行访问请求时,系统将用户的模板行与身份表中他的操作行进行匹配。基于系统管理员的考虑,匹配操作可以根据情况需要允许近似匹配或完全匹配。
图6绘制出了基于1周数据的具有模板和操作行的用户的示范性身份表,即,训练阶段期间从用户获得的1周的模板数据和操作阶段期间的一周的滚动数据。为了确定用户的模板和操作行值是否"匹配",我们可以使用精确的、近似的或模糊的匹配处理(在现有技术中都是公知的)。
匹配处理的结果可以是0(不匹配)到9(完全匹配)之间的整数,系统可以使用这个结果作为用户模板和实际行为之间的匹配的可信度。稍后将讨论如何在授予用户访问权限时使用这些衡量标准。为了进行匹配,可以定义一个二进制函数,该函数对模板和操作行数据进行匹配,并相应地返回真/假。
可以利用从环境标志数据集导出用户行为模式的思想来实现强力模式的导出。例如,我们可以汇总来自夫妻的智能手机的位置数据和事件,并将它们与来自同事的智能手机的数据相关联,以得出示范性模式,例如"用户平均每天有5小时与他的配偶一起呆在家中"。
通过智能装置和附近智能装置数据建立用户身份所蕴含的基本思想是,为了伪造这些数据,恶意用户将需要拥有、破解或闯入真正用户的家庭、办公室和汽车等。通过使用来自许多不同装置、位置、网络、邻近装置、配偶装置等的数据,恶意用户想要完成这一任务是极其困难的。
此外,我们可以从所述装置中随机选择数据元素,使得猜测出用于装配模板和实际行的数据对于用户来说更加困难。
不仅某人冒充真正的用户将会很困难,而且对于那些基于其身份信息获取访问权限的用户来说,否认他访问过系统也将是很困难的。因此,借助前面提到的身份机制而被允许访问的用户将发现否认他的罪责是很困难的。
而上述示范性的介绍基于使用来自Wi-Fi和蓝牙网络和装置的数据,更一般地,来自任何装置和网络(包括但不限于位置传感器、时间传感器、可穿戴计算装置、系统用户近旁的用户或他们的宠物佩戴的装置等等)的数据,都是可以使用的。
作为使用来自于用户在其智能装置上的行为的数据的另一个例子,考虑用户在诸如Facebook,Twitter等社交网络网站上的用户行为。一种典型的用户活动是在网站上发布消息,称为"推文"和"即时消息"等。可以在一段时间内(例如几周)汇集特定用户的帖子以判别模式。例如,我们可能会发现用户每天发布十几条推文,并且Facebook评分每周都会更新。如前面所解释的,可以判别出这样的模式并将其存储在身份表中作为"模板行"(如前所述)。用户的装置于是会包含最新的数据集,即"操作行"(如前所述)。
继续上述例子,当用户希望访问数据存储单元时,我们于是可以对身份表的模板和操作行进行匹配,以确定用户的身份。例如,我们可能会发现用户的最新社交网络活动(操作行)与其整体社交网络活动模式(模板行)并不"匹配"(从前面介绍的角度讲)。
捕获用户的计算行为和活动以及从这样的数据中提取模式的概念并不限于在Wi-Fi网络或社交网络等上的行为。此外,这样的模式可以用作代表用户行为方式,并且因此可以用于许多目的,识别或验证用户只是一个这样的目的。
要注意的是,上述方法的例子基于模板数据收集阶段的一周数据。但是,一般可以使用任何时间段,一般情况下由系统管理员决定。
我们可以如下所述那样使用环境数据集来验证用户。用户从客户端装置上运行的软件程序发出请求。该软件程序此前已经被用于将数据发送到本实施例的系统,其中它被存储为身份表中的一行(模板行)。该计算机程序还将数据的操作行记录在本地客户端装置中。(如上所述,计算机程序收集与"滚动"时间段相关联的数据。)当用户发出请求时,系统生成包含传感器锁的锁定对象,其可以表示为如下。
[?操作行∶模板行∶传感器锁|操作R]
函数"传感器锁"使用如图6所示的匹配函数100。注意,系统拥有数据的"模板行"(来自初始化阶段),并且在用户输入请求时要求客户端计算机程序提供"操作行"数据。如果函数"传感器锁"返回"真",则满足验证要求。
用户请求
现在可以如下所述那样,针对图2C,对前面介绍的本发明的一般工作进行补充。假设在初始化步骤中,使用来自客户端装置300的数据和来自装置100的传感器数据,计算机400收集并汇总环境数据集以用作注册用户的模板行数据。计算机400通过如供应表1000中所示的那样存储数据集来使环境数据集(包含模板行数据)可由子网络500、600和700使用。可以通过用户身份或公钥来对模版行数据加索引。
用户请求150到达TE 500(图2C)。假设发出请求150的用户装置10具有所述用户所需的操作行数据。TE 500接收输入的用户请求并将其转换为基本数据操作的列表(稍后将会给出这种导出的例子)。一般而言,该列表将具有一个或多个数据访问操作。
考虑导致基本数据操作列表的用户请求。我们现在导出一个或多个与用户请求相对应的锁定对象。锁定对象具有下列一般形式。
锁定对象的一般形式
1.私钥锁
2.传感器锁
3.工作锁的证明
4.障碍锁
5.由上述锁保卫的一个或多个数据操作。
应当注意,给定的锁定对象可以具有各种锁的一个或多个实例,或者根本没有。我们现在介绍用于示范性目的的单个锁定对象的处理过程。考虑这样一个锁定对象:它具有保卫着数据操作"R"的上述各种类型的锁的一个实例。
TE 500将锁定的对象传播到子网络600中,由此子网络600的所有节点将其记录为未满足的请求,即,记录在它们各自的FIFO列表中。
经过一段时间以后,作为各个FIFO列表中的第一个未满足条目,所述锁定对象被子网络600的所有节点提取出来,然后子网络600接下来尝试解锁该对象的第一个锁。
由于第一个锁是私钥锁,因此只有用户(或他的装置)可以提供解锁私钥锁的私钥。
一旦EE子网络600中的EE节点解锁了第一个锁,则所述节点向EE子网络600中的所有节点宣告其成功。子网络600的所有节点验证所接收的信息,然后据此修改它们的日志。(验证收到的信息的细节将在稍后介绍。)
接下来,所有节点都转向第二个锁,第二个锁是传感器锁。(稍后将提供打开工作证明锁的细节。)再一次,EE子网络600的某个节点成功解锁第二个锁,做出相应的宣告,该宣告被EE子网络600的所有节点记录下来。
对工作证明锁重复进行上述处理。一旦打开了工作证明锁,打开工作证明锁的EE子网络节点就将锁定对象传播到VE子网络700,以便可以打开任何剩余的障碍锁。关于(多个)障碍锁的打开的细节将在稍后提供。一旦所有锁都已经被打开,就可以由成功打开最后一个锁的VE子网络700的节点调用被保卫的操作"R"。
返回到前面介绍的锁定对象的一般形式,我们注意到前面已经介绍了条目1和2。我们现在更详细地讨论剩余的条目3和4。
工作和障碍锁
前面引入了计算工作的概念。回想一下,一个不可逆的函数,比如SHA256,与预定的输入字符串和给定的目标数T一起使用。思路是找到一个随机数,当这个随机数被附加到输入字符串上时,会产生一个小于给定目标数的数字。
本发明的一个方面是衡量用户请求的重要性并导出强度与该重要性的度量相称的工作锁。借助锁的强度,我们想表达的是相应的计算工作量。
我们可以通过各种方式估计请求的重要性。例如,我们可以使用从用户的先前访问历史中导出的用户访问的每日频率。要考虑的其他可能性是用户的和/或用户的可能之前已经用来发出过请求的装置的位置。来自新的/未知的用户位置或来自很少使用的装置的请求可能需要额外的预防措施,也可以考虑使用。所有这些例子都源于分析存储在图2C的供应表1000中的过去的用户访问历史。
考虑图7中所示的表格,该表格的数据值是示范性的并且示出了可以(由系统管理员和管理者)用来衡量用户请求的重要性的特定数据值集合。这样的表格是用来通过使用特定数据值来捕获企业的商业规则。还假设柱状值是独立的。
在这个例子中,按照图7中所示的数据值,来自特征在于每日用户访问频率小于2的用户的请求,将会造就需要非常大量计算工作才能打开的工作锁,即目标具有10个前导十六进制零。不经常访问系统的,即每天少于两次并且具有低匹配分数(0-3)的用户将发现,要获得访问权在计算上很困难。应当注意,这一结果是因为填充图7的表格的数据值牵涉到一定的政策。一组不同的数据值将包含不同的政策。
另一方面,发出访问请求的具有高匹配分数(8)的频繁用户(例如,每天7个请求)将被分配较少的工作和更简易的障碍,例如,T=0xx...x和E=1。
以上内容可以作如下解读。
T=0xx...x(十六进制)表示工作锁要满足的目标是小于具有1个前导十六进制零位的数字的任何数字,例如具有2个前导零的数字。"E"代表可以理解为约束条件的障碍。更具体地说,障碍被称为"n-of-m"约束条件,意思是"m"个节点的网络中的至少"n"个节点必须验证(批准);因此,E=1意味着至少一个节点必须批准锁定脚本的解锁。
因此,工作锁可以具有如下形式。
[?随机数∶?输入:?目标:工作锁|操作R]
函数工作锁使用图7中的值来为给定的用户请求导出"T"的值,即,"T"的值衡量用户请求的重要性,并且用于定义在打开工作锁时要花费的计算量。
类似地,障碍锁使用"E"值来决定需要多少节点来验证锁定请求。本实施例使用历史访问数据和身份匹配数据,如图7中所示,被表示为表格并且称为授权表,用以基于用户的过往使用和匹配数据获得"T"和"E"值。然后,使用所述数据针对给定用户请求导出工作锁和障碍锁。应当理解,很多不同种类的历史和匹配数据可以存储在授权表中,用以在合同关联的处理中进行引导。
授权表是统称为供应表和二级索引的表格的集合的一部分。该集合在图2C中被表示为1000。假设TE 500中的所有计算机以及EE 600和VE 700子网络中的所有节点都可以使用它。
解释了锁定对象的工作锁定之后,是时候更加详细地解释障碍锁了。如前所述,"n-of-m"障碍表示需要网络中总共"m"个节点中的至少"n"个节点来验证条件的约束。假设VE网络中的各个节点具有其自己的私钥。因此,如果所述节点被命名为A,B,C等,则相应的私钥可以被记为Pri(A),Pri(B)和Pri(C)。然后,举例来说,假设在VE网络中总共有3个节点,我们可以具体说明2-of-3约束如下。
[:Pri(A):Pri(B):Pri(C):2of3enc验证|操作R]
其中"2of3enc验证"假设是系统提供的函数,如果其三个输入中的两个满足所述函数的约束条件,则返回"真"。
现在让我们重新开始进行这一讨论:图2C中的EE子网络600中的已经刚刚解锁了"验证工作"锁的节点,向EE子网络中它的对等节点宣告其成功,并且还将该宣告传播到VE子网络700的节点。注意,该宣告包含锁定脚本的最近解锁的元素以及剩余的未解锁的锁,即障碍锁。
现在,VE子网络700的节点各自尝试打开障碍锁。但是,只有节点"A","B"和"C"知道它们的私钥。这些节点中的一个,例如"A",将其私钥提供给锁定对象,并且"在内部"传播结果得到的对象,即向VE子网络700中的其他节点传播。注意,所传播的对象可能仍未锁定,即,它需要的输入当中只有一个被提供了。(以这种方式,VE子网络700的传播协议不同于EE子网络600的传播协议,因此构成了我们具有两个不同子网络的原因之一。)现在,假设"B"向所接收到的锁定对象提供了它的私钥并且将结果得到的对象传播到VE子网络700中的其他节点。VE子网络中已经接收到这个新传播的锁定对象的、具有供应给Pri(A)和Pri(B)的值的节点现在发现它能够打开"2of3enc验证"锁。因此,锁定对象的最后一个锁可以被打开了。
VE子网络700中成功完成这一任务的节点获得执行与锁定对象相关联的受保卫操作的权利。
以下关于障碍锁的工作的补充细节是很重要的。VE子网络的节点接收部分解锁的对象。我们假设障碍锁包含特殊的软件逻辑,该软件逻辑在由VE子网络的节点执行时,使其能够验证已解锁元素的合法性。例如,如果工作锁已经被打开,则所接收的对象必须包含"随机数"、"输入"和"目标"值,从而工作锁的打开可以得到验证。类似地,其他已经打开的锁也需要加以验证。部分打开的对象的障碍锁会验证全部之前打开的锁。如果这一验证失败,则障碍锁的打开失败(整个锁定对象的打开也就失败了)。
另外,可以将一般约束和条件结合到上述特殊软件逻辑中,该逻辑验证用户的特定方面、数据请求等。
实现由障碍锁用于验证用途的特殊软件逻辑的一种方法在图7中示出,是标有"引用"的那一栏。引用的值是到达所存储的软件逻辑的链接,所存储的软件逻辑可以被障碍锁执行,用来满足前面讨论的可验证性。(多个)锁定对象的一般推导中的障碍锁的导出需要获知引用值并且将所引用的软件逻辑结合到障碍锁中。因此,可以由障碍锁来验证宽范围的条件和约束。
用户数据请求
考虑用户请求的一个具体实例比较有益。为了便于描述,我们假设用户请求分为两个阶段:用户许可请求(阶段1)和用户数据请求(阶段2)。用户许可请求涉及验证用户的工作。
在图8中,第2行表示正在接收的用户许可请求。该请求由包括图1C中的TE 500的计算机接收。
TE 500将许可请求转换为具有行3中显示的锁的锁定对象。注意,锁的具体值和强度是从授权表中获得的,如前所述。
在第4行中,TE计算机将锁定对象"ABC"注入到图2C中的EE子网络600中,其中(步骤5)锁定对象发现自己在EE子网络的所有节点的FIFO列表上。
在步骤6中,我们假设EE子网络的所有节点开始进行解锁新添加的锁定对象"ABC"的工作,以指定的顺序、利用中间插入的宣告,一个接一个地打开这些锁。此外,一个节点首先成功打开除了障碍锁之外的所有锁。如前所述,这使得获胜节点能够向EE和VE子网络中的所有节点宣告它的成功。
在步骤7中,VE节点接收部分解锁的对象并继续解锁剩余的(障碍)锁。所有之前打开的锁都需要重新验证。第一个成功的节点由此向EE和VE子网络进行宣告。收到宣告后,EE和VE子网络的所有节点都相应地更新它们各自的日志。因此,由于对象ABC已被解锁,所以可以调用用户请求的第二阶段。
我们现在考虑用户请求的第二阶段,并且假设在它的处理过程中需要数据检索。出于示范的目的,我们考虑针对图3中所示的数据库的请求"谁是约翰的银行专员"。
传统的数据库查询处理系统会得出一个用于处理上述查询的计划。图9中示出了一个这样的计划。
图9中所示的计划的第1行代表输入的请求。第2行代表计划的第一步,即,得到包含表格"客户"的数据记录。假设表格"客户"已被分成两个分片,传统的查询处理系统将会把图8中第二行的请求分解为第3、4、5行中所示的基本动作。在这里,术语"基本"表示不能被系统简化为更简单的动作,即可以由系统可用的底层方法执行的动作。第6、7、8和9行表示与包括表格"分支"的数据记录相关的类似动作。
第10行请求组合在第5行和第9行中的两个表的数据记录的加入;第11和12行请求传统的基本动作来获得期望的结果。
如上所述,图9中给出的计划是用来处理诸如前面所示的示范性查询那样的查询的现有技术中传统且公知的计划。
在这样的计划中观察到的重要事情是基本动作包括数据访问请求。这一观察结果不仅适用于关系数据库系统和SQL数据库,还适用于面向对象的数据库、no-SQL数据库等。
供应表(参见1000,图2C)包含描述数据库内容和二级索引的概要,即,可由访问方法用于检索所需数据的表格,例如,基于密钥的表格和反向数据查询表等。可以根据二级索引的大小来估计输入请求的大小。简要说明如下。
关系代数的运算可以分为两类。一类对单一关系进行操作,即一元操作。此类操作的实例是SELECT和PROJECT操作。第二类操作是对两个或多个关系进行操作的操作,例如JOIN,SET DIFFERENCE,UNION等。
一元操作的域是底层关系,因此答案集的基数(即大小)可以被估计为对应的二级索引的大小的上限(即索引的域)。回想一下所有关系都是有限的。
对于非一元操作,我们可以采用底层域的并集来获得答案集大小的上限。重点是,人们不需要访问实际数据来计算预期答案集的大小。
本发明的一个原则是,计划的各个数据检索操作可能都需要受到保护。因此,我们要求数据记录可以由被锁定对象保卫的数据操作访问。
在一些实施例中,数据请求需要执行的计算工作量是预期答案集的大小和值集的范围的函数。
考虑图10中表示数据检索操作生成一定大小的输出所需的目标(即,工作量)的表格。而且,障碍栏显示网络中批准输出所需的节点数,即,可以将它们视为授权或检查的层级。例如,要生成500-1000个输出元组的答案集,尝试生成该大小的答案的节点需要执行相当于"3个前导十六进制零"的工作量,即找到会生成小于目标"000xx...x(十六进制)"的数字的随机数。此外,所述节点的工作受到4-of-N的障碍,其中"N"是网络中节点的总数。
交易与查询的不同之处在于,前者会改变、更新数据库或者向数据库添加数据项,即它们会造成副作用。例如,交易可以改变数值,例如,账户余额可以从500美元改变到700美元。
本发明使用历史数据来确定和衡量可能由交易引起的百分比变化。例如,图11示出了可用于计算存储在数据记录中的数值的这种百分比变化的表格。
交易可能需要添加或删除数据记录。同样,即使是以每个用户为基础的,也可以保留所有过去的这种交易的历史记录,以衡量所述交易与先前的这种请求间不同的范围。图12示出了可以用于这一目的的示范性数值表格。
因此,使用图11和12中所示的表格,我们可以针对交易计算与平均值的偏差和百分比变化。图10可以用于估计给定查询的答案的大小。
因此,图10、11和12可以用于估计给定查询或交易所需的工作量(对应工作锁的目标)和障碍。
特别地,返回到上面讨论的与图9中所示的查询有关的例子,我们观察到TE计算机在接收到查询"谁是约翰的银行专员?"时可以通过导出图9中所示的计划(使用常规手段)并且然后使用历史使用数据值导出工作和障碍锁(比如根据需要如图10、11和12中所示的那样)来继续进行处理。
图13以表格的形式示出了这样得到的锁定对象。注意,第3、4、7和8行中的各个锁的工作和障碍值是借助图10、11和12中所示的表格获得的。因此,第3、4、7和8行中的每一个都获得具有相应的工作和障碍锁的锁定对象,这些锁的整体形式是相同的,但是它们各自的元素可能是不同的。
前面的讨论基于对被相继处理的来自于用户的两个请求的介绍。更复杂的处理也是可能的。例如,前面的两个子请求可以以交叉模式而不是顺序模式执行。如果我们同时解锁一个以上的锁,那么这种交叉模式的操作可能也是必要的。
图14绘制出了可用于实现本发明的物理布置。500包括一个或多个计算机,其任务是从各种传感器装置150或包含传感器100的客户端(智能)装置接收传感器数据。包括500的计算机还负责收集来自用户装置50的用户请求。
此外,包括500的计算机还负责承担和执行TE计算机(500,图2C)所描述的功能。具体地,分析输入的用户请求,以导出锁定对象,然后将锁定对象传播到网络200中。
一商业实体可以负责计算机系统500和传感器装置(或来自装置的数据),比如150。该实体的任务可以是处理输入数据并将用户请求提交给网络200。
网络200可以是可由第二个商业实体管理的节点的网络。它将负责执行注入到网络中的锁定对象并将相应的响应返回到实体运行的计算机500。网络200可以实现为私有的,许可的网络或公共的非许可网络。
网络200包含两种类型的节点,一种类型说明性地包括节点N1,N2和N3,另一种类型说明性地包括节点N4和N5。前一组节点执行图2C的EE子网络600的功能,后一组节点执行VE子网络700的功能。这样,包括节点N1到N5的网络是非同构的。每个节点都有一个私有日志文件。网络200中的节点N1-N5经由链路A-E连接到存储区域300,其中存储着各种二级索引表和供应表。实际数据记录可以被存储在分布式的基于分片的存储库400中,可以以加密方式控制对其服务器的访问。
我们已经讨论了将系统管理员使用的数据存储在本文称为供应表(1000,参见图2C)的表格中,而客户数据被存储在不同的存储系统中,例如800,参见图2C。实际上,两个存储系统可以被集成为一体,并且供应数据也可以存储在后一个存储系统中。额外的安全要求进一步加强了这一思想,该要求对操纵系统管理数据的操作施加了调用限制。因此,系统管理和客户数据都受到了类似调用限制的保卫。
替代实施例
本发明设想了其他实施方案。例如,可以导出更好的查询处理计划来回答查询,更好的查询处理计划在于它更有效地使用存储为分片的数据。本领域技术人员将看到,可以针对给定的查询和交易导出多种计划。本发明的一个想法仍然是成立的,即,这种计划内的数据访问操作与保卫所涉及的数据操作的锁定对象相关联。
可能会对上述提议提出异议,因为EE网络的节点可能会先于它的对等节点接收到宣告,从而在打开锁时获得先机。
不过,上述猜测并不成立。在EE子网络中,开始开锁的节点将会发现它的计算工作量由各种锁控制的。因此,即使节点由于网络延迟而产生小的优势,在统计意义上它也不会赢得所有其他节点。
本发明对某些数据操作的调用施加了限制。这样的限制可能会使系统速度降低,从而使用户要去等待获得对其请求的响应。我们提出了一个替代实施例来消除查询处理中的任何延迟。
每个授权用户被分配一定数量的数字货币,即硬币,这些货币只能由授权管理员发行。没有其他人可以生成硬币。现有技术教导了如何生成加密货币。
对于提交给数据库系统的每个查询或交易,授权用户会被收费,可以用所述硬币支付。
数据库系统导出"支付"锁,只有在请求用户的数字钱包中有足够的硬币时才能支付该"支付锁"。查询或交易解锁"支付锁"所需的硬币数量基于用户景况、数据景况、企业规则等。
这样,被认为具有高"重要性"(如上所述)并且需要大量计算工作来解锁各种锁的请求被分配了需要高成本费用的锁。因此,响应时间可以保持高效,但是以用户必须拥有足够的硬币来支付费用为代价。现在,恶意用户需要大量的硬币才能使他的请求得到回答,因此,需要请求授权人员向他发放更多硬币。即使他有足够的硬币,监控系统也可以被设定为发出高额硬币交易的警报。
最后,我们注意到(如前所述)尽管到目前为止所呈现的各种说明性实施例已经假设了基于数据的关系模型的数据存储单元,但是这种假设并不限制本发明的范围。例如,考虑一个实施例,其中数据存储单元存储电子邮件记录(消息和元数据),并且需要保卫的数据操作(参见图1A,500)是读取和存储电子邮件消息。在这样的实施例中,可以通过响应于特定用户请求而导出的各种锁来控制所述数据操作的调用。因此,传感器锁和私钥锁可用于认证用户,工作和障碍锁可用于确保用户请求由多个实体等等验证。
作为最后一点,我们观察到使用传感数据来导出代表用户行为的模式并将后者用作锁定机制的概念可能比基于工作证明的锁具有更长的寿命。回想一下,后者是基于计算机在给定时间内可以完成的基本操作的最大数量(使用当前技术)。因此,可以估计任何计算机解锁这种锁所需的最短时间。随着计算机处理能力持续增强,执行解锁基于工作证明的锁所需的计算所需要的时间量将会减少。
另一方面,本文同时介绍的那种类型的基于传感器数据的锁仅仅依赖于用户行为,因此不受计算进步的影响。用户及其动作决定了锁的解锁,而不是计算机的速度。此外,由于工作证明锁和基于传感器数据的锁按照根本不同的原理运行,因此使用这两种类型来保护数据库中的数据是互补的。
说明性计算环境
可以在由计算机执行的计算机可执行指令(例如程序模块)的一般环境中描述本文介绍的主题的各方面。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本文介绍的主题的各方面还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理装置执行的。在分布式计算环境中,程序模块可以位于包括存储器存储装置的本地和远程计算机存储介质中。
而且,应注意,已经将一些实施例描述为被描绘为流程图或框图的处理。尽管每个处理可以将操作描述为顺序处理,但是许多操作可以并行或同时执行。另外,操作的顺序是可以重新排列的。处理可能具有没有包括在附图中的附加步骤。
所要求保护的主题可以使用标准编程和/或工程技术实现为方法,装置或制品,去产生软件,固件,硬件或其任何组合,以控制计算机实现所公开的主题。例如,所要求保护的主题可以被实现为嵌入有计算机可执行程序的计算机可读存储介质,该计算机可执行程序包含可从任何计算机可读存储设备或存储介质访问的计算机程序。例如,计算机可读存储介质可包括但不限于磁性存储设备(例如,硬盘,软盘,磁条......),光盘(例如,光盘(CD),数字通用盘(DVD)......),智能卡和闪存设备(例如,卡,棒,钥匙驱动器......)。然而,计算机可读存储介质不包括诸如传播信号之类的暂时形式的存储。当然,本领域技术人员将认识到,在不脱离所要求保护的主题的范围或精神的情况下,可以对该配置进行许多修改。
而且,如在本申请中所使用的,术语"组件","模块","引擎","系统","装置","接口"等通常旨在指代与计算机相关的实体,或者硬件,硬件和软件的组合,软件或执行中的软件。例如,组件可以是但不限于是在处理器上运行的进程,处理器,对象,可执行文件,执行的线程,程序和/或计算机。作为说明,在控制器上运行的应用程序和控制器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。
前述实施例描绘了包含在不同其他组件内或与不同其他组件连接的不同组件。要理解的是,这样描绘的架构仅仅是示例性的,并且实际上可以实现许多其他架构,其实现相同的功能。在概念意义上,实现相同功能的任何组件布置有效地"关联",使得实现期望的功能。因此,本文中组合起来实现特定功能的任何两个组件可以被视为彼此"关联",使得实现期望的功能,而不管架构或中间组件。同样地,如此关联的任何两个组件也可以被视为彼此"可操作地连接"或"可操作地耦合"以实现期望的功能。
Claims (31)
1.一种访问存储数据的方法,包括:
接收访问存储在数据存储单元中的数据的请求,所述请求要求由访问存储数据的系统执行的一个或多个数据操作;
响应于所述数据请求,导出一个或多个锁并将它们分配给数据操作中的一个或多个,各个锁控制对分配了相应锁的数据操作的调用;
所述导出部分地基于(i)从发出请求的用户获得的用户景况数据和(ii)包括请求的一个或多个属性的数据景况;
对一个或多个锁中的每一个进行解锁;和
在一个或多个锁被解锁之后调用所述一个或多个数据操作。
2.如权利要求1所述的方法,其特征在于,所述一个或多个锁包括需要执行一个或多个计算任务才能被解锁的工作锁。
3.如权利要求2所述的方法,其特征在于,所述计算任务中的至少一个包括找到一个随机数,使得当其被附加到预定输入值上时,用作产生预定目标输出值的计算上不可逆的函数的输入。
4.如权利要求1所述的方法,其特征在于,所述一个或多个锁包括一个或多个传感器锁,所述传感器锁中的至少一个是用于验证发出所述请求的用户的验证锁,其中所述验证锁是通过将从用户发出请求的智能装置获得的规定环境数据集合与先前获得的环境模板数据集合进行匹配来解锁的。
5.如权利要求4所述的方法,其特征在于,如果所述匹配超过了指定的置信等级,则规定环境数据集合与环境模板数据之间的所述匹配仅足以解锁授权锁。
6.如权利要求4所述的方法,其特征在于,所述规定环境数据集合代表用户的行为模式。
7.如权利要求6所述的方法,其特征在于,所述规定环境数据集合是在用户从智能装置发出请求之前的一段时间内,在滚动的基础上获得的。
8.如权利要求6所述的方法,其特征在于,所述环境模版数据在规定的时间段内获得的。
9.如权利要求1所述的方法,其特征在于,所述一个或多个锁包括障碍锁,所述障碍锁通过验证所有锁已被正确打开而被解锁。
10.如权利要求2所述的方法,其特征在于,所述一个或多个锁包括障碍锁,所述障碍锁通过验证所有锁已被正确打开而被解锁。
11.如权利要求10所述的方法,其特征在于,验证与所述工作锁相关联的所述一个或多个计算任务已经被执行包括,以规定的方式验证与所述工作锁相关联的所述一个或多个计算任务已经被执行,所述规定的方式至少部分地基于从发出请求的用户和/或请求的一个或多个属性获得的用户景况数据。
12.如权利要求11所述的方法,其特征在于,以规定的方式进行验证包括要求指定数量的网络节点独立地验证所述一个或多个计算任务已经被执行。
13.如权利要求10所述的方法,其特征在于,所述解锁和验证由计算节点的网络执行,所述计算节点执行不同于验证与所述工作锁相关联的一个或多个计算任务已经被执行的计算节点的一个或多个计算任务。
14.如权利要求1所述的方法,其特征在于,所述一个或多个锁包括用于验证发出所述请求的用户的私钥锁。
15.如权利要求2所述的方法,其特征在于,所述工作锁的强度至少部分地基于所述数据请求的性质、响应于所述请求的答案集的预期大小以及由执行所述一个或多个数据操作而产生的存储数据变化的幅度。
16.如权利要求9所述的方法,其特征在于,所述障碍锁的强度至少部分地基于系统策略、响应于所述请求的所述答案集的预期大小以及由执行所述一个或多个数据操作而产生的存储数据变化的幅度。
17.如权利要求4所述的方法,其特征在于,所述传感器锁的强度是至少部分地基于从用户行为以及网络和智能装置景况导出的规则来确定的。
18.如权利要求14所述的方法,其特征在于,所述私钥锁的强度至少部分地基于发出所述请求的用户的相应公钥。
19.如权利要求1所述的方法,其特征在于,所述请求的一个或多个属性是从由所述请求的性质、响应于所述请求的答案集的预期大小以及由满足所述请求而产生的存储数据变化的幅度组成的组中选择的。
20.如权利要求1所述的方法,其特征在于,所述用户景况数据包括从与所述用户发出所述请求的智能装置相结合或相关联的传感器获得的传感器数据。
21.如权利要求1所述的方法,其特征在于,所述数据操作是基本数据操作,并且还包括将所述请求转换为多个基本数据操作。
22.如权利要求1所述的方法,其特征在于,所述数据操作中的至少两个被分配了不同的锁。
23.如权利要求1所述的方法,其特征在于,所述一个或多个锁包括支付锁,所述支付锁要求用户使用数字货币支付费用以解锁所述支付锁,其中解锁支付锁所需支付的数字货币量随着支付锁的强度增加而增加。
24.如权利要求23所述的方法,其特征在于,所述支付锁的强度至少部分地基于用户景况数据。
25.如权利要求1所述的方法,其特征在于,所述导出还部分地基于所述用户和/或所述系统的其他用户的历史使用数据。
26.如权利要求1所述的方法,其特征在于,控制被分配了相应锁的数据操作的调用的各个锁防止被分配了相应锁的数据操作的调用,除非并且直到相应锁被解锁。
27.如权利要求1所述的方法,其特征在于,所述导出还部分地基于管理员供应数据。
28.如权利要求26所述的方法,其特征在于,导出所述锁包括导出多个锁并且指定所述多个锁被解锁的顺序,其中解锁各个锁包括按照所导出的锁强加的顺序解锁所述锁。
29.一种认证用户的方法,包括:
从要被认证的用户的网络相关活动收集操作数据的时间序列,所述操作数据代表用户与一个或多个网络和一个或多个智能装置的交互;
将所述操作数据的时间序列与先前获得的用户的网络相关活动的模板数据的时间序列进行比较;和
如果先前获得的模板数据的时间序列与操作数据的时间序列匹配到指定的置信等级内,则确定所述用户是认证用户。
30.如权利要求29所述的方法,其特征在于,所述操作数据的时间序列和先前获得的模板数据的时间序列包括从与一个或多个智能装置相结合或相关联的一个或多个传感器获得的环境数据。
31.如权利要求29所述的方法,其特征在于,所述用户的网络相关活动包括所述用户的社交网络活动。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662321302P | 2016-04-12 | 2016-04-12 | |
US62/321,302 | 2016-04-12 | ||
US201662355290P | 2016-06-27 | 2016-06-27 | |
US62/355,290 | 2016-06-27 | ||
PCT/US2016/062202 WO2017180185A1 (en) | 2016-04-12 | 2016-11-16 | Method and system for safeguarding stored data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109154952A true CN109154952A (zh) | 2019-01-04 |
Family
ID=59999495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680084594.6A Pending CN109154952A (zh) | 2016-04-12 | 2016-11-16 | 用于保护存储数据的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11625461B2 (zh) |
EP (1) | EP3443499A4 (zh) |
JP (1) | JP2019514113A (zh) |
KR (1) | KR20180133863A (zh) |
CN (1) | CN109154952A (zh) |
AU (1) | AU2016402395A1 (zh) |
WO (1) | WO2017180185A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022029A (zh) * | 2022-05-31 | 2022-09-06 | 四川易图天下信息科技有限公司 | 一种校园师生信息采集用云端加密上传系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
SG11201811010UA (en) * | 2016-07-29 | 2019-02-27 | Nchain Holdings Ltd | Blockchain-implemented method and system |
US10614039B2 (en) | 2017-04-04 | 2020-04-07 | International Business Machines Corporation | Testing of lock managers in computing environments |
WO2018215947A1 (en) | 2017-05-26 | 2018-11-29 | nChain Holdings Limited | Script-based blockchain interaction |
GB201720767D0 (en) * | 2017-12-13 | 2018-01-24 | Barker Trevor | Computer-implemented system and method |
CN110008031B (zh) * | 2018-01-05 | 2022-04-15 | 北京金山云网络技术有限公司 | 设备操作方法、集群系统、电子设备及可读取存储介质 |
US20230367785A1 (en) * | 2022-05-10 | 2023-11-16 | Huawei Technologies Co., Ltd. | System, method for improving efficiency of yang data model-based network devices |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208702A (zh) * | 2005-06-06 | 2008-06-25 | 甲骨文国际公司 | 计算机执行的认证和授权体系结构 |
US20090132828A1 (en) * | 2007-11-21 | 2009-05-21 | Kiester W Scott | Cryptographic binding of authentication schemes |
US20090319058A1 (en) * | 2008-06-20 | 2009-12-24 | Invensys Systems, Inc. | Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control |
US8498941B2 (en) * | 2000-07-06 | 2013-07-30 | David Paul Felsher | Information record infrastructure, system and method |
US20140289821A1 (en) * | 2013-03-22 | 2014-09-25 | Brendon J. Wilson | System and method for location-based authentication |
US20140335824A1 (en) * | 2013-05-13 | 2014-11-13 | Dennis Thomas Abraham | System and Method for Data Verification Using a Smart Phone |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231913A1 (en) * | 2010-03-17 | 2011-09-22 | State of Oregon acting by and through the State Board of Education on Behalf of Portland State | System and methods of determining computational puzzle difficulty for challenge-response authentication |
US8495720B2 (en) * | 2010-05-06 | 2013-07-23 | Verizon Patent And Licensing Inc. | Method and system for providing multifactor authentication |
US8793778B2 (en) * | 2012-08-31 | 2014-07-29 | Spamcaptcher Inc. | System for providing trusted user access of computer systems |
US9876775B2 (en) * | 2012-11-09 | 2018-01-23 | Ent Technologies, Inc. | Generalized entity network translation (GENT) |
US10470043B1 (en) * | 2015-11-19 | 2019-11-05 | Wells Fargo Bank, N.A. | Threat identification, prevention, and remedy |
US10318747B1 (en) * | 2015-12-30 | 2019-06-11 | Amazon Technologies, Inc. | Block chain based authentication |
-
2016
- 2016-11-16 WO PCT/US2016/062202 patent/WO2017180185A1/en active Application Filing
- 2016-11-16 EP EP16898860.8A patent/EP3443499A4/en not_active Withdrawn
- 2016-11-16 JP JP2018551298A patent/JP2019514113A/ja active Pending
- 2016-11-16 CN CN201680084594.6A patent/CN109154952A/zh active Pending
- 2016-11-16 US US15/352,861 patent/US11625461B2/en active Active
- 2016-11-16 KR KR1020187030243A patent/KR20180133863A/ko unknown
- 2016-11-16 AU AU2016402395A patent/AU2016402395A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8498941B2 (en) * | 2000-07-06 | 2013-07-30 | David Paul Felsher | Information record infrastructure, system and method |
CN101208702A (zh) * | 2005-06-06 | 2008-06-25 | 甲骨文国际公司 | 计算机执行的认证和授权体系结构 |
US20090132828A1 (en) * | 2007-11-21 | 2009-05-21 | Kiester W Scott | Cryptographic binding of authentication schemes |
US20090319058A1 (en) * | 2008-06-20 | 2009-12-24 | Invensys Systems, Inc. | Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control |
US20140289821A1 (en) * | 2013-03-22 | 2014-09-25 | Brendon J. Wilson | System and method for location-based authentication |
US20140335824A1 (en) * | 2013-05-13 | 2014-11-13 | Dennis Thomas Abraham | System and Method for Data Verification Using a Smart Phone |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022029A (zh) * | 2022-05-31 | 2022-09-06 | 四川易图天下信息科技有限公司 | 一种校园师生信息采集用云端加密上传系统 |
CN115022029B (zh) * | 2022-05-31 | 2024-05-28 | 四川易图天下信息科技有限公司 | 一种校园师生信息采集用云端加密上传系统 |
Also Published As
Publication number | Publication date |
---|---|
US20170293747A1 (en) | 2017-10-12 |
JP2019514113A (ja) | 2019-05-30 |
KR20180133863A (ko) | 2018-12-17 |
AU2016402395A1 (en) | 2018-08-23 |
EP3443499A1 (en) | 2019-02-20 |
US11625461B2 (en) | 2023-04-11 |
WO2017180185A1 (en) | 2017-10-19 |
EP3443499A4 (en) | 2019-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154952A (zh) | 用于保护存储数据的方法和系统 | |
Hassan et al. | Differential privacy in blockchain technology: A futuristic approach | |
Andrew et al. | Blockchain for healthcare systems: Architecture, security challenges, trends and future directions | |
US10530577B1 (en) | Systems and methods for biometric key generation in data access control, data verification, and path selection in block chain-linked workforce data management | |
US11146394B2 (en) | Systems and methods for biometric key generation in data access control, data verification, and path selection in block chain-linked workforce data management | |
CN109450638A (zh) | 基于区块链的电子元器件数据管理系统及方法 | |
CN111919417A (zh) | 在基于云的计算环境中用共识管理为分布式分类账技术实现超级社区和社区侧链的系统、方法和装置 | |
CN109583885A (zh) | 回合控制可重写区块链 | |
CN112131254A (zh) | 用于区块链分类账的sql处理引擎 | |
Wu et al. | A blockchain based access control scheme with hidden policy and attribute | |
Kayikci et al. | Blockchain meets machine learning: a survey | |
Rawat | Secure and trustworthy machine learning/artificial intelligence for multi-domain operations | |
CN113779617A (zh) | 基于状态通道的联邦学习任务可信监管与调度方法及装置 | |
Bore et al. | Promoting distributed trust in machine learning and computational simulation | |
Bruschi et al. | Tunneling trust into the blockchain: A merkle based proof system for structured documents | |
Neloy et al. | A remote and cost‐optimized voting system using blockchain and smart contract | |
Kumar et al. | Designing a secure E voting system using blockchain with efficient smart contract and consensus mechanism | |
Atlas et al. | Applications with blockchain technique | |
Dorri et al. | Blockchain for Cyberphysical Systems | |
Kaidalov et al. | Ethereum classic treasury system proposal | |
Wibowo et al. | The utilization of blockchain for enhancing big data security and veracity | |
Kumari et al. | Blockchain-based secure and smart healthcare IoT system using hybrid consensus mechanism with an honest block | |
Saeed et al. | Iraqi Paradigm E-Voting System Based on Hyperledger Fabric Blockchain Platform. | |
Yan | Multigranulations rough set method of attribute reduction in information systems based on evidence theory | |
Ramya et al. | A Hybrid Proof of Stake-Trust Block Chain Model in Pervasive Social Networking for E-voting System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190104 |
|
WD01 | Invention patent application deemed withdrawn after publication |