第四十八个知识点:TPM的目的和使用方法

在检查TPM目的之前,值得去尝试理解TPM设计出来的目的是为了克服什么样的问题。真正的问题是信任。信任什么?首先内存和软件运行在电脑上。这些东西能直接的通过操作系统进行获取,因此能在操作系统层级的攻击者可以访问秘密信息(例如安全密钥)。:如果这些密钥直接存储在内存中,并被软件访问,那么攻击者很容易从存储密钥的内存位置读取密钥,从而危害安全性。

围绕这一问题的一个方案是确保密钥不会直接存储在可以被软件访问的计算机内存中。考虑到密钥对于安全应用程序是必需的,它们必须在某个时候以软件可以使用的状态出现,那么这怎么可能呢?一种方式是使用一个软件无法访问的密钥来封装内存中的密钥。例如有一个单独的硬件,其中有一个密钥可以进行这样的加解密操作。因此,软件可以利用这个硬件上存储的密钥来做各种事情,比如将密钥存储在内存中,但永远不能直接访问这个密钥。

这其实就是TPM所做的。一个TPM有一个RSA密钥对被叫做SRK(Storage Root Key,存储根密钥)。它的私钥部分对所有人所有事情都保密。使用这个私有密钥,可以使用SRK包装(通常称为“绑定”)其他密钥(软件使用的密钥),从而保护它们不被公开。除了简单地包装密钥之外,TPM还可以包装它们并将它们绑定到特定的平台度量上。只有当这些平台度量具有与创建密钥时相同的值时,才能打开此类密钥。这个过程叫做“密封”。TPMs还可以用于加密密钥生成和执行其他加密任务,其中一个任务称为远程认证,它创建硬件和软件配置的散列密钥摘要,允许第三方验证软件没有被更改。

真正需要理解的是它通过将安全性下推到硬件级别,并确保将安全性交给单独的硬件,有它自己的固件和电路,不能从外部改变,系统不会暴露给软件漏洞,因此更值得信赖。

因此TPM的目的是什么?克服信任软件完全可靠的问题。

TPM如何使用?我们提到了其中一些,首先就是绑定,可以通过SRK封装软件密钥。第二个就是“密封”,将特定的密钥绑定到度量平台上。第三,我们研究了远程认证,并注意到TPMs也可以用于其他加密功能,如密钥生成。

第四十八个知识点:TPM的目的和使用方法的更多相关文章

  1. 第二十八个知识点:什么是公钥密码学的IND-CCA安全定义?

    第二十八个知识点:什么是公钥密码学的IND-CCA安全定义? 我们将在这篇博客中讨论公钥加密的IND-CCA安全. IND-CCA安全代表选择明文的不可伪造性.这样的安全方案的思想就是给定一个密文,攻 ...

  2. NeHe OpenGL教程 第四十八课:轨迹球

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. SQL注入之Sqli-labs系列第四十七关,第四十八关,第四十九关(ORDER BY注入)

    0x1 源码区别点 将id变为字符型:$sql = "SELECT * FROM users ORDER BY '$id'"; 0x2实例测试 (1)and rand相结合的方式 ...

  4. 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)

    1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...

  5. 第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗?

    第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗? 几个月前(回到3月份),您可能还记得我在这个系列的52件东西中发布了第23件(可以在这里找到).这篇文章的标题是& ...

  6. 第四十九个知识点:描述在IPsec和TLS后的基本想法

    第四十九个知识点:描述在IPsec和TLS后的基本想法 网络安全协议(Internet Protocol Security,IPsec)和安全传输层协议(Transport Layer Securit ...

  7. 第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么

    第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么 Sigma协议 Sigma协议是Alice想要向Bob证明一些东西的协议(Alice知道一些秘密).他们有下面的一般范式:Al ...

  8. 第十八个知识点:画一个描述ECB,CBC,CTR模式的操作

    第十八个知识点:画一个描述ECB,CBC,CTR模式的操作 第8周是画三个图的任务,但是维基百科上已经有人画的很好了 https://en.wikipedia.org/wiki/File:ECB_en ...

  9. 第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法

    第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-de ...

随机推荐

  1. (亿级流量)分布式防重复提交token设计

    大型互联网项目中,很多流量都达到亿级.同一时间很多的人在使用,而每个用户提交表单的时候都可能会出现重复点击的情况,此时如果不做好控制,那么系统将会产生很多的数据重复的问题.怎样去设计一个高可用的防重复 ...

  2. 数据集成工具—FlinkX

    @ 目录 FlinkX的安装与简单使用 FlinkX的安装 FlinkX的简单使用 读取mysql中student表中数据 FlinkX本地运行 MySQLToHDFS MySQLToHive MyS ...

  3. SpringBoot Logback 日志配置

    目录 前言 日志格式 日志输出 日志轮替 日志级别 日志分组 小结 前言 之前使用 SpringBoot 的时候,总是习惯于将日志框架切换为 Log4j2,可能是觉得比较靠谱,也可能年龄大了比较排斥新 ...

  4. 17. yum

    https://www.linuxidc.com/Linux/2015-04/116331.htm

  5. css相关,position定位详解

    CSS 有两个最重要的基本属性,前端开发必须掌握:display 和 position. display属性指定网页的布局.两个重要的布局,弹性布局flex和网格布局grid. 本文介绍非常有用的po ...

  6. 容器之分类与各种测试(三)——slist的用法

    slist和forward_list的不同之处在于其所在的库 使用slist需要包含 #include<ext\list> 而使用forward_list则需要包含 #include< ...

  7. oracle异常处理——ORA-01000:超出打开游标最大数

    oracle异常处理--ORA-01000:超出打开游标最大数https://www.cnblogs.com/zhaosj/p/4309352.htmlhttps://blog.csdn.net/u0 ...

  8. 【Linux】【Services】【Cache】使用Sentinel搭建高可用Redis

    1. 简介 1.1. 一些基础概念请参考 http://www.cnblogs.com/demonzk/p/7453494.html 1.2. 几种常用的集群方式. -- Redis Sentinel ...

  9. supervise安装与使用

    确认当前是否已经安装which supervise/usr/local/bin/supervise 软件下载安装-------------------------------------------- ...

  10. 【Java基础】方法调用机制——MethodHandle

    MethodHandle是Java7引入的一种机制,主要是为了JVM支持动态语言. 一个MethodHandle调用示例 共有方法调用 首先,演示一下最基本的MethodHandle使用. 第一步:创 ...