CN109154971B - 数据的完整性的验证 - Google Patents
数据的完整性的验证 Download PDFInfo
- Publication number
- CN109154971B CN109154971B CN201780031290.8A CN201780031290A CN109154971B CN 109154971 B CN109154971 B CN 109154971B CN 201780031290 A CN201780031290 A CN 201780031290A CN 109154971 B CN109154971 B CN 109154971B
- Authority
- CN
- China
- Prior art keywords
- hash
- data
- chain
- new
- record
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- 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/602—Providing cryptographic facilities or services
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种允许对添加到在计算机上存储的初始多个唯一数据项的数据进行认证的计算机实现的方法,所有数据项通过单向函数转换成相应的等长唯一摘要(或散列);以及散列被存储为链接数据集,其中每个连续散列的值取决于与从最近添加的数据的散列产生的新散列组合的先前散列的值。链接数据集(散列链)中的最近散列值是它们原始序列中所有先前散列值的累积结果,数据集中的每个散列值对于最近添加的数据是唯一的。在计算新散列之前,通过将一个或多个预先存在的累积散列结合到源数据中来构造每个累积散列。因此,除非攻击者能够访问所有相关的源材料并了解哪些预先存在的散列与它们组合以及它们如何组合,否则没有对于修改现有的累积散列并重建链的尝试能够成功。
Description
技术领域
本发明涉及通过使用散列链来确认数据的完整性的方法和装置,以确认各个数据项的完整性并保护散列链的内部完整性。
背景技术
存在许多情况,其中需要验证数据的完整性,该数据可以包含在例如要在各方之间交换或要发布的文档或另一文件中。通常重要的是,这些数据在交换或发布时应该值得信赖 - 因此,用于验证数据完整性的各种技术(有时称为“认证”)已经使用了好几年。
在用于验证数据完整性的传统技术中,已知产生由一系列散列组成的散列链,这些散列源自源数据,并且每个散列链通过将链中最近创建的散列与新提交的源散列串联而创建,然后散列结果 - 然后成为新的“链中最近(或最后)散列”。
这种简单的串联通常仅用于能够访问其散列对链做出贡献的每个文档或数据项的组织。组织可以使用链来确认每个此类文档都保留了其完整性(或者,替代地,某些内容已发生变化)。此外,如果链中间的数据丢失或被非法修改,则链的其余部分无法重建,除非在其他地方保留了原始单个源散列的单独记录,使得非法修改的保护失效和无效。
为了创建更广泛有用的散列表,EP1678666B1描述了一种系统,其中各个源散列是可公开搜索的,并且通过在信誉良好的记录日志中广泛分发其日末散列来保护该表。使用此系统意味着任何第三方都可以通过确认其存在于中央数据库中的散列并确认当天的数据与其打印的散列匹配来验证数据。这也意味着可以检测到在打印发布之前更改已记录的散列的尝试,因为验证将失败。
更详细地,EP1678666B1公开了一种允许数据认证的(计算机实现的)方法,其包括以下步骤:存储多个数据项的复制,在预定时间段结束时生成包括所述多个存储数据项中的每一个的相应散列值的第一数据文件,并且生成从所述多个存储数据项的所述散列值导出的第一数据文件的单个散列值,然后经由信息技术通信网络,将所述单个散列值发送到远程位置;在远程位置创建第二数据文件,该第二数据文件包括单个散列值和与单个散列值有关的一个或多个附加数据项,并在信誉良好的日志(或记录日志)中发布第二数据文件,发布的第二数据文件例如,允许再生第一数据文件的单个散列值,并重新转换为第二数据文件,以与先前创建的第二数据文件进行比较。
在刚刚描述的已知方法中,对于给定的审计周期,一批数据中的每一个产生一批散列值,并且基于该批散列值生成单个散列值。将单个散列值被发送到接收器,其中为旧的审计周期产生数据文件,该数据文件包括单个散列值和与单个散列值有关的一个或多个附加数据项。然后,为该数据文件生成识别散列值,该识别散列值在旧的日志中发布,因此允许在稍后的日期验证数据文件的日期。
这种认证方法可以在商业上获得,例如在www.codelmark.co.uk/about网站上描述的。通过该网站以CODEL(CODEL是注册商标)名称提供的服务允许作者生成作者生成的数据的唯一“指纹”,其中从数据生成散列值(生成的散列值对于该数据是唯一的),并且该散列值存储在数据库中,在该数据库中,希望在读取数据之前或之后验证数据的个人可以访问该散列值。
产生散列值的过程可以被认为是不稳定的,即使对数据的小的改变也不可避免地产生对散列值的(显著的)改变。这意味着散列值可用于验证特定时间点的数据完整性;即使只是对数据进行一些小的更改,例如放置到文档中的句号或逗号,也会对生成的散列值产生很大的变化。
对生成的数据的操纵可能对某些方有吸引力,因此散列值的操作也是有吸引力的,因为它是可以在第三方试图“修改”那个数据及其相关的散列的情况下用于断言数据的完整性的散列值。
当在各方之间交换数据以便例如在线发布该数据或将该数据分发给更广泛的观众时,数据的作者或制作者可以选择使用上述“Codel”服务来注册该数据以便生成读取器可以使用的数据的散列值,以验证数据的完整性以及使用该数据使用那个散列值注册的时间。
依赖于这样的散列值,作为完整性的证明,意味着任何非法的修改相关数据源的尝试必须伴随着修改其注册散列值的尝试,以便维持任何欺骗。这需要攻击中央数据库。这种攻击有可能在最近一天结束散列发布后的一段时间内成功。在该点与下一个发布之间创建的所有记录都可能被攻击者在数据库的控制下更改,而不会被检测到。从任何给定散列的注册到它可以被信任的点的时段在该字段中被称为验证延迟。只有在一天结束后,散列才会在信誉良好的日志中打印,才能安全地信任当天注册的记录。
接下来,当前安排的问题之一,例如在上述EP1678666B1中描述的问题,是很难判断正在注册散列的服务器是否在印刷出版物之间受到攻击。由于这种困难,服务器的用户可能继续向服务器注册新的散列,而不知道它已被泄露。对服务器的攻击可能会试图对注册数据进行未经授权的修改或撤销。因此,非常希望尽早识别正在进行的攻击。
在上述EP1678666B1中描述的系统的另一个问题是确认一天的数据与其在信誉良好的日志(或记录的日志)中的打印散列相匹配的动作不是一个简单的过程。
此确认对于完整的正式验证至关重要,以证明数据库本身未经过修改。在原始设计中,通过获取给定日期的所有数据的复制并确认当对集合进行散列处理(带或不带链)时,结果与记录的日志中的复制匹配,这正式实现了这一点。但是,大多数寻求验证的各方甚至不考虑自己验证主机表,而是依赖数据库的主机代表他们在主机服务器上执行此类检查。但是,这种依赖性未能解释潜在的攻击者可能已经获得对主机服务器的非法或未经授权的控制,甚至主机本身可能已经腐败。
使用已知的验证方法可能存在实际障碍,特别是对于较旧的数据,因为收集数据和查找记录日志的相关印刷出版物的复制的过程可能需要数天或数周 - 即使修改最终会暴露出来,攻击者可能早就不知道他们的欺骗行为了。
因此,本发明的主要目的是通过保证检测(通常在几秒钟内)来减少对增长链的此类攻击的机会窗口,并且使得可以对数据库上的任何项目进行完全验证,而不管它的年龄,通常在一分钟左右。
这大大减少了攻击者的机会窗口,并且只有在非常短的时间内完成攻击并且只有在短时间内攻击者能够阻止将新记录从源添加到链的所有尝试不受攻击者的控制时才能使攻击成功。这种阻止将不可避免地中断正常服务,这将使攻击高度可见。
与上述EP1678666B1中描述的方法类似,本发明提供了一种允许验证数据完整性的计算机实现的方法和系统。
发明内容
根据本发明的方法包括计算机实现的方法,该方法允许通过参考存储或记录在至少一个计算设备上的多个唯一数据项来验证数据的完整性,其中每个这样的数据项是对各个数据操作单向函数以创建相应的等长唯一摘要并将每个新摘要与其前任组合的结果(通过这样的单向函数创建这样的摘要这里称为散列,并且各个结果摘要在这里作为散列);然后将散列作为链接数据集存储在计算设备上,其中每个连续散列的值(第一散列除外)取决于(例如通过串联或按位排除的OR操作)与由其本身已与不同的先前散列组合的新数据散列产生的新散列组合的先前散列的值,其中数据集中的最近散列是其原始序列中所有先前散列的累积结果(包括此类累积结果的链接数据集在本文中称为散列链,并且散列链上的累积散列在本文中称为HASH_LINKED),数据集中的每个散列对于最近添加的数据是唯一的。
如所指出的,使用至少一个计算设备;在一些实施例中,计算设备可以是单个计算设备,或者在其他实施例中,计算设备可以是被布置或编程为一起操作的多个计算设备。
本发明还包括适用于实施根据本发明的方法的装置,该装置包括:
至少一个包含多个数据源的储存设备,
输入,通过该输入可以将数据源的数据内容添加到储存设备,
处理器,被编程为通过参考存储或记录在至少一个计算设备上的多个唯一数据项来转换数据源的所有数据内容,该数据项是(i)散列相应数据源和( ii)将每个新散列与其前身相结合的结果,
处理器被编程为将散列存储为链接数据集,其中处理器将值应用于每个连续散列,该散列取决于与由其自身已经与不同的先前散列组合的新数据源的散列产生的新散列组合的先前散列的值;
处理器被进一步编程,使得数据集中的最近散列是其原始序列中所有先前散列的累积结果,并且使得数据集中的每个散列对于新数据源是唯一的。
在优选实施例中,散列链由以下顺序步骤产生:
(a)将已经记录在所述散列链上的至少一个HASH_LINKED,优选地3(如下所述选择)与新添加的数据源组合并对所得到的组合进行散列以产生新的散列(在此称为HASH_SALTED) ;
(b)将HASH_SALTED存储在至少一个计算设备上的数字数据存储(这里称为数据库中的表)中的新位置(这里称为新记录中的字段);和
(c)在新记录中将每个新的HASH_SALTED与最近的HASH_LINKED组合并对该组合进行散列以产生另外的HASH_LINKED存储到相同新记录中的另一个字段,以便最近的HASH_SALTED和另外的HASH_LINKED在数据库中按位置永久链接;
步骤(a)至(c)在多次迭代中重复,其中在步骤(a)的每次重复之后,在新记录中将每个最近的HASH_LINKED与新的HASH_SALTED组合并散列以产生随后的另外的HASH_LINKED,存储在相同新记录中。
在本发明的第一优选实施例中,以周期性间隔,通过散列先前HASH_LINKED和包含自先前块确认以来创建的所有记录的文件的组合来创建另外记录(在此称为块确认记录),以便创建新的HASH_SALTED以存储在存储的散列链内的预定位置处的新记录中;其中新HASH_SALTED的值与散列链上最近的HASH_LINKED组合,以生成存储在相同新记录中的新的最近HASH_LINKED。
刚刚描述的实施例被认为是新颖的,其特征在于,递归地使用散列链来保护散列链的各部分。
在本发明的第二优选实施例中,以下列一种或多种方式随机验证每个连续HASH_LINKED的产生:
(i)通过代理,可能是虚拟的(数字的)或人类的,试图认证任意数据项;
(ii)通过代理被编程以执行随机验证;
(iii)通过代理(例如对等网络的成员)执行周期性的或随机验证;或者
(iv)通过代理增加新记录;使得验证至少以与步骤(a)至(c)的迭代相同的频率发生,并且如果验证动作产生否定结果则引发警报消息。
该实施方案本身也被认为是新颖的,因为它确保至少在更新时检测链完整性。
在本发明的第三优选实施例中,散列链中的最近HASH_LINKED进一步与即时创建的数据项(例如数字图像)组合,其中所得到的组合被散列以形成新的HASH_SALTED,其又被存储在数据库或第一可用机会的另外数据库。该实施例也被认为是新颖的,因为它显著减少了在登记之前操纵图像的机会。
在一些实施例中,优选地,HASH_SALTED还包括短串随机数据。这种短串随机数据在本领域中已知为加密SALT;这种短的串在本文中称为“SALT”。
每个HASH_LINKED至少一次被结合到后续数据中,其结果HASH_SALTED随后被结合到散列链中。
根据本发明的方法的实施例还可以通过包括典型的块、一天的结束(或会话结束)、散列链中的确认记录,快速验证累积散列链的相关元素的完整性,为了确认散列链的任意部分的完整性,从而支持在散列链上注册的任意源散列的有效性。
根据本发明的方法的实施例可以进一步确保中央服务器(其可以采取由主要提供商的集群托管的集中式服务的形式,形成可以被称为“超级对等”网络或高度优化的对等(对等) P2P网络)通过如下来保护免受内部攻击:通过P2P网络使用适当的本地客户端软件连续监控和测试中央服务器的性能以测量服务器的响应时间并确认客户端持有的数据和保存在中央或远程服务器上的数据之间的一致性。
本发明可以概括为“线程散列链”,其中两个关键特征将得到的散列链与先前(已知)散列链区分开。首先,当它们的各个散列值在包含在增长的散列链中之前被计算时,散列链的早期元素与新的本地源数据组合。这种机制显著阻碍了内部攻击链的企图。其次,周期性的“确认”记录,有点类似于已知的“块链”概念(尽管具有根本不同的起源和目的)可以以固定间隔添加到散列链。例如,可以通过预定的固定时间段或预定的固定数据量来定义这样的间隔。
这些确认记录可以提供验证散列链中任何记录的能力,无论这些记录是否陈旧,包括链本身保持完整的关键验证,最多只能在几分钟内完成,最好在几秒钟内完成。
除了对散列链的这些修改之外,对等(P2P)网络还可以提供中央或远程服务器的监护者的角色。
进一步的结果是,根据本发明的方法的实施例能够显著增加关于即时创建或捕获的数字数据(例如由数码相机捕获的图像)的有效性的可信度。
通过在散列链上缠绕具有最近累积的散列值的图像,并且一旦拍摄图像就上传这种缠绕的图像的散列值,或者在之后的第一可用机会上,根据本发明的方法可以证明必须在第一和第二散列值的相应时间戳指示的时间之间拍摄给定照片;这可以大大减少相机外任何图像处理的可用时间。
最后,根据本发明的方法的实施例可以基于广泛采用的公证文档(其数据完整性受修改的散列链保护,反之亦然),帮助实现类似的信任级别(对于数据的完整性)。每个经过公证的数据源都可以在很小的程度上被视为其自己的“记录日志”,其中携带适合于相关公证人的信任。但是,这种公证数据的收集形成了一个重要的信任池,可以及时被认为是与传统的记录日志相当甚至更优。因此,作为根据本发明的方法的结果获得的分布式数据有助于保护中央数据存储。
根据本发明的方法可以被认为相对于上述EP1678666B1中描述的方法和标准散列链以三种主要方式被修改为,如下:
1在散列链上的包含被修改之前准备个体散列的方式;特别是来自散列链的预先存在的散列与每个新数据项组合以便创建其后续散列。
2将周期性的“确认记录”添加到累积散列链的方式,该方法验证每日打印确认之间的多个记录块,并能够快速验证相关数据项和散列链本身的完整性。
3服务器的性能、内容和时间准确性的对等(P2P)监控的实施,以便识别最早的攻击迹象。
这里使用的术语“散列链”是指数据库中的主表,其将包含一系列包括许多字段的记录,其中一些字段在下面描述。
关键字段包含通过将存储在先前记录中的累积散列与新记录的经修改的源散列(HASH_SALTED)组合并对该组合进行散列以创建新累积散列的过程所达到的累积散列值。这是上面提到的HASH_LINKED。
附图说明
现在将参考附图以示例的方式描述本发明的优选实施例,其中:
图1是其中在创建要添加到链中的新散列之前将来自散列链的现有散列结合到数据源中的本发明的实施例的示意图;
图2是表示根据本发明优选实施例的以固定间隔创建块确认记录的示意图。 和
图3是其中通过示例的方式将最近的散列结合到数字图像中并且结果被散列以存储在散列链上的本发明的实施例的示意图。
具体实施方式
图1显示了从左侧列的顶部向下、然后从左侧列的底部到右侧列的顶部,然后从右侧列的顶部向下的序列;和
图2和3显示了从柱顶向下的各个序列。
再次参考图1,这显示了以作者的数据源开始的一系列操作。
从散列链中检索现有的HASH_LINKED(如上所述),然后与来自数据源的数据组合。结果被散列以产生HASH_SALTED,然后将其存储在散列链中的新记录(记录R)中。
然后,紧接在前的记录(即记录R减1)中的HASH_LINKED值与记录R的HASH_SALTED组合,并且新的散列组合(新的HASH_LINKED)存储在记录R中。
再次参考图2,这示出了导致以固定间隔创建块确认记录的一系列操作。
首先,设置预定的固定间隔(例如,基于块长度L)。
第一块包含L个记录并在记录R结束。后续块从R + 1开始并包含下一个L记录。然后在完成时将每个块复制到文件中。然后从最近的L个记录的块(记录R减去L)之前的最后一个记录中检索HASH_LINKED值,并将其与块文件数据组合并作为组合进行散列以产生HASH_SALTED。然后,在等待L个新记录的另外块的一段时间之后,结果被存储为下下一个块中的第一记录,其应该是记录R加L加1。
再次参考图3,这示出了一系列操作,其将最近的HASH_LINKED结合到即时数据(在这种情况下是数字图像)中,以便在散列链上存储新的HASH_SALTED。
具体而言,相机可以访问适当的客户端软件,并最近的HASH_LINKED被检索。然后对文件空间进行加密,在相机中拍摄照片,并将得到的图像存储在加密文件空间中。结果然后被散列以形成HASH_SALTED,其以最早的机会以上述方式存储在散列链上。
虽然根据本发明的方法中的所有散列通常将通过使用相同的散列算法(例如SHA256)来创建,并且在这个意义上它们将是相同类型的散列,我们需要参考各种散列。通过它们的功能或角色,我们现在就定义它们。
在下面和前面的描述中,术语“本地”应用于为方法和系统的用户提供的操作、步骤和设备,他们可以在任何时候希望验证数据的完整性,而“远程”应用于服务器或数据库,其可以与本地用户物理分离,并且通过信息技术通信网络允许来自本地用户的连接。
散列链上的标准记录将包含许多字段。功能上最重要的三个将被多次提及,并且为了本文件的目的,它们被称为如下:
HASH_SOURCE - 我们试图保护的源文档或数据项的散列值; HASH_SALTED - 如上所定义; HASH_LINKED - 如上所述。
在注册新数据内容的过程中,包括向数据库添加新记录并计算新的HASH_LINKED,我们以对本发明至关重要的方式明确使用早期的HASH_LINKED。
优选实施例的特征在于由共同操作“超级对等”网络的至少一个(优选地很多)互联网服务器托管的集中式远程服务,但是我们将简称为“服务器”。这并不排除将服务完全托管在更传统的P2P网络上,只要在这样的网络上可以实现所需的性能即可。
希望保护其源数据完整性的作者、所有者或发布者(我们可以互换使用的术语)使用软件客户端来执行下述任务。在需要用户选择的情况下,客户向作者提供选择,并且可以在适当的情况下提供进一步的选项,以使选择响应成为默认,以便将来的注册自动地超过该点。
从这里开始,应该理解,除非用户动作被明确说明,否则所描述的任务都是由远程服务器上的软件或本地客户端执行的。
使用线程散列链保护服务器免受内部攻击
第一部分描述了数据的基础结构,以及添加新记录的过程如何帮助保护散列链免受最危险的潜在攻击 - 攻击者已经完全控制了服务器。
现在将定义和说明与优选实施例相关的一些其他术语。
HASH_PREVIOUS是指从尚未与后来的源组合以创建新的HASH_SALTED的最近添加的HASH_LINKED集合中提取的散列。它们以“先进先出”的方式分配给新注册,因此它始终是队列中第一最早的。
HASH_PRIOR - 指的是已经被结合到以后的HASH_SALTEDs中至少一次的任何HASH_LINKED,因此必须在那些仍在等待将来包含在未来记录中的HASH_PREVIOUS记录之前。
Pseudo-SALT指的是优选地将与源数据组合以便创建HASH_SALTED的两个HASH_PRIOR、单个HASH_PREVIOUS和可选的SALT(见上文)的集合。
添加到链中的每个新HASH_SALTED将通过将相关源数据与其Pseudo-SALT相结合来创建。选择名称(Pseudo-SALT)以在功能上将其部分相似性与“传统”加密SALT相呼应,以及识别在不使用加密SALT的情况下,伪SALT不如“真”SALT那样完全保护。“真”SALT主要用于增加攻击者“暴力破解”的难度(用于描述发现加密数据的密钥的过程或者通过尝试每种可能的解知道找到正确的答案来获取加密散列的源数据的字段术语)一个可猜测的未加密文件以及这个仍然是在Pseudo-SALT中包含可选SALT的可能原因。也就是说,受保护的一些源数据可能需要保密,但是,作为可猜测的未加密文件(例如,从投票单上非常有限的选择中选择候选者)需要通过添加SALT模糊其散列的来源来保护。
在这种情况下,这是必要的,因为虽然仅仅包含HASH_PRIOR和HASH_PREVIOUS会部分模糊敏感数据,但它们来自有限的人口,因此本身就是可以猜测的,尽管猜测需要攻击者付出相当大的努力,特别是如果Pseudo-SALT在整个源中随机部署。
然而,以Pseudo-SALT的形式包含早期HASH_LINKED(即HASH_PRIORs)的主要目的不是要打败对源的暴力攻击。它是打败对散列链本身的攻击,如下所述。
在散列之前将Pseudo-SALT元素插入到源中完全是任意的,并且可以由每个作者自己确定。元素甚至不需要保持在一起,因此可以在整个源中随机分散。然而,本地客户端存储确切包含Pseudo-SALT的方式和位置的详细信息至关重要,这样当客户端将数据(和Pseudo-SALT)传递给依赖方时,它们可以包含有关如何与数据组合的说明以便重新创建HASH_SALTED并验证它是否包含在散列链中。
HASH_PRIOR将从已在散列链上发布的HASH_LINKED中随机选择。优选地,选择将遵循以下规则:HASH_PRIOR之一将从过去24小时内(优选地在最近的打印截止期限之前)添加的HASH_PRIOR中随机选择,并且将在该发布之前从日终记录中随机选择一个。
重要的是,从最近的印刷出版日期之前发布的那些中明确选择较旧的HASH_PRIOR,因为攻击者无法在没有检测的情况下进行修改。
24小时参考的相关性如下。首选客户端将是用户网络的完整P2P成员。因此,它们通常会保存在过去24小时内发布的散列链部分的本地复制,或至少与它们本地储存许可一样多。最小有用储存将是捕获前几分钟新散列链记录或10,000条记录所花费的任何,以较大者为准。
此外,客户端对等方将存储与本地存储许可一样多的日终记录。因为只需要不到两兆字节来存储大约100年的数据的每日记录,所以没有明显的理由说明为什么所有这些客户都无法托管所有创建的日终记录。这些记录包含HASH_LINKED,其与印刷出版物中出现的相同。可选地,对等方还可以存储所有日确认记录和所有块确认记录。这最终将导致对等方存储大约1%的完整散列链的1%(10,000个记录中的1个)。
本地P2P存储的目的有三个。首先,如果它们自己向散列链注册了一个新条目,它可以让它们随机选择它们的HASH_PRIOR,而无需参考或了解控制服务器的潜在攻击者。其次,它允许它们,无论是单独的还是集体的-通过随机比较彼此的条目-来验证服务器的散列链上的条目;第三,如果暂时失去对服务器的访问,可以由P2P网络提供有限形式的服务。
对于不能或不愿参与P2P网络的客户端,推荐的注册过程将涉及他们根据需要下载最近的散列链片段,以便能够选择他们的HASH_PRIOR。
片段通常包含来自散列链的10,000个最近记录,但很少构成“块”(见下文),因为它的边界几乎总是跨越块边界。理想情况下,对这些部分客户端的下载还将包括两或三百个日终记录,但这可能会根据本地带宽和流量问题而有所不同。目的是使得HASH_PRIOR的合理随机选择不会被攻击者太容易猜到。那些甚至避开最近片段(空客户端)的用户仍然可以随机选择他们的HASH_PRIOR,但他们无法对潜在攻击者隐藏他们的选择。
在所有情况下(完整、部分和空客户端),在他们登录以开始创建和上传新散列集的过程之后,当他们准备好完成散列过程时,他们将被服务器从其未分配的HASH_LINKEDs池分配HASH_PREVIOUS。
完整或部分客户端的主要作用是与P2P网络共享数据,涉及服务器的性能和响应时间。稍后将对此进行更详细的描述(请参阅“使用对等网络保护服务器”)。这里重要的一点是,在尝试向服务器提交新记录之前,它将轮询P2P网络以重新确保当前认为安全,因为没有证据表明服务器受到攻击。
假设继续安全,软件客户端将在所有情况下计算源数据的HASH_SOURCE。第一目的是在其先前注册的本地表中检查当前源尚未注册。但是,将HASH_SOURCE提交给服务器是可选的。作者可能不希望发布HASH_SOURCE的原因有很多。
与上面的示例一样,数据可能是保密的,但是来自有限的未加密文件集,这可能很容易被暴力破解。或者作者可能希望确保任何希望验证数据的人都被迫与作者联系。如果源和HASH_SOURCE都已发布,那将是不必要的。但是,如果在HASH_SOURCE未发布时发布源,则如果需要验证,则只能通过联系作者或发布者来获取执行完全验证所需的pseudo-SALT(和嵌入指令)来执行。此类限制可能在如下方面是有用的:例如,控制对新在线帐户的访问,或只能通过与卖方直接联系要求的商业“特别优惠”或“附加物”,或确保只有授权实体能够验证相关数据,或者验证相关数据的每次尝试本身会被跟踪,等等。
相反,如果计算,HASH_SALTED将总是被上传。但是,允许某些作者可能需要注册源但没有可用的客户端软件。某些应用可能不需要HASH_SALTED提供的保护。例如,摄影师可能希望自动提供出于版权目的而创建图像的时间的证据,而不仅仅是当它在散列链上注册时。这需要专门使用涉及稍后描述的较弱形式的HASH_SALTED的散列链数据(参见“证明瞬时数字捕获设备的创建时间”)。
它们不需要使用普通HASH_SALTED提供的保护,尽管它们仍然可以选择使用它,因为每次使用HASH_SALTED都会增加对散列链的整体保护。在没有HASH_SALTED的情况下注册的数据仍将受到散列链的保护,但它不会为散列链提供相互保护。
创建HASH_SALTED并使用它在散列链中创建下一个HASH_LINKED的目的是使对散列链的任何直接攻击都不可能隐藏足够长的时间以使攻击成功用于欺骗目的。对散列链的直接攻击可能实现的唯一重大影响类似于服务的拒绝,即对正常服务的中断。
可以合理地假设大多数攻击的目的是创造和维持一种有利可图的欺骗,这种欺骗可以持续足够长的时间以诱骗受害者遵守规定。由其他考虑因素(例如服务的拒绝)驱动的攻击不是本发明的焦点。他们需要其他对策。对于那种我们担心成功的内部伪造攻击,我们必须假设攻击者完全控制服务器,并且可能是一个或多个源文档或数据,其内容需要修改才能产生欺骗。他们攻击散列链的目的是为他们的修改提供可信度。
在本发明之前,对于日志保护的散列链或散列表的这种攻击对于自最近的印刷出版物以来添加到散列链或散列表的所有数据都是合理的。
控制此类散列链服务器的攻击者可以用自己的散列链替换所选的现有HASH_SOURCE,并且由于用于编译散列链的所有后续HASH_SOURCE都是可见的,因此它们可以重新创建链。即使外部观察者怀疑是攻击,他们也不能轻易证明这一点。
如上所述,印刷出版物之间存在一段时间的脆弱性,即在信任链确认的数据尚不完全安全的时期。在此期间,所有散列链和块链都很容易受到攻击。
如上所述,对于任何给定项目,其在散列链上的注册与其可被信任的点之间的时段在字段中称为验证延迟。
通过印刷出版物,该期限可达24小时。相比之下,块-链验证延迟保持在6到60分钟之间,具体取决于依赖方对给定交易的置信度所需的确定性水平。
这些延长的不确定时期之前已经使得基于散列的完整性保护不适用于许多目的,例如,高速金融交易。
本发明的主要优点是将验证延迟减少到几秒钟,这将该技术带入到大多数金融交易的范围内,甚至大多数需要实时验证的认证过程。通过从使用HASH_SOURCE构建链转换到使用HASH_SALTED,可以显著减少延迟。
这会迅速使攻击者的任务变得难以处理,并且直接导致散列链在“实时”中更具可信度。
攻击者可以访问他们需要修改的目标数据,并访问散列链,因此我们必须假设他们仍然可以看到所有(已发布的)HASH_SOURCE和HASH_SALTED,但他们在他们已经成功修改记录后不再能够执行对于多于链中的一个或多个链接的所有条目必要的散列链的重新计算。
为了理解原因,让我们从链中的下一个链接开始-在攻击者试图改变的项目之后。它自己的HASH_SALTED不太可能受到攻击的影响,因为被攻击的HASH_LINKED太接近它而不能被用作HASH_PRIOR或者,除非注册率非常低,被攻击的HASH_LINKED太接近而在计算自己的HASH_LINKED中不能是HASH_PREVIOUS。因此,攻击者可以成功地将HASH_SALTED结合到重新计算散列链的尝试中。
但是,当攻击者移动到链中的下一个HASH_SALTED时,现在存在如下的很小的可能性:他们刚刚攻击的HASH_LINKED原始版本在计算HASH_SALTED时可能已被用作HASH_PREVIOUS。
虽然他们仍然可以忽略该问题并重新计算散列链以包含下一个HASH_SALTED,但是也还存在执行对散列链的该部分的验证的任何人将失败然后发出警告的小风险。
当我们进一步向下移动链时,击中取决于现在修改的HASH_LINKED的一个的HASH_SALTED的概率迅速上升到值1(确定性)。具有讽刺意味的是,注册率(向生长链添加新记录的过程)越低,在该概率达到1(一)之前潜在妥协的HASH_SALTED的数量越少。
因此,鉴于在低使用率期间,注册可能需要不到几秒钟,如果项目以每五(5)秒一次的速率注册,则攻击者遇到的第二HASH_SALTED必须包括他们刚刚修改的HASH_LINKED,此时他们的重新计算将失败,除非他们也可以访问相关的源数据。
相反,如果注册以每秒一千的速率发生,则可以想象对于可能一千个新记录攻击者可能不会遇到依赖于他们自己的攻击的散列的HASH_SALTED。
关键数字是包含未分配的HASH_PREVIOUS记录的服务器保存的池或缓存的大小;反过来,其仅部分依赖于注册速率和服务器可以处理它们的速率。现代服务器具有巨大的容量(例如,某些信用卡交易目前正以每天超过2亿的速度处理,每秒超过2,000个)。然而,可能的瓶颈是客户端将使用池数据的速率。HASH_PREVIOUS无法从池中删除,直到服务器从客户端收到完整的记录(确认它已经被分配和使用),并且客户端的响应可能会被客户端发生的事件任意延迟。
因此,该池确实反映了“待定”注册的数量,其中客户已启动注册但尚未完成注册。无论如何,无论这个数字是什么,一旦攻击者在链中重新创建了相同数量的新链接,他们必须创建新的链接,这将任何验证的尝试失败。
这是因为,攻击者不仅不知道哪些HASH_PRIOR(或者甚至是HASH_PREVIOUS,尽管这些本身就更具有猜测性)已被结合到正在进行的HASH_SALTED中,但即使他们这样做,他们也无法对他们也没有完全访问和控制(这将是散列链保护的大多数其他数据)的任何源数据执行必要的重新计算。
由于认识到HASH_PREVIOUS池大小的关键作用,服务器将重新发出在例如10秒或20秒内尚未被持续注册“消耗”的任何HASH_PREVIOUS。
这是因为将HASH_PREVIOUS结合到未来的HASH_SALTED中的次数并不重要。重要的是它们全部被使用,并且最好尽快使用,以限制攻击机会窗口。因此,如果由于某种原因,持续注册没有在几秒钟内完成,服务器将简单地重新发出待处理的HASH_PREVIOUS到备选注册,期望这个重复过程将最小化任何HASH_PREVIOUS保持不到几秒钟未使用的机会。这可确保攻击者必须在类似时间段内生成的记录数内击中已使用的HASH_PREVIOUS的障碍。
但是,攻击者的修改的散列链将无法检查的事实仅在链被检查时才有意义。本发明的另外两个方面确保检查必须至少以与注册相同的速率进行。首先,没有注册被结束,直到包括作者的新记录的链的相关片段已被客户检查以确保链保持完整,通常来自构成最后公布的日终记录的记录。其次,用户批准的闲置客户端将周期性的对链的所有部分进行随机检查。
此时作者的提交已经被注册,并可以被视为“等待确认”。可能不会将其视为“已确认”,直到将自己的HASH_LINKED(作为HASH_PREVIOUS)结合到以后的HASH_SALTED /LINKED记录中。这可以在服务器上通过在后面的记录或链接的元数据中包含HASH_PREVIOUS(见下文)以及作者的待处理记录的任何相关元数据中的后面的HASH_LINKED的镜像条目来确认。
这个步骤或类似的步骤可能是必要的,以便击败攻击,其中攻击者故意隐瞒一个或多个选定的HASH_PREVIOUS,以便通过例如延长他们进行攻击具有的时间或选择性地扣留他们计划合并到修改后的条目中的HASH_PREVIOUS来更容易地攻击目标文档。通过确保“确认”依赖于记录后来的结合,可以很容易地设置警报,如果确认需要超过预期的几秒钟,则触发警报。
对于完整的P2P客户端,注册通常涉及链接测试,该测试以最近打印的记录(先前的日终记录)开始,并一直进行到链的末尾。
由于大多数数据已经由客户端持有,客户端可以在任何时候拦截不断增长的链 -在线 - 以确认它仍然与他们自己的记录匹配,并且新记录也符合。自上一个午夜以来支票的离线部分只会花费客户端一或两秒钟。
完成在线验证将需要更长时间,因为它受到正常网络延迟和与其他用户的争用,但对于现代服务器,检查自最近客户端更新以来可能已添加的几百或一千条新记录仍应仅花费几秒。
鉴于成功的系统也将受到寻求在正常业务过程中验证数据的第三方的随机任意检查,因此可以合理地得出结论,即使在任何时候,即使是相对较少数量的活跃用户(比如,超过几十个),没有这种攻击散列链的尝试可能无法在几秒钟内被检测到。
这意味着没有攻击可以成功(在维持欺骗足以欺骗受害者的意义上),除非只需要保持欺骗的时间少于几秒钟。这排除了绝大多数潜在的攻击,因为如果依赖方甚至远程关注这样的风险,他们所做的就是等待几秒钟以确认没有进行此类攻击的P2P确认,然后重新检查在对他们刚刚验证过的任何信息采取行动之前,他们的数据仍然有效。
如果对确定性有更严格的时间限制是合理的,那么合作的依赖方(例如银行或股票交易商)可以安排协调一系列注册并实时分享结果,以证明在这种情况下的特定交易必须在没有成功攻击的情况下提交系列文件,因此一旦他们的共享结果得到相互确认,就可以信任它。这种安排的唯一速度限制是由网络的物理基础设施强加的,这意味着(使用当前可用的最大和最强大的互联网元素)验证延迟可以减少,重要的是,至多,几毫秒。
快速验证历史记录
本节将说明如何结合上述过程,再采取一些步骤,以便随后在几分钟内(而不是数天或数周)内验证受链的任何部分保护的任何数据的完整性。
首先,我们需要描述将以固定间隔添加到散列链的确认记录。在本说明书中,我们假设固定间隔是每10,000条记录,但如下所述,一天的结束也将被视为间隔的结束,因此每个新的一天将以其前10,000条记录开始形成当天的第一天的“块”。
10,000个数字不是任意的,但代表我们对块大小的最佳猜测,可以在合理的时间(5-10秒)内按需下载,在客户端给定合理的带宽,以及在服务器端进行合理的争用。
如果实际条件表明10,000太多或太少,可以实施一个简单的机制,以便在必要时每天调整块大小。例如,当天的第一记录可以包括对该天的块大小的引用。
服务器将按照以下几行简单的规则创建确认记录:
1、当达到第10,000条记录时,当前的HASH_LINKED被传递到服务器上的专用归档例程,该例程与服务器最重要的例程(散列链构建器)分开运行。
2、收到该信号后,归档例程将传回散列链构建器,它已经创建了先前块的记录(假设有一个,一旦链不仅仅是一个块长,将总是如此。散列链构建器将添加记录并将新的HASH_LINKED返回到存档例程,因此可以将其存储在其记录的复制中。此过程的重点是避免任何延迟散列链构建器的操作。可以想象,现代或未来的数据库架构将使这种任务分离变得不必要。同时,存档记录的构建可以在构建下一个块时进行,并且可以在下一个块的末尾返回到链构建器,以便它可以像任何其他块一样快地添加记录。
3、散列链构建器将使刚从归档例程接收的记录成为下一个块的第一记录,除非下一个块是新一天的第一块,在这种情况下,第一记录将是前一天的确认记录(见下文)和块确认记录将是当天的第二记录。这是任意的。记录的顺序可以颠倒或以其他方式确定。重要的是确定确认记录位置的规则是固定和已知的。
4、归档例程现在将对其创建的新块的复制进行散列并创建新记录,为下一个块结束信号做好准备,例如,如下所示:
4.1 HASH_SOURCE将是块的散列。
4.2 HASH_PREVIOUS将是先前块末尾的HASH_LINKED。
4.3 HASH_PRIOR将是倒数第三天结束时(前一天或前天)的HASH_LINKED。
整天的块确认记录全部使用相同的HASH_PRIOR这一事实不会带来很大的风险,因为对象不是混淆,而是与足够旧以使其受到打印的散列保护的数据缠绕。
4.4在此上下文中显然不需要加密SALT,并且pseudo-SALT被始终添加到块的末尾。
4.5具有添加的pseudo-SALT的块将被散列以创建其HASH_SALTED
4.6新记录存储在“日-块表格”中,稍后将用于创建日确认记录。当记录被提交给散列链构建器并返回新的累积散列时,其HASH_LINKED将在下一个周期更新。
5、现在,块及其pseudo-SALT将被提交到多个分布式WORM(写一读多)驱动器,以实现永久不可变存储。优选地,每个服务器位置或超级对等体将制作至少一个WORM复制,以便广泛分发存档。
6、日终过程略有不同。无需创建单独的存档或散列整天的注册,因为除了当天的最后一个之外,各个块已经被存档并单独进行散列。
当天的最后块就是最后存档块和午夜之间添加的内容。
与所有其他块完全一样它被归档和散列,除了它很少包含10,000个记录。例如,它的确认记录将成为新一天第二块的第一记录。
日确认记录由存档例程创建。它已经在其日-块表中拥有当天所有块确认记录的复制。
完成最后块之后,将其确认记录添加到日-块表,检查所有记录是否仍在散列链中,并创建一个新的确认记录,其中包含以下规则:
6.1 HASH_SOURCE将是日-块表的散列。
6.2 HASH_PREVIOUS将是前一天结束时的HASH_LINKED。
6.3 HASH_PRIOR将在之前一天结束时为HASH_LINKED。
6.4与普通块一样,不需要SALT,并且pseudo-SALT将始终被添加到数据的末尾。
6.5 与其pseudo-SALT组合的日-块表将被散列以创建其HASH_SALTED。
该集合随后也致力于WORM存储。日期认记录总是存储在散列链中的固定位置,例如第二天的第二块的第二记录,并且如上面(3)中所述,日确认记录也作为第二天的第一记录重复。
最后,保留了单独的日终记录和日确认记录表,其中包含迄今为止所有日终和确认记录的复制。随着每一天的结束,为每个表生成另外确认记录,并使用与日确认记录相同的HASH_PREVIOUS和HASH_PRIOR将其存储在散列链上的另一个固定位置。
这组规则是任意的,可能有更高效的版本。目标是继续将链的早期元素缠绕到新的确认记录中,这样如果攻击者成功修改任何条目,他们也无法成功地重新计算对链的其余部分的影响。确认记录构成关于散列链本身的数据,任何观察者或用户可以随时为自己确认。但最重要的是速度,利用该速度这些规则确保任何记录不仅可以被验证存在于散列链中,而且在一个块中其本身可以被链中的后续记录验证,并且该过程可以快速追溯到链末端的当前HASH_LINKED。
关键考虑因素是规则是固定的和公开的,因此客户端软件或甚至充分激励人类可以彻底测试各个记录、块和日之间的链接。通常,验证由散列链保护的数据的过程涉及下面描述的步骤。对等体还可以持有或创建他们自己的日终表和日确认记录表的复制,并检查他们的HASH_SALTED与服务器上的那些匹配。
提供给依赖方的数据和元数据允许它们(通常借助客户端软件,但如果有必要,没有它)遵循上述规则来执行以下操作:
1重建HASH-SALTED。
2在散列链上定位HASH-SALTED。
3下载嵌入其中的块。
4对块执行彻底的链接测试(请参阅下面第9点中的示例)。
5散列该块以获取其HASH_SOURCE。
6按照上述规则,找到它的HASH_PREVIOUS和HASH_PRIOR。
7计算其HASH_SALTED。
8在链上定位HASH_SALTED并确认它应该在哪里(下下一个块的第一记录)。
9对目标记录执行简单的链接测试(先前的块结束HASH_LINKED +确认记录HASH_SALTED应散列到确认记录HASH_LINKED),并且可选地,对目标记录之前和之后的小的随机数量的记录执行。
10跳转到当天第二块中的第二记录,执行链接测试,并(假设它保持链接)将其存储为“第0天确认记录”。
11跳至第三块的第一记录,执行链接测试并将记录存储在确认记录的本地日-块表中。
12跳转到下一个块的确认记录,测试链接,在本地表中存储记录。
13重复直到当天的最后块确认记录被存储(取自第二天第二块的第一记录)。
14散列本地日-块表以获取其HASH_SOURCE。
15使用上述规则,找到匹配的HASH_PREVIOUS和HASH_PRIOR,并使用它们创建其HASH_SALTED。
16在链中定位HASH_SALTED并确认它应该在哪里(第二个记录,第二个块,第二天)。
17跳回第二天第一记录,确认它与第0天确认记录匹配。
18将一条记录跳回到日终记录,并将其与客户端复制进行比较。
19(可选)将其与实际打印出版物(如果可用或者打印或在其他分布式数据库上)进行比较。
20当块及其日记录通过此类检查时,客户端可以可选择地向服务器提交“块确认”日期时间记录,该服务器将在散列-链交叉引用的末尾创建新记录返回相关的块结束记录,并在外来表中用最后确认日期时间标记相关记录。
需要引用“相关记录”,因为不允许对包含散列链的表中的任何记录进行修改,因为这会对块本身进行的任何散列检查无法进行任何后续块验证测试。但是,在散列链中运行相关的“外来”表没有明显的风险,可以通过散列链验证自己的条目和更改状态,并且在块被最后确认时可以保存这种有用的“元数据”。已经设想这样的相关表不仅在内部由服务器维护,而且在外部由组织自己使用散列链来验证他们自己的数据,例如所有权、到期日期、链接到作者希望公开的任何数据的URL、包括由块-链提供的完整分布式分类账。
通过向散列链添加新记录来记录成功的块确认的最后一步,实现了两个目的。第一种是在内部相关表上记录块结束记录的确认日期,以便客户端可以在依赖方允许的情况下,执行一个或两个随机的附加块确认测试,对于没有确认日期的那些块或具有相对较旧的日期的那些块的算法偏好。这些额外的检查可能会给依赖方的确认等待时间增加一分钟左右(这就是为什么客户端可能并不总是允许它)但是执行一项有价值的任务,要求攻击者改变链的大部分区域以保持幻觉它是完整的。每次强制修改都会大大增加快速检测的可能性(依赖方或客户端试图确认链中的其他部分)。
然而,第二个目的是复制与链中每隔一次添加所需的相同的安全检查;这意味着我们已经验证了对等体的共识是服务器正常运行而不是受当前攻击,并确保客户端在验证的最后阶段有明确的终点目标。
但即使在此之前,假设所有上述测试都已通过,已经证明的内容如下:
1数据散列仍然与链中的记录匹配;
2它所属的块中的每个其他链接都保持完整,完全测试任何其他块中的每个链路;
3(多个)块仍包含重新创建任何块确认记录所需的完全相同的数据;
4相关的日确认记录仍然与当天的重新组合的块确认数据相匹配;
5日终记录仍然与客户端复制匹配,并且 - 经过可选检查 - 打印复制;和
6前一天的确认记录被忠实地复制到第二天的第一记录中。
所有这些意味着如果我们试图验证的数据已经被伪造但仍然通过了上述测试,那么只有三种方法可行。首先,最简单的是,依赖方的客户端被转用于查看错误的服务器。这可以通过基于本领域公知的适当的注册、一次性密钥等安排安全客户端认证来防止。有了足够的资源,几乎可以消除这种误导的风险。
第二种方式是,如果攻击者设法伪造散列链的整个部分并且依赖于没有其他人对相同天注册的任何其他数据执行验证(他们自己的验证尝试将不可避免地失败并生成警报- 除非他们自己的相关源数据受到相同的同时攻击。
反对这种可能性的最强烈论据是,日终记录的客户端复制仍然匹配。但是,如果将数据传递向依赖方的攻击者或他们的帮凶也设法嵌入了一些适当的恶意软件,他们也可以欺骗当地的日终记录。只有通过检查安全来源的印刷版本,依赖方才能完全消除这种可能性,尽管可以认为通过随机选择其他对等体进行交叉检查日终记录将提供几乎相同的保证,并且及时进行随机检查经过公证的记录样本也可以提供类似的保证。在任何情况下,显然伪造通过这些测试的可能性已经很小,并且对于大多数情况,这种确认水平可能被认为是足够的。
在上述程度上欺骗验证的第三种可能方式是将客户端软件本身替换为旨在实现依赖方预期结果的复制。虽然这种可能性不能打折,并且可能对一个天真的受害者起作用,但它应该是最容易防御的。首先,大部分测试可以手动进行,如果只进行一步或两步,尽管纯粹是为了消除这种可能性,但预防措施就足够了。更强大的是,客户端将在链上记录自己的散列,并且可以手动检查。客户端参数可以与客户端的任何其他复制随机比较,以提供进一步的保证。因此,恶意客户端不被视为严重威胁。
但是,通过在数据注册日期和当天之间检查所有日确认记录(简单链接测试)和日终记录(针对客户端复制),可以进一步降低欺骗的可能性。这应该不会超过10到60秒。
请注意,任意地,任何本地客户端或用户,如日-块测试所概述,可以在其路径上进一步选择性地挖掘到链的末尾,以便在注册日期和当前日期之间执行更多的任意完整块测试(例如,确认公开公证的数据散列)。攻击者无法知道他们可能选择测试链的哪些部分,因此为了确保他们的欺骗行为成功,他们需要同时更换整个链,并希望没有其他人注意到不可避免的验证失败。这是数字安全领域中称为“计算不可行”(实际上是不可能的)的一个例子。用户唯一的缺点是每个这样的随机块/日测试将需要另外30到60秒。
一旦客户端到达当天,完整性检查就完成了,因为在添加至少一个块确认日期时间记录的过程中,该链已经从午夜验证(通常是日终记录的发布时间)到新记录。因此,假设此最终检查确认午夜HASH_LINKED仍然是已发布的,则被验证的与该数据有关的链中的任何链接都可能已经更改,因为该数据已注册,因此,数据本身已经最终证实不变。
使用对等网络保护服务器
本节介绍P2P网络为服务器提供保护所需的新功能。它不是对创建此类网络的新方法的描述,而是对使用它的新方法的描述。
P2P网络与服务器相关的主要功能是在对等体之间共享数据,涉及服务器的性能和响应时间,以识别任何重大延迟或阻止。
这是因为对上述散列链的修改只为攻击者提供了一个严重的选择,即在控制服务器时尝试伪造。鉴于他们不能重新计算修改后的散列,在攻击之后,与他们无法控制的任何数据相关,他们只能通过确保他们控制所有散列在任何攻击期间需要更改的数据来成功。
这有两个含义。首先,他们必须在攻击期间阻止任何其他来源对散列链的任何进一步添加;反过来,这意味着他们必须中断正常服务并阻止来自这些源的所有客户端提交。检测到正常服务的公开暂停是P2P网络的主要功能。
第二个含义是更令人放心。它们只能攻击链的末端,因为只有在链的末尾才能确保排除它们无法控制的源数据。
因此,单独的P2P监控就会对任何攻击施加非常严格的时间限制。任何响应时间超过当前平均值的两倍都会引发警报,并且由于正常响应时间应该在几秒钟的数量级,因此攻击者以很短的时间开始以完成任何攻击。因此,如果对等体共同确认其添加新记录的能力(以及从散列链中检索结果),则它们已经证明服务器当前没有受到攻击,并且散列链仍然可以被信任。此外,即使是空客户端(未参与P2P网络的客户端)也可以实现有效的即时保证,前提是他们可以验证任何公开公证条目的详细信息,这些条目晚于他们正在寻求验证的实际HASH_LINKED。如果这些细节得到确认并且他们信任源,并且目标散列和经过公证的散列之间的链接保持不变,那么他们就可以非常高度地确信数据足够安全,可以信任。
P2P网络的第二个功能是托管以打印方式发布的所有日终记录,以及可选的日期确认记录。首先,如上所述,这使他们能够更容易地确认任何给定日的数据。它还借鉴了“数量上的强度”的分布式块链概念以及通过广泛分布的过程保护数字数据。
然而,同样重要的是,通过托管他们自己的日终记录复制,当客户端随机选择其中一个历史HASH_LINKED记录用作历史HASH_PRIOR时,控制服务器的攻击者无法猜测他们使用了哪一个。他们必须全部尝试。
然后他们会有更难以猜测的结果pseudo-SALT如何与源结合。当然,他们还需要访问源。
第三个功能是托管他们愿意或能够托管的一样多的过去24小时内添加的新记录(包括最近打印的日终HASH_LINKED)。这与托管日终记录(通过分发保护,隐藏最近HASH_PRIOR的选择)具有相似的逻辑,但如果它受到严重攻击,也可以作为服务器的部分备份,而不是本发明是主要集中在的用于欺诈的目的,而是为了破坏服务。
例如,当服务器处于持续的拒绝服务攻击时,P2P网络可以提供替代服务,尽管速度要慢得多,至少为了提供对那些最近添加的记录的验证。如果重大攻击实际上设法破坏了最近的数据,它甚至可以帮助服务器重建其记录。 (历史数据应受分布式WORM存储保护。)
第四个功能是周期性的检查服务器的时间戳性能的准确性。服务器将获取或创建受信任的时间戳,该时间戳应该与互联网上的任何时间戳一样准确。但是,攻击者可能会看到通过修改时间戳来获利的机会。客户端对等体将提供一个受信任的时间戳权限库,用户可以选择添加自己的时间戳。在与服务器的任何会话开始时,对等方将从一个或多个随机选择的时间服务器请求时间戳。它将在会话结束时重复该请求。当会话开始时,它将向服务器提供其自己的“时间意见”,并将后续HASH_LINKED的时间戳与其在其他地方收集的时间数据进行比较。显著差异将触发警报。同样,如果对等方的时间数据与其自身和其他对等方的时间数据有很大差异,服务器将向对等方发出警报。
P2P客户端执行的第五个也是最后一个功能,需要经过用户的批准,是周期性的抓链,查找未经确认的块或暂时未确认的块,或者,如果最近确认了所有内容,随机检查链中任何位置的块,并在这些块上执行上述块确认测试,创建新的“块确认”记录并更新其确认日期。
对散列链的这种连续外部检查将为任何试图在未经检测的情况下改变链的任何部分的攻击者提供永久的障碍。它应该确保,即使只有几千个对等体,链每秒至少测试几次,这进一步减少了任何攻击在几秒钟内未检测到的机会。
证明瞬时数字捕获设备的创建时间
最后,本节描述了HASH_LINKEDs的另一种用途,用于证明必须创建某些类型数据的狭窄时间窗口。虽然在所有情况下,注册项目的HASH_LINKED证明其最近可能的创建时间,但在有限的情况下也可能证明最早的创建时间。
本发明的这个进一步的方面使得作者能够产生高水平的置信度,接近确定性,关于创建数据项的精确且通常是狭窄的时间窗口,只要它是由例如相机的、具有在设备中或与其连接的通信设备中嵌入的客户端软件的定制版本的设备有效的即时创建的。
这涉及在创建数据时将最近的可用HASH_LINKED与数据缠绕在一起。原则上,来自链的任何最近的散列都会做,尽管越近越好。因此,首选选项始终是使用最当前可用的HASH_LINKED。
重要的是确保图像在创建时与数据项缠绕在一起,作为上述操作的结果该数据项的日期时间可以在数学上得到保证。
制造商可能会开发出更好的机制来利用这一概念,但一个合理的选择是让相机软件加密文件空间,其中使用相关的HASH_LINKED作为密钥图像即将被存储。然后,只要图像完成,就将其散列并立即将散列上传到散列链。
如果该过程的硬件实现可证明是安全的(通过制造商),则作者将能够证明在下载的第一HASH_LINKED之前或通过添加自己的新记录创建的HASH_LINKED之后,无法创建所得到的图像,为操作图像本身留下了一个非常小的机会窗口。
对于整个视频片段,机会窗口对于整个图像序列是相同的,但是,假设为序列中的每个帧构建内部散列链的附加选项可以针对单个帧显著减少。简而言之,在适当修改的相机中,本发明为相机源数据提供了一个重要机会,以证明其自身的完整性超出了合理的怀疑。它可以消除在出版之前图像被篡改的可能性(除了通过相机本身之外),只留下由图像展露的内容因为它是“上演”的所以不是真实的可能性。
对于那些图像完整性和出处证明非常重要的情况(例如照片新闻、安全相机、行车记录仪(dash cams)等),很可能只为图像验证创建专用的散列链。
这似乎与上述逻辑相反,这意味着数千个同时拍摄的图像可能使用相同的HASH-LINKED。无论是在此上下文中还是对于普通数据,共享使用相同的散列都不是问题(参见上面对待处理的HASH_PREVIOUS重新发布的引用)。
应该强调的是,在这种情况下,使用散列的目的只是为了证明作者的数据来源时间,而不是为了保护散列链;关键点在于可以证明创建HASH_LINKED的确切时间,因此,任何与其缠绕在一起的图像都可以证明其最早可能的创建时间。
随后,他们的个人上传时间将确定他们可证明的最近可能创建时间。此外,为了保持其专用链上的最大速度,客户端软件的相机版本可以免除任何进一步的散列包含,并允许“图像散列链”通过使用完整的HASH_SALTED过程将周期性的记录(例如对于每一万个添加的图像一个)存放到“标准散列链”中来获得自身的对内部攻击的保护。
应当理解,上述实施例仅作为示例给出,并且在不脱离所附权利要求限定的本发明的范围的情况下,可以对其进行各种修改。例如,所描述的实施例涉及通过级联来构造散列链,但是可以设想其他构造示例,例如通过按位异或,或者通常是异或。此外,这里描述的散列链是一维的,但是预期在可预见的将来需要实现在所谓的超级对等网络上描述的系统。这里的超级对等网络(SPN)基本上是整个散列链被设置为可搜索的数据库,并且需要SPN用于实际目的,主要是大规模的快速多次访问,其中用户通常需要“实时”的响应时间(即不超过几秒钟)。这并不排除备选散列链模型如梅克尔树和分布式散列树,例如,其为标准对等(P2P)网络优化,但通常在2017当前时间需要更长的响应时间(有时分钟而不是秒)。如果通信技术允许p2p带宽的充分增加,则替代选择将是切换到完全对等系统并实现与例如块-链所声称的相同级别的分散。还应该注意的是,提议的SPN本身可能会决定像DHT这样的东西可能是在它们之间共享数据的最有效方式。提供这一点可以在不破坏缠绕数据并随后如本文所述验证数据的能力的情况下完成,则这些方法与本文所述的方法和装置完全一致。
Claims (9)
1.一种能够通过参考在至少一个计算设备上的散列链中存储的多个被称为HASH_LINKED的唯一数据项来帮助验证数据的完整性的计算机实现的方法,其中所述散列链通过以下步骤产生:
(a)将已经记录在所述散列链上的至少一个HASH_LINKED与新添加的数据源组合并对所得到的组合进行散列以产生新散列HASH_SALTED;
(b)将HASH_SALTED存储在至少一个计算设备上的数字数据存储中的新位置作为新记录内的字段,其中所述数字数据存储是数据库中的表;和
(c)在新记录中将每个新的HASH_SALTED与紧接在前的记录中的最近的HASH_LINKED组合并对该组合进行散列以产生存储到相同新记录中的另一个字段的另外的HASH_LINKED,以便最近的HASH_SALTED和另外的HASH_LINKED在数据库中按位置永久链接;
步骤(a)至(c)在多次迭代中重复,其中在步骤(a)的每次重复之后,将每个最近的HASH_LINKED与随后的HASH_SALTED组合并进行散列以产生在相同新记录中存储的随后另外的HASH_LINKED。
2.根据权利要求1所述的方法,其中以周期性间隔
通过散列先前HASH_LINKED和包含自先前BLOCK CONFIRMATION RECORD以来创建的所有记录的文件的组合来创建另外的记录BLOCK CONFIRMATION RECORD,以便创建新的HASH_SALTED以存储在存储的散列链中的预定位置;
其中新HASH_SALTED的值与散列链上最近的HASH_LINKED组合,以生成在相同新记录中存储的新的最近HASH_LINKED。
3.根据权利要求1或2所述的方法,其中,以下列方式中的一种或多种方式随机验证每个连续的HASH_LINKED:
(i)通过代理设法认证任意数据项;
(ii)通过代理被编程以执行随机验证;
(iii)通过作为对等网络的成员的代理执行周期性的或随机验证;或者
(iv)通过代理增加新记录;
使得验证至少以与步骤(a)至(c)的迭代相同的频率发生,并且如果验证动作产生否定结果则引发警报消息。
4.根据权利要求1或2所述的方法,其中,所述散列链中的最近HASH_LINKED进一步与即时创建的数据项组合,其中所得到的组合被散列以形成新的HASH_SALTED,其相应地又用于在第一可用机会中在一个或多个散列链中创建新的HASH_LINKED。
5.根据权利要求1或2所述的方法,其中,每个所述HASH_LINKED在散列链中稍后结合到连续的HASH_SALTED中至少一次。
6.根据权利要求1或2所述的方法,其中每个所述HASH_SALTED还包括短串随机数据。
7.根据权利要求1或2所述的方法,其中,通过级联来构造所述散列链。
8.一种包括被安排以实现权利要求1至7中任一项所述的方法步骤的程序的记录的数据媒体。
9.一种帮助验证数据的完整性的装置,包括:
包含多个数据源的储存设备,
输入,通过该输入可以将数据源的数据内容添加到储存设备,
处理器,被编程为执行权利要求1至7中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1605343.1A GB2548851B (en) | 2016-03-30 | 2016-03-30 | Validation of the integrity of data |
GB1605343.1 | 2016-03-30 | ||
PCT/GB2017/050896 WO2017168159A1 (en) | 2016-03-30 | 2017-03-30 | Validation of the integrity of data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109154971A CN109154971A (zh) | 2019-01-04 |
CN109154971B true CN109154971B (zh) | 2022-12-06 |
Family
ID=56027592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780031290.8A Active CN109154971B (zh) | 2016-03-30 | 2017-03-30 | 数据的完整性的验证 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11658831B2 (zh) |
EP (1) | EP3437013B1 (zh) |
CN (1) | CN109154971B (zh) |
AU (1) | AU2017243206B2 (zh) |
ES (1) | ES2907398T3 (zh) |
GB (1) | GB2548851B (zh) |
WO (1) | WO2017168159A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2548851B (en) | 2016-03-30 | 2018-07-25 | The Ascent Group Ltd | Validation of the integrity of data |
US10484181B2 (en) * | 2016-12-12 | 2019-11-19 | Datiphy Inc. | Streaming non-repudiation for data access and data transaction |
DE102017205163A1 (de) * | 2017-03-27 | 2018-09-27 | Bundesdruckerei Gmbh | Hashwerte für die bidirektionale verkettete Blockchain |
DE102017209381A1 (de) | 2017-06-02 | 2018-12-06 | Bundesdruckerei Gmbh | Bidirektional verkettete Blockchain-Struktur |
DE102017216839A1 (de) | 2017-09-22 | 2019-03-28 | Bundesdruckerei Gmbh | Bidirektional verkettete erweiterte Blockchain-Struktur |
DE102017218736A1 (de) | 2017-10-19 | 2019-04-25 | Bundesdruckerei Gmbh | Bidirektionale verkettete Blockchain-Struktur |
US10855445B2 (en) | 2018-03-01 | 2020-12-01 | Intuit, Inc. | Summary chains in distributed systems |
US20190318066A1 (en) * | 2018-04-17 | 2019-10-17 | Filmio, Inc. | Project creation system integrating proof of originality |
US11288347B2 (en) * | 2019-03-07 | 2022-03-29 | Paypal, Inc. | Login from an alternate electronic device |
US11080265B2 (en) * | 2019-04-24 | 2021-08-03 | Microsoft Technology Licensing, Llc | Dynamic hash function composition for change detection in distributed storage systems |
US11106812B2 (en) | 2019-05-09 | 2021-08-31 | At&T Intellectual Property I, L.P. | Controlling access to datasets described in a cryptographically signed record |
CN112966310B (zh) * | 2021-03-23 | 2023-01-10 | 西安电子科技大学 | 基于SQLite的细粒度数据完整性验证方法及设备 |
US11720549B1 (en) * | 2021-04-30 | 2023-08-08 | Splunk Inc. | Data stream integrity using blockchain |
GB2622523A (en) * | 2021-06-10 | 2024-03-20 | Amaroo Com Holdings Pty Ltd | System and method for decentralised, scalable, and secure consensus between cooperating blockchain systems |
RU2771208C1 (ru) * | 2021-07-07 | 2022-04-28 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ контроля и восстановления целостности многомерных массивов данных |
RU2771146C1 (ru) * | 2021-07-07 | 2022-04-27 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ контроля целостности многомерных массивов данных на основе правил построения треугольных кодов |
RU2771236C1 (ru) * | 2021-07-07 | 2022-04-28 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ контроля целостности многомерных массивов данных |
RU2771209C1 (ru) * | 2021-07-07 | 2022-04-28 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ контроля целостности многомерных массивов данных на основе правил построения квадратных кодов |
RU2771273C1 (ru) * | 2021-07-07 | 2022-04-29 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ контроля целостности многомерных массивов данных на основе правил построения прямоугольных кодов |
EP4164230A1 (en) | 2021-10-07 | 2023-04-12 | Axis AB | Signed video data with linked hashes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1174642A (zh) * | 1994-10-28 | 1998-02-25 | 保证技术股份有限公司 | 提供对文档鉴别和唯一识别证明的数字文件鉴别系统 |
US5956404A (en) * | 1996-09-30 | 1999-09-21 | Schneier; Bruce | Digital signature with auditing bits |
CN101507178A (zh) * | 2006-08-28 | 2009-08-12 | 三菱电机株式会社 | 数据处理系统、数据处理方法以及程序 |
CN102413313A (zh) * | 2010-09-26 | 2012-04-11 | 索尼公司 | 数据完整性验证信息生成方法和装置、数据完整性验证方法和装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6620000A (en) * | 1999-08-06 | 2001-03-05 | Frank W Sudia | Blocked tree authorization and status systems |
GB2390703A (en) * | 2002-07-02 | 2004-01-14 | Ascent Group Ltd | Storage and authentication of data transactions |
US8719576B2 (en) * | 2003-12-22 | 2014-05-06 | Guardtime IP Holdings, Ltd | Document verification with distributed calendar infrastructure |
US8019988B2 (en) * | 2005-08-22 | 2011-09-13 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of The University Of Oregon | Security protocols for hybrid peer-to-peer file sharing networks |
US8447989B2 (en) * | 2008-10-02 | 2013-05-21 | Ricoh Co., Ltd. | Method and apparatus for tamper proof camera logs |
US8185733B2 (en) * | 2008-10-02 | 2012-05-22 | Ricoh Co., Ltd. | Method and apparatus for automatically publishing content based identifiers |
CN102446250A (zh) | 2010-10-13 | 2012-05-09 | 索尼公司 | 数据完整性的保护和验证方法、设备和系统 |
US8776171B2 (en) * | 2011-03-07 | 2014-07-08 | Ricoh Co., Ltd. | Generating log with location and accelerometer history |
US9419804B2 (en) * | 2011-10-14 | 2016-08-16 | Hitachi, Ltd. | Data authenticity assurance method, management computer, and storage medium |
US9424200B2 (en) * | 2013-03-15 | 2016-08-23 | Freescale Semiconductor, Inc. | Continuous run-time integrity checking for virtual memory |
US20160134495A1 (en) * | 2013-06-28 | 2016-05-12 | Koninklijke Philips N.V. | Logging device and log aggregation device |
US9338013B2 (en) * | 2013-12-30 | 2016-05-10 | Palantir Technologies Inc. | Verifiable redactable audit log |
US10579974B1 (en) * | 2015-02-16 | 2020-03-03 | AI Coin Inc. | Systems, methods, and program products for a distributed digital asset network with rapid transaction settlements |
WO2016131575A1 (en) * | 2015-02-20 | 2016-08-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of providing a hash value for a piece of data, electronic device and computer program |
US10158480B1 (en) * | 2015-03-16 | 2018-12-18 | Winklevoss Ip, Llc | Autonomous devices |
GB2548851B (en) | 2016-03-30 | 2018-07-25 | The Ascent Group Ltd | Validation of the integrity of data |
-
2016
- 2016-03-30 GB GB1605343.1A patent/GB2548851B/en active Active
-
2017
- 2017-03-30 ES ES17715988T patent/ES2907398T3/es active Active
- 2017-03-30 CN CN201780031290.8A patent/CN109154971B/zh active Active
- 2017-03-30 AU AU2017243206A patent/AU2017243206B2/en active Active
- 2017-03-30 US US16/088,604 patent/US11658831B2/en active Active
- 2017-03-30 WO PCT/GB2017/050896 patent/WO2017168159A1/en active Application Filing
- 2017-03-30 EP EP17715988.6A patent/EP3437013B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1174642A (zh) * | 1994-10-28 | 1998-02-25 | 保证技术股份有限公司 | 提供对文档鉴别和唯一识别证明的数字文件鉴别系统 |
US5956404A (en) * | 1996-09-30 | 1999-09-21 | Schneier; Bruce | Digital signature with auditing bits |
CN101507178A (zh) * | 2006-08-28 | 2009-08-12 | 三菱电机株式会社 | 数据处理系统、数据处理方法以及程序 |
CN102413313A (zh) * | 2010-09-26 | 2012-04-11 | 索尼公司 | 数据完整性验证信息生成方法和装置、数据完整性验证方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
GB2548851A (en) | 2017-10-04 |
US11658831B2 (en) | 2023-05-23 |
ES2907398T3 (es) | 2022-04-25 |
GB201605343D0 (en) | 2016-05-11 |
CN109154971A (zh) | 2019-01-04 |
EP3437013A1 (en) | 2019-02-06 |
US20190103975A1 (en) | 2019-04-04 |
EP3437013B1 (en) | 2021-12-08 |
GB2548851B (en) | 2018-07-25 |
AU2017243206A1 (en) | 2018-10-18 |
AU2017243206B2 (en) | 2021-07-15 |
WO2017168159A1 (en) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154971B (zh) | 数据的完整性的验证 | |
US10516662B2 (en) | System and method for authenticating the legitimacy of a request for a resource by a user | |
US20170264428A1 (en) | Data storage system with blockchain technology | |
CN111242617B (zh) | 用于执行交易正确性验证的方法及装置 | |
JP4741081B2 (ja) | ネットワーク上でバイオメトリックデータを安全に送り認証するための方法と装置 | |
US20200382310A1 (en) | Reduced-step blockchain verification of media file | |
WO2017136527A1 (en) | Blockchain-enhanced database | |
US20200382309A1 (en) | Approximate hash verification for blockchain | |
KR20220044306A (ko) | 부분-정렬된 블록체인 | |
KR20080030359A (ko) | 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 | |
CN110888933B (zh) | 信息提供方法、装置及系统和信息获取方法及装置 | |
WO2017000648A1 (zh) | 一种被加固软件的认证方法及装置 | |
US20210271778A1 (en) | Rendering Blockchain Operations Resistant to Advanced Persistent Threats (APTs) | |
US11228424B2 (en) | Blu-ray copy service | |
JP2023551458A (ja) | Oprfを介したブロックチェーンネットワークにおける鍵再生 | |
CN110839067B (zh) | 信息提供方法及装置 | |
Khan et al. | Secure logging as a service using reversible watermarking | |
EP4325386A1 (en) | Imaging device configuration verification | |
CN110826110B (zh) | 一种分布式账本数据防篡改方法及系统 | |
WO2024038033A1 (en) | Imaging device configuration verification | |
CN117795903A (zh) | 基于区块链的数据的认证修改 | |
Almarwani | Secure, Reliable and Efficient Data Integrity Auditing (DIA) Solution for Public Cloud Storage (PCS) | |
WO2024039687A1 (en) | Secure web-based platform for de-centralized financing | |
WO2023047136A1 (en) | A security system | |
Bortolameotti et al. | Reliably determining data leakage in the presence of strong attackers |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |