Monday, May 18, 2009
At the Internet Identity Workshop 2009A
Tuesday, January 6, 2009
Concerned about phishing ?
OAuth just does the same - it introduces a consistent way to authorize clients to do something on behalf of a user, with the user's permission and not ask for their login credentials. Yes one might argue that malicious clients can spoof as the provider and phish for user's credentuals, but given that most of the providers allow SSO and session persistence, a user would still get alarmed if he is asked to provide his login credentials again.
Cardspace/Infocard selector provides a better security model against phishing by providing a way to completely eliminate the need for passwords. But if the Identity Providers (STS) still require Username/Password claims even with their managed cards, their users are still prone to phishing attacks.
I would recommend everyone to read the User Interface guidelines written by the Web Security Context working group in W3C.
Wednesday, December 31, 2008
2009 The Year Of ....
Nope, I am not going to predict what technology is going to be widely adopted over another, which company will succeed in their online identity and data portability strategies, etc.... to be frankly I don't care. :-)
2008 has been a good year for Identity (Management and Access Control) and I think it will continue into 2009 with more emphasis on the following things:
- User Experience and Value to End Users - I am one of those who say "my mom knows what email is but doesn't know what SMTP/IMAP are" and I want to see the same in online Identity world. Also I am strong believer that SSO alone doesn't carry many benefits to the end users unless there is some data associated with user's Identity that can be shared across different sites/services. IMO - these two together will play a major role in bringing several Identity related technologies into the mainstream.
- Interoperability - not just between services/providers but also between various protocols and technologies in the Open (Web) Stack so they can be all stitched together seamlessly and effortlessly to bring better UX and value to end users.
Anyway eager to see what 2009 has for us and looking forward to work on even more interesting things.... and also very eagerly looking forward to hear my daughter (15m old) talking.
Happy and a Prosperous New Year Everyone !
Friday, December 5, 2008
Open User-Centric Connect ?
Basically IMO - it should be a collection of client side Javascipt, HTML/CSS and server side php/java/.. code, which can be deployed by any Web Site. It should let users configure where they want their activities should be posted to, where to bring their contacts/friends from, etc..
Ofcourse all this should be done only using a combination of open standards like OpenID, OAuth, PoCo, OpenSocial, etc..
Thoughts ?
Wednesday, November 12, 2008
Static OpenID Associations !
One of the things that I have been thinking about recently is about what changes we would need in OpenID to make it easy to build something that provides seamless user experience like FBConnect (just user authentication not sharing user data like friends list, feeds, etc.).
Of course, with the existing OpenID 2.0 spec, it's quite easy to do it (using a combination of checkid_immediate and checkid_setup calls) but the RPs still need to do some heavy lifting in terms of setting up their servers, databases and database replication, etc.. to run on a farm of servers for scalability and performance. (for example storing and sharing discovery, associations and nonce verification information on multiple servers across different data centers and not to mention issues around enabling outgoing http connections to fetch discovery and associations info)
We could argue that the RPs can just use the check_authentication call to OP to verify the assertion but this adds up unnecessary additional latency in the overall authentication process.
And when it comes to enabling SSO with in trusted circles using OpenID, the dynamic discovery and association steps seems unnecessary. Usually trusted circles are limited in size and are used to sharing keys and secrets (meta-data) in some other offline provisioing process anyway.
So with those in mind I wonder if it makes sense to propose an extension to OpenID that would allow OPs and RPs in a trusted circle to establish static associations such that the RPs can just host a simple php/servlet/perl/.net/etc.. handler that validates the assertion returned by the OP using the stored association information locally.
It goes something like this
Allows an RP to preregister with an OP to get it’s own association data.
RP provides it’s preferred association type (HMAC-SHA1/256), and realm
OP SHOULD do the necessary checks based on their business relationship to make sure the realm provided matches the RP , which is out of scope of this extension
OP generates and provides assoc_handle, mac_key and expires_in
RP uses the assoc_handle in the checkid_immediate and checked_setup requests.
OP MUST always make sure the return_to url matches the realm exchanged during the offline provisioning process – not the realm passed in as a request parameter.
OP MUST sign all the positive assertions with the mac_key corresponding to the assoc_handle passed in by the RP.
If a given assoc_handle is expired, OP MUST fail the request (both immediate and non-immediate) with an openid.mode value as “expired_association” along with the expired association handle value as invalidate_handle parameter.
RP MUST verify the assertion signature locally (must not send check_authentication request to OP)
RP MUST make sure the timestamp passed in the response_nonce is within an allowed time period (say 5 mins)
If the RP can do regular nonce checking (to make sure it’s only used once) then it SHOULD do so instead of just checking for the allowed time period as this exposes the replay attacks for a small window of time.
- Alternatively RP MAY sync it's clock based on OP
RP extracts the user’s identity provided by the OP as per the OpenID specification.
To implement this all an RP would need are
- a few config file entries to provide association handle and mac_key to the application code
- a simple OpenID handler (php/perl/servlet/etc..) that uses the association information from config file to generate OpenID Server redirect url to request authentication (which can be cached as the assoc_handle doesn't change) and to verify the response from the OP (validate signature, nonce, etc..)
Of course I know this is defeating the original purpose and intent of OpenID to provide authentication framework for the internet, but given that several people that have done various user experience analysis and finding that OpenID is more useful and meaningful to users when the RPs provide OP specific login buttons anyway (Login with Yahoo, Login with Google, etc..), would supporting something like this be way off the original intent ? Since this will be an optional extension, people who want to support any OpenID out there can still do it, while others who only care about SSO with a few trusted OPs (that they have business relationship with) do not need to reinvent the wheel.
Also another thing to keep in mind is for other apis/protocols (like OAuth) the RPs would need to share consumer information (keys and secrets) anyway.
Thoughts ?
Tuesday, November 11, 2008
Account Recovery for terminated OpenIDs
Can all OPs provide 99.9% uptime SLA ? Or should every user on the internet have his/her own domain that delegates to a trusted OP and can be changed by the user if necessary ?
Any other thoughts ?
all set for Internet Identity Workshop
I am in particular interested about things happening in the OpenID UX improvements side and also to talk about UX improvements in OAuth for mobile/client apps. It's been a long time (June 26th) since we started talking about OAuth spec updates covering very important usecases at the OAuth Summit - so time now to find out where things are with those too.
With the recent job change and the big relocation from East coast to west, I feel like I have been disconnected with the Identity community. Hopefully this IIW would get me back up to speed.
