`Shambroom
`
`[54] METHOD FOR PROVIDING SECURE
`REMOTE COMMAND EXECUTION OVER
`AN INSECURE COMPUTER NETWORK
`
`[75] Inventor: W. David Shambroom, Arlington,
`Mass.
`
`[73] Assignee: GTE Laboratories Incorporated,
`Waltham, Mass.
`
`[21] Appl. No.: 08/799,402
`[22]
`Filed:
`Feb. 12, 1997
`
`[51] Int. Cl.6 ...................................................... .. H04L 9/00
`[52] US. Cl. ............................................... .. 380/21; 380/25
`[58] Field of Search ................................ .. 380/21, 25, 23;
`340/825.34; 705/44
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,313,521
`5,349,643
`
`5/1994 Torii et a1. .............................. .. 380/25
`9/1994 Cox 6161. ............................... .. 380/25
`
`5,416,842
`
`5/1995 AZiZ . . . . . . . . . .
`
`. . . . .. 380/25
`
`4/1996 Atkinson ............ ..
`5,511,122
`5,590,199 12/1996 Krajewski, Jr. et al
`5,604,803
`2/1997
`'
`5,764,687
`6/1998
`5,768,504
`6/1998
`
`380/25
`380/25
`.. 380/25
`380/23
`380/25
`
`OTHER PUBLICATIONS
`
`MIT, Kerberos V5 Installation Guide (Release beta 7), Sep.
`11, 1996.
`MIT, Kerberos V5 System Administrator’s Guide (Release
`beta 7), Sep. 10, 1996.
`MIT, Kerberos V5 UNIX User’s Guide (Release beta 7),
`Sep. 10, 1996.
`MIT, Kerberos V5 Application Programming Library, Sep.
`10, 1996.
`MIT, Kerberos V5 Data Encryption Standard Library draft,
`p. 1.
`MIT, Kerberos V5 Implementer’s Guide, Sep. 10, 1996.
`Jaspan, Barry, Kerberos Administration System KADM5
`API Functional Speci?cations, Sep. 10, 1996.
`
`US005923756A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,923,756
`Jul. 13, 1999
`
`J aspan, Barry, KADM5 Library and Server Implementation
`Design, Sep. 10, 1996.
`Freier, Alan 0., et al., The SSL Protocol, Version 3.0, Mar.
`4, 1996.
`Kohl, J. and Neuman, C., The Kerberos Network Authen
`tication Service (V5), Sep. 1993.
`Schneier, Bruce, Applied Cryptography, 2nd ed. (1996), pp.
`566—572.
`Steiner, Jennifer G., et al., “Kerberos: An Authentication
`Service for Open Network Systems,” Mar. 30, 1988.
`Kohl, John T., et al., “The Evolution of the Kerberos
`Authentication Service,” Spring 1991 EurOpen Conference,
`Tromso, NorWay.
`Gradient Technologies, Inc., Web Integration Strategies:
`Believe It Or Not—Gradient Technologies’ WebCrusader,
`Apr. 1996, pp. 1—12.
`Gradient Technologies, Inc., Developing Secure Web—based
`Java Applications, The Integration of Web Crusader and Net
`Dynamics, May 1997, pp. 1—16.
`
`(List continued on neXt page.)
`
`Primary Examiner—Salvatore Cangialosi
`Attorney, Agent, or Firm—Leonard Charles Suchyta; Floyd
`E. Anderson
`
`[57]
`
`ABSTRACT
`
`A method and apparatus is disclosed for enhancing the
`security of a message sent through a netWork server from a
`client computer to a destination server. A secure connection
`for receiving and transmitting data is established betWeen
`the client computer and the netWork server. Using client
`identifying information and a secure authentication protocol,
`the netWork server may then obtain client-authentication
`information from a validation center. The client
`authentication information is transmitted to the client and
`erased from the netWork server. The netWork server then
`receives the client-authenticating information back from the
`client With an accompanying message for the destination
`server. The netWork server may use the client-authenticating
`information to obtain permission data from the validation
`center for use in accessing the destination server.
`
`27 Claims, 11 Drawing Sheets
`
`KEREEROSSEHVEH mu J8EE
`
`‘ 11111111111111111 ,1
`
`u
`
`954
`SERVlCE
`wear/x02
`min
`
`4.
`To m TO/FROM FROM 1390
`129a
`TO/FROM w m um
`
`mom m0
`
`VMware Exhibit 1014 Page 1
`
`MobileIron, Inc., Ex. 1014 - Page 001
`
`
`
`5,923,756
`Page 2
`
`OTHER PUBLICATIONS
`
`Gradient Technologies, Inc., Encryption Security In the
`Enterprise, Public Key/Secret Key, Jan. 1997, pp. 1—20.
`InformationWeek, SpinningASecure Web,Aug. 12, 1996 (4
`pages).
`Gradient Technologies, Inc., NetCrusader Product Data
`Sheet, NetCrusader’s Distributed Services Product Line,
`Mar. 1997 (4 pages).
`Gradient Technologies, Inc., NetCrusader Product Family
`OvervieW, Mar. 1997 (4 pages).
`Gradient Technologies, Inc., NetCrusader Product Data
`Sheet, NetCrusader Commander, Mar. 1997 (4 pages).
`Gradient Technologies, Inc., WebCrusader Product Data
`Sheet, WebCrusader Product Line, Mar. 1997 (4 pages).
`
`Gradient Technologies, Inc., Web—based Applications Make
`the Grade at Penn State University, 1996 (2 pages).
`Kamens, Jonathan I., KADMS Admin API Unit Test
`Description, Sep. 10, 1996.
`Kamens, Jonathan 1., Open V*Secure Admin Database API
`Unit Test Description*, Sep. 10, 1996.
`MIT, Kerberos V5 Installation Guide (Release 1.0) Dec. 18,
`1996.
`MIT, Kerberos VS System Administrator’s Guide (Release
`1.0), Nov. 27, 1996.
`MIT, Kerberos V5 UNIX User’s Guide (Release 1.0), Dec.
`18, 1996.
`MIT, Upgrading to Kerberos V5 from Kerberos V4 (Release
`1.0), Dec. 18, 1996.
`
`VMware Exhibit 1014 Page 2
`
`MobileIron, Inc., Ex. 1014 - Page 002
`
`
`
`U.S. Patent
`
`Jul. 13,1999
`
`Sheet 1 0f 11
`
`5,923,756
`
`ZOFDmEkwE
`vEo>>Ez
`
`wmnowwz
`
`ImPZmO
`
`ma
`
`qmm
`
`525E;
`
`mom
`
`?llllJ
`
`0mmW
`
`wmaowwz
`
`E0252
`
`qmlv
`
`525E;
`
`oqm
`
`womm
`
`VEOZFMZ
`mw>mmm
`52x52;
`vEo>>Gz
`wEGwmz.
`
`ulna
`
`VMware Exhibit 1014 Page 3
`
`MobileIron, Inc., Ex. 1014 - Page 003
`
`
`
`US. Patent
`
`Jul. 13, 1999
`_______
`
`Sheet 2 0f 11
`
`_______
`
`5,923,756
`
`z__odlmkzmzirIIIIIIIIIIIIIIIIILrIImMDomWIILrIIIIIIIIIIIIIIIIIL
`
`xmozfimz_
`
`"Em>¢mwmmm>>0mm
` mam
`mw>>mm>>
`
`____________.__
`
`MobileIron, Inc., Ex. 1014 - Page 004
`
`VMware Exhibit 1014 Page 4
`
`MobileIron, Inc., Ex. 1014 - Page 004
`
`
`
`US. Patent
`
`Jul. 13, 1999
`
`Sheet 3 0f 11
`
`5,923,756
`
`am
`
`>mx
`
`
`
`anIm>mmwvEO>>-_.mz
`
`
`mmmfiémm;
`
`
`5%?“5292.;.TL
`
`modmm>mmm
`
`.mmzommzszmmkz;"“zmozfimz
`>m_v__XEOEMZ_(omN
`IIIIIII.anmm;
`IIIIImmmaomm
`0mm__
`
`_|||||L
`
`manommz_
`
`
`
`2922.5823.2%meméfizmommoI
`
`add
`
`40,4.
`
`mu=m
`
`gun
`
`___
`
`_szmmkz:__XIOEMZ_
`
`EL
`
`.Illll‘l.
`
`m.9”.
`
` mmaommz__
`__
`
`mm>mmw
`
`
`
`
`
`mON
`
`MobileIron, Inc., Ex. 1014 - Page 005
`
`VMware Exhibit 1014 Page 5
`
`MobileIron, Inc., Ex. 1014 - Page 005
`
`
`
`
`
`
`____Illllillllllul|||||-|||l|ll
`
`>mx
`
`ZO_._.Dm_I._.m_D
`
`owma
`
`ovm..
`
`
`
`Im>mmmmOmm—mmmx
`
`US. Patent
`Jul. 13, 1999
`________
`
`Sheet 4 0f 11
`
`5,923,756
`
`mOmm—mmmx
`
`mm<m<k<o
`
`3M
`
`9N
`
`m4<FZmDMIO
`
`NIO<O
`
`v.OE
`
`wOIme—w!=00
`zo_»<N_..<Ez_mo_>mmmmwwwmm
`
`kzmjomofimmkz
`
`
`
`
`
`3N
`
`mwhzmo
`
`ddm
`
`
`I'llllluIIIIIIII-l‘llll'lllllllul
`
`
`8meta~8Emm>mmmxmozfimz08-.Fzmjor05
`
`MobileIron, Inc., Ex. 1014 - Page 006
`
`VMware Exhibit 1014 Page 6
`
`MobileIron, Inc., Ex. 1014 - Page 006
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jul. 13,1999
`
`Sheet 5 0f 11
`
`5,923,756
`
`WEB BROWSER 52g SENDS HTTPS REQUEST TO 601
`WEB SERVER ZZQ (ARROW 6_3Q)
`
`WEB SERvER Zgg RETURNS CERTIFICATE TO
`WEB BROWSER 6_2g, ESTABLISHES SECURE
`SOCKETS LAYER (SSL) ENCRYPTEO
`CONNECTION, AND SENDS LOGIN FORM
`(ARROW 5Q)
`
`,- 602
`
`I
`WEB BROWSER Sgg SUBMITS LOGIN DATA
`INCLUDING USER NAME AND PASSWORD OF , 603
`A KERBEROS PRINCIPAL TO WEB SERVER E
`(ARROW §3_7_)
`
`I
`WEB SERVER _7_2_Q FORKS AND EXECUTES
`COMMON GATEWAY INTERFACE (CGI) SERVICE /_ 604
`INTERFACE PROCESS Z;4_Q, PASSING LOGIN
`DATA OVER STANDARD INPUT (ARROW Z5_0)
`
`I
`CGI SERvICE INTERFACE 14g FORKS AND
`EXECUTES KERBEROS INITIALIZATION CLIENT
`15g, PASSING LOGIN DATA AS INPUT
`PARAMETERS AND OvER STANOARO INPUT
`(ARROW m)
`
`/ 605
`
`I
`KERBEROS INITIALIZATION CLIENT 13g SENOS
`REQUEST FOR TICKET-GRANTING TICKET (TGT) r 606
`TO KEY DISTRIBUTION CENTER (KDC) 9_Qg
`(ARROW gig)
`
`I
`
`TO FIG. 5A
`
`FIG. 5
`
`VMware Exhibit 1014 Page 7
`
`MobileIron, Inc., Ex. 1014 - Page 007
`
`
`
`U.S. Patent
`
`Jul. 13,1999
`
`Sheet 6 0f 11
`
`5,923,756
`
`FROM FIG. 5
`
`I
`
`KDC m ExTRAcTs usER KEY FOR KERBEROS 7
`PRINCIPAL FRoM KERBEROS DATABASE gm 607
`(ARROW gag)
`
`I
`KDC @Q SENDS TGT, ALONG WITH KDC
`SESSION KEY ENCRYPTED WITH THE USER [608
`KEY, BACK TO KERBEROS INITIALIZATION
`CLIENT ZQQ (ARROW §9_0)
`
`II
`KERBEROS INITIALIZATION CLIENT m USES
`PASSWORD TO GENERATE USER KEY,
`DECRYPTS KDC SESSION KEY WITH USER KEY,
`STORES TGT AND KDC SESSION KEY IN
`CREDENTIALS CACHE (CC) w, THEN EXITS
`(ARROW BlQ)
`
`609
`
`I
`CGI SERVICE INTERFACE Z4_0 ASCII- AND URL-
`ENCODES CREDENTIALS CACHE 5Q
`(ARRow 829)
`
`611
`
`I
`CGI SERVICE INTERFACE ZAQ SENDS ENCODED
`CREDENTIALS CACHE @QQ AND COMMAND
`FORM TO WEB SERVER QQ, DESTROYS
`CREDENTIALS CACHE ?g, THEN EXITS
`(ARROW EQ)
`
`r612
`
`II
`
`V
`
`‘,613
`WEB sERvER Zgg SENDS ENCODED
`CREDENTIALS CACHE AND COMMAND FORM TO
`WEB BROWSER 6_2Q (ARROW 635)
`
`FIG. 5A
`
`VMware Exhibit 1014 Page 8
`
`MobileIron, Inc., Ex. 1014 - Page 008
`
`
`
`US. Patent
`
`Jul. 13, 1999
`
`Sheet 7 0f 11
`
`5,923,756
`
`Ewhw>m
`
`02.0004
`
`ZOSE<Q
`
`mw.0_u_
`
`IIa20m“.}wflOH
`
`mo.07.mm..mm0—”.
`S—OIn:O.r
`
`<0.mV—n—
`
`wg<_._.zmomm0
`
`MIO<O
`
`Goo—
`
`
`szjoam
`
`mommmmmx
`
`mm<m<._.<D
`
`ZO_._.Dm_I._.m_D
`
`mwkzmo
`
`
`omw.‘ovw..
`lllllllllll_Im>mmm
`mOmmmImx
`
`mmDme
`
`
`
`09H~Ewan—mm
`
`mkozmm
`
`
`
`20.50memmMm/flwwzmm>mwm
`
`mm>>
`
`mmm>>0mm
`
`de
`
`MobileIron, Inc., Ex. 1014 - Page 009
`
`VMware Exhibit 1014 Page 9
`
`MobileIron, Inc., Ex. 1014 - Page 009
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jul. 13,1999
`
`Sheet 8 0f 11
`
`5,923,756
`
`wO_>Ewm
`
`mwmOOmE
`
`mEDOmm
`
`wPOEwm
`
`ZO_._.DOwXm
`
`ZO_>_w<O
`
`VMware Exhibit 1014 Page 10
`
`MobileIron, Inc., Ex. 1014 - Page 010
`
`
`
`U.S. Patent
`
`Jul. 13,1999
`
`Sheet 9 0f 11
`
`5,923,756
`
`/1501
`WEB BROWSER @ SUBMITS COMMAND DATA AND ENCODED
`CREDENTIALS CACHE DATA TO WEB SERVER 7_20_ (ARROW m
`
`ISSUING COMMANDS
`
`I
`WEB SERVER Z2_0 FORKS AND EXECUTES COMMON
`GATEWAY INTERFACE (CGI) SERVICE INTERFACE l0_0Q
`(-1502
`PROCESS, PASSING ENCODED CREDENTIALS CACHE DATA
`IN THE ENVIRONMENT AND COMMAND DATA OVER
`STANDARD INPUT (ARROW 1010)
`
`I
`CGI SERVICE INTERFACE 1000 DECODES ENCODED
`CREDENTIALS CACHE DATA AND RESTORES IT (ARROW 1090)
`
`[-1503
`
`I
`CGI SERVICE INTERFACE 1000 FORKS AND EXECS SECURE
`REMOTE EXECUTION CLIENT 1040, PASSING COMMAND DATA
`AS INPUT PARAMETERS (ARROW 1060)
`
`504
`
`r1505
`I
`SECURE REMOTE EXECUTION CLIENT 104Q EXTRACT TGT AND KDC
`SESSION KEY FROM CREDENTIALS CACHE 1080 (ARROW 1100)
`
`I
`[1506
`SECURE REMOTE EXECUTION CLIENT 1040 SENDS TGT AND
`AUTHENTICATOR #1 TO KDC @Q (ARROW 1110)
`
`[1507
`v
`KDC 900 DECRYPTS TGT AND SENDS AUTHENTICATOR #2 TO
`SECURE REMOTE EXECUTION CLIENT 1040 (ARROW 1112)
`
`[-1508
`I
`SECURE REMOTE EXECUTION CLIENT 1040 SENDS REQUEST FOR
`SERVER TICKET (ST) FOR MANAGED HOST TO KDC all (ARROW 1114)
`
`I
`KDC 900 CREATES A SERVER SESSION KEY AND EXT RACTS THE
`KERBEROS SERVER KEY FOR THE MANAGED HOST 1200 (ARROW 1111)
`
`[1509
`
`[1510
`I
`KDC w SENDS ST FOR MANAGED HOST 1200, ALONG WITH SERVER
`SESSION KEY ENCRYPTED WITH THE KDC SESSION KEY, BACK TO
`SECURE REMOTE EXECUTION CLIENT 1040, WHICH DECRYPTS SERVER
`SESSION KEY WITH KDC SESSION KEY (ARROW 1120)
`
`TO FIG. 7A
`
`FIG. 7
`
`VMware Exhibit 1014 Page 11
`
`MobileIron, Inc., Ex. 1014 - Page 011
`
`
`
`U.S. Patent
`
`Jul. 13,1999
`
`Sheet 10 0f 11
`
`5,923,756
`
`FROM FIG. 1
`
`SECURE REMOTE EXECUTION CLIENT 1040 SENDS
`CONNECTION REQUEST TO INTERNET SUPER-DAEMON
`1280 ON MANAGED HOST (ARROW 1240)
`
`1 H
`5
`
`I
`INTERNET SUPER-DAEMON 1280 FORKS AND EXECS SECURE
`REMOTE EXECUTION DAEMON 1290 (ARROW 1281)
`
`‘,1512
`
`I
`SECURE REMOTE EXECUTION CLIENT 1040 SENDS ST FOR
`MANAGED HOST 1200 AND AUTHENTICATOR #3 SECURE REMOTE
`EXECUTION DAEMON 1290 (ARROW 1260)
`
`1513
`
`I
`SECURE REMOTE EXECUTION DAEMON Q80 EXTRACTS SERVER
`KEY FOR MANAGED HOST 1_2_QQ FROM KEY TABLE LLQ (ARROW
`[1514
`1320), DECRYPTS ST AND SENDS AUTHENTICATOR #4 TO SECURE
`REMOTE EXECUTION CLIENT miQ, ESTABLISHING
`ENCRYPTION CONNECTION (ARROW 1262)
`
`SECURE REMOTE EXECUTION CLIENT 1040 SENDS COMMAND DATA TO 1515
`SECURE REMOTE EXECUTION DAEMON 1290 (ARROW 1264)
`
`I
`SECURE REMOTE EXECUTION DAEMON 1&9 EXTRACTS ACCESS
`CONTROL LISTS (ACLs) FROM ACL FILE gm, AND vERIFIES THAT
`THE KERBEROS PRINCIPAL IS AUTHORIZED TO EXECUTE
`COMMAND AS THE SPECIFIED USER ON MANAGED HOST E00
`(ARROW gm)
`
`I
`
`TO FIG. 78
`
`/-1516
`
`FIG. 7A
`
`VMware Exhibit 1014 Page 12
`
`MobileIron, Inc., Ex. 1014 - Page 012
`
`
`
`U.S. Patent
`
`Jul. 13,1999
`
`Sheet 11 0f 11
`
`5,923,756
`
`FROM FIG. 7A
`
`I
`
`SECURE REMOTE EXECUTION DAEMON 1290 SENDS AUDIT
`TRAIL DATA (KERBEROS PRINCIPAL NAME, REMOTE USER
`r1517
`AND HOST NAMES, LOCAL USER NAME, AND COMMAND
`DATA) TO SYSTEM LOGGING DAEMON 1390 ON
`MANAGED HOST 1200 (ARROW 1380)
`
`SYSTEM LOGGING DAEMON 1390 ON MANAGED HOST 120g SENDS’
`AUDIT TRAIL DATA TO SYSTEM LOGGING DAEMON 1400 ON
`SERVER 700 (ARROW 1410)
`
`1518
`
`SYSTEM LOGGING DAEMON 1400 ON SERVER m RECORDS I
`AUDIT TRAIL DATA IN LOG FILE 1410 (ARROW 1420)
`
`1519
`
`I
`
`I
`SECURE REMOTE EXECUTION DAEMON 1290 FORKS AND EXECS
`SERVICE PROCESS 1350 TO EXECUTE COMMAND, PASSING
`COMMAND DATA AS INPUT PARAMETERS (ARROW 1360)
`
`1 520
`
`I
`SERVICE PROCESS 1350 RETURNS OUTPUT TO SECURE REMOTE
`EXECUTION DAEMON 1290, THEN EXITS (ARROW 1370)
`
`|,1521
`
`II
`SECURE REMOTE EXECUTION DAEMON 1290 SENDS OUTPUT TO
`SECURE REMOTE EXECUTION CLIENT 1040, THEN EXITS (ARROW 1300)
`
`/1522
`
`I
`SECURE REMOTE EXECUTION CLIENT 1040 SENDS OUTPUT TO CGI
`SERVICE INTERFACE 1000, THEN EXITS (ARROW 1061)
`
`1 523
`
`[1524
`II
`CGI SERVICE INTERFACE 1000 SENDS OUTPUT TO WEB SERVER m,
`DESTROYS CREDENTIALS CACHE 1080, THEN EXITS (ARROW 1020)
`
`I
`WEB SERVER 7_2Q SENDS OUTPUT TO WEB
`BROWSER Q22 (ARROW 639)
`
`,-1 525
`
`FIG. 7B
`
`VMware Exhibit 1014 Page 13
`
`MobileIron, Inc., Ex. 1014 - Page 013
`
`
`
`1
`METHOD FOR PROVIDING SECURE
`REMOTE COMMAND EXECUTION OVER
`AN INSECURE COMPUTER NETWORK
`
`BACKGROUND OF THE INVENTION
`The present invention relates to improving the security of
`data transmission betWeen computers using an insecure
`network, particularly to methods and systems for improving
`the integrity and security of messages transmitted from a
`client to a netWork server and then to a destination server or
`from the destination server to a netWork server and then to
`the client as part of a distributed computer system.
`A distributed computer system contains multiple distinct
`computers, Which are interconnected. One simple example
`of a general-purpose distributed system is a netWorked
`system containing several Workstations and servers inter
`connected through a netWork. NetWorks are popular because
`they alloW organiZations to share information and resources.
`Furthermore, in a netWorked system, if one computer
`breaks, or “crashes,” the others may continue to operate.
`The type, cost and reliability of the manner of intercon
`nection can be important considerations in netWorked sys
`tems. Large netWorks over relatively short distances typi
`cally use local area netWorks (LAN) such as an Ethernet or
`a Token Ring, Which permit communications betWeen a
`number of different computers on one or more Wires. The
`use of modems alloWs computer netWorks to be created over
`a larger area, because the connections can be made over data
`
`
`
`links such as telephone lines. Wide area netWorks typically use a combination of ?ber optic and copper Wire
`
`telephone lines as Well as microWave links and satellites to
`connect several smaller LANs. NetWorks of netWorks are
`often referred to as internetWorks.
`Computer netWorks, particularly internetWorks, can be
`vulnerable to security breaches. The degree of security of
`each component in the netWork differs, in part because each
`entity may be protected by varying layers of physical and
`operational security. Furthermore, each component or net
`Work in an internetWork may be oWned or controlled by
`different organiZations Whose security practices differ
`Widely. The interconnections betWeen the computers may be
`similarly insecure. Since some part of the netWork may use
`physically insecure links, such as telephone lines or micro
`Wave links, hackers and interlopers may eavesdrop or inter
`cept communications over the telephone line and modify
`them according to their Wishes or copy them for later use.
`Interlopers Who copy login and/or command information
`have the potential to use that information to gain access to
`other computers on the netWork.
`NetWork security is typically based on three general
`concepts. For every request to do an operation, such as
`execute a diagnostic routine or perform a remote login, the
`netWork 1) authenticates the request; 2) controls access via
`access control criteria; and, 3) audits every request to detect
`unauthoriZed uses.
`Authentication is the process of determining that an
`authoriZed user initiated the request and that the request Was
`not modi?ed improperly by an interloper on the Way to the
`destination. One common example of authentication is the
`use of a passWord at time of login. Upon receiving a
`username and passWord from the user, a host computer
`compares the passWord to a list of authoriZed usernames in
`an access control ?le, and if the passWord matches the
`passWord associated With that username, the host computer
`alloWs access. In the situation just described, hoWever, it is
`assumed that the user and host are communicating over a
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`5,923,756
`
`2
`secure connection; otherWise, interlopers could intercept the
`communications from the user to the host and steal the
`username and passWord information. The interloper could
`then illegally access the host at a later time by using the
`stolen username and passWord information.
`In a netWorked system comprising multiple intercon
`nected computers, a ?rst computer may request service from
`a second or destination server through an intermediate
`server. This ?rst computer is typically called a client. In
`order to receive service from a destination server, the client
`must begin by authenticating itself to the destination server.
`HoWever, because the client may be communicating to the
`destination server over an insecure line, the client cannot
`simply send a passWord in the clear. Instead, the client and
`the destination server may engage in a multiple query and
`response exchange, constituting an authentication process,
`Which Will convince the destination server that the request
`ing client is an authoriZed user.
`The prior art includes examples of encryption-based
`authentication processes that can be used to so authenticate
`a client to such a server. Such authentication processes can
`be based either on public-key or secret-key encryption
`systems. In a typical secret-key authentication scheme, each
`authoriZed party possesses a secret key, Which is knoWn only
`by the party and is registered With a trusted third party, or
`authentication server. The authentication server maintains a
`list of registered users and secret keys and, therefore, must
`be physically secure. By contrast, in a public-key authenti
`cation system, each user has a public key and a private key.
`The public key is posted; the private key is knoWn only to
`the user. Authentication using a public-key authentication
`system is attractive because it does not require a secure
`authentication server.
`One example of a secret-key based netWork authentica
`tion system is the trusted third-party authentication service
`called Kerberos. NetWork services and clients requiring
`authentication register With Kerberos and receive a secret
`key, Where said key (or a pass phrase from Which it can be
`derived) is knoWn only to the user and a Kerberos host
`server. Kerberos also generates temporary session keys,
`Which can be used to encrypt messages betWeen tWo regis
`tered Kerberos principals (users or hosts). A typical Ker
`beros softWare package is Kerberos Version 5 from Project
`Athena at the Massachusetts Institute of Technology (MIT).
`The Kerberos authentication scheme also is discussed in J.
`Kohl and C. Neuman, The NetWork Authentication Service
`(V5), Request for Comments: 1510 (September 1993). Ker
`beros and other trusted third-party private authentication
`schemes can alloW for speedier, secure access betWeen tWo
`principals.
`Other prior art systems have been developed to address
`netWork security issues. For example, tWo authentication
`protocols, Secure Sockets Layer (SSL) and Secure Hyper
`Text Transfer Protocol (S-HTTP), have been designed spe
`ci?cally to protect the information being transmitted across
`the Internet by using encryption. Both the client and the
`destination server must support SSL. SSL is application
`independent and operates at the Transport layer, meaning
`that it operates With application protocols such as HTTP, ftp,
`telnet, gopher, NetWork NeWs Transport Protocol (NNTP),
`and Simple Mail Transport Protocol (SMTP). SSL supports
`several cryptographic algorithms to handle the authentica
`tion and encryption routines betWeen the client and the
`server.
`S-HTTP is a secure extension of HTTP, a communications
`protocol of the World Wide Web. S-HTTP is a publicly
`
`VMware Exhibit 1014 Page 14
`
`MobileIron, Inc., Ex. 1014 - Page 014
`
`
`
`3
`available protocol developed by Enterprise Integration Tech
`nologies. Unlike SSL, S-HTTP is more closely related to the
`HTTP protocol. Also, While SSL typically encrypts the
`communications link betWeen a client and a server, S-HTTP
`can encrypt each message individually. In a client/server
`transaction under S-HTTP, the client does not need to
`possess a public key. Secure transactions may take place at
`any time, because the sender of an S-HTTP message sends
`its cryptographic preferences along With the message.
`A current trend in distributed system development is the
`concept of managed hosts. In a managed host system, a
`client Will access a netWork server and, via the netWork
`server, request access to a second server, Which may be
`referred to as the remote host, or the managed host. In larger
`netWorks, the netWork server may be acting as a gateWay
`and proXy for a large number of clients to access a large
`number of destination servers. In order for the transaction
`from a client to a destination server to be secure, both the
`transactions betWeen the client and the netWork server and
`the transactions betWeen the netWork server and the desti
`nation server should be secured by a netWork authentication
`process.
`In a certi?cate-based authentication scheme, all entities
`that Wish to communicate With one another must register
`With a third party called a certi?cate authority. The certi?
`cate authority veri?es the identity of the registering party
`and issues certi?cates Which the parties can then use to
`authenticate themselves to other registered parties. There are
`many certi?cate authorities offering suitable certi?cates of
`authentication including, for example, IBM’s World Regis
`try and Sun Microsystem’s SunCA.
`There are a number of problems associated With simply
`using one type of authentication process to secure the
`transactions betWeen the client and netWork server and those
`betWeen the netWork server and the destination server. Use
`of this system, for eXample, Would require that the netWork
`server, all clients and all destination servers possess a
`certi?cate ultimately traceable to the same top-level certi?
`cation authority. Furthermore, each individual user of a
`client system must be issued a client certi?cate. If the client
`certi?cates Were stored on the individual Workstations, the
`client Would be restricted to using only particular Worksta
`tions. If the client certi?cates Were stored on a portable
`media, such as diskettes, they Would be subject to loss or
`theft, decreasing the security of the overall netWork system.
`Moreover, client Workstations may be any one of a number
`of different hardWare devices, such as PCs or Macintosh,
`running a variety of different operating systems, such as
`UNIX or DOS, and there is no single medium supported by
`all the varieties of clients. In summary, use of a certi?cate
`authentication scheme betWeen the client and the netWork
`server Would be administratively dif?cult to support.
`If Kerberos authentication for all transactions is used,
`each client Workstation is required to possess the softWare
`necessary to communicate With the key distribution center.
`This approach encounters problems including that of pro
`viding many different versions of the softWare to support the
`many varieties of clients.
`If one authentication scheme is used to secure transactions
`betWeen the client and the netWork server, While another
`authentication scheme is used to secure transactions betWeen
`the netWork server and the destination server, then in trans
`actions betWeen the client and the destination server, the
`netWork server must act as a proXy for the client, and it may
`sometimes be undesirable to require the netWork server to
`perform client authentication. Since, by using tWo different
`
`10
`
`15
`
`35
`
`45
`
`55
`
`65
`
`5,923,756
`
`4
`authentication schemes, the client Would not be authenticat
`ing itself to the destination server directly, the netWork
`server needs to act as if it has the identity and memory of the
`client server. In server-to-server transactions, the user typi
`cally has logged on to the netWork server using a shell
`program. The shell program creates records on the netWork
`server that maintain a record of the user’s identity and use
`(i.e. time and date). As long as the user is logged on, the shell
`logon program eXists. In contrast, in a client-to-managed
`host transaction, the shell logon program is active on the
`client computer, but not on the server. The netWork server,
`instead, is interfacing With a key distribution center, or
`authentication server, on behalf of the client. To do this, a
`netWork server con?gured as a World Wide Web server
`creates and eXecutes transient processes (such as When an
`HTTP Common GateWay Interface (CGI) request is
`executed) to query the key distribution center. These tem
`porary processes must assume in some sense the identity of
`the user for the length of the transaction. Once their function
`is complete, hoWever, these transient processes terminate
`and disappear, resulting in the loss of any identity or session
`state data they may have acquired.
`When a netWork server does not maintain any information
`on a client once it has ?nished processing a request by the
`client, the server is described as stateless. A stateless ?le
`server avoids retaining client information by deriving infor
`mation about ?les and positions Within ?les from the request
`itself. A stateful server (e.g., one that stores ?le information
`in volatile memory) loses the information When the server
`crashes. In addition, if the client fails, the server may be
`unaWare that the client is no longer using the space allocated
`to retain information needed for the transactions and may be
`unable to reclaim the space. In contrast, folloWing the crash
`of a client or server, the stateless server need only respond
`to the last fully self-contained request from the client to
`continue the operation. In a UNIX operating environment,
`the UNIX processes (eg daemons) are sometimes stateful.
`Individual transient processes, hoWever, are not persistent
`and, therefore, cannot maintain state information internally.
`There is a need, therefore, for a method of and system for
`increasing security of transactions involving multiple net
`Worked computers, and for increasing security of transac
`tions involving a client that sends commands to a managed
`host via an intermediate server through a insecure connec
`tion such as the Internet.
`There is also a need for a method of and system for
`increasing security of transactions involving a client, a
`netWork server, and a managed host, Where the client is not
`restricted to one of a limited subset of devices or operating
`systems because of interoperability or administration con
`cerns.
`Moreover, a need eXists for a method of and system for
`increasing security of transactions involving a client, a
`netWork server, and a managed host, Where the increased
`security is attained by using an SSL protocol for commu
`nications betWeen the client and the netWork server, a
`Kerberos authentication system is used to authenticate the
`identity of the client to the managed host and the managed
`host to the client, and the client communicates With the
`managed host through an insecure netWork connection such
`as the Internet.
`Needs also eXist to alloW many varieties of clients to
`communicate With a destination server via a netWork server
`over an insecure netWork connection using authentication
`protocols and to alloW transmission of data or commands
`over an insecure computer netWork from a client to a
`destination server via a netWork server.
`
`VMware Exhibit 1014 Page 15
`
`MobileIron, Inc., Ex. 1014 - Page 015
`
`
`
`5,923,756
`
`5
`Another desire is for a system and method to allow
`necessary client information to pass to the network server
`with each transaction so that the network server may access
`the destination server on behalf of the client.
`Further objects of the present invention will become
`apparent from the following drawings and detailed descrip
`tion of the preferred embodiments.
`
`SUMMARY OF THE INVENTION
`Systems and methods consistent in this invention increase
`security of data transmissions between a client, a network
`server and a managed host using an insecure network, such
`as the Internet. After establishing a secure network connec
`tion between a client and a network server, a secure authen
`tication protocol is used to obtain at the network server
`client-authenticating information from a key distribution
`center. The client-authenticating information is transmitted
`from the network server to the client and erased from the
`network server. The client-identifying information is trans
`mitted back to the network server from the client along with
`a message for the destination server. Permission is obtained
`to access the destination server from the key distribution
`center over the insecure network using the secure authenti
`cation protocol. At the destination server, the authority of
`said client to access said destination server is validated using
`the message. The destination server is accessed with the
`message if the client’s authority is properly validated.
`Establishing the secure network connection between the
`client and the network server can use the Secure Sockets
`Layer (SSL) protocol. Obtaining client-authenticating infor
`mation and securing the network connection between the
`network server and the destination server can use the Ker
`beros authentication protocol. Access to the destination
`server by authenticated users can be controlled by access
`control lists on the destination server.
`Acomputer system consistent with the present invention,
`comprises a ?rst computer server, such as a client, that issues
`commands over a network connection, and a second com
`puter server, such as a network server, responsive to the ?rst
`server and for accessing a fourth server on behalf of the
`client. The ?rst and second servers can communicate via the
`same network operable connection therebetween. The sec
`ond server also has an authentication device capable of
`generating an authentication request on behalf of the ?rst
`server. A third computer server, such as a key distribution
`computer, receives the authentication request, responds to
`the request to authenticate the identity of the ?rst server, and
`sends authentication indicator information regarding the ?rst
`server back to said second server via the network. A fourth
`computer server, such as a managed host, is also intercon
`nected to the network for receiving and executing the
`command from the ?rst server if the network server trans
`mits the authentication indicator information to the managed
`host and if the ?rst server is authoriZed to access the fourth
`server.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The accompanying drawings, which are incorporated in
`and constitute a part of the speci?cation, illustrate presently
`preferred embodiments of the invention and, together with
`the general description given above and the detailed descrip
`tion of the preferred embodiments given below, serve to
`eXplain the principles of the invention.
`FIG. 1 is a block diagram of one system that may be used
`to implement the present invention.
`FIG. 2 is a more detailed block diagram of the client and
`network server of FIG. 1.
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`FIG. 3 is a more detailed block diagram of the client,
`network server, key distribution center, and destination
`server of FIG. 1.
`FIG. 4 is a block diagram of another system that may be
`used to implement the present invention.
`FIGS. 5—5a are How charts showing the operation of the
`system of FIG. 4 in accordance with the present invention.
`FIG. 6 is a block diagram showing additional aspects of
`the system of FIG. 4.
`FIGS. 7—