[security] how secure is openid? advise pls..
SitG Admin
sysadmin at shadowsinthegarden.com
Tue Feb 10 17:00:18 UTC 2009
>I need to be on a watch of what people do. So can i atleast restrict
>them to use only one id with which they login the first time?
>because i have to calculate their usage and all and fix them
>specific download quotas. so i shud make sure that the user doesn't
>use another openid to login and continue using the website. pls
>advise..
Um . . . no, OpenID (and this applies to any authentication system)
is not the answer. There is NO authentication system (and don't trust
anyone in the world who tells you otherwise) that can guarantee you,
over the anonymity of the 'net, a given user is not someone who has
dealt with you before. Simply impossible. Individuals (important
distinction from users, here - an individual is any person at the
other end of a keyboard, users are how you know them at your site)
cannot be FORCED to use the same credentials consistently. You
*might*, conceivably, receive an offer from some mercenary team that
would meet (on your behalf) potential "clients" (wannabe "users"),
babysit them 24/7, and give you a call every time the individual was
about to log in so you could confirm their username - but this is an
exception, not the rule, and in any case unfeasible for your
non-profitable music site ;)
Unless you're the RIAA . . . but even they haven't gone that far. Yet ;)
You can limit your popularity with certain OpenID's, in an attempt to
combat such tactics as "subdomain1.user.com, subdomain2.user.com,
subdomain3.user.com", but what do you do if you see
"profile.yahoo.com/D1105508B89AFBBF162C4B88966"? (Note: probably not
a valid URI for Yahoo, just a quick example.) Does this mean that
users are availing themselves of an ability to present a different
URI to an OP on each authentication, to avoid tracking? Perhaps it
simply means that the user has created more than one Yahoo account?
(Which, by the way, are free.) How do you propose to keep the user
from trying "another OpenID" when that OpenID is the very method by
which you would identify users?
You can track their IP address (this could be part of an
authentication system, complementing OpenID), banning numbers and
then entire blocks with excessive use (the exact definition of
"excessive" being up to you), but some of them will just go through
free proxies. This is self-limiting; if more than one person uses a
proxy, you just catch it faster. If you do go that route, automate
it, because new proxies are always becoming available (and old ones,
disappearing), and you don't want to waste your time on that endless
task.
I don't recommend it, though; you can go a long way with such
countermeasures, and STILL have problems. You can hope to keep the
costs down to manageable levels, at best. But users who want to
"cheat" will still do so; *they* can outthink *you* - not all of
them, and not all of the time, but a few of them will always be
slipping through. The strategy I recommend is *rewarding* users for
staying with a single OpenID: make the benefits outweigh whatever
short-term gain they might receive, so users won't *want* to cheat
that way.
This *would* encourage people to use the same OpenID for logging in,
no matter where they are. Find out which OP's (if any) offer a unique
password for logging in to predefined sites (OSP: one-site-password),
and recommend them to users, so the OP doesn't became a gateway to
all that user's *other* sites if they log into your site from a
public terminal.
-Shade
More information about the security
mailing list