throbber

`
`
`(19) United States
`
`
`
`
`
`
`
`
`(12) Patent Application Publication (10) Pub. No.: US 2003/0079143 A1
`
`
`
`
`
`
`
`Mikel et al.
`
`
`(43) Pub. Date:
`Apr. 24, 2003
`
`US 20030079143A1
`
`
`
`
`ONE PASS SECURITY
`
`
`
`
`
`(5 7)
`
`
`
`ABSTRACT
`
`
`
`(54)
`
`<76)
`
`
`
`
`
`(21)
`
`(22)
`
`
`
`
`(60)
`
`
`
`(51)
`(52)
`
`
`
`
`Inventors: Dean Mikel, Boise, ID (US); Mark
`
`
`
`
`
`Wilkins, Boise, ID (US)
`
`
`
`
`
`
`
`
`Correspondence Address:
`
`
`Ormiston & McKinney
`Suite 400
`
`
`802 W. Bannock
`
`PO. Box 298
`
`
`
`Boise, ID 83701-0298 (US)
`
`
`
`
`
`
`
`10/096,784
`
`
`
`Appl. No.:
`
`Filed:
`
`
`
`
`
`
`Mar. 12, 2002
`
`
`
`Related US. Application Data
`
`
`
`
`Provisional application No. 60/353,354, filed on Oct.
`
`
`
`
`
`22, 2001.
`
`
`Publication Classification
`
`
`
`Int. Cl.7
`.. H04L 9/00; H04L 9/32
`
`
`
`
`
`
`US. Cl.
`.............................................................. 713/200
`
`
`Asystem and method for secure network communication. In
`
`
`
`
`
`
`
`various embodiments of the present invention, data needed
`
`
`
`
`
`
`
`for authentication an encryption is included in each com-
`
`
`
`
`
`
`
`munication pass between network devices, so that when a
`
`
`
`
`
`
`
`network connection is broken, a secure connection can be
`
`
`
`
`
`
`reestablished with the next pass. A client authentication
`
`
`
`
`
`
`
`service on the client receives a server request and searches
`
`
`
`
`
`
`
`
`for a current client-side session key. If one is not present, the
`
`
`
`
`
`
`
`
`
`client authentication service generates and encrypts an initial
`
`
`
`
`
`
`
`session key, acquires credentials, adds the credentials to the
`
`
`
`
`
`
`
`
`server request, and encrypts the server request with the
`
`
`
`
`
`
`
`
`
`initial session key. The encrypted server request and the
`
`
`
`
`
`
`
`
`
`encrypted session key are sent to the server, where a server
`
`
`
`
`
`
`
`
`
`authentication service decrypts the initial session key,
`
`
`
`
`
`
`
`decrypts the server request with the initial session key, and
`
`
`
`
`
`
`
`
`
`
`authenticates the credentials before allowing the server
`
`
`
`
`
`
`
`request to be acted upon. Where a current client-side session
`
`
`
`
`
`
`
`key is detected, the client authentication service acquires the
`
`
`
`
`
`
`
`
`current client-side session key, generates a next step session
`
`
`
`
`
`
`
`
`key, adds the next step session key to the server request, and
`
`
`
`
`
`
`
`
`
`
`
`encrypts the server request with the current client-side
`
`
`
`
`
`
`
`
`session key. The encrypted server request is sent to the
`
`
`
`
`
`
`
`
`server where the server authentication service decrypts the
`
`
`
`
`
`
`
`
`server request with a current server-side session key allow-
`
`
`
`
`
`
`
`
`ing the server request to be acted upon.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`76
`
`
`
`
`USER(S)
`CREDENTIALS
`
`
`
`SERVER
`
`CREDENTIALS
`
`
`
`DEVICE
`
`RECORD
`
`
`TIME MODULE SERVER
`
`RESPONSE
`
`BUILDER
`
`
`CREDENTIAL
`MODULE
`
`
`
`
`SERVER
`
`
`SEQUENCE
`MODULE
`
`
`
`ENCRYPTION
`MODULE
`
`
`
`
`SERVER
`
`
`
`
`
`
`SERVER
`
`INTEGRITY
`MODULE
`
`
`
`
`Page 1 of 20
`
`GOOGLE EXHIBIT 1015
`
`Page 1 of 20
`
`GOOGLE EXHIBIT 1015
`
`

`

`
`
`US 2003/0079143 A1
`
`a.05
`
`Patent Application Publication Apr. 24, 2003 Sheet 1 0f 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` Hmmbamm
`
`57550ImaZoommmH
`
`
`
` meommmm
`mmgmmmlmnzoummA:
`
`Nam52540ImQZOommmfi
`
`
`
`
`IIIIIIIIIdammmamWHvlggilillt
`maximI228%SIATlllltlulxiillllliIIiIIllilliillll
`mmzommmmgfizgfimmpm
`
`
`
`
`
`
`
`
`
`
`
`
`
`MfimmmqF—thEMAn—mbmBZMEOlngoommA:
`
`
`
`——————————ATIlII.E.fI.Ammmammmm.Mb:lllllllll
`
`
`
`
`
`
`
`szOommoblmfi"13..on
`
`
`
`Iv]
`
`OOOOO/S
`
`
`Page 2 of 20
`
`Page 2 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 2 0f 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 2003/0079143 A1
`
`
`
`
`
`
`
`
`
`IG.
`
`2 F
`
`
`
`Page 3 of 20
`
`Page 3 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 3 0f 10
`
`US 2003/0079143 A1
`
`mm>mmm
`
`Hm<m<rw<m
`
`mm>mmm
`
`ZOHB<OHBZmEBD<
`
`Hogmmm
`
`mm>MMm
`
`«um
`
`
`
`
`
`
`
`mmogamzMmoBemz
`
`
`
`moflmmmezHwo<mmmth
`
`
`
`mafiaEma
`
`
`
`AmvzogofimfiAmvzeioimi
`
`m.UE
`
`BZMEO
`
`
`
`mogmamm>mmm"5ngE7530
`
`mm<m¢h<m
`
`HZHEU
`
`ZOF<OEmeBD<
`
`mot/mam
`
`Page 4 of 20
`
`Page 4 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 4 0f 10
`
`US 2003/0079143 A1
`
`mamb
`>m<mom2m9mm>mMm
`
`4.55mqfifizmammomqfihznmommo
`
`
`zSEEQZmmozgcmm
`
`wEmmmezHmabnozm2;
`
`Ego:E282
`
`EaseEase
`EaseEmdo
`
`emmbamm
`
`mmmdbm
`
`WADQOE
`
`w.03
`
`Page 5 of 20
`
`Page 5 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 5 0f 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 2003/0079143 A1
`
`
`
`
`
`
`
`Amvmmmp
`
`
`amoommmqfiezmammomefiEmemmo
`
`
`
`m.05
`
`mm>mmm
`
`
`
`F530"FE/n
`
`"5.3902
`
`mmgmmm
`
`
`
`MADQOEHEEL
`
`
`
`mm>mmm
`
`
`
`mozmbdmm
`
`maDmoE
`
`
`
`
`
`@5552
`
`
`
`
`
`ZoflmwmoZm
`
`
`"53:02
`
`mm.
`
`
`
`mogmnmm>mmm
`
`
`
`
`mm>mmm
`
`
`
`ASeZQOmo
`
`mmzommmm
`
`mmmdbm
`
`Page 6 of 20
`
`Page 6 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 6 0f 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 2003/0079143 A1
`
`
`
`
`
`80
`
`
`
`
`
`
`
`
`IS SERVER PUBLIC KEY PRESENT?
`
`
`
`RECEIVE SERVER REQUEST
`
`
`
`Y
`
`
`
`
`
`
`
`v
`
`
`
`
`
`
`DOES SESSION KEY EXIST?
`
`
`
`82
`
`
`
`84
`
`
`
`Page 7 of 20
`
`Page 7 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 7 0f 10
`
`
`
`
`
`
`86
`
`
`
`
`
`
`
`
`
`US 2003/0079143 A1
`
`
`
`
`
`
`
`
`REQUEST SERVER PUBLIC KEY
`
`
`
`V
`
`
`
`RETRIEVE AND RETURN
`
`
`
`V
`
`
`
`
`
`
`
`
`
`
`
`ENCRYPT AND SEND REQUEST
`
`
`
`
`
`
`
`
`
`STORE
`
`V
`
`V
`
`
`
`
`
`DECRYPT REQUEST
`
`V
`
`AUTHENTICATE
`
`V
`
`
`
`
`88
`
`
`90
`
`
`92
`
`
`94
`
`
`96
`
`
`98
`
`100
`
`
`
`102
`
`
`
`Page 8 of 20
`
`
`
`
`
`GENERATE, ENCRYPT AND SEND RESPONSE
`
`
`
`CREATE DEVICE RECORD
`
`
`
`
`
`
`
`
`V
`
`V
`
`
`
`
`
`DECRYPT RESPONSE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 7
`
`Page 8 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 8 0f 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 2003/0079143 A1
`
`
`
`
`
`104
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`GENERATE, STORE AND ENCRYPT SESSION KEYl
`
`
`
`
`
`
`CREATE AND ADD SESSION COUNTER
`Y
`
`106
`
`108
`
`
`
`ADD PASSWORD AND TIME STAMP
`
`
`
`
`V
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`V
`
`V
`
`Y
`
`
`
`
`
`
`
`113
`
`
`
`
`
`
`
`
`DECRYPT AND STORE SESSION KEYl
`
`
`
`
`
`
`120
`
`
`
`
`
`123
`
`
`
`124
`
`
`
`126
`
`
`
`138
`
`
`
`DECRYPT REQUEST
`
`V
`
`
`
`
`
`V
`
`
`
`STORE TIME STAMP
`
`
`V
`
`
`
`AUTHENTICATE USER
`
`V
`
`
`
`STORE SESSION COUNTER
`
`
`
`
`
`GENERATE RESPONSE
`
`V
`
`
`
`
`GENERATE, STORE AND ADD NEXT STEP
`SESSION KEY AND ENCRYPTl
`
`
`
`
`
`
`
`
`
`DECRYPT AND STOREll
`
`SEND CLIENT RESPONSE
`
`
`
`
`
`
`
`
`
`
`
`133
`
`
`
`134
`
`
`
`130
`
`
`
`Page 9 of 20
`
`
`FIG. 8
`
`Page 9 of 20
`
`

`

`Patent Application Publication Apr. 24, 2003 Sheet 9 0f 10
`
`
`
`
`
`
`
`
`
`US 2003/0079143 A1
`
`
`
`
`
`
`
`
`
`
`
`FIG. 9
`
`
`
`FIG. 9A
`
`
`
`130
`
`150
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`GENERATE AND STORE NEXT STEP SESSION KEYl
`
`
`
`
`
`UPDATE AND ADD SESSION COUNTER
`V
`
`
`
`138
`
`140
`
`
`
`
`
`
`
`ADD TIME STAMP AND CHECKSUM
`V
`
`
`
`
`
`
`
`
`
`
`
`V
`
`V
`
`146w
`
`
`
`1
`
`148
`
`
`
`LOCATE DEVICE RECORD
`
`
`V
`
`
`
`
`
`
`RETRIEVE SESSION KEYl
`
`
`
`DECRYPT REQUEST
`
`
`152
`
`
`
`
`
`154
`
`
`
`
`
`
`
`156
`
`
`
`VERIFY AND STORE TIME STAMP
`
`
`
`
`
`
`
`158
`
`
`
`VERIFY SESSION COUNTER
`
`
`
`
`
`160
`
`
`
`
`
`
`STORE UPDATED SESSION COUNTER
`
`
`
`162
`
`
`
`GENERATE RESPONSE
`
`
`
`
`Page 10 of 20
`
`Page 10 of 20
`
`

`

`
`
`
`
`
`
`
`Patent Application Publication Apr. 24, 2003 Sheet 10 0f 10
`
`
`
`US 2003/0079143 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`166
`
`
`
`
`
`
`
`
`STORE NEW NEXT STEP SESSION KEY
`
`
`
`168
`
`
`
`170
`
`
`
`172
`
`
`
`ENCRYPT
`
`
`
`
`
`SEND CLIENT RESPONSE
`
`
`
`DECRYPT CLIENT RESPONSE
`
`
`
`
`
`174
`
`
`
`
`
`
`
`
`STORE NEW NEXT STEP SESSION KEY
`
`
`
`
`FIG. QB
`
`
`
`Page 11 of 20
`
`Page 11 of 20
`
`

`

`
`
`US 2003/0079143 A1
`
`
`
`Apr. 24, 2003
`
`
`
`ONE PASS SECURITY
`
`
`
`FIELD OF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`
`[0001] This invention relates generally to securing net-
`work communication. More specifically, this invention is
`
`
`
`
`
`
`directed to one-pass authentication and encryption enabling
`
`
`
`
`
`
`secure network communication.
`
`
`
`BACKGROUND OF THE INVENTION
`
`
`
`[0002] With the advent of the Internet, electronic business
`
`
`
`
`
`
`
`and financial transactions have flourished. Virtual private
`
`
`
`
`
`
`
`networks now enable people to conduct business from
`
`
`
`
`
`
`
`
`anywhere in the world, at least anywhere an Internet con-
`
`
`
`
`
`
`
`nection is available. With cellular and satellite communica-
`
`
`
`
`
`
`
`tion technology, Internet connections are available virtually
`
`
`
`
`
`
`
`everywhere. Network communication protocols, such as
`
`
`
`
`
`
`S-HTTP (Secure Hypertext Transport Protocol) and SSL
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(Secure Socket Layer), have been developed to enable
`secure communication links between two network devices.
`
`
`
`
`
`
`
`These technologies provide security in two forms—authen-
`
`
`
`
`
`
`
`
`
`
`
`
`tication and encryption. Authentication is important to verify
`that each device is who it claims to be. Encryption allows the
`
`
`
`
`
`
`
`
`
`devices to exchange data rendering that data useless to a
`
`
`
`
`
`
`
`third party. The security provides confidence in transmitting
`
`
`
`
`
`
`
`private financial, business, and personal data over a com-
`
`
`
`
`
`
`
`
`puter network.
`
`
`[0003]
`In addition to desktop computers, workstations,
`
`
`
`
`
`
`
`and servers, modern computing environments often include
`
`
`
`
`
`
`
`fit
`lightweight handheld computing devices that
`into a
`
`
`
`
`
`
`
`pocket, purse, or briefcase. To enable true mobility for these
`
`
`
`
`
`
`
`
`devices, wireless network communication is required. Wire—
`
`
`
`
`
`
`less network interface cards enable network communication
`
`
`
`
`
`
`
`within a particular geographic area such as an ollice com-
`
`
`
`
`
`
`
`plex. The mobile device must remain within range of a
`
`
`
`
`
`
`
`
`
`server to communicate. Cellular modems and Internet ready
`
`
`
`
`
`
`
`cellular telephones enable network communication between
`
`
`
`
`
`
`devices located most anywhere.
`
`
`
`
`[0004] Existing secure network communication protocols
`
`
`
`
`
`
`such as SSL require a series of communications between two
`
`
`
`
`
`
`
`devices to establish a secure communication link between
`
`
`
`
`
`
`the devices. These communications are often referred to as
`
`
`
`
`
`
`
`a “handshake.” A handshake allows the network devices to
`
`
`
`
`
`
`
`authenticate one another while exchanging data needed to
`
`
`
`
`
`
`
`encrypt filture communications. FIG. 1 illustrates a typical
`
`
`
`
`
`
`handshake between a cellular enabled PDA (Personal Digital
`
`
`
`
`
`
`
`Assistant) 10 and a server 12. PDA 10 initiates the hand—
`
`
`
`
`
`
`
`
`shake communicating data to server 12. Server 12 responds
`
`
`
`
`
`
`
`sending data to PDA 10. Each communication can be
`
`
`
`
`
`
`
`
`referred to as a “pass.” Existing protocols require several
`
`
`
`
`
`
`
`passes to establish a secure connection. For example, one
`
`
`
`
`
`
`
`version of an SSL handshake requires the following steps:
`
`
`
`
`
`
`
`[0005] PDA 10 initiates communication requesting a
`
`
`
`
`
`digital certificate from server 12. A digital certificate
`
`
`
`
`
`
`
`includes a public key used to encrypt a reply as well
`
`
`
`
`
`
`
`as electronic data used to authenticate server 12.
`
`
`
`
`
`
`
`[0006] Server 12 returns its certificate and requests a
`
`
`
`
`
`
`
`digital certificate from FDA 10.
`
`
`
`
`[0007] With the server’s certificate, PDA 10 authen-
`
`
`
`
`
`
`
`ticates server 12 and returns its own certificate. With
`
`
`
`
`
`
`
`
`the PDA’s certificate, server 12 authenticates PDA
`
`
`
`
`
`
`10.
`
`
`
`
`
`
`
`
`
`
`
`
`
`[0008] PDA 10 then generates a symmetric encryp-
`tion key. Using the public key from the server‘s
`
`
`
`
`
`
`
`
`certificate, PDA 10 encrypts the symmetric encryp-
`
`
`
`
`
`tion key and then sends it to server 12. Using its own
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`private key, server 12 decrypts the symmetric
`
`
`encryption key.
`[0009] The handshake is complete. PDA 10 and server 12
`
`
`
`
`
`
`
`have been authenticated. Future communications between
`
`
`
`
`
`
`PDA 10 and server 12 are encrypted and decrypted using the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`symmetric encryption key. For example, PDA 10 can gen-
`
`
`
`
`
`
`
`
`
`erate a request for server (server request) to return data
`relating to a bank account for instance. PDA 10 encrypts the
`
`
`
`
`
`
`
`
`server request with the symmetric encryption key and sends
`
`
`
`
`
`
`
`
`
`it to server 12. Server 12 decrypts the server requests and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`generates a response to the server request (client response).
`Server 12 then encrypts the client response with the sym-
`
`
`
`
`
`
`
`
`
`metric encryption key and returns it
`to PDA 12 which
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`decrypts and displays the client response. Whenever the
`network connection between PDA 10 and server 12 is
`
`
`
`
`
`
`
`broken, the handshake must be repeated in order to authen-
`
`
`
`
`
`
`
`ticate the devices. When communicating over a cellular
`
`
`
`
`
`
`
`connection, each pass of a handshake requires approxi—
`
`
`
`
`
`
`
`
`
`
`
`
`
`mately fifteen seconds. Consequently, a handshake typically
`
`
`
`
`
`
`
`requires anywhere from forty-five to seventy seconds,
`before a secure connection can be established or reestab-
`
`
`
`
`
`
`
`lished.
`
`[0010] Wireless network connections can be unreliable.
`
`
`
`
`
`
`They are often broken requiring a secure connection to be
`
`
`
`
`
`
`
`frequently reestablished. The resulting delay of forty-five to
`
`
`
`
`
`
`seventy seconds required for each handshake renders secure
`
`
`
`
`
`
`
`
`cellular network communication annoying if not inefficient
`
`
`
`
`
`
`or unworkable. What is needed is a more efficient method for
`
`
`
`
`
`
`
`establishing and secure network communication that elimi-
`
`
`
`
`
`
`
`nates the need for a handshake as described above each time
`
`
`
`
`
`
`
`
`
`the connection is broken.
`
`
`
`SUMMARY OF THE INVENTION
`
`
`
`[0011] The present invention is directed to authentication
`
`
`
`
`
`
`and encryption for secure network communication. In vari-
`
`
`
`
`
`
`
`ous embodiments of the present invention, data needed for
`
`
`
`
`
`
`
`
`authentication an encryption is included in each communi-
`
`
`
`
`
`cation pass between network devices, so that when a net-
`
`
`
`
`
`
`
`
`
`work connection is broken, a secure connection can be
`
`
`
`
`
`
`reestablished with the next pass. A client authentication
`
`
`
`
`
`
`
`service on the client receives a server request and searches
`
`
`
`
`
`
`
`
`for a current client-side session key. If one is not present, the
`
`
`
`
`
`
`
`
`
`client authentication service generates and encrypts an initial
`
`
`
`
`
`
`
`session key, acquires credentials, adds the credentials to the
`
`
`
`
`
`
`
`
`server request, and encrypts the server request with the
`
`
`
`
`
`
`
`
`
`initial session key. The encrypted server request and the
`
`
`
`
`
`
`
`
`
`encrypted session key are sent to the server, where a server
`
`
`
`
`
`
`
`
`
`authentication service decrypts the initial session key,
`
`
`
`
`
`
`
`decrypts the server request with the initial session key, and
`
`
`
`
`
`
`
`
`
`
`authenticates the credentials before allowing the server
`
`
`
`
`
`
`
`request to be acted upon. Where a current client-side session
`
`
`
`
`
`
`
`key is detected, the client authentication service acquires the
`
`
`
`
`
`
`
`
`current client-side session key, generates a next step session
`
`
`
`
`
`
`
`
`key, adds the next step session key to the server request, and
`
`
`
`
`
`
`
`
`
`
`
`encrypts the server request with the current client-side
`
`
`
`
`
`
`
`
`session key. The encrypted server request is sent to the
`
`
`
`
`
`
`
`
`server where the server authentication service decrypts the
`
`
`
`
`
`
`
`
`server request with a current server-side session key allow-
`
`
`
`
`
`
`
`
`ing the server request to be acted upon.
`
`
`
`
`
`
`
`Page 12 of 20
`
`Page 12 of 20
`
`

`

`
`
`US 2003/0079143 A1
`
`
`
`Apr. 24, 2003
`
`
`
`DESCRIPTION OF THE DRAWINGS
`
`
`
`[0012] FIG. 1 is a schematic representation of a mobile
`
`
`
`
`
`
`computing environment illustrating a multi-pass handshake.
`
`
`
`
`
`[0013] FIG. 2 is a schematic representation of a mobile
`
`
`
`
`
`
`computing environment in which various embodiment of the
`
`
`
`
`
`
`present invention may be incorporated.
`
`
`
`
`
`
`
`
`
`
`[0014] FIG. 3 is schematic representation of the compo-
`nents of the client and server devices of FIG. 2 according to
`
`
`
`
`
`
`
`one embodiment of the present invention.
`
`
`
`
`
`[0015] FIG. 4 is a schematic representation of the client
`
`
`
`
`
`authentication service and client database of FIG. 3.
`
`
`
`
`
`
`[0016] FIG. 5 is a schematic representation of the server
`
`
`
`
`
`authentication service and server database of FIG. 3.
`
`
`
`
`
`
`[0017] FIGS. 6, 7, 8, 9A, and 9B are interrelated flow
`
`
`
`
`
`
`
`
`
`diagrams illustrating steps followed during an authentication
`
`
`
`
`
`
`process according to one embodiment of the present inven-
`
`
`
`
`
`
`
`tion.
`
`
`
`
`
`
`DETAILED DESCRIPTION OF THE
`
`
`INVENTION
`
`
`
`
`
`
`
`
`
`[0018]
`INTRODUCTION: Traditional security protocols,
`such as SSL and S-IITTP, require a handshake to establish
`
`
`
`
`
`
`a secure network connection. For the connection to remain
`
`
`
`
`
`
`
`
`secure, the connection cannot be broken. When broken, the
`
`
`
`
`
`
`
`
`handshake must be repeated to reestablish a secure connec-
`
`
`
`
`
`
`tion. In a wireless network, a handshake is a relatively slow
`
`
`
`
`
`
`
`
`
`
`
`
`process. Establishing and then continually reestablishing
`secure connection on a wireless network renders the network
`
`
`
`
`
`
`
`communication inefficient if not, in some cases, unworkable.
`
`
`
`
`
`
`[0019]
`It is expected that various embodiments of the
`
`
`
`
`
`
`
`
`present invention will enable users to establish and reestab-
`
`
`
`
`
`
`
`
`lish a secure network communication session with a single
`
`
`
`
`
`
`
`pass. Network security is established with each application
`
`
`
`
`
`
`
`level request that a client makes on a server and with each
`
`
`
`
`
`
`
`
`
`application level response that the server returns to the
`
`
`
`
`
`
`
`
`
`client. Consequently, as may often be the case, the network
`
`
`
`
`
`
`
`
`connection between the client and the server can be broken
`
`
`
`
`
`
`
`
`between each server request, client response, and subsequent
`
`
`
`
`
`
`
`
`server request without negatively affecting the communica-
`
`
`
`
`
`
`
`tion speed between the client and the server.
`
`
`
`
`
`
`
`
`[0020] COMPONENTS: FIG. 2 illustrates a computing
`
`
`
`
`
`environment 16 in which various embodiments of the
`
`
`
`
`
`
`
`present invention may be incorporated. Embodiments of the
`
`
`
`
`
`
`present invention, however, may be incorporated in any
`
`
`
`
`
`
`environment in which it is desirable or necessary to establish
`
`
`
`
`
`secure network communication. Environment 16 includes
`
`
`
`
`
`server device 18, client devices 20, and link 22, intercon-
`
`
`
`
`
`
`
`
`
`
`necting client device 18 with client devices 22. Server
`
`
`
`
`
`
`
`
`
`device 18 represent generally any computing device capable
`
`
`
`
`
`
`
`of serving electronic data over link 22. Client devices 20
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`represent generally any computing device capable of com-
`municating with server device 18 over link 22. Link 22
`
`
`
`
`
`
`
`
`
`represents generally any cable, wireless, or remote connec-
`
`
`
`
`
`
`
`tion via a telecommunication link, an infrared link, a radio
`
`
`
`
`
`
`
`frequency link, cellular link, or any other connector or
`
`
`
`
`
`
`
`
`
`system that provides electronic communication between the
`
`
`
`
`
`
`
`devices. Link 22 may represent, in part, an intranet,
`the
`
`
`
`
`
`
`
`
`
`Internet, or a combination of both.
`
`
`
`[0021] FIG. 3 illustrates the components of server device
`
`
`
`
`
`
`18 and a single client device 20 used to establish a secure
`
`
`
`
`
`
`
`
`
`
`
`network communication link between the devices. Client
`
`
`
`
`
`
`
`device 20 includes client 24, client application 26, network
`
`
`
`
`
`
`
`
`interface 28, client authentication service 30, and client
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`database 32. Client 24 represents any programming capable
`
`
`
`
`
`
`
`
`of generating and sending a server request. Aserver request
`is electronic data formed to instruct a server to perform a
`
`
`
`
`
`
`
`particular task. When that
`task involves instructing the
`
`
`
`
`
`
`
`
`server to return electronic data, the return of that data can be
`
`
`
`
`
`
`
`
`
`referred to as a client response. However, a server request
`
`
`
`
`
`
`in some cases, only instruct a server to perform a
`may,
`
`
`
`
`
`
`
`particular task without returning electronic data to the client.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Client application 26 represents any programming capable
`of providing client 24 with electronic data used to generate
`
`
`
`
`
`
`
`
`the server request. Client 24 and client application 26 may,
`
`
`
`
`
`
`
`
`in the case of a web browser, be incorporated in a single
`
`
`
`
`
`
`
`
`application. Network interface 28 represents any combina-
`
`
`
`
`
`
`tion of hardware and/or programming capable of transmit-
`
`
`
`
`
`
`
`ting and receiving electronic data over link 22. Network
`
`
`
`
`
`
`
`
`
`interface 28 may be a standard network interface card, a
`
`
`
`
`
`
`
`wireless network interface card, a wireless or cellular
`
`
`
`
`
`
`
`modem, or an Internet ready Cellular telephone. Client
`
`
`
`
`
`
`
`authentication service 30 represents programming capable
`
`
`
`
`
`
`of adding electronic information to and encrypting a server
`
`
`
`
`
`
`
`request as well as decrypting a client response. Client
`
`
`
`
`
`
`
`
`database 32 represents any readable and writeable memory
`
`
`
`
`
`
`
`used to hold electronic data used by client authentication
`
`
`
`
`
`
`
`service 30.
`
`
`[0022] Server device 18 includes server 34, server appli-
`
`
`
`
`
`
`
`
`
`cation 36, network interface 38, server authentication ser-
`
`
`
`
`
`
`
`
`vice 40, and server database 42. Server 34 represents gen-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`erally any programming capable of receiving and acting on
`a server request as well as generating a client response.
`
`
`
`
`
`
`
`
`
`Server application 36 represents programming used by
`
`
`
`
`
`
`
`server 34 to act on a server request and to generate a client
`
`
`
`
`
`
`
`response. For example, server application 34 may be a
`
`
`
`
`
`
`
`program interface enabling server 32 to retrieve and manipu-
`
`
`
`
`
`
`
`late information in a database located on server device 18 or
`
`
`
`
`
`
`elsewhere. Network interface 38 like network interface 28
`
`
`
`
`
`
`represents any combination of hardware and/or program-
`
`
`
`
`
`
`
`ming capable of transmitting and receiving electronic data
`
`
`
`
`
`
`
`over link 22. Server authentication service 40 represents
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`generally any programming capable of decrypting a server
`request as well as adding information to and encrypting a
`
`
`
`
`
`
`client response. Server database 42 represents any readable
`
`
`
`
`
`
`
`and writeable memory used to hold electronic data used by
`
`
`
`
`
`
`
`
`server authentication service 40.
`
`
`
`
`[0023] As illustrated in FIG. 4, client authentication ser-
`
`
`
`
`
`
`
`vice 30 includes client encryption module 44,
`request
`
`
`
`
`
`
`
`
`builder 46, client sequence module 48, client time module
`
`
`
`
`
`
`
`
`
`50, and client integrity module 52. Client encryption module
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`44 represents any programming capable of generating sym-
`metric encryption keys, encrypting server requests, and
`
`
`
`
`
`
`
`decrypting client responses. Request builder 46 represents
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`any programming capable of adding electronic data to a
`server request, encrypted or not, to be sent by client 24 to
`
`
`
`
`
`
`server 34. Client sequence module 48 represents program-
`
`
`
`
`
`
`
`ming capable of generating and updating a session counter
`
`
`
`
`
`
`
`to be added to a server request by request builder 46. The
`
`
`
`
`
`
`
`
`term session represents a period of communication between
`
`
`
`
`
`
`client device 20 and server device 18 used to perform a
`
`
`
`
`
`
`
`
`
`particular task or tasks. Asession does not require a constant
`
`
`
`
`
`
`
`
`network connection. An incrementally increased session
`
`
`
`
`
`
`counter is added to each subsequent server request during
`
`
`
`
`
`
`
`the session to ensure that a single server request is not acted
`
`
`
`
`
`
`
`
`
`
`Page 13 of 20
`
`Page 13 of 20
`
`

`

`
`
`US 2003/0079143 A1
`
`
`
`Apr. 24, 2003
`
`
`
`the first
`upon twice by server device 18. For example,
`
`
`
`
`
`
`
`
`
`
`session counter for a session may have a value of zero, the
`
`
`
`
`
`
`
`
`
`second—a value of one, and so on. Client time module 50
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`represents any programming capable of generating a time
`stamp for request builder 46 to add to a server request as well
`
`
`
`
`
`
`
`as validating a time stamp obtained from a client response.
`
`
`
`
`
`
`
`
`In some instances it may be desirable to break a secure
`
`
`
`
`
`
`
`
`communication link between server and client devices 18
`
`
`
`
`
`
`
`
`and 20 where time between server
`requests or client
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`responses exceeds a specified limit. Time stamps enable
`tracking of the time elapsed between server requests and/or
`
`
`
`
`
`
`
`
`server responses.
`
`
`
`
`
`
`
`
`[0024] Client integrity module 52 represents programming
`capable of generating integrity data such as a checksum for
`
`
`
`
`
`
`
`request builder 46 to add to a server request as well as
`
`
`
`
`
`
`
`
`
`verifying the integrity of a client response. When commu-
`
`
`
`
`
`
`
`
`nicating through a secure network link, it can be important
`
`
`
`
`
`
`
`to verify that the data making up a server request or a client
`
`
`
`
`
`
`
`
`
`response has not been intercepted and altered since the
`
`
`
`
`
`
`
`
`
`request or response was sent. A checksum is a numerical
`
`
`
`
`
`
`value calculated, at least in part, by the number of bits that
`
`
`
`
`
`
`
`
`comprise an electronic message such as a server request or
`
`
`
`
`
`
`
`
`
`
`
`
`
`client response. Upon receipt of the electronic message, if
`the number of bits does not match the checksum,
`the
`
`
`
`
`
`
`
`
`
`receiver of the message, in this case server device 18, can
`
`
`
`
`
`
`
`
`
`assume that the message contains errors or has been tam-
`
`
`
`
`
`
`
`
`
`
`pered with.
`
`
`[0025] Still referring to FIG. 4, client database 32 contains
`
`
`
`
`
`
`
`user credentials 54, server credentials 56, and client tempo-
`
`
`
`
`
`
`
`
`
`rary data 58. User credentials 54 represent electronic data
`
`
`
`
`
`
`
`
`identifying and unique to a particular user of client device 20
`
`
`
`
`
`
`
`or unique to client device 20 itself. It is expected that user
`
`
`
`
`
`
`
`
`
`
`credentials will be a username and password pair. Server
`
`
`
`
`
`
`
`credentials 56 represent electronic data used to encrypt data
`
`
`
`
`
`
`
`that can then only be decrypted by server device 18. It is
`
`
`
`
`
`
`
`
`
`expected that server credentials will include an asymmetric
`
`
`
`
`
`
`
`public encryption key, referred to herein as a server public
`
`
`
`
`
`
`
`key. Client temporary data 58 includes the most recently
`
`
`
`
`
`
`
`
`
`generated session counter, a time stamp obtained from the
`
`
`
`
`
`
`
`
`most recent client response, and electronic data used by
`
`
`
`
`
`
`
`
`client encryption module 44 to encrypt server requests and
`
`
`
`
`
`
`
`to decrypt client responses. It is expected that this electronic
`
`
`
`
`
`
`
`
`data Will include a symmetric encryption key, referred to
`
`
`
`
`
`
`
`herein as a current client-side session key, that is periodi-
`
`
`
`
`
`
`
`cally updated during a session.
`
`
`
`
`[0026] Referring now to FIG. 5, server authentication
`
`
`
`
`
`
`service 40 includes server encryption module 60, response
`
`
`
`
`
`
`
`
`builder 62, credential module 64, server sequence module
`
`
`
`
`
`
`
`
`66, server time module 68 and server integrity module 70.
`
`
`
`
`
`
`
`
`
`Server encryption module 60 represents any programming
`
`
`
`
`
`
`
`
`
`
`
`
`capable of generating symmetric encryption keys, encrypt-
`ing client
`responses
`and decrypting server
`requests.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Response builder 62 represents any programming capable of
`adding electronic data to a client response, encrypted or not,
`
`
`
`
`
`
`
`to be sent by server 34 to client 24. Credential module 64
`
`
`
`
`
`
`
`
`
`
`
`
`
`represents any programming capable of authenticating cre-
`dentials acquired from a decrypted server request as well as
`
`
`
`
`
`
`
`identifying data in server database 42 associated with cre-
`
`
`
`
`
`
`
`dentials obtained from a server request.
`
`
`
`
`
`
`
`
`
`
`
`
`[0027] Server sequence module 66 represents program-
`ming capable of storing a session counter obtained from a
`
`
`
`
`
`
`
`server request and comparing that session counter with the
`
`
`
`
`
`
`
`
`
`
`Page 14 of 20
`
`
`
`
`
`
`
`session counter received and stored following a previous
`
`
`
`
`
`
`server request. Server sequence module 66 can then compare
`
`
`
`
`
`
`
`the stored session counter with a new session counter
`
`
`
`
`
`
`
`obtained from the subsequent server request. If the new
`
`
`
`
`
`
`
`
`session counter does not exceed the stored session counter,
`
`
`
`
`
`
`
`
`the subsequent server request is to be ignored.
`
`
`
`
`
`
`
`
`
`
`
`
`[0028] Server time module 68 represents programming
`capable of generating a time stamp for response builder 62
`
`
`
`
`
`
`
`to add to a client response as well as validating a time stamp
`
`
`
`
`
`
`
`
`obtained from a server request. Server integrity module 70
`
`
`
`
`
`
`
`
`
`
`
`
`
`represents programming capable of generating integrity data
`such as a checksum for response builder 62 to add to a client
`
`
`
`
`
`
`
`
`
`
`
`
`
`response as well verifying the integrity of a server request.
`[0029] Still
`referring to FIG. 5, server database 42
`
`
`
`
`
`
`
`
`includes user credentials 72, server credentials 74, and
`
`
`
`
`
`
`
`
`device record 76. User credentials 72 contain electronic
`
`
`
`
`
`
`
`
`data, typically in the form of verified user name and pass-
`
`
`
`
`
`
`
`
`
`word pairs used by credential module 64 to authenticate
`
`
`
`
`
`
`
`credentials obtained from a server request. Server creden—
`
`
`
`
`
`
`
`tials 74 contain data used by server encryption module 60 to
`
`
`
`
`
`
`
`decrypt data used to encrypt a server request. It is expected
`
`
`
`
`
`
`
`that this data will include an asymmetric private encryption
`
`
`
`
`
`
`
`
`key, referred to herein as a server private key. Device record
`
`
`
`
`
`
`
`
`76 represents electronic data used by server encryption
`
`
`
`
`
`
`
`
`module 60, server sequence module 66, and server time
`
`
`
`
`
`
`
`
`
`module 68 and used to establish secure network communi-
`
`
`
`
`
`
`
`cation with client device 20. Server database 42 may include
`
`
`
`
`
`
`
`
`
`other device records to store data for securely communicat-
`
`
`
`
`
`
`
`
`ing with devices other then client device 20. It is expected
`
`
`
`
`
`
`
`
`
`
`that this electronic data will include a session key that is
`
`
`
`
`
`
`
`
`
`periodically changed during a given session as well as a
`
`
`
`
`
`
`
`session counter and time stamp for the most recent server
`
`
`
`
`
`
`
`
`
`
`request.
`
`[0030] The block diagrams of FIGS. 2—5 show the archi—
`
`
`
`
`
`
`
`
`tecture and functionality of one implementation of the
`
`
`
`
`
`
`
`present invention. If embodied in software, each block may
`
`
`
`
`
`
`represent a module, segment, or portion of code that com-
`
`
`
`
`
`
`prises one or more executable instructions to implement the
`
`
`
`
`
`
`
`
`
`
`
`specified logical function(s). If embodied in hardware, each
`block may represent a circuit or a number of interconnected
`
`
`
`
`
`
`
`
`
`
`
`circuits to implement the specified logical function(s).
`[0031] Also, the present invention can be embodied in any
`
`
`
`
`
`
`
`
`computer—readable medium for use by or in connection with
`
`
`
`
`
`an instruction execution system such as a computer/proces-
`
`
`
`
`
`
`sor based system or other system that can fetch or obtain the
`
`
`
`
`
`
`
`
`
`
`logic from the computer-readable medium and execute the
`
`
`
`
`
`
`
`
`instructions
`contained
`therein. A “computer-readable
`
`
`
`
`medium” can be any medium that c

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