Quoting XEP-0219:
> As a user, I may want to know three things:
> 1. If my connection to my server is encrypted.
> 2. If my server's connection to my contact's server is encrypted.
> 3. If my contact's connection to their server is encrypted.

I'd add a fourth item:
4. If my server's encrypted connections with my contact's server go down and are replaced by unencrypted connections.

This could occur, for example, if a man-in-the-middle disrupts the communication channels and then removes the <starttls/> elements from the servers' subsequent attempts to reconnect.

At first glance this is harder to implement, but without it AFAICT hop-check isn't secure (even if you trust the servers).

Servers could implement this by remembering all the servers they have connected securely to and never again accepting insecure connections with those servers. That way they would never have to inform their clients about the change in circumstances.

Or we could add a requirement to XEP-0219 that all servers supporting Hop Check MUST in all cases employ server-2-server connections only if they are encrypted.

In fact perhaps that requirement could be included in RFC 3920bis?

- Ian

Reply via email to