密码学(三)

文章目录

  • 前言
  • 一、Software Attestation Overview
  • 二、Authenticated Key Agreement
  • 三、The Role of Software Measurement

前言

本文来自 Intel SGX Explained

请参考:
密码学(一)
密码学(二)

一、Software Attestation Overview

依赖于可信处理器的系统的安全性取决于软件认证。由可信硬件建立的隔离容器中运行的软件可以请求硬件对一小段认证数据进行签名,生成认证签名。除了认证数据之外,签名的消息还包括一个唯一标识容器内软件的测量值。因此,认证签名可以用来说服验证者,认证数据是由特定的软件生成的,该软件托管在由可信硬件从外部干扰隔离的容器内。

在本节中讨论的每个硬件平台都使用略有不同的软件认证方案。平台的差异在于在隔离容器内执行的软件数量、提供给容器内软件的隔离保证以及获取容器测量的过程。每个可信硬件平台的威胁模型和安全属性直接源于上述设计选择,因此,对认证的良好理解是讨论现有平台之间差异的先决条件。

二、Authenticated Key Agreement

软件认证可以与密钥协商协议结合使用,因为软件认证提供了密钥协商协议所需的身份验证。由此产生的协议可以向验证者保证它已与托管在由可信硬件创建的隔离容器内的特定软件建立了共享密钥。下一段概述了增强的协议,以Diffie-Hellman密钥交换(DKE)[43]作为密钥交换协议的示例。

验证者开始执行密钥交换协议,并将第一个消息gA发送给安全容器内的软件。容器内的软件生成第二个密钥交换消息g
B,并要求可信硬件认证两个密钥交换消息的密码哈希值h(gA||gB)。验证者接收第二个密钥交换消息和认证签名,并通过检查下图所示的信任链中的所有签名来对安全容器内的软件进行身份验证。
在这里插入图片描述
上图表明了软件认证中的信任链由制造商密钥作为根开始,该密钥为安全处理器的认证密钥生成背书证书。处理器使用认证密钥生成认证签名,该签名包含容器的密码哈希和容器内部软件生成的消息。

在软件认证中使用的信任链以硬件制造商拥有的签名密钥为根,验证者必须对其进行信任。制造商充当证书颁发机构(CA,§ 3.2.1),为其生产的每个安全处理器提供一个唯一的认证密钥,用于生成认证签名。制造商还为每个安全处理器的认证密钥颁发背书证书。该证书表示该密钥用于软件认证。认证策略通常规定,至少认证密钥的私钥应存储在防篡改硬件中,并且仅用于生成认证签名。

安全处理器通过存储容器内加载的代码和数据的密码哈希来标识每个隔离容器。当处理器被要求对一段认证数据进行签名时,它使用与容器相关联的密码哈希作为认证签名中的测量值。验证者在使用认证密钥的背书证书验证处理器的认证密钥之后,确保签名有效,并验证签名中的测量值属于其期望与之通信的软件。

通过检查认证链中的所有链接,验证者对密钥交换中的另一方进行了身份验证,并确保它现在与期望的运行在受信任硬件上的隔离容器中的软件共享一个密钥。

三、The Role of Software Measurement

用于标识安全容器内部软件的测量值始终使用安全散列算法计算。可信硬件设计在其安全散列函数选择和提供给散列函数的数据方面存在差异。然而,所有设计都共享一个原则,即构建安全容器的每一步都会向其测量散列中添加数据。

软件认证背后的理念是计算机的所有者可以在安全容器中加载任何她希望的软件。然而,假定计算机所有者有动机参与一个分布式系统,其中通过软件认证对她构建的安全容器进行身份验证。如果不需要进行软件认证,计算机所有者可以构建任何没有约束的容器,这将使得无法对容器内部软件的安全属性进行推理。

根据上述论证,基于软件认证的可信硬件设计必须假设每个容器都参与软件认证,并且远程方将拒绝与其报告的测量值与分布式系统作者设置的预期值不匹配的容器进行交互。

例如,云基础设施提供商应该能够使用由可信硬件提供的安全容器在其计算机上运行任何所需的软件。然而,该提供商通过向客户租用其基础设施来赚钱。如果安全意识强的客户只愿意租用由可信硬件提供的容器,并使用软件认证对其使用的容器进行身份验证,那么云提供商将有强烈的经济激励按照客户的规格构建容器,以便容器通过软件认证。

容器的测量值是使用安全散列算法计算的,因此构建与预期测量相匹配的容器的唯一方法是按照分布式系统作者指定的确切步骤序列进行操作。安全散列函数的加密属性保证,如果计算机所有者在任何方面偏离指定的步骤序列,所创建的容器的测量值将与分布式系统作者预期的值不匹配,因此容器将被软件认证过程拒绝。

因此,宣称可信硬件设计的测量方案可以保证安全容器中的某个属性具有特定的值是有意义的。这个短语的确切含义是属性的值决定用于计算容器测量值的数据,因此预期的测量散列实际上为属性指定了预期值。在正确使用软件认证的分布式系统中,所有容器都将具有给定属性的所需值。

例如,为云基础设施设计的可信硬件使用的测量方案应该保证容器的内存是使用客户内容进行初始化的,通常称为映像(image)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/333853.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SG-8018CA 系列 (晶体振荡器 可编程 可用+105°C )

SG-8018系列是可编程晶体振荡器系列与CMOS输出。虽然该系列提供了与早期SG-8002/SG-8003系列相同的易于编程的频率和其他参数的相似性,但它们也有一个更广泛的工作温度范围,最高限制为105C。除了2.52.0 mm封装,将使电子产品制造商节省板空间&…

usb转32串口方案

方案结构图 使用usb hub芯片扩展4路usb然后再一分八路串口 USB hub 选择hub芯片注意事项: 目前市场上多数的USB 2.0 Hub芯片,只有内建一个Transaction Translators(STT),因此 当Hub接收到如Full Speed的装置进入时,12Mbps的「单一」信道…

Java字符串拼接常用方法总结

使用场景:用某个分隔符拼接字符串 下边是我使用过的几种方式废话不多说,直接上代码初始数据 1.使用流2.StringBuilder3.[StringJoiner](https://blog.csdn.net/qq_43417581/article/details/126076152?ops_request_misc%257B%2522request%255Fid%2522%2…

如何使用TrafficWatch根据PCAP文件监控和分析网络流量

关于TrafficWatch TrafficWatch是一款功能强大的网络数据包嗅探和分析工具,该工具能够帮助我们通过PCAP文件监控和分析目标网络中的网络通信流量。除此之外,该工具还可以为广大研究人员提供针对各种网络协议的内部分析功能,并帮助解决各种网…

hadoop自动获取时间

1、自动获取前15分钟 substr(from_unixtime(unix_timestamp(concat(substr(20240107100000,1,4),-,substr(20240107100000,5,2),-,substr(20240107100000,7,2), ,substr(20240107100000,9,2),:,substr(20240107100000,11,2),:,00))-15*60,yyyyMMddHHmmss),1) unix_timestam…

Win提示“d3dx9_27.dll文件缺失,程序无法启动运行”,修复大全

d3dx9_27.dll是一个被多个软件和游戏共享的动态链接库文件,主要用于Microsoft DirectX软件的功能。它是DirectX 9的一部分,DirectX是一种使得Windows成为理想平台进行高性能多媒体和游戏的API。 d3dx9_27.dll主要与计算机图形和视频渲染有关&#xff0c…

物联网协议Coap中Californium CoapClient解析

目录 前言 一、CoapClient对象 1、类定义 2、Client方法调用 二、发送请求 1、构建请求 2、发起请求 3、接收响应 总结 前言 在之前的博客中物联网协议Coap之Californium CoapServer解析,文中简单介绍了CoapServer的实现。在物联网开发环境中,除了…

小红书算法流量机制总结,建议收藏!

新手在运营小红书账号时,总会发现这样的情况。辛辛苦苦写了一篇自以为很优质的笔记,发布后却发现流量寥寥。这就是没弄清小红书算法造成的。今天和大家来分享下小红书算法流量机制总结,建议收藏! 一、什么是小红书算法 我们常说的…

Qt QLineEdit文本框控件

文章目录 1 属性和方法1.1 占位字符串1.2 对齐方式1.3 回显模式1.4 读写控制1.5 格式控制1.6 信号和槽 2 实例2. 布局2.2 代码实现 QLineEdit 是Qt 中的文本框,准确地说是单行文本框,通常用于接受用户的输入。 比如用户输入用户名、密码等,都…

【Internal Server Error】pycharm解决关闭flask端口依然占用问题

Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. 起因: 我们在运行flask后,断开服务依然保持运行&#xff0…

四川思维跳动:抖音能不能根据弹幕找到人?

在抖音这样的社交媒体平台上,用户可以通过发布抖音短视频与其他用户互动和交流。其中,弹幕是一种常见的互动方式,用户可以通过发送弹幕来表达对视频的评论、喜爱或者提问。然而,有用户担心自己的隐私可能因为弹幕内容被泄露&#…

【Java EE初阶九】多线程案例(线程池)

一、线程池的引入 引入池---->主要是为了提高效率; 最开始,进程可以解决并发编程的问题,但是代价有点大了,于是引入了 “轻量级进程” ---->线程 线程也能解决并发编程的问题,而且线程的开销比进程要小的多&…