CN1828590B - 用于编码元数据的方法和系统 - Google Patents

用于编码元数据的方法和系统 Download PDF

Info

Publication number
CN1828590B
CN1828590B CN2006100037976A CN200610003797A CN1828590B CN 1828590 B CN1828590 B CN 1828590B CN 2006100037976 A CN2006100037976 A CN 2006100037976A CN 200610003797 A CN200610003797 A CN 200610003797A CN 1828590 B CN1828590 B CN 1828590B
Authority
CN
China
Prior art keywords
group
field
identifier
fields
block header
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.)
Expired - Fee Related
Application number
CN2006100037976A
Other languages
English (en)
Other versions
CN1828590A (zh
Inventor
A·马里内斯库
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 CN1828590A publication Critical patent/CN1828590A/zh
Application granted granted Critical
Publication of CN1828590B publication Critical patent/CN1828590B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

一般而言,本发明的各个实施例提供一种系统和方法,用于保护计算机免遭(故意或无意的)有害攻击和缓冲区溢位。特别地,本发明的各个实施例保护数据块的块标题内容,并使能存储器管理程序具有确定块标题的一部分是否已更改的能力。根据本发明的一方面,提供了一种用于保护具有多个字段的数据的方法。该方法包括将多个字段分成至少第一组和第二组,并产生第一组的第一标识符和第二组的第二标识符。此外,该第一和第二组被编码成保护在各组字段中所包含的信息。另外,第一和第二标识符也可被编码到各组中。

Description

用于编码元数据的方法和系统
技术领域
本发明一般涉及计算机和计算机数据,尤其涉及用于编码分块元数据的系统和方法。
背景技术
目前,计算机的存储器由在此通常称为“存储器管理程序”的一部分计算机操作系统管理。当计算机程序或其它计算应用程序(在此统称为“应用程序”)需要存储器来执行操作、存储数据、或执行其它功能时,它通过向存储器管理程序提供所需存储器量的标识来从存储器管理程序中请求所需存储器。作为响应,存储器管理程序分配所请求数量的存储器(在此称为“块”)、产生标识并描述该块的块标题、并允许发出请求的应用程序访问所分配的存储器。该块标题通常包括由存储器管理程序创建并由该存储器管理程序用来管理该存储器的若干字段。例如,块标题的字段可包括块大小的表示、与前一块的链接的表示、块标记、未使用字节和其它内部的块状态。
块的大小可包括响应存储器请求而分配的块的大小的标识。标记字段可由存储器管理程序用来标识所述块是否忙碌、空闲、内部分配等。未使用字节可向存储器管理程序标识未被发出请求的应用程序使用的分配块的字节。一般而言,块标题的字段由存储器管理程序使用,并期望是私密的且仅由存储器管理程序更改。此外,块标题的各个字段可在内容、数量和大小上改变。
图1是包括两个分配块101和102的一部分存储器区域的框图。每个块101、102都包括块标题,它包括分成字段的标识该块的元数据。例如,块102包括块标题103。块标题103包括有关分成6个字段105、107、109、111、113、115的块102的元数据。每个字段105、107、109、111、113、115包括由存储器管理程序用来管理块102的信息。
尽管使用块标题使得管理数据更加有效,但它可能会使计算系统遭受攻击和非预期差错。例如,应用程序可请求特定数量的存储器,分配该数量的存储器,但写入比所分配存储器能容纳的更多的数据。因而,存储器区域中的下一个块标题、以及可能下一个块的一部分数据会被改写,从而产生会导致不可预测结果的不一致性。写入比所分配存储器更多的数据通常称为“缓冲区溢位”(buffer overrun)。缓冲区溢位可因应用程序的疏忽不当编码所致。然而,缓冲区溢位可有意编程,以尝试控制一部分存储器并执行有害代码。
图2是包括写有导致缓冲区溢位的有害代码的两个数据块的存储器区域的框图。继续参照图1讨论的存储器区域,应用程序可请求写入数据所需的特定数量存储器。作为响应,存储器管理程序可从数据区域200分配一数据块201、产生该数据块201的块标题216、并允许发出请求的应用程序写该块。如图1和2可见,所分配的数据块201在存储器区域200中可与另一分配的数据块202相邻,该数据块202也包括块标题203和数据块217。
当许可对块201的访问时,应用程序会在无意中写入比所分配存储器更多的数据,导致将数据写入块标题203以及可能相邻存储器块201的数据块217的一部分的缓冲区溢位。当一些改写的块标题字段205、207、209、211、213、215由存储器管理程序使用时,可注意到不一致性并可通过执行像引发例外、终止应用程序、记录差错等动作来避免不可预测结果。
有害代码的创建者可在努力控制应用程序时,尝试向存储器管理程序隐藏故意的缓冲区溢位,从而不能检测到溢位,或者防止应用程序因不一致而崩溃。一种用于隐藏缓冲区溢位的技术是尝试恢复块标题的特定字段。特别地,有害代码的创建者可预测块标题的哪些字段会导致存储器管理程序检测缓冲区溢位,并在有害代码能控制之前终止该应用程序。使用该知识,可对那些字段预测好的值,且尝试恢复那些字段的数据可包括在那些字段的位置处的缓冲区溢位中。例如,如果有害代码的作者能预测:假如字段3209和字段4211改变,存储器管理程序将检测缓冲区溢位,则基于该知识可创建缓冲区溢位,使写入到那些字段位置的数据与原来包括在那些字段中的数据相同。
如果有害代码通过预测特定字段209和211的好的值成功隐藏缓冲区溢位,则它可能更改块标题205、207、213和219中的其它字段,从而当存储器管理程序访问那些字段时,有害代码能控制应用程序并可能导致对计算机的预期有害结果,诸如在目标应用程序中执行一段有害代码。
因此,需要可用来在被有害代码利用之前检测所尝试的缓冲区溢位的一种系统和方法。这种系统和方法将有利于防止计算机遭受有害攻击,并提供在应用程序开发早期检测疏忽编程缺陷的能力,而不必支付影响性能、存储器使用等的其它调试方法的额外开支。
发明内容
一般而言,本发明的各个实施例提供一种系统和方法,用于检测计算机是否受到有害攻击并检测缓冲区溢位。此外,本发明的各个实施例降低了利用缓冲区溢位和与使用存储器管理程序功能相关的其它缺陷的有害代码的风险。特别地,本发明的各个实施例保护数据块的块标题内容,并使能存储器管理程序具有确定块标题的一部分是否已被更改的能力。
根据本发明的一方面,提供了一种用于保护具有多个字段的数据的方法。该方法包括将多个字段分组成至少第一组和第二组,并产生第一组的第一标识符和第二组的第二标识符。此外,该第一和第二组被编码以保护各组字段中所包含的信息。另外,第一和第二标识符也可被编码到各组中。
根据本发明的另一方面,提供一种具有其中包括计算机可执行程序的计算机可读介质的计算机系统,该计算机可执行程序用于执行提供对至少一部分数据的访问的方法,其中数据被分成多个组。所执行的方法包括:接收对一部分数据的访问请求、并确定对应于访问请求的多个数据组的至少一个组。然后所确定的组进行解码并可任选地校验标识符是否是先前为该解码组创建的。在校验解码后的组之后,允许对该部分数据进行访问。
根据本发明的又一实施例,提供一种具有存储其上的指令的计算机可访问介质,这些指令使计算系统:将块标题的多个字段分组成至少两个组,产生该至少两个组的第一组的第一标识符,编码第一组和第一标识符,并编码第二组。
附图说明
结合附图参阅以下详细说明书,本发明的前述各方面和许多伴随优点将变得更易理解,附图中:
图1是包括两个分配块的一部分存储器区域的框图;
图2是包括两个数据块的存储器区域的框图,在这些数据块中写入了导致缓冲区溢位的有害代码;
图3是根据本发明一实施例的编码后块标题的框图,该块标题被编码为检测因缓冲区溢位和其它非故意或恶意的未授权访问尝试所导致的标题元数据的破坏,并降低了恶意代码利用其它因存储器管理程序功能导致的其它弱点的可能性;
图4是根据本发明一实施例的编码后块标题的框图,其中块标题的字段分组并分别编码;
图5是示出根据本发明一实施例的用于编码一字段组的编码例程的流程图;
图6是示出根据本发明一实施例的用于解码一字段组的解码例程的流程图。
具体实施方式
图3是根据本发明一实施例的编码后块标题的框图,该块标题被编码为检测因缓冲区溢位和其它非故意或恶意的未授权访问尝试所导致的标题元数据的破坏,并降低了恶意代码利用其它因存储器管理程序功能导致的其它弱点的可能性。此外,参照图3描述的实施例可用来标识编程差错,而无需标识缓冲区溢出的复杂调试开支。
在该实施例中,块标题303的全部字段使用诸如加密的任何类型编码技术来编码,从而增加预测和/或发现标题各个字段的值和位置的难度。为了基于过去对各字段的查看来预测好的值,各字段必须解码以确定那些字段中所包含的值。如下所述,因为所有的编码和解码都由存储器管理程序来执行,所以编码技术的完整性和保密性可因不需要共享编码/解码算法和/或编码/解码密钥而得到高度地保持。
尽管在此所述的各个实施例包括对具有6个字段的块标题的各个字段分组,但是可以理解任何数量的字段都可包括在标题中并进行分组。此外,字段可以是任意大小的,各字段的大小可相同或不同,且每个字段可基于存储器管理程序的需要而动态地产生。
编码各字段也增加了将好的值(即使是已预测的)写入特定字段的难度。特别地,即使假设确定了好的值,缓冲区溢位数据必须使用适当编码算法和用于编码原始值的密钥进行编码。如果编码不准确,则即使值准确,在由存储器管理程序解码时,预期值也不会产生且存储器管理程序将检测到更改,从而在恶意代码有机会进行控制之前终止该应用程序。
编码技术的示例包括但不限于对称(私钥)加密。然而,因为存储器管理程序是期望能编码和/或解码块标题的唯一程序,所以无需共享用来编码信息的私钥和/或算法。此外,所使用的密钥和/或所使用的算法可由存储器管理程序改变,以进一步增加访问和改写块标题数据的难度。例如编码密钥和/或算法可对不同的存储器管理程序、不同的存储器区域、不同的存储器块等不同。此外,编码密钥和/或编码算法可周期性地变化。例如,编码密钥和/或算法可在每次编码标题时(例如每天、启动等)变化。尽管本发明的各个实施例将参照使用一种私钥加密编码块标题来进行描述,可以理解可使用任何类型编码技术来加密块标题,且在此提供的描述仅作为解释目的而并非被理解为限制本发明的范围。
除了编码块标题之外,在编码之前,标题的各个字段可重新安排,从而进一步增加预测应写入预测值的位置的难度。例如,不以相同顺序组织所有块标题的字段,例如字段1-6,而是各字段可在编码之前重新组织使它们以下列顺序-字段3、字段6、字段1、字段2、字段5、字段4-或任何其它顺序出现。类似于所使用的编码技术,各字段可周期性地重新组织并可对每个块标题都不同。例如,每次编码标题时,各字段都可在编码之前重新组织。或者,各字段可在任何其它时间重新组织并按任何顺序放置。重新组织块标题的各个字段进一步增加了确定各字段位置并预测各字段的值的难度。
此外,在编码块标题之前,可产生块标题的标识符,该标识符由存储器管理程序用来在解码块标题时确认它。标识符可以是例如校验和、散列值、随机赋予的值等。在校验和或散列值的情形中,存储器管理程序对块标题运算公式,且返回值被存储为该块标题的标识符。该标识符可与标题一起存储,并可由存储器管理程序分别编码、存储(例如在表格中),或可与标题一起存储,或由存储器管理程序独立编码和存储。在验证时,对块标题运算同一公式以计算新值,并对存储值和新值作比较。
在随机数的情形中,随机数产生并与加密后标题一起存储,且存储器管理程序还维护包含随机生成数的表格。在解码块标题时,与块标题一起存储的随机数通过对它和由存储器管理程序存储的数作比较来验证。尽管校验和、散列值和随机数在此被描述为用来验证块标题的标识符,可以理解任何类型的标识符可用来验证块标题。
尽管重新排列块标题字段的顺序、编码该标题、以及产生标题的标识符增加了不经检测而改变块标题元数据的难度,但是当尝试执行对块标题各字段的多次访问时产生了同步(锁定)的复杂性。因而,根据本发明另一实施例,块标题的各字段可分组并分别编码。
图4是根据本发明一实施例的编码后块标题的框图,其中块标题的各字段分组并分别编码。数据块402的块标题403使得块标题的各个字段分组并分别编码。例如,字段3409、字段6415和字段1405可组合并一起编码,而其它各字段可组合在一个或多个其它组中并编码。如以下参照图5要详述的,各字段可基于访问要求、锁定要求、随机分组、或基于各字段之间的任何其它关系来分组。
类似于参照图3所述的实施例,该实施例可用来在开发阶段早期标识编程差错,因为它将标识缓冲区溢出和与存储器管理程序功能相关的其它缺陷。此外,任何数量和/或大小的字段可组合在一起。
类似于产生标题的标识符,还可产生每个组的标识符,该标识符与组一起存储和/或由存储器管理程序存储。例如,组1407可被散列编码,且结果散列值被用作标识符。该散列值可由存储器管理程序与组1407分开存储。可计算组2410的校验和,它与组2410的各字段一起存储。块标题403的其余字段可被包括在第三组-组3411中。对组3411未分配标识符。如前所述,可使用任何技术(例如校验和生成、散列或随机数生成)来产生各组的标识符,或者对一个或多个组不计算标识符。
除了任选地将标识符分配给块标题403的每个组之外,各组可使用任何类型的编码技术来各自编码。每个组可使用不同技术来进行编码,或者可对每个组应用相同技术的不同值/算法。继续图4示例,可使用采用不同算法和/或密钥来编码每个组的私钥加密来编码各个组。例如,存储器管理程序可维护在编码对应于特定锁定要求的各字段时使用的第一算法和密钥,以及用于编码对应于另一锁定要求的各字段的另外算法和密钥。此外,并非所有组都需要进行编码。因而,访问频繁并且在更改时容易检测到的各个组可保持解码状态,而其它组则可被编码。
如存储器管理程序领域所众所周知的,多个锁可用来控制对存储器的并发访问。例如,排他锁可用来仅允许一个应用程序访问,直到该锁释放。或者,非排他性或共享的锁可用来允许多个执行线程对存储器的并发访问,只要该锁不是排他性拥有的。通常,排他性锁被用来许可对数据结构的写访问,而共享锁通常用来许可对数据的读访问,其中没有人可更改数据。因为有若干种不同的可用来控制对存储器的访问的锁定方案,且本发明各实施例可用于任何类型的锁定方案,锁和锁定要求在此被统称为Lock(锁)。此外,锁和/或锁定要求之间的差异将通过参照Lock 1、Lock 2、Lock 3等示出,其中每个编号Lock表示一不同的锁或锁定要求。
回到本示例,存储器管理程序可维护对应于Lock 1的第一密钥和算法,并使用该第一密钥和算法来编码组1407,该组包括与Lock 1相关的各个字段。类似地,存储器管理程序可维护对应于Lock 2的第二密钥和算法,并使用该第二密钥和算法来编码组2410。可使用对应于Lock 3的第三密钥与算法来编码组3411。尽管这示出了使单个密钥和算法关联于不同组的简单示例,其中各个字段根据锁定要求来分组,但是根据本发明各实施例可使用许多变体。
例如,存储器管理程序可维护对应于不同锁定要求的密钥和算法库,而用来编码特定块标题的组的实际密钥和/或算法可在每次编码该组时从库中随机选取。
此外,在编码之前组407、409、411内的各个字段也可排列成以不同顺序出现。例如,在组2410中的字段1405、字段3409、字段6415可排列成使字段3409在先、字段6415次之、字段1405最后。各字段的排列可在系统、存储器管理程序、块、使用等基础上进行。例如,每当存储器管理程序访问一个组时,该组的各个字段可在再次编码之前重新组织。
图5是示出根据本发明一实施例的用于编码一字段组的编码例程的流程图。图5-6示出用于执行特定功能的各个框。在其它实施例中,可使用更多或更少的框。在本发明一实施例中,框可表示单个或组合的软件程序、软件对象、软件功能、软件子例程、软件方法、软件实例、代码分段、硬件操作、或用户操作。编码例程500从框501开始,且在框503存储器管理程序标识要编码的块标题的各个字段。这些字段可以是在存储器管理程序响应于存储器请求分配存储器时创建的块标题的所有字段。或者,这些字段可以是要重新编码的先前已解码的现有块标题的所有字段。
一般而言,基于一些关系来分组各字段是有利的。例如,各字段可基于共同的锁定要求、基于同时访问的要求、基于大小等来分组。例如,块标题的一些字段仅可使用Lock 1来访问,该Lock 1是诸如排他性锁的特定锁定要求;另一个组通常可基于Lock 2要求来访问;而又一个组可基于Lock 3要求来访问。因而,可确定块标题的各字段要分成三组-由Lock 1访问的各字段的一个组、由Lock 2访问的各字段的一个组、而由Lock 3访问的各字段的第三个组。
在框507,各字段根据各字段之间的关系来分组。取决于所需安全、字段数量、字段之间的关系和任何体系结构-特定限制,各字段可分成一个或多个组。所有字段可被包括在一个组中,这将表示以上参照图3描述的示例。或者,各字段可分成多个组,或一个或多个字段可本身包括在一个组中。
再参看图4,字段3409、字段6415、字段1405因为它们都相关而组合在一起。在框509,一个组的各个字段被排列成进一步打乱各字段的排列和值并使字段值和位置的预测更困难。如上所述,一个组的各个字段可以任何顺序并根据任何排列方案排列。例如,一个组中各个字段的排列可以是随机的、基于各字段大小、访问各字段的频率的、基于字段中所包含值的等等。例如,组2的字段1405、字段3409、字段6415(图4)被排列成字段3409在先、字段6415其次、字段1405最后。可以理解,任何排列方案可用于排列一个组中的各个字段。此外,如上所述,一个组内各个字段的排列可周期性地变化。例如,一个组的各个字段可在每次编码字段时重新排列。如果有影响字段的分组或排列的体系结构-特定限制,则各字段可根据那些限制来分组和排列。例如,如果强加了有关访问对齐字段或访问一组字段的限制,则各字段可以使能与那些限制一致的方式来进行组合和排列。
在判定框511,确定是否要产生一标识符并使其与一个组相关联。如果确定要产生一标识符并使其与一个组相关联,则在框513产生一标识符。标识符可用各种方法的任一种来产生。例如,标识符可以是,但不限于是,与该组相关联的随机生成数、为该组计算的散列值、为该组计算的校验和值等。此外,在使标识符与该组相关联时,该标识符可以与该组的各个字段一起存储、可包括为该组的一个字段、由存储器管理程序与该组分开维护、或者与该组一起存储并由存储器管理程序与该组分开维护。
在标识符在框513产生之后,或者如果在判定框511确定不计算标识符,则在框515编码该组以及(可选地)该标识符。编码可使用任何类型的编码技术来完成。例如,存储器管理程序可维护用来编码一组数据的密钥和算法列表。此外,对于每一组标题块,可使用不同的编码方案、算法和/或密钥。
在判定框517,确定是否还有其它组要编码。如果确定还有其它块要编码,则例程500返回框509并继续。然而,如果确定没有其它组要编码,则例程500完成,如框519所示。
图6是根据本发明一实施例的用于解码块标题的至少一部分的解码例程的流程图。该解码例程从框601开始,且在框603存储器管理程序接收对包括编码后标题的存储器块的访问请求。在框605,存储器管理程序基于访问请求确定需要解码哪些加密的块标题组。例如,如果访问请求需要一排他性锁,则包含标识该锁的字段的编码后组将需要解码。
在框605确定要解码的(各个)组之后,在框607,所确定组之一使用适当的解码技术来解码。该适当解码技术对应于编码该组使用的技术。这种信息由存储器管理程序维护,因为它是编码该组的程序。例如,如果该组使用密钥和特定算法编码,则该密钥和相应编码算法被用来解码该组。在解码该组之后,在判定框609,基于分配给该组的标识符确定是否要校验该组。如果解码后的组包括一标识符,或者如果标识符被分配给该组并由存储器管理程序维护,则校验该标识符,如框611所示。例如,如果该组的散列值被计算并包括在编码后的组中,则在解码后再次计算该组的散列值并与该组内所包括的散列值作比较。如果两个散列值相同,则该组未被缓冲区溢位更改。然而,如果散列值不相同,则该组已被更改且存储器管理程序可拒绝该请求并终止应用程序,从而降低了有害代码可保持隐藏并可能进行控制的可能性。
一旦在框611已校验了解码后组的内容,或者如果在判定框609确定不校验该内容,则在判定框613确定响应于访问请求是否有其它组要解码。如果确定还有其它组要解码,则例程600返回到框607并继续。然而,如果确定没有其它组解码,则在框615,例程继续且存储器管理程序被允许访问解码后组的各个字段。此外,响应于被许可的访问,存储器管理程序可更改已经解码的一部分或全部字段。在适当组已解码并许可存储器管理程序的访问时例程结束,如框617所示。
尽管已示出并描述了本发明的各个实施例,但可以理解可作出各种改变而不背离本发明的精神和范围。

Claims (18)

1.一种用于保护具有多个字段的块标题数据的方法,所述方法包括:
将多个字段分组成至少第一组和第二组;
产生所述第一组的第一标识符和所述第二组的第二标识符;
编码所述第一组;以及
编码所述第二组。
2.如权利要求1所述的方法,其特征在于,所述第一组包括所述多个字段中的至少两个,所述方法还包括:
响应于将所述多个字段分组,并且在产生所述第一组的第一标识符和所述第二组的第二标识符之前,排列所述第一组中的至少两个字段。
3.如权利要求1所述的方法,其特征在于,所述第一标识符与所述第一组一起编码。
4.如权利要求1所述的方法,其特征在于,将所述多个字段分组包括:
确定所述多个字段之间的关系;以及
根据所确定的所述多个字段之间的关系将所述各字段分组。
5.如权利要求1所述的方法,其特征在于,将所述各字段分组包括:
以随机顺序将所述各字段分组。
6.如权利要求1所述的方法,其特征在于,所述第一标识符是对所述第一组产生的校验和。
7.一种提供对至少一部分块标题数据的访问的方法,其中所述块标题数据被分成多个组,所述方法包括:
接收对一部分块标题数据的访问请求;
确定对应于所述访问请求的多个块标题数据组中的至少一个组,其中所确定的至少一个组包括一标识符;
解码所确定的至少一个组;
校验解码后的至少一个组的标识符;以及
许可对解码后的至少一个组的访问。
8.如权利要求7所述的方法,其特征在于,所述多个组中的至少一个组包括多个字段,而其中确定至少一个组包括:
标识对应于所述访问请求的多个字段中的一个字段;以及
基于所标识的字段确定至少一个组。
9.如权利要求7所述的方法,其特征在于,还包括:
从用于解码所确定的至少一个组的多个解码算法中选择一解码算法。
10.如权利要求7所述的方法,其特征在于,还包括:
从用于解码所确定的至少一个组的多个解码密钥中选择一解码密钥。
11.如权利要求7所述的方法,其特征在于,校验解码后的至少一个组包括:
产生表示所述解码后组的标识符,并将所产生的标识符与所述解码后组的已知标识符进行比较。
12.如权利要求11所述的方法,其特征在于,所述已知标识符包括在所述解码后组中。
13.如权利要求11所述的方法,其特征在于,所产生的标识符是一校验和。
14.如权利要求11所述的方法,其特征在于,所述已知标识符是先前对所述组所产生的一校验和。
15.一种用于保护具有多个字段的块标题数据的方法,所述方法包括:
将所述块标题数据的多个字段分组成至少两个组;
产生所述至少两个组的第一组的第一标识符;
编码所述第一组和所述第一标识符;以及
编码所述第二组。
16.如权利要求15所述的方法,其特征在于,所述第一组包括至少两个字段,且其中所述字段按随机顺序排列。
17.如权利要求15所述的方法,其特征在于,所述第一组和第一标识符使用第一加密算法编码,而所述第二组使用第二算法编码。
18.如权利要求15所述的方法,其特征在于,所述第一组和第一标识符使用第一加密密钥编码,而所述第二组使用第二密钥编码。
CN2006100037976A 2005-03-03 2006-02-10 用于编码元数据的方法和系统 Expired - Fee Related CN1828590B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/072,356 2005-03-03
US11/072,356 US7350040B2 (en) 2005-03-03 2005-03-03 Method and system for securing metadata to detect unauthorized access

Publications (2)

Publication Number Publication Date
CN1828590A CN1828590A (zh) 2006-09-06
CN1828590B true CN1828590B (zh) 2010-06-23

Family

ID=36440861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100037976A Expired - Fee Related CN1828590B (zh) 2005-03-03 2006-02-10 用于编码元数据的方法和系统

Country Status (5)

Country Link
US (1) US7350040B2 (zh)
EP (1) EP1698970B1 (zh)
JP (1) JP4914080B2 (zh)
KR (1) KR101183432B1 (zh)
CN (1) CN1828590B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2922200A1 (en) 2004-10-25 2006-05-04 Security First Corp. Secure data parser method and system
BRPI0618725A2 (pt) * 2005-11-18 2011-09-06 Rick L Orsini método analisador de dados seguro e sistema
US8806439B1 (en) * 2007-04-30 2014-08-12 AT & T Intellectual Property II, LP System and method for program stack security
US20090055346A1 (en) * 2007-08-23 2009-02-26 Yahoo! Inc. Scalable Ticket Generation in a Database System
US8554718B2 (en) * 2008-02-12 2013-10-08 Rockstar Consortium Us Lp Method and system for client context dissemination for web-based applications
KR101541911B1 (ko) * 2008-07-16 2015-08-06 삼성전자주식회사 사용자 인터페이스에서 보안 서비스를 제공하는 장치 및 방법
US9189363B2 (en) * 2010-10-07 2015-11-17 Mcafee, Inc. System, method, and computer program product for monitoring an execution flow of a function
KR101476113B1 (ko) 2011-08-02 2014-12-23 캐비엄, 인코포레이티드 룩업 클러스터 컴플렉스
US9246882B2 (en) * 2011-08-30 2016-01-26 Nokia Technologies Oy Method and apparatus for providing a structured and partially regenerable identifier
US9948695B2 (en) * 2012-03-16 2018-04-17 Alcatel Lucent Enabling delivery of protected content using unprotected delivery services
AU2014216207A1 (en) 2013-02-13 2015-09-10 Security First Corp. Systems and methods for a cryptographic file system layer
CN103684761B (zh) * 2013-12-25 2017-02-01 广西宝恒电子科技有限公司 一种加密解密方法
US9544402B2 (en) * 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
CN104780041B (zh) * 2014-01-15 2017-04-05 江苏南大苏富特科技股份有限公司 一种智能密码保护生成方法
KR101445634B1 (ko) * 2014-01-27 2014-10-06 주식회사 이글루시큐리티 프로그램의 취약점을 이용한 공격의 탐지 장치 및 방법
KR102652293B1 (ko) 2016-03-03 2024-03-29 에스케이하이닉스 주식회사 메모리 관리방법
KR101780652B1 (ko) * 2016-03-11 2017-09-21 주식회사 이디엄 열-지향 레이아웃 파일 생성 방법
US10185507B1 (en) * 2016-12-20 2019-01-22 Amazon Technologies, Inc. Stateless block store manager volume reconstruction
US11507283B1 (en) 2016-12-20 2022-11-22 Amazon Technologies, Inc. Enabling host computer systems to access logical volumes by dynamic updates to data structure rules
US10268593B1 (en) 2016-12-20 2019-04-23 Amazon Technologies, Inc. Block store managamement using a virtual computing system service
US10921991B1 (en) 2016-12-20 2021-02-16 Amazon Technologies, Inc. Rule invalidation for a block store management system
US10809920B1 (en) 2016-12-20 2020-10-20 Amazon Technologies, Inc. Block store management for remote storage systems
KR102627490B1 (ko) * 2017-05-26 2024-01-19 엔체인 홀딩스 리미티드 스크립트 기반 블록체인 상호작용
US11558401B1 (en) * 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
US20240248771A1 (en) * 2023-01-19 2024-07-25 Dell Products L.P. Lock release management in a distributed system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1234125A (zh) * 1996-08-09 1999-11-03 特利思姆科技公司 具有多个启用存储区段的数据的灵巧卡读卡机
CN1245925A (zh) * 1998-07-16 2000-03-01 索尼公司 数据存储设备和数据存储方法
US6418527B1 (en) * 1998-10-13 2002-07-09 Motorola, Inc. Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
CN1536807A (zh) * 2003-04-07 2004-10-13 西科姆株式会社 文件安全传送系统及其方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4028667A (en) * 1975-12-22 1977-06-07 International Business Machines Corporation Asynchronous, hierarchical loop communication system with independent local station control of access to inbound time portions without central control
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
US5559980A (en) * 1993-03-18 1996-09-24 Lucent Technologies Inc. Method and apparatus for detecting references to deallocated memory in a dynamic memory allocation system
US5664095A (en) * 1993-12-08 1997-09-02 Intel Corporation Dynamic scaling of CPU cycle consumption in a computer system
JP3982530B2 (ja) * 1996-01-17 2007-09-26 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置およびソフトウェアの保護機能付き情報処理方法
FR2751104B1 (fr) * 1996-07-11 1998-12-31 Stoffel Laurent Procede de controle de transactions securisees independantes utilisant un dispositif physique unique
JPH1139158A (ja) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> 実行プログラムの保護方法およびその装置
US6418242B1 (en) * 1998-11-18 2002-07-09 Tektronix, Inc. Efficient detection of error blocks in a DCT-based compressed video sequence
US6693645B2 (en) * 1999-12-01 2004-02-17 Ivast, Inc. Optimized BIFS encoder
US7111278B1 (en) * 2000-03-01 2006-09-19 Mindspeed Technologies, Inc. Automated translation of a microprocessor opcode summary table to an architecture description language
JP2002132585A (ja) 2000-10-20 2002-05-10 Sony Corp 情報記録装置、情報再生装置、情報記録媒体、および情報記録方法、情報再生方法、並びにプログラム提供媒体
DE10103799A1 (de) * 2001-01-29 2002-08-08 Siemens Ag Nachrichtenübermittlungsvorrichtung und Verfahren zur Übermittlung von Nachrichten
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
US6832302B1 (en) * 2001-10-24 2004-12-14 At&T Corp. Methods and apparatus for detecting heap smashing
WO2003104948A1 (ja) * 2002-06-05 2003-12-18 富士通株式会社 メモリ管理ユニット、コード検証装置およびコード復号装置
US7584458B2 (en) * 2003-10-02 2009-09-01 Microsoft Corporation Source code annotation language
US7350045B2 (en) 2003-12-31 2008-03-25 Microsoft Corporation Dynamic memory heap tagging
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7716743B2 (en) * 2005-01-14 2010-05-11 Microsoft Corporation Privacy friendly malware quarantines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1234125A (zh) * 1996-08-09 1999-11-03 特利思姆科技公司 具有多个启用存储区段的数据的灵巧卡读卡机
CN1245925A (zh) * 1998-07-16 2000-03-01 索尼公司 数据存储设备和数据存储方法
US6418527B1 (en) * 1998-10-13 2002-07-09 Motorola, Inc. Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
CN1536807A (zh) * 2003-04-07 2004-10-13 西科姆株式会社 文件安全传送系统及其方法

Also Published As

Publication number Publication date
KR20060096286A (ko) 2006-09-11
JP4914080B2 (ja) 2012-04-11
EP1698970B1 (en) 2019-10-09
CN1828590A (zh) 2006-09-06
EP1698970A3 (en) 2016-04-06
JP2006244496A (ja) 2006-09-14
KR101183432B1 (ko) 2012-09-17
US7350040B2 (en) 2008-03-25
EP1698970A2 (en) 2006-09-06
US20060200677A1 (en) 2006-09-07

Similar Documents

Publication Publication Date Title
CN1828590B (zh) 用于编码元数据的方法和系统
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
Ren et al. Design space exploration and optimization of path oblivious ram in secure processors
US7721114B2 (en) Method for using shared library in tamper resistant microprocessor
US9641490B2 (en) Trusted storage systems and methods
KR100491991B1 (ko) 내부 메모리형 내탬퍼 프로세서 및 비밀보호방법
US7752455B2 (en) Trusted storage systems and methods
JP5314016B2 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
CN101673251B (zh) 具有特许存储器的设备及其应用
CN109558740A (zh) 用于页面粒度、软件控制的多密钥存储器加密的系统、装置和方法
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
CN109901911A (zh) 一种信息设置方法、控制方法、装置及相关设备
CN1203394A (zh) 在安全存储区中保护应用程序数据的方法和装置
CN1278938A (zh) 具有反窃听功能的保密存储器
US20090254738A1 (en) Obfuscation device, processing device, method, program, and integrated circuit thereof
CN103136124B (zh) 一种智能卡硬件防火墙系统及其实现方法
KR20010100011A (ko) 보안 카운터를 경유하여 데이터 통합성을 보증하는 방법
KR20020016701A (ko) 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체
CN107563226A (zh) 一种存储器控制器、处理器模块及密钥更新方法
De Capitani di Vimercati et al. Supporting concurrency in private data outsourcing
US7373672B2 (en) Method for securely managing information in database
CN113486399B (zh) 基于risc-v架构的数据存储方法及系统
KR20050023248A (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: 20150430

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

Effective date of registration: 20150430

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100623

Termination date: 20210210

CF01 Termination of patent right due to non-payment of annual fee