密码学(三)

文章目录

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

前言

本文来自 Intel SGX Explained

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

一、Software Attestation Overview

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

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

二、Authenticated Key Agreement

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

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

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

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

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

三、The Role of Software Measurement

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

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Javascript jQuery简介

✨前言✨ 1.如果代码对您有帮助 欢迎点赞👍收藏⭐哟 后面如有问题可以私信评论哟🗒️ 2.博主后面将持续更新哟😘🎉本章目录🎉 🥝一.jQuery简介🥥二.JQeury常用API🍇1.jQeury选择…

Eclipse插件UCdetector清理无用JAVA代码

下载插件 UCDetector - Browse /ucdetector at SourceForge.net 目前最新版本是2017年的2.0.0 保存 Eclipse/dropins 重启 操作 在项目上右键

JavaScript Web Worker用法指南

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ ✨ 前言 Web Worker可以将耗时任务放到后台执行,避免阻塞UI。本文将详细介绍Web Worker的用法,让你…

【AWS】使用亚马逊云服务器创建EC2实例

目录 前言为什么选择 Amazon EC2 云服务器搭建 Amazon EC2 云服务器注册亚马逊账号登录控制台服务器配置免费套餐预览使用 Amazon EC2 云服务器打开服务器管理界面设置服务器区域填写实例名称选择服务器系统镜像选择实例类型创建密钥对网络设置配置存储启动实例查看实例 总结 前…

基于SSM中小型医院管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

高质量训练数据助力大语言模型摆脱数据困境 | 景联文科技

目前,大语言模型的发展已经取得了显著的成果,如OpenAI的GPT系列模型、谷歌的BERT模型、百度的文心一言模型等。这些模型在文本生成、问答系统、对话生成、情感分析、摘要生成等方面都表现出了强大的能力,为自然语言处理领域带来了新的突破。 …

面向零信任架构的访问安全态势评估

伴随着“云大物移”等新兴 IT 技术的快速发展,企业数字化转型使得 IT 业务的网络环境更加复杂多样,企业数字资源的安全防护正面临着前所未有的压力与威胁。零信任安全架构放弃了传统基于“边界”的安全模型,以访问上下文的安全态势感知为基础…

jdk、tomcat、mysql的安装windows项目部署

文章目录 1、安装jdk2、tomcat安装3、MySQL安装3、外部访问数据库 1、安装jdk 1.双击运行jdk-8u144进行一个安装 2.一直点击下一步,到修改路径那个地方把他的存放路径改到D盘 3.找到我们刚刚修改的那个路径点进bin目录然后复制该路径进行一个环境变量配置4.找到我的…

Gogs - 管理协作者

Gogs - 管理协作者 References 仓库设置 管理协作者 权限设置 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

41k+ stars 闪电般快速的开源搜索引擎 docker安装教程

目录 1.下载 2.启动 成功示例 3.创建索引 4.插入数据 4.1下载数据 4.2插入数据 4.3查看数据 5.官方地址 1.下载 docker pull getmeili/meilisearch:latest 2.启动 mkdir -p /opt/meili_datadocker run -it --rm \-p 7700:7700 \-v /opt/meili_data:/meili_data \ge…

SAP OData(二)Association

Entity之间用Association来表示关联关系,可以同CDS view中的Association一起理解。 我们在上次已经建好实体Item的基础上,再建一个Header,其方法的重写也参考Item即可,然后开始本篇的探索。 一,构建Association 1.1…

数据结构——二叉树(先序、中序、后序及层次四种遍历(C语言版))超详细~ (✧∇✧) Q_Q

目录 ​​​​​​​ 二叉树的定义: *特殊的二叉树: 二叉树的性质: 二叉树的声明: 二叉树的先序遍历: 二叉树的中序遍历: 二叉树的后序遍历: 二叉树的层序遍历: 二叉树的节…

AVL树(Java)

目录 一、什么是AVL树 二、AVL树的实现 AVL树的节点 AVL树的插入 AVL树的旋转 右单旋 左单旋 左右双旋 右左双旋 AVL树的验证 三、AVL树的性能分析 一、什么是AVL树 在了解什么是AVL树之前,我们先回顾二叉搜索树的概念 二叉搜索树(二叉排序…

pytorch学习笔记(八)

Sequential 看看搭建了这个能不能更容易管理,CIFAR-10数据集进行 看一下网络模型CIFAR-10模型 1 2 3 4 5 6 7 8 9 输入进过一次卷积,然后经过一次最大池化&#…

Stronghold Village

有了近2000个预制件和大量资产,您可以用基本的或先进的模块化预制件建造您的设防城镇或梦幻村庄,其中有许多定制选项和大量道具和物品 通过这个巨大的资源库,你可以创建村庄、城市、要塞、农村建筑、大教堂、城堡等。为你的环境提供高水平的细节,你可以创建外部装饰建筑,也…

Maven的安装和配置

国内Maven仓库之阿里云Aliyun仓库地址及设置 用过Maven的都知道Maven的方便便捷,但由于某些网络原因,访问国外的Maven仓库不便捷,好在阿里云搭建了国内的maven仓库。 需要使用的话,要在maven的settings.xml 文件里配置mirrors的子…

Wpf 使用 Prism 实战开发Day11

仓储(Repository)/工作单元(Unit Of Work)模式 仓储(rep):仓储接口定义了对实体类访问数据库及操作的方法。它统一管理数据访问的逻辑,并与业务逻辑层进行解耦。 简单的理解就是对访问数据库的一…

Stable Diffusion XL Turbo 文生图和图生图实践

本篇文章聊聊,如何快速上手 Stable Diffusion XL Turbo 模型的文生图和图生图实战。 写在前面 分享一篇去年 11 月测试过模型,为月末分享的文章做一些技术铺垫,以及使用新的环境进行完整复现。 本篇文章相关的代码保存在 soulteary/docker…

c#多线程中使用SemaphoreSlim

SemaphoreSlim是一个用于同步和限制并发访问的类,和它类似的还有Semaphore,只是SemaphoreSlim更加的轻量、高效、好用。今天说说它,以及如何使用,在什么时候去使用,使用它将会带来什么优势。 代码的业务是&#xff1a…

如何使用统计鸟网站统计分析网站流量来源?

统计鸟官网地址:https://www.tongjiniao.com/ 站长必备!网站数据统计,流量监测平台 提供网站数据统计分析、搜索关键词、流量访问来源等服务 深入分析用户点击习惯,为智能化运营网站提供更好的用户体验 目录 一、注册账号信息 二…