throbber
United States Patent [19]
`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
`
`

`

`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
`
`

`

`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
`
`

`

`US. Patent
`
`Jul. 13, 1999
`
`Sheet 2 0f 11
`
`5,923,756
`
`_______
`
`_______
`
`oo<
`
`0
`0:
`Lu
`
`>C
`
`C
`UJ
`(D
`
`onszz_
`
`"Ew>mmmmmm>>0mm
` gm.
`mm>>mm>>
`
`______________
`
`VMware Exhibit 1014 Page 4
`
`__qolmkzmjo_rlllllllllllllllllLrunwmmommzwLrlllllllllllllllllL
`
`x{
`
`I %L
`
`UZ
`
`VMware Exhibit 1014 Page 4
`
`

`

`US. Patent
`
`JuL13,1999
`
`Sheet 3 0f 11
`
`5,923,756
`
`_lllllL
`
`mF2
`
`zonemwgo"szmmkz;".r.|IIL
`.m¢20mm2_AkmzmmPZc""xmozpmz
`>mv._XIOENZ_(omN
`0mm__
`
`manommz_
`
`wmm<H<D
`
`mw>>
`
`
`
`anmm>mmmvEO>>._.mzdam._.Zm_._o
`
`||||||.gun
`
`
`
`mm>mww
`
`mm;
`
`mmm>>0mm
`
`mom
`
`ZO_._.<Z_.rwm_n_ xmozcmz_
`
`
`
`
`
`Ewan—mm
`
`add
`
`40¢.
`
`MAE
`
`wdn
`
`___
`
`fl0%
`_A»mzmmkz;_
`
`mmaommz__
`
`w._<_._.zm_n_m_m0m4<_._.zmommoII
`
`_
`
`I.
`
`m.9”.
`
`VMware Exhibit 1014 Page 5
`
`VMware Exhibit 1014 Page 5
`
`
`
`
`
`
`
`
`

`

`US. Patent
`Jul. 13, 1999
`________
`
`Sheet 4 0f 11
`
`5,923,756
`
`wOEm—mmmx
`
`mm<m<k<o
`
`mmhzmo
`
`add
`
`2959590_Ex"IIIII‘IIIIII—‘Inlllll'll'lll
`
`coma
`
`o¢m-.
`
`
`
`mw>mmwmommmmwv—
`
`
`
`
`
`
`ll1||l|Jl‘-|ll|ll|'|oIn00.“...IIIIIEm>mwmvEO>>._.m_ZcomL._.2m_._0(o5
`
`
`
`dawM9N
`
`m4<_._.zmommo
`
`MIO<O
`
`v.07.
`
`momwmmwx=00
`zo_»<N_..<Ez_mosmmmom“mwwflmm
`
`Emjomofimmkz
`
`
`
`
`
`aMM
`
`VMware Exhibit 1014 Page 6
`
`VMware Exhibit 1014 Page 6
`
`
`
`
`
`
`
`

`

`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
`
`

`

`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
`
`

`

`US. Patent
`
`Jul. 13, 1999
`
`Sheet 7 0f 11
`
`5,923,756
`
`clllllll'll'ldlllllllllllllulll
`omw:okumm>mwmwommmmmx
`
`
`
`mommmmmv—
`
`mw<m<k<o
`
`___mszmo_zQSmESE"_
`
`Emz.m>w
`
`02.0004
`
`ZOEm<O
`
`mmDOmm
`
`who—2mm
`
`20:30me
`
`FZMEO
`
`=00
`
`m_0_>mwm
`
`am0<mmm:.z_
`
`mm>mmw
`
`_lllllllllll
`
`w._<_._.zmommo
`
`——oo:omov
`
`MIO<O
`
`$6.”.
`
`
`almezomu.mIrJok35F
`
`mo.9“.an;mm.9”.
`
`.2mu:I:
`
`<©.0_n_
`
`mw>>
`
`mm>mmm
`
`dMN
`
`mw>>
`
`mmm>>0mm
`
`dwd
`
`VMware Exhibit 1014 Page 9
`
`VMware Exhibit 1014 Page 9
`
`
`
`
`
`

`

`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
`
`

`

`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
`
`

`

`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
`
`

`

`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
`
`

`

`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
`
`

`

`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
`
`

`

`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—7b are How charts showing the operation of the
`system of FIG. 6 in accordance with the present invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`A. First Embodiment
`
`The method and apparatus useful to implement the
`present invention will ?rst be discussed in general with
`reference to FIGS. 1, 2, and 3.
`As shown in FIG. 1, the present invention uses a client
`workstation (indicated generally as client 200), which can
`be, by way of eXample only, a personal computer (PC)
`running Microsoft Windows, W

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