| rfc8908xml2.original.xml | rfc8908.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
| <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 --> | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc sortrefs="yes"?> | <rfc consensus="true" xmlns:xi="http://www.w3.org/2001/XInclude" | |||
| <?rfc symrefs="yes"?> | ipr="trust200902" docName="draft-ietf-capport-api-08" number="8908" categor | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | y="std" | |||
| -ietf-capport-api-08" category="std" obsoletes="" updates="" submissionType="IET | obsoletes="" updates="" submissionType="IETF" xml:lang="en" | |||
| F" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3"> | tocInclude="true" sortRefs="true" symRefs="true" version="3"> | |||
| <!-- xml2rfc v2v3 conversion 2.39.0 --> | <!-- xml2rfc v2v3 conversion 2.39.0 --> | |||
| <front> | <front> | |||
| <title abbrev="Captive Portal API">Captive Portal API</title> | <title abbrev="Captive Portal API">Captive Portal API</title> | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-capport-api-08"/> | <seriesInfo name="RFC" value="8908"/> | |||
| <author initials="T." surname="Pauly" fullname="Tommy Pauly" role="editor"> | <author initials="T." surname="Pauly" fullname="Tommy Pauly" role="editor"> | |||
| <organization>Apple Inc.</organization> | <organization>Apple Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>One Apple Park Way</street> | <street>One Apple Park Way</street> | |||
| <city>Cupertino, California 95014</city> | <city>Cupertino</city> | |||
| <region>CA</region> | ||||
| <code>95014</code> | ||||
| <country>United States of America</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>tpauly@apple.com</email> | <email>tpauly@apple.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="D." surname="Thakore" fullname="Darshak Thakore" role="edi tor"> | <author initials="D." surname="Thakore" fullname="Darshak Thakore" role="edi tor"> | |||
| <organization>CableLabs</organization> | <organization>CableLabs</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>858 Coal Creek Circle</street> | <street>858 Coal Creek Circle</street> | |||
| <city>Louisville, CO 80027</city> | <city>Louisville</city> | |||
| <region>CO</region> | ||||
| <code>80027</code> | ||||
| <country>United States of America</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>d.thakore@cablelabs.com</email> | <email>d.thakore@cablelabs.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2020" month="June" day="18"/> | <date month="September" year="2020" /> | |||
| <workgroup>Captive Portal Interaction</workgroup> | <workgroup>Captive Portal Interaction</workgroup> | |||
| <keyword>Internet-Draft</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This document describes an HTTP API that allows clients to interact wit | <t>This document describes an HTTP API that allows clients to interact | |||
| h a Captive Portal system. With this API, clients can discover how to get out of | with a Captive Portal system. With this API, clients can discover how to | |||
| captivity and fetch state about their Captive Portal sessions.</t> | get out of captivity and fetch state about their Captive Portal | |||
| sessions.</t> | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="introduction" numbered="true" toc="default"> | <section anchor="introduction" numbered="true" toc="default"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>This document describes a HyperText Transfer Protocol (HTTP) Applicatio | <t>This document describes a HyperText Transfer Protocol (HTTP) | |||
| n Program Interface (API) that allows clients to interact with a Captive Portal | Application Programming Interface (API) that allows clients to interact wi | |||
| system. The API defined in this document has been designed to meet the requireme | th | |||
| nts in the Captive Portal Architecture <xref target="I-D.ietf-capport-architectu | a Captive Portal system. The API defined in this document has been | |||
| re" format="default"/>. Specifically, the API provides:</t> | designed to meet the requirements in the Captive Portal Architecture | |||
| <xref target="I-D.ietf-capport-architecture" | ||||
| format="default"/>. Specifically, the API provides:</t> | ||||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>The state of captivity (whether or not the client has access to the | <li>The state of captivity (whether or not the client has access to | |||
| Internet)</li> | the Internet).</li> | |||
| <li>A URI of a user-facing web portal that can be used to get out of cap | <li>A URI of a user-facing web portal that can be used to get out of | |||
| tivity</li> | captivity.</li> | |||
| <li>Authenticated and encrypted connections, using TLS for connections t | <li>Authenticated and encrypted connections, using TLS for connections | |||
| o both the API and user-facing web portal</li> | to both the API and user-facing web portal.</li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| <section anchor="terms" numbered="true" toc="default"> | <section anchor="terms" numbered="true" toc="default"> | |||
| <name>Terminology</name> | <name>Terminology</name> | |||
| <t>This document leverages the terminology and components described in <xr | <t>This document leverages the terminology and components described in | |||
| ef target="I-D.ietf-capport-architecture" format="default"/> and additionally de | <xref target="I-D.ietf-capport-architecture" format="default"/> and | |||
| fines the following terms:</t> | additionally defines the following terms:</t> | |||
| <ul spacing="normal"> | <dl newline="true" spacing="normal"> | |||
| <li>Captive Portal Client: The client that interacts with the Captive Po | <dt>Captive Portal Client</dt> | |||
| rtal API is typically some application running on the User Equipment that is con | <dd>The client that interacts with the Captive | |||
| nected to the Captive Network. This is also referred to as the "client" in this | Portal API is typically some application running on the user equipment | |||
| document.</li> | that is connected to the captive network. This is also referred to as | |||
| <li>Captive Portal API Server: The server exposing the APIs defined in t | the "client" in this document.</dd> | |||
| his document to the client. This is also referred to as the "API server" in this | <dt>Captive Portal API Server</dt> | |||
| document.</li> | <dd>The server exposing the APIs defined in | |||
| </ul> | this document to the client. This is also referred to as the "API | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | server" in this document.</dd> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | </dl> | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14 | <t> | |||
| <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| "/> when, and only when, | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| they appear in all capitals, as shown here.</t> | 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> | ||||
| </section> | </section> | |||
| <section anchor="workflow" numbered="true" toc="default"> | <section anchor="workflow" numbered="true" toc="default"> | |||
| <name>Workflow</name> | <name>Workflow</name> | |||
| <t>The Captive Portal Architecture defines several categories of interacti | <t>The Captive Portal Architecture defines several categories of | |||
| on between clients and Captive Portal systems:</t> | interaction between clients and Captive Portal systems:</t> | |||
| <ol spacing="normal" type="1"> | <ol spacing="normal"> | |||
| <li>Provisioning, in which a client discovers that a network has a capti | <li>Provisioning, in which a client discovers that a network has a | |||
| ve portal, and learns the URI of the API server.</li> | captive portal and learns the URI of the API server.</li> | |||
| <li>API Server interaction, in which a client queries the state of capti | <li>API Server interaction, in which a client queries the state of | |||
| vity and retrieves the necessary information to get out of captivity.</li> | captivity and retrieves the necessary information to get out of | |||
| <li>Enforcement, in which the enforcement device in the network blocks d | captivity</li> | |||
| isallowed traffic.</li> | <li>Enforcement, in which the enforcement device in the network blocks | |||
| disallowed traffic.</li> | ||||
| </ol> | </ol> | |||
| <t>This document defines the mechanisms used in the second category. It is | <t>This document defines the mechanisms used in the second category. It | |||
| assumed that the location of the Captive Portal API server has been discovered | is assumed that the location of the Captive Portal API server has been | |||
| by the client as part of Provisioning. A set of mechanisms for discovering the A | discovered by the client as part of provisioning. A set of mechanisms | |||
| PI Server endpoint is defined in <xref target="I-D.ietf-capport-rfc7710bis" form | for discovering the API server endpoint is defined in <xref | |||
| at="default"/>.</t> | target="RFC8910" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="api-details" numbered="true" toc="default"> | <section anchor="api-details" numbered="true" toc="default"> | |||
| <name>API Connection Details</name> | <name>API Connection Details</name> | |||
| <t>The API server endpoint MUST be accessed over HTTP using an https URI < | <t>The API server endpoint <bcp14>MUST</bcp14> be accessed over HTTP | |||
| xref target="RFC2818" format="default"/>, and SHOULD use the default https port. | using an https URI <xref target="RFC2818" format="default"/> and | |||
| For example, if the Captive Portal API server is hosted at "example.org", the U | <bcp14>SHOULD</bcp14> use the default https port. For example, if the | |||
| RI of the API could be "https://example.org/captive-portal/api"</t> | Captive Portal API server is hosted at "example.org", the URI of the API | |||
| <t>The client SHOULD NOT assume that the URI of the API server for a given | could be "https://example.org/captive-portal/api".</t> | |||
| network will stay the same, and SHOULD rely on the discovery or provisioning pr | <t>The client <bcp14>SHOULD NOT</bcp14> assume that the URI of the API | |||
| ocess each time it joins the network.</t> | server for a given network will stay the same and <bcp14>SHOULD</bcp14> | |||
| <t>As described in Section 3 of <xref target="I-D.ietf-capport-architectur | rely on the discovery or provisioning process each time it joins the | |||
| e" format="default"/>, the identity of the client needs to be visible to the Cap | network.</t> | |||
| tive Portal API server in order for the server to correctly reply with the clien | <t>As described in <xref target="I-D.ietf-capport-architecture" | |||
| t's portal state. If the identifier used by the Captive Portal system is the cli | sectionFormat="of" section="3"/>, the identity | |||
| ent's set of IP addresses, the system needs to ensure that the same IP addresses | of the client needs to be visible to the Captive Portal API server in | |||
| are visible to both the API server and the enforcement device.</t> | order for the server to correctly reply with the client's portal | |||
| <t>If the API server needs information about the client identity that is n | state. If the identifier used by the Captive Portal system is the | |||
| ot otherwise visible to it, the URI provided to the client during provisioning S | client's set of IP addresses, the system needs to ensure that the same | |||
| HOULD be distinct per client. Thus, depending on how the Captive Portal system i | IP addresses are visible to both the API server and the enforcement | |||
| s configured, the URI will be unique for each client host and between sessions f | device.</t> | |||
| or the same client host.</t> | <t>If the API server needs information about the client identity that is | |||
| <t>For example, a Captive Portal system that uses per-client session URIs | not otherwise visible to it, the URI provided to the client during | |||
| could use "https://example.org/captive-portal/api/X54PD39JV" as its API URI.</t> | provisioning <bcp14>SHOULD</bcp14> be distinct per client. Thus, | |||
| depending on how the Captive Portal system is configured, the URI will | ||||
| be unique for each client host and between sessions for the same client | ||||
| host.</t> | ||||
| <t>For example, a Captive Portal system that uses per-client session | ||||
| URIs could use "https://example.org/captive-portal/api/X54PD39JV" as its | ||||
| API URI.</t> | ||||
| <section anchor="server-auth" numbered="true" toc="default"> | <section anchor="server-auth" numbered="true" toc="default"> | |||
| <name>Server Authentication</name> | <name>Server Authentication</name> | |||
| <t>The purpose of accessing the Captive Portal API over an HTTPS connect | <t>The purpose of accessing the Captive Portal API over an HTTPS | |||
| ion is twofold: first, the encrypted connection protects the integrity and confi | connection is twofold: first, the encrypted connection protects the | |||
| dentiality of the API exchange from other parties on the local network; and seco | integrity and confidentiality of the API exchange from other parties | |||
| nd, it provides the client of the API an opportunity to authenticate the server | on the local network; second, it provides the client of the API an | |||
| that is hosting the API. This authentication allows the client to ensure that th | opportunity to authenticate the server that is hosting the API. This | |||
| e entity providing the Captive Portal API has a valid certificate for the hostna | authentication allows the client to ensure that the entity providing | |||
| me provisioned by the network using the mechanisms defined in <xref target="I-D. | the Captive Portal API has a valid certificate for the hostname | |||
| ietf-capport-rfc7710bis" format="default"/>, by validating that a DNS-ID <xref t | provisioned by the network using the mechanisms defined in <xref | |||
| arget="RFC6125" format="default"/> on the certificate is equal to the provisione | target="RFC8910" format="default"/>, by validating | |||
| d hostname.</t> | that a DNS-ID <xref target="RFC6125" format="default"/> on the | |||
| <t>Clients performing revocation checking will need some means of access | certificate is equal to the provisioned hostname.</t> | |||
| ing revocation information for certificates presented by the API server. Online | <t>Clients performing revocation checking will need some means of | |||
| Certificate Status Protocol <xref target="RFC6960" format="default"/> (OCSP) sta | accessing revocation information for certificates presented by the API | |||
| pling, using the TLS Certificate Status Request extension <xref target="RFC6066" | server. Online Certificate Status Protocol <xref target="RFC6960" | |||
| format="default"/> SHOULD be used. OCSP stapling allows a client to perform rev | format="default"/> (OCSP) stapling, using the TLS Certificate Status | |||
| ocation checks without initiating new connections. To allow for other forms of r | Request extension <xref target="RFC6066" format="default"/>, | |||
| evocation checking, especially for clients that do not support OCSP stapling, a | <bcp14>SHOULD</bcp14> be used. OCSP stapling allows a client to | |||
| captive network SHOULD permit connections to OCSP responders or Certificate Revo | perform revocation checks without initiating new connections. To allow | |||
| cation Lists (CRLs) that are referenced by certificates provided by the API serv | for other forms of revocation checking, especially for clients that do | |||
| er. For more discussion on certificate revocation checks, see Section 6.5 of BCP | not support OCSP stapling, a captive network <bcp14>SHOULD</bcp14> | |||
| 195 <xref target="RFC7525" format="default"/>. In addition to connections to OC | permit connections to OCSP responders or Certificate Revocation Lists | |||
| SP responders and CRLs, a captive network SHOULD also permit connections to Netw | (CRLs) that are referenced by certificates provided by the API | |||
| ork Time Protocol (NTP) <xref target="RFC5905" format="default"/> servers or oth | server. For more discussion on certificate revocation checks, see | |||
| er time-sync mechanisms to allow clients to accurately validate certificates.</t | <xref target="RFC7525" sectionFormat="of" section="6.5">BCP 195</xref>. I | |||
| > | n | |||
| <t>Certificates with missing intermediate certificates that rely on clie | addition to connections to OCSP responders and CRLs, a captive network | |||
| nts validating the certificate chain using the URI specified in the Authority In | <bcp14>SHOULD</bcp14> also permit connections to Network Time Protocol | |||
| formation Access (AIA) extension <xref target="RFC5280" format="default"/> SHOUL | (NTP) <xref target="RFC5905" format="default"/> servers or other | |||
| D NOT be used by the Captive Portal API server. If the certificates do require t | time-sync mechanisms to allow clients to accurately validate | |||
| he use of AIA, the captive network MUST allow client access to the host specifie | certificates.</t> | |||
| d in the URI.</t> | <t>Certificates with missing intermediate certificates that rely on | |||
| <t>If the client is unable to validate the certificate presented by the | clients validating the certificate chain using the URI specified in | |||
| API server, it MUST NOT proceed with any of the behavior for API interaction des | the Authority Information Access (AIA) extension <xref | |||
| cribed in this document. The client will proceed to interact with the captive ne | target="RFC5280" format="default"/> <bcp14>SHOULD NOT</bcp14> be used | |||
| twork as if the API capabilities were not present. It may still be possible for | by the Captive Portal API server. If the certificates do require the | |||
| the user to access the network if the network redirects a cleartext webpage to a | use of AIA, the captive network <bcp14>MUST</bcp14> allow client | |||
| web portal.</t> | access to the host specified in the URI.</t> | |||
| <t>If the client is unable to validate the certificate presented by | ||||
| the API server, it <bcp14>MUST NOT</bcp14> proceed with any of the | ||||
| behavior for API interaction described in this document. The client | ||||
| will proceed to interact with the captive network as if the API | ||||
| capabilities were not present. It may still be possible for the user | ||||
| to access the network if the network redirects a cleartext webpage to | ||||
| a web portal.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="json-keys" numbered="true" toc="default"> | <section anchor="json-keys" numbered="true" toc="default"> | |||
| <name>API State Structure</name> | <name>API State Structure</name> | |||
| <t>The Captive Portal API data structures are specified in JavaScript Obje | <t>The Captive Portal API data structures are specified in JavaScript | |||
| ct Notation (JSON) <xref target="RFC8259" format="default"/>. Requests and respo | Object Notation (JSON) <xref target="RFC8259" | |||
| nses for the Captive Portal API use the "application/captive+json" media type. C | format="default"/>. Requests and responses for the Captive Portal API | |||
| lients SHOULD include this media type as an Accept header in their GET requests, | use the "application/captive+json" media type. Clients | |||
| and servers MUST mark this media type as their Content-Type header in responses | <bcp14>SHOULD</bcp14> include this media type as an Accept header in | |||
| .</t> | their GET requests, and servers <bcp14>MUST</bcp14> mark this media type | |||
| <t>The following key MUST be included in the top-level of the JSON structu | as their Content-Type header in responses.</t> | |||
| re returned by the API server:</t> | <t>The following key <bcp14>MUST</bcp14> be included in the top level of | |||
| <ul spacing="normal"> | the JSON structure returned by the API server:</t> | |||
| <li>"captive" (boolean): indicates whether the client is in a state of c | <table anchor="tab1"> | |||
| aptivity, i.e it has not satisfied the conditions to access the external network | <thead> | |||
| . If the client is captive (i.e. captive=true), it will still be allowed enough | <tr> | |||
| access for it to perform server authentication (<xref target="server-auth" forma | <th>Key</th> | |||
| t="default"/>).</li> | <th>Type</th> | |||
| </ul> | <th>Description</th> | |||
| <t>The following keys can be optionally included in the top-level of the J | </tr> | |||
| SON structure returned by the API server:</t> | </thead> | |||
| <ul spacing="normal"> | <tbody> | |||
| <li>"user-portal-url" (string): provides the URL of a web portal that MU | <tr> | |||
| ST be accessed over TLS with which a user can interact.</li> | <td>captive</td> | |||
| <li>"venue-info-url" (string): provides the URL of a webpage or site tha | <td>boolean</td> | |||
| t SHOULD be accessed over TLS on which the operator of the network has informati | <td>Indicates whether the client is in a state of | |||
| on that it wishes to share with the user (e.g., store info, maps, flight status, | captivity, i.e, it has not satisfied the conditions to access the | |||
| or entertainment).</li> | external network. If the client is captive (i.e., captive=true), it | |||
| <li>"can-extend-session" (boolean): indicates that the URL specified as | will still be allowed enough access for it to perform server | |||
| "user-portal-url" allows the user to extend a session once the client is no long | authentication (<xref target="server-auth" format="default"/>). | |||
| er in a state of captivity. This provides a hint that a client system can sugges | </td> | |||
| t accessing the portal URL to the user when the session is near its limit in ter | </tr> | |||
| ms of time or bytes.</li> | </tbody> | |||
| <li>"seconds-remaining" (number): an integer that indicates the number o | </table> | |||
| f seconds remaining, after which the client will be placed into a captive state. | ||||
| The API server SHOULD include this value if the client is not captive (i.e. cap | <!-- <dl newline="true" spacing="normal"> | |||
| tive=false) and the client session is time-limited, and SHOULD omit this value f | <dt>"captive" (boolean)</dt> | |||
| or captive clients (i.e. captive=true) or when the session is not time-limited.< | <dd>This indicates whether the client is in a state of | |||
| /li> | captivity, i.e, it has not satisfied the conditions to access the | |||
| <li>"bytes-remaining" (number): an integer that indicates the number of | external network. If the client is captive (i.e., captive=true), it | |||
| bytes remaining, after which the client will be in placed into a captive state. | will still be allowed enough access for it to perform server | |||
| The byte count represents the sum of the total number of IP packet (layer 3) byt | authentication (<xref target="server-auth" format="default"/>).</dd> | |||
| es sent and received by the client, including IP headers. Captive portal systems | </dl>--> | |||
| might not count traffic to whitelisted servers, such as the API server, but cli | <t>The following keys can be optionally included in the top level of the | |||
| ents cannot rely on such behavior. The API server SHOULD include this value if t | JSON structure returned by the API server:</t> | |||
| he client is not captive (i.e. captive=false) and the client session is byte-lim | ||||
| ited, and SHOULD omit this value for captive clients (i.e. captive=true) or when | <table anchor="tab2"> | |||
| the session is not byte-limited.</li> | <thead> | |||
| </ul> | <tr> | |||
| <t>The valid JSON keys can be extended by adding entries to the Captive Po | <th>Key</th> | |||
| rtal API Keys Registry (<xref target="iana-section" format="default"/>). If a cl | <th>Type</th> | |||
| ient receives a key that it does not recognize, it MUST ignore the key and any a | <th>Description</th> | |||
| ssociated values. All keys other than the ones defined in this document as "requ | </tr> | |||
| ired" will be considered optional.</t> | </thead> | |||
| <t>Captive Portal JSON content can contain per-client data that is not app | <tbody> | |||
| ropriate to store in an intermediary cache. Captive Portal API servers SHOULD se | <tr> | |||
| t the Cache-Control header field in any responses to "private", or a more restri | <td>user-portal-url</td> | |||
| ctive value such as "no-store" <xref target="RFC7234" format="default"/>.</t> | <td>string</td> | |||
| <t>Client behavior for issuing requests for updated JSON content is implem | <td>Provides the URL of a web portal that MUST be accessed over TLS with | |||
| entation-specific, and can be based on user interaction or the indications of se | which a user can interact.</td> | |||
| conds and bytes remaining in a given session. If at any point the client does no | </tr> | |||
| t receive valid JSON content from the API server, either due to an error or due | <tr> | |||
| to receiving no response, the client SHOULD continue to apply the most recent va | <td>venue-info-url</td> | |||
| lid content it had received; or, if no content had been received previously, pro | <td>string</td> | |||
| ceed to interact with the captive network as if the API capabilities were not pr | <td>Provides the URL of a webpage or site that SHOULD be accessed over | |||
| esent.</t> | TLS on which the operator of the network has information that it wishes | |||
| to share with the user (e.g., store info, maps, flight status, or entertai | ||||
| nment).</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>can-extend-session</td> | ||||
| <td>boolean</td> | ||||
| <td>Indicates that the URL specified | ||||
| as "user-portal-url" allows the user to extend a session once the | ||||
| client is no longer in a state of captivity. This provides a hint that | ||||
| a client system can suggest accessing the portal URL to the user when | ||||
| the session is near its limit in terms of time or bytes. | ||||
| </td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>seconds-remaining</td> | ||||
| <td>number</td> | ||||
| <td>An integer that indicates the number | ||||
| of seconds remaining, after which the client will be placed into a | ||||
| captive state. The API server <bcp14>SHOULD</bcp14> include this value | ||||
| if the client is not captive (i.e., captive=false) and the client | ||||
| session is time-limited and <bcp14>SHOULD</bcp14> omit this value for | ||||
| captive clients (i.e., captive=true) or when the session is not | ||||
| time-limited. | ||||
| </td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>bytes-remaining</td> | ||||
| <td>number</td> | ||||
| <td>An integer that indicates the number of bytes remaining, after | ||||
| which the client will be placed into a captive state. The byte | ||||
| count represents the sum of the total number of IP packet (layer 3) | ||||
| bytes sent and received by the client, including IP headers. Captive | ||||
| Portal systems might not count traffic to whitelisted servers, such as | ||||
| the API server, but clients cannot rely on such behavior. The API | ||||
| server <bcp14>SHOULD</bcp14> include this value if the client is not | ||||
| captive (i.e., captive=false) and the client session is byte-limited | ||||
| and <bcp14>SHOULD</bcp14> omit this value for captive clients | ||||
| (i.e., captive=true) or when the session is not byte-limited. | ||||
| </td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <!-- | ||||
| <dl newline="true" spacing="normal"> | ||||
| <dt>"user-portal-url" (string)</dt> | ||||
| <dd>This provides the URL of a web portal that <bcp14>MUST</bcp14> be | ||||
| accessed over TLS with which a user can interact.</dd> | ||||
| <dt>"venue-info-url" (string)</dt> | ||||
| <dd>This provides the URL of a webpage or site | ||||
| that <bcp14>SHOULD</bcp14> be accessed over TLS on which the operator | ||||
| of the network has information that it wishes to share with the user | ||||
| (e.g., store info, maps, flight status, or entertainment).</dd> | ||||
| <dt>"can-extend-session" (boolean)</dt> | ||||
| <dd>This indicates that the URL specified | ||||
| as "user-portal-url" allows the user to extend a session once the | ||||
| client is no longer in a state of captivity. This provides a hint that | ||||
| a client system can suggest accessing the portal URL to the user when | ||||
| the session is near its limit in terms of time or bytes.</dd> | ||||
| <dt>"seconds-remaining" (number)</dt> | ||||
| <dd>This is an integer that indicates the number | ||||
| of seconds remaining, after which the client will be placed into a | ||||
| captive state. The API server <bcp14>SHOULD</bcp14> include this value | ||||
| if the client is not captive (i.e., captive=false) and the client | ||||
| session is time-limited and <bcp14>SHOULD</bcp14> omit this value for | ||||
| captive clients (i.e., captive=true) or when the session is not | ||||
| time-limited.</dd> | ||||
| <dt>"bytes-remaining" (number)</dt> | ||||
| <dd>This is an integer that indicates the number of bytes remaining, afte | ||||
| r | ||||
| which the client will be in placed into a captive state. The byte | ||||
| count represents the sum of the total number of IP packet (layer 3) | ||||
| bytes sent and received by the client, including IP headers. Captive | ||||
| Portal systems might not count traffic to whitelisted servers, such as | ||||
| the API server, but clients cannot rely on such behavior. The API | ||||
| server <bcp14>SHOULD</bcp14> include this value if the client is not | ||||
| captive (i.e., captive=false) and the client session is byte-limited | ||||
| and <bcp14>SHOULD</bcp14> omit this value for captive clients | ||||
| (i.e., captive=true) or when the session is not byte-limited.</dd> | ||||
| </dl> | ||||
| --> | ||||
| <t>The valid JSON keys can be extended by adding entries to the Captive | ||||
| Portal API Keys Registry (<xref target="iana-field-reg" | ||||
| format="default"/>). If a client receives a key that it does not | ||||
| recognize, it <bcp14>MUST</bcp14> ignore the key and any associated | ||||
| values. All keys other than the ones defined in this document as | ||||
| "required" will be considered optional.</t> | ||||
| <t>Captive Portal JSON content can contain per-client data that is not | ||||
| appropriate to store in an intermediary cache. Captive Portal API | ||||
| servers <bcp14>SHOULD</bcp14> set the Cache-Control header field in any | ||||
| responses to "private" or a more restrictive value, such as "no-store" | ||||
| <xref target="RFC7234" format="default"/>.</t> | ||||
| <t>Client behavior for issuing requests for updated JSON content is | ||||
| implementation specific and can be based on user interaction or the | ||||
| indications of seconds and bytes remaining in a given session. If at any | ||||
| point the client does not receive valid JSON content from the API | ||||
| server, either due to an error or due to receiving no response, the | ||||
| client <bcp14>SHOULD</bcp14> continue to apply the most recent valid | ||||
| content it had received or, if no content had been received previously, | ||||
| proceed to interact with the captive network as if the API capabilities | ||||
| were not present.</t> | ||||
| </section> | </section> | |||
| <section anchor="example" numbered="true" toc="default"> | <section anchor="example" numbered="true" toc="default"> | |||
| <name>Example Interaction</name> | <name>Example Interaction</name> | |||
| <t>A client connected to a captive network upon discovering the URI of the | <t>Upon discovering the URI of the API server, | |||
| API server will query the API server to retrieve information about its captive | a client connected to a captive network | |||
| state and conditions to escape captivity. In this example, the client discovered | will query the API server to retrieve information about | |||
| the URI "https://example.org/captive-portal/api/X54PD39JV" using one of the mec | its captive state and conditions to escape captivity. In this example, | |||
| hanisms defined in <xref target="I-D.ietf-capport-rfc7710bis" format="default"/> | the client discovered the URI | |||
| .</t> | "https://example.org/captive-portal/api/X54PD39JV" using one of the | |||
| <t>To request the Captive Portal JSON content, a client sends an HTTP GET | mechanisms defined in <xref target="RFC8910" | |||
| request:</t> | format="default"/>.</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <t>To request the Captive Portal JSON content, a client sends an HTTP | |||
| GET request:</t> | ||||
| <sourcecode type="http-message"><![CDATA[ | ||||
| GET /captive-portal/api/X54PD39JV HTTP/1.1 | GET /captive-portal/api/X54PD39JV HTTP/1.1 | |||
| Host: example.org | Host: example.org | |||
| Accept: application/captive+json | Accept: application/captive+json | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>The server then responds with the JSON content for that client:</t> | <t>The server then responds with the JSON content for that client:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode type="http-message"><![CDATA[ | |||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Cache-Control: private | Cache-Control: private | |||
| Date: Mon, 02 Mar 2020 05:07:35 GMT | Date: Mon, 02 Mar 2020 05:07:35 GMT | |||
| Content-Type: application/captive+json | Content-Type: application/captive+json | |||
| { | { | |||
| "captive": true, | "captive": true, | |||
| "user-portal-url": "https://example.org/portal.html" | "user-portal-url": "https://example.org/portal.html" | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>Upon receiving this information the client will use this information to | <t>Upon receiving this information, the client will use it | |||
| direct the user to the web portal (as specified by the user-portal-url value) t | to direct the user to the web portal (as specified by the | |||
| o enable access to the external network. Once the user satisfies the requirement | user-portal-url value) to enable access to the external network. Once | |||
| s for external network access, the client SHOULD query the API server again to v | the user satisfies the requirements for external network access, the | |||
| erify that it is no longer captive.</t> | client <bcp14>SHOULD</bcp14> query the API server again to verify that | |||
| <t>When the client requests the Captive Portal JSON content after gaining | it is no longer captive.</t> | |||
| external network access, the server responds with updated JSON content:</t> | <t>When the client requests the Captive Portal JSON content after | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | gaining external network access, the server responds with updated JSON | |||
| content:</t> | ||||
| <sourcecode type="http-message"><![CDATA[ | ||||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Cache-Control: private | Cache-Control: private | |||
| Date: Mon, 02 Mar 2020 05:08:13 GMT | Date: Mon, 02 Mar 2020 05:08:13 GMT | |||
| Content-Type: application/captive+json | Content-Type: application/captive+json | |||
| { | { | |||
| "captive": false, | "captive": false, | |||
| "user-portal-url": "https://example.org/portal.html", | "user-portal-url": "https://example.org/portal.html", | |||
| "venue-info-url": "https://flight.example.com/entertainment", | "venue-info-url": "https://flight.example.com/entertainment", | |||
| "seconds-remaining": 326, | "seconds-remaining": 326, | |||
| "can-extend-session": true | "can-extend-session": true | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </section> | </section> | |||
| <section anchor="security" numbered="true" toc="default"> | <section anchor="security" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>One of the goals of this protocol is to improve the security of the com | <t>One of the goals of this protocol is to improve the security of the | |||
| munication between client hosts and Captive Portal systems. Client traffic is pr | communication between client hosts and Captive Portal systems. Client | |||
| otected from passive listeners on the local network by requiring TLS-encrypted c | traffic is protected from passive listeners on the local network by | |||
| onnections between the client and the Captive Portal API server, as described in | requiring TLS-encrypted connections between the client and the Captive | |||
| <xref target="api-details" format="default"/>. All communication between the cl | Portal API server, as described in <xref target="api-details" | |||
| ients and the API server MUST be encrypted.</t> | format="default"/>. All communication between the clients and the API | |||
| <t>In addition to encrypting communications between clients and Captive Po | server <bcp14>MUST</bcp14> be encrypted.</t> | |||
| rtal systems, this protocol requires a basic level of authentication from the AP | <t>In addition to encrypting communications between clients and Captive | |||
| I server, as described in <xref target="server-auth" format="default"/>. Specifi | Portal systems, this protocol requires a basic level of authentication | |||
| cally, the API server MUST present a valid certificate on which the client can p | from the API server, as described in <xref target="server-auth" | |||
| erform revocation checks. This allows the client to ensure that the API server h | format="default"/>. Specifically, the API server <bcp14>MUST</bcp14> | |||
| as authority for the hostname that was provisioned by the network using <xref ta | present a valid certificate on which the client can perform revocation | |||
| rget="I-D.ietf-capport-rfc7710bis" format="default"/>. Note that this validation | checks. This allows the client to ensure that the API server has | |||
| only confirms that the API server matches what the network's provisioning mecha | authority for the hostname that was provisioned by the network using | |||
| nism (such as DHCP or IPv6 Router Advertisements) provided, and not validating t | <xref target="RFC8910" format="default"/>. Note that | |||
| he security of those provisioning mechanisms or the user's trust relationship to | this validation only confirms that the API server matches what the | |||
| the network.</t> | network's provisioning mechanism (such as DHCP or IPv6 Router | |||
| Advertisements) provided; it is not validating the security of those | ||||
| provisioning mechanisms or the user's trust relationship to the | ||||
| network.</t> | ||||
| <section anchor="privacy" numbered="true" toc="default"> | <section anchor="privacy" numbered="true" toc="default"> | |||
| <name>Privacy Considerations</name> | <name>Privacy Considerations</name> | |||
| <t>Information passed between a client and the user-facing web portal ma | <t>Information passed between a client and the user-facing web portal | |||
| y include a user's personal information, such as a full name and credit card det | may include a user's personal information, such as a full name and | |||
| ails. Therefore, it is important that both the user-facing web portal and the AP | credit card details. Therefore, it is important that both the | |||
| I server that points a client to the web portal are only accessed over encrypted | user-facing web portal and the API server that points a client to the | |||
| connections.</t> | web portal are only accessed over encrypted connections.</t> | |||
| <t>It is important to note that although communication to the user-facin | <t>It is important to note that although communication to the | |||
| g web portal requires using TLS, the authentication only validates that the web | user-facing web portal requires use of TLS, the authentication only | |||
| portal server matches the name in the URI provided by the API server. Since this | validates that the web portal server matches the name in the URI | |||
| is not a name that a user typed in, the hostname of the web site that would be | provided by the API server. Since this is not a name that a user typed | |||
| presented to the user may include "confusable characters" that can mislead the u | in, the hostname of the website that would be presented to the user | |||
| ser. See Section 12.5 of <xref target="RFC8264" format="default"/> for a discuss | may include "confusable characters", which can mislead the user. See | |||
| ion of confusable characters.</t> | <xref target="RFC8264" sectionFormat="of" section="12.5"/> for a | |||
| discussion of confusable characters.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="iana-section" numbered="true" toc="default"> | <section anchor="iana-section" numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <t>IANA is requested to create a registration for an "application/captive+ | <t>IANA has registered the | |||
| json" media type (<xref target="iana-json" format="default"/>) and a registry fo | "application/captive+json" media type (<xref target="iana-json" | |||
| r fields in that format (<xref target="iana-field-reg" format="default"/>).</t> | format="default"/>) and created a registry for fields in that format (<xre | |||
| f | ||||
| target="iana-field-reg" format="default"/>).</t> | ||||
| <section anchor="iana-json" numbered="true" toc="default"> | <section anchor="iana-json" numbered="true" toc="default"> | |||
| <name>Captive Portal API JSON Media Type Registration</name> | <name>Captive Portal API JSON Media Type Registration</name> | |||
| <t>This document registers the media type for Captive Portal API JSON te | <t>This document registers the media type for Captive Portal API JSON | |||
| xt, "application/captive+json".</t> | text, "application/captive+json".</t> | |||
| <t>Type name: application</t> | <dl newline="false" spacing="normal"> | |||
| <t>Subtype name: captive+json</t> | <dt>Type name:</dt> | |||
| <t>Required parameters: N/A</t> | <dd>application</dd> | |||
| <t>Optional parameters: N/A</t> | <dt>Subtype name:</dt> | |||
| <t>Encoding considerations: Encoding considerations are identical to tho | <dd>captive+json</dd> | |||
| se specified for the "application/json" media type.</t> | <dt>Required parameters:</dt> | |||
| <t>Security considerations: See <xref target="security" format="default" | <dd>N/A</dd> | |||
| /></t> | <dt>Optional parameters:</dt> | |||
| <t>Interoperability considerations: This document specifies format of co | <dd>N/A</dd> | |||
| nforming messages and the interpretation thereof.</t> | <dt>Encoding considerations:</dt> | |||
| <t>Published specification: This document</t> | <dd>Encoding considerations are identical to those specified for the | |||
| <t>Applications that use this media type: This media type is intended to | "application/json" media type.</dd> | |||
| be used by servers presenting the Captive Portal API, and clients connecting to | <dt>Security considerations:</dt> | |||
| such captive networks.</t> | <dd>See <xref target="security" format="default"/></dd> | |||
| <t>Fragment identifier considerations: N/A</t> | <dt>Interoperability considerations:</dt> | |||
| <t>Additional information: N/A</t> | <dd>This document specifies format of conforming messages and the | |||
| <t>Person and email address to contact for further information: See Auth | interpretation thereof.</dd> | |||
| ors' Addresses section</t> | <dt>Published specification:</dt> | |||
| <t>Intended usage: COMMON</t> | <dd>RFC 8908</dd> | |||
| <t>Restrictions on usage: N/A</t> | <dt>Applications that use this media type:</dt> | |||
| <t>Author: CAPPORT IETF WG</t> | <dd>This media type is intended to be used by servers presenting the | |||
| <t>Change controller: IETF</t> | Captive Portal API, and clients connecting to such captive | |||
| networks.</dd> | ||||
| <dt>Fragment identifier considerations:</dt> | ||||
| <dd>N/A</dd> | ||||
| <dt>Additional Information:</dt> | ||||
| <dd>N/A</dd> | ||||
| <dt>Person and email address to contact for further information:</dt> | ||||
| <dd>See Authors' Addresses section</dd> | ||||
| <dt>Intended usage:</dt> | ||||
| <dd>COMMON</dd> | ||||
| <dt>Restrictions on usage:</dt> | ||||
| <dd>N/A</dd> | ||||
| <dt>Author:</dt> | ||||
| <dd>CAPPORT IETF WG</dd> | ||||
| <dt>Change controller:</dt> | ||||
| <dd>IETF</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="iana-field-reg" numbered="true" toc="default"> | <section anchor="iana-field-reg" numbered="true" toc="default"> | |||
| <name>Captive Portal API Keys Registry</name> | <name>Captive Portal API Keys Registry</name> | |||
| <t>IANA is asked to create and maintain a new registry called "Captive P | <t>IANA has created a new registry called "Captive | |||
| ortal API Keys", which will reserve JSON keys for use in Captive Portal API data | Portal API Keys", which reserves JSON keys for use in Captive | |||
| structures. The initial contents of this registry are provided in <xref target= | Portal API data structures. The initial contents of this registry are | |||
| "json-keys" format="default"/>.</t> | provided in <xref target="json-keys" format="default"/>.</t> | |||
| <t>Each entry in the registry contains the following fields:</t> | <t>Each entry in the registry contains the following fields:</t> | |||
| <dl newline="false" spacing="normal"> | <dl newline="false" spacing="normal"> | |||
| <dt>Key:</dt> | <dt>Key:</dt> | |||
| <dd> | <dd>The JSON key being registered in string format.</dd> | |||
| The JSON key being registered, in string format.</dd> | ||||
| <dt>Type:</dt> | <dt>Type:</dt> | |||
| <dd> | <dd>The type of the JSON value to be stored, as one of the value | |||
| The type of the JSON value to be stored, as one of the value types defined in | types defined in <xref target="RFC8259" format="default"/>.</dd> | |||
| <xref target="RFC8259" format="default"/>.</dd> | ||||
| <dt>Description:</dt> | <dt>Description:</dt> | |||
| <dd> | <dd>A brief description explaining the meaning of the value, how it | |||
| A brief description explaining the meaning of the value, how it might be used, | might be used, and/or how it should be interpreted by clients.</dd> | |||
| and/or how it should be interpreted by clients.</dd> | <dt>Refrence:</dt> | |||
| <dt>Specification:</dt> | <dd>A reference to a specification that defines the key and explains | |||
| <dd> | its usage.</dd> | |||
| A reference to a specification that defines the key and explains its usage.</d | ||||
| d> | ||||
| </dl> | </dl> | |||
| <t>New assignments for Captive Portal API Keys Registry will be administ | <t>New assignments for the "Captive Portal API Keys" registry will be | |||
| ered by IANA using the Specification Required policy <xref target="RFC8126" form | administered by IANA using the Specification Required policy <xref | |||
| at="default"/>. | target="RFC8126" format="default"/>. The designated expert is expected | |||
| The Designated Expert is expected to validate the existence of documentation des | to validate the existence of documentation describing new keys in a | |||
| cribing new keys in a permanent | permanent, publicly available specification, such as an Internet-Draft | |||
| publicly available specification, such as an Internet Draft or RFC. The expert i | or RFC. The expert is expected to validate that new keys have a clear | |||
| s expected to validate that new keys have a | meaning and do not create unnecessary confusion or overlap with | |||
| clear meaning and do not create unnecessary confusion or overlap with existing k | existing keys. Keys that are specific to nongeneric use cases, | |||
| eys. Keys that are specific to | particularly ones that are not specified as part of an IETF document, | |||
| non-generic use cases, particularly ones that are not specified as part of an IE | are encouraged to use a domain-specific prefix.</t> | |||
| TF document, are encouraged to | ||||
| use a domain-specific prefix.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="thanksall" numbered="true" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>This work in this document was started by Mark Donnelly and Margaret Cu | ||||
| llen. Thanks to everyone in the CAPPORT Working Group who has given input.</t> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <displayreference target="I-D.ietf-capport-architecture" to="CAPPORT-ARCH"/> | ||||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references> | <references> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| 119"> | ence.RFC.2119.xml"/> | |||
| <front> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | ence.RFC.8174.xml"/> | |||
| le> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ence.RFC.2818.xml"/> | |||
| <seriesInfo name="RFC" value="2119"/> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <seriesInfo name="BCP" value="14"/> | ence.RFC.6125.xml"/> | |||
| <author initials="S." surname="Bradner" fullname="S. Bradner"> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <organization/> | ence.RFC.6960.xml"/> | |||
| </author> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <date year="1997" month="March"/> | ence.RFC.6066.xml"/> | |||
| <abstract> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <t>In many standards track documents several words are used to sig | ence.RFC.5905.xml"/> | |||
| nify the requirements in the specification. These words are often capitalized. | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| This document defines these words as they should be interpreted in IETF document | ence.RFC.5280.xml"/> | |||
| s. This document specifies an Internet Best Current Practices for the Internet | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| Community, and requests discussion and suggestions for improvements.</t> | ence.RFC.8259.xml"/> | |||
| </abstract> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| </front> | ence.RFC.7234.xml"/> | |||
| </reference> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ence.RFC.8126.xml"/> | |||
| 174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2017" month="May"/> | ||||
| <abstract> | ||||
| <t>RFC 2119 specifies common key words that may be used in protoco | ||||
| l specifications. This document aims to reduce the ambiguity by clarifying tha | ||||
| t only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC2818" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 818"> | ||||
| <front> | ||||
| <title>HTTP Over TLS</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2818"/> | ||||
| <seriesInfo name="RFC" value="2818"/> | ||||
| <author initials="E." surname="Rescorla" fullname="E. Rescorla"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2000" month="May"/> | ||||
| <abstract> | ||||
| <t>This memo describes how to use Transport Layer Security (TLS) t | ||||
| o secure Hypertext Transfer Protocol (HTTP) connections over the Internet. This | ||||
| memo provides information for the Internet community.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC6125" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 125"> | ||||
| <front> | ||||
| <title>Representation and Verification of Domain-Based Application S | ||||
| ervice Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Cer | ||||
| tificates in the Context of Transport Layer Security (TLS)</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6125"/> | ||||
| <seriesInfo name="RFC" value="6125"/> | ||||
| <author initials="P." surname="Saint-Andre" fullname="P. Saint-Andre | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J." surname="Hodges" fullname="J. Hodges"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2011" month="March"/> | ||||
| <abstract> | ||||
| <t>Many application technologies enable secure communication betwe | ||||
| en two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX | ||||
| ) certificates in the context of Transport Layer Security (TLS). This document s | ||||
| pecifies procedures for representing and verifying the identity of application s | ||||
| ervices in such interactions. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC6960" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 960"> | ||||
| <front> | ||||
| <title>X.509 Internet Public Key Infrastructure Online Certificate S | ||||
| tatus Protocol - OCSP</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6960"/> | ||||
| <seriesInfo name="RFC" value="6960"/> | ||||
| <author initials="S." surname="Santesson" fullname="S. Santesson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M." surname="Myers" fullname="M. Myers"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="R." surname="Ankney" fullname="R. Ankney"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="A." surname="Malpani" fullname="A. Malpani"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S." surname="Galperin" fullname="S. Galperin"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="C." surname="Adams" fullname="C. Adams"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2013" month="June"/> | ||||
| <abstract> | ||||
| <t>This document specifies a protocol useful in determining the cu | ||||
| rrent status of a digital certificate without requiring Certificate Revocation L | ||||
| ists (CRLs). Additional mechanisms addressing PKIX operational requirements are | ||||
| specified in separate documents. This document obsoletes RFCs 2560 and 6277. I | ||||
| t also updates RFC 5912.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC6066" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 066"> | ||||
| <front> | ||||
| <title>Transport Layer Security (TLS) Extensions: Extension Definiti | ||||
| ons</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6066"/> | ||||
| <seriesInfo name="RFC" value="6066"/> | ||||
| <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3 | ||||
| rd"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2011" month="January"/> | ||||
| <abstract> | ||||
| <t>This document provides specifications for existing TLS extensio | ||||
| ns. It is a companion document for RFC 5246, "The Transport Layer Security (TLS | ||||
| ) Protocol Version 1.2". The extensions specified are server_name, max_fragment | ||||
| _length, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_req | ||||
| uest. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC5905" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 905"> | ||||
| <front> | ||||
| <title>Network Time Protocol Version 4: Protocol and Algorithms Spec | ||||
| ification</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5905"/> | ||||
| <seriesInfo name="RFC" value="5905"/> | ||||
| <author initials="D." surname="Mills" fullname="D. Mills"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J." surname="Martin" fullname="J. Martin" role="ed | ||||
| itor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J." surname="Burbank" fullname="J. Burbank"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="W." surname="Kasch" fullname="W. Kasch"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2010" month="June"/> | ||||
| <abstract> | ||||
| <t>The Network Time Protocol (NTP) is widely used to synchronize c | ||||
| omputer clocks in the Internet. This document describes NTP version 4 (NTPv4), | ||||
| which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, | ||||
| as well as previous versions of the protocol. NTPv4 includes a modified protoco | ||||
| l header to accommodate the Internet Protocol version 6 address family. NTPv4 i | ||||
| ncludes fundamental improvements in the mitigation and discipline algorithms tha | ||||
| t extend the potential accuracy to the tens of microseconds with modern workstat | ||||
| ions and fast LANs. It includes a dynamic server discovery scheme, so that in m | ||||
| any cases, specific server configuration is not required. It corrects certain e | ||||
| rrors in the NTPv3 design and implementation and includes an optional extension | ||||
| mechanism. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC5280" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 280"> | ||||
| <front> | ||||
| <title>Internet X.509 Public Key Infrastructure Certificate and Cert | ||||
| ificate Revocation List (CRL) Profile</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5280"/> | ||||
| <seriesInfo name="RFC" value="5280"/> | ||||
| <author initials="D." surname="Cooper" fullname="D. Cooper"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S." surname="Santesson" fullname="S. Santesson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S." surname="Farrell" fullname="S. Farrell"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S." surname="Boeyen" fullname="S. Boeyen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="R." surname="Housley" fullname="R. Housley"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="W." surname="Polk" fullname="W. Polk"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2008" month="May"/> | ||||
| <abstract> | ||||
| <t>This memo profiles the X.509 v3 certificate and X.509 v2 certif | ||||
| icate revocation list (CRL) for use in the Internet. An overview of this approa | ||||
| ch and model is provided as an introduction. The X.509 v3 certificate format is | ||||
| described in detail, with additional information regarding the format and seman | ||||
| tics of Internet name forms. Standard certificate extensions are described and | ||||
| two Internet-specific extensions are defined. A set of required certificate ext | ||||
| ensions is specified. The X.509 v2 CRL format is described in detail along with | ||||
| standard and Internet-specific extensions. An algorithm for X.509 certificatio | ||||
| n path validation is described. An ASN.1 module and examples are provided in th | ||||
| e appendices. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 259"> | ||||
| <front> | ||||
| <title>The JavaScript Object Notation (JSON) Data Interchange Format | ||||
| </title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8259"/> | ||||
| <seriesInfo name="RFC" value="8259"/> | ||||
| <seriesInfo name="STD" value="90"/> | ||||
| <author initials="T." surname="Bray" fullname="T. Bray" role="editor | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2017" month="December"/> | ||||
| <abstract> | ||||
| <t>JavaScript Object Notation (JSON) is a lightweight, text-based, | ||||
| language-independent data interchange format. It was derived from the ECMAScri | ||||
| pt Programming Language Standard. JSON defines a small set of formatting rules | ||||
| for the portable representation of structured data.</t> | ||||
| <t>This document removes inconsistencies with other specifications | ||||
| of JSON, repairs specification errors, and offers experience-based interoperabi | ||||
| lity guidance.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC7234" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 234"> | ||||
| <front> | ||||
| <title>Hypertext Transfer Protocol (HTTP/1.1): Caching</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7234"/> | ||||
| <seriesInfo name="RFC" value="7234"/> | ||||
| <author initials="R." surname="Fielding" fullname="R. Fielding" role | ||||
| ="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M." surname="Nottingham" fullname="M. Nottingham" | ||||
| role="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J." surname="Reschke" fullname="J. Reschke" role=" | ||||
| editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2014" month="June"/> | ||||
| <abstract> | ||||
| <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%applica | ||||
| tion- level protocol for distributed, collaborative, hypertext information syste | ||||
| ms. This document defines HTTP caches and the associated header fields that con | ||||
| trol cache behavior or indicate cacheable response messages.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 126"> | ||||
| <front> | ||||
| <title>Guidelines for Writing an IANA Considerations Section in RFCs | ||||
| </title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8126"/> | ||||
| <seriesInfo name="RFC" value="8126"/> | ||||
| <seriesInfo name="BCP" value="26"/> | ||||
| <author initials="M." surname="Cotton" fullname="M. Cotton"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="T." surname="Narten" fullname="T. Narten"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2017" month="June"/> | ||||
| <abstract> | ||||
| <t>Many protocols make use of points of extensibility that use con | ||||
| stants to identify various protocol parameters. To ensure that the values in th | ||||
| ese fields do not have conflicting uses and to promote interoperability, their a | ||||
| llocations are often coordinated by a central record keeper. For IETF protocols | ||||
| , that role is filled by the Internet Assigned Numbers Authority (IANA).</t> | ||||
| <t>To make assignments in a given registry prudently, guidance des | ||||
| cribing the conditions under which new values should be assigned, as well as whe | ||||
| n and how modifications to existing values can be made, is needed. This documen | ||||
| t defines a framework for the documentation of these guidelines by specification | ||||
| authors, in order to assure that the provided guidance for the IANA Considerati | ||||
| ons is clear and addresses the various issues that are likely in the operation o | ||||
| f a registry.</t> | ||||
| <t>This is the third edition of this document; it obsoletes RFC 52 | ||||
| 26.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | </references> | |||
| <references> | <references> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="I-D.ietf-capport-architecture" target="http://www.iet | <!-- draft-ietf-capport-architecture-08: Submitted to IESG for Publication --> | |||
| f.org/internet-drafts/draft-ietf-capport-architecture-08.txt"> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refe | |||
| <front> | rence.I-D.draft-ietf-capport-architecture-08.xml"/> | |||
| <title>CAPPORT Architecture</title> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-capport-architec | ||||
| ture-08"/> | ||||
| <author initials="K" surname="Larose" fullname="Kyle Larose"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Dolson" fullname="David Dolson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="H" surname="Liu" fullname="Heng Liu"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" day="11" year="2020"/> | ||||
| <abstract> | ||||
| <t>This document describes a CAPPORT architecture. DHCP or Router | ||||
| Advertisements, an optional signaling protocol, and an HTTP API are used to pro | ||||
| vide the solution. The role of Provisioning Domains (PvDs) is described.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-capport-rfc7710bis" target="http://www.ietf. | ||||
| org/internet-drafts/draft-ietf-capport-rfc7710bis-07.txt"> | ||||
| <front> | ||||
| <title>Captive-Portal Identification in DHCP / RA</title> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-capport-rfc7710b | ||||
| is-07"/> | ||||
| <author initials="W" surname="Kumari" fullname="Warren Kumari"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="E" surname="Kline" fullname="Erik Kline"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" day="23" year="2020"/> | ||||
| <abstract> | ||||
| <t>In many environments offering short-term or temporary Internet | ||||
| access (such as coffee shops), it is common to start new connections in a captiv | ||||
| e portal mode. This highly restricts what the customer can do until the custome | ||||
| r has authenticated. This document describes a DHCPv4 and DHCPv6 option and a R | ||||
| outer Advertisement (RA) option to inform clients that they are behind some sort | ||||
| of captive-portal enforcement device, and that they will need to authenticate t | ||||
| o get Internet access. It is not a full solution to address all of the issues t | ||||
| hat clients may have with captive portals; it is designed to be one component of | ||||
| a standardized approach for hosts to interact with such portals. While this do | ||||
| cument defines how the network operator may convey the captive portal API endpoi | ||||
| nt to hosts, the specific methods of authenticating to, and interacting with the | ||||
| captive portal are out of scope of this document. This document replaces RFC 7 | ||||
| 710. RFC 7710 used DHCP code point 160. Due to a conflict, this document specif | ||||
| ies 114. [ This document is being collaborated on in Github at: https://github. | ||||
| com/capport-wg/7710bis. The most recent version of the document, open issues, e | ||||
| tc should all be available here. The authors (gratefully) accept pull requests. | ||||
| Text in square brackets will be removed before publication. ]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC7525" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 525"> | ||||
| <front> | ||||
| <title>Recommendations for Secure Use of Transport Layer Security (T | ||||
| LS) and Datagram Transport Layer Security (DTLS)</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7525"/> | ||||
| <seriesInfo name="RFC" value="7525"/> | ||||
| <seriesInfo name="BCP" value="195"/> | ||||
| <author initials="Y." surname="Sheffer" fullname="Y. Sheffer"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="R." surname="Holz" fullname="R. Holz"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P." surname="Saint-Andre" fullname="P. Saint-Andre | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2015" month="May"/> | ||||
| <abstract> | ||||
| <t>Transport Layer Security (TLS) and Datagram Transport Layer Sec | ||||
| urity (DTLS) are widely used to protect data exchanged over application protocol | ||||
| s such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the last few years, severa | ||||
| l serious attacks on TLS have emerged, including attacks on its most commonly us | ||||
| ed cipher suites and their modes of operation. This document provides recommend | ||||
| ations for improving the security of deployed services that use TLS and DTLS. Th | ||||
| e recommendations are applicable to the majority of use cases.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC8264" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 264"> | ||||
| <front> | ||||
| <title>PRECIS Framework: Preparation, Enforcement, and Comparison of | ||||
| Internationalized Strings in Application Protocols</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8264"/> | ||||
| <seriesInfo name="RFC" value="8264"/> | ||||
| <author initials="P." surname="Saint-Andre" fullname="P. Saint-Andre | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M." surname="Blanchet" fullname="M. Blanchet"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2017" month="October"/> | ||||
| <abstract> | ||||
| <t>Application protocols using Unicode code points in protocol str | ||||
| ings need to properly handle such strings in order to enforce internationalizati | ||||
| on rules for strings placed in various protocol slots (such as addresses and ide | ||||
| ntifiers) and to perform valid comparison operations (e.g., for purposes of auth | ||||
| entication or authorization). This document defines a framework enabling applic | ||||
| ation protocols to perform the preparation, enforcement, and comparison of inter | ||||
| nationalized strings ("PRECIS") in a way that depends on the properties of Unico | ||||
| de code points and thus is more agile with respect to versions of Unicode. As a | ||||
| result, this framework provides a more sustainable approach to the handling of | ||||
| internationalized strings than the previous framework, known as Stringprep (RFC | ||||
| 3454). This document obsoletes RFC 7564.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| </back> | ||||
| <!-- ##markdown-source: | ||||
| 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 | ||||
| <!-- [rfced] Note that we have updated the reference for | ||||
| draft-ietf-capport-rfc7710bis to refer to RFC-to-be 8910. We expect to | ||||
| initiate AUTH48 for RFC 8910 next week. | ||||
| --> | --> | |||
| <!-- draft-ietf-capport-rfc7710bis-07: Submitted to IESG for Publication --> | ||||
| <reference anchor='RFC8910' target="https://www.rfc-editor.org/info/rfc8910"> | ||||
| <front> | ||||
| <title>Captive-Portal Identification in DHCP / Router Advertisement (RA)</title> | ||||
| <author initials='W' surname='Kumari' fullname='Warren Kumari'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='E' surname='Kline' fullname='Erik Kline'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='September' year='2020' /> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8910' /> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8910"/> | ||||
| </reference> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.7525.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8264.xml"/> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="thanksall" numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>This work was started by <contact fullname="Mark | ||||
| Donnelly"/> and <contact fullname="Margaret Cullen"/>. Thanks to | ||||
| everyone in the CAPPORT Working Group who has given input.</t> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 37 change blocks. | ||||
| 843 lines changed or deleted | 489 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||