Upload
colin-neal
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
Single Sign-On Single Sign-On across Web across Web
ServicesServicesErnest ArtiagaErnest Artiaga
CERN - OpenLab Security Workshop – CERN - OpenLab Security Workshop – April 2004April 2004
OutlineOutline
Motivation and goalsMotivation and goals ToolsTools Single sign-onSingle sign-on
Impersonation: Mapping certificates to Impersonation: Mapping certificates to accountsaccounts
Providing certificates to usersProviding certificates to users Issues and actual statusIssues and actual status
Summary and conclusionsSummary and conclusions
MotivationMotivation
The environment:The environment: Services offered through webServices offered through web
Applications using web servers as user interfaceApplications using web servers as user interface Clients on both Windows and Unix platformsClients on both Windows and Unix platforms
What we want (What we want (and what the users ask and what the users ask forfor):): Authentication mechanism valid across Authentication mechanism valid across
platformsplatforms Single sign-onSingle sign-on
GoalGoal
Letting users access authorized Letting users access authorized resources…resources… Restricted web pagesRestricted web pages Web-based services (mail, …)Web-based services (mail, …)
… …without re-typing usernames and without re-typing usernames and passwords (passwords (single sign-onsingle sign-on))
ToolsTools
Two different technologiesTwo different technologies KerberosKerberos
Well-known for certain applicationsWell-known for certain applications ““Supported” by modern operating systemsSupported” by modern operating systems
PKI/CertificatesPKI/Certificates Widely spreadWidely spread Portability across platformsPortability across platforms
ToolsTools
The drawbacks…The drawbacks… KerberosKerberos
Incompatible extensionsIncompatible extensions Few “kerberized” applicationsFew “kerberized” applications
So, we decided to try So, we decided to try PKI/Certificates as a base for a PKI/Certificates as a base for a Single Sign-On mechanism.Single Sign-On mechanism.
Single Sign-onSingle Sign-on
CERN users have accounts in both CERN users have accounts in both Unix and Windows environmentsUnix and Windows environments
Services are not replicated in both Services are not replicated in both systemssystems
Logon and Authentication Logon and Authentication mechanisms are differentmechanisms are different A user must type his/her credentials A user must type his/her credentials
again and againagain and again Can the PKI/Certificates help?Can the PKI/Certificates help?
Single Sign-on: basic web Single Sign-on: basic web accessaccess
PKI/Certificates can be used to PKI/Certificates can be used to protect access to web pagesprotect access to web pages
They provide portable authentication They provide portable authentication and access controland access control Available for both Apache and IIS serversAvailable for both Apache and IIS servers
… … But this is mainly local accessBut this is mainly local access What happens if the server needs to What happens if the server needs to
access remote data?access remote data?
Single sign-onSingle sign-on
We must provide the user with a valid We must provide the user with a valid PKI/CertificatePKI/Certificate
We must trust the web serverWe must trust the web server It will It will impersonateimpersonate the user! the user!
Web Server
User
Services
Impersonation in IISImpersonation in IIS
Based on the Based on the Windows Identity Windows Identity MappingMapping mechanism mechanism Maps a certificate to a specific account Maps a certificate to a specific account
The identity mapping can be The identity mapping can be managed at two different places:managed at two different places: The IIS server itselfThe IIS server itself The Active DirectoryThe Active Directory
IIS mappingIIS mapping
Specific to a web siteSpecific to a web site Flexible many-to-one mapping rulesFlexible many-to-one mapping rules
Based on issuer and subject of the Based on issuer and subject of the certificatecertificate
Provides a ticket valid for Provides a ticket valid for delegationdelegation I.e. remote resources can be accessedI.e. remote resources can be accessed
UsernameUsername and and passwordpassword must be must be provided when setting the mappingprovided when setting the mapping but they are but they are not kept synchronizednot kept synchronized with with
windows accounts!windows accounts!
AD mappingAD mapping
Common for all web sites in the domainCommon for all web sites in the domain Limited many-to-one mappingLimited many-to-one mapping
There is a There is a singlesingle account for all the account for all the certificates coming from the same issuer certificates coming from the same issuer CACA
One-to-one mappingOne-to-one mapping is the most is the most convenientconvenient
Provides a ticket valid for Provides a ticket valid for delegationdelegation since Windows .NET Server/IIS 6.0since Windows .NET Server/IIS 6.0
AD mapping (II)AD mapping (II) Two flavors: manual and automaticTwo flavors: manual and automatic
In In manual mappingmanual mapping, the administrator must , the administrator must specify which certificate maps into which specify which certificate maps into which account (can be done programmatically)account (can be done programmatically)
In In automatic mappingautomatic mapping, the certificate must , the certificate must contain an extension (contain an extension (subjectAltNamesubjectAltName), ), with the User Principal Name (UPN) of the with the User Principal Name (UPN) of the account in the account in the otherNameotherName field field
No explicit mapping is neededNo explicit mapping is needed Originally designed for Originally designed for smart cardssmart cards
Impersonation in ApacheImpersonation in Apache
Impersonation via Kerberos ticketImpersonation via Kerberos ticket Uses extra software: Uses extra software: Kerberos leveraged PKIKerberos leveraged PKI
KCT (Kerberos Certificate Translation)KCT (Kerberos Certificate Translation) Mod_KCT (Apache module)Mod_KCT (Apache module)
Procedure:Procedure: The user sends a PKI/Certificate (obtained The user sends a PKI/Certificate (obtained
through the KCA) to Apachethrough the KCA) to Apache Apache uses KCT to recover the user’s Kerberos Apache uses KCT to recover the user’s Kerberos
ticketticket Apache uses the ticket to access user’s remote Apache uses the ticket to access user’s remote
resourcesresources
Providing certificates to Providing certificates to usersusers
There is a risk of users not taking care of their There is a risk of users not taking care of their certificates…certificates…
It should be a It should be a transparenttransparent mechanism mechanism It should be easyIt should be easy It should be secureIt should be secure
Both Unix and Windows users receive a Both Unix and Windows users receive a Kerberos ticket during logonKerberos ticket during logon We can issue a PKI/Certificate for a Kerberos ticketWe can issue a PKI/Certificate for a Kerberos ticket
Providing certificates to Providing certificates to UsersUsers
Kerberos Leveraged PKIKerberos Leveraged PKI
Credential Cache
Credential Cache
Login
KDC
KCA
Browser
LibPKCS11
Web Server
Providing certificates to Providing certificates to usersusers
KCA (Kerberized CA) supports KCA (Kerberized CA) supports Kerberos V (Windows 2000 Kerberos V (Windows 2000 compatible)compatible)
KCA clients are available for Unix and KCA clients are available for Unix and WindowsWindows
PKCS11 library (smart card PKCS11 library (smart card emulation) is also available for Unix emulation) is also available for Unix and Windowsand Windows
We have We have short termshort term certificates certificates
Issues: certificate Issues: certificate restrictionsrestrictions The user certificate must contain a series The user certificate must contain a series
of extensions properly of extensions properly filled and encodedfilled and encoded, , so that the web server accepts it and maps so that the web server accepts it and maps it to the right account.it to the right account. subjectAltNamesubjectAltName cRLDistributionPointcRLDistributionPoint keyUsagekeyUsage extendedKeyUsageextendedKeyUsage Expiration date properly setExpiration date properly set
Possible CAs:Possible CAs: Microsoft recommends MS Enterprise CAMicrosoft recommends MS Enterprise CA Entrust CA also worksEntrust CA also works … … We used We used OpenSSLOpenSSL… …
Issues: server side CA Issues: server side CA restrictionsrestrictions
It is It is possiblepossible to use a non-MS CA with to use a non-MS CA with an IIS server, but…an IIS server, but… … … it should it should behavebehave as Microsoft’s one as Microsoft’s one
The CA certificate must be added to The CA certificate must be added to the NTAuth store in the registry… the NTAuth store in the registry… manuallymanually..
It should create the same AD entries It should create the same AD entries and fill them properlyand fill them properly
Certificates and CRLs must be Certificates and CRLs must be published in the ADpublished in the AD
Issues: web applicationsIssues: web applications
Lack of integrationLack of integration between the between the authentication mechanisms for the web authentication mechanisms for the web servers and the applications behind themservers and the applications behind them First, authenticate with the web server…First, authenticate with the web server… Then, authenticate Then, authenticate againagain with the application! with the application! E.g. some web mail applications…E.g. some web mail applications…
Despite the necessary security infrastructure Despite the necessary security infrastructure being there, some applications keepbeing there, some applications keep Using their own security mechanismsUsing their own security mechanisms … … or using it only “or using it only “internallyinternally”.”.
StatusStatus
Linux Box
Windows 2000KDC
Linux KCA
OpenSSL CA
Web Browser(Mozilla)
Lib PKCS11
Windows 2003IIS 6.0
AD
Resources
CertificateTemplate
WinBox
MS CA?
UnixApache
Mod_KCTKCT
MITKDC
Summary and Summary and conclusionsconclusions
In theoryIn theory, it is possible to achieve cross-, it is possible to achieve cross-platform single sign-onplatform single sign-on
But full functionality has issues…But full functionality has issues… LotsLots of components involved (KDC, KCA, of components involved (KDC, KCA,
AD…)AD…) Compatibility (not fully documented Compatibility (not fully documented
requirements)requirements) Intrinsic limitationsIntrinsic limitations
Extensions not present in the KCA certificatesExtensions not present in the KCA certificates Integration between applications and serversIntegration between applications and servers
Questions?Questions?