US20020026634A1 - Secure data downloading, recovery and upgrading - Google Patents
Secure data downloading, recovery and upgrading Download PDFInfo
- Publication number
- US20020026634A1 US20020026634A1 US09/080,577 US8057798A US2002026634A1 US 20020026634 A1 US20020026634 A1 US 20020026634A1 US 8057798 A US8057798 A US 8057798A US 2002026634 A1 US2002026634 A1 US 2002026634A1
- Authority
- US
- United States
- Prior art keywords
- code
- update
- data
- client device
- replacement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Definitions
- the invention relates to secure downloading, recovery and upgrading of data.
- Recent developments in networking include client devices, which interact with a network to contact one or more server devices, and that are disposed for displaying information from those server devices. Division of responsibility among the clients and server allows each client device to use relatively fewer resources (such as processing power or memory) and therefore to be relatively inexpensive. Client devices can be manufactured en masse at relatively smaller cost and distributed to a large number of end users.
- client devices are subject to various failures. These can include hardware failures, which can damage software used to control the client device, and software failures, which can cause the client device to operate erroneously. It would therefore be advantageous to provide a method and system for recovery from memory errors in the client device. Moreover, there may be substantial upgrades to software designed for the client device developed after the client device has been manufactured and delivered to the end user. It would therefore be advantageous to provide a method and system for delivering these software upgrades to the client device.
- the client device is relatively inexpensive and within the complete physical control of the end user, it is unknown whether the software available at the client device can be trusted.
- the client device itself cannot necessarily trust the data it receives from the server device it is coupled to if established over an insecure network, such as the internet.
- the client device has relatively limited resources for communicating with the server device; in particular, the client device has relatively limited resources for rapidly receiving downloaded information from server devices.
- a client device contacts a server device using a reliable software module.
- the reliable software module obtains trustworthy information with which to perform software and data integrity tests, and with which to locate data for recovery or upgrade of the client device.
- the invention provides an improved method and system for secure downloading, recovery, and upgrading.
- a client device receives information from a server device using reliable software modules stored in permanent memory in the client device.
- the reliable software modules perform software and data integrity tests, and locate and retrieve data for recovery or upgrade of the client device.
- the client device confirms the trustworthiness of the received information device by comparing digital signatures or digests for the information it receives with known digital certificates in the reliable software module or received from known trusted server devices.
- FIG. 1 shows a block diagram of a system for secure data downloading and upgrading.
- FIG. 2 shows a process flow diagram for booting a client device and determining whether there is a need for downloading and upgrading.
- FIG. 3 shows a process flow diagram of a method for secure data downloading and upgrading.
- FIG. 1 shows a block diagram of a preferred embodiment of a system for secure data downloading and upgrading.
- a client device 10 has a processor 12 connected to a permanent memory 14 and writeable memory 16 by a data bus 18 . Both permanent memory 14 and writeable memory 16 are non-volatile or other persistent memory. Permanent memory 14 is a non-writeable memory, such as a ROM, while the writeable memory 16 is a persistent memory, such as a NVRAM, flash memory or disk. Client device 10 also incorporates other memory, such as RAM into which code is loaded for execution.
- boot code 22 Stored within permanent memory 14 is boot code 22 , which controls the initialization boot process for client device 10 after a reset or power cycle.
- Boot code 22 is further subdivided into host boot code 30 and Navio boot code 32 .
- the host boot code 30 is a vendor provided, client-resident code that if present initializes the system after power-on or a reset and then transfers control to the Navio boot code 32 .
- the Navio boot code 32 is the code that is responsible the selection and execution of either the downloader code 24 or the application code 26 .
- the downloader code 24 is stored within permanent memory 14 and is a secure set of code which controls the connection of client device 10 via I/O port 40 to a communication channel 50 .
- the downloader code 24 is the only copy of code that can be trusted after random or intentional corruption as it resides in permanent read-only storage.
- I/O port 40 is connected to data bus 18 , and permits data such as updater code 70 from a remote server 60 to be downloaded under the control of downloader 24 via communication channel 50 to writeable memory 16 (RAM).
- Updater code 70 is code that is stored on the remote server 60 and downloaded to the client device 10 to upgrade or recover the application code 26 .
- the application code 26 is stored in writeable memory 16 and is the application seen by the user (i.e. the browser along with the operating system).
- boot code 22 In order to minimize the size of permanent memory 14 and to maximize flexibility in upgrading application code 26 for client device 10 , it is desirable for boot code 22 to be as streamlined as possible. Additionally, downloader 24 can be compressed in permanent memory 14 to save memory. Later it can be decompressed before being loaded into RAM for execution.
- Communication channel 50 comprises a telephone line, ISDN line, cable, fiberoptic, or any other data transfer line connected to a modem or any other network interface device connected to, or contained within, I/O port 40 .
- Such a connection links client device 10 through a network, either a private intranet or the public Internet to any of a plurality of remote servers 60 .
- Client device 10 includes a forced update feature 20 which when depressed reboots the client device 10 .
- This forced update feature 20 does not need to be a physical switch. It may for example, consist of a combination of switches which when toggled in a specific sequence achieve a reboot and force a download. Alternatively, depressing a reset switch for a predetermined extended period of time, such as for five seconds, could activate the forced update feature 20 .
- FIG. 2 shows a process flow diagram for booting client device 10 and determining whether there is a need for downloading and upgrading application code 26 .
- boot code 22 which is further subdivided into its host boot code and Navio boot code portions, takes control of client device 10 .
- the host boot code 30 a vendor provided, client-resident code initializes the system after power-on or a reset and then transfers control to the Navio boot code 32 .
- the decision to run the application code 26 or the downloader 24 is made at step 110 .
- the Navio boot code performs an integrity check on the application code 26 using a verification method such as an MD5 digest because at this part of the process only corruption is being checked as opposed to authenticity.
- the writeable memory 16 stores two binary values as indicators of system integrity.
- the first is RunDownloader which if set causes the downloader 24 to run an upgrade of the application code 26 .
- the second is TrustData which if not set creates the assumption that the data in writeable memory 16 is corrupt despite any appearance to the contrary. This is a validity check to determine whether the writeable memory 16 which contains information like the local ISP phone number and client-id/password as well as application code 26 may be trusted.
- a reset flag 28 is set in the writeable memory and the Navio boot code 32 forces a system reboot and update at step 120 .
- the user may also press the forced update feature and force a system reboot and update at step 120 .
- the downloader 24 initializes and connects to the remote server 60 and passes the information regarding client-id/password and synchronizes with the remote server 60 at which point the client device 10 may be given a new ISP phone number to call.
- step 130 it is determined whether the application code 26 is intact. If application code 26 is intact, control is transferred to application code 26 at 140 and client device 10 proceeds with its normal function. This is the usual result of the boot sequence. If application code 26 is corrupt, control of client device 10 is transferred to the update downloading sequence 150 .
- FIG. 2 illustrates the update downloading sequence of the updater 70 from remote server 60 at step 150 .
- FIG. 3 illustrates the updating and downloading sequence in greater detail.
- the loading process continues at step 220 with the client device 10 establishing contact with the remote server 60 .
- the client device 10 transmits at step 222 identification information regarding itself, e.g., version number, memory size, and requests transmission of an updater code package, a digitally-signed manifest which in some embodiments may contain additional program code for executing the update.
- a chunk of updater code 70 will be downloaded to the client device from the remote server 60 .
- client device 10 receives the transmitted updater code 70 and checks it at step 226 to determine whether it is valid.
- downloader 24 compares a digital signature or digest contained within the updater package with known signature data saved in downloader code 24 . Because downloader 24 is stored in permanent memory 14 , it is secure and trustworthy, and hence a match between the digital signature of the updater code package and the stored digital signature validates the identity of the updater. This allows client device 10 to update application code 26 irrespective of the relative security of either communication channel 50 or remote server 60 .
- Next client device 10 reviews the results of the comparison at step 230 . If the signature does not match, the process returns to step 220 , preferably with connection to a different remote server 60 , and a new updater is received. If the signatures match, the update process begins with an initialization process at step 232 .
- the updater contains a table or manifest, which logically divides application code 26 into smaller code segments, representing portions of or complete logical segments of application code 26 .
- the updater When a valid updater is received the updater is given control of client device 10 . It sets the “in update” flag, and loads a new update of code segment by segment. The updater checks each segment of application code 26 for corruption by determining whether the contents of a specific code segment match a hash or digest.
- this is implemented by including a manifest or table of secure hashes such as SHA1 in the updater 70 .
- Each hash in the table should correspond to an image of the most recent segment of application code 26 .
- Each hash in the manifest is accompanied by a location identifier, such as an internet URL, for a corresponding replacement code segment. This allows different replacement code segments to be stored in separate locations, such as different remote servers 60 . This method allows individual components of application code 26 to be loaded separately.
- a segment of code from application 26 is verified at step 240 using the hash checklist. As shown at step 242 , if that block of code is valid, client device 10 checks at step 249 to see if there are remaining code segments to be verified. If there are more code segments, the process repeats starting at step 240 for the next code segment. If there aren't any more code segments to check, the application is loaded at step 250 and the update is complete.
- a substitute segment of code is downloaded from the corresponding URL specified by the updater.
- the downloaded code segment may be encrypted to provide additional security or compressed for transmission to speed download time.
- the new code segment is checked against its respective hash at step 246 and if it matches at step 247 it is then written to writeable memory 16 at step 248 to replace the corrupted segment of application code 26 .
- the updater 70 downloads a file that is designated in the table.
- a check is made to see if there are any more code segments of application code 26 to be checked. After all of the code segments of application code 26 have been checked and validated at steps 242 through 247 and any necessary replacement code segments written to memory at step 248 , the application code 26 is completely loaded and ready to execute at step 250 .
- each file downloaded by the updater 70 is compressed to minimize bandwidth and speed transmission through communication channel 50 .
- each segment of code downloaded preferably has a default size of no greater than 64 kilobytes to correspond with the size of a sector of flash memory. Additionally, the segments of code to be downloaded should be in ascending order of memory address, non-overlapping and they should not cross a flash sector boundary.
- a given segment of code is downloaded and decompressed, it is authenticated and validated by using the same hash that was used to check the segment of application code 26 which it is replacing and which originally failed the hash check. If the hash matches that in the table of updater 70 then the downloaded segment of code is authentic and is allowed to overvrite its respective segment of application code 26 in writeable memory 16 .
- This is a means of linking security from the digital signature of the updater to the downloaded segments of code because the authentication happens in the process of downloading. Thus, the digital signature is on the downloaded datastream as well as the updater image in memory.
- the table of secure hashes has a dual purpose. Because the table of secure hashes can check the digest of segments of application code from the updater for validity without checking the whole code segment, a means of compression is achieved in addition to a validity check. For example, a twenty-byte long SHA1 hash can be used to verify a large code segment like a 128-kilobyte segment by skipping the segments that are valid. If only a few segments of code need to be replaced, the savings in transmission time and bandwidth will be substantial.
- This time savings is important not only to the user of client device 10 , but also to the remote server 60 when a large number of client devices 10 need to be updated, such as when a new version of a segment of application code 26 is released or when the number of client devices in service is very large.
- the present invention ensures that a client device 10 can restore a corrupted application code 26 using minimal program code stored in permanent memory 14 . Because the validation process occurs each time client device 10 is initialized, the integrity of application code 26 can be maintained on an ongoing basis. Further, because of the use of digitally signed hashes in the updater, secure transmission of only those segments of application code 26 which need to be updated can be achieved using unsecured remote servers 60 and communication channels 50 .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- Provisional Application Ser. No. 60/046,749, filed May 12, 1997, in the name of inventors Robert Shaw, Christopher Moeller, Clifford Mercer, Mark Law, and Luis Valente, titled “Operating System and Memory Management,” attorney docket number NAV-006P.
- Each of these applications is hereby incorporated by reference as if fully set forth herein.
- 1. Field of the Invention
- The invention relates to secure downloading, recovery and upgrading of data.
- 2. Description of Related Art
- Recent developments in networking include client devices, which interact with a network to contact one or more server devices, and that are disposed for displaying information from those server devices. Division of responsibility among the clients and server allows each client device to use relatively fewer resources (such as processing power or memory) and therefore to be relatively inexpensive. Client devices can be manufactured en masse at relatively smaller cost and distributed to a large number of end users.
- One problem in the known art is that client devices are subject to various failures. These can include hardware failures, which can damage software used to control the client device, and software failures, which can cause the client device to operate erroneously. It would therefore be advantageous to provide a method and system for recovery from memory errors in the client device. Moreover, there may be substantial upgrades to software designed for the client device developed after the client device has been manufactured and delivered to the end user. It would therefore be advantageous to provide a method and system for delivering these software upgrades to the client device.
- This problem in the known art is exacerbated by several factors. First, as the client device is relatively inexpensive and within the complete physical control of the end user, it is unknown whether the software available at the client device can be trusted. Second, the client device itself cannot necessarily trust the data it receives from the server device it is coupled to if established over an insecure network, such as the internet. Third, the client device has relatively limited resources for communicating with the server device; in particular, the client device has relatively limited resources for rapidly receiving downloaded information from server devices.
- Accordingly, it would be desirable to provide an improved method and system for secure downloading, recovery, and upgrading. This advantage is achieved in an embodiment of the invention in which a client device contacts a server device using a reliable software module. The reliable software module obtains trustworthy information with which to perform software and data integrity tests, and with which to locate data for recovery or upgrade of the client device.
- The invention provides an improved method and system for secure downloading, recovery, and upgrading. A client device receives information from a server device using reliable software modules stored in permanent memory in the client device. The reliable software modules perform software and data integrity tests, and locate and retrieve data for recovery or upgrade of the client device. The client device confirms the trustworthiness of the received information device by comparing digital signatures or digests for the information it receives with known digital certificates in the reliable software module or received from known trusted server devices.
- FIG. 1 shows a block diagram of a system for secure data downloading and upgrading.
- FIG. 2 shows a process flow diagram for booting a client device and determining whether there is a need for downloading and upgrading.
- FIG. 3 shows a process flow diagram of a method for secure data downloading and upgrading.
- In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. However, those skilled in the art would recognize, after perusal of this application, that embodiments of the invention may be implemented using one or more general purpose processors (or special purpose processors adapted to the particular process steps and data structures) operating under program control, or other special purpose circuits, and that implementation of the preferred process steps and data structures described herein using such equipment would not require undue experimentation or further invention.
- System Elements
- FIG. 1 shows a block diagram of a preferred embodiment of a system for secure data downloading and upgrading.
- A
client device 10 has aprocessor 12 connected to apermanent memory 14 andwriteable memory 16 by adata bus 18. Bothpermanent memory 14 andwriteable memory 16 are non-volatile or other persistent memory.Permanent memory 14 is a non-writeable memory, such as a ROM, while thewriteable memory 16 is a persistent memory, such as a NVRAM, flash memory or disk.Client device 10 also incorporates other memory, such as RAM into which code is loaded for execution. - Stored within
permanent memory 14 isboot code 22, which controls the initialization boot process forclient device 10 after a reset or power cycle.Boot code 22 is further subdivided intohost boot code 30 and Navio boot code 32. Thehost boot code 30 is a vendor provided, client-resident code that if present initializes the system after power-on or a reset and then transfers control to the Navio boot code 32. The Navio boot code 32 is the code that is responsible the selection and execution of either thedownloader code 24 or theapplication code 26. - The
downloader code 24 is stored withinpermanent memory 14 and is a secure set of code which controls the connection ofclient device 10 via I/O port 40 to acommunication channel 50. Thedownloader code 24 is the only copy of code that can be trusted after random or intentional corruption as it resides in permanent read-only storage. I/O port 40 is connected todata bus 18, and permits data such asupdater code 70 from aremote server 60 to be downloaded under the control ofdownloader 24 viacommunication channel 50 to writeable memory 16 (RAM).Updater code 70 is code that is stored on theremote server 60 and downloaded to theclient device 10 to upgrade or recover theapplication code 26. Theapplication code 26 is stored inwriteable memory 16 and is the application seen by the user (i.e. the browser along with the operating system). In order to minimize the size ofpermanent memory 14 and to maximize flexibility in upgradingapplication code 26 forclient device 10, it is desirable forboot code 22 to be as streamlined as possible. Additionally,downloader 24 can be compressed inpermanent memory 14 to save memory. Later it can be decompressed before being loaded into RAM for execution. -
Communication channel 50 comprises a telephone line, ISDN line, cable, fiberoptic, or any other data transfer line connected to a modem or any other network interface device connected to, or contained within, I/O port 40. Such a connectionlinks client device 10 through a network, either a private intranet or the public Internet to any of a plurality ofremote servers 60. -
Client device 10 includes a forcedupdate feature 20 which when depressed reboots theclient device 10. This forcedupdate feature 20 does not need to be a physical switch. It may for example, consist of a combination of switches which when toggled in a specific sequence achieve a reboot and force a download. Alternatively, depressing a reset switch for a predetermined extended period of time, such as for five seconds, could activate the forcedupdate feature 20. - Method of Operation
- FIG. 2 shows a process flow diagram for
booting client device 10 and determining whether there is a need for downloading and upgradingapplication code 26. - Initially,
boot code 22, which is further subdivided into its host boot code and Navio boot code portions, takes control ofclient device 10. Thehost boot code 30, a vendor provided, client-resident code initializes the system after power-on or a reset and then transfers control to the Navio boot code 32. After control has been passed to the Navio boot code 32 the decision to run theapplication code 26 or thedownloader 24 is made atstep 110. The Navio boot code performs an integrity check on theapplication code 26 using a verification method such as an MD5 digest because at this part of the process only corruption is being checked as opposed to authenticity. - The
writeable memory 16 stores two binary values as indicators of system integrity. The first is RunDownloader which if set causes thedownloader 24 to run an upgrade of theapplication code 26. The second is TrustData which if not set creates the assumption that the data inwriteable memory 16 is corrupt despite any appearance to the contrary. This is a validity check to determine whether thewriteable memory 16 which contains information like the local ISP phone number and client-id/password as well asapplication code 26 may be trusted. - When either of these two indicators have these assigned values, a
reset flag 28 is set in the writeable memory and the Navio boot code 32 forces a system reboot and update atstep 120. Similarly, the user may also press the forced update feature and force a system reboot and update atstep 120. In either case once the reboot and update has commenced, thedownloader 24 initializes and connects to theremote server 60 and passes the information regarding client-id/password and synchronizes with theremote server 60 at which point theclient device 10 may be given a new ISP phone number to call. - At
step 130 it is determined whether theapplication code 26 is intact. Ifapplication code 26 is intact, control is transferred toapplication code 26 at 140 andclient device 10 proceeds with its normal function. This is the usual result of the boot sequence. Ifapplication code 26 is corrupt, control ofclient device 10 is transferred to theupdate downloading sequence 150. - Retrieving the Updater
- FIG. 2 illustrates the update downloading sequence of the
updater 70 fromremote server 60 atstep 150. FIG. 3 illustrates the updating and downloading sequence in greater detail. Starting atstep 210 where the decision has been made to load the downloader, the loading process continues atstep 220 with theclient device 10 establishing contact with theremote server 60. Theclient device 10 transmits atstep 222 identification information regarding itself, e.g., version number, memory size, and requests transmission of an updater code package, a digitally-signed manifest which in some embodiments may contain additional program code for executing the update. - When the correct updater is located at
step 224, a chunk ofupdater code 70 will be downloaded to the client device from theremote server 60. Next,client device 10 receives the transmittedupdater code 70 and checks it atstep 226 to determine whether it is valid. In the illustrated embodiment,downloader 24 compares a digital signature or digest contained within the updater package with known signature data saved indownloader code 24. Becausedownloader 24 is stored inpermanent memory 14, it is secure and trustworthy, and hence a match between the digital signature of the updater code package and the stored digital signature validates the identity of the updater. This allowsclient device 10 to updateapplication code 26 irrespective of the relative security of eithercommunication channel 50 orremote server 60. -
Next client device 10 reviews the results of the comparison atstep 230. If the signature does not match, the process returns to step 220, preferably with connection to a differentremote server 60, and a new updater is received. If the signatures match, the update process begins with an initialization process atstep 232. The updater contains a table or manifest, which logically dividesapplication code 26 into smaller code segments, representing portions of or complete logical segments ofapplication code 26. - Retrieving the Application Code
- When a valid updater is received the updater is given control of
client device 10. It sets the “in update” flag, and loads a new update of code segment by segment. The updater checks each segment ofapplication code 26 for corruption by determining whether the contents of a specific code segment match a hash or digest. - In a preferred embodiment this is implemented by including a manifest or table of secure hashes such as SHA1 in the
updater 70. Each hash in the table should correspond to an image of the most recent segment ofapplication code 26. Each hash in the manifest is accompanied by a location identifier, such as an internet URL, for a corresponding replacement code segment. This allows different replacement code segments to be stored in separate locations, such as differentremote servers 60. This method allows individual components ofapplication code 26 to be loaded separately. - After the initialization process at
step 232, a segment of code fromapplication 26 is verified atstep 240 using the hash checklist. As shown atstep 242, if that block of code is valid,client device 10 checks atstep 249 to see if there are remaining code segments to be verified. If there are more code segments, the process repeats starting atstep 240 for the next code segment. If there aren't any more code segments to check, the application is loaded atstep 250 and the update is complete. - If the block of code is invalid at
step 242, a substitute segment of code is downloaded from the corresponding URL specified by the updater. The downloaded code segment may be encrypted to provide additional security or compressed for transmission to speed download time. After the code segment is downloaded atstep 244 and any required decryption or decompression is performed, the new code segment is checked against its respective hash atstep 246 and if it matches atstep 247 it is then written towriteable memory 16 atstep 248 to replace the corrupted segment ofapplication code 26. - Launching the Application Code
- When a hash does not correspond to an image of the most recent chunk of
application code 26, theupdater 70 downloads a file that is designated in the table. At step 246 a check is made to see if there are any more code segments ofapplication code 26 to be checked. After all of the code segments ofapplication code 26 have been checked and validated atsteps 242 through 247 and any necessary replacement code segments written to memory atstep 248, theapplication code 26 is completely loaded and ready to execute atstep 250. - In a preferred embodiment each file downloaded by the
updater 70 is compressed to minimize bandwidth and speed transmission throughcommunication channel 50. In addition, each segment of code downloaded preferably has a default size of no greater than 64 kilobytes to correspond with the size of a sector of flash memory. Additionally, the segments of code to be downloaded should be in ascending order of memory address, non-overlapping and they should not cross a flash sector boundary. - Once a given segment of code is downloaded and decompressed, it is authenticated and validated by using the same hash that was used to check the segment of
application code 26 which it is replacing and which originally failed the hash check. If the hash matches that in the table ofupdater 70 then the downloaded segment of code is authentic and is allowed to overvrite its respective segment ofapplication code 26 inwriteable memory 16. This is a means of linking security from the digital signature of the updater to the downloaded segments of code because the authentication happens in the process of downloading. Thus, the digital signature is on the downloaded datastream as well as the updater image in memory. - In a preferred embodiment the table of secure hashes, SHA1 or other equivalents thereof, has a dual purpose. Because the table of secure hashes can check the digest of segments of application code from the updater for validity without checking the whole code segment, a means of compression is achieved in addition to a validity check. For example, a twenty-byte long SHA1 hash can be used to verify a large code segment like a 128-kilobyte segment by skipping the segments that are valid. If only a few segments of code need to be replaced, the savings in transmission time and bandwidth will be substantial. This time savings is important not only to the user of
client device 10, but also to theremote server 60 when a large number ofclient devices 10 need to be updated, such as when a new version of a segment ofapplication code 26 is released or when the number of client devices in service is very large. - Using the process described above, the present invention ensures that a
client device 10 can restore a corruptedapplication code 26 using minimal program code stored inpermanent memory 14. Because the validation process occurs eachtime client device 10 is initialized, the integrity ofapplication code 26 can be maintained on an ongoing basis. Further, because of the use of digitally signed hashes in the updater, secure transmission of only those segments ofapplication code 26 which need to be updated can be achieved using unsecuredremote servers 60 andcommunication channels 50. - Alternative Embodiments
- Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.
Claims (13)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/080,577 US6381741B1 (en) | 1998-05-18 | 1998-05-18 | Secure data downloading, recovery and upgrading |
US09/728,700 US6341373B1 (en) | 1996-12-20 | 2000-12-01 | Secure data downloading, recovery and upgrading |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/080,577 US6381741B1 (en) | 1998-05-18 | 1998-05-18 | Secure data downloading, recovery and upgrading |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/770,238 Continuation-In-Part US5991799A (en) | 1996-12-20 | 1996-12-20 | Information retrieval system using an internet multiplexer to focus user selection |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/728,700 Continuation US6341373B1 (en) | 1996-12-20 | 2000-12-01 | Secure data downloading, recovery and upgrading |
Publications (2)
Publication Number | Publication Date |
---|---|
US20020026634A1 true US20020026634A1 (en) | 2002-02-28 |
US6381741B1 US6381741B1 (en) | 2002-04-30 |
Family
ID=22158276
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/080,577 Expired - Lifetime US6381741B1 (en) | 1996-12-20 | 1998-05-18 | Secure data downloading, recovery and upgrading |
US09/728,700 Expired - Lifetime US6341373B1 (en) | 1996-12-20 | 2000-12-01 | Secure data downloading, recovery and upgrading |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/728,700 Expired - Lifetime US6341373B1 (en) | 1996-12-20 | 2000-12-01 | Secure data downloading, recovery and upgrading |
Country Status (1)
Country | Link |
---|---|
US (2) | US6381741B1 (en) |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020002703A1 (en) * | 2000-06-30 | 2002-01-03 | International Business Machines Corporation | Device and method for updating code |
US20020099975A1 (en) * | 2001-01-22 | 2002-07-25 | Whiteside Derek J. | Network-based software recovery for computing devices |
US20030005083A1 (en) * | 2001-06-08 | 2003-01-02 | Eric Owhadi | Method of and computer network arrangement for restoring an impaired software image |
US20030005426A1 (en) * | 2001-06-08 | 2003-01-02 | Scholtens Dale A. | Methods and apparatus for upgrading software without affecting system service |
US20030022665A1 (en) * | 2001-07-26 | 2003-01-30 | Gowri Rajaram | System and method for organizing field upgradable wireless communication device software |
US20030033525A1 (en) * | 2001-08-10 | 2003-02-13 | Gowri Rajaram | System and method for improved security in handset reprovisioning and reprogramming |
US20030033599A1 (en) * | 2001-07-26 | 2003-02-13 | Gowri Rajaram | System and method for executing wireless communications device dynamic instruction sets |
US20030051090A1 (en) * | 2001-09-10 | 2003-03-13 | Bonnett William B. | Apparatus and method for secure program upgrade |
US20030064717A1 (en) * | 2001-07-26 | 2003-04-03 | Gowri Rajaram | System and method for the management of wireless communications device system software downloads in the field |
US20030069007A1 (en) * | 2001-07-26 | 2003-04-10 | Gowri Rajaram | System and method for updating persistent data in a wireless communications device |
US20030093707A1 (en) * | 2000-02-26 | 2003-05-15 | Paek Dong Hyun | Internet-based service system and method for remotely restoring damaged and files |
US20030093719A1 (en) * | 2001-11-13 | 2003-05-15 | Gunawan Ali-Santosa | Method and apparatus for detecting corrupt software code |
US20030110479A1 (en) * | 2001-08-10 | 2003-06-12 | Gowri Rajaram | System and method for bi-directional communication and execution of dynamic instruction sets |
US20030110480A1 (en) * | 2001-08-10 | 2003-06-12 | Gowri Rajaram | System and method for peer-to-peer handset communication |
US20040214560A1 (en) * | 2001-07-26 | 2004-10-28 | Kyocera Wireless Corp. | Modular software components for wireless communication devices |
US20040214561A1 (en) * | 2001-07-26 | 2004-10-28 | Kyocera Wireless Corp. | Dynamic interface software for wireless communication devices |
US20040214559A1 (en) * | 2001-07-26 | 2004-10-28 | Kyocera Wireless Corp. | System and method for interchangeable modular hardware components for wireless communication devices |
US6829635B1 (en) * | 1998-07-01 | 2004-12-07 | Brent Townshend | System and method of automatically generating the criteria to identify bulk electronic mail |
US20050064847A1 (en) * | 2001-07-26 | 2005-03-24 | Bilhan Kirbas | System and method for over the air area code update |
US20050114362A1 (en) * | 2003-11-26 | 2005-05-26 | Microsoft Corporation | System and method for providing computer support tools |
US20060074812A1 (en) * | 2004-10-06 | 2006-04-06 | Mattern James M | Code pack for revenue protection |
US7027806B2 (en) | 2001-07-26 | 2006-04-11 | Kyocera Wireless, Corp. | System and method for field downloading a wireless communications device software code section |
GB2419004A (en) * | 2004-10-05 | 2006-04-12 | Neopost Ind Sa | Verifying a software download for a postage meter |
US7043664B1 (en) * | 2002-10-31 | 2006-05-09 | Microsoft Corporation | Firmware recovery |
US7117371B1 (en) | 2000-06-28 | 2006-10-03 | Microsoft Corporation | Shared names |
US7124408B1 (en) * | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
US20060232816A1 (en) * | 2005-04-14 | 2006-10-19 | Canon Kabushiki Kaisha | Image processing apparatus, method for updating control program, and program |
US7159214B2 (en) | 2001-07-26 | 2007-01-02 | Kyocera Wireless Corp. | System and method for compacting field upgradeable wireless communication device software code sections |
US7200775B1 (en) * | 2002-10-04 | 2007-04-03 | American Megatrends, Inc. | Method and data structures for use in providing on-demand computer diagnostics |
GB2430774A (en) * | 2005-10-03 | 2007-04-04 | Nec Technologies | Software updating with version comparison steps |
US20070100985A1 (en) * | 2005-11-03 | 2007-05-03 | Michael Kirkwood | System and method for information sharing |
US7231549B1 (en) | 2002-10-04 | 2007-06-12 | American Megatrends, Inc. | Method and apparatus for providing on-demand computer diagnostics |
US20070261047A1 (en) * | 2006-05-03 | 2007-11-08 | Microsoft Corporation | Differentiated Installable Packages |
US7334166B1 (en) | 2002-10-04 | 2008-02-19 | American Megatrends, Inc. | Method, system, and apparatus for providing and utilizing server-side entry points for use in diagnostics on-demand services |
US20080091902A1 (en) * | 2006-10-12 | 2008-04-17 | Jung-Pil Lee | Memory card and method of updating memory card program |
CN100403283C (en) * | 2003-05-30 | 2008-07-16 | 欧特斯科技股份有限公司 | Data updating device and method |
WO2009115029A1 (en) * | 2008-03-18 | 2009-09-24 | 华为技术有限公司 | Method, system and apparatus for data remediation |
US20130339734A1 (en) * | 2011-08-12 | 2013-12-19 | Power-One, Inc. | Secure Method and System for Remote Field Upgrade of Power Device Firmware |
US20140137264A1 (en) * | 2012-11-09 | 2014-05-15 | Nokia Corporation | Method and apparatus for privacy-oriented code optimization |
US20140156742A1 (en) * | 2011-08-18 | 2014-06-05 | Tencent Technology (Shenzhen) Company Limited | System and method for updating software, server and client thereof |
US9076101B1 (en) * | 2000-09-29 | 2015-07-07 | Marvell International Technology Ltd. | Printer formatter in a cable |
US9225692B2 (en) | 2011-08-12 | 2015-12-29 | Abb Technology Ag | Method and system for protected transmission of files |
US9288064B2 (en) | 1999-06-11 | 2016-03-15 | Tvworks, Llc | Trust information delivery scheme for certificate validation |
US20170177321A1 (en) * | 2015-12-17 | 2017-06-22 | Time Warner Cable Enterprises Llc | Technique for efficiently upgrading software in a video content network |
US20200097658A1 (en) * | 2018-09-24 | 2020-03-26 | Dell Products L. P. | Extend root of trust to include firmware of individual components of a device |
CN111064723A (en) * | 2019-12-12 | 2020-04-24 | 杭州涂鸦信息技术有限公司 | Over-the-air upgrading method and system based on backup system |
US11281778B2 (en) * | 2016-09-13 | 2022-03-22 | Samsung Electronics Co., Ltd. | Device and method for verifying application |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957260B1 (en) | 1996-06-03 | 2005-10-18 | Microsoft Corporation | Method of improving access to services provided by a plurality of remote service providers |
US6473099B1 (en) * | 1996-06-03 | 2002-10-29 | Webtv Networks, Inc. | Automatically upgrading software over a satellite link |
KR100253229B1 (en) * | 1997-04-14 | 2000-04-15 | 구자홍 | Digital broadcasting receiver and down loading method thereof |
DE19743758C1 (en) * | 1997-10-02 | 1998-12-03 | Siemens Ag | Responsive system for digital signal processing for control and monitoring of nuclear power station |
US6854000B2 (en) * | 1997-12-27 | 2005-02-08 | Canon Kabushiki Kaisha | Image forming apparatus and control method for the same |
US6805634B1 (en) * | 1998-10-14 | 2004-10-19 | Igt | Method for downloading data to gaming devices |
US7174457B1 (en) * | 1999-03-10 | 2007-02-06 | Microsoft Corporation | System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party |
US7194092B1 (en) * | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US7139915B2 (en) * | 1998-10-26 | 2006-11-21 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
JP2000259417A (en) * | 1999-03-12 | 2000-09-22 | Sony Corp | Device and method for data processing and program providing medium |
US7409546B2 (en) * | 1999-10-20 | 2008-08-05 | Tivo Inc. | Cryptographically signed filesystem |
US20040030768A1 (en) * | 1999-05-25 | 2004-02-12 | Suban Krishnamoorthy | Unified system and method for downloading code to heterogeneous devices in distributed storage area networks |
US7062765B1 (en) * | 1999-05-25 | 2006-06-13 | Realnetworks, Inc. | System and method for updating information via a network |
US6546547B1 (en) * | 1999-09-22 | 2003-04-08 | Cisco Technology, Inc. | Method and system for an automated net booting tool |
US6742025B2 (en) * | 1999-09-30 | 2004-05-25 | International Business Machines Corp. | System and method for server managed modification of operating system data stored within a network device |
DE69939116D1 (en) * | 1999-10-15 | 2008-08-28 | Alcatel Lucent | Method for installing software components on a user terminal, related devices and related software modules |
US6757824B1 (en) * | 1999-12-10 | 2004-06-29 | Microsoft Corporation | Client-side boot domains and boot rules |
US7155711B2 (en) * | 1999-12-10 | 2006-12-26 | Sedna Patent Services, Llc | Method and apparatus providing remote reprogramming of programmable logic devices using embedded JTAG physical layer and protocol |
JP2001243706A (en) * | 2000-02-28 | 2001-09-07 | Ricoh Co Ltd | Optical recording medium |
KR100847596B1 (en) * | 2000-03-02 | 2008-07-21 | 소니 가부시끼 가이샤 | Network system, gateway, data communication method and program providing medium |
US6751794B1 (en) | 2000-05-25 | 2004-06-15 | Everdream Corporation | Intelligent patch checker |
US6907597B1 (en) * | 2000-10-13 | 2005-06-14 | Ati International Srl | Method and apparatus for constructing an executable program in memory |
US8087014B1 (en) * | 2000-10-26 | 2011-12-27 | Qualcomm Incorporated | Method and apparatus for configuration management for a computing device |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US6950863B1 (en) * | 2000-12-21 | 2005-09-27 | Cisco Technology, Inc. | Method and system for verifying a software upgrade for a communication device |
US20020083362A1 (en) * | 2000-12-22 | 2002-06-27 | Objectsoft Corp. | System and method for providing unattended personality acquisition, self-recovery and remote maintenance to internet-based end-user devices |
US7069334B2 (en) * | 2000-12-27 | 2006-06-27 | Intel Corporation | Image restoration and reconfiguration support for crashed devices |
US7293115B2 (en) * | 2001-02-28 | 2007-11-06 | Sony Corporation | Internet-aware agent for automatically updating applications without executing the application |
US20020138757A1 (en) * | 2001-03-23 | 2002-09-26 | Motorola, Inc. | Method for securely distributing software components on a computer network |
US6804798B2 (en) * | 2001-03-30 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | System and method for setting new values for configuration parameters on a device |
EP1374040A1 (en) * | 2001-03-30 | 2004-01-02 | Nokia Corporation | Downloading application software to a mobile terminal |
US20020147941A1 (en) * | 2001-04-05 | 2002-10-10 | Robert Gentile | Network based BIOS recovery method |
US7055036B2 (en) * | 2001-04-06 | 2006-05-30 | Mcafee, Inc. | System and method to verify trusted status of peer in a peer-to-peer network environment |
US7603703B2 (en) * | 2001-04-12 | 2009-10-13 | International Business Machines Corporation | Method and system for controlled distribution of application code and content data within a computer network |
US7350207B2 (en) * | 2001-05-25 | 2008-03-25 | Tellabs Operations, Inc. | Rule-based system and method for downloading computer software over a network |
JP2002366469A (en) * | 2001-06-06 | 2002-12-20 | Hitachi Ltd | Network device, network system, and software update method for network device |
US7065347B1 (en) * | 2001-06-27 | 2006-06-20 | Peoplenet Communications Corporation | System and method for over the air programming |
EP1442388A2 (en) * | 2001-10-03 | 2004-08-04 | Shield One, LLC | Remotely controlled failsafe boot mechanism and remote manager for a network device |
KR20030032257A (en) * | 2001-10-17 | 2003-04-26 | 삼성전자주식회사 | Method for upgrading program and apparatus therefor |
US7243230B2 (en) * | 2001-11-16 | 2007-07-10 | Microsoft Corporation | Transferring application secrets in a trusted operating system environment |
US7159240B2 (en) | 2001-11-16 | 2007-01-02 | Microsoft Corporation | Operating system upgrades in a trusted operating system environment |
US7137004B2 (en) * | 2001-11-16 | 2006-11-14 | Microsoft Corporation | Manifest-based trusted agent management in a trusted operating system environment |
EP1313335A1 (en) * | 2001-11-19 | 2003-05-21 | Siemens Aktiengesellschaft | Method, apparatus and program for determining and checking a permission to set up a connection |
US20030126276A1 (en) * | 2002-01-02 | 2003-07-03 | Kime Gregory C. | Automated content integrity validation for streaming data |
US20030149970A1 (en) * | 2002-01-23 | 2003-08-07 | Vedvyas Shanbhogue | Portable software for rolling upgrades |
US20040073846A1 (en) * | 2002-01-31 | 2004-04-15 | Yoshiaki Nakanishi | Memory device, terminal apparatus, and data repair system |
KR100774857B1 (en) * | 2002-04-01 | 2007-11-08 | 가부시키가이샤 엔티티 도코모 | Software update method of communication terminal, communication terminal and software update system |
US7487365B2 (en) | 2002-04-17 | 2009-02-03 | Microsoft Corporation | Saving and retrieving data based on symmetric key encryption |
US7890771B2 (en) * | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US20060090093A1 (en) * | 2002-04-22 | 2006-04-27 | Goedde Kirby R | Trouble shooting and updating electronic apparatus |
US20030204730A1 (en) * | 2002-04-29 | 2003-10-30 | Barmettler James W. | Secure transmission and installation of an application |
US20050149923A1 (en) * | 2002-05-28 | 2005-07-07 | Sheng Lee | System update protocol |
US7558958B2 (en) * | 2002-06-13 | 2009-07-07 | Microsoft Corporation | System and method for securely booting from a network |
US20040003390A1 (en) * | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
US7240200B2 (en) * | 2002-09-26 | 2007-07-03 | International Business Machines Corporation | System and method for guaranteeing software integrity via combined hardware and software authentication |
US7093246B2 (en) * | 2002-12-20 | 2006-08-15 | International Business Machines Corporation | Automated updates of software and systems |
US20040158474A1 (en) * | 2003-02-06 | 2004-08-12 | Karschnia Robert J. | Service facility for providing remote diagnostic and maintenance services to a process plant |
US6986041B2 (en) | 2003-03-06 | 2006-01-10 | International Business Machines Corporation | System and method for remote code integrity in distributed systems |
US7644288B2 (en) * | 2003-03-19 | 2010-01-05 | Ricoh Company, Ltd. | Image forming apparauts that checks authenticity of an update program |
US20040221021A1 (en) * | 2003-04-30 | 2004-11-04 | Domer Jason A. | High performance managed runtime environment application manager equipped to manage natively targeted applications |
CN1297891C (en) * | 2003-06-16 | 2007-01-31 | 纬创资通股份有限公司 | Cross-type firmware upgrade method and system |
US7478433B2 (en) * | 2003-06-19 | 2009-01-13 | Panasonic Corporation | Program execution system having authentication function |
US7933950B1 (en) | 2003-10-02 | 2011-04-26 | Tivo Inc. | Secure control of features of a digital device |
EP1536606A1 (en) | 2003-11-27 | 2005-06-01 | Nagracard S.A. | Method for authenticating applications |
JP2005228123A (en) * | 2004-02-13 | 2005-08-25 | Sharp Corp | Communication method, communication system and information reception-side device used in the communication system |
US8332943B2 (en) * | 2004-02-17 | 2012-12-11 | Microsoft Corporation | Tiered object-related trust decisions |
CN100378660C (en) * | 2004-02-26 | 2008-04-02 | 明基电通股份有限公司 | Method for repairing program by detour and electronic device using the same |
US7451441B2 (en) * | 2004-03-19 | 2008-11-11 | Intermec Ip Corp. | Autonomous adaptive software loading for a data collection device |
US20050229171A1 (en) * | 2004-04-07 | 2005-10-13 | Henry Steven G | Distributing upgrades |
US20060010485A1 (en) * | 2004-07-12 | 2006-01-12 | Jim Gorman | Network security method |
US20060106930A1 (en) * | 2004-11-17 | 2006-05-18 | Shaffer James D | Method of querying for device location in a heterogeneous network |
ATE365938T1 (en) * | 2005-01-07 | 2007-07-15 | Ericsson Telefon Ab L M | UPDATING STORAGE CONTENT IN A DATA PROCESSING SYSTEM |
JP2006252488A (en) * | 2005-03-14 | 2006-09-21 | Fujitsu Ltd | Software management system, software management method, software management program, and recording medium |
US20070055743A1 (en) * | 2005-09-02 | 2007-03-08 | Pirtle Ross M | Remote control media player |
US8127288B2 (en) * | 2006-01-17 | 2012-02-28 | International Business Machines Corporation | Installing and updating interpreted programming language applications using a designated virtual machine |
US9679602B2 (en) | 2006-06-14 | 2017-06-13 | Seagate Technology Llc | Disc drive circuitry swap |
US8171469B2 (en) | 2006-08-15 | 2012-05-01 | Hewlett-Packard Development Company, L.P. | Package compatibility |
US8615801B2 (en) * | 2006-08-31 | 2013-12-24 | Microsoft Corporation | Software authorization utilizing software reputation |
CN101226569A (en) * | 2007-01-19 | 2008-07-23 | 国际商业机器公司 | Method and device for checking code module in virtual machine |
US8095517B2 (en) * | 2007-02-08 | 2012-01-10 | Blue Coat Systems, Inc. | Method and system for policy-based protection of application data |
US8612773B2 (en) * | 2007-05-03 | 2013-12-17 | International Business Machines Corporation | Method and system for software installation |
US8024723B2 (en) * | 2007-05-18 | 2011-09-20 | Samsung Electronics Co., Ltd. | System and method for peer-to-peer datacasting in a broadcasting network |
US8819655B1 (en) * | 2007-09-17 | 2014-08-26 | Symantec Corporation | Systems and methods for computer program update protection |
US9305590B2 (en) | 2007-10-16 | 2016-04-05 | Seagate Technology Llc | Prevent data storage device circuitry swap |
US8135745B2 (en) | 2008-03-04 | 2012-03-13 | Core Wireless Licensing S.A.R.L. | Storage management |
DE102009059939A1 (en) * | 2009-12-22 | 2011-06-30 | Giesecke & Devrient GmbH, 81677 | Method for compressing identifiers |
CN102262554B (en) * | 2011-08-05 | 2014-08-20 | 深圳市九洲电器有限公司 | Method and device for saving storage space during upgrading software, and set top box |
US9069966B2 (en) * | 2011-10-11 | 2015-06-30 | International Business Machines Corporation | Code updates in processing systems |
US9808730B2 (en) * | 2011-10-31 | 2017-11-07 | Traxxas Lp | Multi-function electronic device-enabled transmit controller |
US9183393B2 (en) * | 2012-01-12 | 2015-11-10 | Facebook, Inc. | Multiple system images for over-the-air updates |
US11126418B2 (en) * | 2012-10-11 | 2021-09-21 | Mcafee, Llc | Efficient shared image deployment |
CN104346187B (en) * | 2013-08-07 | 2017-10-17 | 西安诺瓦电子科技有限公司 | The method for upgrading software of display screen video control card |
EP2840492A1 (en) * | 2013-08-23 | 2015-02-25 | British Telecommunications public limited company | Method and apparatus for modifying a computer program in a trusted manner |
CN104469409A (en) * | 2014-11-28 | 2015-03-25 | 四川长虹电器股份有限公司 | Automatic testing method for smart television software differential upgrading |
US10318271B2 (en) * | 2015-01-05 | 2019-06-11 | Irdeto Canada Corporation | Updating software components in a program |
US10262124B2 (en) | 2017-01-18 | 2019-04-16 | Bank Of America Corporation | Autonomous software containers |
US10467842B2 (en) | 2017-03-17 | 2019-11-05 | Bank Of America Corporation | Portable item transfer container |
US10061933B1 (en) | 2018-01-09 | 2018-08-28 | Booz Allen Hamilton Inc. | System and method for controlling the power states of a mobile computing device |
CN113608970A (en) * | 2021-09-08 | 2021-11-05 | 北京百度网讯科技有限公司 | Core board, server, failure recovery method, device and storage medium |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4035835A (en) | 1974-09-11 | 1977-07-12 | Robert Bosch G.M.B.H. | System for automatic correction of the color balance between the primary signals of a color signal source |
US4888801A (en) | 1988-05-02 | 1989-12-19 | Motorola, Inc. | Hierarchical key management system |
US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
US5495610A (en) * | 1989-11-30 | 1996-02-27 | Seer Technologies, Inc. | Software distribution system to build and distribute a software release |
US5224163A (en) | 1990-09-28 | 1993-06-29 | Digital Equipment Corporation | Method for delegating authorization from one entity to another through the use of session encryption keys |
DE4106306A1 (en) | 1991-02-28 | 1992-09-03 | Broadcast Television Syst | METHOD FOR COLOR CORRECTION OF A VIDEO SIGNAL |
US6005574A (en) | 1991-07-05 | 1999-12-21 | International Business Machines Corporation | Data processing system including method and apparatus for performing graphics clipping operations |
GB2266037B (en) | 1992-03-13 | 1996-02-14 | Quantel Ltd | An electronic video processing system |
US5444861A (en) * | 1992-06-01 | 1995-08-22 | United Technologies Corporation | System for downloading software |
US5600364A (en) | 1992-12-09 | 1997-02-04 | Discovery Communications, Inc. | Network controller for cable television delivery systems |
US5373561A (en) | 1992-12-21 | 1994-12-13 | Bell Communications Research, Inc. | Method of extending the validity of a cryptographic certificate |
US5497422A (en) | 1993-09-30 | 1996-03-05 | Apple Computer, Inc. | Message protection mechanism and graphical user interface therefor |
US5481294A (en) | 1993-10-27 | 1996-01-02 | A. C. Nielsen Company | Audience measurement system utilizing ancillary codes and passive signatures |
WO1995012173A2 (en) | 1993-10-28 | 1995-05-04 | Teltech Resource Network Corporation | Database search summary with user determined characteristics |
US5787172A (en) | 1994-02-24 | 1998-07-28 | The Merdan Group, Inc. | Apparatus and method for establishing a cryptographic link between elements of a system |
US5453779A (en) | 1994-03-15 | 1995-09-26 | International Business Machines Corporation | Scheduling policies with grouping for providing VCR control functions in a video server |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5553123A (en) | 1994-06-09 | 1996-09-03 | Gemstar Development Corporation | Method for downloading setup data via telephone to an appliance controller |
US5541638A (en) | 1994-06-28 | 1996-07-30 | At&T Corp. | User programmable entertainment method and apparatus |
US5999711A (en) | 1994-07-18 | 1999-12-07 | Microsoft Corporation | Method and system for providing certificates holding authentication and authorization information for users/machines |
US5586304A (en) * | 1994-09-08 | 1996-12-17 | Compaq Computer Corporation | Automatic computer upgrading |
US5758257A (en) | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
JP3946275B2 (en) * | 1995-01-10 | 2007-07-18 | 富士通株式会社 | Remote installation system and method |
US5852665A (en) | 1995-04-13 | 1998-12-22 | Fortress U & T Ltd. | Internationally regulated system for one to one cryptographic communications with national sovereignty without key escrow |
US5764992A (en) * | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
JP3355596B2 (en) | 1995-06-06 | 2002-12-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Graphics device and display method |
US5877741A (en) | 1995-06-07 | 1999-03-02 | Seiko Epson Corporation | System and method for implementing an overlay pathway |
US5768389A (en) | 1995-06-21 | 1998-06-16 | Nippon Telegraph And Telephone Corporation | Method and system for generation and management of secret key of public key cryptosystem |
US5867166A (en) | 1995-08-04 | 1999-02-02 | Microsoft Corporation | Method and system for generating images using Gsprites |
US5796841A (en) | 1995-08-21 | 1998-08-18 | Pitney Bowes Inc. | Secure user certification for electronic commerce employing value metering system |
US6049628A (en) | 1995-09-01 | 2000-04-11 | Cerulean Colorization Llc | Polygon reshaping in picture colorization |
US5708845A (en) | 1995-09-29 | 1998-01-13 | Wistendahl; Douglass A. | System for mapping hot spots in media content for interactive digital media program |
US5680458A (en) | 1995-11-14 | 1997-10-21 | Microsoft Corporation | Root key compromise recovery |
US5774540A (en) | 1995-11-15 | 1998-06-30 | Lucent Technologies Inc. | Hierarchical menu screen interface for displaying and accessing telephone terminal features |
US5745574A (en) | 1995-12-15 | 1998-04-28 | Entegrity Solutions Corporation | Security infrastructure for electronic transactions |
US5761306A (en) | 1996-02-22 | 1998-06-02 | Visa International Service Association | Key replacement in a public key cryptosystem |
US5936606A (en) | 1996-04-15 | 1999-08-10 | Winbond Electronics Corp. | On-screen edit/display controller |
US6049671A (en) | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
US5850232A (en) | 1996-04-25 | 1998-12-15 | Microsoft Corporation | Method and system for flipping images in a window using overlays |
US5974461A (en) * | 1996-06-03 | 1999-10-26 | Webtv Networks, Inc. | Method for automatically regenerating information at a client system in the event of power or communication disruption between the client system and the server |
US5727129A (en) | 1996-06-04 | 1998-03-10 | International Business Machines Corporation | Network system for profiling and actively facilitating user activities |
US5752042A (en) * | 1996-06-07 | 1998-05-12 | International Business Machines Corporation | Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer |
US5790796A (en) | 1996-06-14 | 1998-08-04 | Symantec Corporation | Polymorphic package files to update software components |
US6006034A (en) | 1996-09-05 | 1999-12-21 | Open Software Associates, Ltd. | Systems and methods for automatic application version upgrading and maintenance |
US5977960A (en) | 1996-09-10 | 1999-11-02 | S3 Incorporated | Apparatus, systems and methods for controlling data overlay in multimedia data processing and display systems using mask techniques |
US5926624A (en) * | 1996-09-12 | 1999-07-20 | Audible, Inc. | Digital information library and delivery system with logic for generating files targeted to the playback device |
US5991542A (en) * | 1996-09-13 | 1999-11-23 | Apple Computer, Inc. | Storage volume handling system which utilizes disk images |
US5870759A (en) * | 1996-10-09 | 1999-02-09 | Oracle Corporation | System for synchronizing data between computers using a before-image of data |
US5870765A (en) * | 1996-10-09 | 1999-02-09 | Oracle Corporation | Database synchronizer |
US6009274A (en) * | 1996-12-13 | 1999-12-28 | 3Com Corporation | Method and apparatus for automatically updating software components on end systems over a network |
US6028583A (en) | 1998-01-16 | 2000-02-22 | Adobe Systems, Inc. | Compound layers for composited image manipulation |
GB2333864B (en) | 1998-01-28 | 2003-05-07 | Ibm | Distribution of software updates via a computer network |
US6202207B1 (en) | 1998-01-28 | 2001-03-13 | International Business Machines Corporation | Method and a mechanism for synchronized updating of interoperating software |
-
1998
- 1998-05-18 US US09/080,577 patent/US6381741B1/en not_active Expired - Lifetime
-
2000
- 2000-12-01 US US09/728,700 patent/US6341373B1/en not_active Expired - Lifetime
Cited By (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829635B1 (en) * | 1998-07-01 | 2004-12-07 | Brent Townshend | System and method of automatically generating the criteria to identify bulk electronic mail |
US9288064B2 (en) | 1999-06-11 | 2016-03-15 | Tvworks, Llc | Trust information delivery scheme for certificate validation |
US6918056B2 (en) * | 2000-02-26 | 2005-07-12 | High Antivirus Research Inc. | Internet-based service system and method for remotely restoring damaged data and files |
US20030093707A1 (en) * | 2000-02-26 | 2003-05-15 | Paek Dong Hyun | Internet-based service system and method for remotely restoring damaged and files |
US7117371B1 (en) | 2000-06-28 | 2006-10-03 | Microsoft Corporation | Shared names |
US7124408B1 (en) * | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
US20100017459A1 (en) * | 2000-06-30 | 2010-01-21 | International Business Machines Corporation | Device and method for updating code |
US7970821B2 (en) | 2000-06-30 | 2011-06-28 | International Business Machines Corporation | Device and method for updating code |
US7412480B2 (en) * | 2000-06-30 | 2008-08-12 | International Business Machines Corporation | Device and method for updating code |
US20020002703A1 (en) * | 2000-06-30 | 2002-01-03 | International Business Machines Corporation | Device and method for updating code |
US9076101B1 (en) * | 2000-09-29 | 2015-07-07 | Marvell International Technology Ltd. | Printer formatter in a cable |
US20020099975A1 (en) * | 2001-01-22 | 2002-07-25 | Whiteside Derek J. | Network-based software recovery for computing devices |
US6829732B2 (en) * | 2001-01-22 | 2004-12-07 | Hewlett-Packard Development Company, L.P. | Network-based software recovery for computing devices |
US20030005426A1 (en) * | 2001-06-08 | 2003-01-02 | Scholtens Dale A. | Methods and apparatus for upgrading software without affecting system service |
US20030005083A1 (en) * | 2001-06-08 | 2003-01-02 | Eric Owhadi | Method of and computer network arrangement for restoring an impaired software image |
US7062672B2 (en) * | 2001-06-08 | 2006-06-13 | Hewlett-Packard Development Company, L.P. | Method of and computer network arrangement for restoring an impaired software image |
US7184759B2 (en) | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | Modular software components for wireless communication devices |
US8032865B2 (en) | 2001-07-26 | 2011-10-04 | Kyocera Corporation | System and method for field diagnosis of wireless communications device system software |
US9554268B2 (en) * | 2001-07-26 | 2017-01-24 | Kyocera Corporation | System and method for updating persistent data in a wireless communications device |
US20030022665A1 (en) * | 2001-07-26 | 2003-01-30 | Gowri Rajaram | System and method for organizing field upgradable wireless communication device software |
US20040214561A1 (en) * | 2001-07-26 | 2004-10-28 | Kyocera Wireless Corp. | Dynamic interface software for wireless communication devices |
US20040214560A1 (en) * | 2001-07-26 | 2004-10-28 | Kyocera Wireless Corp. | Modular software components for wireless communication devices |
US20050010917A9 (en) * | 2001-07-26 | 2005-01-13 | Gowri Rajaram | System and method for executing wireless communications device dynamic instruction sets |
US20050026603A9 (en) * | 2001-07-26 | 2005-02-03 | Gowri Rajaram | System and method for the management of wireless communications device system software downloads in the field |
US20050064847A1 (en) * | 2001-07-26 | 2005-03-24 | Bilhan Kirbas | System and method for over the air area code update |
US20030033599A1 (en) * | 2001-07-26 | 2003-02-13 | Gowri Rajaram | System and method for executing wireless communications device dynamic instruction sets |
US20040205746A9 (en) * | 2001-07-26 | 2004-10-14 | Gowri Rajaram | System and method for field diagnosis of wireless communications device system software |
US6918108B2 (en) | 2001-07-26 | 2005-07-12 | Kyocera Wireless Corp. | System and method for field diagnosis of wireless communications device system software |
US8479180B2 (en) | 2001-07-26 | 2013-07-02 | Kyocera Corporation | Maintenance of over the air upgradeable wireless communication device software |
US20050245248A1 (en) * | 2001-07-26 | 2005-11-03 | Gowri Rajaram | System and method for field diagnosis of wireless communications device system software |
US20040214559A1 (en) * | 2001-07-26 | 2004-10-28 | Kyocera Wireless Corp. | System and method for interchangeable modular hardware components for wireless communication devices |
US20030066064A1 (en) * | 2001-07-26 | 2003-04-03 | Gowri Rajaram | System and method for field diagnosis of wireless communications device system software |
US7027806B2 (en) | 2001-07-26 | 2006-04-11 | Kyocera Wireless, Corp. | System and method for field downloading a wireless communications device software code section |
US7970375B2 (en) | 2001-07-26 | 2011-06-28 | Kyocera Corporation | System and method for expiring modular software components for wireless communication devices |
US20030064717A1 (en) * | 2001-07-26 | 2003-04-03 | Gowri Rajaram | System and method for the management of wireless communications device system software downloads in the field |
US7577126B2 (en) | 2001-07-26 | 2009-08-18 | Kyocera Wireless Corp. | System and method for over the air area code update |
US7542758B2 (en) | 2001-07-26 | 2009-06-02 | Kyocera Wireless Corp. | Field downloading of wireless device software |
US20030069007A1 (en) * | 2001-07-26 | 2003-04-10 | Gowri Rajaram | System and method for updating persistent data in a wireless communications device |
US7386846B2 (en) | 2001-07-26 | 2008-06-10 | Kyocera Wireless Corp. | System and method for the management of wireless communications device system software downloads in the field |
US20060223517A1 (en) * | 2001-07-26 | 2006-10-05 | Kyocera Wireless Corp. | Field downloading of wireless device software |
US7328007B2 (en) * | 2001-07-26 | 2008-02-05 | Kyocera Wireless Corp. | System and method for organizing wireless communication device system software |
US20070143749A1 (en) * | 2001-07-26 | 2007-06-21 | Date Umesh M | System and method for expiring modular software components for wireless communication devices |
US7143407B2 (en) | 2001-07-26 | 2006-11-28 | Kyocera Wireless Corp. | System and method for executing wireless communications device dynamic instruction sets |
US7159214B2 (en) | 2001-07-26 | 2007-01-02 | Kyocera Wireless Corp. | System and method for compacting field upgradeable wireless communication device software code sections |
US20070140200A1 (en) * | 2001-07-26 | 2007-06-21 | Bilhan Kirbas | System and method for over the air area code update |
US7184793B2 (en) | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | System and method for over the air area code update |
US7197302B2 (en) | 2001-07-26 | 2007-03-27 | Kyocera Wireless Corp. | System and method for interchangeable modular hardware components for wireless communication devices |
US7200389B2 (en) | 2001-07-26 | 2007-04-03 | Kyocera Wireless Corp. | Dynamic interface software for wireless communication devices |
US20030110479A1 (en) * | 2001-08-10 | 2003-06-12 | Gowri Rajaram | System and method for bi-directional communication and execution of dynamic instruction sets |
US20060063519A1 (en) * | 2001-08-10 | 2006-03-23 | Gowri Rajaram | System and method for peer-to-peer handset communication |
US7117494B2 (en) | 2001-08-10 | 2006-10-03 | Kyocera Wireless Corp. | System and method for bi-directional communication and execution of dynamic instruction sets |
US20030110480A1 (en) * | 2001-08-10 | 2003-06-12 | Gowri Rajaram | System and method for peer-to-peer handset communication |
US20030033525A1 (en) * | 2001-08-10 | 2003-02-13 | Gowri Rajaram | System and method for improved security in handset reprovisioning and reprogramming |
US6961537B2 (en) | 2001-08-10 | 2005-11-01 | Kyocera Wireless Corp. | System and method for peer-to-peer handset communication |
US7359699B2 (en) | 2001-08-10 | 2008-04-15 | Kyocera Wireless Corp. | System and method for peer-to-peer handset communication |
US7254386B2 (en) * | 2001-08-10 | 2007-08-07 | Kyocera Wireless Corp. | System and method for improved security in handset reprovisioning and reprogramming |
US20030051090A1 (en) * | 2001-09-10 | 2003-03-13 | Bonnett William B. | Apparatus and method for secure program upgrade |
US7111292B2 (en) * | 2001-09-10 | 2006-09-19 | Texas Instruments Incorporated | Apparatus and method for secure program upgrade |
US20030093719A1 (en) * | 2001-11-13 | 2003-05-15 | Gunawan Ali-Santosa | Method and apparatus for detecting corrupt software code |
US6816985B2 (en) * | 2001-11-13 | 2004-11-09 | Sun Microsystems, Inc. | Method and apparatus for detecting corrupt software code |
US7334166B1 (en) | 2002-10-04 | 2008-02-19 | American Megatrends, Inc. | Method, system, and apparatus for providing and utilizing server-side entry points for use in diagnostics on-demand services |
US7200775B1 (en) * | 2002-10-04 | 2007-04-03 | American Megatrends, Inc. | Method and data structures for use in providing on-demand computer diagnostics |
US7231549B1 (en) | 2002-10-04 | 2007-06-12 | American Megatrends, Inc. | Method and apparatus for providing on-demand computer diagnostics |
US7043664B1 (en) * | 2002-10-31 | 2006-05-09 | Microsoft Corporation | Firmware recovery |
CN100403283C (en) * | 2003-05-30 | 2008-07-16 | 欧特斯科技股份有限公司 | Data updating device and method |
US7464102B2 (en) * | 2003-11-26 | 2008-12-09 | Microsoft Corporation | System and method for providing computer support tools |
US20050114362A1 (en) * | 2003-11-26 | 2005-05-26 | Microsoft Corporation | System and method for providing computer support tools |
GB2419004A (en) * | 2004-10-05 | 2006-04-12 | Neopost Ind Sa | Verifying a software download for a postage meter |
US20060074812A1 (en) * | 2004-10-06 | 2006-04-06 | Mattern James M | Code pack for revenue protection |
US20060232816A1 (en) * | 2005-04-14 | 2006-10-19 | Canon Kabushiki Kaisha | Image processing apparatus, method for updating control program, and program |
GB2430774A (en) * | 2005-10-03 | 2007-04-04 | Nec Technologies | Software updating with version comparison steps |
GB2430774B (en) * | 2005-10-03 | 2007-08-08 | Nec Technologies | Method of software updating and related device |
US8046448B2 (en) * | 2005-11-03 | 2011-10-25 | Sony Corporation | System and method for information sharing |
US20070100985A1 (en) * | 2005-11-03 | 2007-05-03 | Michael Kirkwood | System and method for information sharing |
US20070261047A1 (en) * | 2006-05-03 | 2007-11-08 | Microsoft Corporation | Differentiated Installable Packages |
US8578363B2 (en) * | 2006-05-03 | 2013-11-05 | Microsoft Corporation | Differentiated installable packages |
US8407684B2 (en) * | 2006-10-12 | 2013-03-26 | Samsung Electronics Co., Ltd. | Memory card and method of updating memory card program |
US20080091902A1 (en) * | 2006-10-12 | 2008-04-17 | Jung-Pil Lee | Memory card and method of updating memory card program |
WO2009115029A1 (en) * | 2008-03-18 | 2009-09-24 | 华为技术有限公司 | Method, system and apparatus for data remediation |
US9225692B2 (en) | 2011-08-12 | 2015-12-29 | Abb Technology Ag | Method and system for protected transmission of files |
US20130339734A1 (en) * | 2011-08-12 | 2013-12-19 | Power-One, Inc. | Secure Method and System for Remote Field Upgrade of Power Device Firmware |
US20140156742A1 (en) * | 2011-08-18 | 2014-06-05 | Tencent Technology (Shenzhen) Company Limited | System and method for updating software, server and client thereof |
US20140137264A1 (en) * | 2012-11-09 | 2014-05-15 | Nokia Corporation | Method and apparatus for privacy-oriented code optimization |
US9792432B2 (en) * | 2012-11-09 | 2017-10-17 | Nokia Technologies Oy | Method and apparatus for privacy-oriented code optimization |
US20170177321A1 (en) * | 2015-12-17 | 2017-06-22 | Time Warner Cable Enterprises Llc | Technique for efficiently upgrading software in a video content network |
US10521213B2 (en) * | 2015-12-17 | 2019-12-31 | Time Warner Cable Enterprises Llc | Technique for efficiently upgrading software in a video content network |
US11281778B2 (en) * | 2016-09-13 | 2022-03-22 | Samsung Electronics Co., Ltd. | Device and method for verifying application |
US20200097658A1 (en) * | 2018-09-24 | 2020-03-26 | Dell Products L. P. | Extend root of trust to include firmware of individual components of a device |
US10776488B2 (en) * | 2018-09-24 | 2020-09-15 | Dell Products L.P. | Extend root of trust to include firmware of individual components of a device |
CN111064723A (en) * | 2019-12-12 | 2020-04-24 | 杭州涂鸦信息技术有限公司 | Over-the-air upgrading method and system based on backup system |
Also Published As
Publication number | Publication date |
---|---|
US6341373B1 (en) | 2002-01-22 |
US6381741B1 (en) | 2002-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6381741B1 (en) | Secure data downloading, recovery and upgrading | |
US6678741B1 (en) | Method and apparatus for synchronizing firmware | |
US7558958B2 (en) | System and method for securely booting from a network | |
US6493871B1 (en) | Method and system for downloading updates for software installation | |
US7366824B2 (en) | Updating electronic files using byte-level file differencing and updating algorithms | |
EP1142309B1 (en) | Method and apparatus for operating system downloads in a set-top box environment | |
US6453469B1 (en) | Method and apparatus to automatically deinstall an application module when not functioning | |
US7664834B2 (en) | Distributed operating system management | |
US20070214453A1 (en) | Installation of Software on Removable Media | |
US20080022380A1 (en) | Method of patching applications on small resource-constrained secure devices | |
NO331878B1 (en) | Procedure for transferring and downloading a replacement version of resident software, and corresponding receiver / decoder | |
MXPA05003944A (en) | Efficient patching. | |
US6928548B1 (en) | System and method for verifying the integrity of stored information within an electronic device | |
CN110874467B (en) | Information processing method, device, system, processor and storage medium | |
KR102386614B1 (en) | IoT Device Firmware Update System, IoT Device Firmware Update Method, and IoT Device Booting Method | |
US7454616B2 (en) | Code authentication upon bootup for cable modems | |
JP7439067B2 (en) | File system verification and installation | |
CN101253779A (en) | Method and device for detecting errors during initialization of electronic equipment | |
US7200800B2 (en) | Platform independent file manipulation | |
CN116820528A (en) | Firmware version upgrading method and device, chip and electronic equipment | |
TW472490B (en) | Automatic initialization of an advanced set-top box in a cable television system by downloading software or firmware over the cable system | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method | |
US11764968B2 (en) | Verification of valid client library binary file on connecting to server system | |
CN114185602B (en) | Starting method, device and terminal of operating system | |
CN116185449A (en) | Plug-in upgrading method, device, system and terminal equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NETWORK COMPUTERS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SHAW, ROBERT;REEL/FRAME:009574/0809 Effective date: 19981028 |
|
AS | Assignment |
Owner name: LIBERATE TECHNOLOGIES, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:NETWORK COMPUTER, INC., A CORPORATION OF DELAWARE;REEL/FRAME:010547/0666 Effective date: 19990511 |
|
AS | Assignment |
Owner name: LIBERATE TECHNOLOGIES A CORPORATION OF DELAWARE, C Free format text: CHANGE OF NAME;ASSIGNOR:NETWORK COMPUTER, INC. A CORPORATION OF DELAWARE;REEL/FRAME:011390/0450 Effective date: 19990511 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: DOUBLE C TECHNOLOGIES, LLC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIBERATE TECHNOLOGIES;REEL/FRAME:016408/0924 Effective date: 20050405 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: TVWORKS, LLC, PENNSYLVANIA Free format text: CHANGE OF NAME;ASSIGNOR:DOUBLE C. TECHNOLOGIES, LLC;REEL/FRAME:016926/0526 Effective date: 20050725 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: COMCAST CABLE COMMUNICATIONS MANAGEMENT, LLC, PENN Free format text: MERGER;ASSIGNOR:TVWORKS, LLC;REEL/FRAME:042269/0069 Effective date: 20160811 Owner name: COMCAST CABLE COMMUNICATIONS MANAGEMENT, LLC, PENNSYLVANIA Free format text: MERGER;ASSIGNOR:TVWORKS, LLC;REEL/FRAME:042269/0069 Effective date: 20160811 |