Re: [RFC PATCH] tpm: don't return -EINVAL if TPM command validation fails

From: Javier Martinez Canillas
Date: Tue Nov 21 2017 - 07:49:32 EST


On 11/21/2017 01:30 PM, Jarkko Sakkinen wrote:
> On Tue, Nov 21, 2017 at 10:07:34AM +0100, Javier Martinez Canillas wrote:
>> As mentioned, I think this should be documented. I guess most people
>> would see the in-kernel resource manager as a virtualized TPM, since
>> the "TSS TAB and Resource Manager Specification" [0] explains the RM
>> making an analogy with a virtual memory manager:
>>
>> "The Resource Manager (RM) manages the TPM context in a manner similar
>> to a virtual memory manager. It swaps objects, sessions, and sequences
>> in and out of the limited TPM memory as needed."
>
> A process in virtual memory has a different environment than code
> running on bare metal without page table, doesn't it?
>
>> And even your latest LPC presentation mention that the handles in the
>> in-kernel resource manager are virtualized [1].
>>
>> And I disagree that it does not matter, since the same spec says:
>>
>> "This layer is mostly transparent to the upper layers of the TSS and is
>> not required."
>>
>> But returning -EINVAL instead of a proper TPM command response with a
>> TPM_RC_COMMAND_CODE code makes it not transparent to the upper layer.
>
> *mostly*
>

Fair enough.

>> If the TPM spaces infrastructure is not compliant with the spec, then I
>> think that should also be documented.
>
> TPM specification is not a formal specification AFAIK.
>
>>> matters less than breaking the sandbox.
>>>
>>
>> Yes, sorry for that. It wasn't clear to me that there was a sandbox and my
>> lack of familiarity with the code was the reason why I posted as a RFC in
>> the first place.
>>
>> Do you agree with Jason's suggestion to send a synthesized TPM command in
>> the that the command isn't supported?
>
> Nope.
>

Ok. Thanks a lot for your feedback. I already had that patch but didn't want
to post it before knowing your opinion, I'll drop it now.

Philip,

I think this means that we can now fix this in user-space then? That was in
fact my first suggestion in the filed tpm2-tools issue.

> /Jarkko
>

Best regards,
--
Javier Martinez Canillas
Software Engineer - Desktop Hardware Enablement
Red Hat