On Wed, Jul 16, 2025 at 4:00 PM Muhammad Usama Sardar <
muhammad_usama.sar...@tu-dresden.de> wrote:

> Thank you Ekr. This is very valuable input for the formal analysis.
>
> The challenge from formal analysis perspective is that the architectural
> details of Trusted Execution Environments (TEEs) make it much more
> complicated. Ignoring these architectural details leads to an analysis
> which is of less practical value.
>
> As a historical note, Chris Patton proposed to use RFC 9261 at IETF 120,
> and we started exploring that option which resulted in
> draft-fossati-tls-exported-attestation. We found exported authenticators to
> be a more reasonable way forward, both from TLS and remote attestation
> perspective. In particular, using exported authenticators avoids the
> diversion attacks I presented in last TLS meeting, namely a single broken
> machine could break the security of all users. Exported authenticators also
> avoid invasive changes to TLS protocol, requiring only a single extension
> flag to indicate (in CH) and acknowledge (in EE) support for this
> functionality, and the rest is handled at the application layer.
>
Thanks for the information. I have read that draft, but wasn't sure which
version you were
favoring. I'll try to provide some comments.


> # Negotiation Design
>
> The design here seems oddly asymmetrical. Specifically:
>
> Server -> Client Attestation:
>
> We call this "(TLS) Server as (RATS) Attester"
>

OK.


> - The client expresses its preferences in CH
>
> I assume by preferences, you mean preferences for RATS Evidence format
> (i.e., the format in which Evidence is presented).
>

Yes. What's in "evidence"request".

- The server provides its response in CERT
>
> I think there might be a misunderstanding here. If the preferences mean as
> above, then its response (cf. evidence_request in Fig. 2) is already given
> in EncryptedExtensions (EE).
>
> The negotiation is already complete in EE. That is, Certificate message
> itself does not participate in negotiation.
>
Right. However, the actual data is in CERT.

Certificate message then conveys the RATS Evidence in a format that was
> negotiated in CH and EE.
>
> Client -> Server Attestation:
>
> We call this "(TLS) Client as (RATS) Attester"
>
> - The client expresses its capabilities in CH
> - The server tells the client what it wants in EE
> - The client then provides its response in CERT
>
> Why not instead have a symmetrical design for the Client -> Server
> direction where the server uses CR.extensions (with the same
> information that the client would have put in CH). This is
> how we do ordinary client authentication.
>
> I am a bit confused here. Does CR mean CertificateRequest? Are you
> proposing that the Server responds its selected Evidence format in
> CertificateRequest message rather than EE? Could you please clarify this a
> little more?
>

Ah, I see the point you are making, which is that the Certificate message
has no location for
providing the chosen format. I believe if you take my suggestion below,
that will resolve
this issue, as you don't need to negotiate it, just add the appropriate
attestation in
an extension in CertificateEntry.

> # Certificates
>
> You support two designs here:
>
> - Attestation only (S 6.1)
> - Attestation along with X.509 certificates (S 6.2)
>
> The first
> This adds a lot of complication to the CERT message because sometimes
> you need to carry the attestation information in an extension and
> sometimes it goes in the main data. That seems unfortunate because it
> adds complexity.
>
> I would suggest that instead for attestation-only use a raw public
> key. This unifies the logic, in that in either case you extract the
> public key for the TLS handshake from Certificate and then verify it
> against the attestation_evidence in the extension.
>
> Please note that there are two different keys:
>
>    - Long-Term Key: It is bound to the machine's long-term identity.
>    - Ephemeral Key: It is a self-asserted key generated within the
>    Trusted Execution Environment.
>
> I haven't studied the design of the RATS objects closely, but as I
understand
the situation, from the perspective of TLS the material in the attestation
is
a signature over a long-term TIK which is then used to sign the TLS
handshake
transcript. Assuming that's correct, then I believe that what I am
suggesting
here will work.

-Ekr
_______________________________________________
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org

Reply via email to