Jump to content

OpenID

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 204.210.242.157 (talk) at 21:26, 14 December 2011 (→‎Technical Overview: Removed dead link). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The OpenID logo

OpenID is an open standard that describes how users can be authenticated in a decentralized manner, eliminating the need for services to provide their own ad hoc systems and allowing users to consolidate their digital identities.[1] Users may create accounts with their preferred OpenID identity providers, and then use those accounts as the basis for signing on to any website which accepts OpenID authentication. The OpenID standard provides a framework for the communication that must take place between the identity provider and the OpenID acceptor (the ‘relying party’).[2] An extension to the standard (the OpenID Attribute Exchange) facilitates the transfer of user attributes, such as name and gender, from the OpenID identity provider to the relying party (each relying party may request a different set of attributes, depending on its requirements).[3]

The OpenID protocol does not rely on a central authority to authenticate a user's identity. Moreover, neither services nor the OpenID standard may mandate a specific means by which to authenticate users, allowing for approaches ranging from the common (such as passwords) to the novel (such as smart cards or biometrics).

The term OpenID may also refer to an identifier as specified in the OpenID standard; these identifiers take the form of a unique URI, and are managed by some 'OpenID provider' that handles authentication.[1]

OpenID authentication is now used and provided by several large websites. Providers include AOL, BBC,[4] Google,[5] IBM, MySpace, Orange, PayPal, VeriSign, LiveJournal, and Yahoo!.[1][6][7][8]

Technical Overview

OpenID enables an End-user, the entity that wants to assert a particular identity, to communicate with a Relying party, the site that wants to verify the end-user's identifier. Other terms for this party include "service provider" or the now obsolete "consumer". This communication is done through the exchange of an Identifier or OpenID, which is the URL or XRI chosen by the end-user to name the end-user's identity. An Identity provider or OpenID provider (OP) , which is a service that specializes in registering OpenID URLs or XRIs, provides the OpenID authentication (and possibly other identity services). The exchange is enabled by a User-agent, which is the program (such as a browser) used by the end-user to communicate with the relying party and OpenID provider.

Logging in

The end-user interacts with a relying party (such as a website) that provides a means by which to specify an OpenID for the purposes of authentication; an end-user typically has previously registered an OpenID (e.g. alice.openid.example.org) with an OpenID provider (e.g. openid.example.org).[1]

The relying party typically transforms the OpenID into a canonical URL form (e.g. http://alice.openid.example.org/).

  • With OpenID 1.0, the relying party then requests the HTML resource identified by the URL and reads an HTML link tag to discover the OpenID provider's URL (e.g. http://openid.example.org/openid-auth.php). The relying party also discovers whether to use a delegated identity (see below).
  • With OpenID 2.0, the relying party discovers the OpenID provider URL by requesting the XRDS document (also called the Yadis document) with the content type application/xrds+xml; this document may be available at the target URL and is always available for a target XRI.

There are two modes in which the relying party may communicate with the OpenID provider:

  • checkid_immediate, in which the relying party requests that the OpenID provider not interact with the end-user. All communication is relayed through the end-user's user-agent without explicitly notifying the end-user.
  • checkid_setup, in which the end-user communicates with the OpenID provider via the same user-agent used to access the relying party.

The checkid_immediate mode can fall back to the checkid_setup mode if the operation cannot be automated.

First, the relying party and the OpenID provider (optionally) establish a shared secret, referenced by an associate handle, which the relying party then stores. If using the checkid_setup mode, the relying party redirects the user's user-agent to the OpenID provider so the end-user can authenticate directly with the OpenID provider.

The method of authentication may vary, but typically, an OpenID provider prompts the end-user for a password or an InfoCard, and then asks whether the end-user trusts the relying party to receive the necessary identity details.

If the end-user declines the OpenID provider's request to trust the relying party, then the user-agent is redirected back to the relying party with a message indicating that authentication was rejected; the relying party in turn refuses to authenticate the end-user.

If the end-user accepts the OpenID provider's request to trust the relying party, then the user-agent is redirected back to the relying party along with the end-user's credentials. That relying party must then confirm that the credentials really came from the OpenID provider. If the relying party and OpenID provider had previously established a shared secret, then the relying party can validate the identity of the OpenID provider by comparing its copy of the shared secret against the one received along with the end-user's credentials; such a relying party is called stateful because it stores the shared secret between sessions. In contrast, a stateless or dumb relying party must make one more background request (check_authentication) to ensure that the data indeed came from the OpenID provider.

After the OpenID has been verified, authentication is considered successful and the end-user is considered logged in to the relying party under the identity specified by the given OpenID (e.g. alice.openid.example.org). The relying party typically then stores the end-user's OpenID along with the end-user's other session information.

Identifiers

To obtain an OpenID-enabled URL that can be used to log into OpenID-enabled websites, a user needs to register an OpenID identifier with an identity provider. Identity providers offer the ability to register a URL (typically a third-level domain, e.g. username.example.com) that will automatically be configured with OpenID authentication service.

Once they have registered an OpenID, a user can also use an existing URL under their own control (such as a blog or home page) as an alias or "delegated identity". They simply insert the appropriate OpenID tags in the HTML[9] or serve a Yadis document.[10]

Starting with OpenID Authentication 2.0 (and some 1.1 implementations), there are two types of identifiers that can be used with OpenID: URLs and XRIs.

XRIs are a new form of Internet identifier designed specifically for cross-domain digital identity. For example, XRIs come in two forms—i-names and i-numbers—that are usually registered simultaneously as synonyms. I-names are reassignable (like domain names), while i-numbers are never reassigned. When an XRI i-name is used as an OpenID identifier, it is immediately resolved to the synonymous i-number (the CanonicalID element of the XRDS document). This i-number is the OpenID identifier stored by the relying party. In this way, both the user and the relying party are protected from the user's OpenID identity ever being taken over by another party as can happen with a URL based on a reassignable DNS name.

Adoption

As of December 2009, there are over 1 billion OpenID enabled accounts on the Internet (see below) and approximately 9 million sites have integrated OpenID consumer support.[11]

OpenID Foundation

The OpenID Foundation is a 501(c)(3) non-profit organization incorporated in the United States. The OpenID Foundation was formed to help manage copyright, trademarks, marketing efforts and other activities related to the success of the OpenID community.

People

The OpenID Foundation's board of directors has eight community members and seven corporate members:[12]

Legal issues

The OpenID trademark in the United States was assigned to the OpenID Foundation in March 2008.[13] It had been registered by NetMesh Inc. before the OpenID Foundation was operational.[14][15] In Europe, as of August 31, 2007, the OpenID trademark is registered to the OpenID Europe Foundation.[16]

The OpenID logo was designed by Randy "ydnar" Reddig, who in 2005 had expressed plans to transfer the rights to an OpenID organization.[17]

Since the original announcement of OpenID, the official site has stated:

Nobody should own this. Nobody's planning on making any money from this. The goal is to release every part of this under the most liberal licenses possible, so there's no money or licensing or registering required to play. It benefits the community as a whole if something like this exists, and we're all a part of the community.

— [18]

Sun Microsystems, VeriSign and a number of smaller companies involved in OpenID have issued patent non-assertion covenants covering OpenID 1.1 specifications. The covenants state that the companies will not assert any of their patents against OpenID implementations and will revoke their promises from anyone who threatens, or asserts, patents against OpenID implementors.[19][20]

Security and phishing

Some observers have suggested that OpenID has security weaknesses and may prove vulnerable to phishing attacks.[21][22][23] For example, a malicious relying party may forward the end-user to a bogus identity provider authentication page asking that end-user to input their credentials. On completion of this, the malicious party (who in this case also control the bogus authentication page) could then have access to the end-user's account with the identity provider, and as such then use that end-user’s OpenID to log into other services.

In an attempt to combat possible phishing attacks some OpenID providers mandate that the end-user needs to be authenticated with them prior to an attempt to authenticate with the relying party.[24] This relies on the end-user knowing the policy of the identity provider. In December 2008, the OpenID Foundation approved version 1.0 of the Provider Authentication Policy Extension (PAPE), which "enables Relying Parties to request that OpenID Providers employ specified authentication policies when authenticating users and for OpenID Providers to inform the Relying Parties which policies were actually used."[25]

Other security issues identified with OpenID involve lack of privacy and failure to address the trust problem.[26]

Another important vulnerability is present in the last step in the authentication scheme: the redirect-URL from the Identity Provider to the Relying Party. The problem with this redirect is the fact that anyone who can obtain this URL (e.g. by sniffing the wire) can replay it and get logged into the site as the victim user. Some of the Identity Providers use nonces (number used once) to allow a user to log into the site once and fail all the consecutive attempts. The nonce solution works if the user is the first one to use the URL. However a fast attacker who is sniffing the wire can obtain the URL and immediately reset a user's TCP connection (as an attacker is sniffing the wire and knows the required TCP sequence numbers) and then execute the replay attack as described above. Thus nonces only protect against passive attackers but cannot prevent active attackers from executing the replay attack.[27]


History

The original OpenID authentication protocol was developed in May 2005[28] by Brad Fitzpatrick, creator of popular community website LiveJournal, while working at Six Apart.[29] Initially referred to as Yadis (an acronym for "Yet another distributed identity system"),[30] it was named OpenID after the openid.net domain name was given to Six Apart to use for the project.[31] OpenID support was soon implemented on LiveJournal and fellow LiveJournal engine community DeadJournal for blog post comments and quickly gained attention in the digital identity community.[32][33] Web developer JanRain was an early supporter of OpenID, providing OpenID software libraries and expanding its business around OpenID-based services.

In late June, discussions started between OpenID users and developers from enterprise software company NetMesh, leading to collaboration on interoperability between OpenID and NetMesh's similar Light-Weight Identity (LID) protocol. The direct result of the collaboration was the Yadis discovery protocol, adopting the name originally used for OpenID. The new Yadis was announced on October 24, 2005.[34] After a discussion at the 2005 Internet Identity Workshop a few days later, XRI/i-names developers joined the Yadis project,[35] contributing their Extensible Resource Descriptor Sequence (XRDS) format for utilization in the protocol.[36]

In December, developers at Sxip Identity began discussions with the OpenID/Yadis community[37] after announcing a shift in the development of version 2.0 of its Simple Extensible Identity Protocol (SXIP) to URL-based identities like LID and OpenID.[38] In March 2006, JanRain developed a Simple Registration (SREG) extension for OpenID enabling primitive profile-exchange[39] and in April submitted a proposal to formalize extensions to OpenID. The same month, work had also begun on incorporating full XRI support into OpenID.[40] Around early May, key OpenID developer David Recordon left Six Apart, joining VeriSign to focus more on digital identity and guidance for the OpenID spec.[33][41] By early June, the major differences between the SXIP 2.0 and OpenID projects were resolved with the agreement to support multiple personas in OpenID by submission of an identity provider URL rather than a full identity URL. With this, as well as the addition of extensions and XRI support underway, OpenID was evolving into a full-fledged digital identity framework, with Recordon proclaiming "We see OpenID as being an umbrella for the framework that encompasses the layers for identifiers, discovery, authentication and a messaging services layer that sits atop and this entire thing has sort of been dubbed 'OpenID 2.0'.[42] " In late July, Sxip began to merge its Digital Identity Exchange (DIX) protocol into OpenID, submitting initial drafts of the OpenID Attribute Exchange (AX) extension in August. Late in 2006, a ZDNet opinion piece made the case for OpenID to users, web site operators and entrepreneurs.[43]

On January 31, 2007, Symantec announced support for OpenID in its Identity Initiative products and services.[44] A week later, on February 6 Microsoft made a joint announcement with JanRain, Sxip, and VeriSign to collaborate on interoperability between OpenID and Microsoft's Windows CardSpace digital identity platform, with particular focus on developing a phishing-resistant authentication solution for OpenID. As part of the collaboration, Microsoft pledged to support OpenID in its future identity server products and JanRain, Sxip, and VeriSign pledged to add support for Microsoft's Information Card profile to their future identity solutions.[45] In mid-February, AOL announced that an experimental OpenID provider service was functional for all AOL and AOL Instant Messenger (AIM) accounts.[46]

In May, Sun Microsystems began working with the OpenID community, announcing an OpenID program,[47] as well as entering a non-assertion covenant with the OpenID community, pledging not to assert any of its patents against implementations of OpenID.[19] In June, OpenID leadership formed the OpenID Foundation, an Oregon-based public benefit corporation for managing the OpenID brand and property.[12] The same month, an independent OpenID Europe Foundation was formed in Belgium[48] by Snorri Giorgetti. By early December, non-assertion agreements were collected by the major contributors to the protocol and the final OpenID Authentication 2.0 and OpenID Attribute Exchange 1.0 specifications were ratified on December 5.[49]

In mid-January 2008, Yahoo! announced initial OpenID 2.0 support, both as a provider and as a relying party, releasing the provider service by the end of the month.[50] In early February, Google, IBM, Microsoft, VeriSign and Yahoo! joined the OpenID Foundation as corporate board members.[51] Around early May, SourceForge, Inc. introduced OpenID provider and relying party support to leading open source software development website SourceForge.net.[52] In late July, popular social network service MySpace announced support for OpenID as a provider.[53] In late October, Google launched support as an OpenID provider and Microsoft announced that Windows Live ID would support OpenID.[54] In November, JanRain announced a free hosted service, RPX Basic, that allows websites to begin accepting OpenIDs for registration and login without having to install, integrate and configure the OpenID open source libraries.[55]

In January 2009, PayPal joined the OpenID Foundation as a corporate member, followed shortly by Facebook in February. The OpenID Foundation formed an executive committee and appointed Don Thibeau as executive director. In March, MySpace launched their previously announced OpenID provider service, enabling all MySpace users to use their MySpace URL as an OpenID. In May, Facebook launched their relying party functionality,[56][57] letting users use an automatic login-enabled OpenID account (e.g. Google) to log into Facebook.[58]

OpenID vs. Pseudo-Authentication using OAuth

The following drawing highlights the differences between using OpenID vs. OAuth for authentication. Note that with OpenID, the process starts by the application asking the user for their identity (typically a openid URI), whereas in the case of OAuth, the application directly request a limited access OAuth Token (valet key) to access the APIs (enter the house) on user's behalf. If the user can grant that access, the application can retrieve the unique identifier for establishing the profile (identity) using the APIs.

OpenID vs. Pseudo-Authentication using OAuth

See also

{{Top}} may refer to:

{{Template disambiguation}} should never be transcluded in the main namespace.

Template:Middle

Template:Bottom

References

  1. ^ a b c d Eldon, Eric (2009-04-14). "Single sign-on service OpenID getting more usage » VentureBeat". venturebeat.com. Retrieved 2009-04-25.
  2. ^ "OpenID Authentication 2.0 specification - Final". Retrieved 2011-10-24. {{cite web}}: Cite has empty unknown parameter: |1= (help)
  3. ^ "OpenID Attribute Exchange 1.0 - Final". Retrieved 2011-10-24. {{cite web}}: Cite has empty unknown parameter: |1= (help)
  4. ^ bashburn, bill (2008-04-22). "BBC Joins OpenID Foundation".
  5. ^ Riley, Duncan (2008-01-18). "Google Offers OpenID Logins Via Blogger". TechCrunch. Retrieved 2008-03-20.
  6. ^ "How do I get an OpenID?". OpenID Foundation. Retrieved 2008-03-20.
  7. ^ "Technology Leaders Join OpenID Foundation to Promote Open Identity Management on the Web". 008-02-07. {{cite web}}: Check date values in: |date= (help)
  8. ^ Bergman, Artur (2008-02-07). "OpenID Foundation - Google, IBM, Microsoft, VeriSign and Yahoo!". O'Reilly Media. Retrieved 2008-03-19.
  9. ^ "OpenID Authentication 1.1#Delegation".
  10. ^ Paul Tarjan. "Easy OpenID Delegation with Yadis". Retrieved 2009-06-30.
  11. ^ Kissel, Brian (2009-12-16). "OpenID 2009 Year in Review".
  12. ^ a b OpenID Board of Directors (2007-06-01). "OpenID Foundation". OpenID Foundation. Retrieved 2008-03-20.
  13. ^ "Trademark Assignment, Serial #: 78899244". United States Patent and Trademark Office. 2008-05-06. Retrieved 2008-05-19. Exec Dt: 03/27/2008
  14. ^ "Latest Status Info". United States Patent and Trademark Office. 2006-03-27. Retrieved 2008-03-20.
  15. ^ "NetMesh: Company / Management". NetMesh. Retrieved 2008-03-20.
  16. ^ "OpenID Europe Trademark & Logo Policy". OpenID Europe Foundation. Retrieved 2008-03-20.
  17. ^ Reddig, Randy (2005-06-29). "OpenID Logo". Danga Interactive. Retrieved 2008-03-20.
  18. ^ Fitzpatrick, Brad. "Intellectual Property".
  19. ^ a b "Sun OpenID: Non-Assertion Covenant". Sun Microsystems. Retrieved 2008-03-20.
  20. ^ "VeriSign's OpenID Non-Assertion Patent Covenant". VeriSign. Retrieved 2008-03-20.
  21. ^ Crowley, Paul (2005-06-01). "Phishing attacks on OpenID". Danga Interactive. Retrieved 2008-03-20.
  22. ^ Anderson, Tim (2007-03-05). "OpenID still open to abuse". IT Week. Retrieved 2007-03-13.
  23. ^ Slot, Marco. "Beginner's guide to OpenID phishing". Retrieved 2007-07-31.
  24. ^ "Verisign PIP FAQ". Retrieved 2008-11-13.
  25. ^ Jones, Mike. "PAPE Approved as an OpenID Specification". OpenID Foundation.
  26. ^ Stefan Brands (2007-08-22). "The problem(s) with OpenID". Retrieved 2010-12-12. {{cite news}}: Check date values in: |date= (help) (originally published on The Identity Corner at www.idcorner.org/?p=161)
  27. ^ Tsyrklevich, Eugene. "Single Sign-On for the Internet: A Security Story" (PDF). Blackhat USA. Retrieved 2011-10-02. {{cite web}}: Check date values in: |accessdate= (help)
  28. ^ Fitzpatrick, Brad (2005-05-16). "Distributed Identity: Yadis". LiveJournal. Retrieved 2008-03-20.
  29. ^ Waters, John K (2007-12-01). "OpenID Updates Identity Spec". Redmond Developer News. Archived from the original on 2008-02-08. Retrieved 2008-03-20.
  30. ^ "Glossary". LiveJournal Server: Technical Info. Retrieved 13 October 2009.
  31. ^ Lehn, David I. (18 May 2005). "18 May 2005". Advogato blog for dlehn. Advogato. Retrieved 13 October 2009. They were looking for a name and managed to email me about openid.net right before I was going to offer it to them. So I gave it to them for the new and improved OpenID project.
  32. ^ "OpenID: an actually distributed identity system". 2005-09-24. Archived from the original on 2005-09-24. Retrieved 2008-03-20.
  33. ^ a b Fitzpatrick, Brad (2006-05-30). "brad's life - OpenID and SixApart". LiveJournal. Retrieved 2008-03-20.
  34. ^ Recordon, David (2005-12-24). "Announcing YADIS...again". Danga Interactive. Retrieved 2008-03-20.
  35. ^ Reed, Dummond (2005-12-31). "Implementing YADIS with no new software". Danga Interactive. Retrieved 2008-03-20.
  36. ^ Reed, Drummond (2008-11-30). "XRD Begins". Equals Drummond. Retrieved 5 January 2009.
  37. ^ Hardt, Dick (2005-12-18). "Sxip concerns with YADIS". Danga Interactive. Retrieved 2008-03-20.
  38. ^ Hardt, Dick (2005-12-10). "SXIP 2.0 Teaser". Identity 2.0. Retrieved 2008-03-20.
  39. ^ Hoyt, Josh (2006-03-15). "OpenID + Simple Registration Information Exchange". Danga Interactive. Retrieved 2008-03-20.
  40. ^ Grey, Victor (2006-04-02). "Proposal for an XRI (i-name) profile for OpenID". Danga Interactive. Retrieved 2008-03-20.
  41. ^ Recordon, David (2006-04-29). "Movin' On..." LiveJournal. Retrieved 2008-03-20.
  42. ^ Recordon, David (2006-06-16). "Moving OpenID Forward". Danga Interactive. Retrieved 2008-05-19.
  43. ^ Johannes Ernst and David Recordon. Editor:Phil Becker (2006-12-04). "The case for OpenID". ZDNet. Retrieved 2010-12-12. {{cite news}}: |author= has generic name (help)
  44. ^ "Symantec Unveils Security 2.0 Identity Initiative at DEMO 07 Conference". Symantec. 2007-01-31. Retrieved 2008-03-20.
  45. ^ Graves, Michael (2007-02-06). "VeriSign, Microsoft & Partners to Work together on OpenID + Cardspace". VeriSign. Retrieved 2008-03-20.
  46. ^ Panzer, John (2007-02-16). "AOL and 63 Million OpenIDs". AOL Developer Network. Retrieved 2008-03-20.
  47. ^ "Sun Microsystems Announces OpenID Program". PR Newswire. 2007-05-07. Retrieved 2008-03-20.
  48. ^ OpenID Europe Foundation
  49. ^ "OpenID 2.0…Final(ly)!". OpenID Foundation. 2007-12-05. Retrieved 2008-03-20.
  50. ^ "Yahoo! Announces Support for OpenID; Users Able to Access Multiple Internet Sites with Their Yahoo! ID". Yahoo!. 2008-01-17. Archived from the original on 2008-03-04. Retrieved 2008-03-20.
  51. ^ "Technology Leaders Join OpenID Foundation to Promote Open Identity Management on the Web". OpenID Foundation. Marketwire. 2008-02-07. Retrieved 2008-03-20.
  52. ^ "SourceForge Implements OpenID Technology" (Press release). SourceForge, Inc. May 7, 2008. Retrieved 2008-05-21.
  53. ^ "MySpace Announces Support for 'OpenID' and Introduces New Data Availability Implementations". Business Wire. MySpace. 2008-07-22. p. 2. Retrieved 2008-07-23.
  54. ^ "Microsoft and Google announce OpenID support". OpenID Foundation. 2008-10-30.
  55. ^ "JanRain Releases Free Version of Industry Leading OpenID Solution" (Press release). JanRain, Inc. November 14, 2008. Retrieved 2008-11-14.
  56. ^ "Facebook Developers | Facebook Developers News". Developers.facebook.com. 2009-05-18. Retrieved 2009-07-28.
  57. ^ "Facebook now accepts Google account logins". Pocket-lint.com. 2009-05-19. Retrieved 2009-07-28.
  58. ^ "OpenID Requirements - Facebook Developer Wiki". Wiki.developers.facebook.com. 2009-06-26. Retrieved 2009-07-28.

External links