【TEE】内存完整性保护

2024-03-06 03:28
文章标签 内存 保护 完整性 tee

本文主要是介绍【TEE】内存完整性保护,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hash Functions&Merkle Tree

对读操作进行完整性检查,通过在加载的块上重新计算一个哈希,然后根据片外地址将得到的哈希与片上哈希比较。
缺点:不可承受的片上存储开销,并假设128位哈希和512位cache line,其开销为保护内存空间的25 %。
在这里插入图片描述
片上存储需求是无法承受的,有必要将这些参考值"安全"地存储在片外。递归地应用认证原语,形成了一个完整性树结构,只需要将树的根存储在处理器芯片上。
Merkle tree认证过程是完全可并行的,因为这个过程所需的所有输入都可以在这个过程开始之前得到;然而更新过程不可并行。

在这里插入图片描述

MAC Functions&PAT (Parallelizable Authentication Tree)

写操作为每个数据块计算一个MAC,MAC计算使用的密钥被安全地存储在可信芯片上,只有片上验证引擎本身能够计算出有效的MAC,因此MAC可以存储在不可信的外部存储中。MAC计算还用nonce防止重放攻击。读操作,用nonce和data重新计算MAC,并和外部取得的MAC进行比较。
每512b cache line计算一个MAC,并且使用64比特的nonces,那么相应的片上存储开销为12.5 %
在这里插入图片描述
PAT使用MAC克服了不可并行更新的问题。除了最后一级,每一步的Nonce和MAC value都被送到外部。根MAC发送到外部存储器,而nonce N存储在片上;这种方式使树根具有防篡改性,因为敌手不能在没有存储在芯片上的密钥K的情况下生成新的MAC,也不能重放旧的MAC,因为它不会由当前的根节点产生。
树更新过程也是可并行化的,因为每个分支树节点都是由独立生成的输入nonces计算得到的。
在这里插入图片描述

Block-Level AREA&TEC-Tree(Tamper-Evident Counter Tree)

为分组加密算法增加了完整性校验功能。plaintext block P (where P=D||N),把冗余数据N存在片上。
根据所实现的分组加密算法,相应的开销在25 % ~ 50 %之间。
在这里插入图片描述
将生成的加密块存储在外部存储器中,并将创建的最后一个块(即TEC - Tree的根)加密时使用的nonce保存在片上,使得根不可篡改。没有密钥的敌手不能创建树节点,而没有片上根节点,他就不能重放树根。树更新过程包括:i )加载D的分支解密节点,ii )更新nonces,iii )重加密节点。
在这里插入图片描述

比较

TEC - Tree还提供数据的机密性。与merkel tree相比,TEC - Tree和PAT也具有较高的片外存储开销,特别是由于它们需要存储额外的元数据nonces。
在这里插入图片描述

优化技术

  • 缓存技术:【Caches and Merkle Trees for Efficient Memory Integrity Verification】将Merkle树的性能开销降低到25 %以下。通过改变哈希函数- -从SHA - 1到GCM,甚至声称性能开销保持在5 %以下。
  • Bonsai Merkle Tree:【Using Address Independent Seed Encryption and Bonsai Merkle Trees to Make Secure Processors OS and PerformanceFriendly】平均而言,4KB内存页和64B缓存块需要一个8位的计数器。因此,与直接应用于内存块的常规Merkle树相比,使用Bonsai Merkle树进行身份验证的内存量减少了1:64。该方法将完整性树的执行时间开销从12.1 %降低到1.8 %,将节点存储的外部内存开销从33.5 %降低到21.5 %。
    在这里插入图片描述

这篇关于【TEE】内存完整性保护的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/778730

相关文章

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

JVM内存调优原则及几种JVM内存调优方法

JVM内存调优原则及几种JVM内存调优方法 1、堆大小设置。 2、回收器选择。   1、在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。   2、对JVM内存的系统级的调优主要的目的是减少

JVM 常见异常及内存诊断

栈内存溢出 栈内存大小设置:-Xss size 默认除了window以外的所有操作系统默认情况大小为 1MB,window 的默认大小依赖于虚拟机内存。 栈帧过多导致栈内存溢出 下述示例代码,由于递归深度没有限制且没有设置出口,每次方法的调用都会产生一个栈帧导致了创建的栈帧过多,而导致内存溢出(StackOverflowError)。 示例代码: 运行结果: 栈帧过大导致栈内存

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

理解java虚拟机内存收集

学习《深入理解Java虚拟机》时个人的理解笔记 1、为什么要去了解垃圾收集和内存回收技术? 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动化”的技术实施必要的监控和调节。 2、“哲学三问”内存收集 what?when?how? 那些内存需要回收?什么时候回收?如何回收? 这是一个整体的问题,确定了什么状态的内存可以

如何保护自己的个人隐私

个人隐私保护概览 在数字时代,个人隐私保护显得尤为重要。随着信息技术的发展,个人信息的收集、存储、使用变得更加便捷,同时也带来了隐私泄露的风险。为了保护个人隐私,我们需要从多个维度出发,采取一系列措施来确保个人信息的安全。 个人隐私泄露风险 个人隐私泄露主要来源于以下几个方面: 社交网络:在社交平台上分享信息时,如果不恰当地设置了隐私权限,可能会导致敏感信息被公开。网络服务:在使用网络服务

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们