当前位置: 首页 > 专利查询>新思公司专利>正文

用于数据存储的完整性保护制造技术

技术编号:16112810 阅读:55 留言:0更新日期:2017-08-30 06:09
一种用于保护存储系统的完整性的系统:维持针对多个存储块中的每一者的年龄计数器和机会计数器;维持针对存储系统的历元计数器;将数据写入所选择的存储块中;增加所选择的存储块的本地序列号;如果所选择的存储块的本地序列号溢出,则更新针对所选择的存储块的机会计数器;基于全局序列号和本地序列号,计算所选择的存储块中的消息认证码(MAC);如果针对任何未选择的存储块的机会计数器与针对该未选择的存储块的历元计数器的LSB不匹配,则更新针对该未选择的存储块的年龄计数器和机会计数器;以及计算针对执行更新的任何存储块计算的新的MAC。

【技术实现步骤摘要】
【国外来华专利技术】用于数据存储的完整性保护
本公开涉及数据存储、存储高速缓存和密码学的完整性保护。
技术实现思路
根据一个实施方式,提供了一种用于保护存储系统的完整性的方法,所述存储系统分成多个存储块,每个存储块具有本地序列号。该方法维持针对每个所述存储块的年龄计数器;维持针对每个所述存储块的机会计数器;维持针对所述存储系统的历元计数器;将数据写入所选择的存储块中;增加所选择的所述存储块的所述本地序列号;如果所选择的所述存储块的所述本地序列号溢出,则更新针对所选择的所述存储块的所述机会计数器;基于全局序列号和所述本地序列号,计算所选择的所述存储块中的消息认证码(MAC);如果针对任何未选择的存储块的机会计数器与针对所述未选择的存储块的历元计数器的LSB不匹配,则更新针对所述未选择的存储块的所述年龄计数器和所述机会计数器;以及计算针对执行所述更新的任何存储块的新的MAC。在一个实现方式中,1)在对应的年龄计数器溢出之后以及2)在将数据写入对应的存储块期间,适时地更新所述MAC中的每一者。鉴于参照附图的对各个实施方式和/或方面的详细描述,本公开的前述、附加方面和实施方式对于本领域普通技术人员将是显而易见的,接下来提供对各个实施方式和/或方面的详细描述。附图说明阅读以下具体实施方式部分并参照附图,本公开的前述和其它优点将变得显而易见。图1是全局序列号的示意图。图2是使用具有机会计数器的本地序列号的示例的流程图。虽然本公开容易进行各种修改和替选形式,但是已经在附图中示出作为示例的具体实施方式或实现方式,并且将在此详细描述。然而,应当理解,本公开不旨在受限于所公开的特定形式。而是,本公开旨在覆盖落入由所附权利要求限定的本专利技术的精神和范围内的所有修改、等同物和替选物。具体实施方式位于不安全设备上的存储系统的完整性保护通常通过计算加密完整性保护值或消息认证码(MAC)并与数据一起存储来完成。因此,未经授权的第三方不能修改写入在存储器中的信息。MAC算法,有时称为键控(加密)散列函数(然而,加密散列函数仅是生成MAC的可能方式之一),接受作为输入的密钥和待认证的任意长度的数据,并输出MAC(有时称为标签)。通过允许检验者(同样具有密钥的人)检测数据内容的任何更改,MAC值保护数据完整性及数据真实性。当存储器被真实地更新时,重新计算MAC。为了防止回放先前的真实值,将唯一值(如计数器或序列号)添加到认证输入。当数据高速缓存向外部存储器写出高速缓存行时,也使用MAC。在这种情况下,为了防止攻击者回放先前的数据段,将序列号与存储器中的各高速缓存行进行关联。因此,攻击者无法捕获外部存储器的图像,并且在存储器已经更新后,用先前捕获的版本替换存储器内的高速缓存行。通常,为了避免在将新数据写入存储器时的长时间的延迟,存储器被分成存储块,并且利用每个存储块存储MAC。块可以是一个高速缓存行或更大的存储空间。因此,只需要在单独的、较小的存储块上执行认证算法。然而,需要针对每个存储块维持单独的序列号。序列号需要足够大以防止其太频繁地到期(溢出)。当序列号到期时,需要再续键(rekey)加密完整性算法,这导致针对所有数据块重新计算MAC。在刷新过程期间,存储系统不可访问,导致访问延迟。因此,大的序列号是优选的,但是对于大量的块,需要存储和维持大量的序列号数据。现有的解决方案是针对每个存储块维持小的本地序列号,并维持全局历元计数器。历元计数器和本地序列号被级联以形成应用于完整性算法的序列号。然而,每当更新历元计数器时,都需要更新每个MAC。在刷新过程中无法访问存储系统。需要减少存储要求以维持序列号,同时最小化刷新事件和访问延迟。需要在正常数据更新期间或在后台中适时地更新MAC,使得当更新历元计数器时仍然可以访问存储器。在一个实施方式中,参照图1,全局序列号100包括本地序列号101和全局历元计数器102。本地序列号101被分为两个字段:机会计数器110和年龄计数器115。针对每个外部高速缓存行或存储块来维持本地序列号101的实例。密钥初始化时,所有本地序列号重置为零。全局历元计数器102是对于所有块的全局计数器。在数据块的正常更新(写入)期间,机会计数器110允许MAC在年龄计数器115溢出之后适时地更新。机会计数器110还允许MAC离线刷新到新的历元值。年龄计数器、机会计数器和历元计数器的宽度可以被调整以折中历元更新的频率、离线完整性检验刷新到新的历元值的频率以及机会历元更新相对于计数器值的存储器存储要求。作为示例,32位全局序列号可以包括4位年龄计数器和2位机会计数器。历元计数器102和年龄计数器被级联以形成用于计算完整性保护值的全序列号。通过将全局历元计数器102与本地机会计数器110进行比较,推断历元计数器的最低有效位(LSB)。每次将高速缓存行写入外部存储器时,将机会计数器110与历元计数器102的LSB进行比较。如果它们相匹配,则年龄计数器增加1。如果年龄计数器回绕(进位到机会计数器中),历元计数器增加1。当历元计数器增值时,需要检验所有本地序列号,并且具有与新历元的LSB匹配的机会计数器的每一行都需要立即用新的序列号重新计算其MAC。当历元计数器改变时,机会计数器允许MAC的离线更新或刷新。后台进程或线程可以更新本地序列号,使得机会计数器与当前历元同步。当高速缓存不忙时,即在低优先级进程上时,可能发生这种情况。每当执行MAC刷新操作时,年龄计数器重置为零,以最小化对历元更新的需要。当行被写回到存储器中并且机会计数器与当前历元不匹配时,在计算MAC之前机会计数器被设置为匹配,且年龄计数器重置为零。因此,对应于该行的MAC适时地刷新。通过写入高速缓存行并验证MAC,来执行外部高速缓存行MAC值的刷新过程。使用更新的全局序列号,来计算新的MAC。当历元计数器超过预定阈值时,可选地以不同的阈值对处理器产生中断,以在计数器到期之前提示主动再续键操作。可选地,后台进程检验机会计数器并针对任何即将到期的机会计数器(例如,距离历元的LSB为1比特的存储块)更新MAC。在后台进程期间,任何存储块MAC都可以根据预先确定的策略进行更新。这使得在刷新命中之前高速缓存行可以适时更新的时间最大化,并仍然允许刷新作为后台进程运行。图2示出了当在步骤201处启动对存储块i的更新认证码时的实施方式的示例性流程图。如果步骤203确定,在步骤203处针对块i的机会计数器与历元计数器的LSB不同,则本地序列号来自不同的历元,然后步骤205将针对块i的机会计数器设置为历元计数器的LSB,并将针对块i的年龄计数器重置为零。另外,本地序列号处于当前历元中,并且在步骤207处,针对块i的年龄计数器增值。如果在步骤209处年龄没有溢出(即,没有进位),则在步骤211处,用新的序列号更新存储块i。如果在步骤209处年龄溢出(即重置到零),则需要在步骤213处更新历元计数器,针对块i的机会计数器被设置为历元计数器的LSB,并且年龄被重置为0。存储块i被相应地更新。除了在步骤213处刚更新的存储块(其被步骤215跳过)之外,在步骤219处检验所有存储块j。如果在步骤219处针对块j的机会计数器等于历元计数器的LSB,则机会计数器已经落后于由机会计数器中的位数所表示的历元数(在本例中,本文档来自技高网...
用于数据存储的完整性保护

【技术保护点】
一种保护存储系统的完整性的方法,所述存储系统分成多个存储块,每个存储块具有本地序列号,所述方法包括:维持针对每个所述存储块的年龄计数器;维持针对每个所述存储块的机会计数器;维持针对所述存储系统的历元计数器;将数据写入所选择的存储块中;增加所述所选择的存储块的所述本地序列号;如果所述所选择的存储块的所述本地序列号溢出,则更新针对所述所选择的存储块的所述机会计数器;基于全局序列号和所述本地序列号,计算所述所选择的存储块中的消息认证码(MAC);如果针对任何未选择的存储块的所述机会计数器与针对所述未选择的存储块的所述历元计数器的LSB不匹配,则更新针对所述未选择的存储块的所述年龄计数器和所述机会计数器;以及计算针对执行所述更新的任何存储块的新的MAC。

【技术特征摘要】
【国外来华专利技术】1.一种保护存储系统的完整性的方法,所述存储系统分成多个存储块,每个存储块具有本地序列号,所述方法包括:维持针对每个所述存储块的年龄计数器;维持针对每个所述存储块的机会计数器;维持针对所述存储系统的历元计数器;将数据写入所选择的存储块中;增加所述所选择的存储块的所述本地序列号;如果所述所选择的存储块的所述本地序列号溢出,则更新针对所述所选择的存储块的所述机会计数器;基于全局序列号和所述本地序列号,计算所述所选择的存储块中的消息认证码(MAC);如果针对任何未选择的存储块的所述机会计数器与针对所述未选择的存储块的所述历元计数器的LSB不匹配,则更新针对所述未选择的存储块的所述年龄计数器和所述机会计数器;以及计算针对执行所述更新的任何存储块的新的MAC。2.根据权利要求1所述的方法,其中,1)在对应的所述年龄计数器溢出之后以及2)在将数据写入对应的所述存储块期间,适时地更新每个所述MAC。3.根据权利要求1所述的方法,其中,在密钥...

【专利技术属性】
技术研发人员:迈克尔·肯尼思·鲍勒
申请(专利权)人:新思公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1