2. <del> This document only defines the Signature and HMAC authentication schemes for uses of HTTP with TLS TLS.  This includes any use of HTTP over TLS as typically used for HTTP/2 H2, or HTTP/3 H3 where the transport protocol uses TLS as its authentication and key exchange mechanism QUIC-TLS. </del> <ins> This document defines the "Signature" HTTP authentication scheme.  It uses asymmetric cryptography.  User agents possess a key ID and a public/private key pair, and origin servers maintain a mapping of authorized key IDs to their associated public keys. </ins> <del> The user agent leverages a TLS keying material exporter KEY-EXPORT to generate a nonce which can be signed using the chosen key.  The keying material exporter uses a label that starts with the characters "EXPORTER-HTTP-Unprompted-Authentication-" (see schemes for the labels and contexts used by each scheme).  The TLS keying material exporter is used to generate a 32-byte key which is then used as a nonce. </del> <ins> This authentication scheme is only defined for uses of HTTP with TLS TLS.  This includes any use of HTTP over TLS as typically used for HTTP/2 H2, or HTTP/3 H3 where the transport protocol uses TLS as its authentication and key exchange mechanism QUIC-TLS. </ins> Because the TLS keying material exporter is only secure for authentication when it is uniquely bound to the TLS session RFC7627, <del> the Signature and HMAC authentication schemes require either one of the following properties: </del> <ins> the Signature authentication scheme requires either one of the following properties: </ins> The TLS version in use is greater or equal to 1.3 TLS. <del> The TLS version in use is greater or equal to 1.2 and the Extended Master Secret extension RFC7627 has been negotiated. </del> <ins> The TLS version in use is 1.2 and the Extended Master Secret extension RFC7627 has been negotiated. </ins> <del> Clients MUST NOT use the Signature and HMAC authentication schemes on </del> <ins> Clients MUST NOT use the Signature authentication scheme on </ins> connections that do not meet one of the two properties above.  If a <del> server receives a request that uses these authentication schemes on a </del> <ins> server receives a request that uses this authentication scheme on a </ins> connection that meets neither of the above properties, the server MUST treat the request as malformed. 3. <del> The "Unprompted-Authentication" header field allows a user agent to authenticate with an origin server.  The authentication is scoped to the HTTP request associated with this header field.  The value of the Unprompted-Authentication header field is a credentials object, as defined in HTTP.  Credentials contain an authentication scheme followed by optional authentication parameters. </del> <ins> The user agent leverages a TLS keying material exporter KEY-EXPORT with the label "EXPORTER-HTTP-Signature-Authentication" to generate a 32-byte symmetric key.  That symmetric key is then used as nonce which can be signed using the client's chosen asymmetric private key. The resulting signature is then transmitted to the server using the Authorization field. </ins> 4. <del> This specification defines the following authentication parameters, they can be used by the authentication schemes defined in schemes. </del> <ins> This specification defines the following authentication parameters. These parameters use structured fields (STRUCTURED-FIELDS) in their definition, even though the Authorization field itself does not use structured fields. </ins> 4.1. <del> The OPTIONAL "k" (key ID) parameter is a byte sequence that </del> <ins> The REQUIRED "k" (key ID) parameter is a byte sequence that </ins> identifies which key the user agent wishes to use to authenticate. This can for example be used to point to an entry into a server-side database of known keys. 4.2. <del> The OPTIONAL "p" (proof) parameter is a byte sequence that specifies </del> <ins> The REQUIRED "p" (proof) parameter is a byte sequence that specifies </ins> the proof that the user agent provides to attest to possessing the credential that matches its key ID. 4.3. <del> The OPTIONAL "s" (signature) parameter is an integer that specifies the signature algorithm used to compute the proof transmitted in the "p" directive.  Its value is an integer between 0 and 255 inclusive from the IANA "TLS SignatureAlgorithm" registry maintained at <<https://www.iana.org/assignments/tls-parameters#tls-parameters- 16>>. 4.4. The OPTIONAL "h" (hash) parameter is an integer that specifies the hash algorithm used to compute the proof transmitted in the "p" directive.  Its value is an integer between 0 and 255 inclusive from the IANA "TLS HashAlgorithm" registry maintained at <<https://www.iana.org/assignments/tls-parameters#tls-parameters- 18>>. 5. This document defines the "Signature" and "HMAC" HTTP authentication schemes. 5.1. The "Signature" HTTP Authentication Scheme uses asymmetric cryptography.  User agents possess a key ID and a public/private key pair, and origin servers maintain a mapping of authorized key IDs to their associated public keys.  When using this scheme, the "k", "p", and "s" parameters are REQUIRED.  The TLS keying material export label for this scheme is "EXPORTER-HTTP-Unprompted-Authentication- Signature" and the associated context is empty.  The nonce is then signed using the selected asymmetric signature algorithm and transmitted as the proof directive. </del> <ins> The REQUIRED "s" (signature) parameter is an integer that specifies the signature scheme used to compute the proof transmitted in the "p" directive.  Its value is an integer between 0 and 65535 inclusive from the IANA "TLS SignatureScheme" registry maintained at <<https://www.iana.org/assignments/tls-parameters/tls- parameters.xhtml#tls-signaturescheme>>. </ins> For example, the key ID "basement" authenticating using Ed25519 ED25519 could produce the following header field (lines are folded to fit): <del> 5.2. The "HMAC" HTTP Authentication Scheme uses symmetric cryptography. User agents possess a key ID and a secret key, and origin servers maintain a mapping of authorized key IDs to their associated secret key.  When using this scheme, the "k", "p", and "h" parameters are REQUIRED.  The TLS keying material export label for this scheme is "EXPORTER-HTTP-Unprompted-Authentication-HMAC" and the associated context is empty.  The nonce is then HMACed using the selected HMAC algorithm and transmitted as the proof directive. For example, the key ID "basement" authenticating using HMAC-SHA-512 SHA could produce the following header field (lines are folded to fit): 5.3. The HTTP Authentication Scheme registry maintained by IANA at <<https://www.iana.org/assignments/http-authschemes/http- authschemes.xhtml>> contains entries not defined in this document. Those entries MAY be used with Unprompted Authentication. 6. </del> <ins> 5. </ins> Servers that wish to introduce resources whose existence cannot be probed need to ensure that they do not reveal any information about