> One thing I'd like to get clarity about is the following corner-case. A 
> user supplies some VM image as persistent storage for the TPM. It 
> contains garbage. How do we handle this case? Does the TPM then just 
> start writing its state into this image or do we want to have some layer 

> in place that forces a user to go through the step of formatting after 
> that layer indicates that the data are unreadable. Besides that a 
> completely empty image also contains garbage from the perspective of TPM 

> persistent state and for that layer.

A garbage persistent storage should be handled the same way a physical TPM
would handle an NV failure - failure mode.  It's a broken part that must 
be
replaced with a factory fresh part.  That's done by some admin tool 
nulling 
the storage.

Empty (length zero or non-existent) is different from corrupt.  The TPM 
should 
detect that and initialize itself to factory defaults.  Those defaults are 

specified in the TPM specification.

> My intention would (again) be to put a header in front of every blob. 
> That header would contain a crc32 covering that header (minus the crc32 
> field itself of course) plus the blob to determine whether the blob is 
> garbage or not. It is similar in those terms as the 1st implementation 
> where we also had a directory that contained that crc32 for the 
> directory itself and for each blob. This is not a filesystem, I know 
that.

I agree that an integrity value should be included.  This is a security
device, and layers of protection are good.

I wonder about the choice of algorithm.  The TPM doesn't have crc32 code
but it does have SHA-1.  Why not reuse code rather than add a new 
function?

Reply via email to