<?xml version='1.0'?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
<rfc ipr="trust200902" docName="draft-hallambaker-omnibroker-08">
<front>
<title abbrev="OmniBroker Discovery Protocol">OmniBroker Protocol</title>
<author fullname="Phillip Hallam-Baker" initials="P. M." surname="Hallam-Baker">
<organization>Comodo Group Inc.</organization>
<address>
<email>philliph@comodo.com</email>
</address>
</author>
<date day="19" month="May" year="2014"/>
<area>General</area>
<workgroup/>
<keyword>Transparency</keyword>
<keyword>PKI</keyword>
<keyword>PKIX</keyword>
<abstract>
<t>An Omnibroker is an agent chosen and trusted by an Internet user to provide information such as name and certificate status information that are in general trusted even if they are not trustworthy. Rather than acting as a mere conduit for information provided by existing services, an Omnibroker is responsible for curating those sources to protect the user. </t>
<t>The Omnibroker Protocol (OBP) provides an aggregated interface to trusted Internet services including DNS, OCSP and various forms of authentication service. Multiple transport bindings are supported to permit efficient access in virtually every common deployment scenario and ensure access in any deployment scenario in which access is not being purposely denied. </t>
</abstract>
</front>
<middle>
<section title="Definitions" anchor="Section_1">
<section title="Requirements Language" anchor="Section_1_1">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. </t>
</section>
</section>
<section title="Purpose" anchor="Section_2">
<t>Today, a network client is required to make queries against multiple information sources to establish a secure connection to a network resource. A DNS query is required to translate network names to Internet addresses. If TLS transport is used, an OSCP query may be required to validate the server certificate. Support for client authentication may require interaction with another service. </t>
<t>Servers require similar support when accepting Internet connections. Even though most networking infrastructure supports some form of network administration, it is left to the network administrator to fill in the gap between server applications and network infrastructure. Making use of such facilities is rarely cost effective except at the very largest installations. </t>
<t>An Omnibroker is a trusted agent that acts as a single point of service for client queries requesting a connection to a named network resource and server advertisements accepting connections to a named network resource. </t>
<section title="Omnibroker Discovery and Publication Services" anchor="Section_2_1">
<t>The Omnibroker protocol is a meta-directory access protocol. As with any directory protocol, the two principal functions supported by Omnibroker are discovery and publication. These functions are supported by the OmniDiscover and OmniPublish Web Services. </t>
<t>This specification document describes the architectural approach shared by both protocols and the OmniDiscover protocol. The OmniPublish protocol is described separately in [I-D.hallambaker-omnipublish]. </t>
</section>
<section title="Omnibroker Implementation" anchor="Section_2_2">
<t>Omnibroker Discovery and Omnibroker Publication make use of the following mechanisms defined in other specifications: </t>
<t><list style="hanging">
<t hangText="Service Connection Service (SXS) [!I-D.hallambaker-wsconnect] ">To establish and manage the long term trust relationship with the Omnibroker provider. </t>
<t hangText="HTTP Session Authentication [!I-D.hallambaker-httpsession] ">To provide message authentication in the HTTP/REST transport. </t>
<t hangText="UDP Framed Messaged (UYFM) described in [!I-D.hallambaker-wsconnect] ">For low latency transactions. </t>
<t hangText="JSON Encoding [!RFC4627] ">For encoding messages in the HTTP transport. </t>
<t hangText="JSON Binary and Compressed encodings described in [!I-D.hallambaker-jsonbcd] ">For efficient encoding messages in the low latency UYFM transport. </t>
</list></t>
<section title="Establishing service" anchor="Section_2_2_1">
<t>In normal use, an omnibroker client receives service from a single Omnibroker service provider. For performance and reliability reasons, an Omnibroker service provider is expected to provide multiple Omnibroker service instances. </t>
<t>An Omnibroker client acquires the network address information and credentials necessary to access an omnibroker service using the JCX Web Service to establish a connection binding. To ensure reliabilty and the ability to access the service in all circumstances, an Omnibroker connection binding SHOULD specify multiple service instances. </t>
</section>
<section title="Protocol Bindings" anchor="Section_2_2_2">
<t>Due to the need for low latency and the need to function in a compromised network environment, two protocol bindings are defined:</t>
<t><list style="symbols">
<t>A HTTP binding using HTTP [!RFC2616] for session layer framing and HTTP Session Continuation [!I-D.hallambaker-httpsession] for message authentication and JSON encoding [!RFC4627] of protocol messages. </t>
<t>A UDP Binding using UYFM framing [!I-D.hallambaker-wsconnect] and JSON-B encoding [!I-D.hallambaker-jsonbcd] for framing and encoding of protocol messages. </t>
</list></t>
<t>The implementation overhead of support for three different protocol bindings is reduced by the choice of a binary encoding for JSON (JSON-B) that is very close in structure to JSON encoding allowing encoders and decoders to support both encodings with minimal additional code. </t>
<t>Regardless of the protocol binding used, all Omnibroker messages are authenticated with protection against replay attack under the cryptographic credentials established in the connection binding service instance. </t>
</section>
</section>
</section>
<section title="OmniDiscovery Service" anchor="Section_3">
<t>Directing queries through a single point of contact has performance, relability and security advantages. Directing queries to multiple network information sources degrades performance and may cause a connection request to fail if an information resource is not available. This has led many application providers to limit the information sources they consult. Directing queries through an Omnibroker allows as many information sources to be brought to bear as the broker has local cached data for without loss of performance or reliability. </t>
<t>Making use of additional data sources allows the broker to 'curate' the response. If the broker knows that a Web site always returns a redirect to a TLS secured version of the same site, it can tell a Web Browser to go straight to the secure version. If a Web Server is hosted on a known botnet, the Omnibroker can tell the client that it really does not want to visit that location. </t>
<t>Unlike the traditional DNS configuration, an Omnibroker client decides which source(s) of trusted information to use rather than relying on whatever happens to be the nearest source to hand. </t>
<t>The traditional DNS approach creates an obvious security risk as DNS is a trusted service and deciding to choose a random DNS service advertised by the local DHCP service is clearly a poor decision process for a trusted service. Further the DNS protocol does not protect the confidentiality or integrity of messages exchanged. </t>
<section title="Related Work" anchor="Section_3_1">
<t>Omnibroker provides security for interactions with a DNS service by replacing the DNS protocol with a new protocol that provides a higher level abstract service. [I-D.hallambaker-privatedns] applies the same approach and platforms to provide confidentiality and integrity for legacy DNS protocol messages. </t>
</section>
</section>
<section title="Walled Gardens" anchor="Section_4">
<t>IETF culture has traditionally resisted attempts to establish partitions within the open Internet with restricted access to network resources or compromised security. Such 'Walled Gardens' models typically exist for the benefits of those who own the walls rather than those forced to live inside them. </t>
<t>While virtually all residential Internet users reject such controls, most find them acceptable, if not desirable in workplaces and schools. </t>
<t>Omnibroker simplifies the process of establishing such a walled garden but does not make the walls any easier to defend. </t>
<section title="Censorship" anchor="Section_4_1">
<t>From a censorship point of view, the censorship concerns of running an Omnibroker are essentially the same as those of running a DNS service. The party who decides which discovery service to use can determine which content is visible to the users. </t>
</section>
<section title="Trust Substitution" anchor="Section_4_2">
<t>Like SCVP [RFC5055] /&gt; and XKMS [TBS], Omnibroker permits an Internet client to delegate some or all aspects of PKIX [RFC5280] certificate path chain discovery and validation. </t>
<t>In the normal mode of operation, the Omnibroker service performs only path chain discovery, leaving the client to re-check the PKIX certificate path before relying on it. This gives the Omnibroker the power to veto a client connection to a server that it considers to be unsafe but not the power to tell the client to trust a site of its own choosing. </t>
<t>This ability to veto but not assert trust is appropriate and sufficient for the vast majority of network applications. It allows the broker to make use of additional path validation checks that are not supported in the client such as DANE [RFC6698] or Certificate Transparency [RFC6962] /&gt;. </t>
<t>There are however some workplace environments where the ability to access external network resources with strong encryption is not permissible by enterprise policy or in some cases by law. An intelligence analyst working at the NSA may have a need to access external Web sites that contain important information but must on no account have access to a covert channel that could be used to exfiltrate information. Certain Financial institutions with access to valuable commercial information are required to monitor and record all communications into and out of the company to deter insider trading. </t>
<t>The traditional response to such needs has been to tell the parties affected to look elsewhere for support. As a consequence the techniques used to satisfy such requirements are generally unfriendly to network applications in general and have in some cases put the public Web PKI trust infratructure at risk. </t>
<t>There is an argument to be made that rather than attempting to prohibit such activities entirely, it would be better to provide a principled method of achieving those ends and for mainstream software providers to support it in such a fashion that ensures that network applications configured for that mode of use can be readilly identified as such by end users. </t>
</section>
<section title="Censorship Bypass" anchor="Section_4_3">
<t>As the preceeding examples demonstrate, a party with control over the Omnibroker service chosen by a user has full control over the network activities of that user. An important corrolary of this fact is that all a user need do to achieve full control over their network activities is to run their own Omnibroker service and connect to that. </t>
<t>For example such an Omnibroker service might be configured to return connection data for permitted domestic Web sites as normal but direct attempts to connect to forbidden foreign news or social media through a privacy network such as TOR. </t>
</section>
</section>
<section title="Use" anchor="Section_5">
<t>For illustrative purposes, all the examples in this section are shown using the Web Services Transport binding. The security connection has already been established as described in [I-D.hallambaker-wsconnect]. </t>
<section title="Connection Broker" anchor="Section_5_1">
<t>The OBP service connection broker answers the query 'what connection parameters should be used to establish the best connection to interract with party X according to protocol Y. Where 'best' is determined by the Omnibroker which MAY take into account parameters specified by the relying party. </t>
<section title="Service Connection Broker" anchor="Section_5_1_1">
<t>The OBP service connection broker supports and extends the traditional DNS resolution service that resolves a DNS name (e.g. www.example.com) to return an IP address (e.g. 10.1.2.3). </t>
<t>When using an Omnibroker as a service connection broker, a client specifies both the DNS name (e.g. www.example.com) and the Internet protocol to be used (e.g. _http._tcp). The returned connection parameters MAY include: </t>
<t>The IP protocol version, address and port number to establish a connection to. If appropriate, a security transport such as TLS or IPSEC. If appropriate, a description of a service credential such as a TLS certificate or a constraint on the type of certificates that the client should consider acceptable. If appropriate, application protocol details such as version and protocol options. </t>
<t>If an attempt to connect with the parameters specified fails, a client MAY report the failure and request a new set of parameters. </t>
<section title="Service Connection Broker Example" anchor="Section_5_1_1_1">
<t>Alice uses her Web browser to access the URL http://www.example.com/. The Web browser sends a QueryConnectRequest request to obtain the best connection parameters for the http protocol at www.example.com: </t>
<figure>
<artwork>
<![CDATA[POST /.well-known/omni-query/ HTTP/1.1
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Session: Value=5_AlS4yMTeE82T6ZP9qAZN7TOhXtvqZ__zsLOmCxNrQ;
  Id=o7znkpTHfrqcwsI1eHkPghCj7YsGUCp0KV2DcV1qXGlCt9wzmr2T6UcO_0YI
  AcEqVdTsqRsYBtVNGs9SJyTCnMvjIlU1xQ9ZzoUtqtJsT4A
Host: localhost:8080
Content-Length: 123
Expect: 100-continue

{
  "QueryConnectRequest": {
    "Identifier": {
      "Name": "Example.com",
      "Service": "_http",
      "Port": 80}}}
]]></artwork>
</figure>
<t>The service responds with an ordered list of possible connections. In this case the site is accessible via plain TCP transport or with TLS. Since TLS is the preferred protocol, that connection is listed first. </t>
<figure>
<artwork>
<![CDATA[HTTP/1.1 OK Success
Content-Length: 371
Date: Mon, 19 May 2014 17:17:43 GMT
Server: Microsoft-HTTPAPI/2.0

{
  "QueryConnectResponse": {
    "Status": 200,
    "StatusDescription": "Success",
    "Connection": [{
        "IPAddress": "10.3.2.1",
        "IPPort": 443,
        "Transport": "TLS",
        "TransportPolicy": "TLS=Optional",
        "ProtocolPolicy": "Strict"},
      {
        "IPAddress": "10.3.2.1",
        "IPPort": 80,
        "ProtocolPolicy": "Strict"}]}}
]]></artwork>
</figure>
</section>
</section>
<section title="Peer Connection Broker" anchor="Section_5_1_2">
<t>Each OBP request identifies both the account under which the request is made and the device from which it is made. An OBP broker is thus capable of acting as a peer connection broker service or providing a gateway to such a service. </t>
<t>When using Omnibroker as a peer connection broker, a client specifies the account name and DNS name of the party with which a connection is to be established (e.g. alice@example.com) and the connection protocol to be used (e.g. _xmpp-client._tcp) </t>
<t>The returned connection parameters are similar to those returned in response to a service broker query. </t>
<section title="Service Connection Broker Example" anchor="Section_5_1_2_1">
<t>Although the QueryConnectResponse returned the hash of a PKIX certificate considered valid for that connection, the server returns a different certificate which the client verifies using the ValidateRequest query. </t>
<figure>
<artwork>
<![CDATA[[POST /.well-known/omni-query/ HTTP/1.1
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Session: Value=ebgTLvWjZFeTMnowmomslUu9rPvzAPAciO11QK26NQg;
  Id=o7znkpTHfrqcwsI1eHkPghCj7YsGUCp0KV2DcV1qXGlCt9wzmr2T6UcO_0YI
  AcEqVdTsqRsYBtVNGs9SJyTCnMvjIlU1xQ9ZzoUtqtJsT4A
Host: localhost:8080
Content-Length: 1126
Expect: 100-continue

{
  "ValidateRequest": {
    "Service": {
      "Identifier": [{
          "Name": "example.com"}]},
    "Credential": [{
        "Data": "
MIIC0DCCAbigAwIBAgIQQut6m1F0PodIjIzop_d1uDANBgkqhkiG9w0BAQUFADAR
MQ8wDQYDVQQDEwZWb29kb28wHhcNMTMwNjI2MTczOTQyWhcNMTQwNjI2MDAwMDAw
WjARMQ8wDQYDVQQDEwZWb29kb28wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQCdc7Qgx71o6Tq5dFUUhcCn8Nt-2Y9SGhm3WvsMYIqOIcHq3gjIKN9FWvXz
pBbTjz4lCwx-CJT82RBLNDFtsysfc0G7K_RsNKosYaM-L-DshO6R_314tptn9gnT
9tjTPXuiiICQlAP83BuTI148iEJWL36vbmv5AG6vrtk3T6ah5r2hBXQjt46sLQYw
eiM-peYIhPTIy9OYugogfqdzPvaJpDfAukqJBXqMxfscagKPYAGPaICKhobKr11a
Pam1Tchk2cBbtuYgSDz6ZGttsKE2omDbcmhbF7gBpRug-E2OH79Q4EVlSSoO9gZ6
AF4Km1A9uK9W_Pg8EPugY3Mgns6lAgMBAAGjJDAiMAsGA1UdDwQEAwIEMDATBgNV
HSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEACK9LQNkewOOugaYh
s4LfE3xdrRzrcaR0w5cf3wVcgR0ZZo98rDOtu3FAexpdh6vNaIdU4zAzNJPKKSso
3XF2LpQZovKIpUuN9pkZqslqZ0TLXqlyXMbheShcqIP1-m6qjZOp95N7jwgxBlEm
i_ne-rg1DicXFtAu90LpAZludaQGAyrj-LC37gzeMo2AG7BAuyFURXJFfxjpGmnu
euYfzZIMIQY-lNl6qm_vSMIz4uUKqq4lWndahnkJAwI2p5zUM0z3O6OMr_zr8eyr
dAL__H4NnG3gVyBbNoSbvbkxUt_C3oBwFFTupzRMQqJVjzbApyw5H0OzJPJKKkxx
hmIYTg"}]}}
]]></artwork>
</figure>
<t>The service validates the certificate according to the Omnibroker service policy. </t>
<figure>
<artwork>
<![CDATA[[HTTP/1.1 OK Success
Content-Length: 81
Date: Mon, 19 May 2014 17:17:43 GMT
Server: Microsoft-HTTPAPI/2.0

{
  "ValidateResponse": {
    "Status": 200,
    "StatusDescription": "Success"}}
]]></artwork>
</figure>
</section>
</section>
<section title="Credential Validation" anchor="Section_5_1_3">
<t>The credential validation query provides certificate path validation and status checking. </t>
<t>The service provided by OBP is similar to that provided by OCSP and SCVP. Like SCVP, OBP is an agent selected by the relying party to validate certificates and/or construct trust paths on its behalf. </t>
</section>
<section title="Message: QMessage" anchor="Section_5_1_4">
</section>
<section title="Message: QRequest" anchor="Section_5_1_5">
<t>Every query request contains the following common elements: </t>
<t><list style="hanging">
<t hangText="Index :">Integer [0..1] Index used to request a specific response when multiple responses are available. </t>
</list></t>
</section>
<section title="Message: QResponse" anchor="Section_5_1_6">
<t>Every Query Response contains the following common elements: </t>
<t><list style="hanging">
<t hangText="Status :">Integer [1..1] Status return code value </t>
<t hangText="StatusDescription :">String [0..1] Describes the status code (ignored by processors) </t>
<t hangText="Index :">Integer [0..1] Index of the current response. </t>
<t hangText="Count :">Integer [0..1] Number of responses available. </t>
</list></t>
</section>
<section title="Structure: Identifier" anchor="Section_5_1_7">
<t>Specifies an Internet service by means of a DNS address and either a DNS service prefix, an IP port number or both. An Internet peer connection MAY be specified by additionally specifying an account. </t>
<t><list style="hanging">
<t hangText="Name :">Name [1..1] The DNS name of the service to connect to. Internationalized DNS names MUST be encoded in punycode encoding. </t>
<t hangText="Account :">Label [0..1] Identifies the account to connect to in the case that a peer connection is to be established. </t>
<t hangText="Service :">Name [0..1] The DNS service prefix defined for use with DNS records that take a service prefix including SRV. </t>
<t hangText="Port :">Integer [0..1] IP Port number. A service identifier MUST specify either a service or a port or both. </t>
</list></t>
</section>
<section title="Structure: Connection" anchor="Section_5_1_8">
<t><list style="hanging">
<t hangText="IPAddress :">String [0..1] IP address in string representation </t>
<t hangText="IPPort :">Integer [0..1] IP port. 1-65535 </t>
<t hangText="Transport :">String [0..1] Transport (RAW, TLS, IPSEC) </t>
<t hangText="TransportPolicy :">String [0..1] Transport security policy as specified in [TBS] </t>
<t hangText="ProtocolPolicy :">String [0..1] Application security policy specification as specified by the application protocol. </t>
<t hangText="Advice :">Advice [0..1] Additional information that a service MAY return to support a service connection identification. </t>
</list></t>
</section>
<section title="Structure: Credential" anchor="Section_5_1_9">
<t><list style="hanging">
<t hangText="Type :">String [0..1] [TBS]</t>
<t hangText="Data :">Binary [0..1] [TBS]</t>
</list></t>
</section>
<section title="Structure: CertificateID" anchor="Section_5_1_10">
<t><list style="hanging">
<t hangText="Type :">String [0..1] [TBS]</t>
<t hangText="Data :">Binary [0..1] [TBS]</t>
</list></t>
</section>
<section title="Structure: Advice" anchor="Section_5_1_11">
<t>Additional information that a service MAY return to support a service connection identification. For example, DNSSEC signatures chains, SAML assertions, DANE records, Certificate Transparency proof chains, etc. </t>
<t><list style="hanging">
<t hangText="Type :">Label [0..1] The IANA MIME type of the content type </t>
<t hangText="Data :">Binary [0..1] The advice data. </t>
</list></t>
</section>
<section title="Structure: Service" anchor="Section_5_1_12">
<t>Describes a service connection </t>
<t><list style="hanging">
<t hangText="Identifier :">Identifier [0..Many] Internet addresses to which the service is to be bound. </t>
<t hangText="Connection :">Connection [0..1] Service connection parameters. </t>
</list></t>
</section>
</section>
</section>
<section title="OBPQuery" anchor="Section_6">
<section title="QueryConnect" anchor="Section_6_1">
<t>Requests a connection context to connect to a specified Internet service or peer. </t>
<section title="Message: QueryConnectRequest" anchor="Section_6_1_1">
<t>Specifies the Internet service or peer that a connection is to be established to and the acceptable security policies. </t>
<t><list style="hanging">
<t hangText="Identifier :">Identifier [0..1] Identifies the service or peer to which a connection is requested. </t>
<t hangText="Policy :">Label [0..Many] Acceptable credential validation policy. </t>
<t hangText="ProveIt :">Boolean [0..1] If set the broker SHOULD send advice to permit the client to validate the proposed connection context. </t>
</list></t>
</section>
<section title="Message: QueryConnectResponse" anchor="Section_6_1_2">
<t>Returns one or more connection contexts in response to a QueryConnectRequest Message. </t>
<t><list style="hanging">
<t hangText="Connection :">Connection [0..Many] An ordered list of connection contexts with the preferred connection context listed first. </t>
<t hangText="Advice :">Advice [0..1] Proof information to support the proposed connection context. </t>
<t hangText="Policy :">Label [0..Many] Policy under which the credentials have been verified. </t>
</list></t>
</section>
</section>
<section title="Validate" anchor="Section_6_2">
<t>The Validate query requests validation of credentials presented to establish a connection. For example credentials presented by a server in the process of setting up a TLS session. </t>
<section title="Message: ValidateRequest" anchor="Section_6_2_1">
<t>Specifies the credentials to be validated and the purpose for which they are to be used. </t>
<t><list style="hanging">
<t hangText="Service :">Service [0..1] Describes the service for which the credentials are presented for access. </t>
<t hangText="Credential :">Credential [0..Many] Credentials for which validation is requested. </t>
<t hangText="CertificateID :">CertificateID [0..Many] OCSP Certificate Identifiers for which validation is requested. </t>
<t hangText="Policy :">Label [0..Many] Policy under which the credentials have been verified. </t>
</list></t>
</section>
<section title="Message: ValidateResponse" anchor="Section_6_2_2">
<t>Reports the status of the credential presented. </t>
<t><list style="hanging">
<t hangText="Policy :">Label [0..Many] Policy under which the credentials have been verified. </t>
</list></t>
</section>
</section>
</section>
<section title="Transport Bindings" anchor="Section_7">
<t>To achieve an optimal balance of efficiency and availability, two transport bindings are defined: </t>
<t><list style="hanging">
<t hangText="JSON over HTTP (TLS or TCP)">Supports all forms of OBP transaction in all network environments.</t>
<t hangText="JSON-B over UYFM (UDP)">Provides efficient support for all OBP query transactions and is accessible in most network environments.</t>
</list></t>
<t>Support for the HTTP binding is REQUIRED. </t>
<t>An OBP message consists of three parts:</t>
<t><list style="hanging">
<t hangText="Ticket [If required]">If specified, identifies the cryptographic key and algorithm parameters to be used to secure the message payload. </t>
<t hangText="Payload [Required]">If the ticket context does not specify use of an encryption algorithm, contains the message data. Otherwise contains the message data encrypted under the encryption algorithm and key specified in the ticket context. </t>
<t hangText="Authenticator [If required]">If the ticket context specifies use of a Message Authentication Code (MAC), contains the MAC value calculated over the payload data using the authentication key bound to the ticket. </t>
</list></t>
<t>Note that although each of the transport bindings defined in this specification entail the use of a JSON encoding for the message data, this is not a necessary requirement for a transport binding. </t>
<section title="JSON Payload Binding" anchor="Section_7_1">
<t><list style="hanging">
<t hangText="Integer">Data of type Integer is encoded using the JSON number encoding.</t>
<t hangText="Name">Data of type Name is encoded using the JSON string encoding.</t>
<t hangText="String">Data of type String is encoded using the JSON string encoding.</t>
<t hangText="Binary">Data of type Binary is converted to strings using the Base64url encoding specified in [!RFC4648] /&gt; and encoded using the JSON string type.</t>
<t hangText="DateTime">Data of type DateTime is converted to string using the UTC time conversion specified in [!RFC3339] /&gt; with a UTC offset of 00:00.</t>
</list></t>
</section>
</section>
<section title="Acknowledgements" anchor="Section_8">
<t>Rob Stradling, Robin Alden... </t>
</section>
<section title="Security Considerations" anchor="Section_9">
<section title="Denial of Service" anchor="Section_9_1">
</section>
<section title="Breach of Trust" anchor="Section_9_2">
</section>
<section title="Coercion" anchor="Section_9_3">
</section>
</section>
<section title="IANA Considerations" anchor="Section_10">
<t>[TBS list out all the code points that require an IANA registration] </t>
</section>
<section title="Example Data" anchor="Section_11">
<t/>
<section title="Ticket A" anchor="Section_11_1">
<t/>
</section>
<section title="Ticket B" anchor="Section_11_2">
<t/>
</section>
</section>
</middle>
<back>
<references title="Normative References">
<reference anchor="RFC6698">
<front>
<title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
<author fullname="P. Hoffman" initials="P." surname="Hoffman">
<organization/>
<address>
</address>
</author>
<author fullname="J. Schlyter" initials="J." surname="Schlyter">
<organization/>
<address>
</address>
</author>
<date month="August" year="2012"/>
</front>
<seriesInfo name="RFC" value="6698"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc6698.txt" octets="84034"/>
</reference>
<reference anchor="RFC5280">
<front>
<title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
<author fullname="D. Cooper" initials="D." surname="Cooper">
<organization/>
<address>
</address>
</author>
<author fullname="S. Santesson" initials="S." surname="Santesson">
<organization/>
<address>
</address>
</author>
<author fullname="S. Farrell" initials="S." surname="Farrell">
<organization/>
<address>
</address>
</author>
<author fullname="S. Boeyen" initials="S." surname="Boeyen">
<organization/>
<address>
</address>
</author>
<author fullname="R. Housley" initials="R." surname="Housley">
<organization/>
<address>
</address>
</author>
<author fullname="W. Polk" initials="W." surname="Polk">
<organization/>
<address>
</address>
</author>
<date month="May" year="2008"/>
</front>
<seriesInfo name="RFC" value="5280"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc5280.txt" octets="352580"/>
</reference>
<reference anchor="RFC5055">
<front>
<title>Server-Based Certificate Validation Protocol (SCVP)</title>
<author fullname="T. Freeman" initials="T." surname="Freeman">
<organization/>
<address>
</address>
</author>
<author fullname="R. Housley" initials="R." surname="Housley">
<organization/>
<address>
</address>
</author>
<author fullname="A. Malpani" initials="A." surname="Malpani">
<organization/>
<address>
</address>
</author>
<author fullname="D. Cooper" initials="D." surname="Cooper">
<organization/>
<address>
</address>
</author>
<author fullname="W. Polk" initials="W." surname="Polk">
<organization/>
<address>
</address>
</author>
<date month="December" year="2007"/>
</front>
<seriesInfo name="RFC" value="5055"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc5055.txt" octets="198764"/>
</reference>
<reference anchor="RFC6962">
<front>
<title>Certificate Transparency</title>
<author fullname="B. Laurie" initials="B." surname="Laurie">
<organization/>
<address>
</address>
</author>
<author fullname="A. Langley" initials="A." surname="Langley">
<organization/>
<address>
</address>
</author>
<author fullname="E. Kasper" initials="E." surname="Kasper">
<organization/>
<address>
</address>
</author>
<date month="June" year="2013"/>
</front>
<seriesInfo name="RFC" value="6962"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc6962.txt" octets="55048"/>
</reference>
<reference anchor="I-D.hallambaker-omnipublish">
<front>
<title>[Reference Not Found!]</title>
<author initials="" surname="">
<organization/>
<address>
</address>
</author>
<date/>
</front>
</reference>
<reference anchor="RFC3339">
<front>
<title>Date and Time on the Internet: Timestamps</title>
<author fullname="Graham Klyne" initials="G." surname="Klyne">
<organization>Clearswift Corporation</organization>
<address>
</address>
</author>
<author fullname="Chris Newman" initials="C." surname="Newman">
<organization>Sun Microsystems</organization>
<address>
</address>
</author>
<date month="July" year="2002"/>
</front>
<seriesInfo name="RFC" value="3339"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc3339.txt" octets="35064"/>
<format type="HTML" target="http://xml.resource.org/public/rfc/html/rfc3339.html" octets="65570"/>
<format type="XML" target="http://xml.resource.org/public/rfc/xml/rfc3339.xml" octets="37259"/>
</reference>
<reference anchor="RFC4648">
<front>
<title>The Base16, Base32, and Base64 Data Encodings</title>
<author fullname="S. Josefsson" initials="S." surname="Josefsson">
<organization/>
<address>
</address>
</author>
<date month="October" year="2006"/>
</front>
<seriesInfo name="RFC" value="4648"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc4648.txt" octets="35491"/>
</reference>
<reference anchor="I-D.hallambaker-httpsession">
<front>
<title>HTTP Session Management</title>
<author fullname="Phillip Hallam-Baker" initials="P" surname="Hallam-Baker">
<organization/>
<address>
</address>
</author>
<date day="21" month="January" year="2014"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-httpsession-02"/>
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-hallambaker-httpsession-02.txt"/>
<format type="PDF" target="http://www.ietf.org/internet-drafts/draft-hallambaker-httpsession-02.pdf"/>
</reference>
<reference anchor="I-D.hallambaker-wsconnect">
<front>
<title>JSON Service Connect (JCX) Protocol</title>
<author fullname="Phillip Hallam-Baker" initials="P" surname="Hallam-Baker">
<organization/>
<address>
</address>
</author>
<date day="21" month="January" year="2014"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-wsconnect-05"/>
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-hallambaker-wsconnect-05.txt"/>
<format type="PDF" target="http://www.ietf.org/internet-drafts/draft-hallambaker-wsconnect-05.pdf"/>
</reference>
<reference anchor="RFC2119">
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname="Scott Bradner" initials="S." surname="Bradner">
<organization>Harvard University</organization>
<address>
</address>
</author>
<date month="March" year="1997"/>
<keyword>keyword</keyword>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="2119"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc2119.txt" octets="4723"/>
<format type="HTML" target="http://xml.resource.org/public/rfc/html/rfc2119.html" octets="17970"/>
<format type="XML" target="http://xml.resource.org/public/rfc/xml/rfc2119.xml" octets="5777"/>
</reference>
<reference anchor="RFC4627">
<front>
<title>The application/json Media Type for JavaScript Object Notation (JSON)</title>
<author fullname="D. Crockford" initials="D." surname="Crockford">
<organization/>
<address>
</address>
</author>
<date month="July" year="2006"/>
</front>
<seriesInfo name="RFC" value="4627"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc4627.txt" octets="16319"/>
</reference>
<reference anchor="I-D.hallambaker-privatedns">
<front>
<title>Private-DNS</title>
<author fullname="Phillip Hallam-Baker" initials="P" surname="Hallam-Baker">
<organization/>
<address>
</address>
</author>
<date day="9" month="May" year="2014"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-privatedns-00"/>
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-hallambaker-privatedns-00.txt"/>
</reference>
<reference anchor="RFC2616">
<front>
<title>Hypertext Transfer Protocol -- HTTP/1.1</title>
<author fullname="Roy T. Fielding" initials="R." surname="Fielding">
<organization>Department of Information and Computer Science</organization>
<address>
</address>
</author>
<author fullname="James Gettys" initials="J." surname="Gettys">
<organization>World Wide Web Consortium</organization>
<address>
</address>
</author>
<author fullname="Jeffrey C. Mogul" initials="J." surname="Mogul">
<organization>Compaq Computer Corporation</organization>
<address>
</address>
</author>
<author fullname="Henrik Frystyk Nielsen" initials="H." surname="Frystyk">
<organization>World Wide Web Consortium</organization>
<address>
</address>
</author>
<author fullname="Larry Masinter" initials="L." surname="Masinter">
<organization>Xerox Corporation</organization>
<address>
</address>
</author>
<author fullname="Paul J. Leach" initials="P." surname="Leach">
<organization>Microsoft Corporation</organization>
<address>
</address>
</author>
<author fullname="Tim Berners-Lee" initials="T." surname="Berners-Lee">
<organization>World Wide Web Consortium</organization>
<address>
</address>
</author>
<date month="June" year="1999"/>
</front>
<seriesInfo name="RFC" value="2616"/>
<format type="TXT" target="http://www.rfc-editor.org/rfc/rfc2616.txt" octets="422317"/>
<format type="PS" target="http://www.rfc-editor.org/rfc/rfc2616.ps" octets="5529857"/>
<format type="PDF" target="http://www.rfc-editor.org/rfc/rfc2616.pdf" octets="550558"/>
<format type="HTML" target="http://xml.resource.org/public/rfc/html/rfc2616.html" octets="637302"/>
<format type="XML" target="http://xml.resource.org/public/rfc/xml/rfc2616.xml" octets="493420"/>
</reference>
<reference anchor="I-D.hallambaker-jsonbcd">
<front>
<title>Binary Encodings for JavaScript Object Notation: JSON-B, JSON-C, JSON-D</title>
<author fullname="Phillip Hallam-Baker" initials="P" surname="Hallam-Baker">
<organization/>
<address>
</address>
</author>
<date day="21" month="January" year="2014"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-hallambaker-jsonbcd-01"/>
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-hallambaker-jsonbcd-01.txt"/>
<format type="PDF" target="http://www.ietf.org/internet-drafts/draft-hallambaker-jsonbcd-01.pdf"/>
</reference>
</references>
</back>
</rfc>
