The problem with IDP initiated SSO
Cantor, Scott
cantor.2 at osu.edu
Tue Dec 23 12:52:16 EST 2014
On 12/23/14, 5:13 PM, "federator" <wpadmin at identiainc.com> wrote:
> Considering the following workflow:
>
>1. The IdP contains a Web front end listing all the SPs which the IdP
>supports. Please note these links are not the URL to SP's but some IdP
>functions to verify the user authentication status.
The set of SPs a Shibboleth IdP could support could be in the thousands.
Even in the facile B2B space that commercial SAML limits itself to, there
are companies with thousands of SPs. You can't just list them all.
You've also turned the IdP into a portal. Users want to access services,
they don't just conveniently go to pages you want them to use to get to
completely different things they really do want to use. The usability of
that approach is just zero.
It also precludes deep linking, and there's a word for federated
applications that don't support deep linking: broken. Breaking the
addressability property of thw web is about as cardinal a sin as you can
commit.
>This approach may be a little awkward since the user always has to go
>back to IdP when logging in to any web site.
It's not just a little awkward, it's extremely awkward.
>Since IdP always has to
>maintain SP's metadata, it has to keep track of all the SPs anyway. I
>was told that this approach could minimize the attack surface compared
>to SP-initiated SSO, since I can easily implement 2-way SSL with both
>IdP and SP (some people just want triple layer security).
I don't know who's telling you that, but that isn't true. There are
academic papers noting the inherent vulnerabilities in unsolicited
response handling in SSO protocols.
The only attack surface involved with SP initiated SSO that I've ever
heard of involves the use of signed requests, and it's merely a denial of
service vector, one among hundreds that any web site is vulnerable to.
Using TLS *is* a fix for this in a very theoretical technical sense, but
it's not a deployable fix. The only deployable ones involve cookies
correlated to requests so that responses aren't accepted without prior
initiation. That said, I have not done the research to figure out how to
implement this. It's not as simple as just using cookies, there also has
to be secret information mixed in known only to the SP.
>XSRF shouldn't be a big concern since most modern browsers and web
>applications tie cookies with distinct URLs. If this is not the case, I
>would love to hear a concrete use case/example.
Cookies are only meaningfully bound to domains, not URLs. Beyond that, I'm
not sure what you're asking. I've had people literally file bugs against
the SP because it's vulnerable to XSRF, and there's not much I can say
other than I want to fix it, but the only fix is to prohibit uncorrelated
responses, which is unfortunately a very common hack to cirumvent the need
for discovery.
The most common example XSRF attack scenario is the bank scenario I
mentioned, which generalizes to any scenario in which getting somebody
else to act in the security context of an attacker is a benefit to the
attacker.
-- Scott
More information about the users
mailing list