throbber
US 6,918,038 BL
`(10) Patent No:
`a2) United States Patent
`Smith et al.
`(45) Date of Patent:
`Jul. 12, 2005
`
`
`US006918038B1
`
`(54) SYSTEM AND METHOD FOR INSTALLING
`AN AUDITABLE SECURE NETWORK
`Inventors: Benjamin Hewitt Smith, NY, NY
`May as Hewitt Smith, Belmont,
`MA (US
`
`(75)
`
`(73) Assignee: Angel Secure Networks, Inc., Belmont,
`MA (US)
`
`EP
`EP
`
`FOREIGN PATENT DOCUMENTS
`0.703 531 Al
`3/1996
`0.778 512 A2
`6/1997
`OTHER PUBLICATIONS
`
`Schneier, Applied Cryptography, 1996, 2nd Edition, pp. 1-5
`and 173.*
`
`:
`(Continued)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`US.C. 154(b) by 0 days
`~~
`,
`
`.
`.
`.
`Prinary Examiner—Kim Vu .
`Assistant Examiner—Paula Klimach
`Ys
`AS
`74) Attorney, Agent, or Firm—McDermott Will & Emer
`LLP
`
`y
`
`(21) Appl. No.: 09/441,403
`(22)
`Filed:
`Nov. 16, 1999
`
`eas
`Related U.S. Application Data
`(63) Continuationanpart ° appricationNo.1/8/689.767, filedon
`ug.
`A>
`> Now Fal.
`NO.
`0,107,002.
`(60)
`Provisional application No. 60/121,959, filed on Feb. 25,
`1999, provisional application No. 60/108,868, filed on Nov.
`18, 1998, and provisional application No. 60/108,566,filed
`on Nov. 16, 1998.
`
`7
`(51)
`Tint. Cdeee ceeecteneteeeesenseneees HO4L 9/32
`(52)
`- 713/200; 709/223; 713/100
`
`(58) Field of Search .........0.0000000.. 709/203, 217-225,
`709/229; 713/100, 200; 717/176-178
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,408,203 A
`4,658,093 A
`4,696,003 A
`4,731,880 A
`4,962,498 A
`4,999,806 A
`5,001,755 A
`5,005,122 A
`5,023,907 A
`5,155,847 A
`
`10/1983 Campbell
`4/1987 Hellman
`9/1987 Kerretal.
`3/1988 Ault etal.
`10/1990 May,Ir.
`3/1991 Chernowetal.
`3/1991 Skret
`4/1991 Griffin et al.
`6/1991 Johnsonetal.
`10/1992 Kirouacetal.
`
`(Continued)
`
`ABSTRACT
`67)
`Asystem and method for
`generating and remotely installin,
`sg
`ys
`g
`g
`:
`y
`a private secure and auditable network is provided. Node
`identification, link, and application information is input into
`a template. A generator generates components using the
`inf
`ti
`in
`the
`t
`lat
`d th
`t
`vemotel "sastalled sineay ‘nstallation <erverThecompo.
`oy lud
`& dul
`hich
`h :
`Il -
`nents inclu €
`agent mo Wes WwW. 1c]
`are eac
`insta €
`at
`predetermined target site and establish communication with
`the installation server to facilitate the download of other
`components, including application software and configura-
`tion files. Each node can only be installed once and is
`specific to a predetermined target site. For each link, a
`unique pair of keys is generated in a form which is not
`humanreadable, each key correspondsto a different direc-
`tion of communication over the link. Data transmitted
`between nodes is encrypted using public-private key pairs.
`At
`least one monitor node manages the security of the
`network, strobes keys, and may take nodes out of the
`network in the event of a security violation. In such a case,
`one or more nodes, or the entire network, may be regener-
`ated and installed anew. Throughout
`the generation and
`installation a plurality of verifications, authorizations, and
`password entries may be required by independent groups to
`arrive at the network. Preferably, the installation is audited
`by several groups, and the overall operation may be audited
`by a second monitor node to detect the presence of an
`interposed “pirate” node.
`
`58 Claims, 28 Drawing Sheets
`
`
`
`
`
`DetermineSite
`
`
`
`Information
`
`os
`‘AM Generate
`
`Node'é Public,
`
`Privata Key Pair
`|
`190
`AM Transmit
`
`Noda's Pubile Key
`to Installation
`
`Server
`4910
`AM Decrypt
`Session Key
`With Private
`
`Key & Store
`701
`
`Input Local(Sales)
`Password @ Sita
`
`
`
`
`
`
`
` onTargetSite, AM
`
`
`
`
`
`
`
`
`
`
`
`‘Trans
`Installation Server
`
`Google Exhibit 1071
`Google v. VirtaMove
`
`Google Exhibit 1071
`Google v. VirtaMove
`
`

`

`US 6,918,038 B1
`
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`9/1993 Holmesetal.
`5,247,683 A
`4/1994 Rasmussenetal.
`5,301,247 A
`5/1994 Harwell et al.
`5,317,744 A
`2/1995 Hornbuckle
`5,388,211 A
`5/1995 Aziz
`5,416,842 A
`5/1995 Platt
`5,421,009 A
`8/1995 Wyman
`5,438,508 A
`9/1995 Hotka
`5,452,415 A
`2/1996 Shing etal.
`5,495,610 A
`4/1996 Schull
`5,509,070 A
`4/1996 Choudhuryetal.
`5,509,074 A
`8/1996 Jacobson
`5,548,649 A
`1/1997 Nugent
`5,594,866 A
`6/1997 Osmanetal.
`5,638,512 A
`9/1997 Elgamal
`5,671,279 A
`1/1998 Schloss
`5,706,507 A
`1/1998 Rose
`5,708,709 A
`1/1998 Levergood
`5,708,780 A
`1/1998 Hongetal.
`5,710,883 A
`3/1998 Kullick
`5,732,275 A
`4/1998 Seazholtz et al.
`5,737,706 A
`5/1998 Dalyetal.
`5,748,896 A
`10/1998 Coleyetal.
`5,826,014 A
`1/1999 Clark etal.
`5,864,747 A
`6/1999 Parkeretal.
`5,909,589 A
`10/1999 Angeloet al.
`5,974,250 A
`8/2000 Sandahlet al. «0.0.00... 709/221
`6,098,098 A *
`6,298,445 B1 * 10/2001 Shostacket al.
`............ 713/201
`6,523,166 B1 *
`2/2003 Mishra et al.
`.............. FAT/AT4
`OTHER PUBLICATIONS
`
`Udo Flohr, Electric Money, Jun. 1996, BYTE, pp. 74-84.
`Ellen Messmer, Start-up puts security SOCKS on Windows
`apps, May 20, 1996, Network World, p. 39.
`Ellen Messmer, Edify Software to Let Banks Open Doors
`Online, May 20, 1996, Network World, p. 16.
`Joanie Wexler, AT&T Sells Insurers on the Web, May 20,
`1996, Network World, p. 27.
`Set Tool Kit for Secure Commerce, Bank Systmes +Tech-
`nology, May 1996, p. 16.
`Margie Semilof, Boosting Web Business, Communications
`Week, May 20, 1996, Section: News Brief, p. 31.
`Martin Marshall, Banking on the Internet, Communications
`Week, May 20, 1996, p. 1.
`Software Taps Net for Supply Data Sharing, Electronic
`Buyers News, Apr. 22, 1996, Section: Purchasing, p. 50.
`Kim S. Nash and Lisa Picarille, Vendors Deliver IS—specific
`Apps Over the ‘Net’, Computer World, May 6, 1996,
`Section: News, p. 16.
`Jan Ozer, Online Software Stores, PC Magazine, May 28,
`1996, Section: Trends, p. 36.
`Sebastian Rupley, Digital Bucks? Stop Here, PC Magazine,
`May 28, 1996, Section: First Looks, p. 54.
`Karen Rodriguez, Pushing the Envelope, Communications
`Week, May 31, 1996, Section:Internet/Internet, p. 37.
`Diane Trommer, ECS Catalog Merges EDI/Net Platforms,
`Electronic Buyers News, May 20, 1996, Section: Purchas-
`ing, p. 54.
`Carol Sliwa, Netscape Unveils New ‘New Commerce Offer-
`ings’, Networld World, May 13, 1996, Section: Internet
`News, p. 10.
`One Click Software Via the Web, DATAMATION, May 1,
`1995, p. 16.
`Chris Jones, Licensing Plan Flows from Stream, INFO-
`WORLD, May6, 1996, Section: News.
`
`Inc., Stream, LitleNet, BBN, and
`Stream International
`KPMG Announce Industry—-Wide
`Initiative to Enable
`Wide-Scale Software Electronic Commerce, May 12, 1996,
`http:/Avww.stream.com.
`Daniel J. Bernstein, Let’s Talk: Interapplication Communi-
`cations in C+ + Using X Properties, Jan—Feb. 1996, The X
`Journal, pp. 37-44.
`C. Anthony DellaFera et al., The Zephyr Notification Ser-
`vice, Usenix Winter Conference, Feb. 9-12, 1988.
`Adam Bryant, Am I Bid Six? Click to Bid Six!, The New
`York Times, May 13, 1996, Section D1.
`Daniel Nachbar, When Network File Systems Aren’t
`Enough: Automatic Software Distribution Revisited, Sum-
`mer 1986, USENIX Tech. Conf., pp. 159-171.
`David M. Arnow, DP: A Library for Building Portable,
`Reliable Distributed Applications
`Jan.
`16-20,
`1995
`USENIX Tech. Conf, pp. 235-247.
`Thomas Eirich, Beam: A Tool for Flexible Software Update,
`Sep. 19-23, 1994, USENIX Tech Conf, pp. 75-82.
`Chris Maeda and Brian N. Bershad, Service without Servers,
`Aug. 1, 1993, IEEE, 4th IEEE Workshop on Workstation
`Operating Systems, pp. 170-176.
`Michel Dagenais, Stephane Boucher, Robert Gerin—Lajoie,
`Pierre Laplante, Pierre Mailhot, LUDE: A Distributed Soft-
`ware Library, Nov. 1-5, 1993, USENIX Tech Conf, pp.
`25-32.
`
`Walter C. Wong, Local Disk Depot—Customizing the Soft-
`ware Environment, Nov. 1-5, 1993, USENIX Tech Conf,pp.
`51-55.
`
`Steven W. Lodin, The Corporate Software Bank, Nov. 1-5,
`1993, USENIX Tech Conf, pp. 33-42.
`Murray Turnoff and Sanjit Chinai, An Electronic Informa-
`tion Marketplace, 1985, North Holland Computer Networks
`and ISDN Systems 9, pp. 79-90.
`Ken Yamada and Barbara Darrow, Electronic Distribution
`Program on Tap, Apr. 29, 1996, Computer Reseller News,
`pp, 1 and 169.
`Michael Baentsch, Georg Molter and Peter Sturm, Web-
`Make: Integrating Distributed Software Development in a
`Structure-enhanced Web, 1995, Computer Networks and
`ISDN Systems 27, pp. 789-800.
`Brian D. Noble, Morgan Price and M. Satyanarayanan, A
`Programming Interface for Application—Aware Adaptation
`in Mobile Computing, Fall 1995, USENIX Association, vol.
`8, No. 4, pp. 345-363.
`Michael B. Jones, Interposition Agents: Transparently Inter-
`posing User Codeat the System Interface, 1993, 14th ACM
`Symposium on Operating Systems Principles, pp. 80-93.
`Diane Trommer, GE/Netscape Form Software Venture,
`Electronic Buyers News, Apr. 22, 1996, Section: Online
`@EBN,p. 54.
`Ellen Messmer, Active X Pioneer Pushes Commerce, Net-
`work World, May 6, 1996, p 33.
`Takahata M. et al., Real-Time Video—On—Demand System
`based on Distributed Servers and An Agent—Oriented Appli-
`cation, vol. 2663, Jan. 31, 1996, pp. 242-251.
`Tim Clark, The Big Sell, Software Online, Apr. 22, 1996,
`Inter@ctive Week, pp. 31-35.
`Chii-Ren Tsaiet al., Distributed Audit with Secure Remote
`Procedure Calls, Oct. 1991, pp. 154-160, XP000300426.
`
`* cited by examiner
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 1 of 28
`
`US 6,918,038 BI
`
`18
`
`
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 2 of 28
`
`US 6,918,038 B1
`
`Installation
`Request
`36
`
`
`
`
`
`
`
`Credential
`Verification?
`38
`
`Input Code
`40
`
`
`
`
`
`
` RequestApplication Information
`42
`
`
`Installer
`Verified?
`41
`
`Input Billing Information
`44
`
`
`
`Billing Info
`Verified
`46
`
`48
`
`
`
`Yes
`
`50
`
`TransferInstallation Modules
`
`
`52
`
`
`
`i
`
`
`vanityGood
`4
`
`Contact
`
`Technical
`
`
`
`Department
`
`
`
`58
`
`Yes|60
`
`Future Contact Options
`62
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 3 of 28
`
`US 6,918,038 B1
`
`
` Update
`
`
`Requested
`70
`
`Request Application Information
`72
`
`Old
`Version?
`74
`
`78
`
`
`
`
`
`
`Disable
`
`
`
`Program
`94
`
`
`
`Same
`Machine?
`
`80
`
`84
`
`Check Hardware
`86
`
`
`
`Input Billing Information
`83
`
`Install New Version
`90
`
`FIG.3
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 4 of 28
`
`US 6,918,038 BI
`
`Le--—----|
`
`FIG.4
`
`
`

`

`Jul. 12, 2005
`
`U.S. Patent 1
`
`ii{iti1'1''|i1II’1i'ttI'ii'I'''|iii1!!!5!!!J!1!I1'
`
`Sheet 5 of 28
`
`US 6,918,038 BI
`
`FIG.5
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 6 of 28
`
`US 6,918,038 B1
`
`
`
`Installation
`Server 630
`
`
`Web Server
`615
`
`
`
`Generator1
`
`620
`
`
`o>OooO
`
`Template
`610
`
`Account
`Server 680
`
`
`
`
`
`
`
`

`

`Template
`610
`
`|
`
`Web Server
`615
`
`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 7 of 28
`
`US 6,918,038 BI
`
`aiOoO
`
`
`
`FIG. 6B
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 8 of 28
`
`US 6,918,038 B1
`
`TEMPLATE
`Company Network
`
`NETWORK NODES
`
`Node B-Node C
`
`Monitor 162.222.111.088
`Node A 165.108.21.10
`Node B 155.108.130.108
`Node C 155.108.111.5
`Node D 165.108.120.9
`Node E 155.108.120.52
`
`monitor
`appA pwdAs
`appB
`appA pwdCs
`appA pwdDs
`appB pwdEs
`
`612
`
`614
`
`616
`
`617A
`
`NETWORKLINKS
`
`Node A-Node B .
`Node A-Node C
`Node A-Node D
`
`FIG. 7
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 9 of 28
`
`US 6,918,038 B1
`
`802
`
`Generate
`Template
`
`lat
`T
`emprate
`
`610
`
`806
`
`804
`
`Input Template
`into Generator
`
`Build Network Components (Network Files, Node
`Configuration Files, Etc.) & Agent Modules
`
`808
`
`Store Agent Modules
`
`Add Network Components to
`Installation Server
`
`Register All Agent Moduleswith
`Installation Server
`
`816
`
`810
`
`812
`
`Node(s)
`
`
`Load (Next) Agent
`Install (next)
`
`
`
`Application Node
`Module on .
`
`
`Respective Target
`using Dual Key
`
`
`7
`Site
`Encryption
`
`814
`
`Yes——_————_
`
`No
`
`Install (Next)
`Monitor
`
`820
`
`Perform On-Site Audit
`Procedures
`
`821
`
`
`
`
`All Application
`
`NodesInstalled?
`822
`
`Audio Procedures
`
`Network Installed
`
`Audit Network
`
`
`
`825
`
`Verify Onsite
`
`
`
`Strobe Keys
`
`FIG. 8
`
`628
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 10 of 28
`
`US 6,918,038 BI
`
`Generator
`
`
`
`
`
`
`
`
`Read Template
`Network Data
`(Nodes,Links,
`. Applications)
`
`
`
`enerate Network
`G
`Information File(s)
`
`902
`
`904
`
`906
`
`908
`
`
`
`
`
`Generate 2 Keys
`
`for Each End Node
`
`in Each Link
`
`
`
`Generate Local
`
`(Sales) Passwords
`
`(Optional)
`
`
`
`
`Generate
`
`Agent
`Modules
`
`914
`
`
`
`Include Relevant
`
`
`Keys and
`
`Generate
`Passwords In
`Configuration Files
`
`
`
`Config. File for
`‘For Each Node
`
`
`Each Node
`
`
`LernerteRRTERETTTTIESCeCeASLOCEERIBee
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 11 of 28
`
`US 6,918,038 BI
`
`prevewenseremenennweraveressennaseorenteenrermereernnncoreesanannesasennny
`
`Installation Server
`
`
`
`
`
`
`
`
`
`Begin Execution of
`
`Agent Module (AM)
`
`
`on Target Site, AM
`
`
`Determine Site
`Information
`
`
`1004
`
`
`AM Generate
`
`
`Node's Public,
`Private Key Pair
`
`
`
`
`AM Decrypt
`Session Key
`
`With Private
`Key & Store
`
`
`1012
`
`
`1006
`
`AM Transmit
`Node's Public Key
`. to Installation
`Server
`
`
`
`input Local (Sales)
`Password @ Site
`(Optional)
`
`1014 °
`
`
`
`
`
`AM Store Local
`Passwords, Node
`1.D. Info.,
`Application Info,
`etc. in Message .
`
`
`1016
`
`
`
`Installation Server
`
`AM Encrypt
`Message With
`Session Key &
`Transmit to
`
`
`
`Store Node's Public Key, Generate
`Session Key, Encrypt Session Key
`with Node's Public Key & Transmit
`
`
`Session Key to Node
`
`
`
`
`1008
`
`Executing on
`Proper Target
`
`
`
`
`
`Has Agent
`
`Module
`Been Installed
`
`Previously?
`
`
`Communicate
`
`Detection of a
`
`Security
`Violation to
`
`Encrypt Configuration File
`Monitor Node
`
`
`& Application With New
`Node Public Key &
`
`Session Key & Transmit
`
`to Node
`
`
`
`FIG. 10A
`
`Lee
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 12 of 28
`
`US 6,918,038 B1
`
`ea
`
`i
`
`4
`
`
`
`i
`
`
`
`
`
`puevevreenerentesstpersssenusrtpscsenesesenruaveneroenscnennertanerenserirenrsoneatermannnegareassetanestaerrntnanenannneensesttsesetinernternententraunatareamsasengeremancaaseneaneseueuntetrereenecanesnmta
`
`
`
`Decrypt Config.
`.
`File & Application
`
`From IS with Node
`}«—
`Monitor Node
`
`i MonitorNodei ; i
`
`
`
`Private Key and
`i
`Session Key
`1028
`|
`4038
`
`
`
`Decrypt
`
`
`Message?
`Received
`
`
`
`
`
`
`
`
`Generate Connect
`
`To Monitor (Login)
`Message(incl.
`Node Name &
`
`
`Node KeyPairs)
`
`Generate Accept
`
`(Login) Message
`|
`
`
`
`Encrypt Message
`?
`(incl. Monitor Name &
`With Monitor Public
`Monitor Keys)
`
`Key & Transmit
`(Node Loggedinto
`
`Monitor)
`
`
`
`Store Relevant
`Initial Link Key
`Pairs
`
`
`Run/Install Node
`Application(s)
`
`1030
`
`1032
`
`1034
`
`-1036
`
`1046
`
`
`
`
`
`
`Encrypt Accept
`
`Message Using
`Node Public
`Key & Transmit
`
`
`
`
`
`Node
`
`Security
`
`Recognizes
`Violation
`Monitor?
`
`
`
`
`
`
`
`
`(Monitor Logged
`into Node)
`Double Login
`Complete,
`
`Connection
`Established
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 13 of 28
`
`US 6,918,038 BI
`
`renee anguenerastenesensacsnvymerenresayssescenreneneeerereeenernenteent
`
`iii
`
`i t
`
`ii
`
`ii|
`
`i i
`
`Target Site
`
`1056
`
`Input Audit
`Password
`
`
`
`Monitor Node
`
`1054
`[Prsvesrecemesrenrsereemeeranserraneanmeaneenanttenanenny
`
`StrobeMonitor -
`Node Link Keys
`
`
`Decrypt
`Password
`
`
`
`with Monitor
`Private Key
`
`
` Encrypt
`
`
`
`Audit Password
`
`Password with
`
`correct for this
`
`
`Monitor Public
`Node?
`
`
`Key & Transmit
`to Monitor
`
`
`1068
`Yes
`
`First Time Node
`Installed?
`
`1064
`
`1066
`
`
`
`
`
`
`
`
` Generate
`
`
`
`
`Acknowledgement
`Message, Encrypt
`with Node Public Key
`
`
`& Transmit to Node
`_}
`
`1072
`
`For Each Exisiting
`Node with Which
`Nodeis to be linked,
`Update Existing
`Nodes With Node
`Information (e.g.,
`Node Public Key)
`
`
`Generate Enter
`Network Message,
`Encrypt with Node
`Public Key & Transmit
`
`1074
`
`
`Key
`Installed)
`
`Decrypt
`Acknowledgement
`Message With
`Node Private Key
`
`1076
`
`Decrypt Enter
`Network
`Message With
`NodePrivate
`
`1078
`
`Connect to
`Existing
`Nodes with
`Which Node
`is to be
`Linked
`(Node
`
`FIG. 10C
`
`[resronnetersevessasessaccnerertescemsearssseaceamaereny
`Ii
`
`{ ! |j tii
`
`ii
`
`|i
`
`Account Server
`
`1070 |
`|
`
`
`
`Update Acct.
`Server to reflect
`Installation of
`New Node
`(Node
`Authenticated)
`
`| ii i {
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 14 of 28
`
`US 6,918,038 B1
`
`i
`
`M
`
`Encrypt with current Node
`Pub. Key & Xmit
`
`1102
`410471
`
`1127
`
`11147:
`
`Decrypt Msg
`
`Gen. "Ready" Msg
`
`Enervptwith current Moni)
`Pub. Key & Xmit
`
`
`
`
`
`||Current Node Session Key & |_| Gen. New Node Private,
`
`
` er
`: nnan
`
`082 :[Gen. "Get Ready to Strobe" po i
`
`Msg
`PG
`-1106
`ion
`-1108
`mt
`:
`bi
`1110
`Do
`|
`+
`|_[
`i
`io
`+1120
`Poi
`i
`4118
`Store
`i
`oi
`Gen. New Monitor
`N
`7
`Priv. & Pub. Keys
`i
`Decrypt Msg
`ew
`ict
`y
`Monitor|;
`Pub. Key||
`
`Encrypt New Monitor Pub.
`11167
`j
`Key & Msg to "Begin" with
`
`
`
`
`Xmit
`Public, & Session Keys
`
`
`1126
`
`
`1128
`
`
`
`Decrypt Msg
`
`Store New
`Node
`Session &
`
`Pub. Keys
`
`
`
`
`
`Gen. New
`Monitor
`Session Key
`1130
`
`
`Encrypt New Monitor
`
`Session Key With New Node
`
`Pub. Key & Current Node
`Gen. Msg "Ready to Change|!
`Session Key & Xmit
`
`
`Session Keys"
`
`
`
`
`
`Encrypt New Node Session
`& Pub. Keys with New
`Monitor Pub. Key & Current
`
`
`Monitor Session Key & Xmit
`
`
`1134
`Sine
`Nore
`Decrypt Msg
`Monitor
`Session Key i
`
`1132
`
`
`
`i
`
`New
`
`1144
`
`11427
`
`Decrypt Msg
`
`Gen. MsgIndicating Accep.
`of New Session Keys
`
`Encrypt Msg with New
`Monitor Pub. Key & Current
`Monitor Session Key & Xmit
`
`1146
`
`
`
`
`
`Decrypt Msg
`
`114
`
`8
`
`
`
`Encrypt with New Node
`
`Pub. Key and New Node
`Gen. Msg Acknowledging
`Session Key & Xsmit
`Use of New Session Keys||
`
`
`1154
`1156
`056}
`
`Decrypt Msg
`Strobe Complete
`
`
`
`Encrypt with New Monitor
`
`
`Pub. Key and New Monitor
`Session Key & Xmit
`
`
`
`FIG.11
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 15 of 28
`
`US 6,918,038 B1
`
`
`
`
`m"NodeA || MonitorNode||NodeB|
`625) ;
`i
`ID 2 Nodes
`i
`i
`
`
`; ||(A&B) To Strobe if |
`
`au
`|
`1204 |
`|
`
`| ||A:Connect Node|;|
`
`
`i ||B:Accept Node |
`1
`|
`1206 |
`|
`
`
`
`i ||"Get Ready To||; |
`
`
`
`1212} ||Strobe" Msg For|| | |
`
`i
`i
`id
`4
`ii
`/¢t5
`Decrypt Msg.s
`AaB
`+1220
`
`
`i Decrypt Msg.s|;' }] 1208 ip»
`
`
`
`
`
`
`|
`{/[
`Encrypt Msg to
`]]/||
`lyo20
`1214;
`
`i|Complete Msg.-s| i | Awith A's Wire
`
`
`
`i
`Hi
`i
`omplete Msg.s
`1216;
`4
`i}
`
`1224
`i
`ii
`|
`
`| i|Gen. B Ready1|Gen. A Ready Encrypt Mag to) |
`
`
`
`
`
`i
`|
`B with B's
`i
`|
`Msg
`Msg
`
`42184
`iij
`oc
`
`
`
`
`
`
`i} i[Encrypt MsgEncrypt Msg i Kanesecre | j1226
`
`
`
`
`
`
`i|with Monitors|| ||with Monitor's||| ;
`
`
`
`
`
`
`
`
`/|CurrentPub.|| |[”Monitor Gen. i:|Current Pub.
`
`
`
`
`
`
`
`Key & Xmit ii|Ack.Msg and[|| Key & Xmit
`
`
`
`
`
`
`
`
`12324 Instruction for A|ji ["| | 14232
`
`
`
`
`
`| 1|&BtoStrobe|| | pe
`
`
`
`
`
`
`
`
`
`
`
`
`
`|| Nodes Strobe||| 1|Nodes Strobe |Oo virope J: |
`
`
`|| (Steps 1114-|| ;i|(Steps1114-||| 1228
`
`
`
`
`Li
`1156),
`ii
`1156),
`
`
`
`||Connect Node Eeot to Connect Node||+»
`
`
`
`
`
`
`
`
`||As Monitor Node||| (||As Monitor Node|, |
`
`
`
`
`
`& Accept Node|| ||& Accept Node||| 1230 |
`
`
`
`
`
`
`iy
`As Node X
`7
`As Node X
`ij
`i
`ii
`i
`
`12344
`Lj
`i
`|
`11238
`
`| Strobe Complete ||Strobe Complete|
`
`Msg.
`|
`i
`Msg
`
`|
`|
`42364
`11240
`
`
`(44
`Encrypt Msg
`_ Encrypt Msg
`>
`DecryptMsg.s
`i
`
`||With Monitor's ||With Monitor's|; | |
`
`
`
`
`
`||Pub. Key & Xmit} ||1244 |||Pub. Key & Xmit||
`
`
`1246} ||[Authorize Nodes 11248
`
`
`|| Resume Data||Resume Data || || ToExchange |: ||
`
`
`
`
`
`
`
`
`
`
`
`||Transmissions Transmissions|||«~ Data Using New i>
`
`
`Keys
`i
`ToB
`Vy
`| i
`ToA
`LoLo
`
`
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 16 of 28
`
`US 6,918,038 B1
`
`Priv. & Pub.
`
`Ke
`
`
`
`
`
`
`
`[BOO ccessnrestneeetneenerienenenenentennnnnnnnete,—_penennanennnenttitennnenint
`|
`A302
`Node A (Connect
`|
`| 1308
`Node B (Accept
`“atc
`
`NodeA(Connect) Pog ( pt)
`
`
`Block Pending Xmissions ft} Decrypt MsgjrStore New|||
`
`
`(sends) to Node B NodeA||Ll
`
`
`i]
`[Block
`1304~,
`PubKey
`J
`
`Gen. New Ts|nenang ‘o 41312
`
`
`NodeA Priv.
`ub. Keys
`fy
`Node A
`|
`|i ‘4304
`1308~
`i|Encrypt New Node A Pub. Key|||: i
`
`
`:|& Msg to "Begin" with Current -— | 1316
`
`
`|| Node A Session Key &Xmit Gen.NewNodeBPriv.,[|||; ||
`
`
`
`
`|
`io
`Pub., & Session Keys
`i
`1320
`:
`13224
`Fog
`_—
`4318
`
`
`
`iT ||Encrypt New NodeSession |Store New Decrypt Msg }e#—
`
`
`
`
`
`Node B i|||& Pub. Keys with New Node| ;
`
`
`
`
`i|Session & ||A Pub. Key & Current Nodeen.New ; i
`| ASessionKey&Xmit||Pub. Keys NodeA |i ||
`
`
`
`
`
`
`Session Key]:
`i 1330
`
`1324~ Store New||3321328 | ls! Decypi Mag}!
`
`
`
`i|Persist Current Node B NodeA||i} i
`
`
`|
`Gen. Msg
`Session and Pub. Keys
`Session
`
`1328~ |}|"Readytoi Key
`
`
`
`||Encrypt New Node A Session||| ! Change Persist 1711934
`
`
`
`
`
`
`
`||Key With New Node B Pub. Key| i||| Session C :
`
`
`
`
`i
`.
`iti
`Keys"
`urrent
`i
`
`;|& Current Node B Session Key|| | y: Node A
`
`
`|
`|, \1336
`Session
`|
`& Xmit
`1340
`i:
`Key
`|
`i
`Decrypt Msg
`ae
`14338
`
`
`4342-1 i|1|Encrypt Msg with New Node| ;
`
`i|Change Node A Session Key 7] A Pub. Key & Current Node||i
`
`g
`ii
`A Session Key & Xmit
`:
`1344
`-
`1348
`
`i|Gen. Msg Confirming Use of|| [7 Decrypt Msg
`
`an
`New Keys
`1346
`Change Node B Session
`
`
`
`||Encrypt with New Node Pub. | — |
`Gen. Response Meg
`Key andNewNodeSession
`|
`74352
`
`1356 ey&Am [Confirming Use of New Keys||| |
`
`
`
`:
`2
`|
`Decrypt Msg :_||Encrypt with New Node A - 1354
`
`
`1358~ ||Pub. Key and New Node A!
`
`Strobe Complete
`'
`iol
`Session Key &Xmit
`|
`Oeeae
`
`a
`
`i
`
`Ke
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 17 of 28
`
`US 6,918,038 BI
`
`Send A, B and
`Send B, A and
`Monitor A public
`Monitor A public
`keys to Monitor B
`keys to Monitor B|No
`
`Meeeeneemeeeeeeeeeeeeeeeaaeeeeseeneeeeeenaan
`
`Node A(Connect)
`
`Are two
`monitors
`installed?
`
`Unblock
`Transmissions
`
`Unblock
`Transmissions
`
`~
`
`FIG. 13B
`
`
`
`
`

`

`i|
`
`U.S. Patent
`
`Jul. 12, 2005
`
`Node A (Connect)
`
`1376
`
`Sheet 18 of 28
`
`US 6,918,038 B1
`
`i t
`
`‘i i
`
`;i i:ti
`
`i
`
`a
`
`Node B (Accept)
`
`i
`
`1378 | ||Save New NodeBPrivate, |
`
`i
`i
`Decrypt Message
`
`
`i
`Public Key & Session Keys;
`and Node A Public &
`Session Keysin “Stage
`One"file
`
`
`
`1372
`
`|
`
`Generate
`Saving Keys
`Message
`
`1374
`
`:
`i
`
`|
`
`i
`
`
`
`
`
`
`
`Save New Node A
`
`
`Private, Public, &
`Session Keys; and
`Node B Public &
`
`
`Session Keys in
`t
`i
`"Stage One"file
`1380 |
`
`Generate Keys
`
`1382 |
`i
`
`|!
`
`i
`
`i
`i
`
`}
`
`Encrypt Message
`with New Keys &
`Transmit
`
`=
`
`i
`i
`i
`
`-
`
`1386
`
`Save Previous Node B
`Private, Public, & Session
`Keys; and Previous Node A
`Public & Session Keys in
`Stage Two" file
`
`1388
`
`
`Saved Message
`New Keys & Transmit Decrypt
`Message
`
`I i
`
`Encrypt Message with
`
`4392
`
`Decrypt Message
`
`1394
`
`
`
`ave Previous Node A
`
`Private, Public, &
`
`
`Session Keys; and
`Previous Node B Public
`
`
`& Session Keys in
`"Stage Two"file
`
`nnn a
`
`|
`
`
`
`
`
`:
`i
`
`
`
` qanssaanaranepensonnensmansstadseeensensersneeonenuseeeessnmnannantunassneensranedssamsesreneeeseseneensracecanminesmenansnnes.
`
`
`
`Generate Keys Saved
`Message
`
`1390
`
`
`
`New Keys & Transmit Cicamnsccmnererestoneerensessseenenseessanassenenscans
`
`628
`
`FIG. 13C
`
`Encrypt Message with
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 19 of 28
`
`US 6,918,038 BI
`
`
`
`OShLWO}J8PJO
`
`yomjeueuoyUeq
`
`
`
`SOPONMOMJON
`
`JOyNgSIP¢uowaEpZJOUOW|,
`
`JOINquIsIP9uowep¢JOWUOW
`
`
`
`SU!WIOMION
`
`E—JO#UOLW}uoWweepZ—-LOWUOW|
`
`ol
`
`JOJNGUISIPQ-UOWBEPZJOWNGLSIP
`
`
`
`
`Wia}sAsBulpesj--s0]NqUysIPgwesks
`
` Buipeyj—-uolusep¢JOINGUISIPQ--JOWUOLpUOLUSEP
`
`
`
`G-JOINQUISIP G-JO}IUOWUpSUE)UIEUI—JO}NQUISIP¢JUBAS
`
`
`art“Ola
`
`Vbl
`
`€
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 20 of 28
`
`US 6,918,038 BI
`
`;
`
`1502
`
`Add Agent
`Library Software
`to Bank Appl.
`
`4540
`
`BDG Obtain Password &
`Authorization to Install
`Network Definition on
`
`Model & Test
`Network in
`Test
`Environment
`
`1508
`Perform User
`Acceptance
`Testing on
`Model in UAT
`Environment
`
`1512
`
`1514
`
`Submit Source
`Code to Agent
`
`SD Audit Network
`Definition Against
`Template, Provide
`
`BDGInstalls
`Network
`Definition On
`Generator
`
`Sales Dept.
`Obtains
`Passwords &
`Authorization to
`Install Network
`
`1518
`
`1516
`
`
`
`
`
`
`
`Generator Create &
`Store Agent
`Modules, Register
`Modules, Generate
`Network
`Components
`
`1524
`
`
`
`
`
`
`1526
`
`SD Communicate
`Sales Passwords to
`SD @ Target Sites
`
`1528
`
`AD Communicate
`Audit Passwords to
`AD @ TargetSites
`
`Download Agent
`Modules, Execute
`Agent Modules
`
`1530
`
`1532
`
`
`
`
`
`SD @ Target Sites Enter
`Sales Passwords,
`Download Network
`Components
`
`1534
`
`Run Applications,
`Agent Modules
`Communicate With
`
`
`Monitor Node
`1536
`
`AD @ TargetSite
`Enter Audit
`Passwrods, Confirm
`App. Running on
`
`Software
`Installation Server
`Build Module
`Sales Passwords
`ProperSite
`
`Audit Dept. Obtains
`Passwords &
`Authorization to
`Install Network
`
`AD Audit Network
`Definition Against
`Template, Provide
`Audit Passwords
`
`1538
`
`Nodes Enter Network
`(Installed)
`0 ea
`
`FIG. 15
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 21 of 28
`
`US 6,918,038 BI
`
`
`
`FIG. 16A
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 22 of 28
`
`US 6,918,038 BI
`
`
`
`FIG. 16B
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 23 of 28
`
`US 6,918,038 BI
`
`tr<x>°a+wT
`
`1410UAT
`
`1428UAT we eeee eee ee ew wee wee
`
`FIG. 16C
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 24 of 28
`
`US 6,918,038 BI
`
`
`
`FIG. 16D
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 25 of 28
`
`US 6,918,038 BI
`
`
`
`FIG. 16E
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 26 of 28
`
`US 6,918,038 BI
`
`491‘Old
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 27 of 28
`
`US 6,918,038 BI
`
`t1t1'1'''1itJtt 1tiJ!J11 '1 {It1 1I i||A
`
`Record hash values of
`public key used by
`
`monitorat this time
`
`Main Office
`Audit Group
`
`Piace call to auditor or
`personally confirm
`auditor has visited site
`
`1752
`
`
`
`
`
`Compared auditors hash
`of public key with hash
`
`produced by Monitor
`
`
`
`
`Audit Group at Target Site
`
`1740
`
`
`
`
`
`Attargetsite, fill
`out on site audit
`
`report
`
`1742
`
`At targetsite, login to
`application
`
`1744
`
`t target site, recordin
`audit notebook the hash
`values from public keys
`
`1746
`
`At targetsite, fill out
`on-site audit report
`1748
`
`( 14411!111t1' 'tttt’JJa'ii1 \i
`
`Retum to branch
`office or main office
`
`1750
`
`Talk by telephoneorin
`person with main office
`
`.
`
`
`
`
`i1Tttt'
`
`
`
`

`

`U.S. Patent
`
`Jul. 12, 2005
`
`Sheet 28 of 28
`
`US 6,918,038 BI
`
`Monitor A
`
`1801
`
`Are these two
`monitors?
`
`Yes
`
`1802
`
`a3c©<9ca”
`£0>ox2a3a
`Monitor B
`
`Monitor B
`
`1820
`
`side of strobe
`
`1822
`
`Store data from accept
`side of strobe
`
`1824
`
`Store data from
`Monitor
`
`s there enough
`data available for
`comparison?
`
`Yes
`
`Are nodes using
`correct public keys?
`
`Security violation
`
`+
`
`
`
`
`
`
`

`

`US 6,918,038 B1
`
`1
`SYSTEM AND METHOD FOR INSTALLING
`AN AUDITABLE SECURE NETWORK
`
`RELATED APPLICATIONS
`
`This application is a continuation-in-part of U.S. patent
`application Ser. No. 08/689,767, entitled SYSTEM AND
`METHOD FOR DISTRIBUTING SOFTWARE OVER A
`
`NETWORK,filed Aug. 13, 1996 now U'S. Pat. No. 6,067,
`582, both incorporated herein by reference. This application
`claims the benefit of priority from U.S. Provisional Appli-
`cation No. 60/108,566, filed Nov. 16, 1998; U.S. Provisional
`Application 60/108,868, filed Nov. 18,1998; and U.S. Pro-
`visional Application 60/121,959, filed Feb. 25, 1999, each of
`which is incorporated herein by reference.
`
`BACKGROUND
`
`The invention relates to a system and methodfor distrib-
`uting software over a network. Moreparticularly, the inven-
`tion relates to a method for controlling software distribution
`by embedding a sub-component of the distribution control
`software in each software application, and having a central
`monitoring software for monitoring the distribution of the
`software applications.
`Digitally encoded information, or software, is one of the
`most economically important commodities of the era The
`ease and economy with which perfect copies can be made
`and distributed has promoted the spread of software and
`related technologies through traditional commercial chan-
`nels such as retail and mail-order sales. More recently,
`non-traditional distribution channels such as distribution
`over networks of interconnected computers such as the
`Internet have become more viable. These non-traditional
`distribution channels have made it difficult for software
`
`creators and copyright holders to regulate the use of their
`creations or to receive paymentand registration information
`from their users. Consequently, software producers forfeit
`substantial revenues and valuable information about their
`customer base and potential markets.
`Various security methods have been employed in an
`attemptto inhibit illegal copying of software. Such attempts
`have included software security, such as password protec-
`tion and requiring original diskettes to initiate startup, for
`example, and hardware security, such as a dongle,
`for
`example, inter alia. Further, hardware-based copy protection
`techniques, as well as those which involve modification or
`customization of executable programs, prevent software
`vendors from exploiting the non-traditional distribution net-
`worksthat are becoming a mainstay of software distribution
`in the software marketplace. Therefore,
`these protection
`methods have generally proved inadequate for large-scale
`commercial distribution of software. Thus, most large soft-
`ware companies have relied on shrink-wrap licenses and
`legal remedies to enforce their copyrights which have
`proved moderately effective.
`Another challenge to the software industry is regulating
`the installation of software. Since individual users perform
`most installations of software, the vendor has no control
`over the software installation. A user can currently purchase
`software that will not run on the user’s computer. The user
`may not know the limitations of the user’s computer hard-
`ware or may not understand the software’s hardware
`requirements. If a user purchases software and the user’s
`computer hardware is inadequate to run the software, then
`various problems are going to occur in the installation and
`execution of the software on the user’s hardware. The user
`
`will have to spend much time and effort attempting to
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`resolve the problem, often including multiple calls to the
`vendor’s technical support lines at a cost to both the vendor
`and potentially the user.
`Additionally, companies having large networkedfacilities
`can internally have thousands of networked computers
`accessible by numerouscontent servers on a single network.
`Each of the content servers can be running any of various
`operating systems as can the computers with which the
`servers are communicating. From an information manage-
`ment standpoint, maintaining such a computer base can be
`very difficult given that each user may haveto install their
`own software or, in the case of networked software, each
`server has an individual copy of networked software for a
`subset of the users.
`
`Many computer users are reluctant to purchase software
`on-line due to security issues. The possibility of piracy of the
`software and, more importantly to the user, personal infor-
`mation inhibits many users from taking advantage of this
`method of transaction. Some on-line services include secu-
`rity features for such information, but generally lack an
`ability for the user or the service to audit the security of the
`transmission. In addition, on-line services generally do not
`allow the service to keep users informed of new products
`and releases, unless the users release personal information to
`the service.
`
`In some environments, the security of the network and
`data transmitted and stored thereon is critical. Such net-
`works and environments include military, legal, business,
`and financial services. As a financial services example, an
`investment trading system may belinked to a bank custody
`and accounting system, wherein the two systems exchange
`data so that
`the bank system can provide “settlement”
`services related to the trading system’s investmenttransac-
`tions. Attempts to make such networks secure, preventing
`the theft or manipulation of data by insiders and outsiders,
`often involves using human entered passwords to gain
`access to the network. However, because such passwords
`exist in human readable form, it is possible to steal such
`passwords and gain access to the system. Such systems may
`also implement key encryption to secure the data, butif the
`system is violated through password detection or other
`means, the keys may be obtained and used, unknown to
`network administrators. As an example, a method presently
`used to protect transmission of data over a network is a
`virtual private network that uses digital certificates, which
`involves the use of various root private keys which are
`manually protected in a secure environment. If these root
`keys can be discovered or broken,
`the network can be
`compromised. These keys generally have a life of one or two
`years. If a key in one of these system is stolen, the theft
`cannot be detected. Consequently, these networks may be
`unacceptably vulnerable.
`Additionally, these networksare typically large and com-
`plex and susceptible to the inclusion of “trap doors” during
`their generation and installation. A “trap door” is hidden
`software code that allows an application to secretly send
`data to unauthorized recipients, for example. Furthermore,
`the generation andinstallation is typically l

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