Firstly I am not sure if this is the right place to ask this. If anyone has any idea of where this question belong please tell me.

Recently I was reading about TPM and TSS(TPM Software Stack). The diagram in this document -- TSS TAB and Resource Manager Specification shows the structure of the stack. In my understanding, the TCTI and stacks above is in the library to communicate with TPM; where TAB and stacks below TAB are in the real TPM or virtual TPM device. But I am not sure if my understanding is correct.


My question is: Is there a TAB/RM component (or component with similar responsibility) in a real TPM device? Or does tbs/some modules in OS take this resposibility?

Thank you!

1 Answer 1


No, the TAB/RM is a software component.

The TPM is a really constraint device with little memory (e.g. few key slots). To solve that problem, there is a TPM Access Broker/Resource Manager (TAB/RM) which automatically saves excess TPM data (encrypted) on your hard disk and loads it into the TPM if needed.

When you're on a linux machine, you might have noticed that there is a /dev/tpm0 and a /dev/tpmrm0. The tpm0 provides direct access while the tpmrm0 uses the TAB/RM (which is part of the linux kernel) to simplify your life. The interface is the same, btw, that is talking to the TAB/RM is like talking to a TPM with infinite resources :)

The TCTI, SAPI, ESAPI and FAPI layers are indeed libraries. They are all provided by this open source implementation.

For completeness sake: there is not only a in-kernel TAB/RM, but also a user space TAB/RM implementation doing the same thing. You can install it e.g. if your kernel is really old.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .