发布信息

存储器系统验证的制作方法

作者:admin      2022-10-26 08:15:21     329



计算;推算;计数设备的制造及其应用技术存储器系统验证1.本发明技术涉及数据处理系统。具体地,本发明技术与存储器系统的领域,特别是它们的验证具有相关性。2.在数据处理系统中,不同的部件可由不同的制造商产生并且组合以产生单个系统(如片上系统或soc)。因此,可出现一个部件必须信任第二部件的情况,即使在设计第一部件时第二部件(更不用说它的可信度)可以是未知的。这在安全系统中特别有问题,其中数据的完整性或安全性可受到恶意的第三方或编程不良的部件的损害。3.从第一示例性配置来看,提供了一种数据处理装置,该数据处理装置包括:处理电路系统,该处理电路系统适于向存储器中的多个地址发出多个存储器访问请求;信任点电路系统,该信任点电路系统用于通过第一组中间电路从该处理电路系统接收该存储器访问请求;以及安全信道电路系统,该安全信道电路系统用于实现从该处理电路系统到该信任点电路系统的该多个地址之间的对应关系的安全通信,其中该信任点电路系统适于基于该对应关系确定通过该第一组中间电路接收到的该存储器访问请求的该存储器中的该地址是否具有预定关系。4.从第二示例性配置来看,提供了一种数据处理方法,该数据处理方法包括:向存储器中的多个地址发出多个存储器访问请求;在信任点电路系统处通过第一组中间电路从该处理电路系统接收该存储器访问请求;以及实现从该处理电路系统到该信任点电路系统的该多个地址之间的对应关系的安全通信;以及基于该对应关系确定通过该第一组中间电路接收到的该存储器访问请求的该存储器中的该地址是否具有预定关系。5.从第三示例性配置来看,提供了一种数据处理装置,该数据处理方法装置:用于向存储器中的多个地址发出多个存储器访问请求的装置;用于通过第一组中间电路从该处理电路系统接收该存储器访问请求的装置;以及用于实现从该用于发出多个存储器访问请求的装置到该用于接收该存储器访问请求的装置的该多个地址之间的对应关系的安全通信的装置;以及用于基于该对应关系确定通过该第一组中间电路接收到的该存储器访问请求的该存储器中的该地址是否具有预定关系的装置。6.将参考如附图所示的本发明的实施方案,仅以举例的方式进一步描述本技术,其中:7.图1a展示了混叠攻击的示例;8.图1b展示了重定向攻击的示例;9.图1c展示了互连损坏攻击的示例;10.图2示意性地示出了根据一些实施方案的包括装置的片上系统;11.图3展示了根据一些实施方案的验证过程的概述;12.图4是根据一些实施方案的涵盖验证过程的第一阶段的流程图;13.图5是根据一些实施方案的涵盖验证过程的第二阶段的流程图;14.图6是根据一些实施方案的涵盖验证过程的第三阶段的流程图;并且15.图7是根据一些实施例的涵盖验证过程的运行时间测试的流程图。16.在参考附图讨论实施方案之前,提供了对实施方案以及相关联优点的以下描述。17.根据一个示例性配置,提供了一种数据处理装置,该数据处理装置包括:处理电路系统,该处理电路系统适于向存储器中的多个地址发出多个存储器访问请求;信任点电路系统,该信任点电路系统用于通过第一组中间电路从该处理电路系统接收该存储器访问请求;以及安全信道电路系统,该安全信道电路系统用于实现从该处理电路系统到该信任点电路系统的该多个地址之间的对应关系的安全通信,其中该信任点电路系统适于基于该对应关系确定通过该第一组中间电路接收到的该存储器访问请求的该存储器中的该地址是否具有预定关系。18.信任点电路系统充当在存储器和处理电路系统的中间起到调节作用的硬件代理。通过向存储器发出多个具有预定对应关系的被信任点电路系统拦截的存储器访问请求,可以检查被拦截的存储器访问请求,并且确定是否可推断出相同的预定对应关系。如果拦截的存储器访问请求之间的关系无法推断出对应关系,则可假设存储器访问请求通过的电路系统(第一组中间电路)未正确运行,并且例如可使存储器混叠以访问秘密或特权数据。使用安全信道以便将(真)对应关系从处理电路系统传送到信任点电路系统,使得可检查关系。存在预定关系可表达对应关系的多种方式。在一些实施方案中,关系与对应关系相同。例如,如果存储器访问请求以特定的跨度进行,则可在对应关系中表示相同的跨度。在其它实施方案中,底层存储器可使用存储器条带化,以便跨多个存储器分配工作负载。在此类情况下,拦截的存储器访问请求的地址将是跨度值的倍数,该倍数对应于存储器访问请求分布的存储器数量。19.在一些示例中,通过安全信道发送的数据不受第一组中间电路的配置的影响。存在可实施安全信道的多种方式。在一些示例中,该安全信道避免或不使用第一组中间电路,使得第一组中间电路无法影响沿着安全信道发送的任何通信。在其它示例中,安全信道可使用中间电路并且替代地使用加密,其中处理电路和信任点电路系统中的每一个都可访问解密密钥,该解密密钥使通信能够安全地发送而不会被中间电路拦截或修改。在一些示例中,安全信道使用中间电路的结构,但不受中间电路的任何软件配置影响。例如,安全信道发送的通信可不受中间电路的软件配置的影响,该软件配置可影响正常的存储器访问。20.在一些示例中,信任点电路系统适于确定该存储器访问请求所寻址到的该存储器的地址范围,并且通过该安全信道向该处理电路系统提供该地址范围;并且该处理电路系统适于根据该地址范围确定该存储器是否包括无效地址。由于信任点电路系统接收到存储器访问请求,确定与存储器访问请求相关联的存储器地址的范围。此范围可表示例如存储器访问请求所寻址到的最小地址和最大地址。这种地址范围通过安全信道提供给处理电路系统,使得不能通过第一组中间电路中的任何中间电路来修改地址范围。使用此信息,处理电路系统确定存储器是否包括一个或多个无效地址。具体地,由信任点电路系统确定的地址范围可指示一个或多个地址无效。这可使用来自单个信任点电路的范围信息来执行,或者可基于由多个信任点电路提供的多个范围来确定。21.在一些示例中,无效地址是多个存储器相关的地址。无效地址的一个示例是多个存储器相关的地址。具体地,如果两个信任点电路各自指示重叠的范围,则多个存储器可覆盖同一个地址。这将是发生存储器混叠的指示,其中例如存储器的安全区域被映射到可由恶意代理访问的存储器的非安全区域上。注意存在有效的情况,其中范围可以重叠。例如,在存储器条带化的情况下,由每个存储器访问的地址的界限可重叠。然而,即使在这种情况下,不应将单个地址朝着多个存储器引导。22.在一些示例中,无效地址是存储器不相关的地址。无效地址的另一个示例是存储器不相关的地址。具体地,如果信任点电路中的每个信任点电路提供的存储器范围展示了整个存储器地址空间中的许多间隙,则这表明特定地址没有朝着任何特定存储器引导。此类情况可被认为是非常不寻常的,以至于应该将此类情况标记为错误。具体地,此类情况可指示攻击者已将地址引导到攻击者可观察或修改的私有存储器。此类情况还可指示攻击者已将互连配置为丢弃对该位置的所有写入,并且以恒定值(例如,0)对所有读取进行响应。23.在一些示例中,该信任点电路系统适于响应于该信任点电路系统接收到对落在该地址范围之外的地址的另外的存储器请求而发信号通知错误。在确定了与信任点电路相关联的存储器相关的存储器地址范围之后,如果信任点电路系统接收到对落在此范围之外的地址的稍后/另外的存储器请求,则这指示引导到存储器访问请求的中间电路系统未正确运行。具体地,这是因为信任点电路系统正在接收它无法控制的存储器的存储器访问请求。这可以是发生存储器混叠的指示,并且因此发信号通知错误(例如,通过引发异常或故障或通过断开中间电路或限制中间电路的使用)。24.在一些示例中,数据处理装置包括:生成电路系统,该生成电路系统用于基于种子值生成伪随机数,以执行完整性检查。由生成电路系统产生的数字不是真正随机的。具体地,所产生的数字具有随机性的外观,但是基于所提供的种子值。因此,尽管来自生成电路系统的一系列输出具有随机性的外观,但如果提供相同的种子值,则可预测或重新产生这种随机性。以此方式,生成电路系统可用于执行完整性检查。这是因为鉴于种子值对于中间电路系统是未知的,生成电路系统的输出是未知的。然而,生成“随机的”数字系列后,可通过恢复种子值来重新生成相同的数字系列。因此,可产生一组“随机的”数据,其中输出的不可预测性使得难以预先预测数据。为了检查数据尚未改变,仅需要恢复种子值并且重新生成输出,将这些输出与所接收的进行比较。两组数字应匹配,因为该两组数字是使用相同的种子值生成的。25.在一些示例中,信任点电路系统适于通过第二组中间电路将请求转发到存储器。因此,信任点电路系统不仅在处理电路系统和存储器的中间起到调节作用,而且也在第一组中间电路和第二组中间电路的中间起到调节作用。这使得信任点电路系统可参与检查第一组中间电路和第二组中间电路的有效性。注意,在提供多个信任点电路的情况下,例如在测试多个存储器端口的情况下,每个信任点电路可通过其相应的第二组中间电路并行转发请求。26.在一些示例中,第二组中间电路包括存储器控制器。存储器控制器可提供一个或多个端口,如dram等存储器连接到该一个或多个端口。具体地,存储器控制器可负责接收存储器请求并且向存储器发送对应于存储器请求的一系列信号以执行该请求。27.在一些示例中,完整性检查包括第二组完整性检查;并且该信任点电路系统适于通过以下对该存储器中的预定地址执行该第二组完整性检查:将该种子值设置为预定值;通过该第二组中间电路向该预定地址传输包括该伪随机数的存储器写入请求;将该种子值重置为该预定值;通过该第二组中间电路向该存储器中的该预定地址传输存储器读取请求;以及将该存储器读取请求的结果与该伪随机数进行比较。完整性检查所包括的检查之一是第二组完整性检查,该第二组完整性检查负责检查第二组中间电路的完整性。这通过将生成电路系统的种子值设置为预定值来实现。然后由信任点电路系统通过第二组中间电路将存储器写入请求传输到存储器。写入请求使得它使由生成电路系统使用种子值生成的数据值被写入存储器。在发出写入请求之后,生成电路系统中的种子值被重置为预定值。在重置种子值之后,由生成电路系统生成的下一个值将对应于写入存储器的数据。因此,当向针对写入请求提供的相同地址发出存储器读取请求时,返回的数据应该对应于由生成电路系统获得的下一个值。将两个值进行比较以确定是否存在匹配。如果发生此类匹配,则这表明第二组中间电路的完整性是完整的,这验证写入请求是否得到遵守(例如,在没有被修改的情况下写入了正确的数据)。由于写入的数据是“随机的”,因此不能由缺乏对种子值的访问的第二组中间电路预测。然而,由于生成器是伪随机的,因此可重新创建值以便测试存储在存储器内的值。因此,这不需要保留生成值的副本—而是只需要保留种子值。如先前所解释的,此测试可跨每个信任点电路和其对应的第二组中间电路并行执行。28.在一些示例中,通过执行包括该存储器写入请求的多个存储器写入请求,随后执行包括该存储器读取请求的多个存储器读取请求,对多个地址执行该完整性检查;并且基于该种子值,针对该多个存储器写入请求中的每个存储器写入请求和该多个存储器读取请求中的每个存储器读取请求改变该伪随机数。完整性检查可通过发出多个存储器写入请求来执行。在这种情况下,对于每个存储器写入请求,从生成电路系统获得不同的值。在执行一系列写入请求之后,重置种子值,并且发出对应的一系列读段请求以从存储器读取数据。然后将读取请求中的每个读取请求的结果与生成电路系统的输出中的每个输出进行比较以确定匹配。如果存在任何非匹配,则这指示第二组中间电路的完整性是无效的。29.在一些示例中,完整性检查包括第一组完整性检查;并且30.该处理电路系统适于通过以下对该存储器中的预定地址执行该第一组完整性检查:将该种子值设置为预定值;以及通过该第一组中间电路向该信任点电路系统传输包括该伪随机数的存储器写入请求;并且该信任点电路系统适于通过以下对该存储器中的该预定地址执行该第一组完整性检查:将该种子值重置为该预定值;以及31.将由该信任点电路系统接收到的该存储器写入请求中的该伪随机数与该生成电路系统的输出进行比较。可执行第一组完整性检查作为完整性检查的一部分。第一组完整性检查检查第一组中间电路的完整性。在这种情况下,处理电路系统通过第一组中间电路向信任点电路系统发出包括伪随机数的写入请求。接收到写入请求之后,信任点电路系统将在写入请求中接收到的数据值与重置种子值的生成电路系统的输出进行比较。以此方式,第一组中间电路的完整性可通过确定处理电路系统在写入请求中发送的值是否对应于由信任点电路系统接收到的相同数据值来测试。同样,由于在写入请求中提供的数据值是“随机的”,因此该数据值不能由缺乏对生成电路系统和其种子值的访问的第一组中间电路预测。然而,由于数据值是伪随机的,因此可在给定种子值的情况下重新生成该数据值。注意,存在处理电路系统和信任点电路系统两者都可使用生成电路系统的多种方式。处理电路系统和信任点电路系统中的每个电路系统可包括以相同方式配置的其自身的生成电路系统。在这种情况下,种子值可通过安全信道在处理电路系统与信任点电路系统之间传输,以便确保在信任点电路系统处生成的数据值对应于在处理电路系统处生成的数据值。可替代地,可在处理电路系统和信任点电路系统中的每个电路系统之间共享单个生成电路,其中这些电路系统中的每个电路系统具有对生成电路系统的安全访问。注意,可通过使用跨多个信任点电路系统的相同种子并行地对多个信任点进行测试。32.在一些示例中,通过将数据写入该存储器来阻止该信任点电路系统对该存储器写入请求进行响应。具体地,不需要作为完整性检查的一部分发出的写入请求实际上涉及物理写入存储器的数据。执行完整性检查之后,可由信任点电路系统忽略存储器写入请求。33.在一些示例中,该数据处理装置包括:多个处理电路系统,该多个处理电路系统包括该处理电路系统,其中该处理电路系统中的至多一个处理电路系统适于基于该对应关系确定通过该第一组中间电路接收到的该存储器访问请求的该存储器中的该地址是否具有该预定关系;该处理电路系统中的至多一个处理电路系统适于执行除该第一组完整性检查之外的该完整性检查;并且该处理电路系统中的每个处理电路系统适于在上电之后执行该第一组完整性检查。在这些示例中,处理电路系统中的单个处理电路系统用于执行某些检查,而其它检查由每个处理电路系统执行。具体地,一个处理电路系统在上电时负责执行第一组完整性检查以确定该处理电路系统通过第一组中间电路的路径是有效的并且建立地址到信任点的全局映射。其它测试仅需要由处理电路系统中的单个处理电路系统来执行。以此方式,一系列测试得出存储器系统的有效的且经验证的结论。同时,单个处理电路系统可通电和断电并且测试该单个处理电路系统对存储器电路系统的访问,即使存储器本身可当前在使用中(例如,通过已经上电的其它处理电路)。34.在一些示例中,该信任点电路系统适于将至少一个预定值存储在该存储器中的至少一个对应的预定位置中,计算对应于该至少一个预定值的一组完整性值,并且分别存储该完整性值;并且响应于预定事件,该信任点电路系统适于基于存储在该至少一个对应的预定位置中的该至少一个预定值来计算另一组完整性值,并且将该另一组完整性值与该一组完整性值进行比较。在启动之后,可在持续的基础上执行多个测试以确定存储器系统是否被干扰。具体地,一个测试是使用策略性地写入存储器区域的所谓的“金丝雀线(canary line)”。这些线的内容可是预定的或可以是随机的。在任一情况下,生成对应于存储在线中的数据值的完整性值。然后安全地存储这些完整性值。响应于预定事件(如定时器的到期、未接收到存储器访问的时间段或来自处理电路系统的显式信号),从存储器访问这些线中的一条或多条线,并且重新计算完整性值。重新计算的完整性值应该对应于已安全存储的那些完整性值。如果不是,则这表明数据值已在存储器中修改。35.在一些示例中,该一组完整性值和一组另外的完整性值是由该预定值产生的以下中的至少一个:散列值;循环冗余校验值;校验和;以及密钥散列消息认证码。用于产生完整性值的确切算法是设计选择之一,并且若干算法将为本领域技术人员所知。36.在一些示例中,第一组中间电路包括交换机。可使用交换机将消息从一个位置传输到另一个位置。通常,存在多个可能的来源和/或多个可能的目的地。这使得通信能够从输入中的任何一个输入传送到输出中的任何一个输出。交换机的示例包括互连和总线。37.在一些示例中,由该处理电路系统发出的该存储器访问请求的该多个地址是多个逻辑地址;并且由该信任点电路系统接收到的该存储器访问请求的该多个地址是多个物理地址。在这些示例中,逻辑地址和物理地址的地址空间不同。也就是说,逻辑地址和物理地址可最终指存储器的相同区域,但是物理地址可指特定电路,逻辑地址可以是不同(例如,较大)地址空间的一部分,该地址空间可被转化为物理地址空间。38.现在将参考附图描述具体实施方案。39.存在例如请求者和从属的互连系统中的中间电路系统可用于规避存储器保护控制,以便访问存储器的受控区域或以其它方式破坏系统—无论是恶意的或由于糟糕的编程的多种方式。图1a展示了混叠攻击(也称为重新映射攻击)。在这种情况下,中间电路系统可采用存储器控制器或在处理电路系统和存储器的中间起到调节作用的互连的形式。在此示例中,虚拟地址空间包括被受害者30使用的存储器块。这被映射到物理dram 40的区域。然而,作为中间电路并且可采用互连或存储器控制器的形式的不安全子系统10还导致dram 40的此区域被映射到虚拟地址空间的第二区域20。也就是说,物理dram 40可被受害者的存储器区域30或攻击者的存储器区域20访问。以此方式,可忽略由存储器保护单元(mpu)建立的保护。具体地,攻击者可具有访问其虚拟地址空间区域20的自由支配权,从而使得可以读取受害者可理解为安全的物理dram 40。40.图1b展示了重定向攻击的示例。在此,例如不安全子系统60可采用互连或其它交换机的形式。通常,受害者使用的地址空间50被不安全子系统60映射到dram 70的安全区域。在此进程期间,发送到受害者的dram70的数据可被加密,使得不能被另一个进程访问。然而,在此示例中,不安全子系统60导致事务替代地被传输到被攻击者80损害的dram区域。如果此dram没有利用加密,则可在稍后的时间由攻击者自由读取事务的内容。41.图1c展示了可用于破坏数据的互连损坏攻击的示例。在此示例中,处理元件向不安全子系统发出写入请求。此示例中的写入请求是针对控制是否启用安全性的地址,并且数据值被设置为真以指示应该启用安全性。在此,存在不安全子系统可采取的多个动作。例如,不安全子系统可禁用先进先出(fifo)队列或以其它方式启用调试模式,这可能导致数据损坏。可实现多个可能的结果,以便实现防止启用安全模式的效果。在第一个结果中,由不安全子系统产生的数据只是写入请求,其中数据设置为假而不是真。以此方式,未启用安全性。第二个结果是简单地静默丢弃写入请求。因此,写入请求不会从不安全子系统发送到dram,因此安全模式未设置为真。42.应当理解,可执行其它破坏寻址进程或数据写入进程的攻击。43.图2展示了通过对应的存储器端口180a、180b、180c与多个存储器190a、190b、190c进行通信的片上系统(soc)。soc通过存储器控制器170a、170b、170c与存储器190a、190b、190c的端口180a、180b、180c进行通信。这些存储器控制器被认为是不可信的,因为该存储器控制器可由与提供soc的其它元件的实体不同的实体提供。因此,存储器端口180a、180b、180c中的每个存储器端口与信任点电路150a、150b、150c相关联,该信任点电路由soc提供商提供。信任点电路150a、150b、150c连接到互连140。同样,互连140被认为是不可信的,因为该互连不由soc提供商提供。还连接到互连的是一个或多个处理集群130a、130b。在此示例中,示出了两个此类集群130a、130b。第一集群包括一对cpu 100a、100b形式的处理电路。类似地,第二处理集群130b还包括一对cpu 100c、100d。cpu 100a、100b、100c、100d中的每个cpu都执行管理软件,该管理软件管理多个测试的执行,该多个测试被执行以便确定互连140和存储器控制器170a、170b、170c的可信度。注意,在此示例中,cpu 100a、100b、100c、100d中的每个cpu包括对应的存储器保护单元(mpu)120a、120b、120c、120d。mpu负责将对应的cpu提供的逻辑存储器地址转化为存储器控制器170a、170b、170c可理解的物理地址。另外,mpu负责实施安全元件,如限制存储器190a、190b、190c中的哪些以及那些存储器190a、190b、190c的哪些部分可被访问。44.cpu 100a、100b、100c、100d中的每个cpu包括到信任点电路150a、150b、150c中的每个信任点电路的安全信道。安全信道使得可以将少量配置信息安全地传输到信任点电路150a、150b、150c。具体地,传输的数据不能由例如互连140拦截或修改。也就是说,互连140不能够修改由于软件/动态配置值而通过安全信道发送的数据。在其它实施方案中,安全信道穿过互连140,并且通过加密实现安全性。具体地,处理电路100a、100b、100c、100d中的每个处理电路可能够加密可由相关信任点电路150a、150b、150c解密的消息。在一些其它示例中,安全信道完全避免互连140,并且提供单独的电路系统以使得能够发生安全通信。45.在此实施方案中,cpu 100a、100b、100c、100d中的每个cpu包括伪随机数生成器110a、110b、110c、110d。此外,信任点电路150a、150b、150c中的每个包括伪随机数生成器160a、160b、160c。伪随机数生成器能够产生具有随机外观的数字流。然而,实际上,数字流由提供的种子值决定。以此方式,如果种子值未知,则源自伪随机数生成器的数字流可被处理为随机的。然而,如果种子值是已知的,则可预测所产生的一系列值。因此,如果处理电路100a、100b、100c、100d中的伪随机数生成器110a、110b、110c、110d中的每个伪随机数生成器与信任点电路150a、150b、150c的伪随机数生成器160a、160b、160c匹配相同的种子值,则每个生成器将产生相同的随机数流。46.图3展示了验证过程的概述。验证过程由两组测试构成。第一组测试在片上系统启动时执行。这组测试由三个阶段构成。第二组测试在系统保持活动时定期进行,并且用于提供对存储器系统的持续验证。在此概述内,提供一对处理电路(pe1,pe2)。这些连接到互连,第一信任点电路和第二信任点电路(pot1,pot2)被提供到该互连。信任点电路(pot1,pot2)充当两个物理存储器(dram1,dram2)的硬件验证代理。具体地,第一信任点电路(pot1)与第一dram(dram1)相关联,并且第二信任点电路(pot2)与第二dram(dram2)相关联。在此示例中,存在于信任点电路与dram之间的互连电路系统以及存储器控制器最初是不受信任的,因为它们是由第三方提供的。47.第一阶段由单个处理电路执行。在此,一个或多个访问请求被发送到信任点电路中的每个信任点电路。在一些实施方案中,设置一系列访问请求以覆盖整个存储器地址空间。由于每个访问请求返回预定量的数据,因此访问请求的地址中的每个地址由一个跨度值分隔。例如,每个访问请求可返回64位数据。因此,访问请求的地址中的每个地址也被64位-64位分隔称为跨度长度。在信任点电路处,每个信任点电路系统检查接收到的地址的关系。从在每个信任点电路处接收到的访问请求的地址,跨度值(其可通过安全信道进行传送)应该是清楚的。例如,地址中的每个地址可由相同的跨度值分隔。在其它示例中,在存储器条带化可用于在多个存储器之间均匀分配存储器地址的情况下,在信任点电路之一处接收到的访问请求的地址中的每个地址可由跨度值的倍数分隔。例如,在此示例中,提供了两个存储器。如果正在使用存储器条带化,则信任点电路中的每个信任点电路接收到的地址预计是跨度值的两倍。可使用安全信道传送跨度值,使得可在信任点电路处检查该关系。除了检查这些关系之外,信任点电路中的每个信任点电路为其接收到的请求确定边界信息。具体地,信任点电路中的每个信任点电路确定该信任点电路接收的访问请求中的每个访问请求的上限和下限。然后将这些传送回进行测试的处理元件(pe1)。此信息也可使用安全信道传输。接收到边界信息之后,处理元件然后确定边界的有效性。具体地,不应存在多个存储器覆盖的存储器地址(这表明混叠有效)。另外,不应存在出现任何间隙的存储器地址(即没有存储器适用)。注意,这不一定像简单地确定每个信任点电路提供的边界信息是否重叠一样简单。具体地,在发生存储器条带化的情况下,可合理地发生重叠。因此,有必要考虑,尽管存在如存储器条带化等特征,但存在可导致地址引用多个物理存储器或者地址不引用任何存储器(例如)的存储器违规。48.因此,第一阶段寻求确定接收到的存储器访问请求是否具有关于其访问地址的适当模式。存在不适当的模式(例如,访问请求之间的关系无法确定或突然改变的情况或某些存储器地址与多个存储器相关或不与存储器相关的情况)可指示存储器混叠或在互连处执行的其它攻击。49.第二阶段考虑信任点电路与dram之间的连接性。具体地,测试信任点电路系统与其相关联存储器之间的每个链路。此类测试可并行进行。在此,信任点电路系统的伪随机数生成器被初始化为给定的种子值。可向每个信任点电路系统发出相同的种子值。这用于生成随机数流,然后将其写入相关联的dram。然后用种子值重新初始化伪随机数生成器,并且回读数据。数据项中的每个数据项应对应于伪随机数生成器产生的下一个值。这使得可以确定数据是否被例如存储器控制器损坏或更改。具体地,如果发生此类变化,则在重新初始化后,回读的数据将不对应伪随机数生成器的输出。可选择指示进行写入请求的程度的跨度值,以隐式执行dram内容的清理,这对于其它安全考虑(如阻止冷启动攻击)可以是有价值的。例如,第二阶段可简单地用于确定是否正在执行混叠或数据是否被损坏。第二阶段还可确认dram是‘活’的(例如,其不仅仅是rom)。在这种情况下,可设置跨度,使得写入发生在地址范围内的每个高速缓存线(例如,64字节)或页面(4kb)的第一字节。然而,第二阶段也可用于清理dram,使得来自先前的启动循环的秘密数据在当前的启动周期中不可见。在这种情况下,跨度可被配置为使得在每个字节上执行写入,并且数据被‘归零’。50.第三阶段由每个处理电路在通电后执行。这可以是当整个系统启动时,但也可被一些处理电路延迟。在这种情况下,从处理电路系统向每个信任点电路发出一个或多个写入请求。写入请求中的每个写入请求从处理元件的伪随机数生成器中获取下一个值。信任点电路系统被初始化以使用相同的随机种子值,使得由其伪随机数生成器生成的数字将对应于处理电路处提供的数字。以此方式,信任点电路系统能够检查写入请求中提供的数据元素中的每个数据元素的有效性以确定是否在例如互连处发生任何损坏。注意,伪随机数生成器的种子值可通过安全信道传送。信任点电路系统使得写入请求被取消(例如,不转发到存储器)。因此,第三阶段可在处理电路通电时的任何时间执行,因为可正被其它处理电路使用的存储器不会由于此测试而物理改变。信任点电路可检查接收到的写入请求具有适当的跨度值(鉴于前面提到的考虑)并且写入请求在该信任点电路负责的整个空间范围内发出。51.在系统执行时周期性地执行运行时间检查。具体地,作为第一测试,如果通过信任点电路系统从任何处理元件向存储器发出另外的访问请求,则该信任点电路系统将确定该另外的访问请求中的访问地址是否对应于在第一阶段期间针对该信任点电路系统计算的边界。如果信任点电路接收到超出此范围的另外的访问请求,则这指示信任点电路系统已接收到它不应该进行的存储器访问请求。这可指示混叠攻击,因此会引发错误。图3中示出的第二运行时间测试是使用所谓的金丝雀线。这涉及将数据写入存储器中的一个或多个策略位置或者通过跟踪外部写入这些位置的数据。策略位置可包括存储器的开始和结束、存储器内的随机位置以及属于不同实体或具有不同权限的存储器区段的边界附近。完整性检查算法用于针对已写入的数据产生完整性值。此类算法的示例包括散列算法以及crc算法和hmac算法。此类算法产生会因基础数据的甚至微小变化而发生变化的完整性值。安全地存储该完整性值。例如,这些可存储在信任点电路系统的存储电路内,或者可安全地存储在主存储器中。在任何情况下,以特定间隔,信任点电路系统会回读那些存储器的线,并且重新执行完整性检查。重新计算的完整性值应与已存储的值匹配。如果不是,则这指示存储在存储器内的数据已经被修改。因此,引发错误(如异常)。注意,在图3的示例中,仅单个信任点电路被展示为执行边界检查和金丝雀线检查。然而,这些检查可由关于其自身存储器的每个信任点电路执行。52.图4展示了根据一些实施方案的详细示出验证的第一阶段的流程图400。该过程在步骤405处开始,其中向一个或多个存储器地址发出访问请求,存储器地址中的每个存储器地址由跨度值分隔。在步骤410处,在相关信任点电路处接收请求。在步骤415处,通过安全信道接收配置信息。此配置信息包括跨度值以及确认在信任点电路处接收的存储器地址的关系的有效性所必需的其它信息。例如,这可包括如存储器条带化是否有效以及存在的其它存储器单元的数量等信息。在步骤420处,确定由存储器访问请求提及的地址的上限和下限。在步骤425处,使用配置信息确定存储器访问请求的地址之间的关系是否有效。换句话说,鉴于关于系统的配置已知,确定接收到的请求中的地址之间的关系是否对应于处理电路系统发出的传出请求的关系。注意,可存在不完全匹配,因为地址可已在地址空间之间转化。如果不是,则在步骤430处,测试失效并且引发错误。例如,这可采用引发异常的形式。如果关系被认为是有效的,则在步骤435处,关系有效性和边界信息被传输到发出访问请求的处理元件/处理电路。在步骤440处,从每个信任点电路接收有效性信息和边界信息的处理电路确定地址空间中是否存在未映射到存储器之一的任何存储器地址。例如,如果存在朝着两个存储器或零个存储器引导的地址,则测试失效,并且在步骤445处引发错误。否则,测试在步骤450处通过。53.连续请求的地址之间的关系可预期为:54.地址=先前地址+跨度55.在使用条带化的情况下,连续请求的地址之间的关系可预期为:56.地址=先前地址+跨度*n(考虑跨n个dram端口的线性条带化)57.作为另一个示例,在使用基于散列的条带化的情况下,关系可以是:58.地址mod跨度*n=先前地址mod跨度*n+跨度*n(考虑跨n个dram端口的基于散列的条带化)59.图5展示了流程图500,该流程图示出了有效性测试的第二阶段的操作的示例。该过程在步骤505处开始,其中信任点电路使用的伪随机数生成器用种子值初始化。使用的确切种子值并不重要,条件是该值是已知的。注意,此测试可由每个信任点电路并行执行。在多个信任点电路处的多个伪随机数生成器可使用相同的种子值或者每个信任点电路可使用单个生成器。在步骤510处,将循环计数器(n)初始化为0。在步骤515处,由伪随机数生成器获得下一个输出,并且将此输出以写入请求的形式朝向存储器发送。实际上,可预期此类写入请求穿过如存储器控制器等一个或多个其它中间电路。在步骤520处,确定循环计数器是否已达到给定值(n),该给定值对应于要发出的写入请求的数量。如果尚未满足写入请求的数量,则过程进行到步骤525,其中将循环计数器(n)递增,并且过程进行到步骤515。否则,过程进行到步骤530,其中用先前的种子值重新初始化伪随机数生成器。因此,由伪随机数生成器生成的数字系列将对应于先前在步骤515处生成的数字。在步骤535处,将循环计数器(n)重置为0。在步骤540处,然后由信任点电路系统发出读取请求。向存储器中的地址发出读取请求,该地址对应于先前在步骤515发出写入请求的地址之一。换句话说,在步骤540中发出的读取请求读取在先前步骤515中写入的数据。在步骤545处,由伪随机数生成器获得下一个数字。步骤550然后确定在伪随机数生成器的输出与已经由读取请求获得的数字之间是否存在匹配。理论上,由于使用相同的种子值,因此两个数字应该匹配。如果不存在匹配,则在步骤555处,测试失效并且引发错误。这是因为存储在存储器中的值被感知到已被损坏。如果存在匹配,则在步骤560处确定循环是否继续。如果循环继续,则过程进行到步骤565,其中循环计数器(n)递增,并且过程进行到步骤540以发出下一个读取请求。否则,在没有发生故障的情况下,测试在步骤570处通过。60.图6展示了流程图600,该流程图示出了有效性测试的第三阶段的过程。该过程在步骤605处开始,其中处理电路的伪随机数生成器用种子值初始化。使用的确切种子值并不重要,条件是其值是已知的。每个处理电路可并行执行此测试,并且因此如果期望,可使用相同的随机数生成器。在步骤610处,将循环计数器(n)初始化为0。在步骤615处,获得来自伪随机数生成器的下一个输出,并且这通过写入请求发送到信任点电路系统。步骤620询问循环是否继续。如果是,则在步骤625处,循环计数器(n)递增,并且过程返回到步骤615。如果循环完成,则在步骤630处,信任点电路系统的伪随机数生成器被初始化为与在步骤605中使用的相同的种子值。例如,可跨存在于处理电路系统与信任点电路系统之间的安全信道来传输种子。因此,信任点电路系统的伪随机数生成器应该产生在步骤615期间产生的相同数字系列。在步骤635处,再次将循环计数器重置为0并且在步骤640处,由信任点电路系统接收到由处理电路系统发出的下一个写入请求。在步骤645处,获得伪随机数生成器的下一个输出。在步骤650处,确定信任点电路系统中本地伪随机数生成器产生的数字与处理电路系统发出的写入请求中写入的值之间是否存在匹配。如果不是,则在步骤655处,测试失效并且引发错误。这是因为可预测数据值在传输期间(例如,通过互连)已被损坏。如果存在匹配,则在步骤660处确定循环是否有要执行的进一步的迭代。如果是,则在步骤665处,循环计数器(n)递增,并且过程返回到步骤640。否则,测试在步骤670处通过。61.注意,在此示例中,接收过程(步骤630至步骤660)在输出过程(步骤605至步骤620)之后进行。然而,应当理解,这两个过程可并行进行。具体地,由处理电路和信任点电路系统使用的伪随机数生成器可同时用相同的种子值初始化。来自prng的输出可由处理电路获得并且在写入请求中发送到信任点电路系统(步骤615),在该信任点电路系统,该输出可被接收(步骤640)并且与prng输出(步骤645)进行比较。如果不存在匹配,则引发错误(步骤655)。否则,如果存在要执行的循环的多个迭代,则该过程重复,其中来自prng的另一个输出被发送到信任点电路系统并且信任点电路系统将所接收到的数据与prng的输出进行比较。如果在循环结束时,所有接收到的包已确认为有效的,则测试在步骤670处通过。以此方式,仅需要单个循环。62.图7展示了流程图700,该流程图示出了执行运行时间测试的过程。该过程在步骤705处开始,其中将金丝雀线写入存储器。可将此类线写入策略位置,如更容易被损坏的位置、靠近存储敏感数据的位置以及具有不同权限的存储器区域之间的边界上的位置。在步骤710处,对写入存储器的数据执行完整性计算。在步骤715处,存储由于完整性计算而生成的完整性数据。这可例如在信任点电路系统本身中存储。然后,流程图700的其余部分涉及可在信任点电路系统处于活动状态时继续的循环。在步骤720处,确定是否已经接收到访问请求。如果是,则确定存储器访问请求中参考的地址是否落入在此信任点电路系统的第一阶段期间计算的范围内。如果不是,则在步骤730处引发错误,这是因为信任点电路系统接收到它不应该接收的存储器访问请求。否则,在步骤735处满足存储器访问请求,并且过程进行到步骤740。如果在步骤720处没有接收到访问请求,该过程也进行到步骤740。在步骤740处,确定定时器是否已到期。许多运行时间攻击会导致数百毫秒的存储器中断,并且可能导致多个缓存线损坏。因此,通过设置频率低于此频率的定时器并且通过策略性地将数据放置在金丝雀线中,可以以合理的概率判断是否发生了数据损坏。在步骤740处,如果定时器尚未到期,则过程返回到步骤720。否则,在步骤745处,访问存储在金丝雀线中的数据。在步骤750处,对已从金丝雀线中的存储器访问的数据执行完整性计算。在步骤755处,确定完整性计算的结果是否匹配所存储的完整性数据。如果不是,则在步骤760处引发错误以表示数据在存储期间已被破坏的事实。否则,在步骤765处,定时器被重置并且过程返回到步骤720。63.因此,以上描述说明了如何可以执行一系列检查,使得可以合理的概率信任存储器系统的不可信元件。该过程使得各个处理电路可随时在线,并且可确定那些处理电路与存储器系统之间的接口是否可被信任,而不会破坏存储器或必须暂时禁用其它处理电路以便执行测试。64.在本技术中,字词“被配置为…”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。65.虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围和实质的前提下,本领域的技术人员可在其中实现各种变化、增加和修改。例如,在不脱离本发明的范围的情况下,从属权利要求的特征可与独立权利要求的特征一起进行各种组合。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部