当前位置: 首页 > 专利查询>英特尔公司专利>正文

保护内存中的敏感数据制造技术

技术编号:37850299 阅读:10 留言:0更新日期:2023-06-14 22:38
本申请涉及保护内存中的敏感数据。公开了一种方法,包括确定第一内存缓冲区消耗的第一内存空间量,第一内存满缓冲区包含要被解密以供计算过程使用的加密数据,在第二内存缓冲区中分配大于第一内存缓冲区消耗的第一内存空间量的第二内存空间量,用随机数据填充第一内存空间量,设置指向第二内存缓冲区的固定内存位置的指针,并调用硬件元件以实现迭代过程以至少部分基于迭代值输入生成唯一化身值,解密驻留在与迭代值对应的第一内存缓冲区地址处的数据元素以生成解密的数据元素,并将解密后的数据元素写入第二内存缓冲区中对应于固定内存地址加上唯一化身值的地址。内存地址加上唯一化身值的地址。内存地址加上唯一化身值的地址。

【技术实现步骤摘要】
保护内存中的敏感数据


[0001]本申请涉及保护内存中的敏感数据。

技术介绍

[0002]对敏感数据(例如密码、私钥等)进行操作的计算过程通常以加密形式从内存中获取敏感数据。为了使敏感数据可用,计算过程解密数据并将解密过程的结果存储在内存中的缓冲区中。当敏感数据以明文形式存储在内存缓冲区中时,潜在的攻击者只需执行一次内存转储即可检索整个解密的敏感数据。然后,攻击者只需找到敏感数据在内存中的开始位置,即可从内存缓冲区中逐字节读取。

技术实现思路

[0003]本专利技术的实施例提出了一种方法,包括:确定由第一内存缓冲区消耗的第一内存空间量,所述第一内存缓冲区包括要被解密以供计算过程使用的加密数据;在第二内存缓冲区中分配第二内存空间量,所述第二内存空间量大于由所述第一内存缓冲区消耗的第一内存空间量;用随机数据填充所述第二内存空间量;设置指向所述第二内存缓冲区的固定内存位置的指针;解密驻留在所述第一内存缓冲区中的数据元素;并且调用硬件元件来实现迭代过程,以:至少部分基于迭代值输入生成唯一化身值;并且将解密的数据元素写入所述第二内存缓冲区中对应于固定内存地址加上所述唯一化身值的地址。
[0004]还提出了相应的装置。
附图说明
[0005]本文描述的概念是通过示例的方式来说明的,而不是在附图中的限制。为了说明的简单和清晰,图中说明的元件不一定按比例绘制。在认为适当的情况下,附图中的参考标记已重复以指示相应或类似的元件。
[0006]图1是根据实施例的数据处理环境的简化示意图,其中可以实施保护内存中的敏感数据的技术。
[0007]图2A是根据实施例的解密内存缓冲区的简化示意图,其中加密数据被逐字节存储。
[0008]图2B是根据实施例的解密内存缓冲区的简化示意图,其中加密数据以带有密钥的混洗格式(shuffled format)存储。
[0009]图3是根据实施例的数据处理环境的简化示意图,其中可以实施保护内存中的敏感数据的技术。
[0010]图4是根据实施例的解密内存缓冲区的简化示意图。
[0011]图5是示出根据实施例的用于保护内存中的敏感数据的方法中的操作的流程图。
[0012]图6是示出根据实施例的用于保护内存中的敏感数据的方法中的操作的流程图。
[0013]图7是示出根据实施例的计算架构的框图,其可以适于提供用于使用对抗质询选
择的基于PUF(物理不可克隆功能)的安全认证的方法。
具体实施方式
[0014]虽然本专利技术的概念容易受到各种修改和替代形式的影响,但其特定实施例已在附图中以示例的方式示出并且将在本文中详细描述。然而,应当理解,无意将本专利技术的概念限制于所公开的特定形式,而是相反,旨在涵盖与本专利技术和所附权利要求一致的所有修改、等效物和替代方案。
[0015]说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示,所描述的实施例可能包括特定的特征、结构或特性,但每个实施例可能会或可能不会必然包括该特定特征、结构或特性。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,在本领域技术人员的认知范围内提出,无论是否明确描述,都可以结合其他实施例来实现该特征、结构或者特性。此外,应当理解,以“至少一个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)。
[0016]在一些情况下,所公开的实施例可以在硬件、固件、软件或其任何组合中实现。所公开的实施例还可以实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质承载或存储的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读的形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性内存、介质盘或其他介质设备)。在附图中,一些结构或方法特征可以以特定的排列和/或顺序显示。然而,应当理解,可能不需要这样的特定排列和/或顺序。相反,在一些实施例中,这样的特征可以以不同于说明性附图中所示的方式和/或顺序来布置。此外,在特定图中包括结构或方法特征并不意味着在所有实施例中都需要这种特征,并且在一些实施例中,可能不包括这种特征或这种特征可以与其他特征组合。
[0017]如上所述,对敏感数据(例如密码、私钥等)进行操作的计算过程通常以加密形式从内存中获取敏感数据。为了使敏感数据可用,计算过程解密数据并将解密过程的结果存储在内存中的缓冲区中。当敏感数据以明文形式存储在内存缓冲区中时,潜在的攻击者只需执行一次内存转储即可检索整个解密的敏感数据。然后,攻击者只需找到敏感数据在内存中的开始位置,即可从内存缓冲区中逐字节读取。
[0018]可以参考图1来说明这个问题,图1是根据实施例的数据处理环境100的简化示意图,其中可以实施保护内存中的敏感数据的技术。参考图1,数据处理环境100包括计算过程110、解密模块115、包含加密数据122的第一内存缓冲区120和包含解密数据132的第二内存缓冲区130。计算过程110可以维持指向第一数据缓冲区120的指针和指向第二数据缓冲区130的指针。
[0019]存储在内存缓冲区120中的加密数据可以包含敏感数据,诸如密码、私钥等。当计算过程110对加密数据进行操作时,加密数据可以被解密并以解密形式(例如,明文)存储在内存缓冲区130中。当解密数据被逐字节存储时,潜在的攻击者只需要从内存缓冲区130获得一个内存转储以检索解密的敏感数据。这参考图2A来说明,图2A是解密的内存缓冲区200的简化示意图。攻击者只需要找到敏感数据210在内存缓冲区200中的开始位置以从内存缓
冲区200读取它。
[0020]可以实施混洗(shuffling)技术来解决这个问题。参考图2B示出了一个示例,图2B是解密的内存缓冲区200的简化示意图。在图2B所示的实施例中,内存缓冲区200中的敏感数据210可以被混洗以随机化敏感数据210的顺序。然而,用于确定敏感数据210的混洗后的顺序的密钥212存储在内存缓冲区200中。因此,攻击者仍然可以通过获得内存缓冲区200的单个内存转储来获得混洗后的敏感数据210和密钥212。
[0021]为了解决这些和其他问题,本文描述了保护内存中敏感数据的技法和技术。本文描述的技术利用混洗以仅对特定平台和特定过程已知的方式来保护解密的敏感数据。在一些示例中,可以使用硬件组件来对解密数据的混洗方式保密。因此,负责解密数据的过程将对加密输出字节(以及随机字节)进行混洗,并且不会将用于混洗的种子存储在内存中,从而防止攻击者对混洗输出进行反转。
[0022]这方面的方面可以参考图3来说明,图3是根据实施例的数据处理环境300的简化示意图,其中可以实现保护内存中的敏感数据的技术。参考图3,数据处理环境300包括计算过本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,包括:确定由第一内存缓冲区消耗的第一内存空间量,所述第一内存缓冲区包括要被解密以供计算过程使用的加密数据;在第二内存缓冲区中分配第二内存空间量,所述第二内存空间量大于由所述第一内存缓冲区消耗的第一内存空间量;用随机数据填充所述第二内存空间量;设置指向所述第二内存缓冲区的固定内存位置的指针;解密驻留在所述第一内存缓冲区中的数据元素;并且调用硬件元件来实现迭代过程,以:至少部分基于迭代值输入生成唯一化身值;并且将解密的数据元素写入所述第二内存缓冲区中对应于固定内存地址加上所述唯一化身值的地址。2.根据权利要求1所述的方法,其中所述第二内存空间量是所述第一内存空间量的倍数。3.根据权利要求1所述的方法,其中所述第二内存缓冲区的固定内存位置对应于所述第二内存缓冲区的开始位置。4.根据权利要求1所述的方法,其中所述唯一化身值基于包括以下内容的输入:过程标识符;迭代值;以及预期的迭代次数。5.根据权利要求1所述的方法,其中重复所述迭代过程,直到所述第一内存缓冲区中的加密数据已经被解密并写入所述第二内存缓冲区。6.根据权利要求1所述的方法,其中所述迭代过程在硬件元件中实现。7.根据权利要求1所述的方法,还包括:接收请求以检索与所述第一内存缓冲区中的加密数据元素相对应的解密数据元素;调用所述硬件元件以至少部分基于迭代值输入生成唯一化身值;并且从所述第二内存缓冲区中对应于所述固定内存地址加上所述唯一化身值的地址返回解密数据元素。8.一种装置,包括:第一内存缓冲区,包括要被解密以供计算过程使用的加密数...

【专利技术属性】
技术研发人员:D
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1