The TPM is the trusted base for the computer - in theory it is supposed to be a piece of hardware that is protected from physical tampering (not quite so in practice), that can securely store secrets, and that is trusted to do some basic cryptographic functions without being compromised.  One of these functions is RSA digital signature.  The TPM can generate an RSA key pair, sign data with the private key and make the public key available.  In theory, the private key should never leave the TPM and should never be revealed to anybody (I believe).  That anybody includes FF...

We are working on incorporating the attestation feature into the TLS handshake (as a TLS extension).  It provides an additional layer of authentication (remote software stack authentication in addition to certificate-based user authentication) that can be useful for different purposes.  Some past work, for example, involves integrating attestation in remote access to enterprise networks - where system administrators want to ensure that employees' laptops, which were compromised while being used in a coffee shop for example, cannot bypass security policies by connecting to the network later from within the firewall security parameter.

I am not sure what you meant about a certificate not being able to have a nickname if it has a NULL subject field.  I can import such a certificate with the command "certutil -A -n <nickname> ..." and then access that certificate from a sample NSS application using FindCertByNickname with the default NSS database (my application really has only one NSS database).  Should this work differently in FF?

As a side note, the attestation identity certificates are not used to authenticate users, actually they maintain the privacy of the user.  An AIK certificate asserts that the public key contained in the certificate is associated with a trusted TPM platform.  When a CA signs this certificates, it will ask you for a certificate from the manufacturer of you machine saying that the machine contains a TPM hwardware component that obeys the Trusted Computing Group specifications.  Having this assurance, the CA signs your AIK certificate, certifying that this public key is associated to a trusted TPM.  You would send that certificate together with an attestation response and the remote side will use the AIK public key to verify the signature of the PCR values (which the TPM signed with the private key corresponding to your attestation identity).  So, I believe that the subject field of the AIK certificate must be empty (by specification) due to privacy reasons - otherwise it could contain information that reveals the identity of the user...

So, there are two issues I see about incorporating the TPM functionality in NSS:
 - making the TPM available in a PKCS#11 slot: First, the private key never leaves the TPM.  Also, how would the attestation and sealing functionality be exposed through the slot function list?  These are two pretty unique cryptographic functions, they involves the PCR registers (or a subset of them) which are already in the TPM.
 - the issue of the NULL subject of the AIK certificate -  how to  preserve compliance with the TCG standard which specifies these NULL values?

Any opinions are welcome :)

Regards,
Peter
_______________________________________________
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to