WO2009009921A1 - Key based hidden partition system - Google Patents

Key based hidden partition system Download PDF

Info

Publication number
WO2009009921A1
WO2009009921A1 PCT/CN2007/002156 CN2007002156W WO2009009921A1 WO 2009009921 A1 WO2009009921 A1 WO 2009009921A1 CN 2007002156 W CN2007002156 W CN 2007002156W WO 2009009921 A1 WO2009009921 A1 WO 2009009921A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
hidden partition
key
response
hidden
Prior art date
Application number
PCT/CN2007/002156
Other languages
French (fr)
Inventor
Lifeng Zhang
Original Assignee
Intel Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to PCT/CN2007/002156 priority Critical patent/WO2009009921A1/en
Priority to CN200780053762.6A priority patent/CN101785239B/en
Publication of WO2009009921A1 publication Critical patent/WO2009009921A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • G06F21/805Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors using a security table for the storage sub-system

Definitions

  • hidden partition based solutions may be utilized.
  • the solutions may allocate a single hidden partition at hard disk of a computing device for users to store critical data.
  • the hidden partition may be invisible to one or more software such as operating system and thus the data in the hidden partition may be survived even if the operating system of the computing device is damaged or the hard drive is formatted.
  • something wrong happens to the hidden partition e.g., due to data damage or loss, or by malicious software attack, the user may not be able to find the root cause or fix the problem.
  • FIG, 1 is a schematic diagram of an embodiment of a computing device.
  • FIG. 2 is a schematic diagram of an embodiment of a hard disk.
  • FIG. 3 is a schematic diagram of a method that may be used to manage hidden partitions in the hard disk of FIG. 2.
  • references in the specification to "one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in • the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors.
  • a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device).
  • a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and others.
  • FIG. 1 shows an example embodiment of a computing device 100.
  • the computing device 100 may comprise one or more processors 110.
  • the processor 110 may perform actions in response to executing instructions.
  • the processor 110 may executes programs, perform data manipulations and control tasks in the computing device 100, etc.
  • the processor 110 may be any type of processor adapted to perform operations in memory 130.
  • processor 110 may be a microprocessor, a digital signal processor, a microcontroller, or any other processors.
  • the processor 110 may be not dedicated to the use of memory 130, and the processor 110 may perform operations in memory 130 while also performing other system functions.
  • the memory 130 may comprise memory devices providing addressable storage locations that a memory controller 122 may read data from and/or write data to.
  • the memory 130 may comprise one or more different types of memory devices such as, for example, dynamic random access memory (DRAM) devices, synchronous dynamic random access memory (SDRAM) devices, read-only memory (ROM) devices, or any other volatile or non-volatile memory (NVM) devices.
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • ROM read-only memory
  • NVM non-volatile memory
  • the memory 130 may be arranged in channels, ranks, banks, pages, and columns.
  • the computing device 100 may further comprise a chipset 120.
  • the chipset 120 may comprise one or more integrated circuit packages or chips that may couple the processors 110 to memory 130, Basic Input/Output System (BIOS) 140, one or more storage devices 150, and other components (for example, mouse, keyboard, video controller, or other I/O devices of the computing device 100, etc.).
  • the chipset 130 may receive transactions from the processors 110 and to issue transactions to the processors 110 via a processor bus.
  • the memory controller 122 may issue transactions to the memory 140 via a memory bus.
  • the chipset 130 may comprise a BIOS interface 124 that may access the BIOS 140 via a bus 142.
  • the storage device 150 may store archive information, such as code, programs, files, data, applications, or operating systems, etc.
  • An example of the storage device 150 may comprise a tape, hard disk (HD) drive, a floppy diskette, a compact disk (CD) ROM, a flash memory device, any other mass storage device, any other magnetic storage media, any other optical storage media, any other non-volatile memory devices, etc.
  • the chipset 120 may comprise one or more storage device interfaces 126 that may access each storage device 150 via a bus 142.
  • FIG. 2 illustrates an exemplary embodiment of a hard disk 210.
  • the hard disk 210 may be partitioned to comprise a first hidden partition 212 and a second hidden partition 214 and one or more normal partitions 216.
  • the first hidden partition 212 may be a primary hidden partition that may be used to store files, user data or any other information that may be critical or confidential to an authorized user.
  • the second hidden partition 214 may be a secondary hidden partition that may run in the background.
  • the first hidden partition 212 and the second hidden partition 214 may have the same size; however, in some embodiments, the same size may not be required.
  • the first hidden partition 212 and the second hidden partition 214 may be invisible or inaccessible by unauthorized software such as operating system.
  • the content of the first hidden partition 212 may be synchronized with the content of the second hidden partition 214.
  • the content of the second hidden partition 214 may be updated in response to the first hidden partition 212 being modified by in an authorized manner.
  • Fig. 2 illustrates logic 240 that may manage the first hidden partition 212 and the second hidden partition 214.
  • the logic 240 may store or modify the content of the first hidden partition 212.
  • the logic 240 may synchronize the content of the first hidden partition 212 with the content of the second hidden partition 214 to update the content of the second hidden partition 214, in response to the logic 240 changing or modifying the content of the first hidden partition 212.
  • the logic 240 may copy the modified content of the first hidden partition 212 to the second hidden partition 214.
  • the logic 240 in response to the logic 240 modifying the content of the first hidden partition 212, e.g., based on a instruction from an authorized user, the logic 240 may update or modify the second hidden partition 214 to store the same content as that has been stored in the first hidden partition 212.
  • the logic 240 may further utilize the content of the second hidden partition 214 to recover or repair the content of the first hidden partition 212 in response to determining that the content of the second hidden partition 214 is valid while the content of the first hidden partition 212 is invalid.
  • the first hidden partition 212 and the second hidden partition 214 may be formatted identically by the logic 240; however, it may not be required.
  • the logic 240 may not change the content of the second hidden partition 214 in response to an unauthorized change of the first hidden partition 212.
  • the logic 240 may not change the content of the second hidden partition 214 accordingly,
  • the logic 240 may utilize a key 230 to manage the two hidden partitions.
  • the logic 240 may calculate the key 230 based on content of one of the two hidden partitions 212 and 214.
  • the logic 240 in response to the logic 240 modifying the first hidden partition 212 such as adding, deleting or modifying information, the logic 240 may modify the second hidden partition 214 based on the modified content of the first hidden partition 212 and update the value of the key or generate a new key based on the modified content of the first hidden partition 212 and/or the second hidden partition 214.
  • one or more key generation algorithms such as a logical operation may be utilized to provide the key 230.
  • the logic 240 may not change the second hidden partition 214 or the key 230.
  • the value of the key 230 may not match the first or the second hidden partition where data damage or loss, or attack by virus or malicious software happens to the hidden partition.
  • the logic 240 may detect or verify validity of the content of either hidden partition based on the key 230. For example, the logic 240 may detect whether there is an error in either hidden partitions.
  • the key 230 may be utilized to check if the content of the first hidden partition 212 and/or the second hidden partition 214 has been damaged or changed in an unauthorized manner.
  • the key 230 may be stored in a non-volatile memory (NVM) 222 that may be invisible or inaccessible to unauthorized software such as operating system. Referring to Fig. 2, NVM 222 may be an embedded memory device or provided in a system 220.
  • NVM non-volatile memory
  • examples of the system 220 may comprise a secure or embedded chip, an embedded system or trusted module platform (TMP) that may be provided on a mother board.
  • TMP trusted module platform
  • FIG.2 illustrates the embodiment of NVM 222, other storage devices may be used, such as flash memory devices, DRAM devices, SDRAM devices, etc.
  • Fig. 2 shows the NVM 222 that is separate from the hard disk 210 to store the key 230, in some embodiments, the key 230 may be stored in the hard disk 210, e.g., in a normal partition 216.
  • FIG. 3 illustrates an example of a method that may be used by the logic 240 to manage the hidden partitions 212 and 214 of FIG. 2, such as performing damage checking of the hidden partitions, storing information in the hidden partitions, or performing auto-healing of the hidden partitions.
  • the logic 240 may obtain the information that is to be put in the first hidden partition 212 from the normal partition 216, in block 302.
  • the logic 240 may fetched the key 230 from a secured NVM 222.
  • the first hidden partition 212 may be scanned and a check at diamond 308 may determine whether the value of the key 230 matches the content of the first hidden partition 212. For example, the same algorithm as that the key 230 was generated may be utilized to determine whether the value of the key 230 matches content of the first hidden partition 212. If it is determined that the value of the key 230 matches the current content of the first hidden partition 212, e.g., if there was an authorized modification to the content of the first hidden partition 212, it may be determined that the content of the first hidden partition 212 is valid and the flow may go to block 310. In block 310, the information obtained from the normal partition 216 in block 302 may be stored in the first hidden partition 212.
  • the first hidden partition 212 may be synchronized with the second hidden partition 214, so that the second hidden partition 214 may be updated to add the information obtained in block 302.
  • the value of the key 230 may remain unchanged and thus may not match the content of the first hidden partition 212.
  • the key 230 has been damaged, the content of the first hidden partition 212 may not match the value of the key 230.
  • the flow may proceed to block 316, wherein the information obtained in block 302 may be stored in the second hidden partition 214.
  • the logic 240 may synchronize the first hidden partition 212 and the second hidden partition 214 to store a content that is the same as the modified content of the second hidden partition 214 in the first hidden partition 212.
  • the invalid content of the first hidden partition 212 may be repaired based on the content of the second hidden partition 214 that is valid.
  • the mismatch of the key 230 and the second hidden partition 214 at diamond 314 may show that the key 230 or the second hidden partition 214 is also invalid, or has also been damaged, or undesirably changed.
  • an event that the key 230 does not match the two hidden partitions may be reported to the user.
  • the user may be notified that the content of the first hidden partition 212 is different from the content of the second hidden partition 214.
  • a difference between the two hidden partitions 212 and 214 may be determined by the logic 240; however, in some embodiment, the difference may be determined by any other logic. In another embodiment, the difference may be reported to the user.
  • any other information relating to the mismatch between the key and the two hidden partitions may be reported to the user.
  • the user may decide which one of the two hidden partition 212 and 214 is better, e.g., based on the difference between the two hidden partitions.
  • the user may recover or repair the content of the better hidden partition.
  • the logic 240 may determine the better hidden partition and recover the content of the better hidden partition.
  • the information obtained in block 302 may be stored in the better hidden partition that has been repaired by the user.
  • the other hidden partition may be synchronized with the better hidden partition to store the same content as that of the better hidden partition, in block 324.
  • the value of the key 230 stored in the NVM 222 may be updated based on the modified content of hidden partition 212 or 214 by the logic 240 (block 326).
  • the flow of FIG. 3 is illustrated as a sequence of operations, in some embodiments, the illustrated operations of the flow may be performed in a different order.
  • the check on the second hidden partition 214 may be performed prior to the check on the first hidden partition 212.
  • the flow may be modified to apply to any other scenarios, such as in response to a request or instruction to add, delete or perform any other modifications on the content of the hidden partitions.
  • the content of either hidden partition may be checked in response to any other instruction relating to the content of either hidden partition, such as an authorized access instruction to access the content from a hidden partition or an instruction that may access the content of a hidden partition.
  • block 302 may be modified to obtain information from other storage units or from the user in response to a user instruction on adding the information to the hidden partitions 212.
  • block 302 may be modified to delete information in the hidden partitions.
  • a portion of the flow of FIG. 3, e.g., diamonds 308 and 314 may be utilized to check whether the content of the hidden partitions is valid.
  • any of the methods described herein may be performed by hardware, firmware, software (including microcode), or a combination thereof.
  • a storage medium may store thereon instructions that when executed by a machine results in performance according to any of the embodiments described herein. While the flow of Fig.
  • the flow may be changed to recover or repair a hidden partition that is damaged or unauthorized changed in response to determining that the content of another hidden partition is valid.
  • whether the first hidden partition 212 or the second hidden partition 214 matches the key may be determined periodically. In another embodiment, the determination may be performed, if an authorized user desires to modify the content of the first hidden partition 212.
  • FIGs. 1 and 2 are illustrates to comprise a certain number of devices, some embodiments may apply to a different number.
  • one or more hidden partitions may be utilized and the flow of FIG. 3 may be modified accordingly.
  • one hidden partition may be provided.
  • the logic 240 may be performed by hardware, firmware, software (including microcode), or a combination thereof.
  • the logic 240 may be realized by software stored on the hard disk 210 or any other storage device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

A key based hidden partition solution may provide a second hidden partition in a first storage device to store a second content that is synchronized with a first content of a first hidden partition of the first storage device. The solution may further provide a key that matches the first content and update the second content of the second hidden partition and the key based on the modified first content in response to an authorized modification to the first content of the first hidden partition.

Description

KEY BASED HIDDEN PARTITION SYSTEM
BACKGROUND
[0001] In order to accommodate the need of protecting important files or data and preventing confidential information from leaking, some hidden partition based solutions may be utilized. The solutions may allocate a single hidden partition at hard disk of a computing device for users to store critical data. The hidden partition may be invisible to one or more software such as operating system and thus the data in the hidden partition may be survived even if the operating system of the computing device is damaged or the hard drive is formatted. However, if something wrong happens to the hidden partition, e.g., due to data damage or loss, or by malicious software attack, the user may not be able to find the root cause or fix the problem.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The invention described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
[0003] FIG, 1 is a schematic diagram of an embodiment of a computing device.
[0004] FIG. 2 is a schematic diagram of an embodiment of a hard disk.
[0005] FIG. 3 is a schematic diagram of a method that may be used to manage hidden partitions in the hard disk of FIG. 2.
DETAILED DESCRIPTION
[0006] The following description describes techniques to provide a usage model for asset control. The implementation of the techniques is not restricted in computing systems; it may be used by any execution environments for similar purposes, such as, for example, other digital/electronic equipment. In the following description, numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present invention. However, the invention may be practiced without such specific details. In other instances, control structures and full software instruction sequences have not been shown in detail in order not to obscure the invention.
[0007] References in the specification to "one embodiment", "an embodiment", "an example embodiment", etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in • the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[0008] Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and others.
[0009] The following description may include terms, such as first, second, etc. that are used for descriptive purposes only and are not to be construed as limiting.
[0010] FIG. 1 shows an example embodiment of a computing device 100. The computing device 100 may comprise one or more processors 110. The processor 110 may perform actions in response to executing instructions. For example, the processor 110 may executes programs, perform data manipulations and control tasks in the computing device 100, etc. The processor 110 may be any type of processor adapted to perform operations in memory 130. For example, processor 110 may be a microprocessor, a digital signal processor, a microcontroller, or any other processors. In one embodiment, the processor 110 may be not dedicated to the use of memory 130, and the processor 110 may perform operations in memory 130 while also performing other system functions.
[0011 ] The memory 130 may comprise memory devices providing addressable storage locations that a memory controller 122 may read data from and/or write data to. The memory 130 may comprise one or more different types of memory devices such as, for example, dynamic random access memory (DRAM) devices, synchronous dynamic random access memory (SDRAM) devices, read-only memory (ROM) devices, or any other volatile or non-volatile memory (NVM) devices. In another embodiment, the memory 130 may be arranged in channels, ranks, banks, pages, and columns.
[0012] The computing device 100 may further comprise a chipset 120. The chipset 120 may comprise one or more integrated circuit packages or chips that may couple the processors 110 to memory 130, Basic Input/Output System (BIOS) 140, one or more storage devices 150, and other components (for example, mouse, keyboard, video controller, or other I/O devices of the computing device 100, etc.). The chipset 130 may receive transactions from the processors 110 and to issue transactions to the processors 110 via a processor bus. The memory controller 122 may issue transactions to the memory 140 via a memory bus. The chipset 130 may comprise a BIOS interface 124 that may access the BIOS 140 via a bus 142.
[0013] In another embodiment, the storage device 150 may store archive information, such as code, programs, files, data, applications, or operating systems, etc. An example of the storage device 150 may comprise a tape, hard disk (HD) drive, a floppy diskette, a compact disk (CD) ROM, a flash memory device, any other mass storage device, any other magnetic storage media, any other optical storage media, any other non-volatile memory devices, etc. The chipset 120 may comprise one or more storage device interfaces 126 that may access each storage device 150 via a bus 142.
[0014] FIG. 2 illustrates an exemplary embodiment of a hard disk 210. In one embodiment, the hard disk 210 may be partitioned to comprise a first hidden partition 212 and a second hidden partition 214 and one or more normal partitions 216. For example, the first hidden partition 212 may be a primary hidden partition that may be used to store files, user data or any other information that may be critical or confidential to an authorized user. The second hidden partition 214 may be a secondary hidden partition that may run in the background. In one embodiment, the first hidden partition 212 and the second hidden partition 214 may have the same size; however, in some embodiments, the same size may not be required. In one embodiment, the first hidden partition 212 and the second hidden partition 214 may be invisible or inaccessible by unauthorized software such as operating system. The content of the first hidden partition 212 may be synchronized with the content of the second hidden partition 214. For example, the content of the second hidden partition 214 may be updated in response to the first hidden partition 212 being modified by in an authorized manner.
[0015] In one embodiment, Fig. 2 illustrates logic 240 that may manage the first hidden partition 212 and the second hidden partition 214. For example, the logic 240 may store or modify the content of the first hidden partition 212. The logic 240 may synchronize the content of the first hidden partition 212 with the content of the second hidden partition 214 to update the content of the second hidden partition 214, in response to the logic 240 changing or modifying the content of the first hidden partition 212. For example, the logic 240 may copy the modified content of the first hidden partition 212 to the second hidden partition 214. In one embodiment, in response to the logic 240 modifying the content of the first hidden partition 212, e.g., based on a instruction from an authorized user, the logic 240 may update or modify the second hidden partition 214 to store the same content as that has been stored in the first hidden partition 212.
[0016] In one embodiment, the logic 240 may further utilize the content of the second hidden partition 214 to recover or repair the content of the first hidden partition 212 in response to determining that the content of the second hidden partition 214 is valid while the content of the first hidden partition 212 is invalid. In another embodiment, the first hidden partition 212 and the second hidden partition 214 may be formatted identically by the logic 240; however, it may not be required. In another embodiment, the logic 240 may not change the content of the second hidden partition 214 in response to an unauthorized change of the first hidden partition 212. For example, if the first hidden partition 212 is undesirably or unexpectedly modified, e.g., due to data loss or damage, by virus or by any unauthorized or malicious software, the logic 240 may not change the content of the second hidden partition 214 accordingly,
[0017] The logic 240 may utilize a key 230 to manage the two hidden partitions. In one embodiment, the logic 240 may calculate the key 230 based on content of one of the two hidden partitions 212 and 214. In another embodiment, in response to the logic 240 modifying the first hidden partition 212 such as adding, deleting or modifying information, the logic 240 may modify the second hidden partition 214 based on the modified content of the first hidden partition 212 and update the value of the key or generate a new key based on the modified content of the first hidden partition 212 and/or the second hidden partition 214. For example, one or more key generation algorithms such as a logical operation may be utilized to provide the key 230. In another embodiment, if the content of the first hidden partition 212 is undesirably changed due to data loss or damage, by virus, or by malicious or unauthorized software, the logic 240 may not change the second hidden partition 214 or the key 230. In another embodiment, the value of the key 230 may not match the first or the second hidden partition where data damage or loss, or attack by virus or malicious software happens to the hidden partition.
[0018] In another embodiment, the logic 240 may detect or verify validity of the content of either hidden partition based on the key 230. For example, the logic 240 may detect whether there is an error in either hidden partitions. For another example, the key 230 may be utilized to check if the content of the first hidden partition 212 and/or the second hidden partition 214 has been damaged or changed in an unauthorized manner. In one embodiment, the key 230 may be stored in a non-volatile memory (NVM) 222 that may be invisible or inaccessible to unauthorized software such as operating system. Referring to Fig. 2, NVM 222 may be an embedded memory device or provided in a system 220. In one embodiment, examples of the system 220 may comprise a secure or embedded chip, an embedded system or trusted module platform (TMP) that may be provided on a mother board. While FIG.2 illustrates the embodiment of NVM 222, other storage devices may be used, such as flash memory devices, DRAM devices, SDRAM devices, etc. Further, while Fig. 2 shows the NVM 222 that is separate from the hard disk 210 to store the key 230, in some embodiments, the key 230 may be stored in the hard disk 210, e.g., in a normal partition 216.
[0019] FIG. 3 illustrates an example of a method that may be used by the logic 240 to manage the hidden partitions 212 and 214 of FIG. 2, such as performing damage checking of the hidden partitions, storing information in the hidden partitions, or performing auto-healing of the hidden partitions. Referring to FIG. 3, in response to, e.g., an instruction from an authorized user to move information from a normal partition 216 to the first hidden partition 212, the logic 240 may obtain the information that is to be put in the first hidden partition 212 from the normal partition 216, in block 302. In block 304, the logic 240 may fetched the key 230 from a secured NVM 222.
[0020] In block 306, the first hidden partition 212 may be scanned and a check at diamond 308 may determine whether the value of the key 230 matches the content of the first hidden partition 212. For example, the same algorithm as that the key 230 was generated may be utilized to determine whether the value of the key 230 matches content of the first hidden partition 212. If it is determined that the value of the key 230 matches the current content of the first hidden partition 212, e.g., if there was an authorized modification to the content of the first hidden partition 212, it may be determined that the content of the first hidden partition 212 is valid and the flow may go to block 310. In block 310, the information obtained from the normal partition 216 in block 302 may be stored in the first hidden partition 212. Further, in block 312, the first hidden partition 212 may be synchronized with the second hidden partition 214, so that the second hidden partition 214 may be updated to add the information obtained in block 302. [0021] In contrary, if an unauthorized or unexpected change happens to the first hidden partition 212, e.g., due to data damage or intended malicious or unauthorized software, the value of the key 230 may remain unchanged and thus may not match the content of the first hidden partition 212. In another embodiment, if the key 230 has been damaged, the content of the first hidden partition 212 may not match the value of the key 230. In response to determining at diamond 308 that the value of the key 230 does not match the content of the first hidden partition 212, the flow of FIG. 3 may proceed to diamond 314 where a similar check on the value of the key 230 and the second hidden partition 214 may be made. Referring to FIG. 3, in response to determining in diamond 314 that the value of the key 230 matches the content of the second hidden partition 214, which may show that the content of the second hidden partition 214 is valid and the content of the first hidden partition 212 may be invalid, the flow may proceed to block 316, wherein the information obtained in block 302 may be stored in the second hidden partition 214. Further, in block 318, the logic 240 may synchronize the first hidden partition 212 and the second hidden partition 214 to store a content that is the same as the modified content of the second hidden partition 214 in the first hidden partition 212. Thus, the invalid content of the first hidden partition 212 may be repaired based on the content of the second hidden partition 214 that is valid.
[0022J In another embodiment, the mismatch of the key 230 and the second hidden partition 214 at diamond 314 may show that the key 230 or the second hidden partition 214 is also invalid, or has also been damaged, or undesirably changed. In one embodiment, in block 320, an event that the key 230 does not match the two hidden partitions may be reported to the user. In another embodiment, in block 320, the user may be notified that the content of the first hidden partition 212 is different from the content of the second hidden partition 214. In yet another embodiment, a difference between the two hidden partitions 212 and 214 may be determined by the logic 240; however, in some embodiment, the difference may be determined by any other logic. In another embodiment, the difference may be reported to the user. In still another embodiment, any other information relating to the mismatch between the key and the two hidden partitions may be reported to the user. For example, the user may decide which one of the two hidden partition 212 and 214 is better, e.g., based on the difference between the two hidden partitions. In another embodiment, the user may recover or repair the content of the better hidden partition. In another embodiment, the logic 240 may determine the better hidden partition and recover the content of the better hidden partition.
[0023] Further, in block 322, the information obtained in block 302 may be stored in the better hidden partition that has been repaired by the user. The other hidden partition may be synchronized with the better hidden partition to store the same content as that of the better hidden partition, in block 324. Referring to FIG. 3, in response to the synchronization of the two hidden partitions 212 and 214, the value of the key 230 stored in the NVM 222 may be updated based on the modified content of hidden partition 212 or 214 by the logic 240 (block 326).
[0024] While the flow of FIG. 3 is illustrated as a sequence of operations, in some embodiments, the illustrated operations of the flow may be performed in a different order. For example, the check on the second hidden partition 214 may be performed prior to the check on the first hidden partition 212. Further, while checking the content of the first hidden partition 212 or the second hidden partition of FIG. 3 is initiated in response to a user desiring to move information from normal partition 216 to hidden partitions 212 and 214, in some embodiments, the flow may be modified to apply to any other scenarios, such as in response to a request or instruction to add, delete or perform any other modifications on the content of the hidden partitions. In another embodiment, the content of either hidden partition may be checked in response to any other instruction relating to the content of either hidden partition, such as an authorized access instruction to access the content from a hidden partition or an instruction that may access the content of a hidden partition.
[0025] For example, block 302 may be modified to obtain information from other storage units or from the user in response to a user instruction on adding the information to the hidden partitions 212. In another embodiment, block 302 may be modified to delete information in the hidden partitions. In another embodiment, a portion of the flow of FIG. 3, e.g., diamonds 308 and 314 may be utilized to check whether the content of the hidden partitions is valid. In one embodiment, any of the methods described herein may be performed by hardware, firmware, software (including microcode), or a combination thereof. For example, a storage medium may store thereon instructions that when executed by a machine results in performance according to any of the embodiments described herein. While the flow of Fig. 3 may synchronize the two hidden partitions in response to an authorized modification, in some embodiments, the flow may be changed to recover or repair a hidden partition that is damaged or unauthorized changed in response to determining that the content of another hidden partition is valid. In yet another embodiment, whether the first hidden partition 212 or the second hidden partition 214 matches the key may be determined periodically. In another embodiment, the determination may be performed, if an authorized user desires to modify the content of the first hidden partition 212.
[0026] Further, while the embodiments of FIGs. 1 and 2 are illustrates to comprise a certain number of devices, some embodiments may apply to a different number. For example, in one embodiment, one or more hidden partitions may be utilized and the flow of FIG. 3 may be modified accordingly. In some embodiments, one hidden partition may be provided. For example, in response to determining that the content of the hidden partition is damaged, the user may recover or repair the damaged hidden partition. While Fig. 3 illustrates the logic 240, in some embodiments, the logic 240 may be performed by hardware, firmware, software (including microcode), or a combination thereof. For example, the logic 240 may be realized by software stored on the hard disk 210 or any other storage device.
[0027] While certain features of the invention have been described with reference to embodiments, the description is not intended to be construed in a limiting sense. Various modifications of the embodiments, as well as other embodiments of the invention, which are apparent to persons skilled in the art to which the invention pertains are deemed to lie within the spirit and scope of the invention.

Claims

What is claimed is:
1. A system comprising: a first storage device to comprise a first hidden partition and a second hidden partition; and a logic coupled to the first storage device, wherein the logic is to store in the second hidden partition a second content that is the same as a first content of the first hidden partition, to generate a key based on the first content, and to verify validity of the first content based on the key.
2. The system of claim 1 , comprising: a second storage device coupled to the logic to store the key, wherein the second storage device is provided in an embedded system.
3. The system of claim 2, comprising: a memory device coupled to the logic to store the key, wherein the memory device is provided on a secured chip.
4. The system of claim 1 , wherein the logic is to modify the first content and to update a value of the key based on the modified first content.
5. The system of claim 1 , wherein the logic is to modify the first content and to update the second content based on the modified first content.
6. The system of claim 1 , wherein the logic is to synchronize the second content with the first content to repair the first content, in response to determining that the key does not match the first content and the key matches the second content.
7. The system of claim 1 , wherein the logic is to provide an information regarding a mismatch between the key and the first hidden partition and the second hidden partition.
8. The system of claim 1 , wherein the logic is to store the key in a secured storage device and access the key to verify validity of the first hidden partition.
9. A method, comprising: providing a second hidden partition in a first storage device to store a second content that is synchronized with a first content of a first hidden partition of the first storage device; providing a key that matches the first content; and in response to an authorized modification to the first content of the first hidden partition, updating the second content of the second hidden partition and the key based on the modified first content.
10. The method of claim 9, comprising: detecting whether the first content matches the key, in response to an instruction to access the first content; detecting whether the second content matches the key, in response to determining a mismatch between the first content and the key; and synchronizing the first content with the second content to repair the first content, in response to determining that the second content matches the key.
11. The method of claim 9, comprising: determining whether the first content matches the key; determining whether the second content matches the key, in response to determining the first content matches the key; and recovering the second content based on the first content.
12. The method of claim 9, comprising: determining that the first content is valid, in response to determining that the key matches the first content; and copying the first content that is valid to the second hidden partition, in response to determining a mismatch between the key and the second content.
13. The method of claim 9, comprising: storing the key in a second storage device on an embedded chip.
14. The method of claim 9, comprising: determining whether the key matches the first content, in response to an authorized access instruction to access the first hidden partition; accessing the first hidden partition, in response to determining that the key matches the first content.
15. A machine readable medium comprising a plurality of instructions that in response to being executed result in a computing device copying a first content of a first hidden partition of a storage device to a second hidden partition of the storage device; providing a key based on the second hidden partition; and synchronizing the first hidden partition with the second hidden partition in response to determining that the first content does not match the key.
16. The machine readable medium of claim 15, further comprising a plurality of instructions that in response to being executed result in a computing device storing information in the first hidden partition in response to determining that the content of the first hidden partition matches the value of the key; synchronizing the second hidden partition with the modified first hidden partition; and updating the key based on the second hidden partition.
17. The machine readable medium of claim 15, further comprising a plurality of instructions that in response to being executed result in a computing device determining a difference between the first content of the first hidden partition and the second content of the second hidden partition to recover the first content and the second content in response to determining that the value of the key matches the content of none of the two hidden partitions.
18. The machine readable medium of claim 15, further comprising a plurality of instructions that in response to being executed result in a computing device updating the value of the key in response to an authorized modification on the first hidden partition.
19. The machine readable medium of claim 15, further comprising a plurality of instructions that in response to being executed result in a computing device updating the content of the second hidden partition in response to an authorized modification on the first hidden partition.
20. The machine readable medium of claim 15, further comprising a plurality of instructions that in response to being executed result in a computing device determining whether the key matches a second content of the second hidden partition; and in response to determining that the key does not match the second content of the second hidden partition, repairing the second content of the second hidden partition based on the first content of the second hidden partition.
PCT/CN2007/002156 2007-07-13 2007-07-13 Key based hidden partition system WO2009009921A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2007/002156 WO2009009921A1 (en) 2007-07-13 2007-07-13 Key based hidden partition system
CN200780053762.6A CN101785239B (en) 2007-07-13 2007-07-13 Key based hidden partition system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2007/002156 WO2009009921A1 (en) 2007-07-13 2007-07-13 Key based hidden partition system

Publications (1)

Publication Number Publication Date
WO2009009921A1 true WO2009009921A1 (en) 2009-01-22

Family

ID=40259278

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2007/002156 WO2009009921A1 (en) 2007-07-13 2007-07-13 Key based hidden partition system

Country Status (2)

Country Link
CN (1) CN101785239B (en)
WO (1) WO2009009921A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424047A (en) * 2013-08-20 2015-03-18 研祥智能科技股份有限公司 NVRAM data recovery method and NVRAM data recovery device
CN104751076A (en) * 2015-04-15 2015-07-01 四川神琥科技有限公司 Method for recovering disk data
CN104794024A (en) * 2015-04-15 2015-07-22 四川神琥科技有限公司 Data recovery method
CN105302671A (en) * 2015-11-11 2016-02-03 中国建设银行股份有限公司 Automatic backup and rollback method and device
US10037286B2 (en) 2014-08-26 2018-07-31 Red Hat, Inc. Private partition with hardware unlocking

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101760778B1 (en) * 2011-01-17 2017-07-26 에스프린팅솔루션 주식회사 Computer system and method for updating program therein
CN103870762B (en) * 2012-12-18 2017-08-29 联想(北京)有限公司 Regional addressing method and electronic equipment
CN110059028A (en) * 2018-01-17 2019-07-26 瑞昱半导体股份有限公司 Data storage chip and data access method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3477949B2 (en) * 1995-10-19 2003-12-10 富士ゼロックス株式会社 Keyword management device
US20040268079A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Method and system for providing a secure rapid restore backup of a raid system
CN1877539A (en) * 2005-06-07 2006-12-13 英业达股份有限公司 Data backup/recovery system under cold start mode and implementing method therefor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100389408C (en) * 2001-11-08 2008-05-21 联想(北京)有限公司 Fixed disk data enciphering back-up and restoring method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3477949B2 (en) * 1995-10-19 2003-12-10 富士ゼロックス株式会社 Keyword management device
US20040268079A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Method and system for providing a secure rapid restore backup of a raid system
CN1877539A (en) * 2005-06-07 2006-12-13 英业达股份有限公司 Data backup/recovery system under cold start mode and implementing method therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424047A (en) * 2013-08-20 2015-03-18 研祥智能科技股份有限公司 NVRAM data recovery method and NVRAM data recovery device
US10037286B2 (en) 2014-08-26 2018-07-31 Red Hat, Inc. Private partition with hardware unlocking
CN104751076A (en) * 2015-04-15 2015-07-01 四川神琥科技有限公司 Method for recovering disk data
CN104794024A (en) * 2015-04-15 2015-07-22 四川神琥科技有限公司 Data recovery method
CN105302671A (en) * 2015-11-11 2016-02-03 中国建设银行股份有限公司 Automatic backup and rollback method and device

Also Published As

Publication number Publication date
CN101785239A (en) 2010-07-21
CN101785239B (en) 2013-01-02

Similar Documents

Publication Publication Date Title
EP3764237B1 (en) System startup method and apparatus, electronic device and storage medium
US8943491B2 (en) Systems and methods for maintaining CRTM code
US10148429B2 (en) System and method for recovery key management
WO2009009921A1 (en) Key based hidden partition system
US9230116B2 (en) Technique for providing secure firmware
US7444360B2 (en) Method, system, and program for storing and using metadata in multiple storage locations
TWI471726B (en) Managing cache data and metadata
US7366887B2 (en) System and method for loading programs from HDD independent of operating system
US8196110B2 (en) Method and apparatus for verifying a suspect return pointer in a stack
US7210013B2 (en) Data protection for computer system
US8898797B2 (en) Secure option ROM firmware updates
US9311475B2 (en) Trusted execution of binaries and modules
US7783918B2 (en) Data protection method of storage device
KR20110060835A (en) Method for accelerating a wake-up time of a system
CN111670442A (en) Write and integrity checking of database transaction logs
CN114222975A (en) Data preservation using memory aperture flush sequence
US6389539B1 (en) Method and system for enhancing security access to a data processing system
KR20170125698A (en) Generalized write operations verification method
CN109766688B (en) Merkle tree-based Linux program runtime verification and management and control method and system
JP2008305377A (en) System and method for intrusion protection of network storage
US7743271B2 (en) Use of a UUID as a time epoch to determine if the system clock has been reset backwards in time
US11010250B2 (en) Memory device failure recovery system
WO2007098642A1 (en) MECHANlSM FOR ACCESS CONTROL OF COMPUTING SYSTEM IN PRE-OS STAGE
CN101295274B (en) Method and equipment for reducing data error of shared memory

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780053762.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07764058

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07764058

Country of ref document: EP

Kind code of ref document: A1