[OpenID] XRDS multi-OP listing?
Martin Atkins
mart at degeneration.co.uk
Fri Jun 6 07:07:01 UTC 2008
SitG Admin wrote:
>
>> You got me thinking though about a way for the user (or someone on his
>> behalf) host the selector himself.
>
> I found this idea to be very exciting at first, because it would allow
> users without dynamic coding ability *or* hosts that support server-side
> scripting to outsource the job to sites that *do*. And at first I was
> thinking that the privacy-enhancing effect from decentralization would
> be even more available, since the ID selector would be very simple
> compared to implementing an OpenID server or similar, enabling just
> about *anyone* to run a selector - but then I realized that it'd *also*
> be introducing yet another point of *failure*. You're essentially doing
> the equivalent of giving some third party root access to your OpenID
> headers, without exposing the rest of your site to their access or
> control, but that third party can be hostile or become compromised. Is
> the security at this third party equal to or superior to what you use to
> protect your site?
The provider selector doesn't actually have any ability to make
assertions on behalf of the providers. Only providers listed via the
normal delegation mechanism in the XRDS document would actually be able
to make assertions. Maybe an example would help to illustrate this:
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"><XRD>
<Service priority="40">
<Type>http://openid.net/signon/1.0</Type>
<URI>http://www.livejournal.com/openid/server.bml</URI>
<LocalID>http://exampleusername.livejournal.com/</LocalID>
</Service>
<Service>
<Type>http://openid.net/signon/1.0</Type>
<URI>http://example.com/openidserver</URI>
<LocalID>http://blah.example.com/</LocalID>
</Service>
<Service>
<Type>http://example.net/openid-provider-selector</Type>
<URI>http://www.example.org/opselector</URI>
</Service>
</XRD></xrds:XRDS>
Note that the OP selector is not itself a provider, so it has no ability
to make assertions about this identifier itself. Only LiveJournal and
example.com can actually make assertions, or else the verification step
will fail.
Of course, if a third-party is hosting your XRDS document then they
could change it to say whatever they like. I would guess that in
practice almost everyone using delegation has a third-party hosting
their XRDS document, whether it be on a basic web hosting account or on
a rented server.
I see your concern about it being another thing that might fail.
> The person hosting your OP selector can keep records for the user of
> what OP's have been designated in the past, but that same person could
> omit from their records any sign that they were having their selector
> redirect requests from certain RP's to an OP they controlled, so it's a
> bit more serious than just a compromised OP; how do you know whether
> your OP was used or the person hosting your selector authenticated as
> you using another OP or the RP for some reason logged you in without
> properly verifying your identity?
Are you describing a variant on the OP-spoofing phishing attack here?
I suppose that's possible. However, since the OP selector is a service
that was chosen by the user rather than an arbitrary site as in the RP
phishing case I would consider this less of a problem here.
More information about the general
mailing list