On 12/14/2014 07:09 AM, Quan Xu wrote: [...]
+ /*TPM 2.0 bind | TPM 1.x seal*/ + if (hw_is_tpm2()) { + TPM2_disk_bind(dst, &sblob, sizeof(sblob)); + } else { + dst->pcr_selection = src->seals[i].pcr_selection; + memcpy(&dst->digest_release, &src->seals[i].digest_release, 20); + TPM_pcr_digest(&dst->digest_at_seal, dst->pcr_selection); + TPM_disk_seal(dst, &sblob, sizeof(sblob)); + }
It appears that the secrets for the vTPMs are only being bound to the presence of the physical TPM and not the measurements of the hypervisor and other TCB components. This does not provide as much security as it did for TPM 1.2: an attacker with access to the boot disk can boot into a compromised environment and extract the vTPM keys and disk images. The TPM2_Create/TPM2_Unseal operations should be capable of performing the same functionality. If only SHA1 PCRs are used, they should be able to be drop-in replacements, but supporting other hash algorithms may be a feature that users who have a TPM2 will want. -- Daniel De Graaf National Security Agency _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel