[Standards] comments on section 8.3, draft-saintandre-rfc3920bis-06.html
melo at simplicidade.org
Tue Jul 22 15:11:44 UTC 2008
On Jul 22, 2008, at 2:12 AM, Ovidiu Craciun wrote:
> Excerpt from: http://www.xmpp.org/internet-drafts/draft-saintandre-
> "Section: 8.3. Generation of Resource Identifiers
> A resource identifier can be security-critical. For example, if a
> malicious entity can guess a client's resource identifier then it
> may be able to determine if the client (and therefore the
> controlling principal) is online or offline, thus resulting in a
> presence leak as described under Section 15.13 (Presence Leaks).
> Traditionally, XMPP resource identifiers have been generated by
> clients in ways that are not secure (e.g., hardcoding the resource
> identifier to the name of the client or to a common location such
> as "home" or "work"). However, for the sake of proper security, a
> resource identifier SHOULD be random (see [RANDOM] (Eastlake, D.,
> Schiller, J., and S. Crocker, “Randomness Requirements for
> Security,” June 2005.)). It is RECOMMENDED that the resource
> identifier incorporate a Universally Unique Identifier (UUID), for
> which the format specified in [UUID] (Leach, P., Mealling, M., and
> R. Salz, “A Universally Unique IDentifier (UUID) URN Namespace,”
> July 2005.) is RECOMMENDED. "
> From the IMPP RFC I get that:
> X can read Y's presence info only
> (A) if Y's presence info is public domain, or
> (B) if Y previously allowed X to read it's presence.
> In this case, when a malicious entity, that can guess X's resource
> identifier, is be able to read X's presence only if (A) or (B) is
> true, in which case it is not a security threat, it is by default.
> What I am saying is that the presence leaks are not related with
> the easiness of guessing X's resource IDs but if the server is
> handling correctly the presence information for a given JID.
I believe the above paragraph is not referring to presence leaks as a
full <presence> stanza but just as a way for me to know if you are
online or not. It might not be your full <presence> but it is still a
If I can guess your resource, I might trick your client into replying
to an IQ or direct presence stanza. Any of those replies would mean
that you are online at the moment, and therefore constitute a
> Also, the requirement to have a resource identifier be random "for
> the sake of proper security" it is also a forced and unnecessary
> requirement. The server should guarantee the security by
> implementing correctly a secure protocol not by following
If you bind your sessions without a resource, the server will give
you a random resource. For the server to enforce a proper security
perimeter, it would have to filter (drop) IQ's directed to your JID
from JIDs outside your roster. This would most likely prevent some
normal (as in currently available and useful) workflows.
Sometimes I chat with people that are not on my roster, including
file transfer. That would be impossible with a "server-side"
firewall. Of course, you can today implement such firewall with
privacy lists, if your server supports them.
XMPP ID: melo at simplicidade.org
More information about the Standards