diff --git a/inbox/hacx.xml b/inbox/hacx.xml index f4c737ae..788d7f44 100644 --- a/inbox/hacx.xml +++ b/inbox/hacx.xml @@ -38,14 +38,26 @@

Various methods exist to connect to XMPP servers over direct TLS, &xep0368; defines SRV records, &rfc7395; defines websocket, &xep0206; defines BOSH. HACX defines a method to retrieve all of those along with optional extra information such as SNI/ALPN requirements and pinned public keys from a &rfc5785; well-known URI over HTTPS.

+ +

Several alternatives were considered to avoid writing yet-another-spec but they were all deficient in various ways:

+ +
+

HACX servers MUST use HTTPS. This means that the HACX client MUST verify the certificate of the HTTPS service at the source domain in order to securely "bootstrap" into the use of HACX; specifically, the rules of &rfc2818; apply to this "bootstrapping" step to provide a secure basis for all subsequent - HACX operations. HACX clients and servers MUST support and use - methods to increase the security of this HTTPS request using all available - means such as HPKP (&rfc7469;), HSTS (&rfc6797;), DANE (&rfc6698;), etc. + HACX operations. HACX clients and servers MUST support HPKP (&rfc7469;), HSTS (&rfc6797;), and DANE (&rfc6698;), + and SHOULD support any future standard that serves to increase the security of this HTTPS request.

A HACX document is retrieved over secure HTTP in the following way: