throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2011/0093701 A1
`Etchegoyen
`(43) Pub. Date:
`Apr. 21, 2011
`
`US 2011 0093701 A1
`
`(54) SOFTWARESIGNATURE TRACKING
`
`(76) Inventor:
`
`Craig S. Etchegoyen, Irvine, CA
`(US)
`
`(21) Appl. No.:
`y x- - -
`
`(22) Filed:
`
`12/903.980
`9
`Oct. 13, 2010
`
`Related U.S. Application Data
`(60) Provisional application No. 61/252,983, filed on Oct.
`19, 2009.
`
`O
`O
`Publication Classification
`
`(51) Int. Cl.
`H04L 29/06
`H04L 9/32
`G06F 2/14
`H04L 9/28
`
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`
`(52) U.S. Cl. ............................ 713/165; 713/176; 726/26
`(57)
`ABSTRACT
`A method for preventing unauthorized use of software may be
`achieved by executing computer-readable code with instruc
`tions for recording an indication of at least one selected file of
`a software application in a memory location accessible to a
`security component of the Software application, in which
`Software application the security component is configured to
`cause a hash signature of the at least one selected file to be
`generated in response to a signal arising from use of the
`Software application, hashing the at least one selected file to
`generate a first file signature, transmitting the first file signa
`ture to a secure network-accessible computer memory for
`storage and Subsequent comparison to at least one Subsequent
`file signature generated via operation of the security compo
`nent on a client device, comparing the first file signature to a
`second file signature generated by the security component in
`response to a signal arising from use of the Software applica
`tion on the client device, and disabling the Software applica
`tion on the client device, in response to determining that the
`first file signature does not match the second file signature.
`
`30
`
`SELECT FILE TO BE TRACKED
`
`302
`1.
`
`STORE FILEID FOR SECURITY - 30
`
`COMPONENT
`
`306
`GENERATE BASELNESIGNATURE 1.
`
`REGISTER BASELNESIGNATURE
`
`3O8
`1.
`
`INTEGRATE SECURITY COMPONENT - 310
`
`WITH APPLICATION PARTS
`
`312
`PUBLISHINTEGRATED APPLICATION 1.
`
`Page 1 of 14
`
`GOOGLE EXHIBIT 1011
`
`

`

`Patent Application Publication
`
`Apr. 21, 2011 Sheet 1 of 6
`
`US 2011/0093701 A1
`
`
`
`FIG. 1
`
`Page 2 of 14
`
`

`

`Patent Application Publication
`
`Apr. 21, 2011 Sheet 2 of 6
`
`US 2011/0093701 A1
`
`104
`
`102
`
`PROVIDEDEVELOPERTOOLS
`MANAGESIGNATUREDATA
`ENFORCESECURITYPOLICES
`TRACKING AND REPORTING
`
`
`
`
`
`DEVELOP APPLICATION
`CONFIGURE SECURITY TOOLS
`VERSIONMANAGEMENT
`REVIEW TRACKINGREPORTS
`
`
`
`
`
`
`
`
`
`
`
`APPLICATION ENDUSER
`RUNSSECURITY TOOLS
`AUTHORIZESUPDATES
`
`FIG. 2
`
`Page 3 of 14
`
`

`

`Patent Application Publication
`
`Apr. 21, 2011 Sheet 3 of 6
`
`US 2011/0093701 A1
`
`SELECT FILE TO BE TRACKED
`
`3O2
`1.
`
`STORE FILEID FOR SECURITY - 304
`
`COMPONENT
`
`l
`l
`
`306
`GENERATE BASELNESIGNATURE 1.
`
`REGISTER BASELNESIGNATURE 1.
`
`l
`
`INTEGRATE SECURITY COMPONENT - 310
`WITH APPLICATION PARTS
`
`312
`PUBLISHINTEGRATED APPLICATION 1.
`
`FIG. 3
`
`Page 4 of 14
`
`

`

`Patent Application Publication
`
`Apr. 21, 2011 Sheet 4 of 6
`
`US 2011/0093701 A1
`
`INSTALL OR USE APPLICATION
`
`
`
`GENERATE COMPARISON
`SIGNATURE
`
`
`
`TRANSMIT COMPARISON
`SIGNATURE AND METADATA
`
`
`
`
`
`
`
`
`
`RECEIVE RESULTS
`
`4.08
`
`
`
`410
`
`
`
`
`
`
`
`BASELNE
`SIGNATURE MATCHES
`COMPARISON
`SIGNATUREP
`
`
`
`
`
`
`
`
`
`
`
`ENABLE APPLICATION
`
`414
`
`FIG. 4
`
`412
`
`
`
`DISABLE APPLICATION
`
`Page 5 of 14
`
`

`

`Patent Application Publication
`
`Apr. 21, 2011 Sheet 5 of 6
`
`US 2011/0093701 A1
`
`PROVIDE DEVELOPMENT TOOLS
`
`CONFIGURE DATABASE
`
`RECEIVE SIGNATURE DATA
`AND METADATA
`
`PERFORM COMPARISONS
`
`
`
`
`
`TRANSMIT RESULTS
`
`
`
`
`
`BASELNE
`SIGNATURE MATCHES
`COMPARISON
`SIGNATUREP
`
`512
`
`5O2
`
`504
`
`506
`
`508
`
`51O
`
`514
`
`DISABLE APPLICATION
`
`ENABLE APPLICATION
`
`GENERATE REPORT
`
`518
`
`FIG. 5
`
`Page 6 of 14
`
`

`

`Patent Application Publication
`
`Apr. 21, 2011 Sheet 6 of 6
`
`US 2011/0093701 A1
`
`
`
`Version
`
`61O
`
`Calc-Smart
`
`612
`
`Calc-Smart
`
`614
`
`Calc-Smart
`
`FIG. 6
`
`Page 7 of 14
`
`

`

`US 2011/0093701 A1
`
`Apr. 21, 2011
`
`SOFTWARE SIGNATURE TRACKING
`
`0001. This application claims priority to U.S. Provisional
`Application No. 61/252,983 which was filed Oct. 19, 2009
`and which is fully incorporated herein by reference.
`
`BACKGROUND
`
`0002 1. Field of the Invention
`0003. The present invention relates to methods and sys
`tems for protection and tracking use of computer software.
`More specifically, the invention relates to identifying soft
`ware for protection and tracking purposes by deriving a char
`acteristic signature from the Software.
`0004 2. Description of Related Art
`0005 Various methods are known in the art for preventing
`unauthorized duplication and use of software and other copy
`righted digital content. While most such methods are at least
`partially effective in preventing piracy, many copyright soft
`ware methods can be defeated by the persistent efforts of
`skilled individuals—sometimes called “hackers' with
`expertise in computer systems and programming. Such hack
`ers are sometimes able to modify distributed copies of soft
`ware to disable its copyright protection features, so that the
`modified software can be freely copied or used without
`license restrictions, while still retaining its essential function
`ality. Software in which protection features are thusly dis
`abled is sometimes referred to as being “cracked.”
`0006. The existence of cracked software versions may
`create a risk of unauthorized or illegal distribution and use,
`which may harm legitimate Software providers. Besides caus
`ing loss of licensing revenue, cracked Software versions may
`not function as originally designed, which may harm user's
`perception of the software provider's quality control. For
`these and other reasons, it is desirable to detect and prevent
`the spread of cracked software or other digital content. Cur
`rent methods for detecting and preventing the spread of
`cracked Software include human monitoring of software dis
`tribution channels to detect and track illegally modified soft
`ware versions. However, such monitoring is relatively expen
`sive and inefficient, and may not provide Sufficient (or any)
`control over use of cracked software even after it is detected.
`It is therefore desirable to provide improved methods for
`detecting and controlling distribution and use of software or
`other digital content that has been tampered with, Such as by
`removing copyright protection features.
`
`SUMMARY
`
`0007. The present disclosure describes systems and meth
`ods for enabling Software signature tracking in conjunction
`with client machine identifiers and distributed code, by soft
`ware developers.
`0008 Prior to release of software under development,
`developers may "wrap an application to provide copyright
`protection features Such as, for example, encryption of code
`requiring a security key. Less robust security wrappers may
`add security features after Software is completed and com
`piled, using separate security tools. More robust security
`wrappers integrate security features in the program code, and
`may be compiled together with application program code. To
`ease programming burdens on Software developers, providers
`of security wrapping tools may implement security wrapping
`
`tools through an interface that is coordinated with or includes
`a component for development of Source code.
`0009. In accordance with the foregoing, an application to
`be protected may be configured with a protected security
`component. The protected Security component comprises
`code that is protected from reverse-engineering, from being
`disabled, or from being deleted using any suitable software
`protection method or combination of methods, for example,
`encryption, physical device detection, obfuscation, and trip
`wires. The protected security component may be integrated
`into the application software to be protected so that it cannot
`be deleted or disabled without impairing or disabling the
`protected application. In some embodiments, the protected
`security component is configured and integrated with the
`application Software to be protected using a Supplied security
`wrapping application. As part of the configuration process,
`the Security wrapping application may receive as input an
`identifier, Such as, for example, a file name, for one or more
`files chosen to be the signature root by the software developer.
`A file selected to be the signature root may be, for example, a
`critical executable file making up part or essentially all of the
`application to be protected.
`0010. Once the signature root file has been selected, the
`security wrapping application may process the root file using
`a predetermined secret hash to generate a file signature. Any
`Suitable hashing algorithm may be used to generate the sig
`nature Such as, for example, a cryptographic MD5, SHA-1, or
`SHA-2 hash. The file signature resulting from the hashing
`process may be securely transmitted to a network-accessible
`database. For greater security, the file signature should not be
`included in the securely wrapped software application.
`0011. The protected application may also be wrapped with
`a protected client application security component that may be
`configured to operate on client devices after distribution of
`the protected application. The client application security
`component is configured to operate as follows in response to
`execution of the protected application on a client device.
`First, the security component regenerates the file signature
`using the hashing algorithm operating on the signature root
`file. Next, the security component determines whether the file
`signature has changed since the last time that the protected
`application has run on the client device. This may be done, for
`example, by comparing the regenerated file signature with a
`stored file signature generated at an earlier time, e.g., prior to
`software release. To reduce risk of a security breach, the client
`security application may be configured to perform the com
`parison by transmitting the regenerated signature to a secure
`remote site, together with another identifier for the protected
`application and optionally, a machine fingerprint for the client
`device running the protected application. The secure remote
`site may access a secure database of signatures using the
`identifier for the application to determine one or more past
`authorized signatures for the protected application. The
`secure remote site may compare the regenerated signature
`with the one or more past authorized signatures and commu
`nicate a result, for example, “match to version 1.1.” or “no
`match, to the client security component.
`0012. The client security component may take a desig
`nated security action in response to the results from the com
`parison. For example, if the signature does not match any
`authorized software version, the client-side security applica
`tion may display an error message and disable normal opera
`tion of the protected application. For further example, the
`security application may display a message alerting the user
`
`Page 8 of 14
`
`

`

`US 2011/0093701 A1
`
`Apr. 21, 2011
`
`that a software update is recommended or required, when the
`regenerated signature matches a signature for an outdated
`Software version while not matching the signature for the
`most current Software version.
`0013 Software signature data communicated to a server
`site by numerous client-side security applications can be used
`to generate version information reports to any interested par
`ties. For example, software publishers may be alerted when
`new file signatures appear at client machines prior to version
`release, or if not matching any authorized file signature. Such
`events may be interpreted as indicating unauthorized pre
`release leaks or software tampering, respectively. Version
`tracking statistics can also be collected and reported, both for
`authorized software versions and unauthorized (e.g., cracked)
`Software versions.
`0014. A more complete understanding of Software signa
`ture tracking will be afforded to those skilled in the art, as well
`as a realization of additional advantages and objects thereof,
`by a consideration of the following detailed description. Ref
`erence will be made to the appended sheets of drawings which
`will first be described briefly.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0015 FIG. 1 is a block diagram showing an example of a
`system in which an embodiment of a software signature track
`ing method may be implemented according to the invention.
`0016 FIG. 2 is a functional block diagram showing an
`example of how various functions may be distributed in meth
`ods or systems for software signature tracking according to
`the present invention.
`0017 FIG. 3 is a process flow chart showing one embodi
`ment of a method according to the invention for Software
`signature tracking at a Software developer node.
`0018 FIG. 4 is a process flow chart showing one embodi
`ment of a method according to the invention for Software
`signature tracking at a client node.
`0019 FIG. 5 is a process flow chart showing one embodi
`ment of a method according to the invention for Software
`signature tracking at an administrative node.
`0020 FIG. 6 is a table showing a simplified example of a
`version tracking report prepared using a method according to
`the present invention.
`
`DETAILED DESCRIPTION OF THE INVENTION
`0021
`FIG. 1 shows an example of a system 100 in which
`a developer node 102 communicates with an administrative
`node 104 and numerous client nodes 106-110 using a network
`112. Each of the developer node, administrative node, and
`client nodes may comprise at least one computing device
`including a processor and memory device, a user input device
`and a display or other output device. By way of example,
`clients 106-110 may have various form factors and functions,
`such as a personal computer 106, portable computer 107.
`notebook or pen computer 108, PDA 109, or mobile phone
`110. Such clients are capable of communicating over wide
`area networks and other communications networks to share
`data, as well as storing and executing Software applications to
`provide various functions for respective end users. The meth
`ods disclosed herein may be adapted for use with any of these
`or similar clients.
`0022 Developer node 102 may similarly comprise a pro
`cessor 114 configured to execute program instructions stored
`in a memory 116 to perform processing functions in response
`
`to input from an input device 118, Such as a keyboard, touch
`screen, microphone, or the like. The processor may direct
`output to an output device 120, for example, a computer
`monitor or display Screen. The processor 114 may also be in
`communication with a storage device 122, for example, an
`HDD, holding a set of computer files 124 making up a soft
`ware application. The Software application 124 comprises at
`least one executable file 126, a security component 128, and
`any non-zero number of other or ancillary files 130, encoded
`in a computer-readable medium. The administrative node 104
`may comprise similar components. The developer node,
`administrative node, and client nodes may each comprise any
`non-Zero number of processors and computers.
`0023 FIG. 2 illustrates how functions may be distributed
`between the various nodes described above. The administra
`tive node 104 may include at least one computer operated to
`perform the functions of: (1) providing software security
`tools for developers to add the Software signature tracking
`functions described herein; (2) managing software signature
`data generated by the software signature tracking functions
`on various clients; (3) enforcing security policies set by the
`developer when Software signature tracking indicates one or
`more clients is in violation of license terms; and (4) tracking
`distribution and use of software versions by the various client
`devices using the Software application 124. These functions
`may be performed using application Software and/or firm
`ware operating on one or more computers in communication
`with client nodes 106 and developer nodes 102.
`0024 Software security tools, as used herein, includes
`specialized software components configured for integration
`in or with Software application, to perform the Software sig
`nature tracking as described herein and any other desired
`security functions, for example, key control and physical
`device tracking. In brief, physical device tracking security
`tools use measurements of physical device parameters as part
`of a security algorithm to prevent unauthorized copying of
`software to unlicensed physical devices. Physical device
`tracking is most effectively implemented probabilistically
`using numerous device parameters to determine a machine
`fingerprint for a particular device. Changes in the machine
`fingerprint that fall below a specified difference threshold do
`not trigger security restrictions in probabilistic implementa
`tions. Conversely, changes in the machine fingerprint that
`exceed the specified difference threshold do trigger security
`restrictions. In other words, minor changes in device configu
`ration are tolerated as being less likely to indicate use of
`licensed software on an entirely new machine, while more
`significant changes in a machine fingerprint are interpreted as
`indicating that the licensed software has been copied to a new
`machine. Software signature tracking may, in the alternative,
`be implemented in a security application without physical
`device tracking. Physical device tracking as referenced above
`is described more fully in U.S. Pat. No. 5.490,216 and in U.S.
`Provisional Application Ser. No. 61/218,558, both of which
`are fully incorporated herein by reference.
`0025 Security features as disclosed herein may be imple
`mented as part of a Suite of integrated or non-integrated
`security wrapping tools provided by an administrative node
`104. For example, the described features may be integrated
`into other application Software using a Supplied Suite of secu
`rity wrapping tools. However, the present technology is not
`limited by this example. In the alternative, and for further
`example, these features may be coded by hand during any
`application development process.
`
`Page 9 of 14
`
`

`

`US 2011/0093701 A1
`
`Apr. 21, 2011
`
`0026. Managing signature data may also be performed by
`the administrative node 104. Signature data includes hashed
`signature data and any associated Software application infor
`mation, descriptive text, dates, times, physical device identi
`fiers, and other data. Such data may be managed at an admin
`istrative node by updating one or more databases with
`qualified data, receiving queries and incoming data, deter
`mining whether incoming data is qualified for inclusion in its
`database, responding to queries and incoming data, and per
`forming routine database management tasks. The administra
`tive node may store and manage data for numerous different
`Software applications and versions, including both unautho
`rized and authorized versions. Each application and version
`pair may be associated with a hashed signature, textual
`description, Software application identifier, developer infor
`mation, signature date and other metadata, in a database or
`other data structure. New software signatures for new ver
`sions may be added by developers; in addition, new signa
`tures indicating unauthorized versions may be discovered by
`client-side security components and reported to the database.
`Signature data reported by client-side security components
`may be included in the database in association with metadata
`identifying the application, network address, physical device
`identifier, geographic location, and other data describing the
`client or clients on which the new signature was discovered,
`together with a time and date of first discovery. Such data may
`be useful in tracking distribution of software versions, both
`unauthorized and authorized, among a client population, as
`well as for license enforcement.
`0027. Another function of the administrative node 104
`may be to enforce security policies and/or license provisions
`defined by software publishers, in response to discovery of
`unauthorized software versions on one or more clients. Physi
`cal device identifiers, assigned client device identifiers, net
`work addresses, or user account identifiers may be used to
`prevent access by clients operating unauthorized versions to
`local or network resources requested by the unauthorized
`Software version, thereby at least partially disabling its opera
`tion. For example, an administrative node may maintain a
`database of client identification data as an electronic “black
`list” for clients operating unauthorized software versions.
`Network resource providers may filter incoming resource
`requests from clients using the database to identify any black
`listed clients, and deny access to the network resource to some
`clients. For further example, use of local resources including
`program files and data may be denied by the administrative
`node sending a signal to a client on which an unauthorized
`version is detected. A “trap door’ i.e., hidden software rou
`tine, may detect the signal and reconfigure system variables
`So as to disable the Software application.
`0028. The administrative node may also generate and dis
`tribute tracking reports based on Software signature data.
`Such reports enable software publishers and others to see
`relationships and distribution patterns for various software
`versions within a population of client devices. Reports may be
`generated using the database of signature and associated data
`maintained by the administrative node.
`0029. One or more developer nodes 102 may include at
`least one computer operated to perform the functions of: (1)
`developing Software applications to be used with the signa
`ture tracking components and methods as disclosed herein;
`(2) configuring the signature tracking tools provided from an
`administrative node to operate with particular application
`versions; (3) managing and coordinating the registration of
`
`Software signatures for each authorized version, optionally
`including registration of unreleased versions; and (4) receiv
`ing, reviewing, and responding to version tracking reports
`provided from the administrative node. Software develop
`ment may generally be performed independently of the
`administrative node and as such, is not within the Scope of the
`present disclosure. The present technology may be useful
`with a wide variety of applications developed for diverse
`computing platforms and clients.
`0030. During or after software application development,
`Software developers may, using a software development tool
`or by manual programming, specify control variables and
`initiate configuration actions for different software versions.
`For example, the developer node may operate to specify one
`or more files for each application to be hashed to generate a
`signature, and initiate a hashing function to generate a signa
`ture using the specified file or files as input. Furthermore, the
`developer node may integrate and configure client-side sig
`nature tracking components of the application, as part of an
`application development process. The client-side signature
`tracking components may be developed and Supplied via the
`administrative node, and integrated at a developer node with
`application code.
`0031. The developer node may also be used to register
`completed signature values and associated metadata with a
`tracking database. Such as by transmitting the signature val
`ues and metadata to the administrative node or other desig
`nated data storage resource. Metadata accompanying the sig
`nature values may include, for example, a textual description
`of the application and version to which the signature relates,
`date and time each signature is generated, identity of the
`developer node, and one or more addresses to receive tracking
`reports. As part of a registration process with an administra
`tive node, the developer node may also specify enforcement
`actions to be taken in response to detection of unauthorized
`Software versions, and configure network resources and/or
`the software application to enable operation of the specified
`enforcement actions.
`0032. Once signature tracking has been configured for an
`initial version of a software application, the developer node
`may similarly configure signature tracking for each Subse
`quently application version to be released, if any. The devel
`oper node may configure tracking for each Subsequent appli
`cation version using the same process as used for an initial
`release version. A signature tracking record may be created
`for each Subsequent version in the signature database. In this
`way, the signature tracking system Supports tracking of later
`versions while retaining tracking capability for earlier
`released versions of an application.
`0033. After releasing an application version and configur
`ing signature tracking for it, the developer node may receive
`tracking reports from the administrative node reporting on
`use of the signed application. The tracking reports may
`include identifying installations and use events for the
`released application, broken down by geographic region,
`date, client type, user account type, or other desired catego
`ries. The reports may also identify any installation or use
`event for new unauthorized software versions, also organized
`by category. As used herein, a “use event' for application
`software refers to any event that is defined as recordable or
`reportable for the client-side signature tracking component;
`for example, a call to load the tracked executable file into
`random access memory for execution by the client processor,
`
`Page 10 of 14
`
`

`

`US 2011/0093701 A1
`
`Apr. 21, 2011
`
`or use of the tracked executable to perform a defined task,
`Such as, for example, joining a multi-user remote game
`instance.
`0034 Client node 106 exemplifies functions that may be
`performed on various types of client nodes. Each client node
`is an end user of the tracked Software application, and makes
`use of the application in a way that triggers operation of the
`application's Software tracking component, sometime called
`a security component. Each client provides a platform for
`operation of the application's tracking component after each
`Such triggering event. In general, operation of the tracking
`component is automated. Once its operation is triggered by
`the user causing occurrence of a use event, user input is not
`required at the client for the tracking component to operate at
`the client. The client-side tracking component may operate in
`coordination with a remote application operating at an admin
`istrative node to perform a reporting and tracking function, as
`described in more detail herein. Another function of the client
`node may be to authorize updates to Software versions when
`an outdated or unauthorized version is detected at the client.
`In the alternative, updates may be performed automatically is
`permitted by the applicable license agreement.
`0035 FIG.3 shows an example of a method 300 for soft
`ware signature tracking at a Software developer node. Method
`300 may be performed by a computer operating program
`instructions, which may be configured as Software using any
`Suitable programming method and encoded on a computer
`readable medium. Certain portions of the method revolve
`responses to inputs received from any suitable user interface
`device or from a cooperating computing or electronic
`memory device, as should be apparent from the accompany
`ing description.
`0036. Initially, a user of the developer node may select302
`one or more executable files to be tracked using software
`signature tracking as disclosed herein. In general, Software
`applications may comprise numerous different files, of both
`executable and non-executable types, required to operate the
`application. Of these, a developer may select at least one file,
`preferably an executable file that is important or critical to
`operation of the application as a whole, to be tracked using
`signature registration. An interface application operating on
`the developer node may select the file to be tracked in
`response to input from a user input device.
`0037. Once selected, the developer node may record an
`identifier for the selected file 304, for example, a file name or
`memory address, in a location accessible to the application
`security component. This process is depicted in block 304. A
`Suitable location may include, for example, code making up
`the application itself. For example, the developer node may
`set a predetermined variable value to the identifier for the
`selected file, such as “tracked file=filename.bin.” This vari
`able may be compiled and encoded with other program code
`and the security component to make up the integrated appli
`cation. In the alternative, the developer node may store the
`identifier in a different location that is, or will be, accessible
`to the security component when operating on the targeted
`client devices. For example, the developer node may cause
`the identifier to be stored in a remote online database.
`0038. After development of the selected file is completed
`and the file is ready for release, the developer node may cause
`a baseline signature of the file to be generated 306, using any
`Suitable cryptographic file hashing algorithm. For example,
`the file signature may be generated using a cryptographic
`MD5, SHA-1, or SHA-2 hash. In the alternative, a different
`
`hashing algorithm may be used. The selected hashing algo
`rithm should result in a relatively compact hash output, for
`example, less than a kilobyte, or less than a few kilobytes, as
`necessary to provide for a secure and unique hash signature.
`A secure and unique hash signature is one that will not result
`in collisions, that is, the same hash output, from different
`input files, and that cannot be cracked or reverse-engineered
`using a reasonable amount of computing resources. Hashing
`techniques tend to evolve over time in response to changing
`computing environments, and the present technology may
`use any hashing technique Suitable for its intended environ
`ment.
`0039. The file signature resulting from the hashing process
`may be registered 308 with a designated administrative node,
`for example, by securely transmitting from the developer
`node to a designated network-accessible secure database. In
`embodiments that use more than one hashing method, an
`indicator of the hashing technique used to obtain the file
`signature may similarly be registered. For greater security, the
`file signature should not be included in the published software
`application, nor should any readily discernable indication of
`the hashing technique be recorded there. However, the secu
`rity component may include encrypted, obfuscated and com
`piled program code for computing a hash signature of the
`target application file or files. In the alternative, or in addition,
`this program code may be configured to require a key or code
`portion from a remote source, for example, from the admin
`istrative node, to enable client-side operation of the hashing
`algorithm.
`0040. In addition, after all application components are
`completed and ready for publishing, the developer node may
`integrate the security component with other application parts
`to provide an integrated application, as depicted in block 310.
`The security component should include those parts of the
`application that provide client-side Software signature track
`ing functions, for example, as described in connection with
`FIG. 4 below. The security component may include other
`security functions, for example, device fingerprinting or pro
`filing, or security key access control, in addition to file sig
`nature tracking. The security component may be obfuscated
`so that its presence and location of its parts cannot readily be
`detected in the integrated application. In the final step 312, the
`developer node may then publish the integrated application
`version through any suitable distribution channel for instal
`lation on a targeted population of client computing devices.
`0041
`FIG. 4 shows an example of a method 400 for soft
`ware signature tracking at a client node. The method may be
`initiated by occurrence of a triggering event 402, for example,
`installation of an application including the security compo
`nent on a client node, or a defined

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