`Mashayekhi
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US005818936A
`5,818,936
`(11) Patent Number:
`(45) Date of Patent:
`Oct 6, 1998
`
`(54] SYST EM AN D METHOD FOR
`A UTOM lCALLY AUTHENTICATI NG A USER
`IN A DISTRIBUTED NETWORK SYSTEM
`
`Primary Examiner-Stephen C. Buczinski
`Arrorney, Agen1, or Firm-Cesari and McKenna, LLP
`
`[57)
`
`ABSTRACT
`
`(75)
`
`Inventor: Cameron Mashayekhi, Provo, Utah
`
`(73] Assignee: Novell, Inc., Orem, Utah
`
`(21) Appl. No.: 617,940
`
`(22] Filed:
`
`M ar. 15, 1996
`
`Int. Cl.6
`(51)
`.... .......... ...... .......... H04K 1/00; G06F 12/14
`(52) U.S. Cl . ................................... 380/25; 380/4; 380/49;
`395/188.01
`(58) Field of Search .................................... 380/4, 23, 24,
`380/25, 49; 395/188.01
`
`( 56]
`
`Refereol->eS Cited
`
`U.S. PATENT DOCUMENTS
`
`5,073,933
`5,349,642
`5,594,921
`5,606,614
`5,625,793
`
`.. .. 380125
`12/1991 RosenUtal .............
`.... 380125
`9/1994 Kingdon
`1/1997 Peuus ........................................ 380/25
`2/1997 Brady et al.
`....... ....... ... . 380/23
`4/1997 Priem el al.
`................. 380/4
`
`OIBER PUBLICATIONS
`
`Netscape 2, Special Ed.; Que Corp.; Indianapolis, IN, Sep.
`1, 1995.
`Pre, Aps- Tr- Trg--00--06.03; Manual of the Automated
`Patent System, Sep. 1988.
`Pre, Aps-Tr-Trg--00--06.09; Manual of the Automa ted
`Patent System, May 29, 1990.
`
`A dis tributed authentication seIVice that automates an
`authentication exchange between a user aod an application
`program of a d istributed network system. The novel distrib(cid:173)
`uted authentication seIVice comprises an exchange control(cid:173)
`ler coupled to an authentication database containing a group
`of encrypted application secrets associated with the user.
`Each application secret is, in turn, associated with a par(cid:173)
`ticular program resident in the system. According to the
`present invention, the controller cooperates with the data(cid:173)
`base to automate the exchange procedure by (i) receiving an
`authentication inquiry generalecl by the particular program
`in response to the user 's reques t to access that. program and
`(ii) providing that program with the proper application secret
`retrieved from the database. The group of encrypted appli(cid:173)
`cation secrets associated with the user is referred to as a
`" keychain." Each keychain is assigned a public/private key
`pair, with all secrets in the keychain being encrypted with
`the public key. The user may be associated with oae or more
`keycbains, each of which may be further associated with
`different secrets. Since these secrets correspond to applica(cid:173)
`tion programs, the association of programs to keychains may
`be based upon various characteristics, such as the user's
`rights with respect to the programs. Furthermore, each
`application program may be accessible by the same or
`different users so that, e.g., those users having the same
`access rights for a program may utilize the same keychain
`containing each user's secrets for the programs.
`
`20 Claims, 6 Drawing Sheets
`
`202a
`
`20 2b
`
`SERVICES
`
`APPLICATION
`
`236
`
`los h..23s
`
`[ __ _J
`
`SERVER NODE
`
`r __ _(222 _____
`1
`I
`I
`220
`21s
`I CERTIFICATE
`I
`KEY
`GENERATOR I
`I AUTHORITY
`I
`I
`(CA)
`(KG)
`I
`I
`I_ - - - - - _ _J
`
`USER
`
`110
`DEVICE
`
`112
`
`210
`
`1- - -1
`I DS V-232
`I __ I
`
`216
`
`202c
`
`APPLICATIONS
`
`WORKSTATION
`
`240
`
`APPLICATIONS
`
`MobileIron, Inc., Ex. 1006 - Page 001
`
`
`
`U.S. Patent
`
`Oct. 6, 1998
`
`Sheet 1of6
`
`5,818,936
`
`0
`0 ..-
`
`' c
`
`r
`
`w
`0
`0 z
`a:
`w
`> a:
`w
`(/)
`
`r
`
`c.o
`0 ..... w
`
`w
`0
`0 z
`a:
`w
`6: w en
`
`. . .
`
`w
`0
`0 z
`a:
`w
`> a:
`w
`C/)
`
`-
`
`co
`>- ~
`a: L.J
`0
`~ ,___
`w
`
`~ --er:
`
`0
`.....
`.....
`0
`l-1
`(/)
`(/) w ,___
`Q
`0
`a:
`a_ -
`
`'
`
`......
`
`w
`0
`0 z
`a:
`w en
`::>
`
`. . .
`
`-
`
`-
`
`>-a:
`co
`0
`0
`~ ..-
`w _)
`~
`
`.....
`0
`a:
`..-
`0
`_)
`C/)
`- w
`C/) w
`0
`0
`(.)
`z
`0
`a: a:
`a_ w
`(/)
`:::>
`
`C\I
`..-
`..-
`,J_
`w
`()
`>
`w -
`0
`~
`
`er:
`w
`(/)
`:::>
`
`MobileIron, Inc., Ex. 1006 - Page 002
`
`
`
`~ --------- -------
`AUTHENTICATION
`DATABASE
`
`' I
`
`202a
`
`l
`
`I
`f
`r - - - - - - - l
`I
`:
`DATABASE
`:
`:
`API
`I
`1
`I
`I
`I
`I
`I DIRECTORY SERVICES
`I
`I
`I
`I
`I
`
`202b
`
`SERVICES I APPLICATION
`
`I
`
`I
`
`234
`
`r---.
`I DS h..238
`t_ _ _J
`
`236
`
`SERVER NODE
`
`r - _ _s 222 ___ - - - ,
`I
`I
`f21s
`(220
`I
`I CERTIFICATE
`KEY
`GENERATOR I
`I AUTHORITY
`I
`I
`(CA)
`(KG)
`I
`I
`I __ ,_ _ _ _ ____ _J
`
`0 . 00 .
`~ = ~
`
`lood
`~
`~
`
`0
`f4
`$"'-
`......
`\0
`\0
`QC
`
`API
`
`216
`
`lr- 202c
`
`200
`
`210
`
`,---,
`
`t DS J.r-232
`1 ___ ,
`
`APPLICATIONS
`
`FIG.2
`
`~ =(cid:173)!')
`!') ...
`0 ....
`
`N
`
`0\
`
`lll
`Oc
`~
`...
`QC
`~
`O'\
`
`206
`
`I
`207~:
`
`~ --,
`201~
`----------,,
`1 I , , , ,
`
`I
`USER
`
`'
`112
`
`-
`
`7
`
`•
`
`•
`
`I
`
`API
`I
`I I
`7
`---j: ---- I
`L - - -
`- - - - -
`
`I
`
`APPLICATIONS
`
`WORKSTATION
`
`( 240
`
`MobileIron, Inc., Ex. 1006 - Page 003
`
`
`
`U.S. Patent
`
`Oct. 6, 1998
`
`Sheet 3 of 6
`
`5,818,936
`
`( 302
`
`USER
`OBJECT
`1
`
`(304a
`
`KEYCHAIN
`OBJECT 1
`FOR
`USER 1
`
`(304b
`
`KEYCHAIN
`OBJECT2
`FOR
`USER 1
`
`.
`.
`.
`
`(304n
`
`KEY CHAIN
`OBJECT n
`FOR
`USER 1
`
`FIG. 3
`
`APPLICATION ...... 306a
`OBJECT 1
`
`OBJECT
`
`306b
`
`OBJECT
`
`. .
`.
`APPLICATION -
`APPLICATION -306c
`. .
`.
`APPLICATION -
`APPLICATION -
`. .
`.
`OBJECT -306n
`
`OBJECT
`
`306d
`
`OBJECT
`
`306e
`
`APPLICATION
`
`MobileIron, Inc., Ex. 1006 - Page 004
`
`
`
`U.S. Patent
`
`Oct. 6, 1998
`
`Sheet 4 of 6
`
`5,818,936
`
`----..r-400
`START
`
`RECEIVE APP.
`AUTHENTICATION
`REQUEST
`
`402
`
`406
`
`NO
`
`SERVICE
`DENIED
`
`YES
`
`CALL RETRIEVE
`APP. SECRET API
`W/APP. ID
`
`410
`
`API SENDS
`REQUEST ACROSS
`NETWORK
`
`412
`
`RECEIVE RESPONSE
`FROM DATABASE
`API
`
`414
`
`416
`
`FIG. 4A
`
`MobileIron, Inc., Ex. 1006 - Page 005
`
`
`
`U.S. Patent
`
`Oct. 6, 1998
`
`Sheet S of 6
`
`5,818,936
`
`0
`i
`
`YES
`
`420
`
`NO
`
`SERVICE
`DENIED
`
`DECRYPT
`THE DATA WITH
`PRIVATE KEY
`
`422
`
`RETURN USER ID
`AND APP. SECRET
`TO APPLICATION
`
`424
`
`- - - " - - . r - 426
`STOP
`
`FIG. 48
`
`MobileIron, Inc., Ex. 1006 - Page 006
`
`
`
`U.S. Patent
`
`Oct. 6, 1998
`
`Sheet 6 of 6
`
`5,818,936
`
`500~~---
`START
`
`502
`
`RECEIVE THE
`RETRIEVED APP.
`SECRET FROM
`WORKSTATION
`API
`
`VALID
`
`INVALID
`
`NOT
`LOCATED
`
`506
`
`RETURN
`FAILURE
`TO
`WORKSTATION
`
`510
`
`RETURN
`FAILURE
`TO
`WORKSTATION
`
`LOCATED
`
`RETRIEVE APP.
`SECRET, USER ID,
`& KEYCHAIN
`PRIVATE KEY
`
`RETURN
`INFORMATION
`TO CLIENT
`
`STOP
`
`512
`
`514
`
`FIG. 5
`
`MobileIron, Inc., Ex. 1006 - Page 007
`
`
`
`5,818,936
`
`1
`SYSTEM AND METHOD FOR
`AUTOMICALLY AUTHENTICATING A USER
`IN A DISTRIBUTED NETWORK SYSTEM
`
`FIELD OF THE INVENTION
`The present invention relates generally to public key
`cryptography in distributed data processing systems and
`more specifically, to a means for transparently authentica t(cid:173)
`ing a user to multiple services and applications in a distrib(cid:173)
`uted system.
`
`2
`encrypts a message for confideoliality by performing a
`transformation using the server's public key, and a server
`decrypts the message by performing a transformation using
`ils privale key.
`Specifically, a user logs into the work5tation with the
`user's password and lhe workslalion derives a secrel, non(cid:173)
`complimentary, encryption key by applying a known hash
`algorithm 10 the password. The workslation lhen requests the
`user's private key Crom a directory service (DS) of lbe
`10 remote server. The user's private key has previously been
`encrypted under the same secrel encryption key and stored
`as a " credeatial" o[ the directory. A credential i5 a table ea try
`comprising the user's name and the user's private key; io
`01her words lhe credential is a represenlation of the user in
`15 the computer. ·The remote server returns the encrypled
`private key to the workstation, which uses the secret key to
`encrypt and obtain lhe private key.
`Once the user is authenlicated by the directory services on
`the network, and is then given access 10 lhe nel work, the user
`20 altempts to access eilher network-based services or appli(cid:173)
`cations. For example, lbe user may allempl lo log ioto a
`different network or access a different operating system
`(e.g., accessing a DCE-based Unix server) or access appli(cid:173)
`cations such as Lotus Notes or Novell GroupWise.
`25 Generally, each of lhese entities includes a component
`referred to as an authenlication agent that maintains the
`user's identity (ID) and secrets (e.g., passwords). All hough
`lhe user has been aulhenticated on the network, authentica-
`
`BACKGROUND OF HIE INVENTION
`In a distributed data processing network system, the
`melbodology employed lo reliably verify lbe idealily o[ a
`commuaicating device across the network prior to allowing
`the device to access system operations and resources is
`referred to as authentication. Access to the system may be,
`for example, for the purpose of communicatiag with other
`users, retrieving secure information, or receiving a service.
`Distributed systems generally include various computer
`nodes interconnected by a communica tions medium. The
`computer node.s may include nodes that are directly accessed
`by users, e.g., workstations, aod oodes runa iog specialized
`applications, e.g., servers. These nodes, the processes run(cid:173)
`ning on these nodes, and the users of the distributed system
`are referred to as " principals." The authentication exchange
`is performed on behalf of the principals.
`Public key cryptography is a method of secure commu(cid:173)
`nication in which each principal has a public encryption key
`and a private encryption key, and two principals can com(cid:173)
`municate knowing only each other's public keys. An encryp(cid:173)
`tion key is a code or number which, when taken together
`witb aa eacryptioa algorithm, defines a unique transforma(cid:173)
`tion used to encrypt or decrypt data. A public key system
`may be used in such a way as to ensure confidentiality of tbe
`information being transmitted, i.e., to ensure that the infor(cid:173)
`mation may not be understood by an eavesdropper, as well
`as to ensure the authenticity of the sender of the information.
`The manner in which a public key cryptography system 40
`operates to ensure authentication may be understood without
`reference to the mathematical transformations that are used
`for encryption and decryption. Public key cryptography is
`al50 reforred lo as a ''asymmetric" encryption because
`information encoded with a public key may be decoded only 45
`by using a complementary private key, the associated public
`and private keys defining a key pair. According lo this type
`of encryption, lhe private key is known only to tbe owner of
`lhe key, while the public key is known to other principals in
`lbe system.
`Accordingly, to effect a secure lransmission of informa(cid:173)
`lion 10 a recipienl, a principal encodes ("encrypls") the
`information wi th tbe recipient's public key. Since only tbe
`inteaded recipient bas tbe complementary private key, only
`lhat principal can decode ("decrypt") it. On the other hand, 55
`to prove to a recipient of information that the sender is who
`he purports to be, the sender encodes ("signs") the infor(cid:173)
`mation wilh its private key. If the recipient can decode
`("verify') the informalion, it knows that lhe sender has
`correctly ideotilied iti;elf. lo pubbc key cryptograpby, eacb 60
`principal is responsible for knowing its own private key and
`all the public keys are generally accessible from one
`localioa, typically a directory service.
`Operation of a public key cryptography system will now
`be described with reference 10 an illustrative log in au1hen- 65
`lication exchange bel\veen a work s tation, acting on behalf
`of a user, and a remote server. Basically, the workstation
`
`3o ~~~e:f;;~1%a;:~~r1~1~; q:~~ ~~: u:~~a[: i~fp~~~v~:;~~ri~
`
`35
`
`can con5ume considerable bandwidlh and can be quite
`intrusive to the user, particularly in systems requiring users
`to be authenlicated whenever a resource is accessed .
`Some conve ntional systems atlempl lo reduce the number
`of authentications a user must perform. For example, the
`Macinlosh operating system, available from Apple
`Computer, Inc., provides what is referred to as a "keychain."
`Here, the opera ting syslem enables a user to manually enter
`all of its password5 on a single keychain that resides within
`lbe operating system. A keycba in password is then used by
`lhe user to gaio acces5 and run all of the network services at
`the time the workstation is booted.
`One drawback to this approach is that there is only one
`keychain per operaling system (i.e., per workslation),
`!hereby limiting the availability of a user's keycha in to
`solely the single workstation. In other words, lhe localized
`nature of the keychain prevents the user from utilizing other
`workstations or systems throughout the distribu1ed network
`50 system. Additionally, the use of a single keychain provides
`a single level of acces.5 coalrol lo all application programs in
`lhe system for a given workstation; lhat is, different access
`rights cannot be associated with different programs for a
`user.
`Another drawback to the " Macintosh" Keychain approach
`i5 that it only stores user names and passwords for network(cid:173)
`based services, as opposed to application programs. That is,
`although single password access is provided lo all services,
`a user must continue to au1hentica1e itself 10 each program
`that is accessed .
`An alternate approach to reducing lhe number of authen(cid:173)
`tications performed by a user is provided by lhe Windows 95
`(Win95) operating sys1em available from Microsoft Corpo(cid:173)
`ration. Win95 provides a method of allowing users lo enter
`only one password (at start-up time) when logging into lhe
`network. A drawback of this approach is lhat, like the
`Macintosh keychain technique, the service is only available
`
`MobileIron, Inc., Ex. 1006 - Page 008
`
`
`
`5,818,936
`
`3
`on each local workstation as part of its operating system, and
`is not available on the network in a distributed form.
`More troubling, however, i5 tbat tbe service does not
`allow passwords of choice for application programs or
`network logins, thus requiring all services accessed by the
`workstation to synchronize their passwords with the Win95
`password for that platform. Security concerns arise when a
`user assigns the same value to all of its passwords. Under
`such circumstances, tbe user's rigbts to all applications,
`rather than to just a single system, are given away if the
`password is compromised. This may further compromise
`portions of the network system as well as tbe con6dentiality
`of the user's information.
`It can thus be seen from the foregoing that each of tbe
`conventional approaches to simplifying tbe authentication 15
`proces.5 have limitecl ca pabilities and flexibility. What is
`needed, therefore, is a means for easily and efficiently
`authenticating a user to various application programs or
`systems in a distributed network without compromising the
`security of the network or the confidentiality of the users' 20
`information.
`
`SUMMARY OF THE INVENTION
`
`4
`for decrypting that secret. The workstation API then
`decrypts and forwards the proper secret (and user identity)
`to the particular application program.
`Advantageously, authentication of a valid network client
`i5 performed automatically by the distributed authentication
`service for all desired local or network-based applications in
`the user's associated keychains. That is, authentication is
`performed transparently (without any fu rth er user
`intervention) and witbout degradation of network security.
`10 Thus, a valid network client does not have to authenticate
`itself each ti.n1e it attempts to access an application program.
`Furthermore, the distributed nature of the authentication
`service provides the user with access to application pro(cid:173)
`grams from any colltlected workstation in the distributed
`network. In otber words, the inventive service is available
`throughout the entire network rather than being localized on
`an individual workstation. The authentication service is also
`available to all applications and services alike, and is not
`limited to network-based applications.
`The flexible association of users, keychains and applica(cid:173)
`tion secrets enables each user to have its own unique user
`identity and application secret for every application on the
`network. Thus, knowledge of one application secret does not
`compromise tbe security of all remaining application secrets
`as.50Cia ted with the user.
`Further features and advantages of the present invention
`as well as the structure and operation of various embodi(cid:173)
`ments of tbe present invention are described in detail below
`30 with reference to the accompanying drawings. In the
`drawings, like reference numbers indicate identical or func(cid:173)
`tionally similar elements. Additionally, the left-most digit of
`a reference number identifies the drawing in which the
`reference number first appears.
`
`25
`
`The present invention relates to a distributed authentica(cid:173)
`tion service that automales an authentication excbange
`between a user and an application program of a distributed
`network system. The novel distributed authentication ser(cid:173)
`vice comprises an exchange controller coupled to an authen(cid:173)
`tication database containing a group of encrypted applica(cid:173)
`tion secrets associated with the user. Each application secret
`is, in turn, associated with a particular program resident in
`the system. According to the present invention, the control-
`ler cooperates with the database to automate the exchange
`procedure by (i) receiving an authentication inquiry gener- 35
`ated by tbe particular program in response to the user's
`request to access that program and (ii) providing that pro(cid:173)
`gram with the proper application secret retrieved from the
`database.
`1he group of encrypted application secrets associated 40
`with the user is referred to as a "keychain." Each keychain
`is assigned a public/private key pair, with all secrets in the
`keychain being encrypted with the public key. The user may
`be associated with one or more keychains, each of which
`may be furtber as.50ciated with different secrets. Since tbese 45
`secrets correspond to application programs, the association
`of programs to keychai.ns may be based upon various
`characteristics, such as the user's rights with respect to the
`programs. Furthermore, each application program may be
`accessible by the same or different users so that, e.g., those 50
`users having the same access rights for a program may
`utilize the same keychain containing each user's secrets for
`the programs.
`In the illustrative embodiment, the exchange controller
`comprises ao application program i.nterface (API) tbat is 55
`distributed among user workstations (i.e ., workstation APls)
`and the authentication database (i.e., the database API) ;
`preferably, both the database API and authentication data(cid:173)
`base reside in a network directory services (NDS) system.
`When the authentication inquiry is rece ived from the pro- 60
`gram at the controller, the workstation AP! verifies that the
`user is a val id network client (i.e., has successfully logged-
`on and bas been authenticated to the NDS) by requesting the
`proper application secret for that particular program. In
`response to this request, tbe database API accesses the 65
`authentication database and provides the workstation with
`an encrypted application secret along with the private key
`
`BRIEF DESCRJIYBON OF THE DRAWINGS
`For a fuller understanding of the nature of the invention,
`reference should be made to the following detailed descrip(cid:173)
`tion taken in connection witb the accompanying drawing.5,
`in which:
`FIG. 1 is a diagram of a distributed data processing
`network system in whicb tbe apparatus and protocol of tbe
`invention may be used;
`FIG. 2 is an exemplary embodiment of an authentication
`arrangement including a workstation node, a key generator
`(KG) node, a certificate authority (CA), a certificate storage
`server (CSS) node and a revocation service (RS) node in
`accordance with the invention;
`FIG. 3 is a schematiwd block diagram of the secure
`authentication database residing on network directory ser(cid:173)
`vices;
`FIGS. 4A and 4B are a flowchart of the functions per(cid:173)
`formed by a workstation applications program interface
`(API) of the present invention; and
`FIG. 5 is a flowchart of the functions performed by a
`database AP! of the present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`Referring to FIG. 1, a distributed data processing network
`system 100 includes a plurality of computer nodes, s uch as
`user nodes 1020-11 and various server nodes 104a- n, inter(cid:173)
`connected by a communications medium 106. The user
`node, e .g., a workstation 102a, is a computer generally
`configured for use by one user at a time, whereas each server
`104 is a computer resource running specialized software
`
`MobileIron, Inc., Ex. 1006 - Page 009
`
`
`
`5,818,936
`
`5
`applica1ioos aod services, 1ypically for use by many user.;. lo
`general, each of 1he compulcr nodes includes memory
`means 108 for storing sof1ware programs and data strucrures
`as.socia1cd with 1hc cryp1ographic me1bods and techniques
`described herein. Io addi1ioo, the nodes fu.nher include
`processor means llO for executing the software programs,
`including various algori1hms for generating numbers and
`codes associated wi1b, e.g., passwords, aod for manipulating
`the stored darn structures. ll will be apparen1 10 those skilled
`in the art that other processor and memory means, such as 10
`encoding and decod ing device:;, may be used within tbe
`teachings of the i_ovea1ion to implement cryptographic
`authentica tion methods and techniques described herein.
`To access resources of the network 100, a user typically
`" logs in" wi th a server node 104 configured as a directory 15
`service (DS) through the local workstation 102a, and then
`remotely authenticates itself 10 the DS to acquire access to
`those resources. Specifically, the user provides an authorized
`user identily (e.g., n user name) and a user secret (e.g., a
`password) 10 an inpul/output device 112 of the workstation 20
`102a and the workstation authenticates the log-in attempt
`using a log-in autbcnlicalioo exchange with lbe DS. Once
`autbcntica1cd, tbe user receives its private key, which the
`worksia ti on 102a uses in subsequent authe ntication
`exchanges wi1b remote priocipals, such as server aodes HM. 25
`As noted, tbcsc subsequent authenticatioa exchanges coa(cid:173)
`sume considerable bandwidth and are burdensome to the
`user when acces;ing re:;ource:; that require autbenticatioo.
`The present invemion is directed to ao arrangement for
`easily and efficiently authenticating a user to various appli(cid:173)
`cation programs or syl>terns ia a distributed oetwork without
`compromising the security of the network or the confiden(cid:173)
`tiality of the user's infonmation.
`An illustrative embodiment of an authentication arrange(cid:173)
`ment 200 of the present invention is shown in FIG. 2. The
`arrangement includes server nodes 202, a workstation node
`2 10, a key gcaerator (KG) server 218 and a certificatioa
`authority (CA) 220. In general, the workstatioa node 2 10
`provide.~ an intt:rfoce lo a user when accessing specialized
`applications executing on the server nodes 202. Tue KG 218
`is an example of a specialized server application used to
`register a user in the distributed system 200 by creating an
`accoun t that includes the user's identitv and secret
`(pas~word). The KG 218 also creates a priv~te/public key
`pair far as pects or lht> pr.:senl invent ion described below 45
`and, thus, 1nus1 operate in a trus tworthy fashion. That is, the
`KG must choose private/public key pairs at random and
`musl either genera le or accept from the users the keys or the
`passwords used 10 encryp1 or decryp1 data. Further, in roost
`implementations, tbe KG must reliably commuoicate the so
`generated public key 10 certification authority 220, so that
`the CA (e.g., another specialized server applica1ion) may
`cryptographically bind the public key and the user name in
`a signed "certificate". Then the certificate and the private
`key will be rel urned to the directory service to be saved with ss
`user informa1ion.
`In accordance with the invention, the workstation and
`server nodes may be configured as a distributed authentica(cid:173)
`lion service 20 l 1ha1 automates an authentication exchange
`between a user interface 112 200. The novel distributed 60
`service 20 l comprises an exchange controller 207 coupled
`10 an au1hcntica1ion database 204 containing a group of
`encrypted application secrets associated with the user. The
`controller 207, in turn, comprises an application program
`interface (API) tha t is dil;tributed among user workstations 65
`(i.e., work.stntion AP! 214) and the authentication database
`(i.e., the database AP! 206). Illustratively, both the database
`
`6
`API and authc01ication database reside in a network direc(cid:173)
`tory services (NDS) system.
`The authenlicalion dalabal;e 204 is preferably a novel
`secure database containing groups of application secrets for
`predetermined application programs. Each group of appli(cid:173)
`cation secrets, referred to as a " keychaio", is assigned a
`public/private key pair by the KG 218 when the keychaio is
`created. The database 204 also contains user objects which
`as.50Ciate a given user with one or more keycl:tains. The
`database AP! 206 manages the authentication database 2 04
`in respollSC LO queries generated by workstation API 214.
`FIG. 3 is a schemali7.cd block diagram of the authentica(cid:173)
`tion database 2(M oJ' 1he present invention. The da tabase 21M
`contains three types of as.5oc iated data elements configured
`as objecLs: a user objecl 302, one or more keycbain objects
`30411-n associated with user object 302, and application
`objects 30611- n, one or more of which is associated with
`each keycha in object 304. Bacli object contains a number of
`atlributcs in accordance w ith the present invention as
`described below.
`For every valid network user, the altributes of user object
`302 include a login public/priv:1te kt:)' pair and a secret (e.g.,
`the bash o f the password). The user object 302 is accessed
`by the NDS to initially aulbentica te tbe user w hen the user
`logs oo lo the network. An application object 306 includes,
`for an associated application program, a program name, a
`list of users that have authority to access tbe program, and
`ao application program identifier (ID). Tbe program name
`attribute is a unique descriptive tenro that identifies the
`application program.
`The ID is a unique character string typically supplied by
`the application manufac1urer that identifies the application
`program. However, the present invention reserves a pre-
`35 assigned range of ros for programs lhal have DO IDs
`assigned lo them by their manufacturer. lo the preferred
`embodiment of the present invention, the ID is an ASN.1
`(abslract syntax notation; a CCITI/ISO standard) compliant
`identifier defined as a " Free l'orm Identifier." However, as
`40 those skilled in the nrt wou ld find apparent, the ID may take
`on other forms appropriate for the app licable network envi-
`ronmenl.
`Keychain object.<;, or simply " keychains", are assoc.iated
`with one or more application objects based upon character(cid:173)
`istics of the app lication programs. A:; noted, a keycbain has
`as allributes al least one applicatio n secret and a public/
`private key pair. The appl ication secret contains data used by
`the particulrir program to authenticate the user. Application
`secrets may be grouped iu.:cordiog lo, e.g., the access coolrol
`level (ACL) for each application program. For example, a
`group of applications on one keychain may require admin(cid:173)
`istrat ive rights for modifica1ion, while another group of
`applications on a different keychain may allow user modi(cid:173)
`fications. In the illustrative embodimen t, the application
`secret is the user 's password for that program; however, it
`will be understood by those skilled in the an 1ha1 the secret
`may be any type of secure idcotificatioo mechanism. The
`key pair encryptSl'decrypts the application secrets associated
`with a keychain object.
`As noted, in the illustrative embodiment, the exchange
`controller 207 comprises an API that is distributed among
`user workstations (i.e., workstat ion APls 214) and the
`authentication database (i.e., the database AP! 206). A
`particular program, e.g., program 236, issues an autheolica(cid:173)
`tioo inquiry 10 user 112 in rcspoos.: to an altempl by that user
`to access 1be program's processes or data. When 1he authen(cid:173)
`tication inquiry is received at the co111roller, the workstation
`
`30
`
`MobileIron, Inc., Ex. 1006 - Page 010
`
`
`
`5,818,936
`
`7
`API 214 verifies that the user is a valid network client (i.e.,
`bas successively logged-on and bas been authenticated to the
`NDS) by requesting the proper application secret for pro(cid:173)
`gram 236. In response to this latter request, the database AP!
`206 accesses the authentication database 204 and provides
`an encrypted application secret along with the private key
`for decrypting the secret. The workstation AP! then decrypts
`and forwards the proper application secret (and user
`identity) to the particltlar application program.
`FIGS. 4A and 4B are a flow chart of the fu nction 10
`performed by workstation AP! 214 in response to the
`authentication request generated by a particular program. As
`noted, when a user 201 attempts lo acces.s a particular
`application program, such as a local application 240 or
`network-based application program 236, the particular 15
`application program requires that the user be authenticated
`prior to accessing its processes or data. The function begins
`al block 400 and proceeds lo block 402 where workstation
`AP! 214 receives this au thentication inquiry from the appli(cid:173)
`cation program. Upon receipt, the workstation AP! 214 20
`determines whether the user is a valid network client at
`block 404. If the user is not a valid network client, work(cid:173)
`station API 214 denies the user access to the distributed
`authentication service at block 406. However, if the user is
`a valid network client, then the workstation AP! 214 requests 25
`the proper application secret for the particular application
`program at block 410. For example, the workstation AP! 214
`calls a ''Retrieve Application Secret" AP! for retrieving the
`user's identity and proper application secrets. Workstation
`API 214 provides the application identifier of the particular 30
`application as part of the AP! call. 'The request lo the
`database API 206 is preferably encoded in a network pro(cid:173)
`tocol element in a matter that is well-known in the art. The
`database AP! 206, in a matter described below wit h refer(cid:173)
`ence to FIG. 5, returns encrypted data and a keychain private 35
`key to the workstation API 214. At block 414, the worksta(cid:173)
`tion AP! 214 receives the encrypted data and keychain
`private key.
`At block 418, Lhe worksta tion AP! 214 determines
`whether it successfully received the encrypted data and a 40
`public key from the database AP! 206. If not, access to the
`distributed authentication service 201 is denied at block 420.
`If the information is successfully received, the workstation
`AP! 214 uses the keychain private key to decrypt the data on
`the workstation 210 at block 422. After decrypting the data, 45
`workstation API 214 returns the resulting user identity and
`application secret to the particular application program for it
`to perform its authentication in block 424. The function then
`ends at block 426.
`FIG. 5 is a flowchart of the function performed by the 50
`database AP! of the exchange controller in response to a
`workstation API's request for an application secret. The
`runction begins at block 500 and proceeds to block 502
`where the request is received at the database AP! 206. At
`block 504, the database AP! 206 attempts lo locale the
`application object for the application ID received from the
`workstation in its request. If the application object cannot be
`found, the database AP! 206 returns a service failure incli(cid:173)
`cation to the workstation AP! 214 at block 506. If the
`application object is found, the database AP! 206 attempts to 60
`locate the user's keychain that contains the application
`secret for the user at block 50