Internet DRAFT - draft-goenka-single-sign-on-arch

draft-goenka-single-sign-on-arch




                                                         Vishal Goenka
INTERNET DRAFT                                            Novell, Inc.
Category: Experimental                                     March, 2000
Expires: September, 2000


        Architecture for Implementing Network Single Sign-On
               <draft-goenka-single-sign-on-arch-00.txt>


1  Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026 [1]. Internet-Drafts are
   working documents of the Internet Engineering Task Force (IETF),
   its areas, and its working groups. Note that other groups may also
   distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other
   documents at any time. It is inappropriate to use Internet-Drafts
   as reference material or to cite them other than as "work in
   progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.


2  Abstract

   There are several different single sign-on (SSO) solutions offered
   by various software vendors today. All such solutions require
   applications to be written to a vendor specific API. In view of a
   lack of industry wide standard for SSO APIs, application
   developers find it almost impossible to SSO enable their
   applications to work with any vendor solution. This document
   presents alternative SSO implementation architecture that allows
   applications to be transparently enabled for SSO. Further, it
   allows different SSO solutions to interoperate with relatively
   little effort.


3  Table of Contents

1 Status of this Memo..............................................1
2 Abstract.........................................................1
3 Table of Contents................................................1


Goenka          Experimental - Expires September 2000        [Page 1]

Network Single Sign-On Architecture                         March 2000


4 Conventions used in this document................................2
5 Introduction.....................................................2
6 Overview of SSO Mechanisms.......................................3
6.1  Secret Credential Store.......................................3
6.2  Kerberos......................................................4
6.3  NetWare Authentication........................................4
6.4  DCE Security..................................................4
6.5  X509 Authentication Framework.................................5
6.6  Pluggable Authentication Module (PAM).........................5
7 Architecture Overview............................................5
8 SSO Enabled Transport Interface..................................8
9 Protocol Interceptor Module (PIM)................................9
10  Security Policy Database (SPD)................................10
11  Single Sign-On Mechanism Layer................................10
12  Security Considerations.......................................11
13  Conclusion....................................................12
14  Future Considerations.........................................12
15  References....................................................12
16  Acknowledgments...............................................13
17  Author's Addresses............................................13


4  Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   RFC-2119 [2].


5  Introduction

   Single sign-on (SSO) is an authentication solution used to
   transparently authenticate a security principal (typically, a
   user) to various network services in a security domain without
   requiring the principal to explicitly supply his or her
   credentials for each service, as long as the principal is
   authenticated to an authentication server in the domain. Besides
   providing a friendly user experience, various SSO technologies
   provide additional security characteristics for authentication to
   network services in an enterprise. Several SSO technologies are in
   deployment today, but unfortunately each of the technologies is
   implemented by intrusively changing the client software used to
   access the network service and in some cases the service itself.
   The next section presents a brief overview of the most popular SSO
   mechanisms.

   A typical client workstation has several different implementations
   of a given application layer protocol from different vendors. For


Goenka          Experimental - Expires September 2000        [Page 2]

Network Single Sign-On Architecture                         March 2000


   example, there are often more than one web-browser software suite
   installed on a client workstation, and each of these suites
   generally have their own protocol stack for HTTP, FTP, LDAP, IMAP,
   POP, NNTP, etc. In general, for many protocol stacks, there are
   often more than one application installed on the user's machine.
   In an SSO environment, it should not matter which FTP client is
   used to access a particular FTP server in a security domain, as
   long as the user is authenticated to the domain authentication
   server. The user should be authenticated to the FTP server
   transparently, i.e., without being prompted for password. The same
   holds true for other services such as World Wide Web (HTTP), news
   (NNTP), email (IMAP, POP), remote access (Telnet), print services
   (IPP), file services (NFS, WebDAV), directory services (LDAP),
   etc. It is not practical to distribute a special SSO-enabled
   client for each application protocol, which unfortunately, is the
   current implementation approach for most SSO mechanisms, including
   Kerberos, DCE, SSL, etc.

   This document doesn't propose a new mechanism or API for SSO, but
   suggests an implementation architecture that allows transparently
   enabling new and existing services for SSO. An ideal solution
   would be to have each application vendor write to a common
   authentication API such as GSSAPI or PAM APIs, and implement
   specific modules for SSO using different heterogeneous
   authentication technologies. In the absence of an industry wide
   consensus on such a usage, this document presents alternative
   architecture for implementing SSO that can co-exist with both SSO
   aware and unaware applications.


6  Overview of SSO Mechanisms

6.1 Secret Credential Store

   The simplest SSO technology entails securely storing user's
   authentication credentials (such as private keys or passwords) for
   different network services for each security domain, in a secure
   database that is accessible to the user only after successful
   authentication to the corresponding domain's authentication
   server. When accessing a network service, the client software
   makes invocations to a vendor provided library that securely
   retrieves the user's credentials from the secure database, using
   which, the client software then authenticates to the network
   service. The vendor library provides additional interfaces to seed
   the secret credential store with the user's credentials for each
   network service for the first time. Synchronization of user's
   credentials between the network service and secret credential
   store is an issue with this approach, and the user is typically
   required to change it in both places. The advantage of this scheme


Goenka          Experimental - Expires September 2000        [Page 3]

Network Single Sign-On Architecture                         March 2000


   is that it works with most services and requires no change to the
   server component of the service.


6.2 Kerberos

   Kerberos [3] is a network authentication protocol based on work by
   Needham and Schroeder and developed originally at MIT. Kerberos
   provides SSO to any network service that is kerberized and shares
   a trust relation with the Kerberos authentication server, known as
   the Ticket Granting Server (TGS). The user is required to
   authenticate to TGS, which results in a Ticket Granting Ticket
   (TGT). The TGT serves as an authentication token that the client
   software uses on user's behalf to obtain service tickets from the
   TGS. The service ticket identifies and authenticates the user to
   the network service. Kerberos provides many other security
   services including message protection (integrity,
   confidentiality), delegation of credentials, single-point user
   account management for various network services, etc. Kerberos
   deployment, however, requires both the network client and server
   software to make function invocations into a vendor provided
   Kerberos library. This requires code changes to existing software
   and has impeded its mass deployment.

6.3 NetWare Authentication


   NetWare authentication (version 4 and beyond) is tightly
   integrated with Novell Directory Service (NDS), which acts as the
   authentication server. First, the NetWare client authenticates to
   a particular NDS tree based on the user's password using a
   challenge-response technique. Upon successful authentication, the
   client retrieves the user's RSA private key from NDS, which is
   then used to construct a short-term credential consisting of a
   Gillou-Quisquater (GQ) key pair. The GQ key pair acts like an
   ephemeral SSO credential (much like the TGT in Kerberos), and is
   used to subsequently authenticate to various servers that are part
   of the same NDS tree. The GQ key-pair is managed on the user's
   behalf by the NetWare client library, which exposes specialized
   APIs for application developers to write to, in order to make use
   of the SSO credentials to access NetWare servers.

6.4 DCE Security

   DCE stands for Distributed Computing Environment. It is an OSF
   (Open Software Foundation) product and is conceptually similar to
   Kerberos. It even uses Kerberos V5 as one of its components. DCE
   deployment also requires both the network client and server
   software to make function invocations into a vendor provided DCE
   security library.


Goenka          Experimental - Expires September 2000        [Page 4]

Network Single Sign-On Architecture                         March 2000




6.5 X509 Authentication Framework

   In its simplest form, the user unlocks his or her private key from
   a secure storage on the local machine and the authentication
   library uses the private key to sign an authentication token. The
   signed authentication token is sent to the server along with the
   client certificate (and optionally a chain of CA certificates) as
   part of authentication exchange. The server uses the client
   certificate to validate the authenticator and the chain of CA
   certificates to validate the client certificate. It then maps the
   client certificate to a valid user in the system. The client
   application is often written to an authentication library, which
   manages user's private key in coordination with the application.
   Some authentication libraries support smart-card support to avoid
   storing user's private key locally on disk. Other variants store
   the private key on a secure server and use a challenge-response
   authenticated mechanism based on a password to securely retrieve
   the private key from the server. SSL/TLS use X509 Certificate
   based authentication.


6.6 Pluggable Authentication Module (PAM)

   PAM provides standard authentication APIs that applications need
   to write to in order that different authentication modules
   (including Kerberos, DCE, NetWare, X509, etc.) can be
   transparently integrated to provide SSO.


7  Architecture Overview

   This document presents a high level view of the implementation
   architecture.

   In order for various independently developed application protocol
   stacks to share a common security session, the security session
   should be built at a layer lower than the application layer in the
   OSI protocol stack. TLS and IPSec follow the same principle, but
   they are different in important ways. IPSec provides a node-to-
   node level authentication (and message protection) but it doesn't
   have a user context associated with it. TLS can be used for user
   authentication and SSO, but it cannot associate a user context
   without the active participation of the application itself. This
   requires the application to be written to the TLS APIs. Besides,
   it is just one of the numerous SSO mechanisms and it doesn't
   interoperate with non-TLS servers, such as those that use DCE,
   OTP, or plain-text passwords for authentication.


Goenka          Experimental - Expires September 2000        [Page 5]

Network Single Sign-On Architecture                         March 2000



   The goal of this architecture is to transparently enable SSO for
   services without changing the services themselves including a
   support for various combinations of authentication mechanisms.

   The shared security layer is built between the transport layer and
   the application layer by either replacing the implementation of
   transport interface (BSD Sockets, WinSock, TLI or equivalent) on
   the host operating system, or plugging-in a transport provider, if
   the host operating system allows it, e.g., Winsock layered service
   provider for Microsoft Windows suite of Operating Systems. The
   original APIs are preserved, so that applications using it are not
   affected beyond loading a different library. We shall refer to the
   new transport layer implementation as the SSO enabled Transport
   Interface (SSOTI). In addition to SSOTI, a Protocol Interceptor
   Module (PIM) is implemented for each of the application layer
   protocols such as FTP, HTTP, NNTP, IMAP, POP, LDAP, etc. The PIM
   for a given protocol intercepts the client-server exchanges for
   that protocol (based on configured host and port numbers) and
   injects authentication and security layer information at
   appropriate time during the protocol. This allows authentication
   and other security (message protection) semantics to be preserved
   for each application protocol. In addition, the user context
   information is also available to the PIM since the application
   passes it along during an authentication attempt. A security
   policy database (SPD) is consulted to lookup the host and port for
   which SSO is to be enabled, the SSO mechanism to be used and other
   configuration parameters specific to the SSO mechanism. The
   initial authentication to the authentication server for each
   security domain is carried out during the user login sequence to
   the workstation by integrating with the host operating system via
   PAM for Solaris, GINA for Windows NT and Windows 2000, etc.
   Alternatively, the SSOTI layer can initiate "late" authentication
   to the domain authentication server, during an authentication
   attempt for a given application within the domain. The security
   policy database is retrieved from a secure server using a standard
   protocol (such as LDAP) after server authentication.

   The following figure illustrates a typical architecture for
   implementing SSO where the application makes explicit calls into a
   vendor specific SSO library. Each application protocol may
   potentially have a different library to call into, and they are
   all independent of each other. Most SSO mechanisms including TLS,
   Kerberos, DCE and NetWare Authentication use this model.







Goenka          Experimental - Expires September 2000        [Page 6]

Network Single Sign-On Architecture                         March 2000


    +-----------------------------------+
    |    Application Protocol Stack     |
    |      (HTTP, FTP, IMAP, etc.)      |
    +----------------+-----------+------+
                     |           |
                     |   +-------+--------------+
                     |   | SSO Mechanism Layer  |
                     |   +-------+--------------+
                     |           |
     +---------------+-----------+-----+
     |       Transport Interface       |
     |(BSD Sockets, Winsock, TLI, etc.)|
     +---------------+-----------------+
                     |
            +--------+--------+
            | Transport Layer |
            |   (TCP, UDP)    |
            +--------+--------+
                     |
             +-------+-------+
             | Network Layer |
             |   (IP, IPX)   |
             +---------------+


   The proposed architecture uses protocol interceptor modules and
   various SSO mechanism modules underneath the transport interface.
   A security policy database is used to map the application protocol
   to the SSO mechanism based on configurable selectors, such as
   hostname, port number, user identity, etc.





















Goenka          Experimental - Expires September 2000        [Page 7]

Network Single Sign-On Architecture                         March 2000



   +-----------------------------------+ +--------------+
   |    Application Protocol Stack     | |   Initial    |
   |      (HTTP, FTP, IMAP, etc.)      | |Authentication+-+
   |                                   | |   Module     | |
   +----------------+------------------+ +------+-------+ |
                    |                           |         |
    +---------------+-----------------+         |         |
    | SSO Enabled Transport Interface |         |         |
    |(BSD Sockets, Winsock, TLI, etc.)+-----+   |         |
    +---------------+-----------------+     |   |         |
                    |                       |   |         |
    +---------------+--------------+   +----+---+------+  |
    |Protocol Interceptor Modules  |   |Security Policy|  |
    |  (HTTP, FTP, IMAP, etc.)     +---+  Database     |  |
    |                              |   +---------------+  |
    +---------------+---------+----+            +---------+
                    |         |                 |
                    |  +------+-----------------+---------+
                    |  |Single Sign-On Mechanism Layer    |
                    |  |(Secret Credential Store, Kerberos|
                    |  | TLS, DCE, etc.)                  |
                    |  +--+-------------------------------+
                    |     |
           +--------+-----+--+
           | Transport Layer |
           |   (TCP, UDP)    |
           +--------+--------+
                    |
            +-------+-------+
            | Network Layer |
            |   (IP, IPX)   |
            +---------------+



8  SSO Enabled Transport Interface (SSOTI)

   The SSOTI is an implementation of the usual transport interface
   (BSD Sockets, Winsock, TLI, IPX Socket, etc.) that redirects all
   traffic meant for a certain set of host, port and possibly other
   selectors, to a PIM as specified by the SPD. For example, all
   traffic to hosts in a given subnet on port 143 can be redirected
   to an IMAP PIM, and all traffic on port 21 can be redirected to an
   FTP PIM. This is transparent to the application on both the client
   and the server side. The SPD may indicate that traffic to certain
   hosts or ports should be bypassed from any PIM. This is important
   if the application uses its own security module such as SSL or
   Kerberos. In some cases, like HTTP over SSL or LDAP over SSL, the


Goenka          Experimental - Expires September 2000        [Page 8]

Network Single Sign-On Architecture                         March 2000


   application uses different ports for secure and insecure
   communication, which makes it easier to differentiate such
   traffic. The use of security modules directly by the application
   may not take advantage of the SSO capability provided by the
   SSOTI, since the security session is not shared. For instance, the
   user's private key to be used for SSL client authentication may
   not be accessible to the application, if the SSO Mechanism Layer
   obtained the user's private key securely from an authentication
   server during the initial user login sequence. Such situations can
   be managed by tricking the client application to think that it is
   communicating over an insecure port, and transparently provide
   security below the SSOTI layer.


9  Protocol Interceptor Module (PIM)

   A PIM is written for each application protocol and allows
   customized handling of the protocol's authentication and security
   requirements. For example, an IMAP PIM observes the IMAP exchanges
   between the client and the server and maintains the client
   authentication state. Any simple authentication attempt by the
   client is intercepted and replaced with a policy configured
   authentication protocol. If the SPD indicates that Kerberos V5
   should be used for authentication as well as message integrity
   protection, the IMAP PIM calls into the Kerberos library and
   requests a ticket to the IMAP server. Assuming that the client was
   authenticated to the Kerberos Authentication Server (the Ticket
   Granting Server) during initial login, a service ticket to the
   IMAP server is obtained from the TGS and used for authentication.
   All future IMAP messages sent by the client application are
   integrity protected by the IMAP PIM before sending if off. On the
   server side, if the IMAP server is kerberized, the IMAP PIM is
   bypassed, so that the client IMAP PIM interacts directly with the
   kerberized IMAP server. If the IMAP server was setup to use
   username and password for authentication, as indicated by the SPD,
   the client IMAP PIM would retrieve user's username and password
   from a configured Secure Credential Store, and include them as
   part of the Kerberos Authenticator. The IMAP PIM on the server
   side would verify the Kerberos Authenticator, extract the username
   and password from the authenticator, and pass it up to the IMAP
   server. The IMAP server would use the username-password for
   authentication, without even being aware of Kerberos happening
   underneath.

   The PIM approach requires that only one custom module be written
   for each application protocol to SSO enable all applications using
   that particular protocol. A PIM for FTP, SSO enables all the
   various FTP clients on the machine in a transparent manner. Some
   application clients may prompt the user for username and password,


Goenka          Experimental - Expires September 2000        [Page 9]

Network Single Sign-On Architecture                         March 2000


   even before passing it down to the transport layer. While this is
   unnecessary in our model, it doesn't hurt. Even if the user
   entered an incorrect password or simply skipped the prompt, a
   policy-configured SSO would automatically be done by the PIM.


10 Security Policy Database (SPD)

   The Security Policy Database controls configuration information
   vital for deciding if a particular communication channel should be
   intercepted or bypassed. It indicates the security domain to which
   a particular host belongs, and the mapping between ports and
   application protocols. The SPD may contain policy rules that
   indicate a set of selectors for deciding the security
   characteristics to be applied to a particular connection. The
   security characteristics may include the SSO mechanism to be used,
   associated security parameters such as message protection
   preference, security protocol specific settings, etc. The current
   architecture makes no assumption about the representation of the
   policy rules or their description language. It is desirable to
   maintain such security policies centrally for ease of management,
   and have the client retrieve the policy from a secure server
   during client initialization. The policy server MUST be
   authenticated before downloading the policy. Client
   implementations MAY poll the policy server for periodic policy
   updates. Although LDAP is a reasonable choice for hosting such
   policy information, the architecture doesn't mandate it. The
   details of policy database are beyond the scope of current
   discussion. There are several internet-drafts including [4], [5]
   and [6] that discuss various policy constructs, description
   language and schema.


11 Single Sign-On Mechanism Layer

   This layer may consist of as many authentication mechanisms as
   desired. A GSSAPI based interface may be well suited to implement
   various authentication mechanisms, including vendor specific
   mechanisms for SSO. The SPD indicates which SSO mechanism should
   be used when communicating with a particular service on a
   particular host. The user's authentication credentials for various
   mechanisms in different security domains are maintained at this
   layer. This might include the Kerberos credential cache, User's
   private key for Certificate based authentication, etc. This layer
   allows creating cross-technology authentication bridges, such as
   mapping a Kerberos principal to an X509 certificate and
   corresponding private key stored in a secure credential store, and
   using the certificate for transparent SSL client authentication.
   The initial authentication to the domain authentication server


Goenka          Experimental - Expires September 2000       [Page 10]

Network Single Sign-On Architecture                         March 2000


   should be carried out during user login to the system, although
   "late" authentication can be carried out on demand as well. For
   example, if the user chooses to skip authentication to a certain
   security domain during initial system login, any attempt to access
   a service within that security domain should require the user to
   supply the authentication credentials. These credentials can then
   be used to authenticate to the domain authentication server first,
   and then retrieve SSO credentials required for authenticating to
   the required service.

   The discussion so far assumes a single user environment, which is
   true for most workstation scenarios. In a single user environment,
   it is easy to associate the user context with any network request.
   Multi-user environments have always posed a challenging
   requirement on lower layer security implementations such as TLS or
   IPSec, since the user context is not available to them. This is
   where the PIM approach has an advantage over others. Application
   protocols usually send across the user identification information
   in some form. For example, FTP sends a command that looks like
   'USER vgoenka', LDAP sends the DN of the object to bind as, IMAP
   default authentication sends the username and password in the
   clear in a command that looks like 'a001 LOGIN vgoenka password',
   and so on. The user context is passed along by the application
   during an authentication attempt. By intercepting the default
   authentication attempt by the application, the PIM can get useful
   user context information, so that multiple user security contexts
   can be maintained in the security layer. The SPD can be modifiable
   by the user to associate multiple user ids with the same network
   principal, if the same user has different identities on different
   network services.


12 Security Considerations

   The SSO mechanisms used in the SSO mechanism layer may each have
   security issues, which are beyond the scope of this document.

   The security policy database forms a key security component in
   this architecture, and should be stored at a secure central
   location for ease of management. Each client and server in the
   security domain should authenticate the SPD server before
   downloading the SPD. SPDs can be hosted on LDAP servers and
   accessed over SSL/TLS. This requires additional management of
   trusted root certificates that the client and server machines
   should be configured with, in order to authenticate the SPD
   server.

   Transparent access to user's SSO credentials also implies that
   malicious software (e.g., viruses) executing on the user's behalf


Goenka          Experimental - Expires September 2000       [Page 11]

Network Single Sign-On Architecture                         March 2000


   can easily access all user's resources on the network. Although
   this makes it slightly easier for system crackers to write such
   malicious code, it doesn't introduce any additional security
   weakness that does not exist in the currently deployed SSO
   solutions. However, by concentrating all the SSO mechanisms at a
   common layer, this architecture allows for better security
   vigilance and policy enforcement. For example, to allow detection
   of security compromise attempts, the SSOTI implementations MAY
   allow querying for the existing security associations and
   configuration of security audit logs. User level tools can then be
   invoked to monitor the usage of various SSO-enabled network
   services.

13 Conclusion


   This document illustrates that popular SSO implementations require
   applications to be written to a vendor or mechanism specific API,
   which makes it difficult to enable many applications for SSO. An
   architecture that can transparently enable applications for SSO
   and also make it possible to provide cross-technology SSO bridges
   is then presented as a solution.



14 Future Considerations


   It is hoped that the architecture will be refined as it is
   reviewed by members of the Internet community, and will lead to a
   consistent framework for development of network single sign-on
   across different OS platforms.


15 References

   1  Bradner, S., "The Internet Standards Process -- Revision 3",
      BCP 9, RFC 2026, October 1996.

   2  Bradner, S., "Key words for use in RFCs to Indicate Requirement
      Levels", BCP 14, RFC 2119, March 1997

   3  John Kohl and B. Clifford Neuman. "The Kerberos Network
      Authentication Service (Version 5)", RFC-1510, September 1993

   4  M. Condell, C. Lynn and J. Zao, "Security Policy Specification
      Language", Internet draft, draft-ietf-ipsec-spsl-01.txt, July
      1, 1999

   5  L. A. Sanchez and M. N. Condell, "Security Policy System",
      Internet draft, draft-ietf-ipsec-sps-00.txt, November 18, 1998



Goenka          Experimental - Expires September 2000       [Page 12]

Network Single Sign-On Architecture                         March 2000




   6  Jamie Jason and Michael Jeronimo, "Ipsec Policy Schema",
      Internet draft, draft-ietf-ipsec-policy-schema-00.txt, March
      24, 1999



16 Acknowledgments

   The author thanks Frederick Zarndt, Jan Nielsen, John Michener and
   Robert Wille and for their critical review of this work.


17 Author's Addresses

   Vishal Goenka
   Novell, Inc.
   350 South 200 West #506
   Salt Lake City, UT 84101
   USA

   Phone: 1-801-257 4247
   Email: vgoenka@bigfoot.com



























Goenka          Experimental - Expires September 2000       [Page 13]

Network Single Sign-On Architecture                         March 2000



Full Copyright Statement

   "Copyright (C) The Internet Society (date). All Rights Reserved.
   This document and translations of it may be copied and furnished
   to others, and derivative works that comment on or otherwise
   explain it or assist in its implementation may be prepared,
   copied, published and distributed, in whole or in part, without
   restriction of any kind, provided that the above copyright notice
   and this paragraph are included on all such copies and derivative
   works. However, this document itself may not be modified in any
   way, such as by removing the copyright notice or references to the
   Internet Society or other Internet organizations, except as needed
   for the purpose of developing Internet standards in which case the
   procedures for copyrights defined in the Internet Standards
   process must be followed, or as required to translate it into







































Goenka          Experimental - Expires September 2000       [Page 14]