throbber
United States Patent 119J
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket