| rfc9729v2.md | rfc9729.md | |||
|---|---|---|---|---|
| --- | --- | |||
| title: The Concealed HTTP Authentication Scheme | title: The Concealed HTTP Authentication Scheme | |||
| docname: draft-ietf-httpbis-unprompted-auth-latest | docname: draft-ietf-httpbis-unprompted-auth-latest | |||
| submissiontype: IETF | submissiontype: IETF | |||
| number: 9729 | number: 9729 | |||
| date: 2025-01 | date: 2025-02 | |||
| consensus: true | consensus: true | |||
| v: 3 | v: 3 | |||
| category: std | category: std | |||
| wg: HTTPBIS | wg: HTTPBIS | |||
| area: "Web and Internet Transport" | area: "Web and Internet Transport" | |||
| keyword: | keyword: | |||
| - secure | - secure | |||
| - tunnels | - tunnels | |||
| - masque | - masque | |||
| - http-ng | - http-ng | |||
| skipping to change at line 221 ¶ | skipping to change at line 221 ¶ | |||
| Port: | Port: | |||
| : The port for this request, encoded in network byte order. Note that the port | : The port for this request, encoded in network byte order. Note that the port | |||
| is either included in the URI or is the default port for the scheme in use; | is either included in the URI or is the default port for the scheme in use; | |||
| see {{Section 3.2.3 of URI}}. | see {{Section 3.2.3 of URI}}. | |||
| Realm: | Realm: | |||
| : The realm of authentication that is sent in the realm authentication | : The realm of authentication that is sent in the realm authentication | |||
| parameter ({{Section 11.5 of HTTP}}). If the realm authentication parameter is | parameter (see {{Section 11.5 of HTTP}}). If the realm authentication parameter is | |||
| not present, this SHALL be empty. This document does not define a means for the | not present, this SHALL be empty. This document does not define a means for the | |||
| origin to communicate a realm to the client. If a client is not configured to | origin to communicate a realm to the client. If a client is not configured to | |||
| use a specific realm, it SHALL use an empty realm and SHALL NOT send the realm | use a specific realm, it SHALL use an empty realm and SHALL NOT send the realm | |||
| authentication parameter. | authentication parameter. | |||
| The Signature Algorithm and Port fields are encoded as unsigned 16-bit integers | The Signature Algorithm and Port fields are encoded as unsigned 16-bit integers | |||
| in network byte order. The Key ID, Public Key, Scheme, Host, and Realm fields | in network byte order. The Key ID, Public Key, Scheme, Host, and Realm fields | |||
| are length-prefixed strings; they are preceded by a Length field that | are length-prefixed strings; they are preceded by a Length field that | |||
| represents their length in bytes. These length fields are encoded using the | represents their length in bytes. These length fields are encoded using the | |||
| variable-length integer encoding from {{Section 16 of QUIC}} and MUST be | variable-length integer encoding from {{Section 16 of QUIC}} and MUST be | |||
| skipping to change at line 344 ¶ | skipping to change at line 344 ¶ | |||
| ~~~ abnf | ~~~ abnf | |||
| concealed-byte-sequence-param-value = *( ALPHA / DIGIT / "-" / "_" ) | concealed-byte-sequence-param-value = *( ALPHA / DIGIT / "-" / "_" ) | |||
| concealed-integer-param-value = %x31-39 1*4( DIGIT ) / "0" | concealed-integer-param-value = %x31-39 1*4( DIGIT ) / "0" | |||
| ~~~ | ~~~ | |||
| {: #fig-param title="Authentication Parameter Value ABNF"} | {: #fig-param title="Authentication Parameter Value ABNF"} | |||
| ## The k Parameter {#parameter-k} | ## The k Parameter {#parameter-k} | |||
| The REQUIRED "k" (key ID) Parameter is a byte sequence that identifies which | The REQUIRED "k" (key ID) Parameter is a byte sequence that identifies which | |||
| key the client wishes to use to authenticate. This is used by the backend to | key the client wishes to use to authenticate. This is used by the backend to | |||
| point to an entry in a server-side database of known keys; see {{backend}}. | point to an entry in a server-side database of known keys (see {{backend}}). | |||
| ## The a Parameter {#parameter-a} | ## The a Parameter {#parameter-a} | |||
| The REQUIRED "a" (public key) Parameter is a byte sequence that specifies the | The REQUIRED "a" (public key) Parameter is a byte sequence that specifies the | |||
| public key used by the server to validate the signature provided by the client. | public key used by the server to validate the signature provided by the client. | |||
| This avoids key confusion issues (see {{SEEMS-LEGIT}}). The encoding of the | This avoids key confusion issues (see {{SEEMS-LEGIT}}). The encoding of the | |||
| public key is described in {{public-key-encoding}}. | public key is described in {{public-key-encoding}}. | |||
| ## The p Parameter {#parameter-p} | ## The p Parameter {#parameter-p} | |||
| The REQUIRED "p" (proof) Parameter is a byte sequence that specifies the proof | The REQUIRED "p" (proof) Parameter is a byte sequence that specifies the proof | |||
| that the client provides to attest to possessing the credential that matches | that the client provides to attest to possessing the credential that matches | |||
| its key ID. | its key ID. | |||
| ## The s Parameter {#parameter-s} | ## The s Parameter {#parameter-s} | |||
| The REQUIRED "s" (signature) Parameter is an integer that specifies the | The REQUIRED "s" (signature scheme) Parameter is an integer that specifies the | |||
| signature scheme used to compute the proof transmitted in the `p` Parameter. | signature scheme used to compute the proof transmitted in the `p` Parameter. | |||
| Its value is an integer between 0 and 65535 inclusive from the IANA "TLS | Its value is an integer between 0 and 65535 inclusive from the IANA "TLS | |||
| SignatureScheme" registry maintained at | SignatureScheme" registry maintained at | |||
| <[](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-sig naturescheme)>. | <[](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-sig naturescheme)>. | |||
| ## The v Parameter {#parameter-v} | ## The v Parameter {#parameter-v} | |||
| The REQUIRED "v" (verification) Parameter is a byte sequence that specifies the | The REQUIRED "v" (verification) Parameter is a byte sequence that specifies the | |||
| verification that the client provides to attest to possessing the key exporter | verification that the client provides to attest to possessing the key exporter | |||
| output (see {{output}} for details). This avoids issues with signature schemes | output (see {{output}} for details). This avoids issues with signature schemes | |||
| End of changes. 4 change blocks. | ||||
| 4 lines changed or deleted | 4 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||