<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ekahraman-oauth-attestation-authz-native-app-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Attested Authorization for Native Apps">OAuth 2.0 Attestation Based Authorization for Native Applications</title>
    <seriesInfo name="Internet-Draft" value="draft-ekahraman-oauth-attestation-authz-native-app-00"/>
    <author fullname="Efe Kahraman">
      <organization>Mekarge</organization>
      <address>
        <postal>
          <street>190 Urla</street>
          <city>Izmir</city>
          <code>35450</code>
          <country>TR</country>
        </postal>
        <email>efe@mekarge.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="09"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>attestation</keyword>
    <keyword>authorization</keyword>
    <abstract>
      <?line 75?>

<t>This document defines an extension to OAuth 2.0 <xref target="RFC6749"/> that enables Authorization Servers to consider Attestation Results presented by Native Applications when issuing access grants. By incorporating information about the security characteristics of the application and its execution environment, this mechanism supports Authorization Policies that are tailored to the trustworthiness of the Native Application.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mekarge.github.io/draft-ekahraman-oauth-attestation-authz-native-app/draft-ekahraman-oauth-attestation-authz-native-app.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ekahraman-oauth-attestation-authz-native-app/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        oauth Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mekarge/draft-ekahraman-oauth-attestation-authz-native-app"/>.</t>
    </note>
  </front>
  <middle>
    <?line 79?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines an extension to OAuth 2.0 <xref target="RFC6749"/> that enables Authorization Servers to consider Attestation Results presented by Native Applications when issuing access grants. By incorporating information about the security characteristics of the application and its execution environment, this mechanism supports Authorization Policies that are tailored to the trustworthiness of the Native Application.</t>
      <t>Consider a scenario where a Native Application is authorized to perform sensitive operations on behalf of a user, such as accessing financial information or initiating transactions. The application may execute on a device that has been modified or is running software capable of monitoring, intercepting, or influencing the application's execution environment. In such cases, information processed by the application or exchanged with remote services may be modified or misused by unauthorized parties. Consequently, authorization decisions based solely on the identity of the user may not accurately reflect the security posture of the requesting environment.</t>
      <t>The Zero Trust Architecture <xref target="ZTA"/> suggests that access to a protected resource should be granted by a policy which is evaluated on multiple attributes of the subject. In this regard, granting access to a resource may be determined by a set of attributes including device characteristics and software metadata. This leads to a need for a policy decision algorithm consuming vectors of attributes.</t>
      <t>Thinking of Remote Attestation Procedures (RATS) Architecture <xref target="RFC9334"/> through the lens of Zero Trust Architecture brings a perspective to further break down the abstract concept of policy decision. It is then possible to conceptualize the subject as Attester which is the device being evaluated. And the Policy Decision Point can be mapped to the Relying Party. This mapping allows reuse of existing standardized roles and flows defined in RATS to design the policy decision functionality.</t>
      <t>OAuth 2.0 <xref target="RFC6749"/> is an effective way to ground these abstract concepts into operational implementation. The combination of the Native Application, user's device, and relevant Attesting Environments may collectively act as the Attester. The Authorization Server on the other hand relates to the concept of Relying Party.</t>
      <t>This document defines a mechanism to pass the Attestation Result, signed by the Verifier, to the Authorization Server during token exchange for Native Application Clients. Access tokens are issued only with the scopes permitted by Authorization Decisions derived from the Attestation Result. The flow specified in this document relates to the "Passport Model" in RATS as the Attestation Result is transported to the Authorization Server without requiring direct communication between the Authorization Server and Verifier.</t>
      <artwork type="ascii-art"><![CDATA[
+---------------+               (A)   +---------------+
|               +-------------------->|               |
|    Client     |               (B)   |   Verifier    |
|               |<--------------------+               |
+-----------+---+                     +---------------+
    ^       |
    |       |
    |       |                         +---------------+
    |       |                   (C)   |               |
    |       +------------------------>| Authorization |
    |                           (D)   |     Server    |
    +---------------------------------+               |
                                      +---------------+
]]></artwork>
      <t>This flow includes the following steps:</t>
      <t>(A) Client sends all collected Evidence to the Verifier. Client <bcp14>MAY</bcp14> sign the request with an asymmetric cryptographic key. If client signs the request, it's <bcp14>RECOMMENDED</bcp14> to send the public JWK in the request body. It's <bcp14>RECOMMENDED</bcp14> to use HTTP Message Signatures <xref target="RFC9421"/> for the signing implementation and HTTPS as the underlying protocol. The message structure is beyond the scope of this document.</t>
      <t>(B) Verifier creates an Attestation Result based on the Evidence. Verifier <bcp14>MUST</bcp14> sign the Attestation Result with a cryptographic key. For asymmetric keys, Verifier <bcp14>MUST</bcp14> share the public key with Authorization Server. For both asymmetric and symmetric keys, key establishment protocol is beyond the scope of this document. Verifier <bcp14>MUST</bcp14> make the response uncacheable by adding a <tt>Cache-Control</tt> header set as <tt>no-store</tt>.</t>
      <t>(C) Client sends the token request to Authorization Server with additional parameters including the Attestation Result. This document defines necessary extensions in <xref target="ext"/>.</t>
      <t>(D) The Authorization Server gathers Authorization Policies for each requested scope. For each Authorization Policy, Authorization Server obtains Trust Decisions by evaluating the corresponding Trust Assessment. Trust Assesments are predicates using the Attestation Result provided by the client. After each Authorization Policy is evaluated, Authorization Server determines scopes based on Authorization Decisions and issues the access token accordingly.</t>
      <t>Client <bcp14>MAY</bcp14> cache the Attestation Result received from the Verifier for different token requests. In this case, client <bcp14>SHOULD</bcp14> cache the Attestation Result with a short expiry time. Authorization Server <bcp14>MAY</bcp14> reject the token request if the freshness of the Attestation Result doesn't meet system requirements.</t>
      <t>This document does not standardize Evidence collection, Verifier interfaces, or Attestation Result formats. It defines only how an Authorization Server consumes Attestation Results during authorization.</t>
      <section anchor="related-works">
        <name>Related Works</name>
        <t>A related approach is proposed in <xref target="I-D.ietf-oauth-attestation-based-client-auth"/>, which addresses a mechanism for proving client instance identity and handling authentication. This document addresses the distinct problem of authorization based on attestation.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The reader is assumed to be familiar with the vocabulary and concepts defined in OAuth 2.0.</t>
      <t>The following term is imported from <xref target="ZTA"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Policy Decision Point</t>
        </li>
      </ul>
      <t>The following terms are imported from <xref section="4" sectionFormat="of" target="RFC9334"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Attesting Environment</t>
        </li>
        <li>
          <t>Appraisal Policy for Attestation Result (APR)</t>
        </li>
        <li>
          <t>Attestation Result</t>
        </li>
        <li>
          <t>Attester</t>
        </li>
        <li>
          <t>Evidence</t>
        </li>
        <li>
          <t>Relying Party</t>
        </li>
        <li>
          <t>Verifier</t>
        </li>
      </ul>
      <t>The abbreviation APR is used throughout this document.</t>
      <t>This document additionally defines the following terms:</t>
      <t>Native Application (Native App)</t>
      <ul empty="true">
        <li>
          <t>An application that is installed by the user to their device. Different from the "native app" definition in <xref section="3" sectionFormat="of" target="RFC8252"/>, Native Application is expected to provide device attributes and application metadata.</t>
        </li>
      </ul>
      <t>Native Application Client</t>
      <ul empty="true">
        <li>
          <t>The OAuth 2.0 client requesting access token for the Native Application. Client can be a part of the Native Application acting as a Public client, or can be part of a backend service requesting access token on behalf of the Native Application as a part of the Backend-For-Frontend pattern. Throughout this document, Native Application Client will be referred to as "client".</t>
        </li>
      </ul>
      <t>Challenge</t>
      <ul empty="true">
        <li>
          <t>A cryptographically random nonce which is generated and validated by the Verifier.</t>
        </li>
      </ul>
      <t>Appraisal Assertion</t>
      <ul empty="true">
        <li>
          <t>Represents the outcome of evaluating a distinct aspect of the Attester. Each Appraisal Assertion <bcp14>MAY</bcp14> have its own status and associated claims. An Attestation Result <bcp14>MUST</bcp14> contain one or more Appraisal Assertions.</t>
        </li>
      </ul>
      <t>Trust Assessment</t>
      <ul empty="true">
        <li>
          <t>Evaluation of an Attestation Result according to an APR. APR <bcp14>MAY</bcp14> have separate rule for each Appraisal Assertion forming the Attestation Result.</t>
        </li>
      </ul>
      <t>Trust Decision</t>
      <ul empty="true">
        <li>
          <t>The outcome of a Trust Assessment. It is either "Allow" or "Deny".</t>
        </li>
      </ul>
      <t>Authorization Policy</t>
      <ul empty="true">
        <li>
          <t>Specification of Trust Assessments required for a scope. Specification <bcp14>MAY</bcp14> require at least one of or all Trust Decisions to result in "Allow".</t>
        </li>
      </ul>
      <t>Authorization Decision</t>
      <ul empty="true">
        <li>
          <t>Indicates if a particular scope is granted to a client after the evaluation of the associated Authorization Policy.</t>
        </li>
      </ul>
    </section>
    <section anchor="egen">
      <name>Evidence Collection</name>
      <t>Native Applications collect Evidence for the Verifier. Verifier <bcp14>SHOULD</bcp14> provide a Challenge value to test the freshness of the Evidence. When provided, Native Application <bcp14>MUST</bcp14> use the Challenge value when collecting Evidence. Verifier <bcp14>SHOULD</bcp14> generate a Challenge value with sufficient entropy according to the system requirements.</t>
      <t>How Native Application fetches the Challenge is beyond the scope of this document. Verifier <bcp14>MAY</bcp14> offer an endpoint as shown below.</t>
      <artwork type="ascii-art"><![CDATA[
+---------------+               (A)   +---------------+
|               +-------------------->|               |
|  Native App   |               (B)   |   Verifier    |
|               |<--------------------+               |
+---------------+                     +---------------+
]]></artwork>
      <t>This flow includes the following steps:</t>
      <t>(A) Native Application requests a Challenge value from Verifier. Native Application <bcp14>MAY</bcp14> sign the request by generating an asymmetric key pair in a secure enclave on the device or use a previously generated key pair. If request is signed, Native Application <bcp14>MUST</bcp14> send the public key JWK to the Verifier. It's <bcp14>RECOMMENDED</bcp14> to use HTTP Message Signatures <xref target="RFC9421"/> for the signing implementation and HTTPS as the underlying protocol.</t>
      <t>(B) Verifier generates a fresh Challenge with sufficient entropy. If request is signed and Verifier receives public JWK from Native Application, it <bcp14>MUST</bcp14> bind the generated Challenge value to the public key JWK or to a stable identifier derived from that key, such as a JWK Thumbprint (<xref target="RFC7638"/>). Verifier <bcp14>MUST</bcp14> store the Challenge creation timestamp for the freshness check. Verifier <bcp14>MUST</bcp14> make the response uncacheable by adding a <tt>Cache-Control</tt> header set as <tt>no-store</tt>.</t>
      <t>Native Application <bcp14>MAY</bcp14> contact with other parties when collecting the Evidence. In terms of RATS architecture, Evidence is created by Attesting Environments. The Attesting Environment can be a remote service provided by a vendor or platform. Message exchange is shown below.</t>
      <artwork type="ascii-art"><![CDATA[
+---------------+               (A)   +---------------+
|               +-------------------->|               |
|  Native App   |               (B)   |   Attesting   |
|               |<--------------------+  Environment  |
|               |                     |               |
+---------------+                     +---------------+
]]></artwork>
      <t>This flow includes the following steps:</t>
      <t>(A) Native Application sends a request to Attesting Environment to get Evidence by providing necessary claims. Native Application <bcp14>SHOULD</bcp14> present the Challenge value supplied from Verifier in addition to the claims. The message structure is specific to the Attesting Environment and is beyond the scope of this document.</t>
      <t>(B) Attesting Environment generates the Evidence. Attesting Environment <bcp14>MUST</bcp14> embed the Challenge value in Evidence when Challenge is present. Attesting Environment <bcp14>SHOULD</bcp14> sign the Evidence with a cryptographic key.</t>
    </section>
    <section anchor="ever">
      <name>Evidence Verification</name>
      <t>Verifier creates the Attestation Result based on the Evidence sent by the client. Verifier <bcp14>MAY</bcp14> test the integrity and the authenticity of the Evidence using Attesting Environment as shown below.</t>
      <artwork type="ascii-art"><![CDATA[
+---------------+               (A)   +---------------+
|               +-------------------->|               |
|    Client     |               (D)   |    Verifier   |
|               |<--------------------+               |
+---------------+                     +-----------+---+
                                          ^       |
                                          |       |
                                     (C)  |       | (B)
                                          |       v
                                      +---+-----------+
                                      |               |
                                      |  Attesting    |
                                      |  Environment  |
                                      |               |
                                      +---------------+
]]></artwork>
      <t>This flow includes the following steps:</t>
      <t>(A) Client sends Evidence to the Verifier. Evidence <bcp14>MUST</bcp14> include the Challenge value if Verifier has provided one during Evidence generation as described in <xref target="egen"/>. When the Challenge value is used, client <bcp14>MUST</bcp14> send the public key JWK of the Native Application.</t>
      <t>(B) If the Evidence is cryptographically signed, Verifier <bcp14>MUST</bcp14> validate the signature. The key establishment protocol for the cryptographic key between Verifier and Attesting Environment is beyond the scope of this document. Verifier calls the Attesting Environment for further checking the integrity and decoding the Evidence if necessary.</t>
      <t>(C) Attesting Environment <bcp14>MAY</bcp14> run integrity checks on the Evidence and return the Evidence with claims useful for the Verifier. Attesting Environment <bcp14>MUST</bcp14> extract the Challenge from Evidence and return its value explicitly if it was supplied by the Native Application.</t>
      <t>(D) Verifier processes the information returned from Attesting Environment. Verifier <bcp14>MUST</bcp14> test the Challenge value if it is returned from the Attesting Environment. Verifier <bcp14>MAY</bcp14> implement a lookup table to find the associated Challenge value via the public key JWK or to a stable identifier derived from that key, such as a JWK Thumbprint (<xref target="RFC7638"/>) which is received in the request (A). It's <bcp14>RECOMMENDED</bcp14> for Verifier to check the freshness of the Evidence when Challenge creation timestamp is known. Based on the validations, Verifier creates the Attestation Result.</t>
    </section>
    <section anchor="attestation-result-requirements">
      <name>Attestation Result Requirements</name>
      <t>Attestation Result <bcp14>MUST</bcp14> be signed by the Verifier with a cryptographic key.</t>
      <t>The structure of the Attestation Result is out of scope of this document. However, it is <bcp14>RECOMMENDED</bcp14> to include the elements defined by the <xref target="I-D.ietf-rats-ar4si"/>. Following information is <bcp14>REQUIRED</bcp14> for Attestation Result:</t>
      <ul spacing="normal">
        <li>
          <t>One or more Appraisal Assertions where each Appraisal Assertion corresponding to a distinct aspect of the device or Native Application. Each Appraisal Assertion <bcp14>MAY</bcp14> have its own status and associated claims. Those claims can be implemented as the Trustworthiness Claims defined in <xref target="I-D.ietf-rats-ar4si"/>.</t>
        </li>
        <li>
          <t>Identity of the Verifier issuing the Attestation Result. This identity can be implemented as the Verifier ID defined in <xref target="I-D.ietf-rats-ar4si"/>.</t>
        </li>
        <li>
          <t>Intended Authorization Server. This value <bcp14>SHOULD</bcp14> be the issuer URI used by the Authorization Server.</t>
        </li>
        <li>
          <t>A timestamp value indicating when the Attestation Result is created.</t>
        </li>
      </ul>
      <t>The encoding of the Attestation Result is beyond the scope of this document. However implementer <bcp14>MAY</bcp14> choose EAR Tokens as defined in EAT Attestation Results <xref target="I-D.ietf-rats-ear"/>. Verifier <bcp14>MUST</bcp14> use the Attestation Result format and encoding supported by the Authorization Server.</t>
    </section>
    <section anchor="authorization-server-processing">
      <name>Authorization Server Processing</name>
      <t>The Authorization Server <bcp14>MUST</bcp14> validate the Attestation Result's signature. Authorization Server <bcp14>MUST</bcp14> accept Attestation Result only from trusted Verifiers.</t>
      <t>Only successfully validated Attestation Result is used when evaluating an Authorization Policy. Authorization Server, depending on the Authorization Decisions, <bcp14>MUST</bcp14> decide which scopes should be issued in access token.</t>
      <t>Upon receiving the Attestation Result, Authorization Server <bcp14>MUST</bcp14> perform the following steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>Checks if the cryptographic signature of the Attestation Result is valid. The key establishment protocol for the cryptographic key between Verifier and Authorization Server is beyond the scope of this document.</t>
        </li>
        <li>
          <t>Checks the freshness of the Attestation Result using the creation timestamp.</t>
        </li>
        <li>
          <t>Checks if Verifier ID is present and is trusted by the system.</t>
        </li>
        <li>
          <t>Checks if the intended Authorization Server points to the server itself.</t>
        </li>
        <li>
          <t>Checks if Attestation Result contains all necessary Appraisal Assertions required by the Trust Assessments.</t>
        </li>
        <li>
          <t>For each scope available to the client, Authorization Server evaluates the Authorization Policy, which is the specification of the Trust Assessments. How Authorization Policy is defined and associated to the scope is beyond the scope of this document.</t>
        </li>
        <li>
          <t>Based on the Authorization Decision for each scope, Authorization Server adds or removes the particular scope from the access token. Authorization Server <bcp14>MAY</bcp14> issue a token containing a reduced set of scopes, or <bcp14>MAY</bcp14> reject the request entirely. If no scopes are allowed, Authorization Server <bcp14>SHOULD</bcp14> return the <tt>invalid_scope</tt> error as defined in <xref section="5.2" sectionFormat="of" target="RFC6749"/>. If token is issued with a reduced set of scopes, the Authorization Server <bcp14>SHOULD</bcp14> return the <tt>scope</tt> parameter in the token response.</t>
        </li>
      </ol>
      <t>When access token issued successfully, Authorization Server <bcp14>MUST</bcp14> bind the Verifier ID to that access token and refresh token if requested by Client.</t>
      <section anchor="refresh-tokens">
        <name>Refresh Tokens</name>
        <t>The Client <bcp14>MUST</bcp14> send an Attestation Result to the Authorization Server when using a refresh token grant according to the freshness window required by the Authorization Server. Because Attestation Results are snapshots of Native Application's runtime state at a single point in time, the Authorization Server <bcp14>MUST</bcp14> reject the request if Attestation Result is missing or stale.</t>
      </section>
    </section>
    <section anchor="ext">
      <name>Protocol Extensions</name>
      <t>This specification adds two parameters to the Token Endpoint request for <tt>authorization_code</tt> and <tt>refresh_token</tt> grant types:</t>
      <t><tt>attestation_result</tt></t>
      <ul empty="true">
        <li>
          <t><bcp14>REQUIRED</bcp14>. Contains the Attestation Result generated by the Verifier. The structure of the Attestation Result is beyond the scope of this document. However implementer <bcp14>MAY</bcp14> choose EAR Tokens as defined in EAT Attestation Results <xref target="I-D.ietf-rats-ear"/>.</t>
        </li>
      </ul>
      <t><tt>attestation_profile</tt></t>
      <ul empty="true">
        <li>
          <t><bcp14>OPTIONAL</bcp14>. References to the Authorization Policy which will evaluate the Attestation Result. Implementer may choose to mark this parameter as <bcp14>REQUIRED</bcp14> when Authorization Server supports definition of multiple Authorization Policies.</t>
        </li>
      </ul>
      <t>The following example uses "\" line wrapping per <xref target="RFC8792"/> to show a token request. In this example Attestation Result is encoded in JWT as defined in <xref target="I-D.ietf-rats-ear"/>.</t>
      <artwork><![CDATA[
POST /token HTTP/1.1
     Host: server.example.com
     Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
     Content-Type: application/x-www-form-urlencoded
     grant_type=authorization_code\
     &code=SplxlOBeZQQYbYS6WxSbIA \
     &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb \
     &attestation_profile=android \
     &attestation_result=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlYXRfcHJvZmlsZSI6InRhZzpnaXRodWIuY29tLDIwMjM6dmVyYWlzb24vZWFyIiwiaWF0IjoxNjY2NTI5MzAwLCJlYXIudmVyaWZpZXItaWQiOnsiZGV2ZWxvcGVyIjoiaHR0cHM6Ly92ZXJpZmllci1zZXJ2aWNlIiwiYnVpbGQiOiIwLjAuMSJ9LCJzdWJtb2RzIjp7InBsYXktaW50ZWdyaXR5Ijp7ImVhci5zdGF0dXMiOiJhZmZpcm1pbmciLCJlYXIudHJ1c3R3b3J0aGluZXNzLXZlY3RvciI6eyJyZXF1ZXN0X3BhY2thZ2VfbmFtZSI6Mn19fX0.vSXHlSZokqGPxORoMrKY5Y-0Ge2kVdDKTnyugWD2lkk
]]></artwork>
      <t>These parameters are primarily intended for the Token Endpoint, unless the front-channel pre-flight optimizations described in <xref target="pub"/> are utilized.</t>
    </section>
    <section anchor="pub">
      <name>Public Client Considerations</name>
      <t>In this section client is a Public client and is part of the Native Application.</t>
      <t>Authorization Server <bcp14>MAY</bcp14> precheck Attestation Result in early stages of the authorization flow in order to avoid unnecessary steps in case Attestation Result is invalid or doesn't meet requirements of target Trust Assesments. In this case, the parameters defined in <xref target="ext"/> can be used in the authorization request. However, the Attestation Result can contain some sensitive data that should not be transferred through the front-channel. The following approaches can be used:</t>
      <ul spacing="normal">
        <li>
          <t>Verifier can cryptographically encrypt the Attestation Result. Contents of the Attestation Result will remain hidden all the way through the Authorization Server. But this option can lead to long URLs, which can be problematic due to size limitations that can be enforced from any intermediary hop.</t>
        </li>
        <li>
          <t>Client can use Pushed Authorization Requests <xref target="RFC9126"/> to send the Attestation Token through the back-channel.</t>
        </li>
      </ul>
      <t>When Attestation Result is received in authorization request, Authorization Server <bcp14>MUST</bcp14> perform the following steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>Checks if the cryptographic signature of the Attestation Result is valid. The key establishment protocol for the cryptographic key between Verifier and Authorization Server is beyond the scope of this document.</t>
        </li>
        <li>
          <t>Checks the freshness of the Attestation Result using the creation timestamp.</t>
        </li>
        <li>
          <t>Checks if Verifier ID is present and is trusted by the system.</t>
        </li>
        <li>
          <t>Checks if the intended Authorization Server points to the server itself.</t>
        </li>
        <li>
          <t>Checks if Attestation Result contains all necessary Appraisal Assertions required by the Trust Assessments.</t>
        </li>
        <li>
          <t>Stores the Attestation Result for the Authorization Policy evaluation during the upcoming token request. Authorization Server <bcp14>SHOULD</bcp14> store the Attestation Result with an expiry time not longer than the combination of authorization code and request URI lifetimes.</t>
        </li>
      </ol>
      <t>If one of those steps fails, Authorization Server <bcp14>MUST</bcp14> respond with an error. The error <bcp14>SHOULD</bcp14> indicate <tt>access_denied</tt> as defined in <xref section="4.1.2.1" sectionFormat="of" target="RFC6749"/>.</t>
      <t>Authorization Server <bcp14>MUST</bcp14> respond with an error if it receives Attestation Result in both authorization request and token requests. The error <bcp14>SHOULD</bcp14> indicate <tt>invalid_request</tt> as defined in <xref section="5.2" sectionFormat="of" target="RFC6749"/></t>
      <section anchor="relationship-with-proof-of-possession">
        <name>Relationship with Proof of Possession</name>
        <t>Native Application Client can use Proof of Possession method for the token request in the subsequent calls. OAuth 2.0 Demonstrating Proof of Possession (DPoP) <xref target="RFC9449"/> is <bcp14>RECOMMENDED</bcp14> for sender-constraining access tokens. Proof of Possession is not a dependency but can be used as complimentary to the mechanism defined in this document.</t>
      </section>
    </section>
    <section anchor="bff">
      <name>Backend-For-Frontend Pattern</name>
      <t>The proposed mechanism in this document can also be used for Native Applications connecting to a proxy backend acting as a confidential client. The Backend-For-Frontend pattern for OAuth 2.0 was introduced in OAuth 2.0 for Browser-Based Applications <xref target="I-D.ietf-oauth-browser-based-apps"/>. While the Backend-for-Frontend (BFF) pattern was originally designed to solve browser-based security vulnerabilities, it can be adapted to Native Applications.</t>
      <t>By placing a backend layer between Native Application and Authorization Server, responsibility of sending Attestation Result will be shifted to the new layer. From this point onwards this backend layer will be called the Attestation Server.</t>
      <t>Attestation Server <bcp14>MAY</bcp14> embed the Verifier functionality, or use a remote Verifier for receiving the Attestation Result.</t>
      <section anchor="communication-security">
        <name>Communication Security</name>
        <t>This document does not enforce any particular protocol for the messaging between Attestation Server and a remote Verifier. However the implementer <bcp14>MUST</bcp14> use TLS for securing the underlying protocol.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.  The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.  Please note that the listing of any individual implementation here does not imply endorsement by the IETF.  Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features.  Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.  It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="mekarge-a3">
        <name>Mekarge A3</name>
        <t>The organization responsible for this implementation is Mekarge. <xref target="MekargeA3"/> is an Authorization Server designed to manage authentication, authorization, and access control for applications and services. By the time of writing this document, Mekarge A3 is available for beta access.</t>
        <t>Mekarge A3 implements the mechanism offered in this document with incorporating Backend-For-Frontend pattern described in <xref target="bff"/>. Mekarge A3 introduces the following concepts:</t>
        <ul spacing="normal">
          <li>
            <t>Permission as a unique combination of a Resource and one of its scopes. Each permission defines the specific actions and data access rights that can be granted to a client.</t>
          </li>
          <li>
            <t>An Attestation Profile defines a set of Appraisal criteria for evaluating device and Native Application trustworthiness. Attestation Profiles are associated with the permissions. During authorization, Mekarge A3 Authorization Server evaluates all the Appraisals defined for the Attestation Profile and filters the client's granted permissions that are associated with the particular Attestation Profile.</t>
          </li>
        </ul>
        <t>Latest API documentation can be accessed via <xref target="MekargeA3.API"/>. The developers can be contacted through <eref target="hello@mekarge.com">hello@mekarge.com</eref>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="replay-attacks">
        <name>Replay Attacks</name>
        <t>Authorization Server <bcp14>MUST</bcp14> implement measures to detect replay attacks. Authorization Server <bcp14>MUST</bcp14> check the freshness of the Attestation Result using its creation timestamp. Authorization Server <bcp14>MAY</bcp14> implement additional measures to minimize the clock skew between the source (Verifier) and itself.</t>
        <t>When receiving Attestation Result from public clients on token request, Authorization Server <bcp14>SHOULD</bcp14> use a short time window for checking freshness of the Attestation Result.</t>
      </section>
      <section anchor="challenge-freshness">
        <name>Challenge Freshness</name>
        <t>Verifier <bcp14>SHOULD</bcp14> offer a mechanism to provide a fresh Challenge value with sufficient entropy to Native Application. Verifier <bcp14>MUST</bcp14> check both freshness and the value of the Challenge in the Evidence before generating the Attestation Result if a Challenge was provided. In order to check the freshness, Verifier can store the timestamp when Challenge value is issued. Verifier <bcp14>SHOULD</bcp14> discard the Challenge value on its first occurrence in an Evidence.</t>
      </section>
      <section anchor="downgrade-attacks">
        <name>Downgrade Attacks</name>
        <t>Authorization Server <bcp14>MUST</bcp14> reject the token request if <tt>attestation_result</tt> parameter is not provided and system has an Authorization Policy defined for at least one scope requested by client.</t>
        <t>Authorization Server <bcp14>MUST</bcp14> reject the token request if there are multiple Authorization Policy defined for at least one scope requested by client and <tt>attestation_profile</tt> parameter is not provided.</t>
      </section>
      <section anchor="verifier-compromise">
        <name>Verifier Compromise</name>
        <t>As aforementioned, Authorization Server <bcp14>MUST</bcp14> check if Verifier ID is present and is trusted by the system when processing the Attestation Result. In case Verifier is known to be compromised, Authorization Server <bcp14>MUST</bcp14> reject all requests with Attestation Token that are created by the compromised Verifier. Authorization Server also <bcp14>MUST</bcp14> reject any token request using refresh token grant if the original token request issuing the refresh token has used the Attestation Result created by the compromised Verifier during Authorization Policy evaluation.</t>
      </section>
      <section anchor="device-key-extraction">
        <name>Device Key Extraction</name>
        <t>When client signs the Challenge request using an asymmetric key pair as described in <xref target="egen"/>, the security of this model relies on the device's ability to prevent key extraction. It is therefore Verifier's responsibility to assess the risk accordingly if the device executing Native Application does not support a secure enclave or a similar hardware-based storage.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <section anchor="evidence-exposure">
        <name>Evidence Exposure</name>
        <t>Depending on the Attesting Environment implementation, Evidence might contain sensitive data without cryptographic encryption. In some cases, such Evidence might include Personally Identifying Information (PII) as well. Clients are therefore responsible for securely sending Evidence to the Verifier. Client <bcp14>MUST</bcp14> use TLS based protocol and ensure Verifier server certificate is valid and trustable.</t>
        <t>Native Application <bcp14>MUST</bcp14> avoid transmitting unnecessary device metadata to Attesting Environment. Similarly, Attesting Environment <bcp14>MUST</bcp14> only include claims required for the Verifier.</t>
      </section>
      <section anchor="attestation-result-exposure">
        <name>Attestation Result Exposure</name>
        <t>Attestation Result might contain information about the internal state of the device, Native Application software, and the Verifier software. Depending on the nature of the Native Application the Attestation Result can include Personally Identifying Information (PII) as well. Clients are therefore responsible for taking necessary measures for ensuring Attestation Result is safely stored if caching is implemented and it is sent to Authorization Server through back-channel. For public clients, if Native Application is intended to send Attestation Result before access token request as described in <xref target="pub"/>, it is <bcp14>RECOMMENDED</bcp14> to use Pushed Authorization Requests <xref target="RFC9126"/>.</t>
        <t>Authorization Server is responsible for how Attestation Result and associated decisions are logged for security and privacy audits. Authorization Server <bcp14>SHOULD NOT</bcp14> log Attestation Result if there is a risk of exposure of log data to unintended parties.</t>
        <t>Attestation Results can contain stable identifiers. By accessing logs including Attestation Results, users or devices can be correlated using those stable identifiers. It is therefore Authorization Server's responsibility to handle such identifiers, such as hashing, anonymizing, or omitting during logging.</t>
      </section>
      <section anchor="secondary-use">
        <name>Secondary Use</name>
        <t>Attestation Results collected for authorization <bcp14>SHOULD</bcp14> not automatically be reused for analytics, profiling, or marketing by the Authorization Server.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-parameters-registration">
        <name>OAuth Parameters Registration</name>
        <t>This specification requests registration of the following values in the IANA "OAuth Parameters" registry of <xref target="IANA.OAuth.Parameters"/> established by <xref target="RFC6749"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: <tt>attestation_result</tt></t>
          </li>
          <li>
            <t>Parameter Usage Location: authorization request, token request</t>
          </li>
          <li>
            <t>Reference: Section 8 of this document</t>
          </li>
        </ul>
        <ul empty="true">
          <li>

</li>
        </ul>
        <ul spacing="normal">
          <li>
            <t>Name: <tt>attestation_profile</tt></t>
          </li>
          <li>
            <t>Parameter Usage Location: authorization request, token request</t>
          </li>
          <li>
            <t>Reference: Section 8 of this document</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC9126">
          <front>
            <title>OAuth 2.0 Pushed Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="D. Tonge" initials="D." surname="Tonge"/>
            <author fullname="F. Skokan" initials="F." surname="Skokan"/>
            <date month="September" year="2021"/>
            <abstract>
              <t>This document defines the pushed authorization request (PAR) endpoint, which allows clients to push the payload of an OAuth 2.0 authorization request to the authorization server via a direct request and provides them with a request URI that is used as reference to the data in a subsequent call to the authorization endpoint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9126"/>
          <seriesInfo name="DOI" value="10.17487/RFC9126"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8252">
          <front>
            <title>OAuth 2.0 for Native Apps</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>OAuth 2.0 authorization requests from native apps should only be made through external user-agents, primarily the user's browser. This specification details the security and usability reasons why this is the case and how native apps and authorization servers can implement this best practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="212"/>
          <seriesInfo name="RFC" value="8252"/>
          <seriesInfo name="DOI" value="10.17487/RFC8252"/>
        </reference>
        <reference anchor="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="ZTA" target="https://doi.org/10.6028/NIST.SP.800-207">
          <front>
            <title>Zero Trust Architecture</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rats-ear">
          <front>
            <title>EAT Attestation Results</title>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco</organization>
            </author>
            <author fullname="Sergei Trofimov" initials="S." surname="Trofimov">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="26" month="May" year="2026"/>
            <abstract>
              <t>   This document defines the EAT Attestation Result (EAR) message
   format.

   EAR is used by a verifier to encode the result of the appraisal over
   an attester's evidence.  It embeds an AR4SI's "trustworthiness
   vector" to present a normalized view of the evaluation results, thus
   easing the task of defining and computing authorization policies by
   relying parties.  Alongside the trustworthiness vector, EAR provides
   contextual information bound to the appraisal process.  This allows a
   relying party (or an auditor) to reconstruct the frame of reference
   in which the trustworthiness vector was originally computed.  EAR
   supports simple devices with one attester as well as composite
   devices that are made of multiple attesters, allowing the state of
   each attester to be separately examined.  EAR can also accommodate
   registered and unregistered extensions.  It can be serialized and
   protected using either CWT or JWT.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ear-04"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-browser-based-apps">
          <front>
            <title>OAuth 2.0 for Browser-Based Applications</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Philippe De Ryck" initials="P." surname="De Ryck">
              <organization>Pragmatic Web Security</organization>
            </author>
            <author fullname="David Waite" initials="D." surname="Waite">
              <organization>Ping Identity</organization>
            </author>
            <date day="3" month="December" year="2025"/>
            <abstract>
              <t>   This specification details the threats, attack consequences, security
   considerations and best practices that must be taken into account
   when developing browser-based applications that use OAuth 2.0.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Web Authorization
   Protocol Working Group mailing list (oauth@ietf.org), which is
   archived at https://mailarchive.ietf.org/arch/browse/oauth/.

   Source for this draft and an issue tracker can be found at
   https://github.com/oauth-wg/oauth-browser-based-apps.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-browser-based-apps-26"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-attestation-based-client-auth">
          <front>
            <title>OAuth 2.0 Attestation-Based Client Authentication</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Paul Bastian" initials="P." surname="Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <author fullname="Christian Bormann" initials="C." surname="Bormann">
              <organization>SPRIND</organization>
            </author>
            <date day="25" month="May" year="2026"/>
            <abstract>
              <t>   This specification defines an extension to the OAuth 2.0 protocol
   [RFC6749] that enables a client instance to include a key-bound
   attestation when interacting with an Authorization Server or Resource
   Server.  This mechanism allows a client instance to prove its
   authenticity verified by a client attester without revealing its
   target audience to that attester.  It may also serve as a mechanism
   for client authentication as per OAuth 2.0.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-attestation-based-client-auth-09"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="18" month="May" year="2026"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

   This document also defines two serialisations of the proposed
   information model, utilising CBOR and JSON.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-10"/>
        </reference>
        <reference anchor="IANA.OAuth.Parameters" target="https://www.iana.org/assignments/oauth-parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MekargeA3" target="https://a3.mekarge.com/site">
          <front>
            <title>Mekarge A3</title>
            <author initials="" surname="Mekarge">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="MekargeA3.API" target="https://a3.mekarge.com/site/docs/api/authorization/">
          <front>
            <title>Mekarge A3 Authorization API</title>
            <author initials="" surname="Mekarge">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 458?>



  </back>
  <!-- ##markdown-source:
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
sBaTmMC1FLXvMShmXYjdwLsQhB/07ntp1oxwcSVUavXQ2nPVQYU2W1kHDolN
1G4UQOp2ZkAYMGTBnSnSluO2xLVFqA3bfwItfdNSIcOnvE69oHE6UCESsPHz
goIJVwYhC9kEzkJocILuHGZiHaD/cIaR2XwO0MDGVjFmy8taSeQM4lbys1XR
UUUoZMqhtCy3fAoT+qhetDPl3Ih3z1J8ozJiC7/QGG8iWRRU0tHULGyu2b3B
psk246JQAoBXhLoLc0ejMXesqkvAhWAzMLnSB2uq2CRwDnwB+yXPRyOFy8Di
i5tl7NfFDn22QWTo15ZTmj1ZuxzrNFO5cCYfUHYV2RxsfpKVDBbQu20nTDir
aGmZIq6XmaFoQUMpLos5FTV3BcGSwJFss5SwavhQxgLVmZAuhOSmMzED8VgS
017U3L+iLgvIokkxp9wfMGixSEEy96QthftLCIMQFTgFYbaKtdOK+0oAIWPm
pSTdyXZXi/br2pf3WPbywXgCm/yMeADYAH7djUEl7WW0b7NELDjIWt40UtB/
wcZgb4hi3phN+oU26Y3ZJewnh+L9jZei/gsnPb2hNDtjolG/BhYWHYKxDnm3
c/iiz7BSfzcKdQsloJuMVSoJJzY9e4BnC/Nl47o2OChmWGhRLqWVcZ0m2NBb
FZWO86pg+KkoLhkXNTcSnhFNJzJIvq6Ni5fAix1GbHeJcDXVQuq3vBEIHOrE
Olr5619XIspJvy5MowBQIDnZA5u2YaeFnKJHTuIYMq0Ld+yAYVIg64S37snZ
6YJACG8autWPnsNpvcNzYjbJnY0BN5YD0sHGgawlDczsrtFeEw3bKMwxmffd
+a54dHwitg7WD9/NsrO9g+mPU/i9+eSMX9ulRNuyf0qtGb3c5Ts3/evra2yn
Nu1XRWrWwy/R6fsFT993iwf2r/zMf+Lv705m6U36/KE8//HH16PXJ/fPbk5G
w53IPoNFZFge/ktVqO+oXdYftnb+sHkA/2Nl6w+b+2al8AvWijdG7vUAjX8H
3KLIVRJ8hlnDd3L+ZDJ6FKvn6snwxbvhxjM11MPs+F68O7w/vJy9ern75MEA
Hkpfvzoex4+fXJ1PU31+Ajez48k5oFG8Os6Ts2H1evNB+XRveH349vB+Mn05
f32Wvhtt3r06PzuYD9W1EmcH68O3+c2zt683n50O7x2+27l+uovjDit8Xpyd
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
oQaBAAA=

-->

</rfc>
