|
|
Log in / Subscribe / Register

Security

A look at OpenID

October 4, 2006

This article was contributed by Jake Edge.

The OpenID project is an effort to produce a decentralized, open, user-centric identity management framework. The main benefit for users will be a 'single sign on' to websites that support it. The project provides open source libraries for both websites requiring authentication (relying parties) and for the servers that provide the authentication (identity providers, IdPs). One of the main goals is to allow anyone to run a server that authenticates their own or others' identities and avoid the centralized model of other identity frameworks.

At its core, OpenID allows a user to associate a URL with his or her identity; a server can then authenticate that the user is the owner of that URL. Giving users control of their own identity makes OpenID a user-centric identity management system. To use OpenID authentication, the username is the URL and the password is stored on the identity provider. Thus, the same password is used to authenticate multiple accounts on various websites.

There are different ways to use OpenID, depending on what the user's requirements and capabilities are. In the simplest case, one can sign up for a free account at a provider like MyOpenID and it will generate a URL for you to use (the author's test account was jake.edge.myopenid.com). After that, you can submit that URL at any OpenID enabled website and authenticate it. If you have not visited the site before, you will be redirected to MyOpenID to enable that site to authenticate you. You may also need to login to MyOpenID if you have not established a session there recently. Once you have enabled authentication, you are redirected back to the original site and MyOpenID will have authenticated you. If you have a valid MyOpenID session and have previously enabled the site you are visiting, you can be authenticated behind the scenes when you provide your URL and will be able to log in without providing a password.

Another way to use a service like MyOpenID is by using a URL under your control as your identity. By putting some HTML into the HEAD section of the index document served from that URL, you can delegate the authentication to another server and gain the benefits of using your own URL without running your own OpenID server. If you do that, the URL for OpenID logins becomes the URL under your control. Over time, you could change the server that you delegate to while still retaining the identity associated with your URL. In addition, various OpenID server implementations exist for those who wish to fully control their identity and can run their own server.

OpenID implements the authentication by using (but not requiring) strong encryption on the messages that are exchanged between relying parties and identity providers (IdPs). When a user enters a URL into an OpenID login, the relying party makes a GET request to the URL and expects to find some extra OpenID specific markup in the HEAD section. It uses this markup to find the IdP and can negotiate an association between the relying party and IdP, but does not have to. The association is an agreement on cryptographic protocols to use to sign the requests and responses. A relying party can then cache that information to use when contacting that IdP for any other user that might share the server.

After that, the relying party redirects the user to the IdP which allows any IdP specific cookies to be delivered. The IdP may decide to require the user to authenticate with it, but that is outside of the scope of the OpenID specification. As described above, the IdP may also require the user to make a decision about whether to allow the relying party to authenticate them. Once that is complete, the IdP returns the user to the relying party site with an assertion about whether the authentication succeeded or failed.

The most recent OpenID specification adds some additional capabilities. A nonce (a unique identifier) value was added as an option to the success response to thwart replay attacks. Also, support for Yadis discovery was added. Yadis allows relying parties to determine what authentication protocol to use so that sites can transparently support other protocols such as LID.

From a security standpoint, there are a few different attack vectors that are described in the specification. Eavesdropping and man-in-the-middle attacks can be circumvented by using HTTPS (SSL). Unless the IdP is compromised, the identity itself is secure, though it could be spoofed on a particular site using those vectors.

OpenID simply makes the connection between a URL and an identity, it asserts that the two are associated, it does not provide any trust information about the identity. Users of OpenID will still have to prove they are not programs at registration time because nothing in the protocol prevents programs from having identities. It is a starting point, as any kind of trust system must be based on an authenticated identity. A trust layer that uses OpenID identities could provide protection against blog spam and the like. Since OpenID identities can be anonymous, this will allow for anonymous, but authenticated, users; one can verify that the identity wrote a particular message without making a connection to the real life person behind it.

There seems to be a growing number of sites that support OpenID; there is even a bounty for adding support to open source programs. Overall, it seems that OpenID provides a fairly painless route for digital identity management for both users and websites. It is probably worth a look for anyone that might be interested in such a thing.

Comments (18 posted)

New vulnerabilities

cscope: buffer overflows

Package(s):cscope CVE #(s):CVE-2006-4262
Created:October 2, 2006 Updated:June 16, 2009
Description: Will Drewry of the Google Security Team discovered several buffer overflows in cscope, a source browsing tool, which might lead to the execution of arbitrary code.
Alerts:
CentOS CESA-2009:1101 cscope 2009-06-16
Red Hat RHSA-2009:1101-01 cscope 2009-06-15
Gentoo 200610-08 cscope 2006-10-20
Debian DSA-1186-1 cscope 2006-09-30

Comments (none posted)

dokuwiki: input validation flaws

Package(s):dokuwiki CVE #(s):
Created:September 29, 2006 Updated:October 4, 2006
Description: Input validation flaws have been discovered in the image handling of fetch.php if ImageMagick is used, which is not the default method. A remote attacker could exploit the flaws to execute arbitrary shell commands with the rights of the web server daemon or cause a denial of service.
Alerts:
Gentoo 200609-20 dokuwiki 2006-09-28

Comments (none posted)

migrationtools: insecure temporary files

Package(s):migrationtools CVE #(s):CVE-2006-0512
Created:October 2, 2006 Updated:October 4, 2006
Description: Jason Hoover discovered that migrationtools, a collection of scripts to migrate user data to LDAP creates several temporary files insecurely, which might lead to denial of service through a symlink attack.
Alerts:
Debian DSA-1187-1 migrationtools 2006-09-30

Comments (none posted)

mono: symlink vulnerability

Package(s):mono CVE #(s):CVE-2006-5072
Created:October 4, 2006 Updated:December 1, 2006
Description: The mono System.CodeDom.Compiler classes suffer from a temporary file symlink vulnerability which could be used to overwrite files, or, in this case, even inject arbitrary code into a running mono application.
Alerts:
SuSE SUSE-SA:2006:073 mono-core 2006-12-01
Gentoo 200611-23 mono 2006-11-28
Mandriva MDKSA-2006:188 mono 2006-10-27
Fedora FEDORA-2006-1012 mono 2006-10-06
Ubuntu USN-357-1 mono 2006-10-04

Comments (none posted)

openldap: security bypass

Package(s):openldap CVE #(s):CVE-2006-4600
Created:September 29, 2006 Updated:June 12, 2007
Description: slapd in OpenLDAP before 2.3.25 allows remote authenticated users with selfwrite Access Control List (ACL) privileges to modify arbitrary Distinguished Names (DN).
Alerts:
Red Hat RHSA-2007:0430-01 openldap 2007-06-11
Red Hat RHSA-2007:0310-02 openldap 2007-05-01
Trustix TSLSA-2006-0055 openldap, php, php4 2006-10-06
rPath rPSA-2006-0176-1 openldap 2006-09-29
Mandriva MDKSA-2006:171 openldap 2006-09-28

Comments (none posted)

openssl: multiple vulnerabilities

Package(s):openssl CVE #(s):CVE-2006-2937 CVE-2006-2940 CVE-2006-3780 CVE-2006-4343 CVE-2006-3738
Created:September 28, 2006 Updated:December 12, 2006
Description: OpenSSL has a number of denial of service vulnerabilities including: two vulnerabilities involving invalid ASN.1 structures, a buffer overflow in the SSL_get_shared_ciphers() function and an SSLv2 client crash that can be caused by a malicious server.
Alerts:
Gentoo 200612-11 emul-linux-x86-baselibs 2006-12-11
Gentoo 200610-11 openssl 2006-10-24
Debian DSA-1195-1 openssl096 2006-10-10
SuSE SUSE-SR:2006:024 openssh, openssl, bind9 2006-10-06
Ubuntu USN-353-2 openssl 2006-10-04
Mandriva MDKSA-2006:178 ntp 2006-10-02
Mandriva MDKSA-2006:177 MySQL 2006-10-02
Mandriva MDKSA-2006:172-1 openssl 2006-10-02
Debian DSA-1185-2 openssl 2006-10-02
rPath rPSA-2006-0175-2 openssl 2006-09-28
Fedora FEDORA-2006-1004 openssl 2006-09-28
Trustix TSLSA-2006-0054 openssh, openssl 2006-09-29
Slackware SSA:2006-272-01 openssl 2006-09-29
rPath rPSA-2006-0175-1 openssl 2006-09-28
Red Hat RHSA-2006:0695-01 OpenSSL 2006-09-28
Mandriva MDKSA-2006:172 openssl 2006-09-28
Debian DSA-1185-1 openssl 2006-09-28
Ubuntu USN-353-1 openssl 2006-09-28
SuSE SUSE-SA:2006:058 openssl 2006-09-28
OpenPKG OpenPKG-SA-2006.021 openssl 2006-09-28

Comments (none posted)

opera: RSA signature forgery

Package(s):opera CVE #(s):
Created:September 28, 2006 Updated:October 4, 2006
Description: The Opera browser has a problem verifying OpenSSL PKCS #1 v1.5 RSA signatures. An attacker can use this to forge certificates and appear as a valid CA.
Alerts:
Gentoo 200609-18 opera 2006-09-28

Comments (none posted)

xine-lib: code execution

Package(s):xine-lib CVE #(s):CVE-2006-4799
Created:October 4, 2006 Updated:November 21, 2006
Description: The xine-lib package does not properly validate AVI headers, enabling an attacker to run arbitrary code via a specially crafted AVI file.
Alerts:
Debian DSA-1215-1 xine-lib 2006-11-20
Ubuntu USN-358-1 ffmpeg, xine-lib 2006-10-04

Comments (none posted)

Page editor: Jonathan Corbet
Next page: Kernel development>>


Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds