mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
The VTPM manager and VTPMs fully support both 32 and 64 bit OSes. The tpm_emulator (provided for debugging on TPM-less machines) does not support 64-bit kernels by default though. See the README for details on how to use it on 64-bit kernels. (Vinnie Scarlata, Intel Corporation) Signed-off-by: Joe Cihula <joe.cihula@intel.com>
46 lines
2.4 KiB
Plaintext
46 lines
2.4 KiB
Plaintext
|
|
Directory Structure
|
|
===================
|
|
tools/vtpm/tpm_emulator-0.2b.tar.gz -> TPM Emulator downloaded at build time that will
|
|
be patched and used for our vtpms
|
|
tools/vtpm/vtpm.patch -> patch applied to tpm_emulator to make vtpm
|
|
tools/vtpm/vtpm/ -> (created on build) tpm_emulator moved to ring 3,
|
|
listens on a pair of fifos for TPM commands,
|
|
persistent state is sent via named fifo to vtpm
|
|
manager, which encrypts it and protects it.
|
|
tools/vtpm/tpm_emulator.patch -> To allow for debugging and testing on non-TPM
|
|
platforms, this patches the emulator to allow
|
|
it to be inserted into the dom0 kernel
|
|
tools/vtpm/tpm_emulator-0.2 -> (created on build) directory containing patched emulator
|
|
|
|
Compile Flags
|
|
===================
|
|
VTPM_MULTI_VM -> Defined (not finished): VTPMs run in their own VMs
|
|
Not Defined (default): VTPMs are processes
|
|
|
|
Requirements
|
|
============
|
|
- xen-unstable
|
|
- IBM frontend/backend vtpm driver patch
|
|
- vtpm_managerd
|
|
- GNU MP Big number library (GMP)
|
|
|
|
vtpmd Flow (for vtpm_manager. vtpmd never run by default)
|
|
============================
|
|
- Launch the VTPM manager (vtpm_managerd) which which begins listening to the BE with one thread
|
|
and listens to a named fifo that is shared by the vtpms to commuincate with the manager.
|
|
- VTPM Manager listens to TPM BE.
|
|
- When xend launches a tpm frontend equipped VM it contacts the manager over the vtpm backend.
|
|
- When the manager receives the open message from the BE, it launches a vtpm
|
|
- Xend allows the VM to continue booting.
|
|
- When a TPM request is issued to the front end, the front end transmits the TPM request to the backend.
|
|
- The manager receives the TPM requests and uses a named fifo to forward the request to the vtpm.
|
|
- The fifo listener begins listening for the reply from vtpm for the request.
|
|
- Vtpm processes request and replies to manager over shared named fifo.
|
|
- If needed, the vtpm may send a request to the vtpm_manager at any time to save it's secrets to disk.
|
|
- Manager receives response from vtpm and passes it back to backend for forwarding to guest.
|
|
|
|
tpm_emulator flow
|
|
==================
|
|
Read documentation in tpm_emulator-0.2 directory
|