[security] Tailoring headers to Consumers

SitG Admin sysadmin at shadowsinthegarden.com
Sat May 31 04:21:27 UTC 2008


(Slightly modified from the version posted to general@; SSH isn't 
necessary, introducing a web-based interface may expose the site to 
that attack avenue, but if the interface is tightly restricted to 
this purpose an attacker will find that it is useless unless they 
*also* compromise the Provider.)

Something that I've been contemplating for a bit, and generally 
having a disturbing lack of success finding problems with, is the 
idea of having my server only include some OpenID headers when myself 
or a pre-identified Relying Party (by IP and/or UserAgent) requests 
the page. Visitors could of course adjust their own UserAgent (to see 
my OpenID) with ease; that's not what I'm trying to affect, though. 
The *point* would be to control whether a non-hostile Consumer sees 
*any* OpenID headers at my site; if not, fraudulently representing 
themselves as me would be difficult, even if they *could* spoof my 
credentials. This could provide a layer of protection against 
Providers that turn out to be hostile or vulnerable to a hostile 
party's theft of their authentication records. There are also some 
possible benefits in being able to effectively use *multiple* 
Providers, simultaneously; for unimportant sites or leaving comments, 
a Provider with weak authentication, while for important sites, a 
Provider with biometrics and smart cards and fractally changing 
passwords.

Since I'm unlikely to know the library (this affects UserAgent) a 
Consumer is using when I first try to sign in there, I might have to 
try once while looking at my access logs to figure it out. This is an 
inconvenience, but one I'm okay with; I can probably figure out the 
IP a Consumer is coming from by looking at the address of the server 
that the site I'm trying to log in to is hosted on. It's the Virtual 
Hosts that give me pause, though in *theory* any site that's 
large/important enough for me to worry about it being unintentionally 
"whitelisted" as a Consumer, will have its own dedicated IP address 
anyway.

Even if there aren't any *problems*, the practical difficulty in 
implementing this will probably ensure that most people don't use it. 
I think it looks good as a user-side security measure, but for users 
whose webhosts include static content and don't allow server-side 
scripting, it won't be possible. Even if every Relying Party were to 
identify itself in the UserAgent string by the website it was 
originating from (and that information was available on the site 
during login), many users might simply not be *able* to do anything 
with that information.

-Shade



More information about the security mailing list