`
`[19]
`
`5,737,416
`9
`Coo e1- et a].
`[45] Date of Patent:
`A r. 7 1998
`
`
`[11] Patent Number:
`
`USOOST37416A
`
`[54] METHOD AND APPARATUS FOR ENABLING
`TRIAL PERIOD USE 01? SOFTWARE
`PRODUCTS: METHOD AND APPARATUS
`FOR U‘IILIZING A DECRYP’I'ION STU]!
`.
`.
`Inventors: Thomas Edward Cooper. Lomswlle;
`Hudson Wayne W‘ Boulder;
`rt
`'
`.
`t. 81.1
`Eggmm Pryor “3"ng
`
`['15]
`
`0 268 [39 A3
`0 561 685 A2
`0 561685 A3
`O 598 587 Al
`0 601 500 A1
`2136175
`wo 94107204
`
`
`
`511988
`911993
`9/1993
`511994
`“1994
`911984
`311994
`01111211 Punucmons
`
`(2106? [1‘00
`(30617 12114
`00“ 12!”
`mfiF 1100
`(306$? 1M0
`H03K 13124
`GooF 15121
`
`[73] Assignee:
`
`International Business Machines
`Col'poration. Armonk. NY.
`
`[21] APP‘- ”0-: 593555
`
`[22] Filed:
`
`Aug. 2, 1996
`
`new” US‘ Application Dam
`[63] Continuation ofSer. No.235,033,Apr. 9.5 1994 abandoned.
`[51]
`1111. CL".
`.n04L 9100
`[52] US. Cl. .................................... 380.14 3809;381:1123;
`380125- 380149 330150; 39511115 3951427
`3951481- 3951490 3951491
`Field otSe rd]
`380/4 9 21 23
`380125;“49503951501. 616 186.427
`481 490' 491' 726 728
`
`58
`
`[
`
`I
`
`[56]
`
`“59mm cm“
`U5. PA'I‘ENT DOCUMENTS
`
`3:23:
`33%: 131333 2:13; “1'
`'
`
`51301397
`611991 Archie $11.“...r-3951575
`
`1011992 Kim et a1. _________ 3951600
`5:155:84?
`
`1111992 Molnar e1 :11. ......... 3641479
`5,166,886
`.......................... 300123
`5341.429
`311994 Stinger et a].
`FOREIGN P
`
`“Data Masking Algorithm" (IBM Technical Disclosure Bul-
`letln. vol. 32. No. 63. Nov. 1989).
`“Infonnntion Distribution via Rom Disks" [IBM Technical
`Disclosure Bulletin. vol. 33 No. 12. May 1991).
`
`Primary Examiner—13mm E. Gregory
`111mm}; Agenr. or Finn—Edward 11. Duffield; Andrew J.
`13111011
`[57]
`ABSTRACT
`.
`.
`.
`.
`A $111? and “Rpm“ ‘5 9mm"? ”1 a 1213” ”Eff“
`. ”I 5“““1‘3 “we“. ‘0 133mm .35 W c a“
`5"
`stored in a computer-acces31ble memory medla. Afile man-
`‘gmmprwmispmim as 3” ”flaring system mm'
`ponent of the data processing system. At least one encrypted
`file and at least one unencrypted file are stored in the
`computer—accessible memory media. An unenuypted secu—
`rity stub is associated with each of the encrypted files. The
`secm’ity stub is at least panialiy composed of exewtable
`code. The file management program is utilized to monitor
`data processing calls font calledfile stored in the comma-
`accessible memory modla. The file management program
`determines what the called file has an associated unen-
`“RI-fwd 3091“? Stub- The called file is 1300855611 in 1:
`Particular manner dependent Upon whether or not the called
`1111: has an associated unenmrptod security 5111!).
`
`0 268 139 A2
`
`511930 European 13:11.05,
`
`6an 1100
`
`22 Claims. 28 Drawing Sheets
`
`98
`
`I
`
`EXPANSION
`
`1
`1
`I
`1
`
`CARDS
`
`102
`0191;
`
`1 \WTMR i
`
`®
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 1
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 1
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 1 of 28
`
`5,737,416
`
`\ @MPUTER—
`ACCESSIBLE
`‘l
`MEMORY
`5_
`MEDIA
`T’\% 18
`
`TELEPHONE
`
`
`
`
`REMOVABLE KEY
`
`10.
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 2
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 2
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 2 of 23
`
`5,737,416
`
`128
`
`F.
`
`
`
`LOCALAREANETWORK
`
`
`
`
`FIG.2
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 3
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 3
`
`
`
`US. Patent
`
`Apn7;1998
`
`Sheet 3 of 28
`
`5,737,416
`
`_mmjoEzoo
`
`
`
`mmjoEzoo2%$555mozo
`
`HJMquloOmocemamZMHmrw
`
`mam<o
`
`msfl
`
`umHD
`
`_
`
`onmz<mxm
`mmmw
`
`_
`
`mmmm_
`
`sod
`
`mm
`
`Nu
`
`mo
`
`an
`
`¢m
`
`>mozmz
`
`mmJJOmHzoo
`
`mDm
`
`meJOmHzOQ
`
`rhmzw mMJJOMHzOQ
`
`mPOJw
`
`4m44<x<m
`
`mmggomhzoo
`
`mwflwmflwwoo
`
`¢0>mmJNWMWzOo
`
`Dadom»wu
`
`wwnoz
`
`mmJJOMPzOo
`
`as.
`
`mOK
`
`\fu
`
`rm
`
`mm
`
`rm
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 4
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 4
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 4 of 23
`
`5,737,416
`
`281
`
`i
`
`205
`
`287
`
`
`
`SOFTW ARE
`
`OBJECT
`
`
`l
`
`
`
`OBJECT
`}
`]
`
`
`
`
`ENCRYPTED
`SOFTWARE
`
`ENCRYPTION
`
`ENGINE
`
`213
`
`MEMORY MEDIA
`
`USER-SPECIFIC INFORMATION
`
`3
`
`215
`
`a
`
`VENDOR
`
`SOURCE
`
`209
`
`MACHINE ID
`
`PRODUCT KEY
`
`217
`
`CUSTOMER NUMBER
`
`FIG. 5
`
`
`
`
`CUSTOMER
`USER
`
`211
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 5
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 5
`
`
`
`US. Patent
`
`Apr. 7, 1993
`
`Sheet 5 of 28
`
`5,737,416
`
`I
`
`221
`
`i
`
`MAKE LANGUAGE/
`LOCALE SELECTION
`,.__._,......._.—l
`
`
`
`
`
`
`IDENTIFY TRY AND BUY
`OPTIONS BY COMPLETING
`APPROPRIATE FIELDS
`
`
`
`223
`
`
`FUNCTIONALLY LIMIT
`OR ENCRYPT
`
`
`TRY AND BUY PROGRAMS
`
`225
`
`227
`
`
`
`
`|I
`
`
`
`
`LOAD SHELL AND
`TRY AND BUY PROGRAMS ON
`
`COMPUTER-ACCESSIBLE
`MEMORY MEDIA
`
`FIG. B
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 6
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 6
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 6 of 28
`
`5,737,416
`
`A _——_‘__T__h_-_I
`ACCESSIBLE MEDIA FOR
`I’V
`TRIAL INTERVAL
`
`'
`
`TRY-AND-BUY
`
`DISTRIBUTE COMPUTER—
`
`'-
`
`I
`
`LOAD FILE MANAGEMENT
`PROGRAM FOR EXECUTION
`
`
`
`
`
`ALLOW BROWSING
`DISPLAY APPROPRIATE
`USER INTERFACE
`
`233
`
`235
`
`237
`
`2'39
`
`241
`
`243
`
`245
`
`
`
`
`
`
`
`INTERACT WITH CUSTOMER
`TO GATHER INFO AND
`DISTRIBUTE TEMPORARY KEY
`
`
`
`
`ALLOW TRIAL FOR
`TRIAL INTERVAL
`
`
`
`
`
`MONITOR AND OVERSEE ALL.
`I/O CALLS TO PREVENT
`UNAUTHORIZED USE
`
`
`
`
`
`INTERACT WITH CUSTOMER
`TO DELIVER
`
`PERMANENT KEY
`
`
`
`247
`
`FIG. 7
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 7
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 7
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 7 of 28
`
`5,737,416
`
`HWN
`
`mmm
`
`mmm
`
`mam.
`
`.M
`
`mOE
`
`as:V52,5EE:0:
`
`xun.$05
`
`@@E
`
`692...2Baum
`
`
`
`932223:6I.59339352r,5?!smith:
`
`
`
`5N
`
`mom
`
`New
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 8
`
`
`
`
`
`
`
`829.mzouszlfi$33.541..-.mwmmsmmnofimfi
`
`
`
`moot“..89353:22vi369....
`
`
`
`“.53220:23?829....0:mean
`
`
`
`
`
`mmmrejfiokmnm%
`
`
`mmmmi.¢mmI@Q@1H
`”6w:nmmmunxmenawagon.wmx3.::3Logo#EWfiULOB
`
`
`
`flzQEmEmou
`
`
`
`
`
`
`
`
`
`5.5”—EEO
`
`‘5;
`
`3.
`
`
`
`moEm29$onme
`
`..
`
`Gem.Jf\
`
`
`
`maxiwmrhmaQ8.55588-8?me9mafia:
`
`:m/
`
`096va5—£me
`
`rm::0
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 8
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 8 of 28
`
`5,737,416
`
`RN
`
`mmm
`
`
`
`
`
`mwm_-xwm
`I-
`
`smmfixommmfmmm3:;89:
`
`
`
`.45.:IT.
`
`
`
`
`
`62aEcmmeccmmmom:-88:2239:mmmfiE
`
`mmmméfl:dd529.3%;
`
`353:6Emmmgnnmn:QEm©
`
`mmmguumLmEBmao©
`
`
`
`:oSmELEEmmm.fiv<
`
`
`
`c25595:19%:
`
`1|--IJ
`
`
`
`coZmELomELmEO
`
`3.at
`
`
`
`
`
`:i.||l!llcormELomEEmsmmm-.mm;
`
`
`
`.-__.I833529:35
`
`m0:
`
`
`
`_.ammmomwmfi
`
`
`
`Hidoflo_Emu:oZEExm
`
`fil....mmmm-mmmm-m@mlmm$
`Esoooq Lanes:
`
`
`
`
`
`amED?
`
`mmm
`
`mmm
`
`mmm
`
`mmm
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 9
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 9
`
`
`
`
`
`
`US. Patent
`
`8m
`
`m
`
`m
`
`$1..
`
`
`
`
`
`7.,an:3ngmorn—5cote:58mm3
`
`r._N\moLou9NBomgomanémama”m3M.mxmoL8adBotonfiLoBmam
`
`
`
`
`5‘V\K-.s“
`
`
`
`.025mmwbUcm.39.mLme36285n+866
`
`
`
`"“9302::ma9nmm:90:35@530589:.
`
`8m)\
`
`corqtomooEm:
`
`am
`
`mam
`
`
`
` "DHLmEoEJQ-Mhmimmmm_ENTENTENEmmTEQ:m9"may
`
`
`
`
`
`Gmmmlomflmmwumum
`
`
`
`
`.lw!W._.4mmoaJ831%;me
`4.,(QOZEliill
`Em_01:1."as8am
`
`9m9gz
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 10
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 10
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 10 of 28
`
`5,737,416
`
`
`
`# Nm
`
`
`
`mam
`
`:m
`
`Em
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 11
`
`V»!V;
`
`
`
`mwm
`
`mam
`
`
`
`an:mlmmwukmmo
`
`”DH8:6an
`
`fimrmiwmwamm;
`
`.9mchmz
`
`D94CO¢U$CCOO#mfima
`
`
`
`21:4.”62:31‘\
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 11
`
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 11 of 28
`
`5,737,416
`
`9m
`
`
`3m\JW60ch_msczcoo
`m\womEUcmwe:-«.025“k
`
`.05395:55Bmfioo32E;
`
`mm\mm\§
`
`V.“
`
`9m
`
`Ngm
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 12
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 12
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 12 of 23
`
`5,737,416
`
`351
`
`353
`
`355
`
`357
`
`ID
`
`SPECIFIC
`ATTRIBUTES
`
`GENERATOR
`{RANDOM}
`
`COMPUTER
`
`FIG.
`
`12
`
`357
`
`359
`
`361
`
`
`MACiISINE
`
`
`
`
`
`
`ENCRXF'TION
`
`ENGINE
`
`
`ENCRYPTED
`
`
`
`
`
` SYSTEM
`
`
`ATTRIBUTES
`SELECTION
`
`
`
`
`NM 367
`
`1.
`2.
`3.
`‘1.
`5.
`6.
`7.
`
`HARD DISK SERIAL NO.
`SIZE OF HARD DISK
`FORMAT OF HARD DISK
`SYSTEM MODEL N0.
`HARDWARE INTERFACE CARD
`HARDWARE SERIAL NO.
`CONFIGURATION PARAMETERS
`
`FIG. 13
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 13
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 13
`
`
`
`US. Patent
`
`Apr. 7, 1993
`
`Sheet 13 of 28
`
`5,737,416
`
`IT _________7
`375 v4 SEKQR’ET
`l
`
`I
`
`E
`
`357
`
`359
`
`
`
`I MACPRNE ID
`
`I"
`
`CUSTEER NO. jun
`
`'
`
`PRODUCT
`KEY
`
`ENCRYPTION
`ENGINE
`I
`
`
`.
`PRODUCT
`KEY
`_
`
`I
`1
`
`
`
`r—'“—‘_"—'
`371a
`REAL KEY
`i»?
`E—Q
`________j
`373WCONTROL BLOCK _-—
`
`
`37% “I
`
`TRIAL
`
`INTERVAL DATA—i.
`
`.
`
`FIG.
`
`14
`
`379
`
`I PRODUCT KEY
`
`381
`
`CUSTOMER NO.
`
`CONTROL BLOCK
`
`
`
`MACHINE ID
`
`REAL
`KEY
`(DERIVED)
`
`
`
`
`
`
`
`REAL
`KEY
`
`
`
`GENERATOR
`
`‘
`
`
`374
`
`TRIAL
`INTERVAL DATA
`
`377
`
`3'59
`
`373
`
`357
`
`FIG.
`
`15
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 14
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 14
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 14 of 23
`
`5,737,416
`
`I
`
`KEY
`[DERIVED]
`
`[J.,
`
`381
`
`i
`
`387
`
`
`
`
`CLEAR
`ENCRYF’TED
`-
`
`
`VALIDATION |
`VALIDATION
`ENCRYF’TION
`
`
`
`
`ENGINE
`TEXT
`|
`DATA
`
`
`
`
`(DERIVED)
`SEGMENT
`
`
`FIG 16
`
`387
`
`389
`
`39 1
`
`
`
`COMPARATOR
`
`CLEAR
`.
`
`VALIDATION "
`
`
`
`TEXT
`(DERIVED)
`
`
` CLEAR
`
`
`VALIDATION
`TEXT
`
`(KNOWN)
`
`
` POST
`
`
`
`
`WARNING
`
`FIG.
`
`17
`
`395
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 15
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 15
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 15 0:23
`
`5,737,416
`
`397
`
`399
`
`495
`
`2375:?
`
`i
`
`——*—-————
`— PRODUCT KEY
`
`- CUSTOMER KEY
`
`
`
`
`
`
`ENCRYPTED
`KEY FILE
`
`L_—__n_#_.
`
`ENCRYPTION
`ENGREE
`
`
`
`
`—
`
`LEAR MACEHNE
`g
`ID
`~ TRIAL INTERVAL?
`DATA
`
`
`
`
`
`
`
`
`UNIQUE
`SYSTEM
`
`
`ATTRIBUTES
`
`
`491
`
`421
`
`
`
`485
`
`ENCRYPTED
`FILE
`
`
`
`487
`
`
` READ
`ENCRYPTED
`
`VALIDATION
`TEXT
`
`411
`
`
`
`FIG.
`
`19
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 16
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 16
`
`
`
`US. Patent
`
`Apr. 7, 1993
`
`Sheet 16 of 28
`
`5,737,416
`
`413 —]
`W DECRYP’ION i
`E
`|
`=
`ENGINE
`I
`
`I
`
`RCAL
`C
`KEY
`
`421
`
`kflk/
`
`{A .415
`
`|
`
`MACHINE ID
`|_______
`
`
`1 CUSTOMER KEY p441?
`
`
`419
`
`PRODUCT
`KEY
`
`
`FIG. 28
`
`423
`
`425
`
`427
`
`CLEAR
`VALIDATION
`TEXT
`
`ENCRYPTED
`VALIDATION
`TEXT
`
`DEESE’QEON
`
`(DERIVED)
`
`FIG. 21
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 17
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 17
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 17 of 23
`
`5,737,416
`
`427
`
`429
`
`431
`
`
`
`
`COMPARATOR
`
`
` CLEAR
`
`CLEAR
`VALIDATION
`VALIDATION
`
`
`
`TEXT
`TEXT
`
`
`
`
`(KNOWN)
`(DERIVED)
`
`
` NO MATCH
`
`
`
`
`DECRYF‘T
`
`
`POST
`
`SOFTWARE
`
`
`
`WARNING
`
`
`OBJECT
`
`
`
`
`435
`
`FIG. 22
`
`4.37
`
`439
`
`443
`
`
`
`ENCRYPTED
`SOFTWARE
`OBJECT
`
`
`
`
` SOFTWARE
`DECRYF’TION
`OBJECT
`ENGINE
`
`
`VALIDATED
`
`REAL KEY
`
`
`“1
`
`FIG. 23
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 18
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 18
`
`
`
`US. Patent
`
`Apr. 7, 1993
`
`Sheet 18 of 23
`
`5,737,416
`
`453
`
`455
`
`457
`
`451
`
`ENCRYPTION
`HEADER _/
`/
`
`459
`
`
`
`|
`EECIRgEIEODN
`NAME DE
`UNIQUE
`
`
`
`SEGMENT
`IDENTIFIER
`KEY FILE
`
`
`
`
`
`
`i
`'
`3
`ENCRYPTED W463
`OFFSET TO
`ENCRYF’TION
`7!
`TYPE SEGMENT 5
`SIDE FILE
`1
`FILE DATA
`
`
`1
`i
`
`
`FILE DATA
`
`4'61
`
`'.
`
`FIG. 24
`
`DIRECTORY OF-
`ENCRYF’TED FILES
`
`SIDE FILE
`
`485
`
`467
`
`459
`
`471
`
`475
`
`473
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 19
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 19
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 19 of 28
`
`5,737,416
`
`:59
`
`n5
`
`ESBEmew
`
`2m:
`
`m>oz
`
`mmOE
`
`HEEism;EEozmBEmewBEmew$5qu$52.55
`$22«Eawit.25
`
`
`
`m5:m
`
`momanmommamamIf
`
`mow
`
`mma<wx
`
`Rmazcnomxmlzog8.5«:5-flma:
`
`E8BEBEE85:55BEnoem.
`
`
`
`_8E8:amEEozmBE$56
`
`
`
`mmOEm2“.mewm?22:539.55mEm
`
`amEémS.Rm
`
`Op.{.25mNm0ND
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 20
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 20
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 20 of 28
`
`5,737,416
`
`
`
`
`
`F;
`
`fl
`
` «Eqa>¢Hmm>%oymmwnewfl¢F¢amm><4mw>oD.1111
`
`\I\_\I||-l-..
`
`
`mJEmowm
`
`mmm
`
`mmm
`
`mlmmOszowxmINmm:
`
`DmhmrmOZw
`
`min“.
`
`Dmhgmozm
`
`MAE
`
`minn—m<m4o
`
`mm”AuHi
`
`mmmdmm
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 21
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 21
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1993
`
`Sheet 21 of 23
`
`5,737,416
`
`(‘4 6‘33
`
`MONITOR I/O CALLS
`
`
`FOR EACH I/O CALL. P 605
`INTERCEF’T CALLED FILE |
`
`
`
`
`
`
`
` ;
`
`
`DENY ACCESS TO
`OPERATING SYSTEM
`
`
`
`
`
`
`
`1
`
`READ PORTION OF FILE
`WHERE DECRYPTION
`BLOCK LOCATED
`
`
`
`DERIVE KEY
`
`FILE ADDRESS
`E
`
`FETCH KEY FILE
`
`5'37
`
`539
`
`6“
`
`513
`
`615
`
`617
`
`FIG. 29A
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 22
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 22
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 22 of 23
`
`5,737,416
`
`
`
`DECRYPT
`VALUATION SEGMENT
`
`
`
`
`
`619
`
`621
`
`625
`
`fl
`
`627
`
`S29
`
`S31
`
`633
`
`FIG. 298
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 23
`
`S23
`
`
`
`
`/
`
`»'
`
`OOES
`DECRYPTION
`
`NO
`
`L A
`
`VALUATION
`(§E§¥F%¥5-
`//
`XT
`
`
`? /
`
`
`
`ALLow ACCESS TO
`CALLED EILE
`
`
`
`
`PASS TO
`OPERATING SYSTEM
`
`
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 23
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 23 of 28
`
`5,737,416
`
`Rm
`
`:wl
`
`$0sz
`
`Sow:
`
`
`
`LT.EOE:
`
`saw:
`
`®mOE
`
`Hmw
`
`Co
`
`
`
`Sam:EOZmE
`
`wHDDEHC‘
`
`OF$00
`
`Eozmz
`
`Sam:
`
`mmHuHDOE
`
`who
`
`onHmEozm
`
`zOC<szo
`
`(Em—z$0sz
`
`wHDmEHS‘
`
`meHDOZ
`
`zOCLEozw
`
`onhdmmmo
`
`mom
`
`mmo
`
`Bo
`
`\IV‘JI_-
`
`EV.
`
`zOCLEuwD
`
`zo:<mmmo
`
`Em
`
`hmOmxmWmaoz
`
`xmhzloo
`
`New
`
`Em
`
`\x\$58
`
`
`.meHUDDOE
`
` |ll1HIw:|:n_._$0$538
`
`mymmEOHmDQ
`
`$528EExm.#_
`m4mjo 4<>mm:.2_45w;9mzHIQdi
`
`
`
`4:5
`
`8m
`
`zDHHmEomD
`
`zofifimwn—O
`
`MZHIQJ‘Z
`
`zOCéUEszQ
`
`ij
`
`
`
`4¢>xmth443:.
`
`4.an
`
`m:mzHIu<z
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 24
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 24
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 24 of 23
`
`5,737,416
`
`
`
`
`
`WEE/500:5me.#
`
`
`$.32:momaomHSWm8
`:1].a'mam
`
`mmemZOu
`
`
`.zBmEH.35igammy.So
`_m589male?
`<53_wSmemEmomzom”a
`Hmomdfi99.2$meme
`
`max
`
`
`
`mom9Esznzz
`
`W-1:1:m8mamSam:>10sz
`Hmomdfi./(\J.Kmm
`15828593E8
`
`FmamEV.
`
`.m:E2058-
`
`_
`
`szoqzmid:
`
`l.|l|lll!l..l.l|l
`
`
`
`miHQDDOmmI
`
`onEEozm
`
`29qume
`
`zoEEoma
`
`292on
`
`201;$00
`
`Saw:$0sz
`
`mam
`
`4,;me3E-E939mZEoE_
`
`.i...Ii]5m:amaze;:what:i1:I!.1|
`
`
`
`
`ZESEEEBzoEEozmzoEEoma20$:8
`3:-292$anZOEémmoEozwz
`
`ESEszoo$95It:
`
`
`
`szEz
`
`[ll..mac
`
`mSeEEE5128
`
`
`
`:th:i:mamQmag?80am9E
`
`....I..n.
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 25
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 25
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 25 of 28
`
`5,737,416
`
`mmOE
`
`mam
`
`mam
`
`
`
`mHDmEHZ.mtmxma
`
`1:3DmEEozm
`
`>mv_
`
`
`
`mmmzazmwobgozH
`
`
`
`9mm:mbmomzHHE
`
`29wqumfiszH
`
`mZHIodz
`
`ZOC<zmomzH
`
`mwzowmjo
`
`"MAEDHwzHIo<z
`
`:m.mfiE.fly
`
`
`
`mHDmEHHdmkwmmma
`
`IE3mmkm‘rmozm
`
`>m§
`
`
`
`mHDmHELkzmhm>m
`
`1:3Qwhgmozm
`
`mi
`
`
`
`mzHIo<zmmDDIGZH
`
`[ELSE
`
`may/0:34n5mmmznz
`
`
`
`”5H2300mmmDJozH
`
`mhmonfiw
`
`onkdzMOmzH
`
`mmEOhmDo
`
`0mmomsom
`
`WEEDHmzH104:
`
`5w
`
`mam
`
`“mfiE>wv_
`
`
`
`mHDmthbqZmfimym
`
`153amEEsz
`
`EV.
`
`mam
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 26
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 26
`
`
`
`
`
`US. Patent
`
`Apr. 7, 1998
`
`Sheet 26 of 28
`
`5,737,4 16
`
`mg
`
`m
`
`Hm
`
`mm
`
`.2
`lfl
`
`
`
`whsmflmhhdZmFm>m
`
`1:3awhmwmozm
`
`"NEE>5menEH
`
`
`
`$595.5.mtrmuma
`
`1:3DwEEozm
`
`2m
`
`"mZEmg
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 27
`
`
`
`wHDmEHE.zmhmhm
`
`IE3DmeEozm
`
`my
`
`“5.83$53.55
`
`
`
`mzHquzFuck):
`
`mm:
`
`zOCSLmOmzH
`
`mMZOHmDQ
`
`m “
`
`w
`
`“wlzmm:mzHIodz
`
`
`
`on.Hmomf.
`
`
`
`
`
`mkhmimaywx.Eomxm
`
`
`
`
`
`mHDmEHE‘wkhmxma
`
`1:3DmEEozm
`
`mi
`
`“mdmDHmzHquz
`
`ICEWEQnS
`
`Qn_Hmozdfi
`
`”—0b.230092H:mzHIodz
`
`
`
`ammDmHmOmZH
`
`new
`
`mam
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 27
`
`
`
`
`
`US. Patent
`
`Apr.7,l998
`
`Sheet 27 of 28
`
`5,737,416
`
`xxofi
`
`fimmfi
`
`
`
`1!-Eozwz
`
`45m:
`
`vmQC
`
`ow*moo
`
`ymozmz
`
`¢Hmmz
`
`mm©_
`
`xmmmz<mh
`
`»m¥
`
`L1-
`
`zomhmrmozw
`
`onhqmme
`
`mmmfi
`
`mmofi
`
`mmofl
`
`>xozmz
`
`(Ham:
`
`mmumz<mh
`
`zO~Fm>mUzm
`
`onk<mwmo
`
`onkdmme
`
`mmmfi
`
`mmmfi
`
`>m¥
`
`Mmofi
`
`mmLalzoo
`
`Hmcfi
`
`\/\momoom
`
`man.Em
`
`mood
`
`
`
`Hzowxm>¢HDOZ
`
`xmbznoo
`
`moodmeHwow
`
`mmpznooHxOmXMI
`«Lao_4<>mmLzHAquL-
`
`bzomhqmmmo
`
`zOHkmrmomD
`
`mzHIQ¢z
`
`zOthonHszQH
`
`MJHm
`
`
`
`Jq>mezHJéHmH1
`
`(H40
`
`
`
`DHMZHIQELI
`
`mmmfi
`
`
`
`11.........11|l1|_
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 28
`
`rwxmmZOPmDo1
`
`>w¥HQDOOMna
`
`
`
`mZHIQ{Zadeo:
`
`DH
`
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 28
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Apr. '7, 1998
`
`Sheet 28 of 28
`
`5,737,416
`
`mat
`
`$538ESE-mmsmzoo
`fig.EN.m.
`
`
`
`-2.2szis:$259.8%59a11._92magmamag
`
`En
`
`
`
`Hmomxfi./r\).82
`mmszoo59::i8
`
`BEEx
`
`:1.18989(am:EOE:Eamzsfiz
`
`
`
`
`warms;mid-1M1mmmmzowmmm1zozémmo45m:£0sz1M53.....01-
`1
`zoEEomQ20E:8
`
`me
`
`
`
`éamE3E-EOE:a£390.:
`amazoé-.mzfioli.
`-1-«5m:
`Eammsmzoo595E3
`
`zogoiczwe1zoEEozm:9:E8
`BE_.zocémmoEOE:
`1-.
`
`9:12:i
`
`
`
` Q_maxed:moxsom.EhI.11
`
`
`Hr...........IL89
`
`BEBE:$5038
`
`
`
`
`
`
`
`cmw1....-Q:........1.19.magma89mmOE
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 29
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 29
`
`
`
`
`
`
`5,737,416
`
`1
`METHOD AND APPARATUS FOR ENABLING
`TRIAL PERIOD USE OF SOFTWARE
`PRODUCTS: METHOD AND APPARATUS
`FOR UTILIZING A DECRYPI‘ION STU]!
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This is a continuation of application Ser. No. 08/235933.
`filed 25 Apr. 1991. now abandoned.
`The present application is related to US. patent applica-
`tion Set. No. 08f235.035. entitled "Method and Apparams
`for Enabling Trial Period Use of Software Products: Method
`and Apparatus for Allowing a Try-and-Buy User
`Interaction.” further identified by Attorney Docket No.
`DA9-94-008; US. patent application Ser. No. 081235.032.
`now abandoned. entitled "Method and Apparatus for
`Enabling Trial Period Use of Software Products: Method
`and Apparatus for Generating a Machine-Dependent
`Identification." further identified by Attorney Docket No.
`DA9-94—009; U.S. patent application Ser. No. 08/235,031.
`now US. Pat. No. 5.593.470. entitled “Method and Apps-
`rams for Enabling Trial Period Use of Software Products:
`Method and Apparatus for Utilizing an Encryption Header"
`further identified by Attorney Docket No. DA9-94-010; and
`US. patent application Ser. No. 08(238.418. now US. Pat.
`No. 5.563.946. entitled “Method and Apparatus for Enabling
`Trial Period Use of Software Products: Method and Appa—
`rauls for Allowing the Distribution of Software Objects."
`further identified by Attorney Docket No. DA9—94—011. all
`filed Apr. 24. 1994 by the inventors hereof and assigned to
`the assignee herein. and incorporated by reference herein.
`
`BACKGROUND OF THE INVENTION
`
`1. Technical Field
`
`The present invention relates in general to techniques for
`scarring access to software objects. and in particular to
`tediniques for temporarily encrypting and restricting access
`to software objects.
`2. Description of the Related Art
`The creation and sale of software products has created
`tremendous wealth for companies having innovative
`products. and this trend will continue particularly since
`consumers are becoming ever—more computer literate as
`time goes on. Computer software is diifiwlt to market since
`the potential user has little opportunityto browse the various
`products that are available. Typically.
`the products are
`contained in boxes which are shrink-wrapped closed. and
`the potential customer has little or no opportunity to actually
`interact with or experience the sofnvate prior to purchasing.
`This causes considerable consumer dissatisfaction with
`products. since the consumer is frequently forced to serially
`purchase a plurality of software products until an accqatable
`product is discovered. This is pentaps one significant cause
`of the great amount of software piracy which occurs in our
`economy. A potential software purchaser will frequently
`“borrow" a set of diskettes from a friend or business
`associate. with the stated intention of using the software fra-
`a temporary period. Frequently. sud} temporary use extends
`for long intervals and the potential customer may never
`actually purchase a copy of the software product. and may
`instead rely upon the borrowed copy.
`Since no common cormnunication channel exists for the
`sampling of software products. such as those created in
`movie theaters by movie callers. and in television by
`commercials. software manufacturers are forced to rely
`
`10
`
`15
`
`35
`
`55
`
`65
`
`2
`
`upon printed publications and direct mail advertisements in
`order to advertise new products and solicit new mstomers.
`Unfortunately. printed publications frequently fail to provide
`an acctnate description of the product. since the user inter-
`action with the product cannot be simulated in a static
`printed format. The manufacturers of computer software
`products and the customers would both be well served if the
`customers could have access to the products prior to making
`decisions on whether or not to purchase the product. if this
`could be accomplished without introducing risk of unlawful
`utilization of the product.
`The distribution of encrypted software products is one
`mechanism a software vendor can utilize to distribute the
`product to potential users prior to purchase; however. a key
`must be distributed which allows the user access to the
`product. The vendor is then forced to rely entirely upon the
`honesty and integrity of a potential customer. Unscrupulous
`or dishonest individuals may pass keys to their friends and
`business associates to allow unatrthtn'ized access. It is also
`possible that unscrupulous individuals may post keys to
`publicly—accessible bulletin boards to allow great numbers
`of individuals to become unauthca'ized users. Typically.
`these types of breaches in security cannot be easily
`prevented. so vendors have been hesitant to distribute soft-
`ware for preview by potential customers.
`SUMMARY OF THE INVENTION
`
`It is one object of the present invention to provide a
`method and apparatus for distributing software objects from
`a producer to potential users which allows the user a
`temporary trial pu'iod without subjecting the software prod-
`uct to unnecessary risks of piracy or unauthorized utilization
`beyond the trial interval. Preferably this is accomplished by
`providing a software object on a computer-accessible
`memory media along with a file management program
`Preferably. the software object is reversibly functionally
`limited. through one or more particular encryption opera-
`tions. The computer-accessible memory media is shipped
`fromthe producer to the potential user utilizing conventioual
`mail and delivery services. Upon receipt. the potential user
`loads the file management program into a user—controlled
`data processing system and associates it with the operating
`system for the data tracessing system. Then. the computer—
`accessible memory media is read utilizing the user—
`controlled data processing system. The file management
`program is esteemed by the user-condoned data processing
`system and serves to restrict access to the software object for
`apredefinedandtempa-aryuialpariod. Duringthe tempo-
`rary trial mode of qseration. the software object is tempo-
`rarily enabled by reversing the reversible functional limita-
`tion of the sofiware object. This is preferably accomplished
`by decryption of the enu'ypted software object when the
`software object is called by the operating system of the
`user-controlled data processing system. The file manage-
`ment program preferably prevents copying operations. so
`the encrypted software project is temporarily decrypted
`when it is called by the operating system. If the potential
`user elects to purchase the software object. a permanent use
`made of operation is entered. wherein the functional limi-
`tation of the software object is pamanently reversed. allow-
`ing unlimited use to the software object by the potential user.
`This facilitates browsing operations which allow the poten-
`tial user to review the software and determine whether it
`suits his or her needs.
`
`The file management program continuously monitors the
`operating system of the user-controlled data processing
`system for operating system input calls and output calls. The
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 30
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 30
`
`
`
`5.737.416
`
`3
`file management program identifies when the opu'ating
`system of the user-controlled data processing system calls
`for a software object which is subject
`to trial-interval
`browsing. Then.
`the file management system fetches a
`temporary access key associated with the software object.
`and then examines the temporary access key to determine if
`it is valid. Next. the file management program reverses the
`functional limitation of the software object. and passes it to
`the data processing system for processing.
`It is another objective of the present invention to provide
`a method and apparatus for distributing a software object
`from a source to a user. wherein a software object
`is
`encrypted utilizing a long—lived encryption key. and directed
`from the source to the user. The encrypted software object is
`loaded onto a user—controlled data processing system having
`a particular system configuration. A numerical machine
`identification based at
`least in part upon the particular
`configuration of the user-controlled data processing system
`is then derived. Next. a temporary key is derived which is
`based at least in part: upon the numerical machine identifi-
`cation and the long-lived encryption key. A long-lived key
`generator is provided for receiving the temporary key and
`producing the long-lived encryption key. The temporary key
`allows the user to generate for a prescribed interval the
`long-lived encryption key to access the software object.
`These operations are performed principally by a file man—
`agement program which is operable in a plurality of modes.
`These modes include a set up mode of operation. a machine
`identification mode of operation. and a temporary key den-i»
`vation mode of operation. Dining the set up mode of
`operation. the file management program is loaded onto a
`user-controlled data processing system and associated with
`an opaating system for the user—controlled data [accessing
`system. During the machine identification mode of
`operation. the file management program is utilized to derive
`a numerical machine identification based upon at least on
`attribute of the user-controlled data processing system. Dur-
`ing the temporary key derivation mode of operation. a
`temporary key is derived which is based at least in part upon
`the numerical machine identification. The file management
`program also allows a trial mode of operation. wherein the
`file management program is utilized by executing it with the
`user-controlled data processing system to restrict access to
`the software object for an interval defined by the temporary
`key. during which the long-lived key generator is utilized in
`the user-controlled data processing system to provide the
`long-lived key in response to receipt of at least one input
`including the temporary key.
`It is yet another objective of the present invention to
`provide a method and apparatus in a data processing system
`for scarring access to particular files which are stored in a
`computer-accessible memory media. A file management
`program is provided as an operating system component of
`the data processing system. A plurality of files are stored in
`the compute-accessible memory media. including at least
`one encrypted file and at least one unencr'ypted file. For each
`encrypted file. a [neselected portion is recorded in computer
`memory. a decryption block is generated which includes
`information which can be utilized to decrypt the file. and the
`decryption block is incorporated into the file in lieu of the
`geselected portion which has been recorded elsewhere in
`computer memory. The file management programis utilized
`to monitor data processing opuation calls for a called file
`stored in the computer-accessible memory media. The file
`management program determines whether the called file has
`an associated decryption block. The file management pro-
`gram processes the Called file in a particular manner depen-
`
`10
`
`15
`
`35
`
`55
`
`4
`
`dent upon whether or not the called file has an associated
`decryption block. The incorporation of the decryption block
`does not change the size of the encrypted file. thus prevent-
`ing certain types of processing errors. During the trial
`interval. the encrypted file is maintained in an encrypted
`condition. and cannot be copied. If the potential user opts to
`purchase the software product. a permanent key is preceded
`which results in replacement of the preselected portion to the
`file in lieu of the decryption block. Once the decryption
`block is removed. the encrypted file may be deaypted to
`allow unrestricted use by the purchaser. Preferably. the file
`management program is utilized to intercept files as they are
`called by the operating system. and to utilize the decryption
`block to derive a name for a key file and read the called file.
`The decryption block of each encrypted file includes a
`validation segment which is decrypted by the file manage-
`ment program and compared to a selected segment for the
`called file to determine whether the key can decrypt the
`particular file. If the decrypted validation segment matches
`a known clear text validation segment. the file is then
`dynamically decrypted as it is passed fir fln'ther‘ processing.
`It is yet anodrcr objective of the present invention to
`provide a method and apparatus in a data processing system
`for scarring access to particular files which are stored in a
`computer-accessible memory media. A file management
`program is [Iofided as an operating system component of a
`data processing system. In a computer-acceSsihle memory
`media available to the data processing system. at least one
`encrypted file and one unencrypted file are stored The
`encrypted file has associated with it an unencrypted security
`stub which is at least partially composed of executable code.
`The file management program is utilized to monitor the data
`processing system calls for a called file stored in the com-
`puter accessible memory media. to determine whether the
`called file has an associated unencrypted security stub. and
`to process the called file in a particular manner dependent
`upon whether or not the called file has an associated unen-
`crypted security stub. More partiarlarly. if it is determined
`that the called file has no associated unencrypted security
`still). the called file is allowed to be processed However. if
`it is determined that the called file has an associated unen—
`
`crypted security stub. it mustbc examined before a decision
`canbemadeaboutwhetherornottoallowittobeprocessed.
`First. the unemypted security stub is examined in order to
`obtain information which allows decryption operations to be
`performed. Then. the decryption operations are performed.
`Finally, the called file is allowed to pass for further process-
`ing. Preferably. the called file is dynamically decrypted as it
`is passed to the operating system for processing. Also. the
`unencrypted security such is separated from the called file
`prior to execution of the called file. However. if the unen-
`a'ypted security stub accidentally remains attached to the
`called file. processing operations must be stopped. and a
`message must be posted in order to prevent the processor
`from becoming locked-up.
`It is still anodrcr objective of the present invention to
`provide a method and apparatus for distributing a software
`object from a source to a user. A computer-accessible
`memory mediaisdistributedfiornthe sourcetoapotential
`user. It includes a software object which is encrypted uti-
`lizing a Inedetermined encryption engine and a long-lived
`andscu-etkey.Aninterfaoeraogramisraovidedwhich
`facilitates interaction hetwoen the source and the user. The
`interface program includes machine identification module
`which generates a machine identification utilizing at least on
`predetermined attribute of the user-controlled data process-
`ing system It also ftn'ther includes a long—lived and secret
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 31
`
`FACEBOOK, INC.
`EXHIBIT 1103
`PAGE 31
`
`
`
`5 .7314 I 6
`
`5
`
`key generator which receives as an input at least a temporary
`key and produces as an output a long-lived and secret key.
`A validation module is provided which tests temporary key
`determined its validity. The source of the software object
`maintains a temporary key generator which receives as an
`input at
`least a machine identification and produces an
`output of the temporary key. An inta'face program is loaded
`onto the user-controlled data processin g system. The
`machine identification module is utilized to examine at least
`one predetermined attribute of the user-controlled data pro-
`cessing system and to generate the machine identification.
`Dining interaction between the source and the user. the
`machine identification is oomunicated over an insecure
`communication channel. At
`the source of the software
`object. the temporary key is generated utilizing the machine
`identification (and other information) as an input to the
`temporary key generator. During intta‘acticn between the
`source and the user. the temporary key is communicated.
`typically over an insecure communication channel. Next. the
`validation module is utilized to determine the validity of the
`temporary key. The long-lived and secret key generator is
`then utilized to receive the temporary key and generate the
`long-lived and secret key in order to decrypt and temporarily
`gain access to the software object. The user is also provided
`with an import module and an export module which allow
`for the utilization of portable memory media to transfer the
`encrypted software object. a key file. and a machine iden-
`tification file from one machine in a distributed data pro-
`cessing system to another machine in the distributed data
`processing system. while allowing the temporary key to
`allow temporary trial access to the software object.
`The above as well as additional objectives. features. and
`advantages of the present invention will become apparent in
`the following detailed written description.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The novel feannes believed diaracteristic of the invention
`are set forth in the appended claims. The invention itself,
`however. as