EAP-TLS Inner/Outer identity
Keith Moores
kmm6b at virginia.edu
Wed May 16 23:16:53 CEST 2007
I'm trying to find a solution to a wireless authorization issue.
Background
When using EAP-TLS both Windows (XP/Vista) and Mac OS supplicants by
default set the outer identity equal to the user certificate Subject
Alternative Name - Principle Name (OID 1.3.6.1.4.1.311.20.2.3) when
it exists (not the Common Name). This is somewhat similar to S/MIME
using the Subject Alternative RFC822 Name (not the Common Name).
This is significant usability benefit as users don't have to enter a
separated user name to connect, which in my experience a lot of
supplicants require.
During authentication the outer identity becomes the User-Name in
FreeRadius and can be used for authorization (such as LDAP).
Independently the certificate (which contains the inner identity) can
be validated.
We use client certificates for access to multiple services (web sites
and more than one wireless networks), thus need the ability to
control access to each independently. i.e. One class of users does
not have any access to a particular wireless network with their user
certificate but does have access to another wireless network (and/or
web resources) with their user certificate. CRL are not the solution
in this case as they invalidate the user certificate for all uses.
Problem
The outer identity can be set by the user to anything the user wants,
meaning it shouldn't be trusted/used for an authorization lookup. In
FreeRadius it does not appear possible to directly lookup
authorization based on the inner identity, only to check the inner
identity Common Name against a the outer identity, i.e. check_cert_cn
= %{User-Name}
Our Common Names are not unique (which seems typical of other CAs as
well) so there may be two certs for different users that have the
Common Name "John A. Smith" which is why our CA populates the Subject
Alternative Name - Principle Name (among other fields) with the users
unique user ID.
http://middleware.internet2.edu/hepki-tag/pki-lite/hepki-tag-pkilite-
profile-current.html#PrincipalName
http://support.microsoft.com/default.aspx?scid=kb;en-us;281245
In Cisco ACS land we could accomplish this with "Certificate SAN
Comparison"
http://www.cisco.com/en/US/products/sw/secursw/ps2086/
products_configuration_guide_chapter09186a0080721d80.html#wp999517
Questions
Is there a way to perform an authorization lookup based on the EAP-
TLS inner identity Subject Alternative Name - Principle Name?
Any chance for adding support for checking the outer identity against
the Subject Alternative Name - Principle Name, i.e. check_cert_san = %
{User-Name}
I found this old comment in list archives, does the same answer still
hold on access to other certificate fields?
> Alan DeKok freeradius-users at lists.freeradius.org
> Fri, 08 Apr 2005 12:46:31 -0400
>
> =?iso-8859-1?Q?Alejandro_Mart=EDnez_Marcos?= <almartinez at sgi.es>
> wrote:
> > I would need an option "check_cert_uid" instead of
> "check_cert_cn",
> > because my client certificates don't have a cn. Is it possible
> at the
> > moment? In other case, how can we achieve it?
>
> Source code edits.
>
> The TLS module should really export a way to check all fields in the
> certificate, via something like %{tls:....}. That way the
> "check_cert_foo" stuff could go away.
>
> Alan DeKok.
Thanks in advance,
-Keith
------------------------------------------------------------------------
Keith Moores <mailto:kmm6b at virginia.edu>
Network Systems
ITC-Communications and Systems Division
University of Virginia, ITC-2015 Ivy Rd Phone (434) 924-0621
Box 400324, Charlottesville, VA 22904-4324 Fax (434) 982-4715
More information about the Freeradius-Users
mailing list