`(12) Patent Application Publication (10) Pub. No.: US 2008/0320607 A1
`Richardson
`(43) Pub. Date: Dec. 25, 2008
`
`
`US 20080320607A1
`
`(54) SYSTEM AND METHOD FOR AUDITING
`SOFTWARE USAGE
`
`(75)
`
`Inventor:
`
`Ric B. Richardson, Irvine, CA
`(US)
`
`Correspondence Address:
`CONNOLLY BOVE LODGE & HUTZ LLP
`PO. BOX 2207
`WILMINGTON, DE 19899 (US)
`
`(73)
`
`Assignee:
`
`UNILOC USA, Irvine, CA (US)
`
`(21)
`
`Appl. No.:
`
`12/140,917
`
`(22)
`
`Filed:
`
`Jun. 17, 2008
`
`Related US. Application Data
`
`Provisional application No. 60/945,359, filed on Jun.
`21, 2007.
`
`
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`G06F 21/22
`
`(2006.01)
`
`(52) us. Cl. .......................................................... 726/33
`
`(57)
`
`ABSTRACT
`
`Systems and methods are provided for auditing and selec-
`tively restricting software usage based on, for example, soft-
`ware copy counts or execution counts. In one embodiment,
`the method comprises verifying whether the serial number for
`a software installed on a computing device corresponds to one
`of recognized serial numbers, and calculating a copy count
`(or software execution count) for the serial number.
`In
`response to the copy count exceeding a defined upper limit, a
`limited unlock key may be sent to the device. The limited
`unlock key may allow the software to be executed on the
`device for a defined time period, a defined number of execu-
`tions, and/or with at least one feature ofthe software disabled.
`
`
`
`
`Ask user for product
`serial number
`is unlock
`
`
`key present
`
`45
`
`Get hardware
`fingerprint (unique lD)
`
`Serial Number and
`
`unique ID sent to
`
`Authorization Authority
`
`
`Compare
`
`
`
`key to host
`hardware
`
`No
`
`
`lm‘on‘n user that
`Pass
`their request
`has failed
`
`48
`
`47
`
`No
`
`Request for unlock
`code received by
`Authorization Authority
`
`
`
`51
`
`62
`
`Yes
`
`63
`
`
`
`Send key
`with unlimited
`
`
`ls Serial
`
`Number
`
`
`legitimate and
`exists?
`
`
` Yes ’5
`
`copy count
`
`b tw
`1_
`3 ea"
`
`No
`65
`is
`2
`
`
`copy count
`
`
`between 15_
`29?
`
`No
`
`
`
`Yes
`
`Exit
`Application
`
`49
`
`inform user of
`successful
`authorization
`
`51
`
`50
`
`Allow
`Application
`to run
`
`
`Store
`
`unlock key
`
`
`
`
`
`
`
`use N, 64
`Send key
`.
`With 90 days
`use
`
`—\_ 66
`
`Send key f 88
`
`with 60 days
`use
`
`
`
`
`Yes
`
`Yes
`
`lS
`
`
`copy count 30
`
`
`or greater?
`
`
`APPLE EXHIBIT 1104
`
`Page 1 of 10
`
`APPLE EXHIBIT 1104
`Page 1 of 10
`
`
`
`Patent Application Publication
`
`Dec. 25, 2008 Sheet 1 of 2
`
`US 2008/0320607 A1
`
`38w.
`
`he«:2:#58
`
`8:8:
`
`wumummoxm
`
`5
`
`
`
`onEE»,“mmnumm
`
`
`
`3:053coum>zu<3328m.muoo
`
`fitmmw.
`
`53:52
`
`ucmmumEEmQ
`
`wmfixm
`
`
`
`Hozuoa5%“mm:xw<
`
`
`
`LmnEzcfitmm
`
`
`
`9359mm:“m6
`
`
`
`6.SEE;«cremmé
`
`
`
`DemgmnEDZ.mtmw
`
`€053Sago/x2Emmn:mzuwcs
`
`“m55w:ESE.
`
`
`
`#8359:05“
`
`3:8mm:
`
`
`
` -m._9Em:xm<
`
`$.65:.
`
`Em
`
`83332
`
`quEoo
`
`“we:2>9.
`
`05265;
`
`$3
`
`325:0:F9:9“.
`
`
`
`>9.xooE:
`
`85$:me
`
`99w
`
`
`
`>9.xuoE:
`
`”65w:ESE.
`
`Ewwmuozm
`
`cauméom
`
`26=<
`
`:2Bcosmozau<
`
`0—.
`
`tmum
`
`Ema/tow
`
`xooE:w.
`
`#685>3
`
`$8on.6
`
`w
`
`mm>
`
`or
`
`APPLE EXHIBIT 1104
`
`Page 2 of 10
`
`APPLE EXHIBIT 1104
`Page 2 of 10
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication
`
`Dec. 25, 2008 Sheet 2 of 2
`
`US 2008/0320607 A1
`
`1r5933
`
`m3
`
`02
`
`E28Eon
`
`-9.5238
`
`3N
`
`
`
` E38382mmmmfixm
`
`>3ncww
`
`uquzca5:5
`
`mm:
`
`
`
`>9.ucmm
`
`2%85?
`
`mm:
`
`mm>
`
`mm
`
`58mm.
`
`5952
`
`ucmEmEEmE
`
`No
`
`tmumohm.6
`
`cm“:38.38
`m.wm>
`
`>32%
`
`96a8£3,
`
`mm:
`
`mm
`
`N939“.
`
`
`
`555m:5.85
`
`
`
`“mmzumh:9:
`
`.53mm:
`
`92w
`
`>3xooE:
`
`Nm
`
`Fm
`
`xuoE:Sh“mmzumm
`
`
`
`3:33coszESiE8288$8
`
`Em585255m
`
`
`
`Etofiafi.cozmwtofia<2Emua.ways:
`
`EmaEmc66
`
`
`
`
`
`An:magmaEtEmmcz
`
`
`
` -9BEm:xw<
`
`-NEES‘
`
`33:50
`
`“mo:8Ex
`
`29522
`
`:xm
`
`ecumo=qa<
`
`.2mmmouzmBEm:ESE.
`
`cozmntocsm
`
`26=<
`
`E:95:333
`
`xooE:m.
`
`#5me3x
`
`95:8new
`
`APPLE EXHIBIT 1104
`
`Page 3 0f10
`
`
`
`.mtmm36:85.85m:xm<
`
`.6283:
`
`mvmhmatow
`
`Emuw
`
`APPLE EXHIBIT 1104
`Page 3 of 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 2008/0320607 A1
`
`Dec. 25, 2008
`
`SYSTEM AND METHOD FOR AUDITING
`SOFTWARE USAGE
`
`CROSS-REFERENCE TO RELATED
`
`APPLICATION(S)
`
`[0001] This application claims priority pursuant to 35 US.
`C. §ll9(e) to US. Provisional Application No. 60/945,359,
`filed Jun. 2 l, 2007, which application is specifically incorpo-
`rated herein, in its entirety, by reference.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`[0002]
`[0003] The present invention is directed toward systems for
`auditing and restricting software usage, and related methods.
`[0004]
`2. Description of the Related Art
`[0005] Many systems for the protection of software prod-
`ucts against piracy and abuse of copyright exist today. Popu-
`lar approaches described in US. Pat. No. 5,490,216 and US.
`Pat. No. 6,243,468 link the license ofthe user ofthe software
`to a specific hardware platform by devising a unique identifier
`from the measurable characteristics, settings and identifiers
`already present within the computing hardware and its
`attached peripherals. With the above described method, the
`protected software communicates with an authorization
`authority, usually an Internet based online server, controlled
`by the software publisher. This communication is needed to
`ensure that the licensed party does not exceed the usage rights
`of the license that has been granted by the publisher.
`[0006] The systems used in the art keep a record of how
`many devices have been authorized to run against each
`license, and when a certain predefined limit has been
`exceeded, the authorization server denies the software users
`request to run additional copies of the software on additional
`devices. For example, a publisher might allow five copies to
`be made and used of their copyrighted software for each user
`license sold. The first five requests made to the authorization
`authority may be allowed however the sixth and subsequent
`requests would be denied. Possibly the licensee would be
`encouraged to acquire an additional license.
`[0007] This system has drawn criticism from software buy-
`ers since many users expect to be able to use software they
`have purchased on as many devices as they want as long as
`they own and use the devices. Additionally software buyers
`are changing, upgrading and replacing their computing
`devices on a more regular basis as people use computers more
`and more. This in turn requires additional flexibility on the
`part of the authorization authority to compensate for reason-
`able fluctuations in the usage circumstances of users pro-
`tected under laws such as the Fair Use Act.
`
`Software buyers may be dissatisfied with current
`[0008]
`authorization systems due to their inability to determine the
`difference between legitimate users, that may reasonably
`require a large number of copies of software for use on their
`own computing devices, and illegal copies made by pirates
`and or others who willfully abuse license terms by making
`indiscriminate copies for otherusers such as sharing overpeer
`to peer software distribution networks.
`[0009] Accordingly, it would be desirable to provide the
`ability to monitor and measure the usage oftheir software and
`
`to allow/disallow the running of licensed software over the
`complete life and usage of the software product.
`
`SUMMARY OF THE INVENTION
`
`In accordance with one aspect of the embodiments
`[0010]
`described herein, there is provided a method for auditing
`software usage, comprising: (a) receiving a serial number for
`a software installed on a computing device and a device
`identifier for the device; (b) determining whether the received
`serial number corresponds to one of recognized serial num-
`bers; (c) in response to determination that the received serial
`number corresponds to one of the recognized serial numbers,
`calculating a copy count (or software execution count) for the
`received serial number; (d) in response to the copy count not
`exceeding a first upper limit of software copies (or software
`executions), sending an unlimited unlock key to the device;
`and (e) in response to the copy count being greater than the
`first preset number but not exceeding a second upper limit,
`sending a first limited unlock key to the device.
`[0011]
`In accordance with another aspect of the embodi-
`ments described herein, there is provided a method for audit-
`ing software usage, comprising: (a) sending a serial number
`for a software installed on a computing device and a device
`identifier for the device to an authorization authority, the
`authorization authority calculating a copy count for the serial
`number (or software execution count); (b) in response to the
`copy count not exceeding a first upper limit of software copies
`(or software executions), receiving from the authorization
`authority an unlimited unlock key for the software; and (c) in
`response to the copy count being greater than the first upper
`limit but not exceeding a second upper limit, receiving from
`the authorization authority a first limited unlock key for the
`software.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 illustrates a known authorization system
`[0012]
`(prior art).
`[0013]
`FIG. 2 illustrates an embodiment of an authorization
`system.
`
`DETAILED DESCRIPTION
`
`[0014] The present invention addresses the need for a sys-
`tem and method for auditing and selectively controlling/lim-
`iting software usage.
`In the exemplary embodiments
`described herein, there are presented systems and methods for
`that allow for the rental of software where software is allowed
`
`to run for a pre-specified period of time in return for the
`purchase of a time limited license. It is noted that publishers
`sometimes use a time limited free trial period in which it is
`hoped that the user will want to continue the use of the
`software after the expiry ofthe free use period thereby requir-
`ing a license purchase and subsequent connection to the
`authorization authority. It is further noted that limited time
`licenses are may be used rather than new installs of software
`to trigger a requirement for the protected software to commu-
`nicate with the authorization authority.
`[0015]
`FIG. 1 illustrates a system and method for software
`copy control that is believed to be known in the art. The
`system generally comprises client-side system (e.g., client 9)
`and an authorization system (e.g., authorization authority 3 0).
`The system of FIG. 1 implements a client-side process on
`client 9 and an authorization process on authorization author-
`ity 30. At step 10, the copy controlled software is executed on
`
`APPLE EXHIBIT 1104
`
`Page 4 of 10
`
`APPLE EXHIBIT 1104
`Page 4 of 10
`
`
`
`US 2008/0320607 A1
`
`Dec. 25, 2008
`
`a computing device, often called a client 9 in the art. The
`protected software then checks to see ifa license is granted for
`this software to run. A common way of doing this is to store
`an unlock key on the computing device which the software
`uses to verify the license. On this basis the software checks to
`see if the unlock key is present (step 11). If an unlock key is
`not present, an authorization process is started (step 16). Ifthe
`unlock key is present then the key is compared to the unique
`hardware configuration of the computing device (step 12).
`Information about the components, peripherals and settings
`of the computing device are compiled into a unique identifier
`that can be used to verify the identity of the device for pur-
`poses of identification.
`[0016]
`If the hardware identity has not changed, the soft-
`ware is allowed to continue to run (step 15) such that the user
`can use the software. If the hardware identity is not the same
`or has changed then the user is asked for permission to re-
`authorize or re-activate the software (step 13). If the user
`chooses not to re-activate the software the protected program/
`software is terminated (step 14). If the user chooses to con-
`tinue, the software starts the re-authorization process by ask-
`ing the user to input the product’s serial number (step 16). The
`serial number may be used to represent a license number that
`may be issued to the user as part of a software purchase
`transaction. Next, the unique device identifier is compiled
`from the computers unique hardware configuration (step 17).
`Then both the serial number and the unique device identifier
`are sent or communicated to the authorization authority 3 0 for
`license verification.
`
`[0017] The authorization authority 30 checks to see if a
`valid license exists for the user that is requesting authoriza-
`tion, and if the user has not exceeded the limit set for the
`number of copies allowed under the license terms. The autho-
`rization authority 30 receives the serial number and the
`unique device identifier (step 31) and then checks to see if the
`serial number exists and represents a legitimate license (step
`32). If the serial number does not exist in a database of the
`Authorization Authorities 30, then a message is communi-
`cated back to the client system 9 and displayed to the user
`(step 19) before the software is terminated 14. If the serial
`number does exist (step 32) then the count of previous suc-
`cessful authorizations is calculated and a decision/determi-
`
`nation is made by the authorization authority as to whether or
`not the copy count limit has been exceeded for this particular
`serial number (step 33).
`[0018]
`If the copy count for the serial number has been
`exceeded, as determined at step 33, then a message is sent to
`the client system and the user is informed that their request for
`authorization has failed (step 19). Subsequently the client
`software is terminated (step 14). If the copy count for the
`serial number has not been exceeded, as determined at step
`33, then an unlock key is generated (step 34) for the specific
`serial number and unique device identifier, and communi-
`cated to the client system 9. Upon receipt ofthe unlock key by
`the client system 9 the unlock key is stored (step 21) for future
`reference by the license checking system and the user is
`informed that their request for authorization of their software
`was successful (step 20). The software is then allowed to run
`(step 15).
`[0019] With reference to FIG. 2, there is shown an exem-
`plary audit system that allows copy control after the initial
`authorization of the licensed software. The copy controlled
`software is executed (step 41) on a computing device, also
`referred to as the client 40. The auditing and copy control
`
`approaches described herein are applicable to computing
`devices in general, including but not limited to, desktops,
`laptops, tablet computers, PDAs, mobile devices, mobile
`phones, vehicle onboard computers, or any network device
`capable of communication with a computer network.
`[0020] The protected software checks to see if a license is
`granted for this software to run. An exemplary way of doing
`this is to store an unlock key or code on the computing device
`which the software uses to verify the license. On this basis the
`software checks to see if the unlock key is present (step 42).
`If an unlock key is not present, an authorization process is
`started (step 43). If the unlock key is present, then the key is
`compared to the hardware configuration of the computing
`device (step 44). Information about the components, periph-
`erals and settings of the computing device are compiled into
`a unique identifier that can be used to verify the identity ofthe
`device for purposes of identification.
`[0021] The identification information or device identifier
`generally comprises information that is expected to be unique
`for the computing device. The device identifier is preferably
`generated from non-user-configurable machine parameters of
`the computing device, such as, for example, hard disk serial
`number, MAC ID, RAM manufacturing date, etc. It is noted
`that each data storage device of the computing device may
`gave a large variety of damage and unusable data sectors that
`are nearly unique to each physical unit. Accordingly, the
`process for generating a device identifier may include mea-
`suring physical, non-user-configurable characteristics of disk
`drives and solid state memory devices.
`[0022] The machine parameters may relate to the platform
`on which a web browser or another application runs, such as,
`for example, CPU number, or unique parameters associated
`with the firmware in use. The machine parameters may also
`include system configuration information, such as amount of
`memory, type of processor, software or operating system
`serial number, etc. The device identifier generated from the
`machine parameters may include the computing device’s IP
`address and/or other geo-location code to add another layer of
`specificity to the computing device’s unique identifier. In the
`alternative, or in addition, the device identifier may comprise
`a randomly generated and assigned number that is unique for
`and stored on the computing device.
`[0023]
`If the hardware identity has not changed, the soft-
`ware is allowed to continue to run (step 50) such that the user
`can use the software. If the hardware identity is not the same
`or has changed, then the user is asked for permission to
`re-authorize or re-activate the software (step 46). If the user
`chooses not to re-activate the software, the protected program
`is terminated (step 49). If the user chooses to continue, the
`software starts the re-authorization process by asking the user
`to input the product serial number (step 43). The serial num-
`ber may represent a license number that is usually issued to
`the user as part of a software purchase transaction. Next, the
`unique device identifier is compiled from the hardware con-
`figuration of the computing device (step 45). Then both the
`serial number and the unique device identifier are sent or
`communicated (step 47) to the authorization authority or
`system 60 for license verification.
`[0024] The authorization authority 60 checks to see if a
`valid license exists for the user that is requesting authoriza-
`tion, and if the user has not exceeded the limit set for the
`number of copies allowed under the license terms. The autho-
`rization authority 60 receives the serial number and the
`unique device identifier (step 61) and then checks to see ifthe
`
`APPLE EXHIBIT 1104
`
`Page 5 of 10
`
`APPLE EXHIBIT 1104
`Page 5 of 10
`
`
`
`US 2008/0320607 A1
`
`Dec. 25, 2008
`
`serial number exists and represents a legitimate license (step
`62). If the serial number does not exist in a database of the
`authorization authorities 60, as determined in step 62, then a
`message indicating such is communicated back to the client
`system 40 and displayed to the user (step 48) before the
`software is terminated (step 49).
`[0025]
`Ifthe serial number does exist, as determined at step
`62, then the count of previous successful authorizations is
`calculated or otherwise determined.
`In the illustrated
`
`example, the first fourteen copies of the software made from
`or corresponding to a single serial number may be given an
`unlock code that allows the software to run in a non-restricted
`
`or unlimited manner (e.g., indefinitely without a time limit)
`(step 63). The unlock key may be communicated to the client
`system and stored (step 52) for future use and retrieval (e.g.,
`step 42). The user may be informed of the successful autho-
`rization (step 51) and the software may be allowed to run (step
`50).
`If the count of copies for this specific serial number
`[0026]
`is fifteen or greater but less than thirty (step 65), then an
`unlock code is generated that allows the user to use the soft-
`ware for the next ninety days (step 66). In turn, this time-
`limited key may be stored (step 52), the user informed (step
`51), and the application allowed to run (step 50). If the count
`of copies for this specific serial number is thirty or greater
`(step 67), then an unlock code may be generated that allows
`the user to use the software for the next sixty days (step 68).
`In turn, this time-limited key may be stored (step 52), the user
`informed (step 51), and the application allowed to run (step
`50).
`It is noted that the software may be executed on the
`[0027]
`computing platform and the license management system may
`check to see if a legitimate and current license to use the
`software is present. The license may include a serial number
`for the licensed software and a unique ID that may be repre-
`sentative of the hardware environment or fingerprint that the
`software is allowed to run on. The unique ID may be checked
`against the current hardware configuration and if there has
`been no change to the configuration of the hardware the
`software is allowed to run. If the unique ID does not compare
`correctly to the hardware environment, the user may be asked
`for permission to contact the authorization authority for
`authorization of the software to run. The software may
`attempt to communicate with an authorization authority to
`obtain a license to run the software on this particular comput-
`ing device. Upon the successful communication with the
`authorization authority the user’s serial numbers may be
`checked for validity and then compared to a database that
`stores a running count ofthe number of copies ofthe software
`currently issued against that particular serial number.
`[0028] Under the license terms of the software a limited
`number of copies of the software may be allowed for any
`individual serial number. Traditionally, such as in the embodi-
`ment of FIG. 1, if the number of copies for any single serial
`number has not been exceeded, an unlock key may be gener-
`ated and returned to the client system and stored for use in
`future executions of the software. In FIG. 1, if the number of
`allowed copies has been exceeded, the authorization author-
`ity may disallow any additional copies to be activated and a
`message, telling the user that their attempt to activate their
`software has failed due to exceeding the copy count of their
`software. Subsequently, the software may not be allowed to
`run and may be terminated.
`
`In contrast to traditional systems, such as the system
`[0029]
`shown in FIG. 1, there is provided an audit/authorization
`system that is not limited to the allow/disallow paradigm, and
`that provides software auditors and/or licensors more ways to
`control how software may be used on computing devices. For
`example, FIG. 2 illustrates a representative approach to han-
`dling requests for additional copies of a given software to be
`run on additional computing devices.
`In one exemplary
`approach, sometimes referred to as audit mode, all requests
`for authorization of copies of software may be allowed. How-
`ever, the system may keep a log of the count of copies
`requested for an individual software serial number and may
`activate each copy with, for example, an escalating series of
`restrictions.
`
`[0030] The audit/authorization authority may deliver an
`unlock key allows the software to run indefinitely (e.g., step
`64) without requiring re-authorization for up to a first set
`number or upper limit of copies ofthe software (e.g., step 63)
`for a given serial number. For example, the delivered unlock
`key may allow the software to run indefinitely for up to the
`first fourteen copies of software made for a specific serial
`number. Copies numbering greater than the first upper limit
`and not exceeding the second upper limit (wherein the second
`upper limit is higher than the first upper limit) may retrieve a
`limited use key that enables the software to run for a first
`defined time period (e.g., step 66) before requiring re-autho-
`rization to continue usage. For example, copies numbering
`from fifteen to twenty-nine may retrieve a limited use key that
`enables the software to run for ninety calendar days before
`requiring re-authorization to continue usage. Copy numbers
`greater than the second upper limit may retrieve a limited use
`key that enables the authorized software to run for a second
`defined time period (e.g., step 68) before requiring re-autho-
`rization to continue usage. For example, copy numbers thirty
`or greater may retrieve a limited use key that enables the
`authorized software to run for sixty calendar days before
`requiring re-authorization to continue usage. It is noted that
`the numbers used herein for the upper and lower limits and
`time periods are merely exemplary, and that other numbers
`may be used as appropriate for a given application.
`[0031] The system of FIG. 2 allows software publishers of
`software products to initially monitor the copying practices of
`software buyers and software sharers, legal and illegal. Then
`with the use of the time-limited unlock codes they may
`optionally limit and/or police the number of copies that they
`will allow to be used for each individual serial number.
`
`[0032] The publisher of the software may optionally
`change the authorization authority from audit mode 60 of
`FIG. 2 back to limiting mode 30 of FIG. 1 if the decision is to
`limit the number of copies made for an individual serial
`number, such as, for example, when it is clear that license
`terms are being abused, ignored or broken. Accordingly, in
`one embodiment, the audit/authorization system is adapted to
`switch between the auditing mode 60 and the limiting mode
`30.
`
`In the alternative, or in addition, the authorization
`[0033]
`authority may not include a time limited authorization unlock
`code such that all unlocks are perpetual. However such an
`audit mode may be turned off at any time to allow future
`attempts to activate copies for a specific serial number to be
`disallowed.
`
`In the alternative, or in addition, the authorization
`[0034]
`authority may use a running count of the number of execu-
`tions of the software to keep track of a limited use authoriza-
`
`APPLE EXHIBIT 1104
`
`Page 6 of 10
`
`APPLE EXHIBIT 1104
`Page 6 of 10
`
`
`
`US 2008/0320607 A1
`
`Dec. 25, 2008
`
`tion. For example instead of allowing the fifteenth to twenty
`ninth copies of the software to run for ninety days before
`requiring re-authorization, the publisher could require re-
`authorization after a defined number of executions (e.g., one
`hundred) ofthe software. Of course, a combination ofthe two
`methods may also be used.
`[0035]
`In the alternative, or in addition, certain features of
`the software may be enabled/disabled based on the copy
`count and/or number of executions for a given serial number.
`For example, the unlock key may allow the computing device
`to run a full version of the software with all features enabled
`
`when the copy count for the software serial number does not
`exceed a first upper limit. The unlock key may allow the
`computing device to run a version of the software with one or
`more features disabled when the copy count exceeds the first
`upper limit. In the alternative, or in addition, increasing num-
`bers of software features may be disabled with increasing
`copy counts, thereby escalating the restrictions on the soft-
`ware with increasing copy counts for a given software serial
`number. It is noted that any known suitable approach to lim-
`iting the use of software may be implemented so that the full
`featured use of the software is avoided, including but not
`limited to feature disablement.
`
`In accordance with one aspect of the embodiments
`[0036]
`described herein,
`there is provided a method (typically
`executed on the authorization authority side) for auditing
`software usage, comprising: (a) receiving a serial number for
`a software installed on a computing device and a device
`identifier for the device; (b) determining whether the received
`serial number corresponds to one of recognized serial num-
`bers; (c) in response to determination that the received serial
`number corresponds to one of the recognized serial numbers,
`calculating a copy count for the received serial number; (d) in
`response to the copy count not exceeding a first upper limit of
`software copies, sending an unlimited unlock key to the
`device; and (e) in response to the copy count being greater
`than the first preset number but not exceeding a second upper
`limit, sending a first limited unlock key to the device. The
`method may further comprise receiving an unlock code
`request for the software from the device.
`[0037]
`In one embodiment, the step of sending the first
`limited unlock key may comprise sending a first unlock code
`that allows the software to run on the device for a first time
`
`period before requiring re-authorization to continue use ofthe
`software on the device. The method may further comprise, in
`response to the copy count being greater than the second
`upper limit but not exceeding a third upper limit, sending a
`second limited unlock key to the device. The step of sending
`the second limited unlock key may comprise sending a sec-
`ond unlock code that allows the software to run on the device
`
`for a second time period before requiring re-authorization to
`continue use of the software on the device. The second time
`
`period may be shorter, and therefore more restrictive, than the
`first time period.
`[0038]
`In another embodiment, the step of sending the first
`limited unlock key may comprise sending a first unlock code
`that allows the software to run on the device for a defined
`
`number of executions before requiring re-authorization to
`continue use of the software on the device. In yet another
`embodiment, the step of sending the first limited unlock key
`may comprise sending a first unlock code that allows the
`software to run on the device with at least one feature of the
`software disabled.
`
`[0039] The step of sending the unlimited unlock key may
`comprise sending an unlock code that allows use of the soft-
`ware on the device without time restrictions. The step of
`verifying whether the received serial number corresponds to
`one of the recognized serial numbers may comprise:
`(a)
`accessing a database storing the recognized serial numbers;
`and (b) determining whether the received serial number
`matches one of the recognized serial numbers stored on the
`database.
`
`In still another embodiment, the method may further
`[0040]
`comprise setting at least one of the first upper limit and the
`second upper limit based at least in part on the copy count for
`the received serial number.
`
`In accordance with another aspect of the embodi-
`[0041]
`ments described herein, there is provided a method (typically
`executed on the client side) for auditing software usage, com-
`prising: (a) sending a serial number for a software installed on
`a computing device and a device identifier for the device to an
`authorization authority, the authorization authority calculat-
`ing a copy count for the serial number; (b) in response to the
`copy count not exceeding a first upper limit of software cop-
`ies, receiving from the authorization authority an unlimited
`unlock key for the software; and (c) in response to the copy
`count being greater than the first upper limit but not exceeding
`a second upper limit, receiving from the authorization author-
`ity a first limited unlock key for the software. The method
`may further comprise sending an unlock code request for the
`software to the authorization authority.
`[0042]
`In one embodiment, the step of receiving the first
`limited unlock key may comprise receiving a first unlock
`code that allows the software to run on the device for a first
`
`time period before requiring re-authorization to continue use
`ofthe software on the device. In another embodiment, the step
`ofreceiving the first limited unlock key may comprise receiv-
`ing a first unlock code that allows the software to run on the
`device for a defined number of executions before requiring
`re-authorization to continue use ofthe software on the device.
`
`In yet another embodiment, the step of receiving the first
`limited unlock key may comprise receiving a first unlock
`code that allows the software to run on the device with at least
`one feature of the software disabled.
`
`[0043] The method may further comprise, in response to
`the copy count being greater than the second upper limit but
`not exceeding a third upper limit, receiving from the autho-
`rization authority a second limited unlock key to the device.
`The step of receiving the second limited unlock key may
`comprise receiving a second unlock code that allows the
`software to run on the device for a second time period before
`requiring re-authorization to continue use of the software on
`the device. The second time period may be shorter, and there-
`fore more restrictive, than the first time period.
`[0044] The step of receiving the unlimited unlock key may
`comprise receiving an unlock code that allows use of the
`software on the device without time restrictions. The method
`
`preferably comprises storing one of the unlimited unlock key
`and the first limited unlock key in memory.
`[0045]
`In accordance with another aspect of the embodi-
`ments described herein, there is provided a authorization
`authority system or server for auditing software usage. The
`system may comprise: a receiver module adapted to receive a
`serial number for a software installed on a computing device
`and a device identifier for the device; a transmitter module; a
`processor module operatively coupled to the receiver and
`
`APPLE EXHIBIT 1104
`
`Page