CN101809566A - 高效的文件散列标识符计算 - Google Patents

高效的文件散列标识符计算 Download PDF

Info

Publication number
CN101809566A
CN101809566A CN200880110492A CN200880110492A CN101809566A CN 101809566 A CN101809566 A CN 101809566A CN 200880110492 A CN200880110492 A CN 200880110492A CN 200880110492 A CN200880110492 A CN 200880110492A CN 101809566 A CN101809566 A CN 101809566A
Authority
CN
China
Prior art keywords
file
hash
hashed value
described file
status data
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.)
Granted
Application number
CN200880110492A
Other languages
English (en)
Other versions
CN101809566B (zh
Inventor
E·C·佩林
R·V·普迪派蒂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101809566A publication Critical patent/CN101809566A/zh
Application granted granted Critical
Publication of CN101809566B publication Critical patent/CN101809566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2101Auditing as a secondary aspect

Abstract

描述了与每一文件的状态数据相关联地维护文件的高速缓存的散列值,该状态数据表示该文件的内容在散列化时的状态。例如,在日志文件系统中,状态数据可包括文件在日志中的更新序列号和该日志实例的日志标识符。对文件的散列值的请求通过确定是否为该文件维护了高速缓存的散列值来处理。如果是并且相关联的所维护的状态数据与该文件的当前状态数据相匹配,则文件内容自最后散列计算以来未被修改,由此响应于请求来返回高速缓存的散列值。否则,为该文件计算新散列值并返回该散列值,并且将该散列值高速缓存以供将来使用。可以为给定文件高速缓存多种类型的散列。

Description

高效的文件散列标识符计算
                        背景
确保在安装在计算系统上的文件,尤其是可执行文件或可执行文件使用的资源在被执行或加载到存储器中之前得到验证变得越来越相关和有价值。例如,这阻止执行诸如病毒等恶意软件,以及阻止IT管理员不期望运行的应用程序的运行。验证确保只有被允许在机器上运行的程序才被执行,从而使得平台安全得多。
实现验证的方式之一是文件散列化,其中在安装时,软件的开发者或操作系统上的组件使用安全散列来对该文件的内容进行散列化。该散列被存储在防篡改位置中。在执行或加载该文件时,文件内容被再次散列化并且与所存储的该文件的散列相比较(或各所允许文件的散列集合)。如果计算得到的散列值不与允许的散列相匹配,则该文件已经以某种方式改变(例如,被篡改),或是不允许运行的文件,藉此可阻止其加载到存储器中并且因而可阻止其执行。注意,另一验证方法是确保代码需要由例如X、Y、或Z签名,藉此验证过程的一个步骤是散列(产生H),并且密码签名(X应用于H的私钥)证明X签署了该代码。
文件散列化(如在使用散列规则时用于验证)的大量消费者可具有对系统的用户可注意到的显著的负面性能影响。这是因为所加载的任何可执行文件(包括动态加载(链接)库(dll))都需要被散列化,并在允许散列的列表中查找计算得到的散列。
计算散列在许多方面都是成本高昂的,包括即使不是全部也是大部分文件都需要从盘中读出以使其被散列化。此外,内容需要被加载到存储器中并且这增加了存储器分页压力。一旦加载,存储器内容的实际散列化也是计算密集的。此外,对于给定二进制,散列化操作可能重复发生,因为该二进制可被加载到许多进程中(例如,微软
Figure GPA00001084189900011
Windows操作系统中的ntdll.dll、kernel32.dll、advapi32.dll、user32.dll、shell32.dll)。
                        概述
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表性概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于以限制所要求保护的主题的范围的任何方式来使用。
简言之,此处描述的主题的各方面针对一种将高速缓存的文件的散列值与所维护的每一文件的状态数据相关联地维护的技术,其中状态数据代表该文件的内容在计算该散列值时的状态。例如,在其中文件系统维护对文件的改变的日志并且每一改变与一更新序列号相关联的计算环境中,状态数据包括该文件的更新序列号和标识日志实例的日志标识符。
对文件的散列值的请求通过确定是否为该文件维护了高速缓存的散列值来处理。如果维护了散列值并且相关联的所维护的状态数据与该文件的当前状态的状态数据相匹配,则知道自该散列计算时间以来文件内容未被改变,藉此响应于该请求返回该文件的高速缓存的散列值。否则,为文件计算散列值并返回。计算得到的散列值随后可被高速缓存并与对应于文件内容在该散列计算时的状态的状态数据相关联。
在一个方面,散列数据存储包含各文件条目(例如,记录),其中每一文件具有用于散列及相关联的状态数据的条目(例如,在相关联的字段中)。耦合到散列数据存储的散列返回机制处理对文件的散列值的请求,包括访问散列数据存储以寻找每一这样的请求。当散列返回机制在散列数据存储中定位文件条目时,该散列返回机制相对于该文件的当前状态数据来评估与该文件相关联的状态数据。例如,该比较可以分别是所维护的数据的更新序列号和日志标识符以及当前文件状态。如果该比较指示号码和标识符相等,则文件内容自散列时间以来未被改变,并且响应于该请求来返回该文件的所维护的散列值。
如果该比较失败,则可以执行一个或多个优化来查看散列值是否仍然有效。例如,如果日志标识符相等但更新序列号不相等,则散列返回机制可以扫描日志以寻找这两个更新序列号之间的记录,以确定是否有任何更新属于修改该文件内容的这一类型。如果仅有的更新都不是这一类型,即,所有更新都是非修改更新,则高速缓存的值可以使用,否则需要重新计算散列值。作为另一优化,在执行扫描之前,可以使用文件大小比较,因为不同的文件大小将指示对内容的改变。同样,在存在过多更新以致难以高效扫描的情况下,例如在序列号之间的差超过效率阈值的情况下,可以绕过扫描并且重新计算散列值。在日志不包含高速缓存中的USN(更新序列号)与文件的当前USN之间的所有条目的情况下,例如高速缓存的USN小于日志中的最小USN(例如,在日志打包时丢失较旧条目),也可以绕过这样的优化。
结合附图阅读以下详细描述,本发明的其他优点会变得显而易见。
                        附图简述
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1是表示用于实现高效的文件散列标识符计算机制的示例组件的框图。
图2是用于维护文件的散列数据和散列时间的状态数据的散列数据存储(高速缓存)形式的数据结构的表示。
图3是表示在将文件复制到存储卷时采取来构建散列数据存储的示例步骤的流程图。
图4是表示可被采取来响应于请求返回文件的散列值的示例步骤的流程图。
图5是表示可被采取来响应于请求返回文件的散列值的示例可任选步骤的流程图。
图6示出可以将本发明的各方面并入其中的计算环境的说明性示例。
                        详细描述
此处描述的技术的各方面一般针对维护和充分利用文件散列的数据存储(高速缓存),以便只在给定文件可能已经改变的情况下才重新计算该文件的散列。在大量实例中,返回指定文件的散列值的机制只需要在散列的安全数据存储(例如,高速缓存表)中查找散列值,从而极大地提高了计算系统的性能。
为此,将文件的散列(在来自先前散列计算的适当散列存在的情况下)与指示该文件内容(其可包括数据流、关键属性、和/或一个或多个替换数据流)在最后散列计算时的状态的状态数据相关联地维护。注意,维护在散列计算“之时”的状态数据不需要该计算的确切时间,而相反指的是在文件内容被改变之前的任何时间。在请求文件的散列且该散列存在时,相对于该文件的当前状态来评估该文件的所维护的状态。如果该评估指示文件内容未被改变,则返回高速缓存的散列,否则计算散列并返回计算得到的散列。
在一个示例实现中,所维护的状态数据与在文件系统中跟踪的对文件的更新(记录在日志中)相对应。例如,如果状态数据指示当前日志有效并且日志中不存在所跟踪的对该文件的更新,则文件内容自将散列值高速缓存在数据存储中以来未被改变。作为一个选项,如果状态数据指示日志有效并且存在所跟踪的对该文件的更新,则可以评估这些更新以查看是否有任何更新属于可能改变了文件内容的这一类型,如果为否,则文件内容自高速缓存该散列值以来未被改变。在未被改变的情况下,可以高效地查找并返回所维护的散列,由此没有理由重新计算文件的全部内容的安全散列。如可容易地明白的,来自查找的这一效率增益对安全/验证目的而言尤其有价值,但可在需要文件内容的散列的任何时间使用。
在一个示例实现中,对文件内容的可能改变是经由与该文件相关联的元数据和跟踪对文件的任何改变的文件系统日志来确定的。此处的示例描述对微软
Figure GPA00001084189900041
Windows
Figure GPA00001084189900042
NT文件系统(NTFS)所实现的USN(更新序列号)和USN日志的使用,NTFS是索引和复制服务所主要使用的。然而,记录文件改变的任何日志或其他类型的文件系统都可以从此处描述的技术中获益。此外,通过计算上昂贵地产生的任何数据都可从此处所描述的高速缓存中获益。如此,本发明不限于此处所描述的任何具体实施例、方面、概念、结构、功能或示例。相反,在此所描述的实施例、方面、概念、结构、功能或示例中的任何一个都是非限制性的,并且本发明可以按一般在计算和文件内容散列化中提供益处和优点的各种方式来使用。
转向图1,示出示例文件散列标识符计算机制,包括跟踪对文件的改变的日志文件系统的各组件,其中对该机制所用到的每一所需卷而言日志都是活动的(即,打开的)。程序(例如,应用程序)102经由编写器机制104对文件作出改变,并且因为文件内容106(和/或作为该文件元数据108的一部分维护的其属性中的一个或多个)被改变,所以日志110记录改变的原因。如下所述,在日志110中记录的关于给定更新的数据改变由其与唯一(按日志实例)更新号112(例如,NTFS中的USN)的关联来跟踪;日志还与相对于任何先前实例来标识日志的当前实例的日志标识符114相关联。
为了将文件与日志中对应的条目相关联,在更新后,将日志的当前状态数据118(例如,包括NTFS中的USN的当前值)作为文件的所记录的元数据120的一部分来维护(例如,在主文件表(即MFT)中的NTFS中该文件的记录)。如果当前日志实例对该文件有效,则可以使用该文件的所记录的USN来在日志110中查找该文件的改变。
例如,在NTFS中,当关于文件的任何属性或数据流、或替换的命名数据流改变时,在日志110中记录该改变的原因(即,什么改变了,但不记录数据本身)并且该卷的在该文件的MFT记录中改变的当前USN(例如,递增的64位数字)与该文件相关联。NTFS卷上的每一文件因而与其自己的对应于日志中条目(假定该日志有效)的USN相关联;NTFS保证该USN在每次更新该文件时都改变。注意,在图1中,虚线右侧的组件不能被编写程序102直接改变。例如,USN是防篡改的,因为它不能由系统中的任何实体直接改变,而相反只能在对文件作出改变时作为副作用来更新。
如上所述,USN日志110具有当前日志ID 114。如果该日志停止/重新开始、如果该日志打包(例如,由于存储限制)、或如果出于任何原因该日志被盘恢复实用程序截断并重新开始,则该日志ID改变(并且所有文件的USN被复位为0)。这些条件指示当前日志可能不具有对文件的改变的有效历史,除非这些文件具有非零USN并且因而与当前日志ID相关联。注意,在重新开始日志之后,对任何文件的零长度(非修改)‘触摸(touch)’将恢复该文件的有效USN值。此外,注意,如果文件的USN和高速缓存的USN是0(并且日志相匹配),则该文件自该日志重新开始以来未被触摸,并且不需要触摸该文件。
同样如图1所示,示出了散列返回机制130,该机制按来自散列请求机制132(例如,安全散列比较组件)的需要来充分利用日志110和日志ID 114、以及包括该文件的日志状态数据118的文件元数据120,以确定是否确信文件内容相对于先前记录的散列的对应状态而言未被改变。如果为是并且例如在散列数据存储134中维护了该文件的先前计算得到的散列,则可以使用该所维护的散列值而非重新计算散列值。否则,调用散列计算机制136来计算散列以返回到请求机制132。
图2是适用于诸如以一组记录的形式来用作散列数据存储134的数据结构的表示。在图2中,每一水平行是表示唯一文件的记录,且在每一列上方的文本中标识每一记录的各字段。注意,在图2中,如下所述,实线框(USN、日志ID、以及散列列)表示图1的示例实现的散列返回机制130所使用的各字段,而虚线框表示可用于各种散列相关目的的可任选字段(卷ID、文件ID、以及文件大小目的)。在需要时也可维护用于其他文件元数据的其他列。
对于每一经散列化的文件,散列数据存储134维护散列值以及状态数据(USN和日志ID),这使得散列返回机制130能够确定该文件自计算散列时间以来是否未被改变(由此散列值仍然有效)。可以使用任何合适的散列算法(MD5、或SHA-1、和/或任何其他公知算法);注意,可以为给定文件维护与不同类型的散列和/或计算该散列值的不同方式相对应的多个不同类型的散列值。在此出于简明的目的,除非另外注明,将描述单个类型的散列计算。
一般而言,使用安全散列来对数据流和关键属性/替换数据流的内容进行散列化。散列数据存储134是安全的,即,在存储的不可由任何用户访问的防篡改区域中。
散列数据存储134最初可以是空的并且请求文件的作为散列来构建(或更新)的记录。散列数据存储134的部分或全部也可在前台或后台操作中构建或更新。例如,可任选机制140(图1)可以诸如在额外处理能力可用时在后台或者以“懒散”的方式来寻找任何文件(或可能请求散列的特定文件类型,如可执行文件)以构建和/或更新数据存储134。作为又一替换,在文件首次导入到系统中(即复制到卷)时,可以计算散列。
在作出对文件内容散列的请求时,该请求伴有文件句柄。可随该请求提供附加数据,如在其中允许不同类型的散列和/或不同的计算散列的方式的系统中提供所请求散列的类型。
从该文件句柄,散列返回机制130获得文件的日志数据118(例如,USN)和/或任何其他所需文件元数据120;例如,在NTFS中,散列返回机制130可从MFT获得该文件的元数据记录。注意,如下所述,散列返回机制130还可从文件系统获得当前日志ID 114(以及当前USN 112),并且还可访问日志110。
使用文件元数据120中的至少一部分,散列返回机制130访问散列数据存储134来寻求该文件的记录。例如,可以将文件元数据中记录的最后USN(可能结合当前日志ID)用作键。如果数据存储134中维护了文件标识符(文件ID),则该文件ID可改为用作键。例如,在NTFS中文件具有唯一文件ID,即唯一标识给定存储卷上的文件的64位数字。文件的全路径名对卷而言也是唯一的,并且因而是可用作键之类的替换类型的唯一文件标识符。
同样如在图2中所示,卷标识符(例如,全局唯一标识符,即GUID)可任选地与每一记录相关联地维护,由此多个卷可通过包括卷标识符作为键的一部分来共享同一散列数据存储134。或者,高效散列标识/计算所需的每一个卷可以与其自己的散列数据存储134相关联。在此出于简明的目的,将描述单个卷,但应当注意,每一各卷具有其自己的日志和日志数据(例如,USN和日志ID)并且只保证文件(路径名和/或文件ID)以及该文件的元数据按卷是唯一的。因此,在多卷环境中,需要附加逻辑来访问正确的日志、日志数据、和/或文件数据。
如果在散列数据存储134中找到匹配的记录,则先前已经为所请求的文件计算并维护了散列。如果是这样,则在散列数据存储134中维护的USN和日志ID可以与该文件的元数据(在该示例中即USN)和当前日志ID 114相比较,以确定文件内容自计算并存储散列以来是否可能改变。如果从散列状态数据、当前日志ID以及文件USN得知文件内容未被改变,则该散列对该文件仍然有效,并且可从散列数据存储134返回。
作为一个优化,即使文件内容本身未被改变,对于文件而言,文件的元数据中所记录的USN相对于在散列数据存储134中维护的USN增加了也是可能的。例如,对文件属性的改变可改变USN,但该属性可能不是散列计算的一部分的属性。扫描在日志110中记录的、文件元数据记录的USN和散列数据存储为该USN所维护的值之间的改变因而是可能的。对于与该文件相对应的任何所记录的改变,可以评估该改变的原因,并且在这些文件改变之间,如果没有发现与文件内容(包括任何关键属性和/或替换流)改变相对应的原因,则所维护的散列仍然有效。注意,作为扫描之前的高效检查,可以将元数据记录的文件大小与散列数据存储中为该文件维护的文件大小相比较;如果不同,则内容不能是相同的(然而如果相同,内容仍然可能不同,由此需要扫描)。作为另一效率机制,如果两个USN值之差超出某一阈值,扫描这两个USN值之间的改变记录与重新计算散列相比较不高效,则可以绕过扫描。
转向图3,示出了例如在将文件复制到所需卷(步骤302)时可将该文件的记录输入到散列数据存储的流程图。步骤302还表示关闭该文件的所有句柄,以使得在关闭时更新关于该文件的USN。
为维护与该文件相关联的散列相关数据,步骤304独占地打开文件,以使在散列返回机制130(或构建/更新机制140)打开该文件时其他应用程序不能打开/修改该文件。注意,这阻止USN因为另一编写器而改变;这对允许在打开的同时发生读取是可行的。
步骤306表示查询文件ID以及USN,在该示例中文件ID将用作该文件的记录的键。注意,如果稍后删除该文件,则使用文件ID作为键(或至少记录文件ID以将该记录稍后用作键)提供了一种移除记录的高效方式。然而,对应于已删除文件的记录不必从散列数据存储中删除,但散列数据存储随后可无限增长。
步骤308表示查询当前日志ID,且步骤310表示计算文件的一个或多个散列。步骤312将散列、USN、日志ID、以及文件ID输入到散列数据存储中。注意,在该示例中,该记录现在可以由文件ID来索引,但可另选地将USN用作键。步骤314关闭文件句柄。
此时,以上文件的散列与状态数据一起被维护在散列数据存储134中,状态数据可用来确定相对于该状态文件内容后来是否被改变。在复制其他文件时(如上所述)和/或在计算文件的散列时(如下所述),后台(或前台)机制140可重复输入过程。
图4示出一个示例散列返回机制130(图1)如何操作,图5示出可执行的可任选步骤。例如,散列返回机制130可以经由诸如GetHash(inHANDLE hFile,in HASHTYPE HashType,out HASH Hash)(获取散列)等函数来访问,其中hFile表示文件句柄。步骤402表示接收这样的调用,其中文件句柄至少作为参数(但还允许提供散列类型信息和任何其他合适的信息)。注意,图4和图5的示例假定调用者具有读访问权并且阻止写。
步骤404示出机制130使用文件句柄来获取文件的元数据,包括文件ID和USN。在该示例中,注意,在步骤406,使用文件ID来在散列数据存储中查找记录。步骤408获取当前文件系统日志ID。
在步骤410,如果经由步骤406的查找未在散列数据存储中找到记录,则分别执行步骤428、430、以及432来计算散列、在散列数据存储为该文件创建并存储记录、并且返回散列值。注意,经由步骤404和406来获取创建记录所需的数据,连同在步骤428计算的散列值。应当注意,步骤410隐式地处理不同类型的散列,例如如果没有找到具有正确类型的散列,则同样执行步骤428、430、以及432。
在步骤410,如果经由步骤406的查找在散列数据存储找到记录,则执行步骤412以相对于记录文件的USN状态和当前日志ID来评估在散列数据存储中维护的状态数据。如果它们两者都匹配,则文件未改变并且因而知道所维护的散列是有效的,由此步骤412分支到步骤420以从散列数据存储返回高速缓存的散列并且该过程结束。
在步骤412,如果改为不存在匹配,则步骤412分支到可任选步骤414(或在该选项不可使用的情况下直接分支到步骤422)以进一步调查文件是否未被改变。注意,步骤422、424、426分别计算散列,在散列数据存储中更新该文件的现有记录,并返回散列值。
转向图5的选项,步骤502评估文件系统的当前日志ID是否至少匹配所维护的该文件的散列数据存储记录。如果为否,则无法进一步告知该文件自记录散列以来是否已经改变,并且因而步骤502分支到该可任选过程中的“失败”分支(步骤518),由此经由图4的步骤416,步骤422、424、以及426将重新计算散列,用于更新散列数据存储记录并返回,如上所述。
如果日志ID相匹配,则随后执行步骤504以高效地查看文件大小是否未被改变(因为如果改变,则内容也被改变,但反之不一定为真)。注意,文件大小是文件元数据的一部分并且因而易于获得,且作为步骤404的一部分确实可被高效地获得。步骤506查找所维护的文件大小,在该示例中其在先前散列计算的时侯被高速缓存在散列数据存储中(如在图2的可任选“文件大小”列中表示)。
在步骤508,如果将文件的当前大小与先前高速缓存的大小相对于彼此评估,如果它们不匹配,则如上所述,取失败分支(步骤518)。如果它们确实匹配并且文件的USN大于高速缓存的USN(意味着日志未被打包),则仍然存在该一个或多个更新是非修改类更新的可能性。日志中将具有这些更新,这些更新处于文件的USN与在散列化时记录在散列数据存储中的USN之间的某处。
步骤510是可被采取来确定对两个USN(经由步骤412和隐式地由步骤514确定为不相等)之间的日志更新的扫描与简单地计算散列相比是否较不高效的步骤。例如,如果USN相对靠近在一起,则相比它们相对远离的情况扫描将更加高效。注意,可以使用经验测试、统计等来确定这一阈值差。如果太过远离,则在步骤510通过取到步骤518的失败分支来计算散列。
为了扫描,评估两个USN之间的条目中的每一个,直到找到内容修改条目或扫描了所有条目并指示没有关于该文件的内容修改更新为止。步骤512和514表示这样的扫描,其一找到任何内容修改条目就结束并取到步骤518的失败分支。否则,扫描完成而没有找到内容修改条目,并且在步骤516返回成功。如通过返回图4的步骤416可看到的,成功分支使得在散列数据存储的文件记录中更新USN(步骤419),并且从散列数据存储返回散列值(步骤420)。
示例性操作环境
图6示出了可在其上实现图1-5中表示的各示例的合适计算系统环境600的示例。计算系统环境600只是合适计算环境的一个示例,而非意在暗示对本发明使用范围或功能有任何限制。也不应该将计算环境600解释为对示例性操作环境600中示出的任一组件或其组合有任何依赖性或要求。
本发明可用各种其他通用或专用计算系统环境或配置来操作。适用于本发明的公知计算系统、环境、和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备、图形输入板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图6,用于实现本发明的各方面的示例性系统可以包括计算机610形式的通用计算设备。计算机610的各组件可以包括但不限于,处理单元620、系统存储器630和将包括系统存储器在内的各种系统组件耦合至处理单元620的系统总线621。系统总线621可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机610通常包括各种计算机可读介质。计算机可读介质可以是能由计算机610访问的任何可用介质,而且包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机610访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任一信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。上述中的任意组合也应包括在计算机可读介质的范围之内。
系统存储器630包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)631和随机存取存储器(RAM)632。基本输入/输出系统633(BIOS)包括如在启动时帮助在计算机610内的元件之间传输信息的基本例程,它通常储存在ROM 631中。RAM 632通常包含处理单元620可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图6示出操作系统634、文件系统635、应用程序636、其他程序模块637和程序数据638。
计算机610也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图6示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器641,对可移动、非易失性磁盘652进行读写的磁盘驱动器651,以及对诸如CD ROM或其他光学介质等可移动、非易失性光盘656进行读写的光盘驱动器655。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器641通常由不可移动存储器接口,诸如接口640连接至系统总线621,磁盘驱动器651和光盘驱动器655通常由可移动存储器接口,诸如接口650连接至系统总线621。
以上描述并在图6中示出的驱动器及其相关联的计算机存储介质为计算机610提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图6中,硬盘驱动器641被示为存储操作系统644、应用程序645、其他程序模块646和程序数据647。注意,这些组件可以与操作系统634、应用程序636、其他程序模块637和程序数据638相同,也可以与它们不同。操作系统644、应用程序645、其他程序模块646和程序数据647在这里被赋予了不同的标号是为了说明至少它们是不同的副本。用户可通过诸如图形输入板或者电子数字化仪664、话筒663、键盘662和定点设备661(通常指的是鼠标、跟踪球或触摸垫)等输入设备向计算机610输入命令和信息。图6中未示出的其他输入设备可以包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合至系统总线的用户输入接口660连接至处理单元620,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器691或其他类型的显示设备也经由接口,诸如视频接口690连接至系统总线621。监视器691也可以与触摸屏面板等集成。注意到监视器和/或触摸屏面板可以在物理上耦合至其中包括计算设备610的外壳,诸如在图形输入板型个人计算机中。此外,诸如计算设备610等计算机还可以包括其他外围输出设备,诸如扬声器695和打印机696,它们可以通过输出外围接口694等连接。
计算机610可使用至一个或多个远程计算机,如远程计算机680的逻辑连接在联网环境中操作。远程计算机680可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,并且通常包括以上相对于计算机610所描述的许多或所有元件,但在图6中仅示出了存储器存储设备681。图6中所示的逻辑连接包括一个或多个局域网(LAN)671和一个或多个广域网(WAN)673,但也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机610通过网络接口或适配器670连接至LAN 671。当在WAN联网环境中使用时,计算机610通常包括调制解调器672或用于通过诸如因特网等WAN 673建立通信的其他装置。调制解调器672可以是内置或外置的,它可以通过用户输入接口660或其他合适的机制连接至系统总线621。诸如包括接口和天线的无线联网组件674等无线网络可以通过诸如接入点或对等计算机等合适的设备耦合到WAN或LAN。在联网环境中,相对于计算机610所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图6示出远程应用程序685驻留在存储器设备681上。可以理解,所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其他手段。
辅助子系统699(例如,用于内容的辅助显示)可经由用户界面660连接以允许诸如程序内容、系统状态和事件通知等数据被提供给用户,即使计算机系统的主要部分处于低功率状态中。辅助子系统699可连接至调制解调器672和/或网络接口670以允许在主处理单元620处于低功率状态中时在这些系统之间进行通信。
结论
尽管本发明易于作出各种修改和替换构造,但在附图中示出并在上面被详细地描述了其某些说明性实施例。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。

Claims (20)

1.一种在计算环境中的系统,包括:
散列数据存储(134),其中多个文件中的每一个文件在所述散列数据存储中都具有一个条目,所述条目包括至少一个散列值和表示所述文件的内容在散列化时间的状态的状态数据,所述散列化时间对应于计算所述文件的所述至少一个散列值的时间;以及
散列返回机制(130),所述散列返回机制耦合到所述散列数据存储以处理对文件的散列值的请求,包括在接收到对文件的散列值的请求后访问所述散列数据存储以在所述散列数据存储中定位所述文件的条目,相对于所述文件的当前状态数据(120)评估与所述文件相关联的状态数据以根据该评估确定所述文件内容(106)是否自所述散列化时间以来未被改变,并且如果未被改变则通过响应于所述请求来从所述散列数据存储(134)返回所述文件的值。
2.如权利要求1所述的系统,其特征在于,所述散列数据存储(134)包括一组记录,每一文件有一个记录,其中在所述文件的记录的一个或多个字段中维护表示所述文件的内容在所述散列化时间的状态的状态数据,包括与文件系统日志(110)中记录的更新相对应的更新号,并且其中所述文件的当前状态数据包括与最后文件更新相对应的另一更新号(118)。
3.如权利要求2所述的系统,其特征在于,所述字段中的更新号同与最后文件更新相对应的所述另一更新号不相等,其中所述状态数据包括所述日志(110)中的与所述文件相对应的一个或多个更新的集合,并且其中所述散列返回机制(130)包括用于扫描(512)所述集合以确定是否有任何更新属于修改所述文件内容的类型的装置,并且如果不存在,则所述散列返回机制响应于所述请求从所述散列数据存储(134)返回所述文件的散列值。
4.如权利要求2所述的系统,其特征在于,所述状态数据还包括与所述日志的实例相对应的日志标识号(118),并且其中所述文件的当前状态数据包括与所述日志的当前文件系统实例相对应的另一日志标识号(114)。
5.如权利要求1所述的系统,其特征在于,所述散列返回机制(130)通过用作键的文件标识符来访问所述散列数据存储(134)以定位所述条目。
6.如权利要求1所述的系统,其特征在于,所述散列返回机制(130)通过用作键的卷标识符和文件标识符来访问所述散列数据存储(134)以定位所述条目。
7.如权利要求1所述的系统,其特征在于,还包括构建或更新、或者既构建又更新所述散列数据存储(134)的机制(140)。
8.一种具有计算机可执行指令的计算机可读介质,所述指令在被执行时执行以下步骤:
a)与为每一文件维护的状态数据相关联地维护(312)文件的高速缓存的散列值,所述状态数据表示所述文件的内容在计算所述散列值时的状态;
b)通过确定(410)是否为所述文件维护了高速缓存的散列值来处理对文件的散列值的请求(402),并且如果未为所述文件维护,则前进到步骤d);
c)根据所述文件的所维护的状态数据和与所述文件的当前状态相关联的信息来确定(412)所述文件内容自所述散列计算的时间以来是否未被改变,并且如果与所述文件的当前状态相关联的信息和所维护的状态数据指示所述文件内容自所述散列计算的时间以来未被改变,则选择(420)所述文件的高速缓存的散列值作为所选散列值并前进到步骤e);
d)计算(428)所述文件的散列值并选择该计算得到的散列值作为所选散列值;以及
e)响应于所述请求返回(420、432)所选散列值。
9.如权利要求8所述的计算机可读介质,其特征在于,处理所述请求确定没有为所述文件维护高速缓存的散列值,并且还具有计算机可执行指令,所述指令包括创建(430)与状态数据相关联地维护所述文件的高速缓存的散列值的信息集合,所述状态数据表示所述文件的内容在步骤d)中计算所述散列值时的状态。
10.如权利要求8所述的计算机可读介质,其特征在于,所述文件的所维护的状态数据和与所述文件的当前状态相关联的信息确定所述文件内容可能被改变,并且还具有计算机可执行指令,所述指令包括更新(424)所述文件的高速缓存的散列值和表示所述文件的文件内容在步骤d)中计算所述散列值时的状态的相关联的状态数据。
11.如权利要求8所述的计算机可读介质,其特征在于,为所述文件维护多个散列值,并且其中处理对所述散列值的请求(402)包括确定是否为所述文件维护了与所述请求相关联的特定类型的高速缓存的散列值。
12.如权利要求8所述的计算机可读介质,其特征在于,所维护的状态数据包括与在文件系统日志中为所述文件记录的更新相对应的更新号和与在记录所述更新时的所述日志的实例相对应的日志标识号,并且其中根据所维护的状态数据和与所述文件的当前状态相关联的信息进行确定包括相对于所述文件维护的更新号和当前日志标识符来评估(412)与所述散列值相关联地维护的所述更新号和日志标识符。
13.如权利要求8所述的计算机可读介质,其特征在于,如果所维护的更新号和日志标识符等于所述文件维护的更新号和所述当前日志标识符,则所述文件内容未被改变,并且其中(502)如果所述更新号不同但所述日志标识符相等或所述更新号指示所述日志未被打包,则根据所维护的状态数据进行确定的步骤还包括计算机可执行指令,所述指令包括扫描(512)与在所述更新号之间记录的更新相对应的一个或多个更新以确定是否有任何更新属于修改所述文件内容的类型,并且如果不存在则认为(516)所述文件内容未被改变。
14.如权利要求13所述的计算机可读介质,其特征在于,如果所述扫描步骤的结果是认为所述文件内容未被改变,则还具有计算机可执行指令,所述指令包括更新所维护的与所述高速缓存的散列值相关联的更新号。
15.如权利要求8所述的计算机可读介质,其特征在于(412)如果所维护的更新号和日志标识符等于所述文件维护的更新号和所述当前日志标识符,则所述文件内容未被改变,并且其中(502)如果所述更新号不同但所述日志标识符相等或所述更新号指示所述日志未被打包,则根据所维护的状态数据进行确定的步骤还包括计算机可执行指令,所述指令包括评估(508)所述散列值维护的文件大小是否与当前文件大小相等,并且如果不相等,则认为(518)所述文件并非未被改变并前进到步骤d),并且如果所述文件大小相等,则扫描(512)与在所述更新号之间记录的更新相对应的一个或多个更新以确定是否有任何更新属于修改所述文件内容的类型,并且如果不存在,则认为(516)所述文件内容未被改变。
16.如权利要求8所述的计算机可读介质,其特征在于(412)如果所维护的更新号和日志标识符等于所述文件维护的更新号和所述当前日志标识符,则所述文件内容未被改变,并且其中(502)如果所述更新号不同但所述日志标识符相等,则根据所维护的状态数据进行确定的步骤还包括计算机可执行指令,所述指令包括根据所述两个更新号确定所述两个更新号之间的差是否超过阈值并且是否指示所述日志未被打包,并且如果是,则认为(518)所述文件内容并非未被改变并前进到步骤d)而不管所述文件内容实际上是否改变,并且如果未超过所述阈值,则扫描(512)与在所述更新号之间记录的更新相对应的一个或多个更新以确定是否有任何更新属于修改所述文件内容的类型,并且如果不存在,则认为(516)所述文件内容未被改变。
17.一种在其中文件系统维护对文件的改变的日志的计算环境中的方法,每一改变与一更新序列号相关联,所述方法包括:
a)维护(312)文件的记录,所述记录包括所述文件的内容的至少一个计算得到的散列值的散列集合和在计算所述文件的所述散列集合时的文件相关数据的集合,所述文件相关数据包括所述文件的更新序列号和标识所述日志的实例的日志标识符;
b)通过将所述散列集合所维护的更新序列号和日志标识符与同所述文件相关联的实际更新序列号和当前日志标识符分别相比较(412)来处理对所述文件的散列值的请求(402),并且如果所述比较指示所述更新序列号和日志标识符相等,则响应于所述请求从所述散列集合返回(420)散列值。
18.如权利要求17所述的方法,其特征在于,所述更新序列号或日志标识符或这两者彼此不分别相等,并且还包括重新计算所述文件的散列集合的至少一部分,包括要响应于所述请求返回的散列值(422);用所述散列集合、用与所述文件相关联的实际更新序列号相对应的值、并用与所述当前日志标识符相对应的值来更新(424)所述记录;以及响应于所述请求返回(426)至少一个散列值。
19.如权利要求17所述的方法,其特征在于,所述更新序列号彼此不相等,并且所述日志未被打包,并且还包括比较(508)所述散列值所维护的文件大小与当前文件大小是否相等,并且如果相等,则扫描(512)与在所述更新序列号之间记录的更新相对应的一个或多个更新来确定是否有任何更新属于修改所述文件内容的修改类型,并且如果不存在这种类型的修改更新,则响应于所述请求从所述散列集合返回(516、416、420)散列值。
20.如权利要求17所述的方法,其特征在于,还包括在处理对所述文件的散列值的任何请求之前构建(306、308、310)所述文件的记录。
CN2008801104922A 2007-10-01 2008-09-22 高效的文件散列标识符计算 Active CN101809566B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/906,302 2007-10-01
US11/906,302 US9424266B2 (en) 2007-10-01 2007-10-01 Efficient file hash identifier computation
PCT/US2008/077155 WO2009045767A2 (en) 2007-10-01 2008-09-22 Efficient file hash identifier computation

Publications (2)

Publication Number Publication Date
CN101809566A true CN101809566A (zh) 2010-08-18
CN101809566B CN101809566B (zh) 2013-09-11

Family

ID=40509571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801104922A Active CN101809566B (zh) 2007-10-01 2008-09-22 高效的文件散列标识符计算

Country Status (4)

Country Link
US (1) US9424266B2 (zh)
EP (1) EP2195749B1 (zh)
CN (1) CN101809566B (zh)
WO (1) WO2009045767A2 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073824A (zh) * 2011-01-12 2011-05-25 深圳昂楷科技有限公司 一种加密文档唯一标识的生成和更新的方法
CN102523299A (zh) * 2011-12-22 2012-06-27 北京邮电大学 基于消息摘要进行内容标识的缓存方法
CN102737064A (zh) * 2011-04-15 2012-10-17 腾讯科技(深圳)有限公司 文件缓存方法及装置
CN103812825A (zh) * 2012-11-07 2014-05-21 腾讯科技(深圳)有限公司 一种文件识别方法、装置及服务器
CN104657679A (zh) * 2015-03-03 2015-05-27 浪潮电子信息产业股份有限公司 一种基于ntfs备选数据流存储文件hash的方法
CN107077483A (zh) * 2014-09-23 2017-08-18 亚马逊技术股份有限公司 共享文件夹和文件的同步
CN108846298A (zh) * 2018-05-23 2018-11-20 马佳明 一种文件内容的篡改检测方法及相关设备
CN110032894A (zh) * 2019-04-09 2019-07-19 北京信安世纪科技股份有限公司 一种数据库日志记录方法及系统和数据库日志检测方法
CN111868714A (zh) * 2018-03-12 2020-10-30 微软技术许可有限责任公司 使用持久且通用的文件标识符来定位文件
CN113076060A (zh) * 2021-03-10 2021-07-06 杭州又拍云科技有限公司 一种单点日志存储方法
CN113966597A (zh) * 2019-06-10 2022-01-21 微软技术许可有限责任公司 使用多个解析器解析分散标识符

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949666B2 (en) * 2004-07-09 2011-05-24 Ricoh, Ltd. Synchronizing distributed work through document logs
US8667273B1 (en) 2006-05-30 2014-03-04 Leif Olov Billstrom Intelligent file encryption and secure backup system
US8479004B2 (en) * 2006-08-31 2013-07-02 Ricoh Co., Ltd Paper-based document logging
US8006094B2 (en) 2007-02-21 2011-08-23 Ricoh Co., Ltd. Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes
US8996483B2 (en) * 2007-03-28 2015-03-31 Ricoh Co., Ltd. Method and apparatus for recording associations with logs
US8752185B2 (en) * 2008-05-01 2014-06-10 Yahoo! Inc. Method for media fingerprinting
US8185733B2 (en) * 2008-10-02 2012-05-22 Ricoh Co., Ltd. Method and apparatus for automatically publishing content based identifiers
US8788841B2 (en) * 2008-10-23 2014-07-22 Samsung Electronics Co., Ltd. Representation and verification of data for safe computing environments and systems
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US10148433B1 (en) 2009-10-14 2018-12-04 Digitalpersona, Inc. Private key/public key resource protection scheme
CN102541870A (zh) * 2010-12-15 2012-07-04 金蝶软件(中国)有限公司 数据表的处理方法及系统
US8566336B2 (en) 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
US8548961B2 (en) 2011-03-30 2013-10-01 Splunk Inc. System and method for fast file tracking and change monitoring
US9383928B2 (en) * 2011-06-13 2016-07-05 Emc Corporation Replication techniques with content addressable storage
US8732401B2 (en) 2011-07-07 2014-05-20 Atlantis Computing, Inc. Method and apparatus for cache replacement using a catalog
US8973135B2 (en) 2011-09-29 2015-03-03 Microsoft Technology Licensing, Llc Selectively scanning objects for infection by malware
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
US9277010B2 (en) 2012-12-21 2016-03-01 Atlantis Computing, Inc. Systems and apparatuses for aggregating nodes to form an aggregated virtual storage for a virtualized desktop environment
US9069472B2 (en) 2012-12-21 2015-06-30 Atlantis Computing, Inc. Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data
US9250946B2 (en) 2013-02-12 2016-02-02 Atlantis Computing, Inc. Efficient provisioning of cloned virtual machine images using deduplication metadata
US9471590B2 (en) 2013-02-12 2016-10-18 Atlantis Computing, Inc. Method and apparatus for replicating virtual machine images using deduplication metadata
US9372865B2 (en) 2013-02-12 2016-06-21 Atlantis Computing, Inc. Deduplication metadata access in deduplication file system
US8959595B2 (en) * 2013-03-15 2015-02-17 Bullaproof, Inc. Methods and systems for providing secure transactions
US10019603B2 (en) 2014-04-16 2018-07-10 Synopsys, Inc. Secured memory system and method therefor
CN106233266A (zh) * 2014-04-16 2016-12-14 新思公司 安全的存储器系统及其方法
CN105099796B (zh) * 2014-04-22 2018-07-20 深圳市志友企业发展促进中心 一种多媒体内容更改检测方法、装置及资源传播系统
US9467166B2 (en) 2015-01-12 2016-10-11 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
US10467001B2 (en) 2015-01-12 2019-11-05 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
US9886442B2 (en) 2015-01-12 2018-02-06 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
US10430182B2 (en) 2015-01-12 2019-10-01 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
RU2634224C2 (ru) * 2015-06-30 2017-10-24 Общество С Ограниченной Ответственностью "Яндекс" Система и способ и постоянный машиночитаемый носитель дублирования файлов на клиентском устройстве для облачного хранилища
US10534708B1 (en) 2018-06-25 2020-01-14 Microsoft Technology Licensing, Llc Shallow cache for content replication
US20210081365A1 (en) * 2019-09-16 2021-03-18 Oracle International Corporation Applying Rules to Client Updates on Shared Records to Trigger System-Generated Updates

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475826A (en) * 1993-11-19 1995-12-12 Fischer; Addison M. Method for protecting a volatile file using a single hash
US5893086A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Parallel file system and method with extensible hashing
US6638314B1 (en) * 1998-06-26 2003-10-28 Microsoft Corporation Method of web crawling utilizing crawl numbers
JP3450786B2 (ja) 1999-03-05 2003-09-29 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド 異なるデータファイルを調停する方法
US6629198B2 (en) * 2000-12-08 2003-09-30 Sun Microsystems, Inc. Data storage system and method employing a write-ahead hash log
US7069594B1 (en) * 2001-06-15 2006-06-27 Mcafee, Inc. File system level integrity verification and validation
US7526654B2 (en) 2001-10-16 2009-04-28 Marc Charbonneau Method and system for detecting a secure state of a computer system
US7587613B2 (en) * 2001-12-21 2009-09-08 Creative Mines Llc Method and apparatus for selectively enabling a microprocessor-based system
AU2004214014B2 (en) * 2003-02-21 2009-10-22 Datacore Software Corporation Additional hash functions in content-based addressing
US7412449B2 (en) 2003-05-23 2008-08-12 Sap Aktiengesellschaft File object storage and retrieval using hashing techniques
US7519726B2 (en) * 2003-12-12 2009-04-14 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
CN100562096C (zh) * 2003-12-18 2009-11-18 松下电器产业株式会社 用于存储、认证以及执行应用程序的方法
US7577848B2 (en) 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7188230B2 (en) * 2005-02-15 2007-03-06 Hitachi, Ltd. Method of assuring data integrity on storage volumes
US20060253440A1 (en) 2005-05-09 2006-11-09 Ibm Confidential Eliminating file redundancy in a computer filesystem and establishing match permission in a computer filesystem
US7523319B2 (en) * 2005-11-16 2009-04-21 Lenovo (Singapore) Pte. Ltd. System and method for tracking changed LBAs on disk drive
US20080215849A1 (en) * 2007-02-27 2008-09-04 Thomas Scott Hash table operations with improved cache utilization

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073824A (zh) * 2011-01-12 2011-05-25 深圳昂楷科技有限公司 一种加密文档唯一标识的生成和更新的方法
CN102073824B (zh) * 2011-01-12 2014-06-04 深圳昂楷科技有限公司 一种加密文档唯一标识的生成和更新的方法
CN102737064B (zh) * 2011-04-15 2016-02-24 腾讯科技(深圳)有限公司 文件缓存方法及装置
CN102737064A (zh) * 2011-04-15 2012-10-17 腾讯科技(深圳)有限公司 文件缓存方法及装置
CN102523299A (zh) * 2011-12-22 2012-06-27 北京邮电大学 基于消息摘要进行内容标识的缓存方法
CN102523299B (zh) * 2011-12-22 2014-02-26 北京邮电大学 基于消息摘要进行内容标识的缓存方法
CN103812825B (zh) * 2012-11-07 2017-02-08 腾讯科技(深圳)有限公司 一种文件识别方法、装置及服务器
CN103812825A (zh) * 2012-11-07 2014-05-21 腾讯科技(深圳)有限公司 一种文件识别方法、装置及服务器
CN107077483A (zh) * 2014-09-23 2017-08-18 亚马逊技术股份有限公司 共享文件夹和文件的同步
CN107077483B (zh) * 2014-09-23 2021-03-26 亚马逊技术股份有限公司 共享文件夹和文件的同步
CN104657679A (zh) * 2015-03-03 2015-05-27 浪潮电子信息产业股份有限公司 一种基于ntfs备选数据流存储文件hash的方法
CN111868714A (zh) * 2018-03-12 2020-10-30 微软技术许可有限责任公司 使用持久且通用的文件标识符来定位文件
CN108846298A (zh) * 2018-05-23 2018-11-20 马佳明 一种文件内容的篡改检测方法及相关设备
CN110032894A (zh) * 2019-04-09 2019-07-19 北京信安世纪科技股份有限公司 一种数据库日志记录方法及系统和数据库日志检测方法
CN113966597A (zh) * 2019-06-10 2022-01-21 微软技术许可有限责任公司 使用多个解析器解析分散标识符
CN113966597B (zh) * 2019-06-10 2023-06-20 微软技术许可有限责任公司 使用多个解析器解析分散标识符
US11916919B2 (en) 2019-06-10 2024-02-27 Microsoft Technology Licensing, Llc Resolving decentralized identifiers using multiple resolvers
CN113076060A (zh) * 2021-03-10 2021-07-06 杭州又拍云科技有限公司 一种单点日志存储方法

Also Published As

Publication number Publication date
CN101809566B (zh) 2013-09-11
WO2009045767A2 (en) 2009-04-09
US20090089337A1 (en) 2009-04-02
EP2195749A4 (en) 2011-04-06
US9424266B2 (en) 2016-08-23
WO2009045767A3 (en) 2009-06-04
EP2195749A2 (en) 2010-06-16
EP2195749B1 (en) 2018-01-31

Similar Documents

Publication Publication Date Title
CN101809566B (zh) 高效的文件散列标识符计算
CN101777062B (zh) 场境感知的实时计算机保护系统和方法
US8612398B2 (en) Clean store for operating system and software recovery
US9455955B2 (en) Customizable storage controller with integrated F+ storage firewall protection
CN109074452B (zh) 用于生成绊网文件的系统和方法
TWI471726B (zh) 快取資料與元資料之管理
CN101310472B (zh) 用以支持获信任环境的计算机可读组件的自动更新
US10789062B1 (en) System and method for dynamic data deduplication for firmware updates
CN102067148B (zh) 用于确定文件分类的方法及系统
CN102323930B (zh) 对数据库系统中的数据变更进行镜像
CN103400075A (zh) 基于硬件的反病毒扫描服务
CN1808326A (zh) 使用部分映像散列确认可执行文件完整性的系统和方法
US11275835B2 (en) Method of speeding up a full antivirus scan of files on a mobile device
US20090327295A1 (en) Maintenance of exo-file system metadata on removable storage device
JP2010182019A (ja) 異常検知装置およびプログラム
CN104769598A (zh) 用于检测非法应用程序的系统和方法
US20130125237A1 (en) Offline extraction of configuration data
US11550913B2 (en) System and method for performing an antivirus scan using file level deduplication
US20200311270A1 (en) Systems and methods for anti-malware scanning using automatically-created white lists
CN110598467A (zh) 一种内存数据块完整性检验方法
JP4807289B2 (ja) 情報処理装置及びファイル処理方法並びにプログラム
US20050010752A1 (en) Method and system for operating system anti-tampering
CN109583204B (zh) 一种混合环境下静态对象篡改的监测方法
US20210089497A1 (en) Method, device, and computer program product for managing data object
KR102294926B1 (ko) 원본 데이터의 자동 추출을 통한 분석 데이터 자동 형성 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150513

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150513

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.