对包括机密信息的存储器区域的访问的制作方法

文档序号:6764456阅读:225来源:国知局
对包括机密信息的存储器区域的访问的制作方法
【专利摘要】本发明的实施例涉及访问包括机密信息的存储器区域。可以接收来自进程的存储器请求。存储器请求可以包括进程的进程ID(PID)、所请求的存储器地址和所请求的访问类型。可以对该存储器请求与关联于包括机密信息的存储器区域的许可集进行比较。可以基于比较结果控制进程对存储器区域的访问。
【专利说明】对包括机密信息的存储器区域的访问
[0001]优先权信息
[0002]本申请要求2011年7月18日提交的美国临时申请N0.61/509,078的优先权的权益,该美国临时申请的全部内容通过引用整体并入本文。
【背景技术】
[0003]设备可以存储机密信息,如密码安全参数(CSP)。然而,如果机密信息被未经授权方访问,则可能损害该机密信息的完整度或安全性。将设备的进程编程为仅访问该进程有权访问的机密信息可能是不可靠的。
[0004]例如,进程可能发生故障和/或被未经授权方(如黑客)操纵,并且访问该进程对其没有权限的机密信息。制造者、销售者和/或用户面临提供用于保护机密信息的更安全方法的挑战。
【专利附图】

【附图说明】
[0005]下面的【具体实施方式】参照了附图,其中:
[0006]图1是用于控制对存储器区域的访问的设备的示例性框图;
[0007]图2是图1的设备的许可模块的示例性框图;
[0008]图3是在图2的设备的许可模块中包含的各模块的示例性框图;
[0009]图4是图1的设备的许可模块的另一示例性框图;
[0010]图5是图4的许可模块的许可集的示例性框图;
[0011]图6是用于控制对存储器区域的访问的设备的另一示例性框图;
[0012]图7是包括图6的设备的系统的示例性框图;
[0013]图8是包括用于控制对存储器区域的访问的指令的计算设备的示例性框图;以及
[0014]图9是用于控制对存储器区域的访问的方法的示例性流程图。
【具体实施方式】
[0015]下面的描述给出了具体细节,以提供对实施例的全面理解。然而,本领域技术人员之一将理解,各实施例可以在没有这些具体细节的情况下付诸于实践。例如,可以在框图中示出各系统,以便不会以不必要的细节使实施例不清楚。在其它情况中,可以在没有不必要的细节的情况下示出众所周知的进程、结构和技术,以便避免使实施例不清楚。
[0016]设备可以存储机密信息,如密码安全参数(CSP)。为了保持该机密信息的完整度或安全性,该设备可以使用从处理器来控制对机密信息的访问。然而,这可能增加该设备的成本和复杂度并且降低性能。例如,该设备的主处理器可能在接收对机密信息的访问之前必须与从处理器进行通信。
[0017]可替代地,机密信息可与可以使用该机密信息的进程分离并一起被存储。然而,在此情况下,该机密信息可能不可访问,除非相应的进程被加载并运行。进一步,如果该进程运行,则存储器管理单元(MMU)可以限制对该进程的存储器的访问。此外,在多个位置之间分离机密信息可能损害该机密信息的完整度和/或安全性。此外,该进程可能发生故障和/或被未经授权方(如黑客)操纵,因此降低该机密信息的完整度或安全性。
[0018]实施例可以提高机密信息的安全性和/或完整度,而不会严重提高该设备的复杂度。例如,在实施例中,可以接收来自进程的存储器请求。存储器请求可以包括该进程的进程ID (PID)、所请求的存储器地址和所请求的访问类型。可以对该存储器请求与关联于包括机密信息的存储器区域的许可集进行比较。可以基于比较来控制进程对存储器区域的访问。因此,对机密信息的每个部分的访问许可可以单独地和选择性地基于多种因素,如PID、所请求的地址、所请求的访问类型、意图和用户ID (UID)0
[0019]进一步,如果进程对机密信息的访问被拒绝,则实施例还可以执行附加操作。例如,当进程请求不适当的访问类型时,可以生成审计日志(audit log),以便保持访问机密信息的失败尝试的记录。进一步,如果进程的PID或所请求的地址不相容,则实施例可以执行诸如清除机密信息或生成中断之类的动作。
[0020]现在参照附图,图1是用于控制对存储器区域190的访问的设备100的示例性框图。设备100可以包含在对存储器进行访问的任何类型的设备中,如安全微处理器、笔记本计算机、台式计算机、一体化系统、板式计算设备、便携式阅读设备、无线电子邮件设备、移动电话等。在图1的实施例中,设备100包括许可模块110。许可模块110进一步包括许可集 120。
[0021]许可模块110可以包括例如包括用于实现下面描述的功能的电子电路的硬件设备,如寄存器或布尔逻辑。此外或作为替代,许可模块110可以被实现为在机器可读存储介质上编码的并可由处理器运行的一系列指令。
[0022]存储器区域190可以是机器可读存储介质的一部分,如能够存储诸如数据或指令之类的信息的任何类型的电子存储设备、磁性存储设备、光存储设备或其它物理存储设备。机器可读存储介质的示例包括随机存取存储器(RAM)、电可擦写可编程只读存储器(EEPROM),存储驱动器、光盘只读存储器(CD-ROM)等。
[0023]许可模块110将从进程180接收存储器请求。术语“进程”可以指计算机程序的任何一部分或者其实例。存储器请求可以包括进程180的进程ID (PID)、所请求的存储器地址和所请求的访问类型。许可模块110可以对存储器请求与许可集120进行比较,其中许可集120与存储机密信息192的存储器区域190相关联。然后,许可模块110可以基于比较来控制进程180对存储器区域190的访问。例如,许可模块110可以向存储器区域190输出访问控制信号,该访问控制信号启用和/或禁用进程180访问存储器区域190的能力。
[0024]机密信息192可以是对其的访问受限于经授权方的任何类型信息。机密信息192的示例可以包括密钥、证书、与设备100的平台安全性相关联的信息、密码信息、私人用户数据等等。下面将关于图2至图4更详细地说明许可模块110的示例性操作。
[0025]图2是图1的设备100的许可模块210的示例性框图。在图2的实施例中,许可模块210包括许可集220、PID模块230、地址模块240、访问类型模块250、第一 NAND门260、第一 AND 门 270 和 NOT 门 280。
[0026]许可集220包括与存储器区域190相关联的一个或多个被允许的PID222、存储器地址范围224以及一个或多个被允许的访问类型226。一个或多个被允许的PID222可以指被允许访问存储器区域190的一个或多个进程。存储器地址范围224可以指在请求访问存储器区域190时可以访问的地址。访问类型226包括读类型、写类型和引用类型中的至少一种。读类型表示进程180是否得到读取所请求的存储器地址处的值的许可。写类型表示进程180是否得到修改、清除、写入和/或覆盖所请求的存储器地址处的值的许可。引用类型表示进程180是否得到提供指向所请求的存储器地址的指针而不是所请求的存储器地址处的值的许可。将关于图5更详细地说明许可集220。
[0027]PID模块230、地址模块24、以及访问类型模块250可以包括例如包括用于实现下面描述的功能的电子电路的硬件设备,如寄存器或布尔逻辑。此外或作为替代,模块230、240和250可以被实现为在机器可读存储介质上编码的并可由处理器运行的一系列指令。
[0028]PID模块230对进程180的PID与许可集220的一个或多个被允许的PID222进行比较。例如,如果进程180的PID包含在一个或多个被允许的PID222中,则PID模块230可以输出逻辑“I”或“高”。否则,PID模块230可以输出逻辑“O”或“低”。
[0029]地址模块240对所请求的存储器地址与许可集220的存储器地址范围224进行比较。例如,如果所请求的存储器地址包含在存储器地址范围224中,则地址模块240可以输出逻辑“I”或“高”。否则,地址模块240可以输出逻辑“O”或“低”。
[0030]访问类型模块250对所请求的访问类型与许可集220的一个或多个被允许的访问类型226进行比较。例如,如果所请求的访问类型包含在一个或多个被允许的访问类型226中,则访问类型模块250可以输出逻辑“I”或“高”。否则,访问类型模块250可以输出逻辑“O”或“低”。访问类型模块250的输出通过NOT门280被反转,并且从许可模块210输出故障信号。
[0031 ] 第一 NAND门260逻辑上对PID模块230的输出和地址模块240的输出进行NAND,并且从许可模块210输出消失(miss)信号。第一 AND门270逻辑上对PID模块230的输出、地址模块240的输出和访问类型模块250的输出进行AND,并且从许可模块210输出访问控制信号。
[0032]因此,许可模块210基于PID模块230、地址模块240和访问类型模块250的比较而允许进程180对存储器区域190的访问。此外,如果PID模块230指示一个或多个被允许的PID222不包括进程180的PID和/或地址模块240指示存储器地址范围224不包括所请求的存储器地址,则许可模块210使消失信号有效。下面关于图3提供模块230、240和250的更详细示例。
[0033]图3是包含在图2的设备的许可模块210中的模块230、240和250的示例性框图。在图3的实施例中,PID模块230可以包括例如逐位XOR门232和第一 NOR门234。由逐位XOR门232接收的从进程180输出的进程信号的PID和从由许可集220输出的被允许的PID信号可以是多位字段。例如,进程信号的PID和被允许的PID信号中的每个位可以对应于多个不同类型的PID之一,其中每个PID对应于不同的进程或不同的进程类型。
[0034]依赖于与存储器区域190相关联的PID的数目,在被允许的PID信号中可以设置一个以上的位。然而,仅进程信号的PID的位之一可以被设置为表示进程180的标识。因此,逐位XOR门232对进程信号的PID和被允许的PID信号的对应位逻辑上逐位进行X0R。第一 NOR门234逻辑上对XOR门232的输出的所有位进行N0R,因此还合并了从逐位XOR门232输出的所有位。因此,如果进程180的PID包含在许可集220的一个或多个被允许的PID222中,则第一 NOR门234的输出以及PID模块230的输出是逻辑“ I”或“高”。[0035]地址模块240可以包括例如加法器242、第一比较器244、第二比较器246和第二NOR门248。第一加法器242从存储器地址范围224接收初始地址和长度。初始地址表示存储器区域190的第一地址,长度表示存储器区域190中包含的地址的数量。加法器242对初始地址和长度进行相加,以将存储器区域190的最后的存储器地址输出至第二比较器246。第一比较器244对进程180的所请求的地址和存储器地址范围224的初始地址进行逐位量值比较。如果所请求的地址小于初始地址,则第一比较器244输出逻辑“ I”或“高”信号。否则,第一比较器244输出逻辑“低”或“零”信号。
[0036]第二比较器246对最后的存储器地址与进程180的所请求的地址进行逐位量值比较。如果最后的存储器地址小于所请求的地址,则第二比较器246输出逻辑“I”或“高”信号。否则,第二比较器246输出逻辑“低”或“零”信号。第二 NOR门248逻辑上对第一比较器244的输出和第二比较器246的输出进行N0R。如果进程180的所请求的地址包含在许可集220的存储器地址范围224中,则第二 NOR门248的输出以及地址模块240的输出是逻辑“I”或“高”。
[0037]访问类型模块250可以包括例如逐位AND门252和第一 OR门254。向逐位AND门252输入的许可集220的被允许的访问类型信号以及进程180的所请求的访问类型信号可以是多位字段。例如,被允许的访问类型信号和所请求的访问类型信号中的每个位可以对应于上面说明的多个不同访问类型(如读类型、写类型和引用类型)之一。
[0038]依赖于与存储器区域190相关联的访问类型的数目,在被允许的访问类型信号中可以设置一个以上的位。然而,由于进程180每次访问存储器区域190仅可以执行访问类型之一,所以仅所请求的访问类型的位之一可以被设置。因此,逐位AND门252逻辑上对被允许的访问类型信号和所请求的访问类型信号的对应位进行逐位AND。第一 OR门254逻辑上对逐位AND门252的输出的所有位进行0R,因此还合并了从逐位AND门252输出的所有位。因此,如果所请求的访问类型包含在许可集220的一个或多个被允许的访问类型222中,则第一 OR门254的输出以及访问类型模块250的输出是逻辑“I”或“高”。第一 NAND门260、第一 AND门270以及NOT门280可以如上面关于图2说明的那样操作。
[0039]图4是图1的设备100的许可模块410的另一示例性框图。在图4的实施例中,许可模块410包括许可集420、PID模块430、地址模块440、访问类型模块450、第一 NAND门460、第一 AND门470、NOT门480以及意图模块490。图4的PID模块430、地址模块440、访问类型模块450、第一 NAND门460、第一 AND门470和NOT门480可以分别类似于图2的PID模块230、地址模块240、访问类型模块250、第一 NAND门260、第一 AND门270以及NOT门280。然而,第一 AND门470还可以接收意图模块490的输出。此外,进程80的请求可以进一步包括用户ID (WD)字段和请求的意图。
[0040]图4的许可集420可以类似于图2的许可集220。例如,图4的许可集420包括一个或多个被允许的PID422、存储器地址范围424以及一个或多个被允许的访问类型426,这些类似于图2中的许可集220中包含的一个或多个被允许的PID222、存储器地址范围224以及一个或多个被允许的访问类型226。然而,如下面说明的,图4的许可集420还接收WD,并且包括一个或多个被允许的意图428。
[0041]UID字段可以识别用户的类型和/或用户的标识。用户的类型可以与用户组(如职员或管理员)有关。用户的标识可以与识别特定用户有关。许可集420可以包括许可集420的至少一部分的多个实例。如下面关于图5更详细地说明的,这些实例中的每个实例可以与多个WD之一相关联,并且包括关于存储器区域190的分离的许可。
[0042]所请求的意图表示进程180试图如何使用所请求的存储器地址处的机密信息192。所请求的意图的示例可以包括机密信息192的存储目的地(如外部存储器)、要对机密信息192执行的操作的类型(如密码操作的类型)等等。
[0043]意图模块490可以包括例如包括用于实现下面描述的功能的电子电路的硬件设备,如寄存器或布尔逻辑。此外或作为替代,许可模块410可以被实现为在机器可读存储介质上编码的并可由处理器运行的一系列指令。
[0044]意图模块490对所请求的意图与许可集420的一个或多个被允许的意图进行比较。例如,许可集420可以将被允许的意图类型信号发送至意图模块480,其中被允许的意图类型信号和所请求的意图信号是多位信号。意图模块490可以以与访问类型模块450的方式类似的方式执行两个多位信号的比较。如果所请求的意图包含在一个或多个被允许的意图类型428中,则意图模块480可以输出逻辑“I”或“高”。否则,意图模块480可以输出逻辑“O”或“低”。
[0045]第一 AND门470逻辑上对意图模块480的输出、PID模块430的输出、地址模块440的输出和访问类型模块450的输出进行AND,并且从许可模块410输出访问控制信号。因此,许可模块410基于意图模块490、PID模块430、地址模块440和访问类型模块450的比较结果允许进程180对存储器区域190的访问。
[0046]与图2类似,第一 NAND门460逻辑上对PID模块430的输出和地址模块440的输出进行NAND,并且从许可模块410输出消失信号。此外,NOT门480对访问类型模块450的输出进行反转,以输出故障信号。因此,如果一个或多个被允许的访问类型426不包括所请求的访问类型,则许可模块410使该故障信号有效。然而,如果一个或多个意图类型428不包括所请求的意图,则实施例也可以例如使该故障信号有效。
[0047]图5是图4的许可模块410的许可集520的示例性框图。在该实施例中,许可集520包括七个字段521至527,其中字段525至527中至少一些字段包括多个实例。第一字段521可以存储表示许可集520是否是活跃的以及是否被分派给存储器区域190的有效位。如果第一字段521的有效位未被设置,则设备100可以忽略许可集520。第二字段522可以存储实际地址,如进程180的所请求的地址。第三字段523可以存储与存储器区域190中被映射至该实际地址的位置对应的虚拟地址。第四字段524可以存储存储器区域190的存储器地址范围,如存储器区域190的初始地址和长度。第五字段525至第七字段527可以具有η个实例,其中η是自然数。第五字段525-1至525-η的实例中的每个实例可以存储WD中相应WD的被允许的访问类型。第六字段526-1至526-n的实例中的每个实例可以存储WD中相应WD的被允许的PID。第七字段527-1至527_n中的实例中的每个实例可以存储WD中对应WD的被允许的意图类型。
[0048]每个HD的每组实例可以具有不同的许可。例如,第一 WD的第一实例525-1至527-1可以与职员用户相关,而第n UID的第η实例525-η至527-η可以与管理员用户相关。在该示例中,第一 WD525-1的被允许的访问类型可以仅启用读访问类型,而第n UID525-n的被允许的访问类型可以启用读类型、写类型和引用访问类型中的全部。基于由UID识别的用户,许可集520可以选择这些组实例之一来转发至模块480、430和450。[0049]尽管将许可集520示出为具有七个字段521至527以及这些字段中针对不同WD的三个字段525至527的多个实例,但是实施例不局限于此。例如,实施例可以具有比七个字段更多或更少的字段和/或比这些字段中三个字段更多或更少的字段的实例。进一步,可以根据除UID之外的准则创建实例和/或对实例进行分组。
[0050]图6是用于控制对存储器区域190的访问的设备600的另一示例性框图。在该实施例中,设备600包括多个图1的许可模块110-1至110-n,其中η是自然数。设备600的实施例还可以包括多个其它类型的许可模块,如图2或图4的许可模块210或410。设备600进一步包括第二 AND门620、第三AND门640、第二 OR门670、动作模块630以及审计模块 650。
[0051]动作模块630和审计模块650可以包括例如包含用于实现下面描述的功能的电子电路的硬件设备,如寄存器或布尔逻辑,此外或作为替代,动作模块630和审计模块650可以被实现为在机器可读存储介质上编码的并可由处理器运行的一系列指令。
[0052]如下面关于图7更详细地说明的,许可模块110-1至110-n中的每个许可模块可以包括与不同的存储器区域相关联的分离的许可集。然而,许可模块110-1至110-n中的所有许可模块可以从进程180接收进程180的相同PID、所请求的存储器地址以及所请求的访问类型。第二 AND门620逻辑上可以对所有许可模块110-1至110_n的消失信号进行AND,并且向动作模块630输出动作信号。因此,如果许可模块110-1至110_n中的所有许可模块使消失信号有效,则仅使动作信号有效。
[0053]如果使动作信号有效,例如许可模块110-1至110-n的PID模块230和/或地址模块240确定一个或多个被允许的PID222不包括进程180的PID和/或存储器地址范围224不包括所请求的存储器地址,则动作模块630会执行动作。由动作模块630执行的动作可以包括什么也不做、擦除所请求的存储器地址处的值、擦除存储器区域处的全部值和/或生成中断。中断可以阻止对设备600和/或与设备600相关的组件(如处理器或存储器)的访问,和/或停止设备600和/或与设备600相关的组件(如处理器或存储器)的功能的操作。上面动作中的一些动作可以通过防止未经授权方进一步尝试访问所请求的存储器地址来提高安全性。
[0054]第三AND门620逻辑上对所有许可模块110-1至110_n的故障信号进行AND,并且输出审计信号。因此,如果许可模块110-1至110-n中的所有许可模块使故障信号有效,则仅使审计信号有效。如果使审计信号有效,例如许可模块110-1至110-n的访问类型模块250确定一个或多个被允许的访问类型226不包括所请求的访问类型,则审计模块650将生成审计日志660。审计日志660可以包括进程180的PID、所请求的地址、所请求的访问类型、WD、失败的访问尝试的数目、一个或多个失败的访问尝试的时间戳和/或类似物。审计日志660可以是可配置的。例如,可以将审计模块650配置为改变审计日志660的内容和/或长度。进一步,还可以配置用于保存审计日志660的方法,如当审计日志660满时停止的平面文件(flat file)方法、当审计日志660满时用新数据覆盖旧数据的循环文件(circular file)方法和/或它们的组合。
[0055]第二 NOR门620逻辑上对所有许可模块110-1至110_n的访问控制信号进行N0R,并且输出访问控制信号。因此,如果许可模块110-1至110-n中的至少一个许可模块准许访问存储器区域180,则设备600使访问控制信号有效,来准许进程180访问存储器区域180。尽管将动作模块630和审计模块650示出为与多个许可模块110-1至110_n结合操作,但是动作模块630和审计模块650还可以与单个许可模块110结合操作。
[0056]图7是包括图6的设备600的系统700的示例性框图。在图7的实施例中,系统700包括设备705、处理器710、存储器管理单元720以及存储器730。图7的设备705可以类似于图6的设备600。然而,系统700的实施例还可以包括其它类似设备,如图1的设备100。存储器730包括多个存储器区域190-1至190-η (η是自然数),其中存储器区域190-1至190-η中的每个存储器区域可以类似于图1的存储器区域190。许可模块110-1至110-n中的每个许可模块对应于存储器区域190-1至190-η之一。例如,许可模块110-1至110-n中的每个许可模块可以包括许可集120,许可集120控制对相应的存储器区域190-1至190-η之一的机密信息192的访问。
[0057]处理器710可以是至少一个中央处理器单元(CPU)、至少一个基于半导体的微处理器、至少一个图形处理单元(GPU)、适合于进程180的指令的获取和运行的其它硬件设备。处理器710可以输出进程180的存储器请求和/或接收动作信号。
[0058]MMU720可以与设备700分担用于控制存储器映射管理的方面的责任。例如,设备700和MMU210中的至少之一可以为存储器730的不同部分(如多个存储器区域190-1至190-η)限定地址范围,和/或将实际地址(例如内部地址或物理地址)映射至虚拟地址(例如逻辑地址或外部地址)。进一步,MMU720可以管理对存储器730的不包括机密信息192的区域的访问控制,而设备700可以管理对存储器730的确实包括机密信息192的区域的访问控制。
[0059]当处理器710试图访问存储器730时,如在运行进程180的指令之后,处理器710可以与MMU710进行通信。例如,处理器710可以将一个或多个请求传送至MMU720。然后,MMU720可以将所有存储器请求传送至设备700或者仅将与由许可模块110-1至110_η管理的机密信息192相关的存储器请求传送至设备700。如果将所有存储器请求传送至设备700,则设备700可以包括附加处理逻辑,以执行通常还在MMU720处执行的一些功能,但是总体性能可以得到提高。如果仅将与由许可模块110-1至110-n管理的机密信息192相关的存储器请求发送至设备700,则设备700可以具有更紧凑的设计并且允许在系统700内的更方便集成。当存储器请求被设备700接收时,存储器请求被传送至多个许可模块110-1至110-n中的全部许可模块。
[0060]图8是包括用于控制对存储器区域(未示出)的访问的指令的计算设备800的示例性框图。在图8的实施例中,计算设备800包括处理器810和机器可读存储介质820。机器可读存储介质820进一步包括用于控制对存储器区域(未示出)的访问的指令822、824、826和 828。
[0061]计算设备800可以是例如芯片集、笔记本计算机、板式计算设备、便携式阅读设备、无线电子邮件设备、移动电话或能够运行指令822、824、826和828的任何其它设备。在特定示例中,计算设备800可以包括或者连接至诸如存储器、传感器、显示器等的附加组件。
[0062]处理器810可以是至少一个中央处理器单元(CPU)、至少一个基于半导体的微处理器、至少一个图形处理单元(GPU)、适合于在机器可读存储介质820中存储的指令的获取和运行的其它硬件设备、或它们的组合。处理器410可以获取、解码和运行指令822、824、826和828,以实现控制对存储器区域的访问。作为获取和运行指令的替代或除获取和运行指令之外,处理器810可以包括包含用于运行指令822、824、826和828的功能的多个电子组件的至少一个集成电路(1C)、其它控制逻辑、其它电子电路或者它们的组合。
[0063]机器可读存储介质820可以是包含或存储可运行指令的任何电子存储设备、磁性存储设备、光存储设备或其它物理存储设备。因此,机器可读存储介质820可以是例如随机存取存储器(RAM)、电可擦写可编程只读存储器(EEPR0M)、存储驱动器、光盘只读存储器(CD-ROM)等。于是,机器可读存储介质820能够是非瞬态的。如下面详细地描述的,机器可读存储介质820可以被编码有用于控制对存储器区域的访问的一系列可运行指令。
[0064]而且,当指令822、824、826和828由处理器(例如经由处理器的一个处理元件或多个处理元件)运行时,指令822、824、826和828能够促使处理器执行进程,例如图9的进程。例如,处理器810可以执行比较PID指令822,以对进程的PID (未示出)与一个或多个被允许的PID进行比较。处理器810可以运行比较请求地址指令824,以将所请求的地址与被允许的地址范围进行比较。
[0065]处理器810可以运行比较请求访问类型指令826,以将所请求的访问类型与一个或多个被允许的访问类型进行比较。如果一个或多个被允许的PID包括该进程的PID,被允许的地址范围包括所请求的地址,并且一个或多个被允许的访问类型包括所请求的访问类型,则处理器810可以运行允许指令828,以允许进程访问包括机密信息的存储器区域(未示出)。
[0066]机器可读存储介质820还可以包括如下指令(未示出):如果一个或多个被允许的PID不包括该进程的PID,被允许的地址范围不包括所请求的地址和/或一个或多个被允许的访问类型不包括所请求的访问类型,则该指令执行生成审计日志和执行动作中至少之一。审计日志包括以下至少之一:进程的PID、所请求的存储器地址、所请求的访问类型、用户ID(UID)、所请求的意图、失败的访问尝试的数量以及一个或多个失败的访问尝试的时间戳。动作包括以下至少之一:什么也不做、擦除所请求的存储器地址处的值、擦除存储器区域处的所有值以及生成中断。设备800的操作可以关于图9更详细地描述。
[0067]图9是用于控制对存储器区域190的访问的方法900的示例性流程图。虽然在下面关于设备600描述方法900的运行,但是可以利用用于方法900的运行的其它适合组件,如设备100。此外,用于运行方法900的组件可以散布在多个设备中(例如与输入输出设备通信的处理设备)。在特定场景中,协调作用的多个设备能够被视为执行方法900的单个设备。方法900可以以存储在机器可读存储介质(如存储介质820)上的可运行指令的形式和/或以电子电路的形式实现。
[0068]在框905处,设备600从进程180接收访问具有机密信息192的存储器区域190的请求。请求包括该进程的进程ID(PID)、所请求的地址和所请求的访问类型。然后,在框910处,设备600对进程180的PID与一个或多个被允许的PID222进行比较,并且流程前进至框915。如果一个或多个被允许的PID不包括进程180的PID,则在框920处设备600生成动作。如上面说明的,动作包括以下至少之一:什么也不做、擦除所请求的存储器地址处的值、擦除存储器区域处的所有值以及生成中断。
[0069]如果一个或多个被允许的PID包括进程180的PID,则在925处,设备600对所请求的地址与被允许的地址范围进行比较,然后流程前进至框930。如果被允许的地址范围不包括所请求的地址,则在框920处,设备600生成动作。
[0070]如果被允许的地址范围包括所请求的地址,则在框935处,设备600对所请求的地址类型与一个或多个被允许的访问类型进行比较,然后流程前进至框940。如果一个或多个被允许的访问类型包括所请求的访问类型,则在框945处,设备600允许进程180访问存储器区域190。如果一个或多个被允许的访问类型不包括所请求的访问类型,则设备600的流程前进至框950,以确定是否启用审计日志。如果不启用审计日志,则在框960处,设备600拒绝进程180对存储器区域190的访问。如果启用审计日志,则在框955处设备600生成审计日志660,然后在框960处拒绝进程180对存储器区域190的访问。
[0071]根据上述内容,实施例可以提高机密信息的安全性和/或完整度,而不会严重提高该设备的复杂度。例如,在实施例中,可以接收来自进程的存储器请求。存储器请求可以包括进程的PID、所请求的存储器地址和所请求的访问类型。可以对该存储器请求与关联于包括机密信息的存储器区域的许可集进行比较。可以基于比较结果控制进程对存储器区域的访问。
【权利要求】
1.一种设备,包括: 许可模块,用于从进程接收存储器请求,所述存储器请求包括所述进程的进程ID(PID)、所请求的存储器地址以及所请求的访问类型,其中 所述许可模块对所述存储器请求与关联于存储机密信息的存储器区域的许可集进行比较,并且 所述许可模炔基于该比较控制所述进程对所述存储器区域的访问。
2.根据权利要求1所述的设备,其中: 所述许可集包括一个或多个被允许的PID、存储器地址范围以及与所述存储器区域相关联的一个或多个被允许的访问类型, 所述访问类型包括读类型、写类型和引用类型中的至少一种,并且 所述引用类型与提供指向所请求的存储器地址的指针有关。
3.根据权利要求2所述的设备,其中所述许可模块包括: PID模块,用于对所述进程的所述PID与所述一个或多个被允许的PID进行比较; 地址模块,用于对所请求的存储器地址与所述存储器地址范围进行比较;以及访问类型模块,用于对所请求的访问类型与所述一个或多个被允许的访问类型进行比较,其中 基于所述PID模块、所述地址模块和所述访问类型模块的比较,所述许可模块允许所述进程对所述 存储器区域的访问。
4.根据权利要求2所述的设备,其中: 所述存储器请求进一步包括用户ID (WD)字段,所述用户ID字段识别用户的类型和所述用户的标识中的至少一种,并且 所述许可集包括关于所述存储器区域的所述许可集的一部分的多个实例,每个实例与多个UID之一相关联。
5.根据权利要求2所述的设备,其中: 所述存储器请求进一步包括请求的意图,所请求的意图表示将如何使用所请求的存储器地址处的机密信息, 所述许可集包括一个或多个被允许的意图, 所述许可模块包括意图模块,所述意图模块对所请求的意图与所述一个或多个被允许的意图进行比较,并且 基于所述PID模块、所述地址模块、所述访问类型模块和所述许可模块的比较,所述许可模块允许所述进程对所述存储器区域的访问。
6.根据权利要求2所述的设备,进一步包括: 审计模块,如果所述访问类型模块确定所述一个或多个被允许的访问类型不包括所请求的访问类型,则所述审计模块生成审计日志,其中 所述审计日志包括以下至少之一:所述进程的PID、所请求的存储器地址、所请求的访问类型、用户ID (UID)、所请求的意图、失败的访问尝试的数量以及一个或多个失败的访问尝试的时间戳。
7.根据权利要求2所述的设备,进一步包括: 动作模块,如果所述访问类型模块确定所述一个或多个被允许的访问类型不包括所请求的访问类型,则所述动作模块执行动作,其中 所述动作包括以下至少之一:什么也不做、擦除所请求的存储器地址处的值、擦除所述存储器区域处的所有值以及生成中断,并且 所述中断阻挡对所述设备的访问和/或停止所述设备的功能的操作。
8.根据权利要求2所述的设备,其中: 如果所述PID模块指示所述一个或多个被允许的PID不包括所述进程的PID和/或所述地址模块指示所述存储器地址范围不包括所请求的存储器地址,则所述许可模块将使消失信号有效,并且 如果所述访问类型模块指示所述一个或多个被允许的访问类型不包括所请求的访问类型,则所述许可模块将使故障信号有效。
9.一种系统,包括: 根据权利要求8所述的多个许可模块; 包括多个存储器区域的存储器,所述许可模块中的每一个对应于所述存储器区域中的一个; 处理器,输出请求并且接收所述消失;以及 存储器管理单元(MMU),将所述请求传送至所述多个许可模块。
10.根据权利要求9所述的系统,其中: 所述许可模块中 的每一个包括与所述存储器区域中的一个相关联的分离的许可集, 只有当所述许可模块中的全部都使所述消失信号有效时,所述系统才使动作信号有效, 只有当所述许可模块中的全部都使所述故障信号有效时,所述系统才使审计信号有效,并且 如果所述许可模块中的至少一个允许访问,则所述系统使访问控制信号有效,以准许所述处理器访问所述存储器。
11.根据权利要求9所述的系统,其中: 所述MMU接收多个存储器请求,并且 所述MMU传输所述存储器请求中的所有存储器请求或仅传输与关联于所述许可模块至少之一的存储器区域相关的存储器请求。
12.一种用于存储器访问的方法,包括: 从进程接收对具有机密信息的存储器区域的访问的请求,所述请求包括所述进程的进程ID (PID)、所请求的地址以及所请求的访问类型; 对所述进程的PID与一个或多个被允许的PID进行比较; 如果所述一个或多个被允许的PID包括所述进程的PID,则对所请求的地址与被允许的地址范围进行比较; 如果所述被允许的地址范围包括所请求的地址,则对所请求的访问类型与一个或多个被允许的访问类型进行比较;以及 如果所述一个或多个被允许的访问类型包括所请求的访问类型,则允许所述进程访问所述存储器区域。
13.根据权利要求12所述的设备,进一步包括:如果所述一个或多个被允许的PID不包括所述进程的PID和/或所述被允许的地址范围不包括所请求的地址,则生成动作;以及 如果所述一个或多个被允许的访问类型不包括所请求的访问类型,则生成审计日志。
14.一种非瞬态计算机可读存储介质,所述非瞬态计算机可读存储介质存储如果被设备的处理器运行则促使所述处理器执行以下操作的指令: 对进程的进程ID (PID)与一个或多个被允许的PID进行比较; 对所请求的地址与被允许的地址范围进行比较; 对所请求的访问类型与一个或多个被允许的访问类型进行比较;以及如果所述一个或多个被允许的PID包括所述进程的PID,所述被允许的地址范围包括所请求的地址并且所述一个或多个被允许的访问类型包括所请求的访问类型,则允许所述进程访问包括机密信息的存储器区域。
15.根据权利要求14所述的非瞬态计算机可读存储介质,进一步包括如果被所述处理器运行则促使所述处理器执行以下操作的指令: 如果所述一个或多个被允许的PID不包括所述进程的PID、所述被允许的地址范围不包括所请求的地址和/或所述一个或多个被允许的地址类型不包括所请求的地址类型,则生成审计日志和/或执行动作,其中 所述审计日志包括以下至少之一:所述进程的PID、所请求的存储器地址、所请求的访问类型、用户ID (UID)、请求的意图、失败的访问尝试的数量以及一个或多个失败的访问尝试的时间戳;并且 所述动作包括以下至少之一:什么也不做、擦除所请求的存储器地址处的值、擦除存储器区域处的所有值以及生成中断。
【文档编号】G11C7/24GK103890852SQ201280035799
【公开日】2014年6月25日 申请日期:2012年1月31日 优先权日:2011年7月18日
【发明者】特德·A·哈德利 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1