WO2021080123A1 - 전자 장치 및 이의 제어 방법 - Google Patents
전자 장치 및 이의 제어 방법 Download PDFInfo
- Publication number
- WO2021080123A1 WO2021080123A1 PCT/KR2020/008938 KR2020008938W WO2021080123A1 WO 2021080123 A1 WO2021080123 A1 WO 2021080123A1 KR 2020008938 W KR2020008938 W KR 2020008938W WO 2021080123 A1 WO2021080123 A1 WO 2021080123A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- executable file
- block
- hash
- hash values
- value
- Prior art date
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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/60—Protecting data
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Definitions
- the present disclosure relates to an electronic device and a control method thereof, and more particularly, to an electronic device for verifying the integrity of a block actually used by calculating only a hash value for a block actually used in an executable file for executing a program, and its It relates to the control method.
- a signature value encrypted with the hash value is added to the executable file, and the user who runs the program
- the entire program executable file is allocated to memory to calculate the hash value for the entire executable file, and the signature value added to the executable file is decrypted and compared with the calculated hash value to check whether the executable file has been tampered with. Integrity verification was performed. That is, conventionally, when the hash value obtained by decoding the signature value added to the executable file is the same as the hash value calculated for the entire executable file, it was determined that the integrity of the executable file was verified.
- an executable file In the case of an executable file, it is managed in units of blocks by dividing the executable file into a certain unit of capacity. In the case of the conventional integrity verification method, blocks of the executable file that are not required for actual program execution are also allocated to memory, resulting in performance degradation. However, in order to verify the integrity, a hash value for the entire executable file must be calculated, resulting in a problem of performance degradation due to an increase in computational amount.
- the present disclosure is to solve the above-described problem, and an object of the present disclosure is to provide an electronic device capable of verifying integrity for each block of an executable file, and a method for controlling the same.
- a method of controlling an electronic device includes: obtaining an executable file for executing a program; Dividing the obtained executable file into blocks; Obtaining a plurality of first hash values for each of the divided blocks; Adding information on the block and the plurality of first hash values to the executable file; And encrypting the plurality of first hash values using a private key to obtain a signature value, and adding the signature value to the executable file.
- the electronic device includes a memory for storing at least one instruction, and a processor, and the processor executes a program by executing the instruction.
- a program by executing the instruction.
- To obtain an executable file for divide the obtained executable file into blocks, obtain a plurality of first hash values for each of the divided blocks, and obtain information on the block and the plurality of first hash values. It is added to the executable file, the plurality of first hash values are encrypted using a private key to obtain a signature value, and the signature value is added to the executable file.
- an amount of computation required for calculating a hash value may be reduced, so that a time required for verifying the integrity of an executable file may be shortened.
- FIG. 1 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
- FIG. 2 is a diagram illustrating a configuration of an executable file for performing integrity verification for each block of an executable file according to an embodiment of the present disclosure.
- FIG. 3 is a diagram illustrating a method of verifying integrity for each block of an executable file according to an embodiment of the present disclosure.
- FIG. 4 is a diagram illustrating an executable file for verifying integrity of an entire executable file when the size of the executable file is less than or equal to a threshold value, according to an embodiment of the present disclosure.
- FIG. 5 is a flowchart illustrating a method for generating an executable file for verifying integrity for each block according to an embodiment of the present disclosure.
- FIG. 6 is a flowchart illustrating a method of verifying the integrity of an executable file for each block of an electronic device according to an embodiment of the present disclosure.
- FIG. 7 is a flowchart illustrating an integrity verification method according to a capacity of an executable file according to an embodiment of the present disclosure.
- FIG. 8 is a block diagram illustrating a detailed configuration of an electronic device according to an embodiment of the present disclosure.
- expressions such as “A or B,” “at least one of A or/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
- “A or B,” “at least one of A and B,” or “at least one of A or B” includes (1) at least one A, (2) at least one B, Or (3) it may refer to all cases including both at least one A and at least one B.
- Expressions such as “first,” “second,” “first,” or “second,” used in this document can modify various elements regardless of their order and/or importance, and It is used to distinguish it from other components and does not limit the components.
- Some component eg, the first component
- another component eg, the second component
- the certain component may be directly connected to the other component or may be connected through another component (eg, a third component).
- a component eg, a first component
- the component and the It may be understood that no other component (eg, a third component) exists between the different components.
- a device configured to may mean that the device “can” along with other devices or parts.
- a subprocessor configured (or configured) to perform A, B, and C means a dedicated processor (eg, an embedded processor) for performing the operation, or executing one or more software programs stored in a memory device. By doing so, it may mean a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.
- unit or “module” used in the present disclosure includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic blocks, parts, or circuits. I can.
- the “unit” or “module” may be an integrally configured part or a minimum unit that performs one or more functions, or a part thereof.
- the module may be configured as an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- FIG. 1 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
- the electronic device 100 may include a memory 110 and a processor 120.
- the electronic device 100 may be implemented as various types of devices such as a TV, a PC, a laptop PC, a mobile phone, a tablet PC, a PDA, an MP3 player, a kiosk, and an electronic frame.
- a portable type device such as a mobile phone, tablet PC, PDA, MP3 player, and laptop PC, it may be referred to as a mobile device, but in this specification, it will be collectively referred to as an electronic device.
- the memory 110 may install and store various types of data such as programs and files such as applications.
- the processor 120 may access and use data stored in the memory 110 or may store new data in the memory 110.
- the processor 120 may execute a program installed in the memory 110.
- the processor 120 may install an application received from the outside in the memory 110.
- the memory 110 may store instructions or data related to at least one other component of the electronic device 100.
- the memory 110 may be implemented as a nonvolatile memory, a volatile memory, a flash memory, a hard disk drive (HDD), a solid state drive (SSD), or the like.
- the memory 110 is accessed by the processor 120, and data read/write/edit/delete/update by the processor 120 may be performed.
- the term memory refers to a memory 110, a ROM (not shown) in the processor 120, a RAM (not shown), or a memory card (not shown) mounted in the electronic device 100 (eg, micro SD Card, memory stick).
- it may be allocated to the memory 110 for each block unit in which the executable file is divided.
- the processor 120 is electrically connected to the memory 110 to control overall operations and functions of the electronic device 100.
- the processor 120 may be implemented as a digital signal processor (DSP), a microprocessor, or a time controller (TCON), but is not limited thereto, and the central processing unit ( central processing unit (CPU)), microcontroller unit (MCU), micro processing unit (MPU), controller, application processor (AP), communication processor (CP), ARM processor
- the processor 120 may include one or more of them, or may be defined in terms of a corresponding term.
- the processor 120 may be implemented as a system on chip (SoC) or a large scale integration (LSI) with a built-in processing algorithm, or an FPGA ( Field programmable gate array) can also be implemented.
- SoC system on chip
- LSI large scale integration
- FPGA Field programmable gate array
- an executable file is a file that can perform a specified operation according to a coded command.
- an executable file means a computer file that performs a directed task according to a coded command, and access to a resource may be required according to the instructed task content.
- Files containing instructions for interpreters such as scripts or bytecodes, CPUs or virtual machines may also be included in the executable file.
- executable files may be files with extensions such as'.exe' in MS-DOS or Windows, and elf files in Linux, files with extensions such as'.dex' in Android apps, etc. This may be representative, but is not limited thereto.
- the processor 120 may obtain an executable file from an external device or a server.
- the present invention is not limited thereto, and the processor 120 may directly obtain the executable file from the user.
- the processor 120 may divide the acquired executable file into blocks.
- An executable file for executing a program is divided and managed in block units.
- the block unit refers to a unit that manages the executable file in the operating system. For example, depending on the size of the executable file, it may be divided into a certain block unit. That is, when the size of the executable file is large, the number of blocks to be divided may be relatively larger than the number of blocks to be divided when the size of the executable file is small.
- each of the divided blocks may have the same capacity.
- a memory to which an executable file and a block of the executable file are allocated may be a volatile memory such as random access memory (RAM).
- the processor 120 may obtain a plurality of first hash values for each divided block. Specifically, the processor 120 may calculate a hash value for each divided block based on a preset algorithm, and obtain a plurality of first hash values for the block of the executable file based on the calculated hash value.
- the preset algorithm is an algorithm for a method for calculating a hash value for a block or file, and may include a hash function. Examples of preset hash algorithms include MD5 and SHA256, and the preset algorithm may be set by a user or may be set by a manufacturer of an executable file.
- the processor 120 may obtain a plurality of first hash values for each of the divided blocks, and may add information on the block and a plurality of first hash values to the executable file.
- the information on a block may include information on a capacity of a block, information on the number of blocks, and information on an algorithm that obtains a plurality of first hash values.
- the information on the block may further include access control information on the user's access right to an executable file.
- the processor 120 may encrypt the plurality of first hash values through a private key to obtain signature values for the plurality of first hash values, and add the signature values to the executable file.
- the executable file is divided into blocks, and after the hash value for each block is calculated, the processor 120 encrypts the calculated hash value using a private key to sign the hash value for each block. You can get the value.
- the processor 120 may add the acquired signature value to the executable file. That is, according to an embodiment of the present disclosure, the processor 120 adds information on a plurality of first hash values and blocks to an executable file, adds signature values for a plurality of first hash values, and executes the corresponding execution. Integrity verification can be performed on a file by block basis.
- the processor 120 decrypts the signature value added to the executable file through a public key to obtain a signature value. It is possible to obtain a plurality of second hash values for.
- the public key may be a public key corresponding to a private key obtained by encrypting a plurality of first hash values.
- the processor 120 may identify whether the plurality of first hash values and the plurality of second hash values are the same in order to verify the integrity of the plurality of first hash values added to the executable file.
- the processor 120 determines that the integrity of the plurality of first hash values has been verified, and the plurality of first hashes added to the executable file Information about values and blocks can be allocated to memory.
- the processor 120 may connect information on a plurality of first hash values and blocks allocated to a memory to file information on a kernel memory. That is, the processor 120 may connect information on a plurality of first hash values and blocks to file information on a kernel memory in which management information of an operating system is stored, and an operation corresponding to a command for an executable file of a user may be performed. .
- the processor 120 determines that the integrity of the plurality of first hash values has not been verified, and cancels execution of the executable file. I can.
- the processor 120 may allocate at least one block to the memory. Further, the processor 120 may calculate a hash value for at least one block allocated to the memory, and obtain the calculated hash value as a third hash value for at least one block.
- the processor 120 identifies a hash value corresponding to at least one block among a plurality of first hash values as a fourth hash value in order to verify the integrity of at least one block allocated to the memory. It is possible to identify whether the hash value and the fourth hash value are the same.
- the processor 120 allocates the second block to memory and calculates a hash value for the second block.
- the calculated hash value may be obtained as a third hash value for the second block.
- the processor 120 identifies a hash value corresponding to the second block among the first hash values as a fourth hash value, identifies whether the third hash value and the fourth hash value are the same, and stores the second block. The integrity of the data can be verified.
- the third block and the fourth block are allocated to the memory, and the third block And a hash value for the fourth block may be calculated, and the calculated hash value may be obtained as a third hash value for the third block and the fourth block.
- the processor 120 identifies the hash values corresponding to the third block and the fourth block among the first hash values as a fourth hash value, and identifies whether the third hash value and the fourth hash value are the same, Integrity of the third block and the fourth block may be verified.
- the processor 120 determines that the integrity of at least one block corresponding to the third hash value has been verified, and executes an instruction corresponding to the at least one block. You can do it. If it is identified that the third hash value and the fourth hash value are not the same, the processor 120 determines that the integrity of at least one block corresponding to the third hash value has not been verified, and corresponds to at least one block. May not perform the command
- the above-described method of performing integrity verification for each block may be performed when the capacity of an executable file exceeds a threshold value. That is, in the case of an executable file that is less than or equal to the threshold value, even if the hash value for the entire executable file is calculated, the amount of computation is not large, so the processor 120 calculates the hash value for the entire executable file and encrypts the calculated hash value. By acquiring the signature value, the acquired signature value can be added to the executable file.
- the threshold value for the size of the executable file may be set by the user or may be set by the manufacturer of the executable file.
- the processor 120 identifies the size of the executable file, and if the size of the executable file is less than or equal to the threshold value, the processor 120 calculates a hash value for the entire executable file without dividing the executable file into blocks, and controls the entire executable file. 5 A hash value can be obtained. In addition, the processor 120 may encrypt the fifth hash value through the private key to obtain a signature value for the fifth hash value, and add the signature value to the executable file.
- the processor 120 may allocate the entire executable file to memory and obtain a sixth hash value for the entire executable file.
- the processor 120 may obtain the seventh hash value by decrypting the signature value added to the executable file through the public key.
- the processor 120 may identify whether the sixth hash value and the seventh hash value are the same in order to verify the integrity of the executable file. If the sixth hash value and the seventh hash value are the same, the processor 120 may determine that the integrity of the executable file has been verified and execute the executable file. If the sixth hash value and the seventh hash value are not the same, the processor 120 may determine that the integrity of the executable file has not been verified, and thus may not execute the executable file.
- the processor 120 may divide the executable file into blocks and obtain a plurality of first hash values for each of the divided blocks.
- the processor 120 adds information on a plurality of first hash values and blocks to the executable file, encrypts the plurality of first hash values through a private key to obtain a signature value, and adds the signature value to the executable file. can do.
- the processor 120 may perform integrity verification for each block unit of the executable file. That is, integrity verification is performed for each block unit for an executable file that requires a large amount of computation for integrity verification, so that the amount of computation required for integrity verification may be reduced.
- the description has been limited to generating a signature value using a hash value and a private key, but the present invention is not limited thereto, and any technique for encrypting data may be used.
- FIG. 2 is a diagram illustrating a configuration of an executable file for performing integrity verification for each block of an executable file according to an embodiment of the present disclosure.
- the execution file 200 is divided into block units 210-1, 210-2, 210-3, ... 210-N.
- the electronic device may divide the execution file 200 in units of a predetermined block according to the capacity of the execution file 200. Each of the divided blocks may have the same capacity.
- Information such as the number of divided blocks (Block Count) (e.g., N), and the capacity of one block (Block Size) (e.g., 4 KB) is included in the information 220 on the block and is included in the executable file 200.
- Block Information 220 may include information on a capacity of a block, information on the number of blocks, and information on an algorithm that obtains a hash value.
- other information including access control information about the user's access right to the executable file 200 may be further included in the block information.
- the electronic device 100 calculates a hash value for each of the divided blocks, obtains a plurality of first hash values 230-1, 230-2, 230-3, ..., 230-N, and obtains a plurality of The first hash values 230-1, 230-2, 230-3, ..., 230-N of may be added to the executable file 200.
- the plurality of first hash values 230-1, 230-2, 230-3, ..., 230-N are the hash values 230-1 for the first block 210-1, and the second block 210-
- a hash value 230-N for the Nth block 210-N may be included.
- the electronic device 100 may obtain a signature value 240 by encrypting a plurality of first hash values through a private key, and add the acquired signature value 240 to the executable file 200.
- the electronic device may perform integrity verification on the executable file for each block.
- FIG. 3 is a diagram illustrating a method of verifying integrity for each block of an executable file according to an embodiment of the present disclosure.
- the electronic device 100 decrypts the signature value 340 added to the executable file 300 through a public key, 2 A hash value can be obtained.
- the electronic device 100 It is possible to identify whether the hash values are the same (step 1).
- the electronic device 100 When the plurality of first hash values 330-1, 330-2, 330-3, ..., 330 -N and the plurality of second hash values are identified as the same, the electronic device 100 The information 320 on the block added to 300) and a plurality of first hash values 320, 330-1, 330-2, ..., 330-N may be allocated to the memory 400 (step 2). .
- the electronic device 100 determines that the plurality of first hash values and the plurality of second hash values 320, 330-1, 330-2, ..., 330-N are not identical, the executable file 300 You can undo the action for. That is, the electronic device 100 may verify the integrity of the plurality of first hash values through steps 1 and 2. In addition, when the integrity of the first hash value is verified, the electronic device 100 may execute the executable file 300.
- the electronic device 100 allocates at least one block to the memory 400.
- the user command corresponding to the at least one block may be a user command for executing the code included in the at least one block.
- a user command corresponding to the second block 310-2 is input, and the second block 310-2 is allocated to the memory 400.
- the user command corresponding to the second block 310-2 may be a user command for executing the code included in the second block 310-2.
- at least one block is shown as one second block 310-2, but the present invention is not limited thereto, and a user command corresponding to a plurality of blocks is input, and a plurality of blocks are allocated to the memory 400.
- the electronic device 100 may obtain a third hash value for at least one block by calculating a hash value for at least one block allocated to the memory 400.
- the electronic device 100 may identify whether a fourth hash value corresponding to at least one block among a plurality of first hash values and a third hash value are the same in order to verify the integrity of at least one block. Yes (step 4).
- the electronic device 100 calculates a hash value for the second block 310-2 allocated to the memory 400 and calculates a third hash value for the second block 310-2.
- the integrity of the second block may be verified by acquiring and identifying whether the fourth hash value 330-2 corresponding to the second block and the third hash value among the plurality of first hash values are the same.
- the electronic device 100 may execute a command corresponding to at least one block. However, if it is identified that the third hash value and the fourth hash value are not the same, the electronic device 100 may not perform a command corresponding to at least one block.
- the electronic device may perform integrity verification on an executable file for each block.
- the electronic device may not cancel the execution of the entire executable file, but may not execute only the command corresponding to the block whose integrity has not been verified. It can be driven efficiently.
- FIG. 4 is a diagram illustrating an executable file for verifying integrity of an entire executable file when the size of an executable file is less than or equal to a threshold value according to an embodiment of the present disclosure.
- the electronic device 100 may identify the capacity of the executable file 500. Further, when the capacity of the executable file 500 is less than or equal to the threshold value, the electronic device 100 calculates a hash value for the executable file portion 510 without dividing the executable file 500 into blocks and calculates the fifth hash value. Can be obtained. In addition, the electronic device 100 may encrypt the fifth hash value through the private key to obtain a signature value 520 for the fifth hash value and add the signature value 520 to the executable file 500. That is, in the case of the executable file 500 whose capacity is less than or equal to the threshold value, integrity verification for the entire executable file 500 will be performed through the executable file 500 to which the signature value 520 is added to the executable file part 510. I can.
- the electronic device 100 allocates the executable file 500 to the memory, and a hash value for the entire portion 510 of the executable file By calculating, it is possible to obtain a sixth hash value. Further, the electronic device 100 may obtain the seventh hash value by decrypting the signature value 520 added to the executable file 500 through the public key.
- the electronic device 100 may identify whether the sixth hash value and the seventh hash value are the same in order to verify the integrity of the executable file 500. When the sixth hash value and the seventh hash value are the same, the electronic device 100 may determine that the integrity of the entire execution file 500 has been verified, and execute the execution file 500. If the 6 hash value and the seventh hash value are not the same, the electronic device 100 may determine that the integrity of the entire execution file 500 has not been verified, and may not execute the execution file 500.
- the electronic device 100 divides the executable file into blocks, obtains a hash value for each block, and performs integrity verification for each block. can do.
- FIG. 5 is a flowchart illustrating a method for generating an executable file for verifying integrity for each block according to an embodiment of the present disclosure.
- the electronic device may acquire an execution file (S510). Then, the electronic device may divide the execution file for each block unit (S520).
- the block unit refers to a unit that manages an executable file in the operating system.
- an executable file may be divided in units of a predetermined block according to the size of the executable file.
- the electronic device may obtain a plurality of first hash values for each of the divided blocks (S530). Specifically, the electronic device may obtain a plurality of first hash values by calculating a hash value for each of the divided blocks. The electronic device may calculate a hash value for each divided block based on a preset algorithm, and obtain a plurality of first hash values for the block of the executable file based on the calculated hash value.
- the preset algorithm is an algorithm for a method for calculating a hash value for a block or file, and may include a hash function.
- the electronic device may add information on the block and a plurality of first hash values to the executable file (S540).
- the information on a block may include information on a capacity of a block, information on the number of blocks, and information on an algorithm that obtains a hash value.
- the information on the block may further include access control information on the user's access right to an executable file.
- the electronic device may encrypt the plurality of first hash values using the private key to obtain a signature value and add the signature value to the executable file (S550).
- the electronic device may add block information, a plurality of first hash values, and signature values to the execution file through the above-described process to verify the integrity of the execution file for each block unit.
- FIG. 6 is a flowchart illustrating a method of verifying the integrity of an executable file for each block of an electronic device according to an embodiment of the present disclosure.
- the electronic device may receive a user command for executing an executable file (S605). Then, when a user command for executing the executable file is input, the electronic device may obtain a plurality of second hash values by decrypting the signature value added to the executable file through the public key (S610).
- the public key may be a public key corresponding to a private key obtained by encrypting a plurality of first hash values.
- the electronic device may identify whether the plurality of first hash values and the plurality of second hash values added to the executable file are the same (S620). If the plurality of first hash values and the plurality of second hash values are identified as the same (S620-Y), the electronic device determines that the integrity of the first hash value has been verified, and information on the block and the plurality of first hashes A value may be allocated to the memory (S640).
- the electronic device may allocate at least one block to the memory (S640).
- the electronic device obtains a third hash value for at least one block allocated to the memory (S650), and whether the fourth hash value and the third hash value corresponding to at least one block among the first hash values are the same. Whether it can be identified (S660).
- the electronic device determines that the integrity of at least one block allocated to the memory has been verified, and executes a command corresponding to the at least one block. It can be performed (S670). And, if it is identified that the fourth hash value and the third hash value are not identical (S660-N), the electronic device determines that the integrity of at least one block allocated to the memory has not been verified, and at least one block The command for may not be performed (S680).
- the electronic device determines that the integrity of the first hash value has not been verified, and cancels execution of the executable file. Can be (S690).
- the electronic device may verify the integrity of the executable file for each block through the above-described process.
- FIG. 7 is a flowchart illustrating an integrity verification method according to a capacity of an executable file according to an embodiment of the present disclosure.
- the electronic device may acquire an execution file (S710). Then, the electronic device may identify whether the capacity of the executable file is less than or equal to the threshold value (S720).
- the electronic device may obtain a fifth hash value for the entire executable file without dividing the executable file into blocks (S730). Then, the electronic device may encrypt the fifth hash value through the private key to obtain the signature value and add the signature value to the executable file (S740).
- the electronic device may divide the executable file into blocks (S750).
- the threshold value may be set by the user or may be set by the manufacturer of the executable file.
- the electronic device may acquire a plurality of first hash values for each of the divided blocks (S760), and add information on the block and a plurality of first hash values to the executable file (S770).
- the electronic device may encrypt information on a plurality of first hash values through a private key to obtain a signature value and add the signature value to the executable file (S780).
- the electronic device may perform integrity verification for each block of the executable file. That is, integrity verification is performed for each block unit for an executable file that requires a large amount of computation for integrity verification, so that the amount of computation required for integrity verification may be reduced.
- FIG. 8 is a block diagram illustrating a detailed configuration of an electronic device according to an embodiment of the present disclosure.
- the electronic device 800 may include a memory 810, a processor 820, a display 830, a communication interface 840, and an input interface 850. Since the memory 810 and the processor 820 have the same configuration as the memory and processor illustrated in FIG. 1, redundant content will be omitted.
- the display 830 may display an execution screen for the executable file. have.
- the display 830 may display a user interface (UI) indicating that the integrity of the executable file is not verified.
- UI user interface
- the display 830 may display a screen in which the command for at least one block is executed. .
- the display 830 may display a UI indicating that the integrity of the at least one block is not verified.
- the communication interface 840 is a component that communicates with various types of external devices or servers according to various types of communication methods.
- the communication interface 840 may include a Wi-Fi chip, a Bluetooth chip, a wireless communication chip, and an NFC chip.
- the processor 820 may communicate with various external devices or servers using the communication interface 840.
- the WiFi chip and the Bluetooth chip perform communication in a WiFi method and a Bluetooth method, respectively.
- various types of connection information such as an SSID and a session key may be transmitted and received first, and then various types of information may be transmitted and received after a communication connection using the same.
- the wireless communication chip refers to a chip that performs communication according to various communication standards such as IEEE, Zigbee, 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), and Long Term Evoloution (LTE).
- the NFC chip refers to a chip that operates in the NFC (Near Field Communication) method using a 13.56 MHz band among various RF-ID frequency bands such as 135 kHz, 13.56 MHz, 433 MHz, 860 to 960 MHz, and 2.45 GHz.
- NFC Near Field Communication
- the communication interface 840 may communicate with an external device or server, and obtain an executable file from the external device or server.
- a plurality of first hash values and signature values for the executable file are added to the executable file, and a plurality of first hash values and signature values are added to the executable file. It is transmitted to an external device through the communication interface 840, and integrity of an executable file may be verified for each block in the external device.
- a plurality of first hash values and signature values for an executable file are added to an executable file from an external device, and an executable file to which a plurality of first hash values and signature values are added is communicated. It is transmitted to the electronic device 800 through the interface 840, and the integrity of the executable file in the electronic device 800 may be verified for each block.
- the input interface 850 may receive a command for an executable file of a user. Specifically, when an execution command for the user's execution file is input through the input interface 850, the processor 820 determines the plurality of first hashes when the integrity of the plurality of first hash values added to the execution file is verified. You can allocate information about the value to memory and execute the executable file. And, when a command for at least one block for the user's executable file is input through the input interface 850, the processor 820, when the integrity of the at least one block is verified, corresponding to at least one block. Commands can be executed.
- the various embodiments described above may be implemented in a recording medium that can be read by a computer or a similar device using software, hardware, or a combination thereof.
- the embodiments described in the present disclosure include Application Specific Integrated Circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs). ), processors, controllers, micro-controllers, microprocessors, and electric units for performing other functions.
- ASICs Application Specific Integrated Circuits
- DSPs digital signal processors
- DSPDs digital signal processing devices
- PLDs programmable logic devices
- FPGAs field programmable gate arrays
- processors controllers, micro-controllers, microprocessors, and electric units for performing other functions.
- the embodiments described herein may be implemented by the processor itself.
- a non-transitory readable medium may be mounted and used in various devices.
- the non-transitory readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short moment, such as a register, a cache, and a memory.
- programs for performing the above-described various methods may be provided by being stored in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, or the like.
- a method according to various embodiments disclosed in this document may be provided by being included in a computer program product.
- Computer program products can be traded between sellers and buyers as commodities.
- the computer program product may be distributed online in the form of a device-readable storage medium (eg, compact disc read only memory (CD-ROM)) or through an application store (eg, Play StoreTM).
- an application store eg, Play StoreTM
- at least some of the computer program products may be temporarily stored or temporarily generated in a storage medium such as a server of a manufacturer, a server of an application store, or a memory of a relay server.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
전자 장치 및 이의 제어 방법이 제공된다. 본 전자 장치의 제어 방법은, 프로그램을 실행하기 위한 실행 파일을 획득하는 단계; 상기 획득된 실행 파일을 블록 단위로 분할하는 단계; 상기 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하는 단계; 상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 상기 실행 파일에 추가하는 단계; 및 상기 복수의 제1 해시 값을 개인키를 통해 암호화 하여 서명 값을 획득하여 상기 서명 값을 상기 실행 파일에 추가하는 단계;를 포함한다.
Description
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 더욱 상세하게는 프로그램을 실행하기 위한 실행 파일에서 실제 사용되는 블록에 대한 해시 값 만을 계산해, 실제 사용되는 블록에 대한 무결성을 검증하는 전자 장치 및 이의 제어 방법에 관한 것이다.
최근 컴퓨터 기술의 발전으로 현대인의 삶이 편하게 바뀌고 있다. 하지만, 컴퓨터 기술 발전의 이면에는 이를 악용하여 부당한 이득을 얻으려는 시도도 증가하고 있다.
예로, 프로그램을 실행하기 위한 실행 파일을 불법으로 위조되거나 변조하여 사용하는 행위가 증가되고 있다. 실행 파일이 불법으로 위조되거나 변조되는 경우, 실행 파일을 사용하는 사용자의 개인 정보가 노출되거나, 실행 파일에 대한 저작권이 침해되는 경우가 발생될 수 있다.
또한, 최근에는 프로그램을 실행하기 위한 실행 파일을 불법으로 사용하기 위한 다양한 해킹 기술이 등장하고 있다.
따라서, 실행 파일의 위조나 변조를 방지하기 위해, 종래에는 실행 파일에 실행 파일 전체에 대한 해시 값을 계산한 후, 해시 값을 암호화한 서명 값을 실행 파일에 추가하고, 프로그램을 실행하기 위한 사용자 명령이 입력되면, 프로그램 실행 파일 전체를 메모리에 할당하여 실행 파일 전체에 대한 해시 값을 계산하고, 실행 파일에 추가된 서명 값을 복호화하여 계산된 해시 값과 비교하여 실행 파일에 대한 변조 여부를 확인하는 무결성 검증을 수행하였다. 즉, 종래에는 실행 파일에 추가된 서명 값을 복호화하여 획득된 해시 값이 실행 파일 전체에 대해 계산된 해시 값과 동일한 경우, 해당 실행 파일에 대한 무결성이 검증된 것으로 판단하였다.
실행 파일의 경우 일정한 용량 단위로 실행 파일을 분할한 블록 단위로 관리되는데, 종래의 무결성 검증 방법의 경우 실제 프로그램의 실행에 필요하지 않은 실행 파일의 블록들도 함께 메모리에 할당되어 성능 저하가 발생되고, 무결성을 검증하기 위해 실행 파일 전체에 대한 해시 값을 계산해야 되어 연산량 증가로 인한 성능 저하의 문제점이 발생될 수 있었다.
본 개시는 상술한 문제점을 해결하기 위한 것으로, 본 개시의 목적은 실행 파일의 블록 단위 별로 무결성을 검증할 수 있는 전자 장치 및 이의 제어 방법을 제공함에 있다.
본 개시의 일 실시 예에 따른, 전자 장치의 제어 방법은, 프로그램을 실행하기 위한 실행 파일을 획득하는 단계; 상기 획득된 실행 파일을 블록 단위로 분할하는 단계; 상기 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하는 단계; 상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 상기 실행 파일에 추가하는 단계; 및 상기 복수의 제1 해시 값을 개인키를 통해 암호화 하여 서명 값을 획득하여 상기 서명 값을 상기 실행 파일에 추가하는 단계;를 포함한다.
그리고, 상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른, 전자 장치는, 적어도 하나의 인스트럭션을 저장하는 메모리, 및 프로세서를 포함하고, 상기 프로세서는 상기 인스트럭션을 실행함으로써, 프로그램을 실행하기 위한 실행 파일을 획득하고, 상기 획득된 실행 파일을 블록 단위로 분할하고, 상기 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하고, 상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 상기 실행 파일에 추가하고, 상기 복수의 제1 해시 값을 개인키를 통해 암호화 하여 서명 값을 획득하여 상기 서명 값을 상기 실행 파일에 추가한다.
본 개시의 다양한 실시 예에 따르면, 실행 파일의 블록 단위 별로 무결성을 검증하여, 해시 값 계산에 필요한 연산량이 줄어들어, 실행 파일의 무결성 검증에 필요한 시간이 단축될 수 있다.
도 1은 본 개시의 일 실시 예에 따른, 전자 장치의 구성을 나타내는 블록도 이다.
도 2는 본 개시의 일 실시 예에 따른, 실행 파일의 블록 단위 별로 무결성 검증을 수행하기 위한, 실행 파일의 구성을 도시한 도면이다.
도 3은 본 개시의 일 실시 예에 따른, 실행 파일의 블록 단위 별 무결성을 검증하는 방법을 나타낸 도면이다.
도 4는 본 개시의 일 실시 예에 따른, 실행 파일의 용량이 임계 값 이하인 경우 실행 파일 전체에 대한 무결성을 검증하기 위한 실행 파일을 나타내는 도면이다.
도 5는 본 개시의 일 실시 예에 따른 블록 단위 별로 무결성을 검증하기 위한 실행 파일을 생성하기 위한 방법을 나타내는 흐름도 이다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 블록 단위 별로 실행 파일의 무결성을 검증하는 방법을 나타내는 흐름도 이다.
도 7은 본 개시의 일 실시 예에 따른, 실행 파일의 용량에 따른 무결성 검증 방법을 나타내는 흐름도 이다.
도 8은 본 개시의 일 실시 예에 따른, 전자 장치의 구체적인 구성을 나타내는 블록도이다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 문서의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다. 본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
이하에서는 도면을 참조하여 본 발명에 대해 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시 예에 따른, 전자 장치의 구성을 나타내는 블록도이다.
도 1을 참조하면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다.
구체적으로, 전자 장치(100)는 TV, PC, 랩탑 PC, 휴대폰, 태블릿 PC, PDA, MP3 플레이어, 키오스크, 전자 액자 등과 같이 다양한 유형의 장치로 구현될 수 있다. 휴대폰이나 태블릿 PC, PDA, MP3 플레이어, 랩탑 PC 등과 같이 휴대 가능한 유형의 장치로 구현되는 경우에는 모바일 디바이스로 명명할 수도 있으나, 본 명세서에서는 전자 장치로 통칭하여 설명한다.
메모리(110)는 어플리케이션과 같은 프로그램 및 파일 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다. 프로세서(120)는 메모리(110)에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 메모리(110)에 저장할 수도 있다. 또한, 프로세서(120)는 메모리(110)에 설치된 프로그램을 실행할 수도 있다. 또한, 프로세서(120)는 외부로부터 수신한 어플리케이션을 메모리(110)에 설치할 수 있다.
구체적으로, 메모리(110)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령(instruction) 또는 데이터를 저장할 수 있다. 특히, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 본 개시에 따른 실행 파일에 대한 무결성 검증을 위해, 실행 파일을 분할한 블록 단위 별로 메모리(110)에 할당될 수 있다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
특히, 프로세서(120)는 메모리(110)에 저장된 적어도 하나의 명령어를 실행함으로써, 프로그램을 실행하기 위한 실행 파일(executable file)을 획득할 수 있다. 실행 파일(executable file)이란 단순히 데이터만 담고 있는 파일과 달리 코드화된 명령에 따라 지시된 작업을 수행할 수 있는 파일이다. 구체적으로, 실행 파일은 코드화된 명령에 따라 지시된 작업을 수행하도록 하는 컴퓨터 파일을 의미 하며, 지시된 작업 내용에 따라 리소스에 접근이 필요할 수 있다. 스크립트나 바이트코드와 같은 인터프리터, CPU 또는 가상 머신을 위한 명령을 포함하는 파일도 실행 파일에 포함될 수 있다. 예를 들어, 실행 파일은 MS-DOS나 Windows에서의 '.exe' 등의 확장자를 갖는 파일들일 수 있으며, 리눅스에서의 elf 파일, 안드로이드 앱 내에서의 '.dex' 등의 확장자를 갖는 파일 등이 대표적일 수 있으며, 이에 한정되지는 않는다.
본 개시의 일 실시 예에 따르면, 프로세서(120)는 외부 장치 또는 서버로부터 실행 파일을 획득할 수 있다. 다만, 이에 한정되지 않으며, 프로세서(120)는 사용자로부터 직접 실행 파일을 획득할 수 있다.
그리고, 프로세서(120)는 획득된 실행 파일을 블록 단위로 분할 할 수 있다. 프로그램을 실행하기 위한 실행 파일은 블록 단위로 분할되어 관리되는데, 구체적으로 블록 단위는 운영체제에서 실행 파일을 관리하는 단위를 의미한다. 예로, 실행 파일의 용량에 따라 일정 블록 단위로 분할 될 수 있다. 즉, 실행 파일의 용량이 큰 경우 분할되는 블록의 개수가 실행 파일의 용량이 작은 경우 분할되는 블록의 개수보다 상대적으로 많을 수 있다. 그리고, 본 개시의 일 실시 예에 따르면, 분할된 블록 각각의 용량은 서로 동일 할 수 있다.
즉, 프로그램을 실행하기 위한 실행 파일이 실행되는 경우, 실행 파일이 블록 단위로 분할 되어 관리되므로, 실행 파일 전체가 메모리에 할당되지 않고, 분할된 블록 중 실행 파일의 실행에 사용되는 블록만 메모리에 할당된다. 그리고, 프로그램이 실행되는 중 실행 파일의 블록 중 적어도 하나의 블록에 대응되는 사용자 명령이 입력되는 경우, 사용자의 명령에 대응되는 블록이 메모리에 할당될 수 있다. 적어도 하나의 블록에 대응되는 사용자 명령은 적어도 하나의 블록에 포함된 코드를 실행하기 위한 사용자 명령일 수 있다. 본 개시의 일 실시 예에 따르면, 실행 파일 및 실행 파일의 블록이 할당되는 메모리는 RAM(Random Access Memory)과 같은 휘발성 메모리 일 수 있다.
프로세서(120)는 실행파일이 블록 단위로 분할된 경우, 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득할 수 있다. 구체적으로, 프로세서(120)는 기 설정된 알고리즘을 바탕으로 분할된 블록 각각에 대한 해시 값을 계산하고, 계산된 해시 값을 바탕으로 실행 파일의 블록에 대한 복수의 제1 해시 값을 획득할 수 있다. 기 설정된 알고리즘은 블록 또는 파일에 대한 해시 값을 계산하기 위한 방법에 대한 알고리즘으로, 해시 함수를 포함할 수 있다. 기 설정된 해시 알고리즘의 예로 MD5, SHA256 등이 있으며, 기 설정된 알고리즘은 사용자에 의해 설정되거나, 실행 파일의 제조사에 의해 설정될 수 있다.
프로세서(120)는 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하고, 블록에 대한 정보 및 복수의 제1 해시 값을 실행 파일에 추가할 수 있다. 블록에 대한 정보는 블록의 용량, 블록의 개수에 대한 정보 및 복수의 제1 해시 값을 획득한 알고리즘에 대한 정보를 포함할 수 있다. 본 개시의 일 실시 예에 따르면, 블록에 대한 정보에는 사용자의 실행 파일 접근 권한에 대한 접근 제어 정보를 더 포함 할 수 있다.
그리고, 프로세서(120)는 복수의 제1 해시 값을 개인키 (private key) 를 통해 암호화 하여 복수의 제1 해시 값에 대한 서명 값을 획득하여 서명 값을 실행 파일에 추가할 수 있다. 구체적으로, 실행 파일이 블록 단위로 분할 되고, 각각의 블록에 대한 해시 값이 계산된 후, 프로세서(120)는 계산된 해시 값을 개인키를 사용해 암호화 하여 각각의 블록에 대한 해시 값에 대한 서명 값을 획득할 수 있다. 그리고, 프로세서(120)는 획득된 서명 값을 실행 파일에 추가할 수 있다. 즉, 본 개시의 일 실시 예에 따르면, 프로세서(120)는 실행 파일에 복수의 제1 해시 값 및 블록에 대한 정보를 추가하고, 복수의 제1 해시 값에 대한 서명 값을 추가하여, 해당 실행 파일에 대해 블록 단위 별로 무결성 검증을 수행할 수 있다.
프로세서(120)는 복수의 제1 해시 값, 블록에 대한 정보 및 서명 값이 추가된 실행 파일을 실행 하기 위한 사용자 명령이 입력되면, 실행 파일에 추가된 서명 값을 공개키를 통해 복호화 하여 서명 값에 대한 복수의 제2 해시 값을 획득할 수 있다. 공개키는 복수의 제1 해시 값을 암호화한 개인키에 대응되는 공개키 일 수 있다. 그리고, 프로세서(120)는 실행 파일에 추가된 복수의 제1 해시 값에 대한 무결성을 검증하기 위해, 복수의 제1 해시 값과 복수의 제2 해시 값이 동일한지 여부를 식별할 수 있다.
복수의 제1 해시 값과 복수의 제2 해시 값이 동일한 것으로 식별되면, 프로세서(120)는 복수의 제1 해시 값에 대한 무결성이 검증된 것으로 판단하고, 실행 파일에 추가된 복수의 제1 해시 값 및 블록에 대한 정보를 메모리에 할당할 수 있다. 본 개시의 일 실시 예에 따르면, 프로세서(120)는 메모리에 할당된 복수의 제1 해시 값 및 블록에 대한 정보를 커널 메모리 상의 파일 정보에 연결할 수 있다. 즉, 프로세서(120)는 복수의 제1 해시 값 및 블록에 대한 정보를 운영체제의 관리정보가 저장된 커널 메모리 상의 파일 정보에 연결하여, 사용자의 실행 파일에 대한 명령에 대응되는 동작이 수행될 수 있다.
복수의 제1 해시 값과 복수의 제2 해시 값이 동일하지 않은 것으로 식별되면, 프로세서(120)는 복수의 제1 해시 값에 대한 무결성이 검증되지 않은 것으로 판단하고, 실행 파일의 실행을 취소할 수 있다.
그리고, 실행 파일에 추가된 제1 해시 값에 대한 무결성이 검증되어, 블록에 대한 정보 및 복수의 제1 해시 값이 메모리에 할당되고 실행 파일이 실행되는 도중, 실행 파일에 대한 복수의 블록 중 적어도 하나의 블록에 대응되는 사용자 명령이 입력되면, 프로세서(120)는 적어도 하나의 블록을 메모리에 할당할 수 있다. 그리고, 프로세서(120)는 메모리에 할당된 적어도 하나의 블록에 대한 해시 값을 계산하여, 계산된 해시 값을 적어도 하나의 블록에 대한 제3 해시 값으로 획득할 수 있다.
그리고, 프로세서(120)는 메모리에 할당된 적어도 하나의 블록에 대한 무결성을 검증하기 위해, 복수의 제1 해시 값 중 적어도 하나의 블록에 대응되는 해시 값을 제4 해시 값으로 식별하고, 제3 해시 값과 제4 해시 값이 동일한지 여부를 식별할 수 있다.
예로, 프로세서(120)는 실행 파일에 대한 복수의 블록 중 제2 블록에 대한 코드를 실행하기 위한 사용자 명령이 입력된 경우, 제2 블록을 메모리에 할당하고, 제2 블록에 대한 해시 값을 계산하여, 계산된 해시 값을 제2 블록에 대한 제3 해시 값으로 획득할 수 있다. 그리고, 프로세서(120)는 제1 해시 값 중 제2 블록에 대응되는 해시 값을 제4 해시 값으로 식별하고, 제3 해시 값과 제4 해시 값이 동일한지 여부를 식별하여, 제2 블록에 대한 무결성을 검증할 수 있다.
또 다른 실시 예로, 실행 파일에 대한 복수의 블록 중 제3 블록 및 제4 블록에 대한 코드를 실행하기 위한 사용자 명령이 입력된 경우, 제3 블록 및 제4 블록을 메모리에 할당하고, 제3 블록 및 제4 블록에 대한 해시 값을 계산하여, 계산된 해시 값을 제3 블록 및 제4 블록에 대한 제3 해시 값으로 획득할 수 있다. 그리고, 프로세서(120)는 제1 해시 값 중 제3 블록 및 제4 블록에 대응되는 해시 값을 제4 해시 값으로 식별하고, 제3 해시 값과 제4 해시 값이 동일한지 여부를 식별하여, 제3 블록 및 제4 블록에 대한 무결성을 검증할 수 있다.
제3 해시 값과 제4 해시 값이 동일한 것으로 식별되면, 프로세서(120)는 제3 해시 값에 대응되는 적어도 하나의 블록에 대한 무결성이 검증된 것으로 판단하고, 적어도 하나의 블록에 대응되는 명령을 수행할 수 있다. 제3 해시 값과 제4 해시 값이 동일하지 않은 것으로 식별되면, 프로세서(120)는 제3 해시 값에 대응되는 적어도 하나의 블록에 대한 무결성이 검증되지 않은 것으로 판단하고, 적어도 하나의 블록에 대응되는 명령을 수행하지 않을 수 있다.
본 개시의 일 실시 예에 따르면, 상술한 블록 단위 별로 무결성 검증을 수행하는 방법은 실행 파일의 용량이 임계 값을 초과하는 경우에 수행될 수 있다. 즉, 임계 값 이하인 실행 파일의 경우, 실행 파일 전체에 대한 해시 값을 계산하여도, 연산량이 많지 않으므로, 프로세서(120)는 실행 파일 전체에 대한 해시 값을 계산하고, 계산된 해시 값을 암호화하여 서명 값을 획득하여 획득된 서명 값을 실행 파일에 추가할 수 있다. 실행 파일의 용량에 대한 임계 값은 사용자에 의해 설정되거나, 실행 파일의 제조사에 의해 설정될 수 있다.
구체적으로, 프로세서(120)는 실행 파일의 용량을 식별하고, 실행 파일의 용량이 임계 값 이하인 경우 실행 파일을 블록 단위로 분할하지 않고 실행 파일 전체에 대한 해시 값을 계산하여 실행 파일 전체에 대한 제5 해시 값을 획득할 수 있다. 그리고, 프로세서(120)는 제5 해시 값을 개인키를 통해 암호화 하여 제5 해시 값에 대한 서명 값을 획득하여 서명 값을 실행 파일에 추가할 수 있다.
그리고, 프로세서(120)는 용량이 임계 값 이하인 실행 파일을 실행하기 위한 사용자 명령이 입력되면, 실행 파일 전체를 메모리에 할당하고, 실행 파일 전체에 대한 제6 해시 값을 획득할 수 있다. 그리고, 프로세서(120)는 실행 파일에 추가된 서명 값을 공개키를 통해 복호화 하여 제7 해시 값을 획득할 수 있다. 그리고, 프로세서(120)는 실행 파일에 대한 무결성을 검증하기 위해, 제6 해시 값과 제7 해시 값이 동일한지 식별할 수 있다. 제6 해시 값과 제7 해시 값이 동일한 경우 프로세서(120)는 실행 파일의 무결성이 검증된 것으로 판단하여, 실행 파일을 실행할 수 있다. 제6 해시 값과 제7 해시 값이 동일하지 않은 경우, 프로세서(120)는 실행 파일의 무결성이 검증되지 않은 것으로 판단하여, 실행 파일을 실행하지 않을 수 있다.
그리고, 프로세서(120)는 실행 파일의 용량이 임계 값을 초과하는 경우에는, 실행 파일을 블록 단위로 분할하고, 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득할 수 있다. 그리고, 프로세서(120)는 복수의 제1 해시 값 및 블록에 대한 정보를 실행 파일에 추가하고, 복수의 제1 해시 값을 개인키를 통해 암호화 하여 서명 값을 획득하여 서명 값을 실행 파일에 추가할 수 있다.
즉, 상술한 바와 같이, 프로세서(120)는 실행 파일의 용량이 임계 값을 초과하는 경우에 실행 파일의 블록 단위 별로 무결성 검증을 수행할 수 있다. 즉, 무결성 검증에 연산량이 많이 드는 실행 파일에 대해서 블록 단위 별로 무결성 검증이 수행되어, 무결성 검증에 필요한 연산량이 감소 될 수 있다.
한편, 이상에서는 해시 값 및 개인키를 이용하여 서명 값을 생성하는 것으로 한정하여 설명하였으나, 이에 한정되지 않고, 데이터를 암호화하는 기술은 어떤 것이든 사용될 수 있다.
도 2는 본 개시의 일 실시 예에 따른, 실행 파일의 블록 단위 별로 무결성 검증을 수행하기 위한, 실행 파일의 구성을 도시한 도면이다.
도2 를 참조하면, 실행 파일(200)이 블록 단위(210-1, 210-2, 210-3, … 210-N)로 분할되어 있다. 본 개시의 일 실시 예에 따르면, 전자 장치는 실행 파일(200)의 용량에 따라 일정 블록 단위로 실행 파일(200)을 분할 할 수 있다. 분할된 블록 각각의 용량은 서로 동일 할 수 있다. 분할된 블록의 개수(Block Count)(예로, N 개), 및 블록 하나의 용량(Block Size)(예로, 4KB)과 같은 정보가 블록에 대한 정보(220)에 포함되어 실행 파일(200)에 추가될 수 있다. 구체적으로, 블록에 대한 정보(220)는 블록의 용량 및 블록의 개수에 대한 정보 및 해시 값을 획득한 알고리즘에 대한 정보를 포함할 수 있다. 또한, 사용자의 실행 파일(200) 접근 권한에 대한 접근 제어 정보 등을 포함하는 기타 정보가 블록에 대한 정보에 더 포함될 수 있다.
그리고, 전자 장치(100)는 분할된 블록 각각에 대한 해시 값을 계산하여, 복수의 제1 해시 값(230-1, 230-2, 230-3, …, 230-N)을 획득하고, 복수의 제1 해시 값(230-1, 230-2, 230-3, …, 230-N)을 실행 파일(200)에 추가할 수 있다. 복수의 제1 해시 값(230-1, 230-2, 230-3, …, 230-N)은 제1 블록(210-1)에 대한 해시 값(230-1), 제2 블록(210-2)에 대한 해시 값(230-2), 제3 블록(210-3)에 대한 해시 값(230-3), … , 제N 블록(210-N)에 대한 해시 값(230-N)을 포함할 수 있다.
그리고, 전자 장치(100)는 복수의 제1 해시 값을 개인키를 통해 암호화 하여 서명 값(240)을 획득하고, 획득한 서명 값(240)을 실행 파일(200)에 추가할 수 있다.
상술한 바와 같이, 본 개시에 따르면, 실행 파일에 복수의 제1 해시 값, 블록에 대한 정보 및 서명 값이 추가됨으로써, 전자 장치는 실행 파일에 대해 블록 단위 별로 무결성 검증을 수행할 수 있다.
도 3은 본 개시의 일 실시 예에 따른, 실행 파일의 블록 단위 별 무결성을 검증하는 방법을 나타낸 도면이다.
도 3을 참조하면, 실행 파일(300)을 실행하기 위한 사용자 명령이 입력되면, 전자 장치(100)는 실행 파일(300)에 추가된 서명 값(340)을 공개키를 통해 복호화 하여 복수의 제2 해시 값을 획득할 수 있다. 그리고, 전자 장치(100)는 복수의 제1 해시 값(330-1, 330-2, 330-3, …, 330-N)에 대한 무결성을 검증하기 위해, 복수의 제2 해시 값과 제1 해시 값이 동일한지 여부를 식별할 수 있다(단계 ①).
그리고, 전자 장치(100)는 복수의 제1 해시 값(330-1, 330-2, 330-3, …, 330-N) 및 복수의 제2 해시 값이 동일한 것으로 식별되는 경우, 실행 파일(300)에 추가된 블록에 대한 정보(320) 및 복수의 제1 해시 값(320, 330-1, 330-2, …, 330-N)을 메모리(400)에 할당할 수 있다(단계 ②). 전자 장치(100)는 복수의 제1 해시 값 및 복수의 제2 해시 값(320, 330-1, 330-2, …, 330-N)이 동일하지 않은 것으로 식별되는 경우, 실행 파일(300)에 대한 실행을 취소할 수 있다. 즉, 전자 장치(100)는 단계 ① 및 단계 ②를 통해 복수의 제1 해시 값에 대한 무결성을 검증 할 수 있다. 그리고, 전자 장치(100)는 제1 해시 값에 대한 무결성이 검증되는 경우, 실행 파일(300)을 실행 할 수 있다.
그리고, 전자 장치(100)는 실행 파일(300)의 블록(310-1 내지 310-N) 중 적어도 하나의 블록에 대응되는 사용자 명령이 입력되면, 적어도 하나의 블록을 메모리(400)에 할당할 수 있다(단계 ③). 적어도 하나의 블록에 대응되는 사용자 명령은 적어도 하나의 블록에 포함된 코드를 실행하기 위한 사용자 명령일 수 있다. 도 3을 참조하면, 제2 블록(310-2)에 대응되는 사용자 명령이 입력되어, 제2 블록(310-2)이 메모리(400)에 할당되었다. 제2 블록(310-2)에 대응되는 사용자 명령은 제2 블록(310-2)에 포함된 코드를 실행하기 위한 사용자 명령일 수 있다. 도 3 에서는 적어도 하나의 블록이 제2 블록(310-2) 하나인 것으로 도시되어 있지만, 이에 한정되지 않고, 복수의 블록에 대응되는 사용자 명령이 입력되어, 복수의 블록이 메모리(400)에 할당될 수 있다.
그리고, 전자 장치(100)는 메모리(400)에 할당된 적어도 하나의 블록에 대한 해시 값을 계산하여, 적어도 하나의 블록에 대한 제3 해시 값을 획득할 수 있다. 그리고, 전자 장치(100)는 적어도 하나의 블록에 대한 무결성을 검증하기 위해 복수의 제1 해시 값 중 적어도 하나의 블록에 대응되는 제4 해시 값과 제3 해시 값이 동일한지 여부를 식별할 수 있다(단계 ④). 도 3을 참조하면, 전자 장치(100)는 메모리(400)에 할당된 제2 블록(310-2)에 대한 해시 값을 계산하여, 제2 블록(310-2)에 대한 제3 해시 값을 획득하고, 복수의 제1 해시 값 중 제2 블록에 대응되는 제4 해시 값(330-2)과 제3 해시 값이 동일한지 여부를 식별하여 제2 블록에 대한 무결성 검증을 할 수 있다.
그리고, 전자 장치(100)는 제3 해시 값과 제4 해시 값이 동일한 것으로 식별되면, 적어도 하나의 블록에 대응되는 명령을 수행할 수 있다. 다만, 제3 해시 값과 제4 해시 값이 동일하지 않은 것으로 식별되면, 전자 장치(100)는 적어도 하나의 블록에 대응되는 명령을 수행하지 않을 수 있다.
상술한 바와 같이, 본 개시에 따르면, 전자 장치는 실행 파일에 대해 블록 단위 별로 무결성 검증을 수행할 수 있다. 또한, 전자 장치는 실행 파일 중 일부 블록에 대한 무결성이 검증되지 않은 경우, 실행 파일 전체의 실행을 취소시키는 것이 아닌 무결성이 검증되지 않은 블록에 대응되는 명령만을 수행하지 않을 수 있어, 실행 파일이 보다 효율적으로 구동될 수 있다.
도 4는 본 개시의 일 실시 예에 따른, 실행 파일의 용량이 임계 값 이하인 경우, 실행 파일 전체에 대한 무결성을 검증하기 위한 실행 파일을 나타내는 도면이다.
전자 장치(100)는 실행 파일(500)의 용량을 식별할 수 있다. 그리고, 전자 장치(100)는 실행 파일(500)의 용량이 임계 값 이하인 경우, 실행 파일(500)을 블록 단위로 분할 하지 않고 실행 파일 부분(510)에 대한 해시 값을 계산하여 제5 해시 값을 획득할 수 있다. 그리고, 전자 장치(100)는 제5 해시 값을 개인키를 통해 암호화 하여 제5 해시 값에 대한 서명 값(520)을 획득하여 서명 값(520)을 실행 파일(500)에 추가할 수 있다. 즉, 용량이 임계 값 이하인 실행 파일(500)의 경우, 실행 파일 부분(510)에 서명 값(520)이 추가된 실행 파일(500)을 통해 실행 파일(500) 전체에 대한 무결성 검증이 수행 될 수 있다.
그리고, 전자 장치(100)는 용량이 임계 값 이하인 실행 파일(500)을 실행하기 위한 사용자 명령이 입력되면, 실행 파일(500)을 메모리에 할당하고, 실행 파일 전체 부분(510)에 대한 해시 값을 계산하여, 제6 해시 값을 획득할 수 있다. 그리고, 전자 장치(100)는 실행 파일(500)에 추가된 서명 값(520)을 공개키를 통해 복호화 하여 제7 해시 값을 획득할 수 있다.
그리고, 전자 장치(100)는 실행 파일(500)에 대한 무결성을 검증하기 위해 제6 해시 값과 제7 해시 값이 동일한지 여부를 식별할 수 있다. 제6 해시 값과 제7 해시 값이 동일한 경우, 전자 장치(100)는 실행 파일(500) 전체의 무결성이 검증된 것으로 판단하고, 실행 파일(500)을 실행 할 수 있다. 6 해시 값과 제7 해시 값이 동일하지 않은 경우, 전자 장치(100)는 실행 파일(500) 전체의 무결성이 검증되지 않은 것으로 판단하고, 실행 파일(500)을 실행하지 않을 수 있다.
실행 파일의 용량이 임계 값을 초과하는 경우에는, 도 1에서 상술한 바와 같이 전자 장치(100)는 실행 파일을 블록 단위로 분할하고, 블록 단위 별로 해시 값 획득하여, 블록 단위 별로 무결성 검증을 수행할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 블록 단위 별로 무결성을 검증하기 위한 실행 파일을 생성하기 위한 방법을 나타내는 흐름도 이다.
도 5를 참조하면, 우선, 전자 장치는 실행 파일을 획득할 수 있다(S510). 그 다음, 전자 장치는 실행 파일을 블록 단위 별로 분할 할 수 있다(S520). 구체적으로 블록 단위는 운영체제에서 실행 파일을 관리하는 단위를 의미한다. 본 개시의 일 실시 예에 따르면, 실행 파일의 용량에 따라 일정 블록 단위로 실행 파일이 분할 될 수 있다.
그리고, 전자 장치는 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득할 수 있다(S530). 구체적으로, 전자 장치는 분할된 블록 각각에 대한 해시 값을 계산하여, 복수의 제1 해시 값을 획득할 수 있다. 전자 장치는 기 설정된 알고리즘을 바탕으로 분할된 블록 각각에 대한 해시 값을 계산하고, 계산된 해시 값을 바탕으로 실행 파일의 블록에 대한 복수의 제1 해시 값을 획득할 수 있다. 기 설정된 알고리즘은 블록 또는 파일에 대한 해시 값을 계산하기 위한 방법에 대한 알고리즘으로, 해시 함수를 포함할 수 있다.
그 다음, 전자 장치는 블록에 대한 정보 및 복수의 제1 해시 값을 실행 파일에 추가할 수 있다(S540). 블록에 대한 정보는 블록의 용량, 블록의 개수에 대한 정보 및 해시 값을 획득한 알고리즘에 대한 정보를 포함할 수 있다. 본 개시의 일 실시 예에 따르면, 블록에 대한 정보에는 사용자의 실행 파일 접근 권한에 대한 접근 제어 정보를 더 포함 할 수 있다.
그 다음, 전자 장치는 복수의 제1 해시 값을 개인키를 통해 암호화하여 서명 값을 획득하여 서명 값을 실행 파일에 추가할 수 있다(S550).
전자 장치는 상술한 과정을 통해 실행 파일에 블록에 대한 정보, 복수의 제1 해시 값 및 서명 값을 추가하여, 실행 파일에 대한 블록 단위 별로 무결성을 검증할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 블록 단위 별로 실행 파일의 무결성을 검증하는 방법을 나타내는 흐름도 이다.
도 6을 참조하면, 우선, 전자 장치는 실행 파일을 실행하기 위한 사용자 명령을 입력 받을 수 있다(S605). 그 다음, 실행 파일을 실행 하기 위한 사용자 명령이 입력되면, 전자 장치는 실행 파일에 추가된 서명 값을 공개 키를 통해 복호화 하여 복수의 제2 해시 값을 획득할 수 있다(S610). 공개키는 복수의 제1 해시 값을 암호화한 개인키에 대응되는 공개키 일 수 있다.
그 다음, 전자 장치는 실행 파일에 추가된 복수의 제1 해시 값 및 복수의 제2 해시 값이 동일한지 식별 할 수 있다(S620). 전자 장치는 복수의 제1 해시 값 및 복수의 제2 해시 값이 동일한 것으로 식별되면(S620-Y), 제1 해시 값의 무결성이 검증된 것으로 판단하고, 블록에 대한 정보 및 복수의 제1 해시 값을 메모리에 할당할 수 있다(S640).
그 다음, 전자 장치는 적어도 하나의 블록에 대한 명령이 입력되면(S635), 적어도 하나의 블록을 메모리에 할당할 수 있다(S640).
그리고, 전자 장치는 메모리에 할당된 적어도 하나의 블록에 대한 제3 해시 값을 획득하고(S650), 제1 해시 값 중 적어도 하나의 블록에 대응되는 제4 해시 값과 제3 해시 값이 동일한 지 여부를 식별할 수 있다(S660).
전자 장치는 제4 해시 값과 제3 해시 값이 동일한 것으로 식별되면(S660-Y), 메모리에 할당된 적어도 하나의 블록에 대한 무결성이 검증된 것으로 판단하고, 적어도 하나의 블록에 대응되는 명령을 수행할 수 있다(S670). 그리고, 전자 장치는 제4 해시 값과 제3 해시 값이 동일하지 않은 것으로 식별되면(S660-N), 메모리에 할당된 적어도 하나의 블록에 대한 무결성이 검증되지 않은 것으로 판단하고, 적어도 하나의 블록에 대한 명령을 수행하지 않을 수 있다(S680).
전자 장치는 복수의 제1 해시 값 및 복수의 제2 해시 값이 동일하지 않은 것으로 식별되면(S620-N), 제1 해시 값의 무결성이 검증되지 않은 것으로 판단하고, 실행 파일의 실행을 취소할 수 있다(S690).
전자 장치는 상술한 과정을 통해 실행 파일에 대한 블록 단위 별로 무결성을 검증할 수 있다.
도 7은 본 개시의 일 실시 예에 따른, 실행 파일의 용량에 따른 무결성 검증 방법을 나타내는 흐름도 이다.
도 7을 참조하면, 우선, 전자 장치는 실행 파일을 획득할 수 있다(S710). 그 다음, 전자 장치는 실행 파일의 용량이 임계 값 이하인지 여부를 식별할 수 있다(S720).
실행 파일의 용량이 임계 값 이하인 것으로 식별되면(S720-Y), 전자 장치는 실행 파일을 블록 단위로 분할 하지 않고, 실행 파일 전체에 대한 제5 해시 값을 획득할 수 있다(S730). 그 다음, 전자 장치는 제5 해시 값을 개인키를 통해 암호화 하여 서명 값을 획득하여 서명 값을 실행 파일에 추가 할 수 있다(S740).
실행 파일의 용량이 임계 값을 초과하는 것으로 식별되면(S720-N), 전자 장치는 실행 파일을 블록 단위로 분할 할 수 있다(S750). 임계 값은 사용자에 의해 설정되거나, 실행 파일의 제조사에 의해 설정될 수 있다.
그 다음, 전자 장치는 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하고(S760), 블록에 대한 정보 및 복수의 제1 해시 값을 실행 파일에 추가할 수 있다(S770). 그리고, 전자 장치는 복수의 제1 해시 값에 대한 정보를 개인키를 통해 암호화하여 서명 값을 획득하여 서명 값을 실행 파일에 추가할 수 있다(S780).
상술한 바와 같이, 전자 장치는 실행 파일의 용량이 임계 값을 초과하는 경우에 실행 파일의 블록 단위 별로 무결성 검증을 수행할 수 있다. 즉, 무결성 검증에 연산량이 많이 드는 실행 파일에 대해서 블록 단위 별로 무결성 검증이 수행되어, 무결성 검증에 필요한 연산량이 감소 될 수 있다.
도 8은 본 개시의 일 실시 예에 따른, 전자 장치의 구체적인 구성을 나타내는 블록도 이다.
도 8을 참조하면, 전자 장치(800)는 메모리(810), 프로세서(820), 디스플레이(830), 통신 인터페이스(840) 및 입력 인터페이스(850)을 포함할 수 있다. 메모리(810) 및 프로세서(820)는 도 1에 도시된 메모리 및 프로세서와 동일한 구성인 바, 중복된 내용은 생략 한다.
본 개시에 따른, 디스플레이(830)는 실행 파일을 실행하기 위한 사용자 명령이 입력되고, 실행 파일에 추가된 복수의 제1 해시 값에 대한 무결성이 검증되면, 실행 파일에 대한 실행 화면을 표시할 수 있다.
그리고, 실행 파일에 추가된 복수의 제1 해시 값에 대한 무결성이 검증되지 않은 경우, 디스플레이(830)는 실행 파일에 대한 무결성이 검증되지 않음을 나타내는 UI(User Interface)를 표시할 수 있다.
그리고, 디스플레이(830)는 실행 파일의 블록 중 적어도 하나의 블록에 대한 명령이 입력되고, 적어도 하나의 블록에 대한 무결성이 검증되면, 적어도 하나의 블록에 대한 명령이 수행된 화면을 표시할 수 있다. 다만, 적어도 하나의 블록에 대한 무결성이 검증되지 않은 경우, 디스플레이(830)는 적어도 하나의 블록에 대한 무결성이 검증되지 않음을 나타내는 UI를 표시할 수 있다.
통신 인터페이스(840)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 장치 또는 서버와 통신을 수행하는 구성이다. 통신 인터페이스(840)는 와이파이칩, 블루투스 칩, 무선 통신 칩, NFC 칩을 포함할 수 있다. 프로세서(820)는 통신 인터페이스(840)를 이용하여 각종 외부 장치 또는 서버와 통신을 수행할 수 있다.
특히, 와이파이 칩, 블루투스 칩은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 칩이나 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩은135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC (Near Field Communication) 방식으로 동작하는 칩을 의미한다.
통신 인터페이스(840)는 외부 장치 또는 서버와 통신을 수행할 수 있으며, 외부 장치 또는 서버로부터 실행 파일을 획득할 수 있다.
그리고, 본 개시의 일시 예에 따르면, 전자 장치(800)에서 실행 파일에 실행 파일에 대한 복수의 제1 해시 값 및 서명 값이 추가되고, 복수의 제1 해시 값 및 서명 값이 추가된 실행 파일이 통신 인터페이스(840)를 통해 외부 장치에 전송되고, 외부 장치에서 실행 파일에 대해 블록 단위 별로 무결성이 검증될 수 있다. 또한, 본 개시의 일 실시 예에 따르면, 외부 장치에서 실행 파일에 실행 파일에 대한 복수의 제1 해시 값 및 서명 값이 추가되고, 복수의 제1 해시 값 및 서명 값이 추가된 실행 파일이 통신 인터페이스(840)를 통해 전자 장치(800)로 전송되고, 전자 장치(800)에서 실행 파일에 대해 블록 단위 별로 무결성이 검증될 수 있다.
입력 인터페이스(850)는 사용자의 실행 파일에 대한 명령을 입력 받을 수 있다. 구체적으로 사용자의 실행 파일에 대한 실행 명령이 입력 인터페이스(850)를 통해 입력되면, 프로세서(820)는 실행 파일에 추가된 복수의 제1 해시 값에 대한 무결성이 검증되는 경우, 복수의 제1 해시 값에 대한 정보를 메모리에 할당하고, 실행 파일을 실행 할 수 있다. 그리고, 사용자의 실행 파일에 대한 적어도 하나의 블록에 대한 명령이 입력 인터페이스(850)를 통해 입력되면, 프로세서(820)는 적어도 하나의 블록에 대한 무결성이 검증되는 경우, 적어도 하나의 블록에 대응되는 명령을 수행할 수 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법은 비일시적 판독 가능 매체(non-transitory readable medium) 에 저장될 수 있다. 이러한 비일시적 판독 가능 매체는 다양한 장치에 탑재되어 사용될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 방법을 수행하기 위한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
Claims (15)
- 전자 장치의 제어 방법에 있어서,프로그램을 실행하기 위한 실행 파일을 획득하는 단계;상기 획득된 실행 파일을 블록 단위로 분할하는 단계;상기 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하는 단계;상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 상기 실행 파일에 추가하는 단계; 및상기 복수의 제1 해시 값을 개인키를 통해 암호화 하여 서명 값을 획득하여 상기 서명 값을 상기 실행 파일에 추가하는 단계;를 포함하는 제어 방법.
- 제1항에 있어서,상기 실행 파일을 실행하기 위한 사용자 명령이 입력되면, 상기 서명 값을 공개키를 통해 복호화 하여 복수의 제2 해시 값을 획득하는 단계;상기 복수의 제1 해시 값에 대한 무결성을 검증하기 위해, 상기 복수의 제2 해시 값 및 상기 복수의 제1 해시 값이 동일한지 식별하는 단계;상기 복수의 제1 해시 값 및 상기 복수의 제2 해시 값이 동일한 경우, 상기 상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 메모리에 할당하는 단계; 를 더 포함하는 것을 특징으로 하는 제어 방법.
- 제2항에 있어서,상기 복수의 제1 해시 값 및 상기 복수의 제2 해시 값이 동일하지 않은 경우, 상기 실행 파일의 실행을 취소하는 단계; 를 더 포함하는 것을 특징으로 하는 제어 방법.
- 제2항에 있어서,상기 블록 중 적어도 하나의 블록에 대응되는 명령이 입력되면, 상기 적어도 하나의 블록을 상기 메모리에 할당하고,상기 적어도 하나의 블록에 대한 제3 해시 값을 획득하는 단계;상기 적어도 하나의 블록에 대한 무결성을 검증하기 위해, 상기 복수의 제1 해시 값 중 적어도 하나의 블록에 대응되는 제4 해시 값과 상기 제3 해시 값이 동일한지 식별하는 단계; 및상기 제3 해시 값과 상기 제4 해시 값이 동일한 경우, 상기 적어도 하나의 블록에 대응되는 명령을 수행하는 단계; 를 더 포함하는 것을 특징으로 하는 제어 방법.
- 제4항에 있어서,상기 제3 해시 값과 상기 제4 해시 값이 동일하지 않은 경우, 상기 적어도 하나의 블록에 대응되는 명령을 수행하지 않는 단계; 를 더 포함하는 것을 특징으로 하는 제어 방법.
- 제1항에 있어서,상기 블록에 대한 정보는, 블록의 용량 및 블록의 개수에 대한 정보를 포함하고,상기 분할하는 단계는,상기 실행 파일의 용량에 따라 분할하는 단계인 것을 특징으로 하는 제어 방법.
- 제1항에 있어서,상기 블록에 대한 정보는, 상기 복수의 제1 해시 값을 획득한 알고리즘에 대한 정보를 포함하는 것 특징으로 하고,상기 복수의 제1 해시 값을 획득하는 단계는,상기 블록에 대한 정보에 포함된 알고리즘을 바탕으로 획득하는 단계인 것을 특징으로 하는 제어 방법.
- 제1항에 있어서,상기 실행 파일의 용량을 식별하는 단계;를 더 포함하고,상기 제어 방법은,상기 용량이 임계 값을 초과하는 경우, 상기 획득된 실행 파일을 블록 단위로 분할하는 단계; 및상기 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하여 상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 실행 파일에 추가하는 단계;를 포함하는 제어 방법.
- 제8항에 있어서,상기 용량이 임계 값 이하인 경우, 상기 실행 파일을 블록 단위로 분할하지 않고, 상기 실행 파일 전체에 대한 제5 해시 값을 획득하는 단계; 및상기 제5 해시 값을 개인키를 통해 암호화 하여 상기 제5 해시 값에 대한 서명 값을 획득하여 상기 서명 값을 상기 실행 파일에 추가하는 단계;를 더 포함하는 하는 제어 방법.
- 제9항에 있어서,상기 용량이 임계 값 이하인 실행 파일을 실행하기 위한 사용자 명령이 입력되면, 상기 실행 파일 전체를 메모리에 할당하고, 상기 실행 파일에 대한 제6 해시 값을 획득하는 단계;상기 실행 파일에 추가된 서명 값을 공개키를 통해 복호화 하여 제7 해시 값을 획득하는 단계;상기 실행 파일에 대한 무결성을 검증하기 위해 상기 제6 해시 값과 상기 제7 해시 값이 동일한지 식별하는 단계; 및상기 제6 해시 값과 상기 제7 해시 값이 동일한 경우 상기 실행 파일을 실행하고, 상기 제6 해시 값과 상기 제7 해시 값이 동일하지 않은 경우 상기 실행 파일을 실행하지 않는 단계; 를 더 포함하는 것을 특징으로 하는 제어 방법.
- 전자 장치에 있어서,적어도 하나의 인스트럭션을 저장하는 메모리, 및프로세서를 포함하고,상기 프로세서는 상기 인스트럭션을 실행함으로써,프로그램을 실행하기 위한 실행 파일을 획득하고,상기 획득된 실행 파일을 블록 단위로 분할하고,상기 분할된 블록 각각에 대한 복수의 제1 해시 값을 획득하고,상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 상기 실행 파일에 추가하고,상기 복수의 제1 해시 값을 개인키를 통해 암호화 하여 서명 값을 획득하여 상기 서명 값을 상기 실행 파일에 추가하는 전자 장치.
- 제11항에 있어서,상기 프로세서는,상기 실행 파일을 실행하기 위한 사용자 명령이 입력되면, 상기 서명 값을 공개키를 통해 복호화 하여 복수의 제2 해시 값을 획득하고,상기 복수의 제1 해시 값에 대한 무결성을 검증하기 위해, 상기 복수의 제2 해시 값 및 상기 복수의 제1 해시 값이 동일한지 식별하고,상기 복수의 제1 해시 값 및 상기 복수의 제2 해시 값이 동일한 경우, 상기 상기 블록에 대한 정보 및 상기 복수의 제1 해시 값을 메모리에 할당하는 전자 장치.
- 제12항에 있어서,상기 프로세서는,상기 복수의 제1 해시 값 및 상기 복수의 제2 해시 값이 동일하지 않은 경우, 상기 실행 파일의 실행을 취소하는 전자 장치.
- 제12항에 있어서,상기 프로세서는,상기 블록 중 적어도 하나의 블록에 대응되는 명령이 입력되면, 상기 적어도 하나의 블록을 상기 메모리에 할당하고,상기 적어도 하나의 블록에 대한 제3 해시 값을 획득하고,상기 적어도 하나의 블록에 대한 무결성을 검증하기 위해, 상기 복수의 제1 해시 값 중 적어도 하나의 블록에 대응되는 제4 해시 값과 상기 제3 해시 값이 동일한지 식별하고,상기 제3 해시 값과 상기 제4 해시 값이 동일한 경우, 상기 적어도 하나의 블록에 대응되는 명령을 수행하는 전자 장치.
- 제14항에 있어서,상기 프로세서는,상기 제3 해시 값과 상기 제4 해시 값이 동일하지 않은 경우, 상기 적어도 하나의 블록에 대응되는 명령을 수행하지 않는 전자 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190133001A KR20210048835A (ko) | 2019-10-24 | 2019-10-24 | 전자 장치 및 이의 제어 방법 |
KR10-2019-0133001 | 2019-10-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021080123A1 true WO2021080123A1 (ko) | 2021-04-29 |
Family
ID=75620146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2020/008938 WO2021080123A1 (ko) | 2019-10-24 | 2020-07-08 | 전자 장치 및 이의 제어 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20210048835A (ko) |
WO (1) | WO2021080123A1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741973A (zh) * | 2021-08-25 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 一种命令识别方法、系统、计算机及可读存储介质 |
CN117478175A (zh) * | 2023-10-25 | 2024-01-30 | 中通服网盈科技有限公司 | 一种电力通信传输优化系统及运行方法 |
CN117951704A (zh) * | 2024-03-27 | 2024-04-30 | 宁波和利时信息安全研究院有限公司 | 可执行文件的哈希计算方法、装置、电子设备和介质 |
CN118573489A (zh) * | 2024-08-05 | 2024-08-30 | 江西神舟信息安全评估中心有限公司 | 一种工业互联网信息安全评估方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6311368B2 (ko) * | 1982-03-12 | 1988-03-14 | Polysar Ltd | |
KR20100072992A (ko) * | 2008-12-22 | 2010-07-01 | (주)씨엔에스 | 다수의 클라이언트를 위한 분산 네트워크 스토리지 장치 및그 방법 |
KR20190014444A (ko) * | 2017-08-02 | 2019-02-12 | 삼성전자주식회사 | 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법 |
KR101967855B1 (ko) * | 2017-05-25 | 2019-04-11 | 김영후 | 2차원 바코드 블록 분할을 이용한 전자문서 보안 검증 방법 및 시스템 |
KR101988302B1 (ko) * | 2012-10-11 | 2019-06-12 | 주식회사 케이티 | 해쉬 기반의 콘텐츠 파일의 식별자 생성 장치 및 방법, 및 해쉬 코드 생성 방법 |
-
2019
- 2019-10-24 KR KR1020190133001A patent/KR20210048835A/ko active Search and Examination
-
2020
- 2020-07-08 WO PCT/KR2020/008938 patent/WO2021080123A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6311368B2 (ko) * | 1982-03-12 | 1988-03-14 | Polysar Ltd | |
KR20100072992A (ko) * | 2008-12-22 | 2010-07-01 | (주)씨엔에스 | 다수의 클라이언트를 위한 분산 네트워크 스토리지 장치 및그 방법 |
KR101988302B1 (ko) * | 2012-10-11 | 2019-06-12 | 주식회사 케이티 | 해쉬 기반의 콘텐츠 파일의 식별자 생성 장치 및 방법, 및 해쉬 코드 생성 방법 |
KR101967855B1 (ko) * | 2017-05-25 | 2019-04-11 | 김영후 | 2차원 바코드 블록 분할을 이용한 전자문서 보안 검증 방법 및 시스템 |
KR20190014444A (ko) * | 2017-08-02 | 2019-02-12 | 삼성전자주식회사 | 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741973A (zh) * | 2021-08-25 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 一种命令识别方法、系统、计算机及可读存储介质 |
CN117478175A (zh) * | 2023-10-25 | 2024-01-30 | 中通服网盈科技有限公司 | 一种电力通信传输优化系统及运行方法 |
CN117478175B (zh) * | 2023-10-25 | 2024-04-30 | 中通服网盈科技有限公司 | 一种电力通信传输优化系统及运行方法 |
CN117951704A (zh) * | 2024-03-27 | 2024-04-30 | 宁波和利时信息安全研究院有限公司 | 可执行文件的哈希计算方法、装置、电子设备和介质 |
CN117951704B (zh) * | 2024-03-27 | 2024-06-07 | 宁波和利时信息安全研究院有限公司 | 可执行文件的哈希计算方法、装置、电子设备和介质 |
CN118573489A (zh) * | 2024-08-05 | 2024-08-30 | 江西神舟信息安全评估中心有限公司 | 一种工业互联网信息安全评估方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20210048835A (ko) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021080123A1 (ko) | 전자 장치 및 이의 제어 방법 | |
US11120130B2 (en) | Method and apparatus for protecting kernel control-flow integrity using static binary instrumentation | |
EP3582129B1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
US10445154B2 (en) | Firmware-related event notification | |
US10515040B2 (en) | Data bus host and controller switch | |
WO2015126135A1 (en) | Method and apparatus for processing biometric information in electronic device | |
WO2016148491A1 (ko) | 애플리케이션 보호 방법 및 장치 | |
EP3332372A1 (en) | Apparatus and method for trusted execution environment based secure payment transactions | |
WO2015115852A1 (en) | Task scheduling method and apparatus | |
CN104995629A (zh) | 用于平台引导固件的信任继续 | |
CN101578609A (zh) | 安全启动计算设备 | |
WO2017122980A1 (en) | Electronic device and method for authenticating identification information thereof | |
WO2015023093A1 (ko) | 해시를 이용한 동적코드의 무결성 검증 방법 | |
US12045351B2 (en) | System and method of authenticating firmware | |
Mirzamohammadi et al. | Ditio: Trustworthy auditing of sensor activities in mobile & iot devices | |
US10339284B2 (en) | Measurement method, electronic device, and measurement system | |
WO2017034281A1 (en) | Apparatus and method for secure electronic payment | |
US10929566B2 (en) | Information processing device and information processing system | |
CN109583214B (zh) | 一种安全控制方法 | |
WO2024183511A1 (zh) | 充电桩及其安全模块 | |
CN108197457A (zh) | 硬盘安全控制方法及装置 | |
US11960737B2 (en) | Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof | |
CN110673863A (zh) | 支持可插拔外部存储的智能锁系统以及智能升级的方法 | |
US10778650B2 (en) | Systems and methods for management domain attestation service | |
CN115221549A (zh) | Lpc总线安全访问方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20879192 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: 20879192 Country of ref document: EP Kind code of ref document: A1 |