Hello Peter and others,

> I should start by saying that a TPM's functionality is not equivalent to
> that of other hardware tokens, such as smart cards.  A TPM only provides a
> subset of the functionality of a regular PKCS#11 token.  A TPM, however,
> also providers things that PKCS#11 tokens don't deal with - measuring
> software components and remote attestation.  Keys stored into the TPM may be
> bound to "trusted" software configurations of the local host.  For example,
> a user running a compromised OS may not be able to access a key inside the
> TPM because the TPM considers the host's software untrusted.  Many people
> have cried out that this can be used to lock data to particular software
> applications, but this is a different topic and we should not go into it.
>
> Trousers's PKCS#11 module uses a software-based PKCS#11 data store protected
> with a key hierarchy described inhttp://trousers.sourceforge.net/pkcs11.html. 
>  The root of this hierarchy a
> wrapped using a key generated and stored inside the TPM.  Therefore, the
> PKCS#11 module mainly interacts with this software-based data store.  For
> example, I believe that tpmtoken_import() imports key/cert pairs into the
> software-based data store, not into the TPM.  The TPM simply doesn't have
> the capability to store certificates, sign CSR's etc.  Neither can it export
> PKCS#12 items.  It provides some PKCS#11-friendly functions, such as
> wrapping symmetric keys and a more secure random number generator, that
> Trousers' may directly use in its PKCS#11 module, but a lot of PKCS#11
> functionality is not provided by the TPM and has to be implemented in
> software.

Thank you for this explanation. What you write confirms the impression
of the inner working of opencryptoki I got from reading various
things. And I perfectly agree on what you write about the TPM and its
non-ability to import certificates. I think they keystore on
opencryptoki follows exactly the principle how storing other things
"in" the TPM works: building an encrypted key hierarchy that is stored
on harddisk with an encryption key rooted in the Storage Root Key in
the TPM.

Best regards
Martin
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to