第四十八个知识点:TPM的目的和使用方法
第四十八个知识点:TPM的目的和使用方法
在检查TPM目的之前,值得去尝试理解TPM设计出来的目的是为了克服什么样的问题。真正的问题是信任。信任什么?首先内存和软件运行在电脑上。这些东西能直接的通过操作系统进行获取,因此能在操作系统层级的攻击者可以访问秘密信息(例如安全密钥)。:如果这些密钥直接存储在内存中,并被软件访问,那么攻击者很容易从存储密钥的内存位置读取密钥,从而危害安全性。
围绕这一问题的一个方案是确保密钥不会直接存储在可以被软件访问的计算机内存中。考虑到密钥对于安全应用程序是必需的,它们必须在某个时候以软件可以使用的状态出现,那么这怎么可能呢?一种方式是使用一个软件无法访问的密钥来封装内存中的密钥。例如有一个单独的硬件,其中有一个密钥可以进行这样的加解密操作。因此,软件可以利用这个硬件上存储的密钥来做各种事情,比如将密钥存储在内存中,但永远不能直接访问这个密钥。
这其实就是TPM所做的。一个TPM有一个RSA密钥对被叫做SRK(Storage Root Key,存储根密钥)。它的私钥部分对所有人所有事情都保密。使用这个私有密钥,可以使用SRK包装(通常称为“绑定”)其他密钥(软件使用的密钥),从而保护它们不被公开。除了简单地包装密钥之外,TPM还可以包装它们并将它们绑定到特定的平台度量上。只有当这些平台度量具有与创建密钥时相同的值时,才能打开此类密钥。这个过程叫做“密封”。TPMs还可以用于加密密钥生成和执行其他加密任务,其中一个任务称为远程认证,它创建硬件和软件配置的散列密钥摘要,允许第三方验证软件没有被更改。
真正需要理解的是它通过将安全性下推到硬件级别,并确保将安全性交给单独的硬件,有它自己的固件和电路,不能从外部改变,系统不会暴露给软件漏洞,因此更值得信赖。
因此TPM的目的是什么?克服信任软件完全可靠的问题。
TPM如何使用?我们提到了其中一些,首先就是绑定,可以通过SRK封装软件密钥。第二个就是“密封”,将特定的密钥绑定到度量平台上。第三,我们研究了远程认证,并注意到TPMs也可以用于其他加密功能,如密钥生成。
第四十八个知识点:TPM的目的和使用方法的更多相关文章
- 第二十八个知识点:什么是公钥密码学的IND-CCA安全定义?
第二十八个知识点:什么是公钥密码学的IND-CCA安全定义? 我们将在这篇博客中讨论公钥加密的IND-CCA安全. IND-CCA安全代表选择明文的不可伪造性.这样的安全方案的思想就是给定一个密文,攻 ...
- NeHe OpenGL教程 第四十八课:轨迹球
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- SQL注入之Sqli-labs系列第四十七关,第四十八关,第四十九关(ORDER BY注入)
0x1 源码区别点 将id变为字符型:$sql = "SELECT * FROM users ORDER BY '$id'"; 0x2实例测试 (1)and rand相结合的方式 ...
- 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...
- 第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗?
第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗? 几个月前(回到3月份),您可能还记得我在这个系列的52件东西中发布了第23件(可以在这里找到).这篇文章的标题是& ...
- 第四十九个知识点:描述在IPsec和TLS后的基本想法
第四十九个知识点:描述在IPsec和TLS后的基本想法 网络安全协议(Internet Protocol Security,IPsec)和安全传输层协议(Transport Layer Securit ...
- 第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么
第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么 Sigma协议 Sigma协议是Alice想要向Bob证明一些东西的协议(Alice知道一些秘密).他们有下面的一般范式:Al ...
- 第十八个知识点:画一个描述ECB,CBC,CTR模式的操作
第十八个知识点:画一个描述ECB,CBC,CTR模式的操作 第8周是画三个图的任务,但是维基百科上已经有人画的很好了 https://en.wikipedia.org/wiki/File:ECB_en ...
- 第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法
第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-de ...
随机推荐
- CPU如何同时运行多个进程?
1 # -*- coding: utf-8 -*- 2 import re 3 mem = [x for x in re.split('[\r|\n]', ''' 4 store a 1 5 add ...
- canal从mysql拉取数据,并以protobuf的格式往kafka中写数据
大致思路: canal去mysql拉取数据,放在canal所在的节点上,并且自身对外提供一个tcp服务,我们只要写一个连接该服务的客户端,去拉取数据并且指定往kafka写数据的格式就能达到以proto ...
- Java中特殊的类——包装类
Java中特殊的类--包装类 包装类就是将基本数据类型封装在类中. 1.包装类 (1)自定义包装类 将基本数据类型包装成一个类对象的本质就是使用Object进行接收处理. 此时IntDemo类就是in ...
- SpringBoot让测试类飞起来的方法
单元测试是项目开发中必不可少的一环,在 SpringBoot 的项目中,我们用 @SpringBootTest 注解来标注一个测试类,在测试类中注入这个接口的实现类之后对每个方法进行单独测试. 比如下 ...
- github单独下载某一个文件夹
可以借助svn工具进行下载,实现只下载repo下的指定文件夹内容 背景 需要下载这个文件夹下所有内容https://github.com/rabbitmq/rabbitmq-tutorials/tre ...
- 【编程思想】【设计模式】【行为模式Behavioral】registry
Python版 https://github.com/faif/python-patterns/blob/master/behavioral/registry.py #!/usr/bin/env py ...
- 【力扣】337. 打家劫舍 III
在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根". 除了"根"之外,每栋房子有且只有一个" ...
- Redis图形管理 redis-browser
目录 一.介绍 二.部署 三.启动 监听单台 听多台 四.报错合集 一.介绍 redis-browser是redis的web端图形化管理工具.利用它可以查看和管理redis的数据,界面简洁,能和ral ...
- Jenkins实例 Maven项目
目录 一.准备 二.创建项目 创建maven项目 源码管理部分 构建编译 Post Steps打包 构建后操作 三.测试 一.准备 先看初始化设置,如果做完初始化,则跳过 安装如下插件 Maven I ...
- Charles ios设备抓包
在Mac下做开发,用Fiddler抓包由于离不开Windows比较痛苦,还好有Charles,到官网http://www.charlesproxy.com/可下载到最新版本(若不支持rMBP可拖到Re ...