第四十八个知识点: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. day11 系统安全

    day11 系统安全 复习总结 文件 1.创建 格式:touch [路径] [root@localhost ~]# touch 1.txt # 当前路径创建 [root@localhost ~]# t ...

  2. 浏览器相关,关于强缓存、协商缓存、CDN缓存。

    强缓存和协商缓存 在介绍缓存的时候,我们习惯将缓存分为强缓存和协商缓存两种.两者的主要区别是使用本地缓存的时候,是否需要向服务器验证本地缓存是否依旧有效. 顾名思义,协商缓存,就是需要和服务器进行协商 ...

  3. linux之wc命令详解

    Linux系统中wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式 wc [options] 文件... 2.命令功能 统计指定文件中的字 ...

  4. Cx_Oracle 安装

    1. 下载安装 2.把oci.ddl  oraociei11.dll 放到C:\Python33\Lib\site-packages路径下

  5. proguard 混淆工具的用法 (适用于初学者参考)

    一. ProGuard简介 附:proGuard官网 因为Java代码是非常容易反编码的,况且Android开发的应用程序是用Java代码写的,为了很好的保护Java源代码,我们需要对编译好后的cla ...

  6. android:textAppearance解析

    Android的系统自带的文字外观设置及实际显示效果图 android:textAppearancexml布局里面设置文字的外观: 如"android:textAppearance=&quo ...

  7. cordova配置与开发

    1.环境配置 1.1.安装ant 从 apache官网 下载ant,安装并配置,将ant.bat所在目录加到path环境变量,如c:\apache-ant\bin\.在cmd中运行以下语句如不报错即可 ...

  8. zabbix之源码安装

    #:官网地址 https://www.zabbix.com/documentation/4.0/zh/manual/installation/install #:解压并创建用户 root@ubuntu ...

  9. layui 弹窗中 分页展示table

    1. 需求:点击查看更多,展示该类别 所有数据,并分页 2. 参考文档: (1)https://www.jianshu.com/p/40da11ebae66 (2) https://blog.csdn ...

  10. 【编程思想】【设计模式】【行为模式Behavioral】command

    Python版 https://github.com/faif/python-patterns/blob/master/behavioral/command.py #!/usr/bin/env pyt ...