52 Things: Number 48: What is the purpose and use of a TPM?

52 Things: Number 48: What is the purpose and use of a TPM?

52件事:48号:TPM的目的和用途是什么?
This is the latest in a series of blog posts to address the list of '52 Things Every PhD Student Should Know To Do Cryptography': a set of questions compiled to give PhD candidates a sense of what they should know by the end of their first year.
这是一系列博客文章中的最新一篇,旨在解决“每个博士生在做密码学时应该知道的52件事”:这是一组问题,旨在让博士生在第一年结束时了解他们应该知道什么。
 
Before examining the point of this question (namely what the purpose and use of a TPM is) it's worth trying to understand the problem a TPM is designed to overcome. The problem is really one of trust. Trusting what? Well, primarily the memory and software running on a computer. These things can be directly accessed by the operating system and so secret information (such as cryptographic keys) can be accessed by an attacker who has access to the machine at the operating system level. If these keys are being stored directly in memory and being accessed by software, it could be fairly trivial for an attacker to read off the memory location where the keys are being stored and then compromise security.
在研究这个问题的要点(即TPM的目的和用途是什么)之前,值得尝试了解TPM旨在克服的问题。真正的问题在于信任。信任什么?嗯,主要是计算机上运行的内存和软件。操作系统可以直接访问这些东西,因此在操作系统级别访问机器的攻击者可以访问机密信息(如密钥)。如果这些密钥直接存储在内存中并由软件访问,那么攻击者读取存储密钥的内存位置,然后危及安全性,这可能是相当微不足道的。
 
 
 
One way around this problem is make sure that keys are never stored directly in the computers memory which can be accessed by software. Given that the keys are required for secure applications they must at some point be presented in a state that can be used by the software so how could this be possible? Well, one way is to protect the secret keys stored in memory by wrapping them using a key that the software does not have access to. By having a separate piece of hardware for instance that has a key burned into it and which is able to perform certain cryptographic operations with that key. This piece of hardware could therefore be employed by the software to do various things with this secret key that is stored on the hardware to do things such as wrap keys to be stored in memory, but never have access to this key directly.
解决这个问题的一种方法是确保密钥永远不会直接存储在计算机存储器中,而计算机存储器可以通过软件访问。考虑到密钥是安全应用程序所必需的,它们必须在某个时候以软件可以使用的状态呈现,那么这怎么可能呢?好吧,一种方法是通过使用软件无法访问的密钥包装存储在内存中的密钥来保护它们。例如,通过使用一个单独的硬件,该硬件中烧有一个密钥,并且能够使用该密钥执行某些加密操作。因此,软件可以使用这一硬件来利用存储在硬件上的这个密钥来做各种事情,例如要存储在存储器中的包装密钥,但永远不能直接访问这个密钥。
 
 
 
This is essentially what a TPM does. A TPM has an RSA key pair called the Storage Root Key (SRK). The private part of this key is kept secret from everything and everyone. Using this private key, other keys (that software uses) can be wrapped (often called “binding”) using the SRK, protecting them from disclosure. In addition to simply wrapping keys, TPMs can also wrap keys and tie them to certain platform measurements. This type of key can only be unwrapped when those platform measurements have the same values that they had when the key was created. This process is known as “sealing.” TPMs can also be used for cryptographic key generation and perform other cryptographic tasks one of which is know as remote attestation, which creates a hash key summary of the hardware and software configuration allowing a third party to verify that the software has not been changed.
这基本上就是TPM所做的。TPM有一个称为存储根密钥(SRK)的RSA密钥对。这把钥匙的私人部分对任何人都是保密的。使用这个私钥,软件使用的其他密钥可以使用SRK进行封装(通常称为“绑定”),以保护它们不被泄露。除了简单地包装密钥外,TPM还可以包装密钥并将其绑定到特定的平台测量。只有当这些平台测量值与创建密钥时的值相同时,才能展开这种类型的密钥。这个过程被称为“密封”。TPM还可以用于生成加密密钥并执行其他加密任务,其中一个任务被称为远程认证,它创建硬件和软件配置的哈希密钥摘要,允许第三方验证软件是否未更改。
 
 
 
The real point to understand here is that by pushing security down to the hardware level and ensuring that it is given over to a separate piece of hardware that has it's own firmware and circuits that can't be altered from the outside, the system is not exposed to software vulnerabilities and is therefore more trustworthy.
这里真正需要理解的是,通过将安全性降低到硬件级别,并确保将其交给一个单独的硬件,该硬件具有自己的固件和无法从外部更改的电路,系统不会暴露于软件漏洞,因此更值得信赖。
 
 
 
So what is the purpose of a TPM? To overcome the problem of trusting (or rather not trusting) software to be completely reliable.
那么TPM的目的是什么呢?克服信任(或者更确切地说不信任)软件是完全可靠的问题。
 
 
 
What is the use of a TPM? We mentioned a number of them. First of all was binding, which essentially wraps a key using the private key of the SRK. The second was sealing which also ties the wraped key to a particular platform measurements. And thirdly we looked at remote attestation and noted that TPMs can also be used for other cryptographic functions such as key generation.
TPM的用途是什么?我们提到了其中一些。首先是绑定,它基本上使用SRK的私钥来封装密钥。第二是密封,它还将封装的密钥绑定到特定的平台测量。第三,我们研究了远程认证,并注意到TPM也可以用于其他加密功能,如密钥生成。
posted @ 2024-04-13 13:36  3cH0_Nu1L  阅读(7)  评论(0编辑  收藏  举报