基于密钥刷新对存储器进行重放保护的制作方法

文档序号:19635471发布日期:2020-01-07 11:57阅读:195来源:国知局
基于密钥刷新对存储器进行重放保护的制作方法

本公开涉及计算系统安全,特别地涉及防止存储器重放攻击。



背景技术:

重放攻击(也称为回放攻击)是使用有效的用户信息来执行未经授权的操作的网络安全攻击的一种形式。重放攻击包括中间人攻击和存储器重放攻击。为了执行中间人攻击,攻击者可以截取网络数据并重新发送该数据以伪装成经授权的用户,以便获得对用户信息的访问权。为了执行存储器重放攻击,攻击者可以部署读取存储器位置以获取例如认证证书(例如,用户名和密码)的程序。然后,攻击者的程序将认证证书呈现给一个或多个其他程序,以对于程序表现为经授权的用户。即使使用传统技术对认证证书进行加密,攻击者也可以将数据以其已加密的形式呈现,并且成功地获得对程序或信息的未经授权的访问。攻击者还可以重放受害者系统中变量的旧值以转移执行流,以便于得到对机密数据的未经授权的访问,或者甚至获得对整个系统的控制。虽然攻击者可以使用程序来获取存储器的副本以执行重放攻击,但是攻击者还可以通过物理地连接到受害者系统以复制并重放数据来执行重放攻击。

附图说明

要求保护的主题的各种实施例的特征和优点将随着以下具体实施方式的进行并且在参考附图之后而变得显而易见,附图中相同的附图标记表示相同的部分,并且在附图中:

图1是根据本文所描述的至少一个实施例的包括重放保护计算系统的计算环境的框图;

图2a是根据本文所描述的至少一个实施例的用于防止重放攻击的系统的框图;

图2b是根据本文所描述的至少一个实施例的用于防止重放攻击的系统的框图;

图3是根据本文所描述的至少一个实施例的用于更新加密密钥的加密刷新系统的框图;

图4是根据本文所描述的至少一个实施例的保护数据免受重放攻击的说明性方法的流程图;

图5是根据本文所描述的至少一个实施例的保护数据免受重放攻击的说明性方法的流程图;以及

图6是根据本文所描述的至少一个实施例的说明性的基于处理器的电子设备的示意图,该电子设备包括处理器电路,该处理器电路包括用于防止重放攻击的加密电路。

尽管以下具体实施方式将参考说明性实施例来进行,但是说明性实施例的许多替代、修改和变型将对本领域技术人员是显而易见的。

具体实施方式

公开了通过刷新或更新加密密钥来提供防止针对存储器的重放攻击的系统和方法。通过在一个时间点对存储器(例如,主存储器)的一部分拍快照并且在程序改变存储器内容之后的稍后的时间点利用所捕获的(旧的)内容覆盖该存储器位置来执行存储器重放攻击。即使存储器数据被加密并且受到完整性保护,对旧的内容进行重放仍然是可能的。重放攻击可以用于获取对金融数据、个人识别信息(pii)或其他秘密的或有价值的信息的访问权。重放攻击还可以用于重定向程序的操作、禁用安全性(例如,禁用对恶意软件的存在的指示)、执行未经授权的金融交易、接管对计算系统的控制或执行由特定的一组数据值授权的或基于特定的一组数据值的其他操作。

公开的重放保护计算系统可以采用至少三种技术以降低成功重放攻击的可能性。重放保护计算系统可以周期性地刷新对已加密数据(例如,两次加密的数据)的加密,可以周期性地刷新对完整性检查值的加密,或者可以周期性地刷新对其他方式的明文数据(例如,单次加密的数据)的加密。对数据或完整性检查值的周期性刷新的加密降低了攻击者成功执行重放攻击的机会窗口。

数据的未经授权的副本(例如,由攻击者系统/程序制作的那些)不会利用随后的新密钥进行刷新。当攻击者或攻击者程序试图使用数据的未经授权的副本时,该数据的未经授权的副本利用不正确的密钥进行解密,这使得解密的数据是不可理解的。

为了执行加密刷新操作,重放保护系统可以包括第一加密电路、第二加密电路和完整性检查电路。第二加密电路可以被配置为执行密码刷新操作。第二加密电路可以被配置为对数据、或对完整性检查值或者对两者执行密码刷新操作。完整性检查值由完整性检查电路计算,并且使用特定于域的完整性密钥通过明文数据或密文数据进行计算。如果对存储器中的数据进行了未经授权的或意外的更改,则完整性检查值将不能通过完整性检查并且指示存储器的潜在的损坏。在实施例中,完整性检查值构成小于已占用的存储器的10%,并且第二加密电路对完整性检查值而不是对存储在存储器中的数据执行加密刷新操作,以减少与加密刷新操作相关联的开销。这些和其他实施例在图1-6中公开,并且在下面进行描述。

图1是根据本文所描述的至少一个实施例的计算环境100的框图,该计算环境100被配置为降低对计算系统进行成功的重放攻击的可能性。换言之,计算环境100采用作为用于网络安全问题/漏洞的技术性解决方案的技术(例如,方法和系统),该网络安全问题/漏洞与常规中央处理单元(cpu)和计算系统的操作一起存在。因此,本公开提供了对计算机功能的具体改进的实施例。根据实施例,计算环境100包括通过一个或多个网络106或通过一个或多个物理连接107(例如,存储器插入器)通信地耦合到重放保护计算系统104的攻击者102。图1示出了根据实施例的攻击者计算系统102针对重放保护计算系统104进行的不成功的重放攻击的示例。

攻击者102可以是具有程序b的计算系统,该程序b是可以被递送到重放保护计算系统104的软件程序、被安装在重放保护计算系统104上的软件程序和/或由重放保护计算系统104执行的软件程序。当程序b由重放保护系统104执行时,程序b试图使用来自程序a的存储器空间的(例如)密码的未经授权的副本来获得对由程序c管理的(例如)金融数据的访问权。重放保护计算系统104通过利用新加密密钥周期性地刷新存储器分区的加密密钥来保护程序a的密码和其他数据免受重放攻击,使得在程序b使用密码的未经授权的副本(例如,陈旧的或未经刷新的副本)期间,密码的未经授权的副本被不正确地解密。虽然重放攻击示例被示为使用程序b来执行,但是攻击者102可以使用用于复制、存储和稍后覆盖存储器的各种技术以便于执行存储器重放攻击。例如,攻击者102可以使用物理连接107(例如,存储器插入器或探针)以从高速缓存或主存储器中的存储器位置读取数据,并且在稍后的时间利用数据的副本来覆盖存储器位置。

为了提供针对重放攻击的保护,根据实施例,重放保护计算系统104包括处理器核心108、可选的加密电路110和可选的完整性检查电路111,以及至少部分受重放保护的易失性或非易失性存储器空间112。

处理器核心108和加密电路110可以包括任何数量的当前可用的和/或未来开发的单核心或多核心中央处理单元和/或其组合。在实施例中,处理器核心108和加密电路110可以包括通用处理器,例如,可以从(intel公司,圣克拉拉,加利福尼亚州)处获得的i3、i5、i7、2duoandquad、微处理器。可替代地,处理器核心108和加密电路110可以包括来自另一制造商或供应商(例如,advancedmicrodevice(公司)、arm公司、等)的一个或多个处理器。处理器核心108和加密电路110可以包括专用处理器,例如,网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等。处理器核心108和加密电路110可以实现为单个半导体封装,或者实现为堆叠或以其它方式互连的半导体封装和/或管芯的组合。处理器核心108和加密电路110可以是使用多种工艺技术(例如,bicmos、coms或nmos)中的任一种的一个或多个衬底的一部分和/或可以在该一个或多个衬底上实现。

加密电路110可以被配置为对存储在存储器空间112中的数据进行加密和解密,以便为重放保护计算系统104提供重放攻击保护。加密电路110可以结合完整性检查电路111使用以提供重放攻击检测。例如,加密电路110可以被配置为对数据或完整性检查值进行加密并周期性地刷新对数据或完整性检查值的加密,并且完整性检查电路111可以被配置为生成完整性检查值119并检测数据的损坏。根据实施例,加密电路110可以根据加密刷新策略116将加密算法114应用于数据115。根据实施例,加密电路110被配置为从处理器核心108接收数据115,对数据115进行加密,并且将数据115的已加密版本存储在存储器空间112中。根据实施例,加密电路110被配置为从存储器空间112接收数据115,对数据115进行解密,并且将数据115的已解密版本提供给处理器核心108。根据实施例,加密电路110被配置为通过以下操作用密码方式刷新数据115:从存储器空间112读取数据115;部分地对数据115进行解密;对数据115进行重新加密;以及周期性地或基于存储器存取的次数将重新加密的数据115写回到存储器空间112,以保护存储器空间112的至少一部分免受重放攻击。

加密电路110可以被配置为将各种加密算法114中的一种或多种应用于数据115。根据各种实施例,加密算法114可以包括但不限于aes、rsa、三重des、blowfish、twofish等。除了阻止重放攻击之外,加密算法114可以与完整性检查值119的使用组合来检测存储器损坏。加密算法114可以表示第一加密算法和第二加密算法。在一个实施例中,加密电路110基于数据115的第一域、特性、目的或用途将第一加密算法应用于数据115。数据115的第一域、特性、目的或用途可以包括但不限于:与数据相关联的程序的类型;数据是否与可信程序相关联;数据是否与操作系统、虚拟机管理器或虚拟机相关联;数据占用哪些存储器地址等。根据实施例,第一加密算法和数据115的第一域、特性、目的或用途是由intel公司(圣克拉拉,加利福尼亚州)开发的多密钥总存储器加密(mktme)的实现方式。第一加密算法和mktme的加密操作可以符合发布于2017年12月的“intel架构存储器加密技术规范”修订版1.1,或与其兼容。在应用第一加密算法之后,加密电路110可以被配置为基于数据115的第二域、特性、目的或用途将第二加密算法应用于数据115。数据115的第二域、特性、目的或用途可以包括但不限于持续时间(例如,500毫秒或小于10秒)、存储器存取的次数(例如,对存储器空间112的50亿次存取)或者持续时间和存储器存取的次数的组合。因此,加密电路110可以被配置为针对第一域将第一加密算法应用于数据115,并且被配置为针对第二域将第二加密算法应用于数据115。根据实施例,通过将第二加密算法应用于数据115,并且周期性地(例如,基于时间和/或存储器存取)刷新加密,加密电路110可以防止对存储在存储器空间112中的数据的成功重放攻击(通过陈旧的或旧的数据副本)或降低这种成功重放攻击的可能性。

加密电路110可以被配置为根据加密刷新策略116将加密算法114应用于数据115。加密刷新策略116可以定义加密电路110通过其对数据115进行加密和/或解密的特性或标准,以提供重放攻击保护。根据实施例,加密刷新策略116可以定义第一加密域、第二加密域,或者第一加密域和第二加密域两者。根据实施例,加密刷新策略116将第二加密域定义为包括基于经过的持续时间(例如,小于1000毫秒、每500毫秒等)、已经发生的存储器存取的次数或者持续时间和存储器存取次数的组合,刷新对存储器空间112的至少一部分的加密。

重放保护技术的实施例包括具有不同密钥的双重加密。重放保护允许利用刷新密钥降低轮加密(扩散),因为其只需要在密钥刷新发生之前的短时间窗口之内操作,因此留给攻击者很少的时间来进行破坏(尽管也可以使用全轮加密)。刷新密钥最后对存储操作并且最初对加载操作,这允许在不需要知道每个域密钥的情况下连同密钥刷新一起巡查清理。

重放保护可以与完整性一起用于检测重放尝试,但是即使单独的加密也可以防止实际数据的重放,因为重放尝试会损坏数据(因此它可能在没有检测到导致的损坏的情况下仍然防止重放)。

图1包括加密电路110如何可以为重放保护计算系统104提供重放攻击保护的说明性高级别示例。攻击者102可以包括被配置为对存储器空间112的一个或多个未经授权的部分进行读取的程序b。攻击者计算系统102可以通过例如响应于重放保护计算系统104的用户点击到不法网站的互联网超链接而将程序b下载到存储器空间112中,将程序b部署到重放保护计算系统104上。

在操作120处,程序b在时间t1对用密码方式刷新的密码122执行未经授权的复制操作。用密码方式刷新的密码122在存储器空间112的一部分中,该部分根据加密刷新策略116(例如,基于持续时间和/或基于存储器存取的次数)利用由加密算法114周期性刷新的加密密钥进行加密。加密电路110和加密算法114对用密码方式刷新的密码122提供时间上的保护,使得存储器空间112中的密码和其他数据的副本可以由加密电路110在短持续时间内正确地解密,直到密码刷新更改加密密钥为止。

未经授权的复制可以在时间t1时产生密码的副本126。攻击者102可以将在时间t1时的密码的已加密副本126存储在多个位置中。在时间t1时的密码的已加密副本126可以存储在高速缓存中、存储在主存储器中、存储在一个或多个外部存储器位置等。

在操作123处,攻击者102(例如,使用程序b)在时间t2时执行存储器覆盖。存储器覆盖将在t1时的密码的已加密副本126复制在由用密码方式刷新的密码122占用的存储器位置上。时间t2在时间t1之后一定量的时间。时间t1是复制用密码方式刷新的密码122的时间。

在操作124处,存储器覆盖导致重放攻击尝试。重放攻击是将时间t1时的密码的副本126应用于程序c的认证例程128以获得对金融数据130的访问权的尝试。认证例程128占用存储器空间112的一部,该部分与程序c相关联或者分配给程序c。因为在时间t1时的密码的已加密副本126被复制并且不被加密算法114刷新,所以程序b或程序c使用在时间t1时的密码的副本126的尝试将导致用密码方式刷新的密码122的无法识别的表示。

在操作132处,程序c拒绝程序b对金融数据130的访问。

在这个失败重放攻击的简化示例中,密码用作可以被复制并且用于覆盖存储器位置以执行重放攻击的数据的示例。虽然密码数据的示例是用于重放攻击的数据的一个示例,但是可以使用许多其他类型的数据。可以用于重放攻击的数据的附加示例包括但不限于用于检查恶意软件数据的单个位、系统认证数据、基于web的认证数据、表示美元金额的数据、地理位置、pii、医疗保健信息、货币、商业交易、通信消息、控制协议等。另外地,如上面所描述的,攻击者102可以是通过一个或多个网络106耦合到重放保护计算系统104的计算系统,和/或攻击者102可以是使用一个或多个物理连接107来复制并覆盖存储器中的数据以执行重放攻击的人。

图2a和图2b示出了与本公开的实施例相一致的重放保护计算系统的附加的示例实施例。

图2a示出了与本公开的实施例相一致的重放保护计算系统200的示例实施例。重放保护计算系统200可以通过在处理器核心108与存储器电路204之间对数据202进行加密和解密来保护数据202。根据实施例,重放保护计算系统200是重放保护计算系统104(图1中示出)的示例实现方式。根据实施例,重放保护计算系统200可以通过根据第一加密策略利用第一加密算法对数据202进行加密,以及通过根据第二加密策略利用第二加密算法对数据202进行加密,来防止对存储器电路204的重放攻击或降低对存储器电路204的重放攻击的可能性。根据实施例,为了保护数据202免受重放攻击,重放保护计算系统200包括第一加密电路206、第二加密电路208和完整性检查电路210。

重放保护计算系统200可以根据第一加密策略使用第一加密电路206对数据202进行加密。根据实施例,第一加密电路206可以将数据202和第一密钥212应用于第一加密算法214以生成第一已加密数据216。根据实施例,第一加密电路206可以将第一已加密数据216和第一密钥212应用于第一解密算法218,以反转加密过程并恢复数据202。第一加密算法214和第一解密算法218可以是相同的加密算法。根据各种实施例,第一加密算法214和第一解密算法218可以包括但不限于aes、aes-xts、rsa、三重des、blowfish、twofish等。

根据实施例,第一加密电路206可以使用密钥id220和密钥表222来标识第一密钥212。可以由第一加密电路206通过分析数据202的存储器地址来标识密钥id220。特别地,密钥id220可以由数据202的存储器地址中的一个或多个位来表示。在一个实施例中,密钥id220可以由数据202的存储器地址中的一个或多个最高有效位(例如,3个最高有效位)来定义。在另一实施例中,密钥id220可以以某种带外方式与数据202相关联。根据实施例,第一加密电路206可以将密钥id220应用于密钥表222以标识第一密钥212(或者标识将用于对数据202进行加密的任何密钥)。根据实施例,密钥表222包括多个密钥id(例如,密钥id1、密钥id2、……密钥idm),每个密钥id与对应的加密密钥(例如,密钥a、密钥b、……密钥n)相关联。可以将密钥id重新分配给不同的密钥,或者可以将不同的密钥分配给特定的密钥id。

根据实施例,第一加密电路206可以根据包括在第一加密策略224中的定义,使用一种或多种技术(除了密钥id220和密钥表222之外)来选择第一密钥212。第一加密策略224可以包括数据202的第一域、特性、目的或用途,其可以包括但不限于:与数据相关联的程序的类型;数据是否与可信程序相关联;数据是否与操作系统、虚拟机管理器、虚拟机相关联;以及数据占用哪些存储器地址等。换言之,作为潜在的第一域的简化示例,如果数据202与操作系统相关联,则数据202可以利用密钥a加密,但是如果数据202与非管理程序相关联,则数据可以利用密钥b加密。

根据实施例,第一加密电路206可以包括由intel公司(圣克拉拉,加利福尼亚州)开发的多密钥总存储器加密(mktme)的实现方式。第一加密电路206可以符合发布于2017年12月的“intel架构存储器加密技术规范”修订版1.1,或与其兼容。

重放保护计算系统200可以根据第二加密策略使用第二加密电路208通过对第一已加密数据216进行加密来第二次对数据202进行加密。根据实施例,重放保护计算系统200可以通过根据第一加密策略224利用第一加密算法214对数据202进行加密,以及通过利用第二加密算法228对第一已加密数据216进行加密,来防止对存储器电路204的重放攻击或降低对存储器电路204的重放攻击的可能性。

根据实施例,第二加密电路208可以将第一已加密数据216和第二密钥226应用于第二加密算法228以生成第二已加密数据230。第二加密电路208可以将第二已加密数据230和第二密钥226应用于第二解密算法232,以恢复第一已加密数据216。第二加密算法228和第二解密算法232可以是相同的加密算法。根据各种实施例,第二加密算法228和第二解密算法232可以包括但不限于aes、aes-xts、rsa、三重des、blowfish、twofish等。

第二加密电路208可以包括并使用第二密钥生成算法234来生成和/或确定第二密钥226。根据实施例,第二密钥生成算法234可以是伪随机密钥生成器,其可以基于一个或多个硬件、软件或其他方式的内部加密种子(例如,几秒的时间)。

根据实施例,第二加密电路208可以基于第二加密策略236使用第二密钥生成算法234来选择性地生成第二密钥226。第二加密策略236可以是加密刷新策略116(图1中示出)的实现方式。根据实施例,第二加密策略236通过根据有限的时间量或根据对存储器电路204的预定次数的存储器存取改变第二密钥226来保护数据202和第一已加密数据216免受重放攻击。尽管第一加密算法214可以保护数据202免于被解密成明文,但是重放攻击可以利用已加密形式的第一已加密数据216来获取对程序或数据(例如,程序c的金融数据130)的访问权。如果攻击者尝试使用数据的陈旧的(例如,未刷新的)版本,则通过快速地(例如,每500毫秒、每1000次存储器存取)改变第二密钥226的值,将利用第二密钥226的错误版本对存储器电路204中的数据的两次加密的副本进行解密。

根据实施例,第二已加密数据230存储在存储器电路204中。根据实施例,第二已加密数据230可以由第二加密电路208写入存储器电路204。根据一种实现方式,第二加密电路208可以被包括在重放保护计算系统200中的一个或多个存储器控制器的存储器控制器电路中。存储器电路204还可以存储完整性检查值238,其可以用于验证第二加密数据230尚未被篡改或尚未以其他方式改变。

根据实施例,为了识别存储在存储器电路204中的信息何时已经被损坏或者已经以其他方式接收到未经授权的改变,重放保护计算系统200使用完整性检查电路210使用单独的完整性密钥生成完整性检查值238并对其进行确认。根据实施例,完整性检查电路210包括完整性检查算法242,其生成完整性检查值238。完整性检查电路210可以将数据202、第一已加密数据216和数据202的存储器地址240提供给完整性检查算法242,以生成完整性检查值238。

图2b示出了与本公开的实施例相一致的重放保护计算系统250的示例,该重放保护计算系统250被配置为将第二加密算法应用于完整性检查值以阻止攻击者进行成功重放攻击或降低攻击者进行成功重放攻击的可能性。

根据实施例,重放保护计算系统250包括第二加密电路252,其被配置为生成已加密完整性检查值254,以与第一已加密数据216一起存储在存储器电路204中。第二加密电路252将完整性检查值238和第二密钥226应用于第二加密算法228,以生成已加密完整性检查值254。对完整性检查值238进行加密的一个优点是需要较少的信息量以由第二加密电路252进行加密,同时仍然提供公开的针对重放攻击的优点。

图3示出了与本公开的实施例相一致的用于在使得重放攻击难以成功或极不可能成功的时间或操作的量内更新加密密钥的加密刷新系统300。加密刷新系统300可以包括第二加密电路302,该第二加密电路302被配置为刷新或更新对存储在存储器电路304中的数据的加密,以阻止成功重放攻击或降低成功重放攻击的可能性。

根据实施例,存储器电路304存储用密码方式刷新的数据306。用密码方式刷新的数据306可以包括新密钥已加密数据308和现有密钥已加密数据310。根据实施例,新密钥已加密数据308表示已经利用更新后的加密密钥或者新加密密钥更新或刷新的数据,并且现有密钥已加密数据310表示在例如由加密刷新策略116定义的标准到期之前已经先前地被加密的数据。

第二加密电路302可以包括第二加密算法228、第二解密算法232、现有密钥312和新密钥314。第二加密电路302可以是第二加密电路208或第二加密电路252的实现方式。第二加密电路302可以使用现有密钥312和第二解密算法232对现有密钥已加密数据310进行解密。在对现有密钥已加密数据310进行解密之后,第二加密电路302可以使用第二加密算法228利用新密钥314对已解密数据进行重新加密。第二加密电路302可以使用指针316来跟踪重新加密操作,该指针316标识在存储器电路304中的已经被重新加密以及尚未被重新加密的存储器位置。与本公开的实施例相一致,加密刷新操作可以根据加密刷新策略116来完成,以阻止对由存储器电路304存储的信息进行成功重放攻击或降低对由存储器电路304存储的信息进行成功重放攻击的可能性。

图4示出了与本公开的实施例相一致的保护数据免受重放攻击的方法400。

在操作402处,方法400开始。

在操作404处,方法400可以利用第一加密算法和第一密钥对数据进行加密以生成第一已加密数据。

在操作406处,方法400可以利用第二加密算法和第二密钥对第一已加密数据进行加密以生成第二加密数据。

在操作408处,方法400可以在加密电路与存储器电路之间传送第二加密数据。

在操作410处,方法400结束。

图5示出了与本公开的实施例相一致的保护数据免受重放攻击的方法500。

在操作502处,方法500开始。

在操作504处,方法500可以通过将完整性检查算法应用于数据来生成数据的完整性检查值。

在操作504处,可以可选地使用第一加密密钥对先前已加密的数据生成完整性检查值。

在操作506处,方法500可以通过将加密算法和第二加密密钥应用于完整性检查值对完整性检查值进行加密,以生成已加密完整性检查值。

在操作508处,方法500可以将已加密完整性检查值和数据传送到存储器电路。

在操作510处,方法500结束。

图6是根据本文所描述的至少一个实施例的说明性的基于处理器的电子设备600的示意图,该电子设备600包括具有用于防止重放攻击的加密电路的处理器电路602。基于处理器的设备600可以另外地包括以下中的一个或多个:图形处理单元612、无线输入/输出(i/o)接口620、有线i/o接口630、存储器电路640、功率管理电路650、非暂时性存储设备660和网络接口670。以下讨论提供了对形成说明性的基于处理器的设备600的组件的简要、一般描述。示例非限制性基于处理器的设备600可以包括:智能电话、可穿戴计算机、便携式计算设备、手持计算设备、台式计算设备、刀片服务器设备、工作站等。

根据实施例,基于处理器的设备600包括处理器电路602,该处理器电路602包括处理器核心108、第一加密电路206和第二加密电路208和/或第二加密电路252。在实施例中,基于处理器的设备600可以另外地包括图形处理器电路612。在实施例中,基于处理器的设备600包括处理器电路602,该处理器电路602能够执行机器可读指令集614、从一个或多个存储设备660读取数据和/或指令集614以及将数据写入一个或多个存储设备660。在一些实施例中,基于处理器的设备600包括图形处理器电路612,该图形处理器电路612能够执行机器可读指令集614并且生成能够向系统用户提供显示输出的输出信号。相关领域技术人员将认识到,所示出的实施例以及其他实施例可以利用其他基于处理器的设备配置来实践,其他基于处理器的设备配置包括便携式电子设备或手持电子设备,例如,智能电话、便携式计算机、可穿戴计算机、消费电子产品、个人计算机(“pc”)、网络pc、小型计算机、服务器刀片、大型计算机等。

处理器电路602可以包括任何数量的硬连线电路或可配置电路,其中的一些或全部可以包括部分地或全部地设置在pc、服务器或者能够执行处理器可读指令的其他计算系统中的电子组件、半导体器件和/或逻辑元件的可编程和/或可配置的组合。

基于处理器的设备600包括总线或类似的通信链路616,其在各种系统组件之间通信地耦合并且促进在各种系统组件之间的信息和/或数据的交换,各种系统组件包括处理器电路602、图形处理器电路612、一个或多个无线i/o接口620、一个或多个有线i/o接口630、一个或多个存储设备660和/或一个或多个网络接口670。基于处理器的设备600可以在本文中以单数指代,但是这并不旨在将实施例限制于单个基于处理器的设备600,因为在某些实施例中,可以存在多于一个基于处理器的设备600,其含有、包括或包含任何数量的通信地耦合的、共置一处的或远程联网的电路或设备。

处理器电路602可以包括任何数量、任何类型的能够执行机器可读指令集的当前可用的或未来开发的设备或其组合。处理器电路602可以包括但不限于任何当前的或未来开发的单核心或多核心处理器或微处理器,例如:一个或多个片上系统(soc);中央处理单元(cpu);数字信号处理器(dsp);图形处理单元(gpu);专用集成电路(asic);可编程逻辑单元;现场可编程门阵列(fpga)等。除非另有描述,否则图6中示出的各种块的结构和操作是常规设计。因此,本文不需要进一步详细描述这样的块,因为相关领域技术人员将理解这些块。对基于处理器的设备600的组件中的至少一些组件进行互连的总线616可以采用任何当前可用的或未来开发的串行或并行总线结构或架构。

系统存储器640可以包括只读存储器(“rom”)642和随机存取存储器(“ram”)646。rom642的一部分可以用于存储或以其他方式保留基本输入/输出系统(“bios”)644。bios644向基于处理器的设备600提供基本功能,例如,通过使处理器电路602加载和/或执行一个或多个机器可读指令集614。在实施例中,一个或多个机器可读指令集614中的至少一些使得处理器电路602的至少一部分提供、创建、产生、转换和/或用作专用的、具体的和特定的机器,例如,文字处理机器、数字图像采集机器、媒体播放机器、游戏系统、通信设备、智能电话等。

基于处理器的设备600可以包括至少一个无线输入/输出(i/o)接口620。该至少一个无线i/o接口620可以通信地耦合到一个或多个物理输出设备622(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线i/o接口620可以通信地耦合到一个或多个物理输入设备624(定点设备、触摸屏、键盘、触觉设备等)。至少一个无线i/o接口620可以包括任何当前可用的或未来开发的无线i/o接口。无线i/o接口的示例包括但不限于:近场通信(nfc)等。

基于处理器的设备600可以包括一个或多个有线输入/输出(i/o)接口630。该至少一个有线i/o接口630可以通信地耦合到一个或多个物理输出设备622(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个有线i/o接口630可以通信地耦合到一个或多个物理输入设备624(定点设备、触摸屏、键盘、触觉设备等)。有线i/o接口630可以包括任何当前可用的或未来开发的i/o接口。示例有线i/o接口包括但不限于:通用串行总线(usb)、ieee1394(“firewire”)等。

基于处理器的设备600可以包括一个或多个通信地耦合的非暂时性数据存储设备660。数据存储设备660可以包括一个或多个硬盘驱动器(hdd)和/或一个或多个固态存储设备(ssd)。一个或多个数据存储设备660可以包括任何当前的或未来开发的存储装置、网络存储设备和/或系统。这种数据存储设备660的非限制性示例可以包括但不限于任何当前的或未来开发的非暂时性存储装置或设备,例如,一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或其各种组合。在一些实现方式中,一个或多个数据存储设备660可以包括一个或多个可移除存储设备,例如,一个或多个闪速驱动器、闪速存储器、闪速存储单元或者能够通信地耦合到基于处理器的设备600并从基于处理器的设备600解耦合的类似的装置或设备。

一个或多个数据存储设备660可以包括将相应的存储设备或系统通信地耦合到总线616的接口或控制器(未示出)。一个或多个数据存储设备660可以存储、保留或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储库、数据库、逻辑结构,和/或对处理器电路602和/或图形处理器电路612和/或在处理器电路602和/或图形处理器电路612上执行或由其执行的一个或多个应用有用的其他数据。在一些实例中,一个或多个数据存储设备660可以是通信地耦合到处理器电路602的,例如,经由总线616或经由一个或多个有线通信接口630(例如,通用串行总线或usb);一个或多个无线通信接口620(例如,近场通信或nfc);和/或一个或多个网络接口670(ieee802.3或以太网、ieee802.11或等)。

处理器可读指令集614和其他程序、应用、逻辑集和/或模块可以全部地或部分地存储在系统存储器640中。这样的指令集614可以全部地或部分地从一个或多个数据存储设备660传送。指令集614可以在由处理器电路602和/或图形处理器电路612执行期间,全部地或部分地加载、存储或以其他方式保留在系统存储器640中。处理器可读指令集614可以包括机器可读和/或处理器可读代码、指令或能够提供本文所描述的语音指导功能和能力的类似的逻辑。

基于处理器的设备600可以包括控制能量存储设备652的一个或多个操作方面的功率管理电路650。在实施例中,能量存储设备652可以包括一个或多个主要(即,不可再充电)的电池或类似的能量存储设备或者次要(即,可再充电)的电池或类似的能量存储设备。在实施例中,能量存储设备652可以包括一个或多个超级电容器或超电容器。在实施例中,功率管理电路650可以改变、调整或控制从外部电源654到能量存储设备652和/或到基于处理器的设备600的能量流动。电源654可以包括但不限于太阳能系统、商用电网、便携式发电机、外部能量存储设备或其任何组合。

为了方便起见,处理器电路602、图形处理器电路612、无线i/o接口620、有线i/o接口630、功率管理电路650、存储设备660和网络接口670被示为经由总线616彼此通信地耦合,从而提供上面所描述的组件之间的连接。在替代实施例中,上面所描述的组件可以以不同于图6中示出的方式通信地耦合。例如,上面所描述的组件中的一个或多个可以直接地耦合到其他组件,或者可以经由一个或多个中间组件(未示出)彼此耦合。在另一实施例中,上面所描述的组件中的一个或多个可以集成到处理器电路602和/或图形处理器电路612中。在一些实施例中,可以省略总线616的全部或一部分,并且使用合适的有线或无线连接将组件直接地彼此耦合。

如在本申请和权利要求书中使用的,由术语“和/或”连接的项目的列表可以表示所列项目的任何组合。例如,短语“a,b和/或c”可以表示a;b;c;a和b;a和c;b和c;或者a,b和c。如在本申请和权利要求书中使用的,由术语“……中的至少一个”连接的项目的列表可以表示所列项目的任何组合。例如,短语“a,b或c中的至少一个”可以表示a;b;c;a和b;a和c;b和c;或者a,b和c。

如在本文的任何实施例中使用的,术语“系统”或“模块”可以指代例如被配置为执行前述操作中的任一操作的软件、固件和/或电路。软件可以体现为记录在非暂时性计算机可读存储介质上的软件包、代码、指令、指令集和/或数据。固件可以体现为在存储器设备中被硬编码(例如,非易失性)的代码、指令或指令集和/或数据。如在本文的任一实施例中使用的,“电路”可以包括单个的或以任何组合形式的以下各项:例如,硬连线电路、可编程电路(例如,包括一个或多个单独的指令处理核心的计算机处理器)、状态机电路和/或存储由可编程电路或未来计算范例(包括例如大规模并行、模拟或量子计算)执行的指令的固件、加速器的硬件实施例(例如,神经网络处理器)和以上的非硅实现方式。电路可以共同地或单独地体现为形成较大系统的一部分的电路,例如,集成电路(ic)、片上系统(soc)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等。

本文所描述的操作中的任何操作可以在包括一种或多种介质(例如,非暂时性存储介质)的系统中实现,该介质具有单独地或组合地存储在其中的指令,该指令当由一个或多个处理器执行时,执行该方法。在这里,处理器可以包括例如服务器cpu、移动设备cpu和/或其他可编程电路。另外,本文所描述的操作旨在可以跨多个物理设备(例如,在多于一个不同的物理位置的处理结构)分布。存储介质可以包括任何类型的有形介质,例如,任何类型的盘,包括硬盘、软盘、光盘、压缩盘只读存储器(cd-rom)、可重写压缩盘(cd-rw)以及磁光盘;半导体器件,例如,只读存储器(rom)、诸如动态和静态随机存取存储器(ram)之类的ram、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪速存储器、固态硬盘(ssd)、嵌入式多媒体卡(emmc)、安全数字输入/输出(sdio)卡、磁卡或光卡、非易失性存储器或适用于存储电子指令的任何类型的介质。其他实施例可以实现为由可编程控制设备执行的软件。

以下示例涉及进一步的实施例。本公开的以下示例可以包括这样的主题材料:例如,至少一个设备、方法、用于存储指令的至少一种机器可读介质(当执行该指令时使得机器基于方法执行行动)、用于基于方法执行行动的单元和/或用于在半导体封装衬底中形成磁线通孔的系统。

示例

本公开的示例包括这样的主题材料:例如,与保护计算系统免受存储器重放攻击相关的方法、设备、装置或系统,如下面讨论的。

示例1.根据该示例,提供了一种装置。该装置包括:第一加密电路,其用于利用第一加密算法和第一密钥对数据进行加密以生成第一已加密数据,其中第一加密电路用于基于第一域对数据进行加密;第二加密电路,其耦合到第一加密电路,第二加密电路用于利用第二加密算法和第二密钥对第一已加密数据进行加密以生成第二加密数据,其中第二加密电路用于基于第二域对第一已加密数据进行加密以限制用于重放攻击的时间窗口;以及存储器控制器电路,其耦合到第二加密电路以在第二加密电路与存储器电路之间传送第二加密数据。

示例2.该示例包括示例1的元素,其中第一域包括单独的计算机程序、计算机程序特性、存储器地址组或权限级别中的一个或多个,其中第二域包括时间、对存储器电路的存储器存取或时间和对存储器电路的存储器存取的组合。

示例3.该示例包括示例2的元素,其中第二加密电路用于基于预定持续时间的到期或者基于对存储器电路的预定次数的存储器存取来刷新第二密钥。

示例4.该示例包括示例3的元素,其中为了刷新第二密钥,第二加密电路被配置为利用第二密钥将第二加密数据解密为第一加密数据,第二加密电路被配置为利用第三加密密钥对第一加密数据进行加密,并且第二加密电路被配置为将第三加密密钥重新定义为第二密钥。

示例5.该示例包括示例1的元素,其中第一域至少部分地由第一加密策略确定,第一加密策略至少部分地基于数据的特性来定义多个加密密钥中的哪个加密密钥要应用于数据。

示例6.该示例包括示例1的元素,其中第一密钥是多个第一密钥中的由第一加密电路至少部分地基于密钥标识符选择的一个第一密钥,其中密钥标识符由数据的存储器地址的一部分定义。

示例7.该示例包括示例1的元素,其中第二加密电路被制造在存储器控制器电路内。

示例8.根据该示例,提供了一种方法。该方法包括:利用第一加密电路利用第一加密算法和第一密钥对数据进行加密以生成第一已加密数据,其中对第一密钥的选择至少部分地基于第一加密策略;利用第二加密电路利用第二加密算法和第二密钥对第一已加密数据进行加密以生成第二加密数据,其中对第二密钥的选择至少部分地基于第二加密策略,以限制用于重放攻击的时间窗口;以及在第二加密电路与存储器电路之间传送第二加密数据。

示例9.该示例包括示例8的元素,其中第一加密策略基于单独的计算机程序、计算机程序特性、存储器地址组或权限级别中的一个或多个来选择第一密钥,其中第二加密策略基于时间、对存储器电路的存储器存取、存储器地址范围或时间和对存储器电路的存储器存取的组合来刷新第二密钥。

示例10.该示例包括示例8的元素,还包括:利用第二密钥将第二加密数据解密为第一加密数据;利用第三加密密钥对第一加密数据进行加密;以及将第三加密密钥重新定义为第二密钥。

示例11.该示例包括示例8的元素,其中第一密钥是多个第一密钥中的由第一加密电路至少部分地基于密钥标识符选择的一个第一密钥,其中密钥标识符由数据的存储器地址的一部分定义。

示例12.根据该示例,提供了一种装置。该装置包括:完整性检查电路,其用于将完整性检查算法应用于数据,其中数据可以是明文数据或由应用第一加密电路的输出产生的密文,以基于完整性检查密钥生成数据的完整性检查值;耦合到完整性检查电路的加密电路,该加密电路利用加密算法和密钥对完整性检查值进行加密以生成已加密完整性检查值,该加密电路基于持续时间、存储器存取计数或持续时间和存储器存取计数来刷新密钥;以及存储器控制器电路,其用于在加密电路与存储器电路之间传送已加密完整性检查值和数据。

示例13.该示例包括示例12的元素,其中加密电路是第一加密和完整性电路,其中该装置还包括:第二加密电路,其耦合在处理器电路与第一加密和完整性电路之间,第二加密电路用于至少部分地基于域对数据进行加密。

示例14.该示例包括示例13的元素,其中该域包括单独的计算机程序、计算机程序特性、存储器地址组或权限级别中的一个或多个。

示例15.该示例包括示例12的元素,其中持续时间小于10秒或者持续时间基于用尽第二加密密钥。

示例16.该示例包括示例12的元素,其中持续时间基于在一段时间内使用第二加密密钥,该时间段小于或等于基于声音密码原理使用的密码算法推荐的时间段。

示例17.该示例包括示例12的元素,其中加密电路被包括在存储器控制器电路内。

示例18.该示例包括示例12的元素,其中存储器控制器电路将完整性检查值与在存储器电路中的数据进行关联。

示例19.该示例包括示例12的元素,其中存储器存取计数基于对存储器地址的特定范围的存储器存取的次数。

示例20.该示例包括示例12的元素,其中存储器存取计数在10亿次到100亿次存储器存取的范围内。

示例21.该示例包括示例12的元素,读取已加密完整性检查值;生成新密钥;利用密钥对已加密完整性检查值进行解密;利用新密钥对完整性检查值进行加密;以及将已加密完整性检查值写入存储器。

示例22.根据该示例,提供了一种存储指令的计算机可读设备,该指令如果由一个或多个处理器执行,则执行示例8到示例11中任一项的方法。

示例23.根据该示例,提供了一种设备,该设备包括用于执行示例8到示例11中任一项的方法的单元。

本文已经采用的术语和表述用作描述的术语并且不是限制性的,并且在使用这样的术语和表述时不旨在排除所示出和描述的特征(或其部分)的任何等效物,并且应该认识到的是,在权利要求书的范围内进行各种修改是可能的。因此,权利要求书旨在涵盖所有这些等效物。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1