WO2022055162A1 - Electronic device and control method thereof - Google Patents

Electronic device and control method thereof Download PDF

Info

Publication number
WO2022055162A1
WO2022055162A1 PCT/KR2021/011506 KR2021011506W WO2022055162A1 WO 2022055162 A1 WO2022055162 A1 WO 2022055162A1 KR 2021011506 W KR2021011506 W KR 2021011506W WO 2022055162 A1 WO2022055162 A1 WO 2022055162A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
signature value
security level
public key
allocated
Prior art date
Application number
PCT/KR2021/011506
Other languages
French (fr)
Korean (ko)
Inventor
이성규
이남권
정동화
박현철
제의진
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of WO2022055162A1 publication Critical patent/WO2022055162A1/en

Links

Images

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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Definitions

  • the present disclosure relates to an electronic device and a method for controlling the same, and more particularly, to an electronic device for verifying a signature value of a file using a virtualization environment, and a method for controlling the same.
  • the present disclosure has been made in response to the above-mentioned necessity, and an object of the present disclosure is to provide an electronic device for verifying a signature value of a file by allocating a separate public key or security level for each virtualization space and a control method thereof.
  • an electronic device shares a resource of an operating system and a kernel on the operating system and includes a plurality of virtualization spaces to which unique public keys are allocated, respectively, and a plurality of virtualizations.
  • a processor for verifying a signature value included in a file executed in at least one virtual space among the spaces wherein the processor executes the first file in a first virtual space to which a first public key is allocated among a plurality of virtual spaces. is detected, the signature value included in the executed first file is decrypted using the first public key, and the signature value of the first file is verified by comparing the decrypted signature value with the hash value corresponding to the first file.
  • the processor decrypts the signature value included in the second file using the second public key allocated on the operating system, and the second public key
  • the signature value of the second file may be verified by comparing the signature value decrypted using the key with a hash value corresponding to the second file, and the second public key and the first public key may be different from each other.
  • the processor may stop the execution of the first file.
  • the electronic device may further include a communication unit including a circuit, the processor receives the third file from the external server through the communication unit, and the kernel performs the third file on a third virtual space corresponding to the external server among the plurality of virtual spaces.
  • the signature value included in the third file is decrypted using the third public key included in the third virtual space, and the decrypted signature value is compared with the hash value corresponding to the third file. 3 You can verify the signature value of the file.
  • a security level is allocated to each of the plurality of virtualization spaces, and when the kernel detects that the fourth file is executed in the fourth virtualization space to which the first security level is allocated among the plurality of virtualization spaces, the security level allocated to the file and By comparing the first security level, it is possible to determine whether to stop the execution of the fourth file.
  • the processor determines to stop execution of the fourth file, and the security level assigned to the fourth file is If the first security level or higher, it may be determined to execute the fourth file.
  • the processor compares the security level of the fifth file with the second security level allocated on the operating system to stop the execution of the fifth file may be determined, and the second security level may be different from the first security level.
  • the processor decrypts the signature value of the file using the third public key and whether to stop the execution of the sixth file based on the decrypted signature value and the security level assigned to the sixth file.
  • the electronic device may further include a communication unit, and the processor changes the public key allocated to the first virtual space according to a user command, and transmits the private key corresponding to the changed public key to an external server corresponding to the first virtual space You can control the communication unit to do so.
  • an electronic device including an operating system and a memory including a plurality of virtualization spaces that share resources of a kernel on the operating system and have unique public keys allocated to each.
  • the kernel detects the execution of the first file in the first virtual space to which the first public key is allocated among a plurality of virtual spaces
  • the signature value included in the first file executed using the first public key is and verifying the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file.
  • the control method includes the steps of, when the kernel detects that the second file is executed in a space other than the plurality of virtualized spaces, decrypting the signature value included in the second file using the second public key allocated on the operating system;
  • the method may further include verifying the signature value of the second file by comparing the decrypted signature value using the public key with a hash value corresponding to the second file, wherein the second public key and the first public key are mutually may be different.
  • the verifying may further include stopping execution of the first file when the decrypted signature value and the hash value corresponding to the first file do not match or the signature value is not included in the first file. .
  • the control method includes receiving a third file from an external server, and when the kernel detects that the third file is executed in a third virtual space corresponding to the external server among a plurality of virtual spaces, the third file included in the third virtual space
  • the method may further include decrypting the signature value included in the third file using a public key and verifying the signature value of the third file by comparing the decrypted signature value with a hash value corresponding to the third file.
  • a security level is assigned to each of the plurality of virtualization spaces, and the control method is when the kernel detects that the fourth file is executed in the fourth virtualized space to which the first security level is allocated among the plurality of virtualization spaces, the security level assigned to the file
  • the method may further include determining whether to stop the execution of the fourth file by comparing the first security level with the first security level.
  • the method may further include determining that the fourth file is executed when the security level is higher than or equal to the first security level.
  • the execution of the fifth file is performed by comparing the security level of the fifth file with the second security level allocated to the operating system. determining whether to suspend, wherein the second security level may be different from the first security level.
  • the method may further include the step of decrypting using the decryption method and determining whether to stop the execution of the sixth file based on the decrypted signature value and the security level assigned to the sixth file.
  • the control method may further include changing the public key allocated to the first virtual space according to a user command, and transmitting the private key corresponding to the changed public key to an external server corresponding to the first virtual space.
  • the electronic device can efficiently respond to system maintenance and security problems by verifying the description of the file using the virtualized space, and can make a closed system due to signature check flexible system can be improved.
  • FIG. 1 is a view for explaining a process in which an electronic device performs signature verification using a virtual space, according to an embodiment of the present disclosure
  • FIG. 2 is a view for explaining a process of an electronic device verifying a signature using a virtual space, according to an embodiment of the present disclosure
  • 3A is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure
  • 3B is a block diagram illustrating in detail the configuration of an electronic device according to an embodiment of the present disclosure
  • FIG. 4 is a sequence diagram illustrating an operation between an electronic device and an external server according to an embodiment of the present disclosure
  • FIG. 5 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
  • expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.
  • expressions such as “A or B,” “at least one of A and/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” means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.
  • An electronic device may be, for example, a smartphone, a tablet PC, a mobile phone, a video phone, an e-book reader, a desktop PC, a laptop PC, a netbook computer, a server, a medical device, a camera, or It may include at least one of wearable devices.
  • the electronic device is, for example, a television, digital video disk (DVD) player, audio, refrigerator, air conditioner, vacuum cleaner, oven, microwave oven, washing machine, air purifier, set top box, home automation control. It may include at least one of a panel, a security control panel, a media box (eg, Samsung HomeSyncTM, Apple TVTM, or Google TVTM), and a game console (eg, XboxTM, PlayStationTM).
  • a component eg, a first component is "coupled with/to (operatively or communicatively)" to another component (eg, a second component);
  • another component eg, a second component
  • the certain element may be directly connected to the other element or may be connected through another element (eg, a third element).
  • a component eg, a first component
  • another component eg, a second component
  • the expression “a device configured to” may mean that the device is “capable of” with other devices or parts.
  • a processor configured (or configured to perform) A, B, and C refers to a dedicated processor (eg, an embedded processor) for performing the corresponding operations, or by executing one or more software programs stored in a memory device.
  • a generic-purpose processor eg, a CPU or an application processor
  • a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or a combination of hardware and software.
  • a plurality of 'modules' or a plurality of 'units' are integrated into at least one module and implemented with at least one processor (not shown) except for 'modules' or 'units' that need to be implemented with specific hardware.
  • FIG. 1 is a diagram for explaining a process in which an electronic device 100 verifies a signature value of a file using a virtualization space, according to an embodiment of the present disclosure.
  • the electronic device 100 may include an operating system (OS) 10 that controls hardware on the electronic device 100 and provides a base environment for executing application software.
  • the operating system 10 may serve as an interface between hardware of the electronic device and application software.
  • the operating system 10 may include a process constituting the operating system and a kernel that allocates resources to programs executed under the control of the operating system.
  • the kernel may allocate resources of the electronic device by connecting and managing interactions between physical components included in the electronic device 100 and individual middleware of the operating system 10 .
  • the kernel may detect that each application or file is executed.
  • the plurality of virtualization spaces 20 - 1 and 20 - 2 refer to virtualization spaces in which resources of a kernel of the operating system 10 are shared and a separate application can be executed.
  • the virtualized space may be implemented as a container.
  • the operating system 10 virtualization technology using a container divides the inside of the operating system into a kernel space that manages physical resources and a user space that executes user processes, that is, applications (APPs, applications), and divides the user space into several parts, each It refers to a technology for allocating and sharing hardware resources used in user processes of
  • the virtualization technology using a container is an OS virtualization method that does not use a guest OS, and consumes little host resources and takes very little time to start up, so it may be suitable for application virtualization.
  • virtualization technology using containers enables independent configuration and distribution of system infrastructure (existing physical servers (bare metal), virtual machines (virtual machines), etc.) by virtualizing at the OS level.
  • the first virtualization space 20-1 and the second virtualization space 20-2 share the resources of the kernel on the operating system 10, but are for executing separate applications and each application. It may include a library (library), middleware (middleware), and the like. Meanwhile, although FIG. 1 shows that the operating system 10 is virtualized with two virtualization spaces, this is only an example and may be virtualized into a variety of virtualization spaces.
  • a public key or a secure level used for decrypting a signature value may be allocated to each of the virtualization spaces 20 - 1 and 20 - 2 .
  • a public key is a key used for file encryption in a public key encryption method (or an asymmetric key encryption method), and has an inverse relationship with a private key in a function used in encryption. An embodiment related to the security level will be described in detail with reference to FIG. 2 .
  • a public key A may be allocated on the operating system 10, and public keys B and C different from the public key A may be allocated on the first virtual space 20-1 and the second virtual space, respectively. there is.
  • the electronic device 100 When the kernel detects execution of the first file in the first virtual space 20-1, the electronic device 100 writes the first file to the first file using the first public key allocated to the first virtual space 20-1.
  • the included signature value may be decrypted, and the signature value of the first file may be verified by comparing the decrypted signature value with a hash value corresponding to the first file.
  • the hash value corresponding to the first file means a hash value extracted from the first file.
  • the first file 30-1 includes a signature value obtained by encrypting the hash value with the private key A.
  • the signature value may be included at the end of the first file 30 - 1 , but this is only an example and may be included in the front part or the middle part.
  • the electronic device 100 When the kernel detects that the first file 30-1 is executed in the first virtual space 20-1, the electronic device 100 discloses the signature value included in the first file 30-1 to B. After decryption with the key, the signature value of the first file 30-1 may be verified by comparing the decrypted signature value with a hash value corresponding to the first file 30-1.
  • the electronic device 100 may identify that an incorrect signature value is included in the first file 30 - 1 and block execution of the first file 30 - 1 .
  • the hash value includes a signature value obtained by encryption with the private key B in the first file 30 - 2 .
  • the electronic device 100 sets the signature value included in the first file 30-2 as B.
  • the signature value of the first file 30 - 2 may be verified by comparing the decrypted signature value with a hash value corresponding to the first file 30 - 2 .
  • the electronic device 100 identifies that the first file 30-2 includes a signature value encrypted with the private key corresponding to the public key allocated to the first virtual space 20-1, and the first Execution of file 30-1 may be maintained.
  • the electronic device 100 when the kernel detects that a file is being executed in the second virtual space 20 - 2 , the electronic device 100 performs execution using the C public key allocated to the second virtual space 20 - 2 . You can verify the signature value of the detected file.
  • the second file 40-1 does not include a signature value.
  • the signature value cannot be decrypted using the C public key.
  • the electronic device 100 may block execution of the second file 40 - 1 that does not include a signature value.
  • a signature value obtained by encrypting a hash value with a C private key is included in the second file 40-2.
  • the electronic device 100 discloses the signature value included in the second file 40-2 to C.
  • the signature value of the second file 40-2 may be verified by comparing the decrypted signature value with a hash value corresponding to the second file 40-2.
  • the electronic device 100 identifies that the second file 40-2 includes a signature value encrypted with the private key corresponding to the public key allocated to the second virtual space 20-2, and the second Execution of file 40-2 may be maintained.
  • the electronic device 100 uses the second public key allocated to the operating system 10 . can be used to decrypt the signature value included in the second file.
  • the electronic device 100 may verify the signature value of the second file by comparing the decrypted signature value using the second public key with the hash value corresponding to the second file.
  • the hash value corresponding to the second file means a hash value extracted from the second file.
  • the A public key may be assigned to the operating system 10 .
  • the kernel detects that a file (50-2) that does not contain a signature value or a file (50-3) containing a signature value obtained by encrypting the hash with the private key B is executed in a space other than the virtualized space
  • the electronic The device 100 may identify that the signature of each of the files 50 - 2 and 50 - 3 is not intact through the verification process. Accordingly, the electronic device 100 may stop the execution of each of the files 50 - 2 and 50 - 3 .
  • the electronic The device 100 may decrypt the signature value of the file 50 - 1 with the public key A to perform verification on the signature value. Since the signature value decrypted using the public key A matches the hash value of the file 50 - 1 , the electronic device 100 may maintain the execution of the file 50 - 1 .
  • FIG. 2 is a diagram for explaining a process in which the electronic device 100 performs signature verification using a virtual space to which a security level is assigned, according to an embodiment of the present disclosure.
  • a security level may be assigned to each of the plurality of virtualization spaces 20 - 1 and 20 - 2 sharing kernel resources on the operating system 10 .
  • the security level quantifies or categorizes the degree of trust in a specific file based on at least one of the importance of the file, the area in which the file is executed, or the degree of impact to be generated according to the execution of the file. The higher the security level of a file, the more trustworthy it is.
  • security level 7 is allocated to the operating system 10 , and security level 5 and security level 5 and Security level 3 may be assigned. Since the operating system 10 has a greater effect on the entire process of the electronic device 100 than the other virtualized spaces 20-1 and 20-2, it is higher than the security level assigned to the other virtualized spaces 20-1 and 20-2. A higher security level may be assigned.
  • the security level is assigned to the signature value of each file in FIG. 2 , this is only an example.
  • the security level may be assigned to the front part or the back part of the file, and may be assigned to a location separate from the signature value.
  • the electronic device 100 When the kernel detects that the file is executed on the first virtual space 20-1 to which the security level 5 is allocated, the electronic device 100 performs the security level assigned to the file and the first virtual space 20-1 on the first virtual space 20-1. By comparing the security level assigned to
  • the electronic device 100 when the kernel detects that the file 60 - 1 to which the security level 3 is allocated is executed in the first virtual space 20 - 1 , the electronic device 100 is configured in the first virtual space 20 - 1 It is possible to determine whether to stop the execution of the file by comparing the security level assigned to the file 60 - 1 with the allocation level of the file 60 - 1 . Since the security level (security level 3) of the file 60-1 is lower than the security level (security level 5) allocated to the first virtual space 20-1, the electronic device 100 transmits the file 60-1 can stop running.
  • the electronic device 100 when the kernel detects that the file 60 - 2 to which the sixth security level is assigned is executed in the first virtual space 20 - 1 , the electronic device 100 is configured in the first virtual space 20 - 1 ) may be compared with the assigned level of the file 60 - 2 to determine whether to stop the execution of the file. Since the security level (security level 6) of the file 60-2 is higher than the security level (security level 5) allocated to the first virtual space 20-1, the electronic device 100 transmits the file 60-2. can keep running.
  • the electronic device 100 sets the security level allocated to the file and the second virtualization space. By comparing the security level allocated on the space 20-2, it is possible to determine whether to stop the execution of the file.
  • the electronic device 100 sets the security level to the file 70-1. It can identify this unassigned and abort the execution of file 70-1.
  • the electronic device 100 allocates the file 70 - 2 It is possible to determine whether to stop the execution of the file by comparing the security level 3, which is the security level, and the security level allocated to the second virtual space 20 - 2 . Since the security level allocated to the file 70-2 and the security level allocated to the second virtual space 20-2 are the same as security level 3, the electronic device 100 prevents the execution of the file 70-2. can keep
  • the electronic device 100 sets the security level allocated to the operating system 10 and the file allocated to the operating system 10 . You can compare the security levels to decide whether to keep the file running.
  • the electronic device 100 displays the file ( 80-1) can be stopped.
  • the electronic device 100 displays the file 80 - 2 , 80-3) can be maintained.
  • FIG. 3A is a block diagram schematically illustrating a configuration of an electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 may include a memory 110 and a processor 120 .
  • the configuration illustrated in FIG. 3A is an exemplary diagram for implementing embodiments of the present disclosure, and appropriate hardware and software configurations at a level obvious to those skilled in the art may be additionally included in the electronic device 100 .
  • the memory 110 may store instructions and programs related to at least one other component of the electronic device 100 .
  • An instruction means one action statement for the processor 120 in a programming language.
  • the program includes not only an application program for providing a specific service, but also an operating system for driving the application program.
  • the memory 110 may be implemented as a non-volatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD).
  • the memory 110 is accessed by the processor 120 , and reading/writing/modification/deletion/update of data by the processor 120 may be performed.
  • 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).
  • the memory 110 may include a plurality of virtualization spaces that share resources of the kernel on the operating system and include separate applications and libraries and middleware for executing applications.
  • the virtualized space may be implemented as a container. At least one of a public key or a virtualization space may be allocated to each of the plurality of virtualization spaces.
  • the processor 120 may be electrically connected to the memory 110 to control overall operations and functions of the electronic device 100 .
  • the processor 120 may verify a signature value included in a file executed in at least one virtualization space among a plurality of virtualization spaces.
  • the processor 120 stores the first file executed using the first public key.
  • the included signature value can be decrypted.
  • the processor 120 may verify the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file.
  • the processor 120 may extract a hash value of the first file to obtain a hash value corresponding to the first file.
  • the time point at which the hash value corresponding to the first file is acquired may be when execution of the first file is detected, but is not limited thereto.
  • the processor 120 may acquire a hash value corresponding to the first file while decrypting the signature value included in the first file regardless of an order or a time point.
  • the processor 120 may stop the execution of the first file. That is, when the integrity of the signature value of the first file is not verified, the electronic device 100 may stop the execution of the first file.
  • the processor 120 may identify the integrity of the first file and maintain the execution of the first file.
  • the processor 120 decrypts the signature value included in the second file by using the second public key allocated to the operating system. and a signature value decrypted using the second public key and a hash value corresponding to the second file may be compared to verify the signature value of the second file.
  • the processor 120 decrypts the signature value of the file using the public key allocated to the specific virtualized space, and when the file is executed in a space other than the specific virtualized space, the processor 120 ) can decrypt the signature value of the file using the public key assigned to the operating system.
  • the public key allocated to the operating system and the virtualization space may be different.
  • the processor 120 sets the security level allocated to the fourth file and the first security level. By comparing, it is possible to determine whether to stop the execution of the fourth file. That is, the processor 120 may determine whether to stop the execution of the file by comparing the security level allocated to the virtualization space and the security level on the file whose execution is detected.
  • the processor 120 may determine to stop the execution of the fourth file.
  • the processor 120 may determine to maintain the execution of the fourth file.
  • the processor 120 compares the security level of the fifth file with the second security level allocated on the operating system to execute the fifth file. You can decide whether to stop or not.
  • the second security level allocated on the operating system may be different from the security level allocated on another virtualization space.
  • the security level allocated on the operating system may be higher than the security level allocated on another virtualization space, but is not limited thereto, and may be equal to or less than the security level.
  • both a security level and a public key may be allocated on each operating system and virtualization space.
  • the processor 120 determines whether the file is executed based on the security level and signature value of the executed file and the security level and public key allocated on the executed space. You can decide whether to stop execution or not.
  • the processor 120 For example, if the kernel detects the execution of the sixth file in the sixth virtual space to which the first security level is allocated and the third public key is allocated among the plurality of virtualization spaces, the processor 120 generates the signature value of the file. 3 It can be decrypted using the public key. In addition, the processor 120 may determine whether to stop the execution of the sixth file based on the decrypted signature value and the security level assigned to the sixth file.
  • the processor 120 compares the hash value corresponding to the sixth file with the decrypted signature value, and compares the first security level with the security level assigned to the sixth file to determine whether to stop the execution of the sixth file. can decide whether When the hash value corresponding to the sixth file and the decrypted signature value are different or the security level assigned to the sixth file is smaller than the first security level, the processor 120 may stop the execution of the sixth file.
  • the processor 120 may receive the third file from the external server through the communication unit 130 .
  • the description of the communication unit 130 will be described in a later part.
  • the third file may be a file set to be executed in one of a plurality of virtualization spaces.
  • the processor 120 uses the third public key included in the third virtual space to perform a third The signature value included in the file can be decrypted. Then, the processor 120 may verify the signature value of the third file by comparing the decrypted signature value with the hash value corresponding to the third file. When the decrypted signature value and the hash value corresponding to the third file match, the processor 120 may maintain the execution of the third file. When the decrypted signature value and the hash value corresponding to the third file do not match or the third file does not include the signature value, the processor 120 may maintain the execution of the third file.
  • the processor 120 may change the public key allocated to the plurality of virtualization spaces according to a user command. For example, when the private key corresponding to the public key allocated to the first virtual space is leaked, the processor 120 may receive a user command to change the public key allocated to the first virtual space.
  • the processor 120 controls the communication unit 130 to change the public key allocated to the first virtual space based on a user command, and to transmit the private key corresponding to the changed public key to an external server corresponding to the first virtual space. can do.
  • the external server corresponding to the first virtual space means a server that creates, signs, and transmits a file that can be executed in the first virtual space to the electronic device 100 .
  • the processor 120 may change the security level allocated to the plurality of virtualization spaces according to a user command. For example, the processor 120 may receive a user command to increase the security level allocated to the first virtual space in order to increase the reliability of the file executed on the first virtual space. The processor 120 may increase the security level allocated to the first virtual space based on the input user command.
  • the processor 120 includes a central processing unit (CPU), a micro controller unit (MCU), a micro processing unit (MPU), a controller, and an application processor (AP) for processing a digital signal. )), a communication processor (CP), and one or more of an ARM processor, or may be defined by a corresponding term.
  • the processor 120 may be implemented as a system on chip (SoC), large scale integration (LSI), or a field programmable gate array (FPGA) having a built-in processing algorithm.
  • SoC system on chip
  • LSI large scale integration
  • FPGA field programmable gate array
  • the processor 120 may perform various functions by executing computer executable instructions stored in the memory 110 .
  • the electronic device 100 may include a memory 110 , a processor 120 , a communication unit 130 , a display 140 , a speaker 150 , and an input unit 160 . Since the memory 110 and the processor 120 have been described in detail with reference to FIG. 3A , redundant descriptions will be omitted.
  • the communication unit 130 may be implemented as a separate hardware device including a circuit.
  • the communication unit 130 may communicate with an external device (eg, another type of electronic device or an external server).
  • the communication connection of the communication unit 130 with the external device may include communication through a third device (eg, a repeater, a hub, an access point, a server, or a gateway, etc.).
  • the communication unit 130 may include various communication modules to communicate with an external device.
  • the communication unit 140 may include a wireless communication module, for example, LTE, LTE Advance (LTE-A), 5G ( 5th Generation), CDMA (code division multiple access), WCDMA (wideband CDMA) ), a universal mobile telecommunications system (UMTS), wireless broadband (WiBro), and a cellular communication module using at least one of Global System for Mobile Communications (GSM).
  • LTE LTE Advance
  • 5G 5th Generation
  • CDMA code division multiple access
  • WCDMA wideband CDMA
  • UMTS universal mobile telecommunications system
  • WiBro wireless broadband
  • GSM Global System for Mobile Communications
  • the wireless communication module may include, for example, at least one of wireless fidelity (WiFi), Bluetooth, Bluetooth low energy (BLE), Zigbee, and radio frequency (RF).
  • WiFi wireless fidelity
  • BLE Bluetooth low energy
  • RF radio frequency
  • the communication unit 130 may receive a file from an external server.
  • the external server may be a server that encrypts a hash value of a file based on a private key corresponding to a public key allocated to one of the virtual spaces of the electronic device 100 . An embodiment related thereto will be described in detail with reference to FIG. 4 .
  • the communication unit 130 may transmit the private key corresponding to the public key changed by the user command to the external server.
  • the display 140 may display various information under the control of the processor 120 .
  • the display 140 displays a message indicating that the execution of the file is stopped Alternatively, an indicator indicating this may be displayed.
  • the display 150 may be implemented as a touch screen together with a touch panel or as a flexible display.
  • the speaker 150 is configured to output not only various audio data on which various processing tasks such as decoding, amplification, and noise filtering have been performed by the audio processing unit, but also various notification sounds or voice messages.
  • the speaker 150 may output, under the control of the processor 120 , a notification sound or a voice message indicating that execution of the file is stopped based on a security level or a signature value included in the file being executed.
  • a configuration for outputting audio may be implemented as a speaker, but this is only an exemplary embodiment and may be implemented as an output terminal capable of outputting audio data.
  • the input unit 160 may receive a user input for controlling the electronic device 100 .
  • the input unit 170 may include a touch panel for receiving a user touch input using a user's hand or a stylus pen, a button for receiving a user manipulation, and the like.
  • the input unit 160 may be implemented as another input device (eg, a keyboard, a mouse, a motion input unit, etc.).
  • the input unit 160 may receive a public key allocated to one of a plurality of virtualization spaces or a user command for changing a security level.
  • the processor 120 may change a public key or a security level allocated to one of a plurality of virtualization spaces based on a user command input to the input unit 160 .
  • FIG. 4 is a flowchart illustrating an operation between the electronic device 100 and the external server 200 according to an embodiment of the present disclosure.
  • the external server 200 may create a file and perform a digital signature operation on the file (S410).
  • the file generated by the external server 200 may be a file to be executed in a specific virtualization space of the electronic device 100 .
  • the external server 200 may add a signature value obtained by encrypting the hash value of the generated file with a private key to a portion of the file.
  • the external server 200 may transmit the generated file including the signature value to the electronic device 100 (S420).
  • the electronic device 100 may detect execution of a file in a virtual space corresponding to the external server 200 among a plurality of virtual spaces ( S430 ). For example, at least one of a plurality of virtualization spaces on the electronic device 100 may be set to execute a file generated by the external server 200 . That is, the external server 200 may obtain a signature value by encrypting a hash value of a file generated with a private key corresponding to a public key allocated on at least one set virtual space.
  • the electronic device 100 decrypts the signature value included in the file using the public key allocated to the virtual space corresponding to the external server 200 . It can be done (S440).
  • the electronic device 100 may verify the signature value of the file by comparing the decrypted signature value with a hash value corresponding to the file received from the external server 200 (S450).
  • the hash value corresponding to the file received from the external server 200 means a hash value extracted from the file.
  • the electronic device 100 may determine whether to stop the execution of the file according to the verification result of the signature value (S460). When the decrypted signature value and the hash value corresponding to the file are the same, the electronic device 100 may identify the integrity of the signature value and maintain the execution of the file. When the decrypted signature value is different from the hash value corresponding to the file, the electronic device 100 may stop the execution of the file.
  • the electronic device 100 may change the public key allocated to the virtual space corresponding to the external server 200 according to a user command (S470). For example, when the private key corresponding to the public key allocated to the virtualization space is leaked, the electronic device 100 may receive a user command to change the public key. The electronic device 100 may transmit the private key corresponding to the changed public key to the external server 200 (S480).
  • the external server 200 may generate a file to be transmitted to the electronic device 100 and perform a digital signature operation on the generated file using the received private key (S490). Specifically, the external server 200 may obtain a signature value by encrypting a hash value of a newly generated file using the received changed private key, and may transmit the file including the signature value to the electronic device 100 .
  • FIG. 5 is a flowchart illustrating a method of controlling the electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 uses the first public key to generate a signature included in the executed first file
  • the value may be decoded (S510).
  • the electronic device 100 may verify the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file ( S520 ).
  • the hash value corresponding to the first file means a hash value extracted through the first file.
  • the electronic device 100 may identify the integrity of the signature value and maintain execution of the file.
  • the electronic device 100 may stop the execution of the file.
  • Various embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage medium readable by a machine (eg, a computer).
  • a device that is called and can operate according to the called command it may include an electronic device (eg, the electronic device 100) according to the disclosed embodiments.
  • the processor When the command is executed by the processor, the processor directly Alternatively, a function corresponding to the instruction may be performed using other components under the control of the processor.
  • the instruction may include code generated or executed by a compiler or an interpreter.
  • a 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
  • the method according to various embodiments disclosed in this document may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product may be distributed in the form of a machine-readable storage medium (eg, compact disc read only memory (CD-ROM)) or online through an application store (eg, Play StoreTM).
  • an application store eg, Play StoreTM
  • at least a portion of the computer program product is at least temporarily stored in a storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server, or is temporarily stored can be created with
  • Each of the components may be composed of a singular or a plurality of entities, and some sub-components of the aforementioned sub-components may be omitted, or other sub-components may be It may be further included in various embodiments.
  • some components eg, a module or a program
  • operations performed by a module, program, or other component are executed sequentially, parallel, iteratively, or heuristically, or at least some operations are executed in a different order, are omitted, or other operations are added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

An electronic device and a control method thereof are disclosed. An electronic device of the present disclosure may comprise: an operating system; a memory including a plurality of virtualization spaces which share a resource of a kernel on the operating system and each of which is assigned a unique public key; and a processor for verifying a signature value included in a file executed in at least one virtualization space among the plurality of virtualization spaces, wherein when the kernel detects the execution of a first file in a first virtualization space to which a first public key is assigned among the plurality of virtualization spaces, the processor decodes a signature value included in the executed first file by using the first public key, and compares the decoded signature value with a hash value corresponding to the first file to verify the signature value of the first file.

Description

전자 장치 및 이의 제어 방법Electronic device and control method thereof
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로서, 더욱 상세하게는 가상화 환경을 이용하여 파일의 서명 값을 검증하는 전자 장치 및 이의 제어 방법에 관한 것이다.The present disclosure relates to an electronic device and a method for controlling the same, and more particularly, to an electronic device for verifying a signature value of a file using a virtualization environment, and a method for controlling the same.
CROSS REFERENCE TO RELATED APPLICATIONSCROSS REFERENCE TO RELATED APPLICATIONS
본 출원은 2020년 9월 11일에 출원된 대한민국 특허출원 제 10-2020-0116907 호에 기초하여 우선권을 주장하며, 해당 출원의 모든 내용은 그 전체가 본 출원에 레퍼런스로 포함된다.This application claims priority based on Korean Patent Application No. 10-2020-0116907 filed on September 11, 2020, and all contents of the application are incorporated herein by reference in their entirety.
정보 통신 기술 등이 발전됨에 따라 사용자들은 데이터를 보다 자유롭게 교환할 수 있게 되었다. 뿐만 아니라, 발전된 정보 통신 기술을 이용하여 사용자에게 제공되는 전자 상거래 또는 금융 거래 서비스가 확대되면서 데이터 보안의 중요성이 대두되었다.With the development of information and communication technologies, users are able to exchange data more freely. In addition, as electronic commerce or financial transaction services provided to users using advanced information and communication technologies have been expanded, the importance of data security has emerged.
기존에는 개인 또는 기업간에 교환되는 데이터에 디지털 서명(digital signature)을 수행하여 데이터의 변조를 방지하는 기술이 개발되었다. 다만, 기존 기술의 경우, 데이터에 디지털 서명을 강제한다는 제약이 존재한다는 점에서 시스템의 유연성을 떨어뜨리며, 공개 키(key) 또는 개인 키의 관리가 어렵다는 단점이 존재하였다.Conventionally, a technology for preventing data tampering by performing a digital signature on data exchanged between individuals or companies has been developed. However, in the case of the existing technology, there are disadvantages in that the system is less flexible in that there is a constraint to force a digital signature on data, and it is difficult to manage a public key or a private key.
또한, 기존 기술의 경우, 디지털 서명으로 발생되는 파일의 용량과 해시(hash) 비교를 통한 디지털 서명 검증 과정에서 발생하는 연산으로 추가적인 리소스가 필요하다는 한계가 존재하였다.In addition, in the case of the existing technology, there is a limitation that an additional resource is required for an operation generated in the digital signature verification process through a hash comparison with the capacity of a file generated by a digital signature.
본 개시는 상술한 필요성에 따라 안출된 것으로서, 본 개시의 목적은 가상화 공간마다 별도의 공개키 또는 보안 레벨을 할당하여 파일의 서명 값을 검증하는 전자 장치 및 이의 제어 방법을 제공함에 있다.The present disclosure has been made in response to the above-mentioned necessity, and an object of the present disclosure is to provide an electronic device for verifying a signature value of a file by allocating a separate public key or security level for each virtualization space and a control method thereof.
상술한 목적을 달성하기 위한 본 개시의 일 실시예로, 전자 장치는 운영 체제 및 운영 체제 상의 커널의 리소스를 공유하며 고유의 공개키가 각각 할당된 복수의 가상화 공간을 포함하는 메모리 및 복수의 가상화 공간 중 적어도 하나의 가상화 공간 상에서 실행되는 파일에 포함된 서명 값을 검증하는 프로세서를 포함하고, 프로세서는 커널이 복수의 가상화 공간 중 제1 공개키가 할당된 제1 가상화 공간 상에서 제1 파일의 실행을 감지하면, 제1 공개 키를 이용하여 실행된 제1 파일에 포함된 서명 값을 복호화하고, 복호화된 서명 값과 제1 파일에 대응되는 해시 값을 비교하여 제1 파일의 서명 값을 검증할 수 있다.In one embodiment of the present disclosure for achieving the above object, an electronic device shares a resource of an operating system and a kernel on the operating system and includes a plurality of virtualization spaces to which unique public keys are allocated, respectively, and a plurality of virtualizations. A processor for verifying a signature value included in a file executed in at least one virtual space among the spaces, wherein the processor executes the first file in a first virtual space to which a first public key is allocated among a plurality of virtual spaces. is detected, the signature value included in the executed first file is decrypted using the first public key, and the signature value of the first file is verified by comparing the decrypted signature value with the hash value corresponding to the first file. can
프로세서는 커널이 복수의 가상화 공간 이외의 공간에서 제2 파일이 실행되는 것을 감지하면, 운영 체제 상에 할당된 제2 공개 키를 이용하여 제2 파일에 포함된 서명 값을 복호화하고, 제2 공개 키를 이용하여 복호화된 서명 값과 제2 파일에 대응되는 해시 값을 비교하여 제2 파일의 서명 값을 검증할 수 있고, 제2 공개 키와 제1 공개 키는 서로 상이할 수 있다.When the kernel detects that the second file is executed in a space other than the plurality of virtualized spaces, the processor decrypts the signature value included in the second file using the second public key allocated on the operating system, and the second public key The signature value of the second file may be verified by comparing the signature value decrypted using the key with a hash value corresponding to the second file, and the second public key and the first public key may be different from each other.
복호화된 서명 값과 제1 파일에 대응되는 해시 값이 일치하지 않거나 제1 파일 상에 서명 값이 포함되지 않은 경우, 프로세서는 제1 파일의 실행을 중지시킬 수 있다.When the decrypted signature value and the hash value corresponding to the first file do not match or the signature value is not included in the first file, the processor may stop the execution of the first file.
전자 장치는 회로를 포함하는 통신부를 더 포함할 수 있으며, 프로세서는 외부 서버로부터 제3 파일을 통신부를 통해 수신하고, 커널이 복수의 가상화 공간 중 외부 서버에 대응되는 제3 가상화 공간 상에서 제3 파일이 실행되는 것을 감지하면, 제3 가상화 공간에 포함된 제3 공개 키를 이용하여 제3 파일에 포함된 서명 값을 복호화하고, 복호화된 서명 값과 제3 파일에 대응되는 해시 값을 비교하여 제3 파일의 서명 값을 검증할 수 있다.The electronic device may further include a communication unit including a circuit, the processor receives the third file from the external server through the communication unit, and the kernel performs the third file on a third virtual space corresponding to the external server among the plurality of virtual spaces. When it detects that this is being executed, the signature value included in the third file is decrypted using the third public key included in the third virtual space, and the decrypted signature value is compared with the hash value corresponding to the third file. 3 You can verify the signature value of the file.
복수의 가상화 공간 각각에 보안 레벨이 할당되고, 프로세서는 커널이 복수의 가상화 공간 중 제1 보안 레벨이 할당된 제4 가상화 공간 상에서 제4 파일이 실행되는 것을 감지하면, 파일에 할당된 보안 레벨과 제1 보안 레벨을 비교하여 제4 파일의 실행을 중지시킬지 여부를 결정할 수 있다.A security level is allocated to each of the plurality of virtualization spaces, and when the kernel detects that the fourth file is executed in the fourth virtualization space to which the first security level is allocated among the plurality of virtualization spaces, the security level allocated to the file and By comparing the first security level, it is possible to determine whether to stop the execution of the fourth file.
프로세서는 제4 파일에 할당된 보안 레벨이 제1 보안 레벨 미만이거나 제4 파일에 보안 레벨이 할당되지 않은 경우, 제4 파일의 실행을 중지시키는 것으로 결정하고, 제4 파일에 할당된 보안 레벨이 제1 보안 레벨 이상인 경우, 제4 파일을 실행하는 것으로 결정할 수 있다.If the security level assigned to the fourth file is less than the first security level or the fourth file is not assigned a security level, the processor determines to stop execution of the fourth file, and the security level assigned to the fourth file is If the first security level or higher, it may be determined to execute the fourth file.
프로세서는 커널이 복수의 가상화 공간 이외의 공간 상에서 제5 파일의 실행을 감지하면, 운영 체제 상에 할당된 제2 보안 레벨과 제5 파일의 보안 레벨을 비교하여 제5 파일의 실행을 중지시킬지 여부를 결정할 수 있고, 제2 보안 레벨은 제1 보안 레벨과 상이할 수 있다.When the kernel detects the execution of the fifth file in a space other than the plurality of virtualized spaces, the processor compares the security level of the fifth file with the second security level allocated on the operating system to stop the execution of the fifth file may be determined, and the second security level may be different from the first security level.
프로세서는 커널이 복수의 가상화 공간 중 제1 보안 레벨이 할당되고 제3 공개키가 할당된 제6 가상화 공간 상에서 제6 파일의 실행을 감지하면, 파일의 서명 값을 제3 공개키를 이용하여 복호화하고, 복호화한 서명 값 및 제6 파일에 할당된 보안 레벨에 기초하여 제6 파일의 실행을 중지시킬지 여부를 결정할 수 있다.When the kernel detects the execution of the sixth file in the sixth virtual space to which the first security level is allocated and the third public key is allocated among the plurality of virtualization spaces, the processor decrypts the signature value of the file using the third public key and whether to stop the execution of the sixth file based on the decrypted signature value and the security level assigned to the sixth file.
전자 장치는 통신부를 더 포함할 수 있으며, 프로세서는 사용자 명령에 따라 제1 가상화 공간에 할당된 공개키를 변경하고, 변경된 공개키에 대응되는 개인 키를 제1 가상화 공간에 대응되는 외부 서버에 전송하도록 통신부를 제어할 수 있다.The electronic device may further include a communication unit, and the processor changes the public key allocated to the first virtual space according to a user command, and transmits the private key corresponding to the changed public key to an external server corresponding to the first virtual space You can control the communication unit to do so.
한편, 상술한 목적을 달성하기 위한 본 개시의 일 실시예로, 운영 체제 및 운영 체제 상의 커널의 리소스를 공유하며 고유의 공개키가 각각 할당된 복수의 가상화 공간을 포함하는 메모리를 포함하는 전자 장치의 제어 방법은, 커널이 복수의 가상화 공간 중 제1 공개키가 할당된 제1 가상화 공간 상에서 제1 파일의 실행을 감지하면, 제1 공개 키를 이용하여 실행된 제1 파일에 포함된 서명 값을 복호화하는 단계 및 복호화된 서명 값과 제1 파일에 대응되는 해시 값을 비교하여 제1 파일의 서명 값을 검증하는 단계를 포함할 수 있다.On the other hand, as an embodiment of the present disclosure for achieving the above object, an electronic device including an operating system and a memory including a plurality of virtualization spaces that share resources of a kernel on the operating system and have unique public keys allocated to each. When the kernel detects the execution of the first file in the first virtual space to which the first public key is allocated among a plurality of virtual spaces, the signature value included in the first file executed using the first public key is and verifying the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file.
제어 방법은 커널이 복수의 가상화 공간 이외의 공간에서 제2 파일이 실행되는 것을 감지하면, 운영 체제 상에 할당된 제2 공개 키를 이용하여 제2 파일에 포함된 서명 값을 복호화하는 단계 및 제2 공개 키를 이용하여 복호화된 서명 값과 제2 파일에 대응되는 해시 값을 비교하여 제2 파일의 서명 값을 검증하는 단계를 더 포함할 수 있으며, 제2 공개 키와 제1 공개 키는 서로 상이할 수 있다.The control method includes the steps of, when the kernel detects that the second file is executed in a space other than the plurality of virtualized spaces, decrypting the signature value included in the second file using the second public key allocated on the operating system; The method may further include verifying the signature value of the second file by comparing the decrypted signature value using the public key with a hash value corresponding to the second file, wherein the second public key and the first public key are mutually may be different.
상기 검증하는 단계는 복호화된 서명 값과 제1 파일에 대응되는 해시 값이 일치하지 않거나 제1 파일 상에 서명 값이 포함되지 않은 경우, 제1 파일의 실행을 중지시키는 단계를 더 포함할 수 있다.The verifying may further include stopping execution of the first file when the decrypted signature value and the hash value corresponding to the first file do not match or the signature value is not included in the first file. .
제어 방법은 외부 서버로부터 제3 파일을 수신하는 단계, 커널이 복수의 가상화 공간 중 외부 서버에 대응되는 제3 가상화 공간 상에서 제3 파일이 실행되는 것을 감지하면, 제3 가상화 공간에 포함된 제3 공개 키를 이용하여 상기 제3 파일에 포함된 서명 값을 복호화하는 단계 및 복호화된 서명 값과 제3 파일에 대응되는 해시 값을 비교하여 제3 파일의 서명 값을 검증하는 단계를 더 포함할 수 있다.The control method includes receiving a third file from an external server, and when the kernel detects that the third file is executed in a third virtual space corresponding to the external server among a plurality of virtual spaces, the third file included in the third virtual space The method may further include decrypting the signature value included in the third file using a public key and verifying the signature value of the third file by comparing the decrypted signature value with a hash value corresponding to the third file. there is.
복수의 가상화 공간 각각에 보안 레벨이 할당되고, 제어 방법은 커널이 복수의 가상화 공간 중 제1 보안 레벨이 할당된 제4 가상화 공간 상에서 제4 파일이 실행되는 것을 감지하면, 파일에 할당된 보안 레벨과 제1 보안 레벨을 비교하여 제4 파일의 실행을 중지시킬지 여부를 결정하는 단계를 더 포함할 수 있다.A security level is assigned to each of the plurality of virtualization spaces, and the control method is when the kernel detects that the fourth file is executed in the fourth virtualized space to which the first security level is allocated among the plurality of virtualization spaces, the security level assigned to the file The method may further include determining whether to stop the execution of the fourth file by comparing the first security level with the first security level.
상기 결정하는 단계는, 제4 파일에 할당된 보안 레벨이 제1 보안 레벨 미만이거나 제4 파일에 보안 레벨이 할당되지 않은 경우, 제4 파일의 실행을 중지시키는 것으로 결정하고, 제4 파일에 할당된 보안 레벨이 제1 보안 레벨 이상인 경우, 제4 파일을 실행하는 것으로 결정하는 단계를 더 포함할 수 있다.In the determining step, when the security level assigned to the fourth file is less than the first security level or the fourth file is not assigned a security level, it is determined to stop the execution of the fourth file, and assigned to the fourth file The method may further include determining that the fourth file is executed when the security level is higher than or equal to the first security level.
상기 결정하는 단계는 커널이 복수의 가상화 공간 이외의 공간 상에서 제5 파일의 실행을 감지하면, 운영 체제 상에 할당된 제2 보안 레벨과 제5 파일의 보안 레벨을 비교하여 제5 파일의 실행을 중지시킬지 여부를 결정하는 단계를 포함하고, 제2 보안 레벨은 제1 보안 레벨과 상이할 수 있다.In the determining step, when the kernel detects the execution of the fifth file in a space other than the plurality of virtualized spaces, the execution of the fifth file is performed by comparing the security level of the fifth file with the second security level allocated to the operating system. determining whether to suspend, wherein the second security level may be different from the first security level.
상기 결정하는 단계는 커널이 복수의 가상화 공간 중 제1 보안 레벨이 할당되고 제3 공개키가 할당된 제6 가상화 공간 상에서 제6 파일의 실행을 감지하면, 파일의 서명 값을 제3 공개키를 이용하여 복호화하는 단계 및 복호화한 서명 값 및 제6 파일에 할당된 보안 레벨에 기초하여 제6 파일의 실행을 중지시킬지 여부를 결정하는 단계를 더 포함할 수 있다.In the determining step, when the kernel detects the execution of the sixth file in the sixth virtual space to which the first security level is allocated and the third public key is allocated among the plurality of virtualization spaces, the signature value of the file is set to the third public key. The method may further include the step of decrypting using the decryption method and determining whether to stop the execution of the sixth file based on the decrypted signature value and the security level assigned to the sixth file.
제어 방법은 사용자 명령에 따라 제1 가상화 공간에 할당된 공개키를 변경하는 단계 및 변경된 공개키에 대응되는 개인 키를 상기 제1 가상화 공간에 대응되는 외부 서버에 전송하는 단계를 더 포함할 수 있다.The control method may further include changing the public key allocated to the first virtual space according to a user command, and transmitting the private key corresponding to the changed public key to an external server corresponding to the first virtual space. .
상술한 바와 같이 본 개시의 다양한 실시예에 의해, 전자 장치는 가상화 공간을 이용하여 파일의 설명을 검증함으로써 시스템의 유지 보수와 보안 문제에 효율적으로 대응할 수 있으며, 서명 검사로 인한 폐쇄적인 시스템을 유연한 시스템으로 개선할 수 있다.As described above, according to various embodiments of the present disclosure, the electronic device can efficiently respond to system maintenance and security problems by verifying the description of the file using the virtualized space, and can make a closed system due to signature check flexible system can be improved.
도 1은 본 개시의 일 실시예에 따른, 전자 장치가 가상화 공간을 이용하여 서명 검증을 하는 과정을 설명하기 위한 도면,1 is a view for explaining a process in which an electronic device performs signature verification using a virtual space, according to an embodiment of the present disclosure;
도 2는 본 개시의 일 실시예에 따른, 전자 장치가 가상화 공간을 이용하여 서명 검증을 하는 과정을 설명하기 위한 도면,2 is a view for explaining a process of an electronic device verifying a signature using a virtual space, according to an embodiment of the present disclosure;
도 3a는 본 개시의 일 실시예에 따른, 전자 장치의 구성을 간략히 도시한 블록도,3A is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure;
도 3b는 본 개시의 일 실시예에 따른, 전자 장치의 구성을 상세히 도시한 블록도,3B is a block diagram illustrating in detail the configuration of an electronic device according to an embodiment of the present disclosure;
도 4는 본 개시의 일 실시예에 따른, 전자 장치와 외부 서버 간의 동작을 설명하기 위한 시퀀스도,4 is a sequence diagram illustrating an operation between an electronic device and an external server according to an embodiment of the present disclosure;
도 5는 본 개시의 일 실시예에 따른, 전자 장치의 제어 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Since the present embodiments can apply various transformations and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope of the specific embodiments, and should be understood to include various modifications, equivalents, and/or alternatives of the embodiments of the present disclosure. In connection with the description of the drawings, like reference numerals may be used for like components.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.In addition, the following examples may be modified in various other forms, and the scope of the technical spirit of the present disclosure is not limited to the following examples. Rather, these embodiments are provided to more fully and complete the present disclosure, and to fully convey the technical spirit of the present disclosure to those skilled in the art.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.The terms used in the present disclosure are used only to describe specific embodiments, and are not intended to limit the scope of rights. The singular expression includes the plural expression unless the context clearly dictates otherwise.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In the present disclosure, expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this disclosure, expressions such as "A or B," "at least one of A and/and B," or "one or more of A or/and B" may include all possible combinations of the items listed together. . For example, "A or B," "at least one of A and B," or "at least one of A or B" means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.
본 개시의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 서버, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM) 중 적어도 하나를 포함할 수 있다.An electronic device according to various embodiments of the present disclosure may be, for example, a smartphone, a tablet PC, a mobile phone, a video phone, an e-book reader, a desktop PC, a laptop PC, a netbook computer, a server, a medical device, a camera, or It may include at least one of wearable devices. In some embodiments, the electronic device is, for example, a television, digital video disk (DVD) player, audio, refrigerator, air conditioner, vacuum cleaner, oven, microwave oven, washing machine, air purifier, set top box, home automation control. It may include at least one of a panel, a security control panel, a media box (eg, Samsung HomeSyncTM, Apple TVTM, or Google TVTM), and a game console (eg, XboxTM, PlayStationTM).
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. As used in the present disclosure, expressions such as “first,” “second,” “first,” or “second,” may modify various elements, regardless of order and/or importance, and refer to one element. It is used only to distinguish it from other components, and does not limit the components.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.A component (eg, a first component) is "coupled with/to (operatively or communicatively)" to another component (eg, a second component); When referring to "connected to", it will be understood that the certain element may be directly connected to the other element or may be connected through another element (eg, a third element). On the other hand, when it is said that a component (eg, a first component) is "directly connected" or "directly connected" to another component (eg, a second component), the component and the It may be understood that other components (eg, a third component) do not exist between other components.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. The expression “configured to (or configured to)” as used in this disclosure, depending on the context, for example, “suitable for,” “having the capacity to” ," "designed to," "adapted to," "made to," or "capable of." The term “configured (or configured to)” may not necessarily mean only “specifically designed to” in hardware.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.Instead, in some circumstances, the expression “a device configured to” may mean that the device is “capable of” with other devices or parts. For example, the phrase "a processor configured (or configured to perform) A, B, and C" refers to a dedicated processor (eg, an embedded processor) for performing the corresponding operations, or by executing one or more software programs stored in a memory device. , may mean a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.In an embodiment, a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or a combination of hardware and software. In addition, a plurality of 'modules' or a plurality of 'units' are integrated into at least one module and implemented with at least one processor (not shown) except for 'modules' or 'units' that need to be implemented with specific hardware. can be
이하에서는 첨부한 도면을 참조하여 본 개시의 일 실시예에 대하여, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Hereinafter, with reference to the accompanying drawings, an embodiment of the present disclosure will be described in detail so that those of ordinary skill in the art to which the present disclosure pertains can easily implement it.
도 1은 본 개시의 일 실시예에 따른, 전자 장치(100)가 가상화 공간을 이용하여 파일의 서명 값을 검증을 하는 과정을 설명하기 위한 도면이다.FIG. 1 is a diagram for explaining a process in which an electronic device 100 verifies a signature value of a file using a virtualization space, according to an embodiment of the present disclosure.
전자 장치(100)는 전자 장치(100) 상의 하드웨어를 제어하고 응용 소프트웨어의 실행을 위해 기반 환경을 제공하는 운영 체제(Operating System, OS)(10)를 포함할 수 있다. 운영 체제(10)는 전자 장치의 하드웨어와 응용 소프트웨어 간의 인터페이스 역할을 수행할 수 있다.The electronic device 100 may include an operating system (OS) 10 that controls hardware on the electronic device 100 and provides a base environment for executing application software. The operating system 10 may serve as an interface between hardware of the electronic device and application software.
운영 체제(10)는 운영 체제를 구성하는 프로세스와 운영 체제의 제어 아래 실행되는 프로그램에 대해 자원 할당을 수행하는 커널(kernel)을 포함할 수 있다. 커널은 전자 장치(100)에 포함된 물리적 구성요소들과 운영 체제(10)의 개별 미들웨어 사이의 상호 작용을 연결 및 관리함으로써 전자 장치의 리소스들을 각각 할당할 수 있다. 그리고, 커널은 각 응용 어플리케이션 또는 파일이 실행되는 것을 감지할 수 있다.The operating system 10 may include a process constituting the operating system and a kernel that allocates resources to programs executed under the control of the operating system. The kernel may allocate resources of the electronic device by connecting and managing interactions between physical components included in the electronic device 100 and individual middleware of the operating system 10 . In addition, the kernel may detect that each application or file is executed.
복수의 가상화 공간(20-1, 20-2)은 운영체제(10)의 커널(kernel)의 리소스를 공유하며 별도의 어플리케이션을 실행할 수 있는 가상화 공간을 의미한다. 예를 들면, 가상화 공간은 컨테이너(container)로 구현될 수 있다.The plurality of virtualization spaces 20 - 1 and 20 - 2 refer to virtualization spaces in which resources of a kernel of the operating system 10 are shared and a separate application can be executed. For example, the virtualized space may be implemented as a container.
컨테이너를 이용한 운영 체제(10) 가상화 기술은 운영 체제 내부를 물리적 자원을 관리하는 커널 공간과 사용자 프로세스, 즉 응용 프로그램(APP, application)을 실행하는 사용자 공간으로 구분하고, 사용자 공간을 여러 개로 나누어 각각의 사용자 프로세스에서 사용되는 하드웨어 자원을 할당하고 공유하는 기술을 의미한다.The operating system 10 virtualization technology using a container divides the inside of the operating system into a kernel space that manages physical resources and a user space that executes user processes, that is, applications (APPs, applications), and divides the user space into several parts, each It refers to a technology for allocating and sharing hardware resources used in user processes of
즉, 컨테이너를 이용하는 가상화 기술은 게스트 OS를 사용하지 않는 OS 가상화 방식으로, 호스트 자원의 소모량이 거의 없고 기동에 드는 시간이 매우 적어 어플리케이션 가상화에 적합할 수 있다. 또한, 컨테이너를 이용한 가상화 기술은 OS 레벨에서 가상화함으로써 시스템 인프라(기존 물리 서버(Bare Metal), 가상 서버(Virtual Machine) 등)의 독립적인 구성과 배포가 가능하다.That is, the virtualization technology using a container is an OS virtualization method that does not use a guest OS, and consumes little host resources and takes very little time to start up, so it may be suitable for application virtualization. In addition, virtualization technology using containers enables independent configuration and distribution of system infrastructure (existing physical servers (bare metal), virtual machines (virtual machines), etc.) by virtualizing at the OS level.
도 1에 도시된 바와 같이, 제1 가상화 공간(20-1) 및 제2 가상화 공간(20-2)은 운영 체제(10) 상의 커널의 리소스를 공유하되 별도의 어플리케이션 및 각 어플리케이션을 실행하기 위한 라이브러리(library), 미들웨어(middleware) 등을 포함할 수 있다. 한편, 도 1에는 운영 체제(10) 상에 2 개의 가상화 공간으로 가상화된 것으로 도시되어 있으나, 이는 일 실시예에 불과하며 다양한 개수의 가상화 공간으로 가상화될 수 있음은 물론이다.As shown in FIG. 1 , the first virtualization space 20-1 and the second virtualization space 20-2 share the resources of the kernel on the operating system 10, but are for executing separate applications and each application. It may include a library (library), middleware (middleware), and the like. Meanwhile, although FIG. 1 shows that the operating system 10 is virtualized with two virtualization spaces, this is only an example and may be virtualized into a variety of virtualization spaces.
그리고, 각 가상화 공간(20-1, 20-2)에는 서명 값을 복호화하기 위해 이용되는 공개 키(public key) 또는 보안 레벨(secure level)이 할당될 수 있다. 공개 키는 공개 키 암호화 방식(또는, 비대칭키 암호화 방식)에서 파일의 암호화를 위해 사용되는 키로서, 암호화에서 사용되는 함수 상에서 개인 키(private key)와는 역수 관계를 가지고 있다. 보안 레벨과 관련된 실시예는 도 2를 참조하여 구체적으로 설명하도록 한다.In addition, a public key or a secure level used for decrypting a signature value may be allocated to each of the virtualization spaces 20 - 1 and 20 - 2 . A public key is a key used for file encryption in a public key encryption method (or an asymmetric key encryption method), and has an inverse relationship with a private key in a function used in encryption. An embodiment related to the security level will be described in detail with reference to FIG. 2 .
예를 들어, 운영 체제(10) 상에는 A 라는 공개 키가 할당되고, 제1 가상화 공간(20-1) 및 제2 가상화 공간 상에는 A 공개 키와는 상이한 B 및 C라는 공개 키가 각각 할당될 수 있다. For example, a public key A may be allocated on the operating system 10, and public keys B and C different from the public key A may be allocated on the first virtual space 20-1 and the second virtual space, respectively. there is.
커널이 제1 가상화 공간(20-1) 상에서 제1 파일의 실행을 감지하면, 전자 장치(100)는 제1 가상화 공간(20-1)에 할당된 제1 공개 키를 이용하여 제1 파일에 포함된 서명 값을 복호화하고, 복호화된 서명 값과 제1 파일에 대응되는 해시 값을 비교하여 제1 파일의 서명 값을 검증할 수 있다. 제1 파일에 대응되는 해시 값은 제1 파일에서 추출된 해시 값을 의미한다.When the kernel detects execution of the first file in the first virtual space 20-1, the electronic device 100 writes the first file to the first file using the first public key allocated to the first virtual space 20-1. The included signature value may be decrypted, and the signature value of the first file may be verified by comparing the decrypted signature value with a hash value corresponding to the first file. The hash value corresponding to the first file means a hash value extracted from the first file.
예를 들어, 제1 파일(30-1)에 해시(hash) 값이 A 개인 키로 암호화하여 획득된 서명 값이 포함된 경우를 가정한다. 이 때, 서명 값은 제1 파일(30-1)의 끝 부분에 포함되어 있을 수 있으나, 이는 일 실시예에 불과하며 맨 앞 부분 또는 중간 부분에 포함되어 있을 수 있다.For example, it is assumed that the first file 30-1 includes a signature value obtained by encrypting the hash value with the private key A. In this case, the signature value may be included at the end of the first file 30 - 1 , but this is only an example and may be included in the front part or the middle part.
커널이 제1 가상화 공간(20-1) 상에서 제1 파일(30-1)이 실행되는 것을 감지하면, 전자 장치(100)는 제1 파일(30-1)상에 포함된 서명 값을 B 공개 키로 복호화하고, 복호화된 서명 값과 제1 파일(30-1)에 대응되는 해시 값을 비교하여 제1 파일(30-1)의 서명 값을 검증할 수 있다. When the kernel detects that the first file 30-1 is executed in the first virtual space 20-1, the electronic device 100 discloses the signature value included in the first file 30-1 to B. After decryption with the key, the signature value of the first file 30-1 may be verified by comparing the decrypted signature value with a hash value corresponding to the first file 30-1.
제1 파일(30-1)에는 해시 값을 A 개인 키로 암호화하여 획득된 서명 값을 포함하고 있으므로, B 공개키를 이용하여 서명 값을 복호화하면 제1 파일(30-1)에 대응되는 해시 값이 출력되지 않는다. 따라서, 전자 장치(100)는 제1 파일(30-1)에 잘못된 서명 값이 포함되어 있음을 식별하고, 제1 파일(30-1)의 실행을 차단할 수 있다.Since the first file 30-1 contains the signature value obtained by encrypting the hash value with the private key A, when the signature value is decrypted using the public key B, the hash value corresponding to the first file 30-1 This is not output. Accordingly, the electronic device 100 may identify that an incorrect signature value is included in the first file 30 - 1 and block execution of the first file 30 - 1 .
또 다른 예로, 제1 파일(30-2)에 해시 값이 B 개인 키로 암호화하여 획득된 서명 값이 포함된 경우를 가정한다. 커널이 제1 가상화 공간(20-1) 상에서 제1 파일(30-2)이 실행되는 것을 감지하면, 전자 장치(100)는 제1 파일(30-2)상에 포함된 서명 값을 B라는 공개 키로 복호화하고, 복호화된 서명 값과 제1 파일(30-2)에 대응되는 해시 값을 비교하여 제1 파일(30-2)의 서명 값을 검증할 수 있다. As another example, it is assumed that the hash value includes a signature value obtained by encryption with the private key B in the first file 30 - 2 . When the kernel detects that the first file 30-2 is executed in the first virtual space 20-1, the electronic device 100 sets the signature value included in the first file 30-2 as B. After decryption with the public key, the signature value of the first file 30 - 2 may be verified by comparing the decrypted signature value with a hash value corresponding to the first file 30 - 2 .
제1 파일(30-2)에는 해시 값을 B 개인 키로 암호화하여 획득된 서명 값이 포함되어 있으므로, B 공개 키를 이용하여 복호화하면 제1 파일(30-2)에 대응되는 해시 값이 출력된다. 따라서, 전자 장치(100)는 제1 파일(30-2)에 제1 가상화 공간(20-1)에 할당된 공개 키에 대응되는 개인 키로 암호화된 서명 값이 포함되어 있음을 식별하고, 제1 파일(30-1)의 실행을 유지할 수 있다.Since the first file 30-2 includes a signature value obtained by encrypting the hash value with the private key B, when decrypted using the public key B, a hash value corresponding to the first file 30-2 is output. . Accordingly, the electronic device 100 identifies that the first file 30-2 includes a signature value encrypted with the private key corresponding to the public key allocated to the first virtual space 20-1, and the first Execution of file 30-1 may be maintained.
또 다른 예로, 커널이 제2 가상화 공간(20-2) 상에서 파일이 실행되는 것을 감지하면, 전자 장치(100)는 제2 가상화 공간(20-2)에 할당된 C 공개 키를 이용하여 실행이 감지된 파일의 서명 값을 검증할 수 있다.As another example, when the kernel detects that a file is being executed in the second virtual space 20 - 2 , the electronic device 100 performs execution using the C public key allocated to the second virtual space 20 - 2 . You can verify the signature value of the detected file.
제2 파일(40-1)에 서명 값이 포함되어 있지 않은 경우를 가정한다. 제2 파일(40-1)에 서명 값이 포함되어 있지 않은 경우, C 공개 키를 이용하여 서명 값을 복호화할 수 없다. 전자 장치(100)는 서명 값이 포함되지 않은 제2 파일(40-1)의 실행을 차단할 수 있다.It is assumed that the second file 40-1 does not include a signature value. When the signature value is not included in the second file 40-1, the signature value cannot be decrypted using the C public key. The electronic device 100 may block execution of the second file 40 - 1 that does not include a signature value.
또 다른 예로, 제2 파일(40-2)에 해시 값을 C 개인 키로 암호화하여 획득된 서명 값이 포함된 경우를 가정한다. 커널이 제2 가상화 공간(20-2) 상에서 제2 파일(40-2)이 실행되는 것을 감지하면, 전자 장치(100)는 제2 파일(40-2)상에 포함된 서명 값을 C 공개 키로 복호화하고, 복호화된 서명 값과 제2 파일(40-2)에 대응되는 해시 값을 비교하여 제2 파일(40-2)의 서명 값을 검증할 수 있다. As another example, it is assumed that a signature value obtained by encrypting a hash value with a C private key is included in the second file 40-2. When the kernel detects that the second file 40-2 is executed in the second virtual space 20-2, the electronic device 100 discloses the signature value included in the second file 40-2 to C. After decryption with the key, the signature value of the second file 40-2 may be verified by comparing the decrypted signature value with a hash value corresponding to the second file 40-2.
이 때, 제2 파일(40-2)에는 해시 값을 C 개인 키로 암호화하여 획득된 서명 값이 포함되어 있으므로, C 공개 키를 이용하여 서명 값을 복호화하면 제2 파일(40-2)에 대응되는 해시 값이 출력된다. 따라서, 전자 장치(100)는 제2 파일(40-2)에 제2 가상화 공간(20-2)에 할당된 공개키에 대응되는 개인키로 암호화된 서명 값이 포함되어 있음을 식별하고, 제2 파일(40-2)의 실행을 유지할 수 있다.At this time, since the second file 40-2 includes the signature value obtained by encrypting the hash value with the C private key, decrypting the signature value using the C public key corresponds to the second file 40-2. The resulting hash value is output. Accordingly, the electronic device 100 identifies that the second file 40-2 includes a signature value encrypted with the private key corresponding to the public key allocated to the second virtual space 20-2, and the second Execution of file 40-2 may be maintained.
또 다른 예로, 커널이 복수의 가상화 공간(20-1, 20-2) 이외의 공간에서 파일이 실행되는 것을 감지하면, 전자 장치(100)는 운영 체제(10) 상에 할당된 제2 공개키를 이용하여 제2 파일에 포함된 서명 값을 복호화할 수 있다. 전자 장치(100)는 제2 공개키를 이용하여 복호화된 서명 값과 제2 파일에 대응되는 해시 값을 비교하여 제2 파일의 서명 값을 검증할 수 있다. 이 때, 제2 파일에 대응되는 해시 값은 제2 파일에서 추출된 해시 값을 의미한다.As another example, when the kernel detects that a file is executed in a space other than the plurality of virtualized spaces 20 - 1 and 20 - 2 , the electronic device 100 uses the second public key allocated to the operating system 10 . can be used to decrypt the signature value included in the second file. The electronic device 100 may verify the signature value of the second file by comparing the decrypted signature value using the second public key with the hash value corresponding to the second file. In this case, the hash value corresponding to the second file means a hash value extracted from the second file.
예를 들어, 도 1에 도시된 바와 같이, 운영 체제(10)에는 A 공개 키가 할당될 수 있다. 커널이 서명 값이 포함되어 있지 않은 파일(50-2) 또는 B 개인 키로 해시를 암호화하여 획득된 서명 값이 포함된 파일(50-3)이 가상화 공간 이외의 공간에서 실행되는 것을 감지하면, 전자 장치(100)는 검증 과정을 통해 각 파일(50-2, 50-3)의 서명이 무결하지 않음을 식별할 수 있다. 따라서, 전자 장치(100)는 각 파일(50-2, 50-3)의 실행을 중지시킬 수 있다.For example, as shown in FIG. 1 , the A public key may be assigned to the operating system 10 . When the kernel detects that a file (50-2) that does not contain a signature value or a file (50-3) containing a signature value obtained by encrypting the hash with the private key B is executed in a space other than the virtualized space, the electronic The device 100 may identify that the signature of each of the files 50 - 2 and 50 - 3 is not intact through the verification process. Accordingly, the electronic device 100 may stop the execution of each of the files 50 - 2 and 50 - 3 .
한편, 커널이 복수의 가상화 공간(20-1, 20-2) 이외의 공간에서 A 개인 키로 해시 값을 암호화하여 획득된 서명 값이 포함된 파일(50-1)이 실행되는 것을 감지하면, 전자 장치(100)는 파일(50-1)의 서명 값을 A 공개 키로 복호화하여 서명 값에 대해 검증을 수행할 수 있다. A 공개 키를 이용하여 복호화된 서명 값과 파일(50-1)의 해시 값을 일치하므로, 전자 장치(100)는 파일(50-1)의 실행을 유지할 수 있다.On the other hand, when the kernel detects that the file 50-1 including the signature value obtained by encrypting the hash value with the private key A in a space other than the plurality of virtualization spaces 20-1 and 20-2 is executed, the electronic The device 100 may decrypt the signature value of the file 50 - 1 with the public key A to perform verification on the signature value. Since the signature value decrypted using the public key A matches the hash value of the file 50 - 1 , the electronic device 100 may maintain the execution of the file 50 - 1 .
각 가상화 공간(20-1, 20-2) 또는 가상화 공간 이외의 공간 별로 상이한 공개 키가 할당되어 있으므로 특정 개인 키가 누출되더라도 누출된 개인 키에 대응되는 공개 키만 변경하여 대응할 수 있다. 또한, 특정 공개 키가 할당된 가상화 공간 상에서만 파일의 서명 값에 대한 검증 과정이 수행되므로, 전자 장치(100) 상에서 검증 과정을 위해 소요되는 리소스를 감소시킬 수 있다. Since a different public key is allocated to each virtual space 20-1, 20-2 or a space other than the virtual space, even if a specific private key is leaked, only the public key corresponding to the leaked private key can be changed to respond. In addition, since the verification process for the signature value of the file is performed only in the virtual space to which a specific public key is allocated, resources required for the verification process on the electronic device 100 can be reduced.
그리고, 특정 가상화 공간 상에는 공개 키를 할당시키지 않을 수 있으므로, 전체 파일에 대한 서명을 강제하지 않을 수 있다. 따라서, 본 개시에 따른 실시예에 의해, 서명에 대한 무결성 검증 때문에 발생하는 폐쇄적인 시스템을 유연하게 개선할 수 있다.In addition, since a public key may not be allocated on a specific virtual space, signing of the entire file may not be forced. Therefore, according to the embodiment according to the present disclosure, it is possible to flexibly improve a closed system that occurs due to the integrity verification of the signature.
도 2는 본 개시의 일 실시예에 따른, 전자 장치(100)가 보안 레벨이 할당된 가상화 공간을 이용하여 서명 검증을 하는 과정을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining a process in which the electronic device 100 performs signature verification using a virtual space to which a security level is assigned, according to an embodiment of the present disclosure.
운영 체제(10) 상의 커널의 리소스를 공유하는 복수의 가상화 공간(20-1, 20-2) 각각에는 보안 레벨이 할당될 수 있다. 보안 레벨은 파일의 중요도, 파일이 실행되는 영역 또는 파일의 실행에 따라 발생될 영향도 중 적어도 하나에 기초하여 특정 파일을 신뢰할 수 있는 정도를 수치화 또는 범주화한 것이다. 파일의 보안 레벨이 클수록 파일을 더 신뢰할 수 있음을 의미한다.A security level may be assigned to each of the plurality of virtualization spaces 20 - 1 and 20 - 2 sharing kernel resources on the operating system 10 . The security level quantifies or categorizes the degree of trust in a specific file based on at least one of the importance of the file, the area in which the file is executed, or the degree of impact to be generated according to the execution of the file. The higher the security level of a file, the more trustworthy it is.
예를 들어, 도 2에 도시된 바와 같이, 운영 체제(10)에는 보안 레벨 7이 할당되고, 제1 가상화 공간(20-1) 및 제2 가상화 공간(20-2) 각각에는 보안 레벨 5 및 보안 레벨 3이 할당될 수 있다. 운영 체제(10)는 다른 가상화 공간(20-1, 20-2)보다 전자 장치(100) 전체 프로세스에 미치는 영향이 크므로 다른 가상화 공간(20-1, 20-2)에 할당된 보안 레벨보다 더 높은 보안 레벨이 할당될 수 있다.For example, as shown in FIG. 2 , security level 7 is allocated to the operating system 10 , and security level 5 and security level 5 and Security level 3 may be assigned. Since the operating system 10 has a greater effect on the entire process of the electronic device 100 than the other virtualized spaces 20-1 and 20-2, it is higher than the security level assigned to the other virtualized spaces 20-1 and 20-2. A higher security level may be assigned.
한편, 도 2에느 보안 레벨이 각 파일의 서명 값에 할당된 것으로 도시되어 있으나 이는 일 실시예에 불과하다. 보안 레벨은 파일의 앞 부분 또는 뒷 부분에 할당되어 있을 수 있으며, 서명 값과 별개의 위치 상에 할당되어 있을 수 있다.Meanwhile, although it is illustrated that the security level is assigned to the signature value of each file in FIG. 2 , this is only an example. The security level may be assigned to the front part or the back part of the file, and may be assigned to a location separate from the signature value.
커널이 보안 레벨 5가 할당된 제1 가상화 공간(20-1) 상에 파일이 실행되는 것을 감지하면, 전자 장치(100)는 파일에 할당된 보안 레벨과 제1 가상화 공간(20-1) 상에 할당된 보안 레벨을 비교하여 파일의 실행을 중지시킬지 여부를 결정할 수 있다.When the kernel detects that the file is executed on the first virtual space 20-1 to which the security level 5 is allocated, the electronic device 100 performs the security level assigned to the file and the first virtual space 20-1 on the first virtual space 20-1. By comparing the security level assigned to
예를 들어, 커널이 보안 레벨 3이 할당된 파일(60-1)이 제1 가상화 공간(20-1) 상에서 실행되는 것을 감지하면, 전자 장치(100)는 제1 가상화 공간(20-1)에 할당된 보안 레벨과 파일(60-1)의 할당 레벨을 비교하여 파일의 실행을 중지시킬지 여부를 결정할 수 있다. 파일(60-1)의 보안 레벨(보안 레벨 3)이 제1 가상화 공간(20-1)에 할당된 보안 레벨(보안 레벨 5)보다 낮으므로, 전자 장치(100)는 파일(60-1)의 실행을 중지시킬 수 있다.For example, when the kernel detects that the file 60 - 1 to which the security level 3 is allocated is executed in the first virtual space 20 - 1 , the electronic device 100 is configured in the first virtual space 20 - 1 It is possible to determine whether to stop the execution of the file by comparing the security level assigned to the file 60 - 1 with the allocation level of the file 60 - 1 . Since the security level (security level 3) of the file 60-1 is lower than the security level (security level 5) allocated to the first virtual space 20-1, the electronic device 100 transmits the file 60-1 can stop running.
또 다른 예로, 커널이 제6 보안 레벨이 할당된 파일(60-2)이 제1 가상화 공간(20-1) 상에서 실행되는 것을 감지하면, 전자 장치(100)는 제1 가상화 공간(20-1)에 할당된 보안 레벨과 파일(60-2)의 할당 레벨을 비교하여 파일의 실행을 중지시킬지 여부를 결정할 수 있다. 파일(60-2)의 보안 레벨(보안 레벨 6)이 제1 가상화 공간(20-1)에 할당된 보안 레벨(보안 레벨 5)보다 높으므로, 전자 장치(100)는 파일(60-2)의 실행을 유지시킬 수 있다.As another example, when the kernel detects that the file 60 - 2 to which the sixth security level is assigned is executed in the first virtual space 20 - 1 , the electronic device 100 is configured in the first virtual space 20 - 1 ) may be compared with the assigned level of the file 60 - 2 to determine whether to stop the execution of the file. Since the security level (security level 6) of the file 60-2 is higher than the security level (security level 5) allocated to the first virtual space 20-1, the electronic device 100 transmits the file 60-2. can keep running.
또 다른 실시예로, 커널이 제3 보안 레벨이 할당된 제2 가상화 공간(20-2) 상에 파일이 실행되는 것을 감지하면, 전자 장치(100)는 파일에 할당된 보안 레벨과 제2 가상화 공간(20-2) 상에 할당된 보안 레벨을 비교하여 파일의 실행을 중지시킬지 여부를 결정할 수 있다.As another embodiment, when the kernel detects that the file is executed in the second virtual space 20 - 2 to which the third security level is allocated, the electronic device 100 sets the security level allocated to the file and the second virtualization space. By comparing the security level allocated on the space 20-2, it is possible to determine whether to stop the execution of the file.
예를 들어, 커널이 보안 레벨이 할당되지 않은 파일(70-1)이 제2 가상화 공간(20-2) 상에서 실행되는 것을 감지하면, 전자 장치(100)는 파일(70-1)에 보안 레벨이 할당되지 않음을 식별하고, 파일(70-1)의 실행을 중단시킬 수 있다.For example, when the kernel detects that the file 70-1 to which the security level is not assigned is executed in the second virtual space 20-2, the electronic device 100 sets the security level to the file 70-1. It can identify this unassigned and abort the execution of file 70-1.
또 다른 예로, 커널이 보안 레벨 3이 할당된 제2 가상화 공간(20-2) 상에 파일(70-2)이 실행되는 것을 감지하면, 전자 장치(100)는 파일(70-2)에 할당된 보안 레벨인 보안 레벨 3과 제2 가상화 공간(20-2) 상에 할당된 보안 레벨을 비교하여 파일의 실행을 중지시킬지 여부를 결정할 수 있다. 파일(70-2)에 할당된 보안 레벨과 제2 가상화 공간(20-2)상에 할당된 보안 레벨이 보안 레벨 3으로 동일하므로, 전자 장치(100)는 파일(70-2)의 실행을 유지시킬 수 있다.As another example, when the kernel detects that the file 70 - 2 is being executed on the second virtual space 20 - 2 to which the security level 3 is allocated, the electronic device 100 allocates the file 70 - 2 It is possible to determine whether to stop the execution of the file by comparing the security level 3, which is the security level, and the security level allocated to the second virtual space 20 - 2 . Since the security level allocated to the file 70-2 and the security level allocated to the second virtual space 20-2 are the same as security level 3, the electronic device 100 prevents the execution of the file 70-2. can keep
한편, 커널이 복수의 가상화 공간(20-1, 20-2)이외의 공간에서 파일이 실행되는 것을 감지하면, 전자 장치(100)는 운영 체제(10)에 할당된 보안 레벨과 파일에 할당된 보안 레벨을 비교하여 파일의 실행을 유지시킬지 결정할 수 있다. Meanwhile, when the kernel detects that a file is executed in a space other than the plurality of virtualized spaces 20 - 1 and 20 - 2 , the electronic device 100 sets the security level allocated to the operating system 10 and the file allocated to the operating system 10 . You can compare the security levels to decide whether to keep the file running.
예를 들어, 운영 체제에 할당된 보안 레벨보다 작은 값의 보안 레벨(예를 들어, 보안 레벨 5)이 할당된 파일(80-1)이 실행되는 것이 감지되면, 전자 장치(100)는 파일(80-1)의 실행을 중지시킬 수 있다. 또 다른 예로, 운영 체제에 할당된 보안 레벨과 같거나 큰 값의 보안 레벨이 할당된 파일(80-2, 80-3)이 실행되는 것이 감지되면, 전자 장치(100)는 파일(80-2, 80-3)의 실행을 유지시킬 수 있다.For example, when it is detected that the file 80 - 1 to which a security level (eg, security level 5) of a value smaller than the security level allocated to the operating system is being executed, the electronic device 100 displays the file ( 80-1) can be stopped. As another example, when it is detected that the files 80 - 2 and 80 - 3 to which the security level equal to or greater than the security level allocated to the operating system are being executed, the electronic device 100 displays the file 80 - 2 , 80-3) can be maintained.
도 3a는 본 개시의 일 실시예에 따른, 전자 장치(100)의 구성을 간략히 도시한 블록도이다. 도 3a에 도시된 바와 같이, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 다만, 도 3a에 도시된 구성은 본 개시의 실시 예들을 구현하기 위한 예시도이며, 통상의 기술자에게 자명한 수준의 적절한 하드웨어 및 소프트웨어 구성들이 전자 장치(100)에 추가로 포함될 수 있다.3A is a block diagram schematically illustrating a configuration of an electronic device 100 according to an embodiment of the present disclosure. As shown in FIG. 3A , the electronic device 100 may include a memory 110 and a processor 120 . However, the configuration illustrated in FIG. 3A is an exemplary diagram for implementing embodiments of the present disclosure, and appropriate hardware and software configurations at a level obvious to those skilled in the art may be additionally included in the electronic device 100 .
메모리(110)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 인스트럭션(Instruction) 및 프로그램을 저장할 수 있다. 인스트럭션은 프로그래밍 언어(programming language)에서 프로세서(120)에 대한 하나의 동작 문장(action statement)을 의미한다. 그리고, 프로그램은 특정 서비스를 제공하기 위한 응용 프로그램뿐만 아니라, 응용 프로그램을 구동시키기 위한 운영체제를 포함한다.The memory 110 may store instructions and programs related to at least one other component of the electronic device 100 . An instruction means one action statement for the processor 120 in a programming language. And, the program includes not only an application program for providing a specific service, but also an operating system for driving the application program.
일 실시 예로, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. In an embodiment, the memory 110 may be implemented as a non-volatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory 110 is accessed by the processor 120 , and reading/writing/modification/deletion/update of data by the processor 120 may be performed.
본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.In the present disclosure, 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).
메모리(110)에는 운영 체제 상의 커널의 리소스를 공유하며 별도의 어플리케이션 및 어플리케이션을 실행하기 위한 라이브러리, 미들 웨어를 포함하는 복수의 가상화 공간을 포함할 수 있다. 가상화 공간은 컨테이너(container)로 구현될 수 있다. 복수의 가상화 공간 각각에는 공개 키 또는 가상화 공간 중 적어도 하나가 할당될 수 있다.The memory 110 may include a plurality of virtualization spaces that share resources of the kernel on the operating system and include separate applications and libraries and middleware for executing applications. The virtualized space may be implemented as a container. At least one of a public key or a virtualization space may be allocated to each of the plurality of virtualization spaces.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 프로세서(120)는 복수의 가상화 공간 중 적어도 하나의 가상화 공간 상에서 실행되는 파일에 포함된 서명 값을 검증할 수 있다.The processor 120 may be electrically connected to the memory 110 to control overall operations and functions of the electronic device 100 . The processor 120 may verify a signature value included in a file executed in at least one virtualization space among a plurality of virtualization spaces.
예를 들어, 커널이 복수의 가상화 공간 중 제1 공개키가 할당된 제1 가상화 공간 상에서 제1 파일의 실행을 감지하면, 프로세서(120)는 제1 공개 키를 이용하여 실행된 제1 파일에 포함된 서명 값을 복호화할 수 있다. 프로세서(120)는 복호화된 서명 값과 제1 파일에 대응되는 해시 값을 비교하여 제1 파일의 서명 값을 검증할 수 있다. For example, when the kernel detects the execution of the first file in the first virtual space to which the first public key is allocated among the plurality of virtual spaces, the processor 120 stores the first file executed using the first public key. The included signature value can be decrypted. The processor 120 may verify the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file.
한편, 프로세서(120)는 제1 파일의 해시 값을 추출하여 제1 파일에 대응되는 해시 값을 획득할 수 있다. 제1 파일에 대응되는 해시 값을 획득하는 시점은 제1 파일의 실행이 감지되었을 때일 수 있으나, 이에 국한되는 것은 아니다. 프로세서(120)는 순서 또는 시점에 관계없이 제1 파일에 포함된 서명 값을 복호화하는 동안 제1 파일에 대응되는 해시 값을 획득할 수 있다.Meanwhile, the processor 120 may extract a hash value of the first file to obtain a hash value corresponding to the first file. The time point at which the hash value corresponding to the first file is acquired may be when execution of the first file is detected, but is not limited thereto. The processor 120 may acquire a hash value corresponding to the first file while decrypting the signature value included in the first file regardless of an order or a time point.
예를 들면, 복호화된 서명 값과 제1 파일에 대응되는 해시 값이 일치하지 않거나 제1 파일 상에 서명 값이 포함되지 않은 경우, 프로세서(120)는 제1 파일의 실행을 중지시킬 수 있다. 즉, 제1 파일의 서명 값에 무결성이 검증되지 않은 경우, 전자 장치(100)는 제1 파일의 실행을 중지시킬 수 있다. For example, when the decrypted signature value and the hash value corresponding to the first file do not match or the signature value is not included in the first file, the processor 120 may stop the execution of the first file. That is, when the integrity of the signature value of the first file is not verified, the electronic device 100 may stop the execution of the first file.
또 다른 예로, 복호화된 서명 값과 제1 파일에 대응되는 해시 값이 일치한 경우, 프로세서(120)는 제1 파일의 무결성을 식별하고 제1 파일의 실행을 유지시킬 수 있다.As another example, when the decrypted signature value and the hash value corresponding to the first file match, the processor 120 may identify the integrity of the first file and maintain the execution of the first file.
한편, 커널이 복수의 가상화 공간 이외의 공간에서 제2 파일이 실행되는 것을 감지하면, 프로세서(120)는 운영 체제 상에 할당된 제2 공개키를 이용하여 제2 파일에 포함된 서명 값을 복호화하고, 제2 공개키를 이용하여 복호화된 서명 값과 제2 파일에 대응되는 해시 값을 비교하여 제2 파일의 서명 값을 검증할 수 있다. Meanwhile, when the kernel detects that the second file is executed in a space other than the plurality of virtualized spaces, the processor 120 decrypts the signature value included in the second file by using the second public key allocated to the operating system. and a signature value decrypted using the second public key and a hash value corresponding to the second file may be compared to verify the signature value of the second file.
즉, 특정 가상화 공간 상에서 파일이 실행되면, 프로세서(120)는 특정 가상화 공간에 할당된 공개 키를 이용하여 파일의 서명 값을 복호화하고, 특정 가상화 공간 이외의 공간에서 파일이 실행되면, 프로세서(120)는 운영체제에 할당된 공개 키를 이용하여 파일의 서명 값을 복호화할 수 있다. 이 때, 운영체제 및 가상화 공간 상에 할당된 공개 키는 상이할 수 있다.That is, when the file is executed in a specific virtualized space, the processor 120 decrypts the signature value of the file using the public key allocated to the specific virtualized space, and when the file is executed in a space other than the specific virtualized space, the processor 120 ) can decrypt the signature value of the file using the public key assigned to the operating system. In this case, the public key allocated to the operating system and the virtualization space may be different.
한편, 커널이 복수의 가상화 공간 중 제1 보안 레벨이 할당된 제4 가상화 공간 상에서 제4 파일이 실행되는 것이 감지하면, 프로세서(120)는 제4 파일에 할당된 보안 레벨과 제1 보안 레벨을 비교하여 제4 파일의 실행을 중지시킬지 여부를 결정할 수 있다. 즉, 프로세서(120)는 가상화 공간 상에 할당된 보안 레벨과 실행이 감지된 파일 상의 보안 레벨을 비교하여 파일의 실행을 중지시킬지 여부를 결정할 수 있다.Meanwhile, when the kernel detects that the fourth file is executed in the fourth virtual space to which the first security level is allocated among the plurality of virtual spaces, the processor 120 sets the security level allocated to the fourth file and the first security level. By comparing, it is possible to determine whether to stop the execution of the fourth file. That is, the processor 120 may determine whether to stop the execution of the file by comparing the security level allocated to the virtualization space and the security level on the file whose execution is detected.
예를 들면, 제4 파일에 할당된 보안 레벨이 제1 보안 레벨 미만이거나 제4 파일에 보안 레벨이 할당되지 않은 경우, 프로세서(120)는 제4 파일의 실행을 중지시키는 것으로 결정할 수 있다. 또 다른 예로, 제4 파일에 할당된 보안 레벨이 제1 보안 레벨 이상인 경우, 프로세서(120)는 제4 파일의 실행을 유지하는 것으로 결정할 수 있다. For example, when the security level assigned to the fourth file is less than the first security level or the security level is not assigned to the fourth file, the processor 120 may determine to stop the execution of the fourth file. As another example, when the security level assigned to the fourth file is equal to or higher than the first security level, the processor 120 may determine to maintain the execution of the fourth file.
커널이 복수의 가상화 공간 이외의 공간 상에서 제5 파일의 실행을 감지하면, 프로세서(120)는 운영 체제 상에 할당된 제2 보안 레벨과 제5 파일의 보안 레벨을 비교하여 제5 파일의 실행을 중지시킬지 여부를 결정할 수 있다. 운영 체제 상에 할당된 제2 보안 레벨은 다른 가상화 공간 상에 할당된 보안 레벨과 상이할 수 있다. 예를 들어, 운영 체제 상에 할당된 보안 레벨은 다른 가상화 공간 상에 할당된 보안 레벨보다 높을 수 있으나, 이에 국한되는 것은 아니며 같거나 작을 수 있다.When the kernel detects the execution of the fifth file in a space other than the plurality of virtualized spaces, the processor 120 compares the security level of the fifth file with the second security level allocated on the operating system to execute the fifth file. You can decide whether to stop or not. The second security level allocated on the operating system may be different from the security level allocated on another virtualization space. For example, the security level allocated on the operating system may be higher than the security level allocated on another virtualization space, but is not limited thereto, and may be equal to or less than the security level.
한편, 각 운영 체제 및 가상화 공간 상에는 보안 레벨 및 공개 키 모두가 할당될 수 있다. 특정 가상화 공간 또는 가상화 공간 이외의 공간에서 파일이 실행되는 것이 감지되면, 프로세서(120)는 실행되는 파일의 보안 레벨 및 서명 값 및 실행되는 공간 상에 할당된 보안 레벨 및 공개 키에 기반하여 파일의 실행을 중지시킬지 여부를 결정할 수 있다.Meanwhile, both a security level and a public key may be allocated on each operating system and virtualization space. When it is detected that the file is executed in a specific virtualized space or a space other than the virtualized space, the processor 120 determines whether the file is executed based on the security level and signature value of the executed file and the security level and public key allocated on the executed space. You can decide whether to stop execution or not.
예를 들어, 커널이 복수의 가상화 공간 중 제1 보안 레벨이 할당되고 제3 공개키가 할당된 제6 가상화 공간 상에서 제6 파일의 실행을 감지하면, 프로세서(120)는 파일의 서명 값을 제3 공개키를 이용하여 복호화할 수 있다. 그리고, 프로세서(120)는 복호화한 서명 값 및 제6 파일에 할당된 보안 레벨에 기초하여 제6 파일의 실행을 중지시킬지 여부를 결정할 수 있다. For example, if the kernel detects the execution of the sixth file in the sixth virtual space to which the first security level is allocated and the third public key is allocated among the plurality of virtualization spaces, the processor 120 generates the signature value of the file. 3 It can be decrypted using the public key. In addition, the processor 120 may determine whether to stop the execution of the sixth file based on the decrypted signature value and the security level assigned to the sixth file.
예를 들어, 프로세서(120)는 제6 파일에 대응되는 해시 값과 복호화된 서명값을 비교하고, 제1 보안 레벨과 제6 파일에 할당된 보안 레벨을 비교하여 제6 파일의 실행을 중지시킬지 여부를 결정할 수 있다. 제6 파일에 대응되는 해시 값과 복호화된 서명 값이 다르거나 제6 파일에 할당된 보안 레벨이 제1 보안 레벨보다 작은 경우, 프로세서(120)는 제6 파일의 실행을 중지시킬 수 있다.For example, the processor 120 compares the hash value corresponding to the sixth file with the decrypted signature value, and compares the first security level with the security level assigned to the sixth file to determine whether to stop the execution of the sixth file. can decide whether When the hash value corresponding to the sixth file and the decrypted signature value are different or the security level assigned to the sixth file is smaller than the first security level, the processor 120 may stop the execution of the sixth file.
프로세서(120)는 외부 서버로부터 통신부(130)를 통해 제3 파일을 수신할 수 있다. 통신부(130)에 대한 설명은 후술하는 부분에서 설명하도록 한다. 제3 파일은 복수의 가상화 공간 중 하나에 실행되도록 설정된 파일일 수 있다. The processor 120 may receive the third file from the external server through the communication unit 130 . The description of the communication unit 130 will be described in a later part. The third file may be a file set to be executed in one of a plurality of virtualization spaces.
커널이 복수의 가상화 공간 중 외부 서버에 대응되는 제3 가상화 공간 상에서 수신된 제3 파일이 실행되는 것을 감지하면, 프로세서(120)는 제3 가상화 공간에 포함된 제3 공개 키를 이용하여 제3 파일에 포함된 서명 값을 복호화할 수 있다. 그리고, 프로세서(120)는 복호화된 서명 값과 제3 파일에 대응되는 해시 값을 비교하여 제3 파일의 서명 값을 검증할 수 있다. 복호화된 서명 값과 제3 파일에 대응되는 해시 값이 일치하는 경우, 프로세서(120)는 제3 파일의 실행을 유지시킬 수 있다. 복호화된 서명 값과 제3 파일에 대응되는 해시 값이 일치하지 않거나, 제3 파일에 서명 값이 포함되지 않은 경우, 프로세서(120)는 제3 파일의 실행을 유지시킬 수 있다.When the kernel detects that the third file received in the third virtual space corresponding to the external server among the plurality of virtual spaces is executed, the processor 120 uses the third public key included in the third virtual space to perform a third The signature value included in the file can be decrypted. Then, the processor 120 may verify the signature value of the third file by comparing the decrypted signature value with the hash value corresponding to the third file. When the decrypted signature value and the hash value corresponding to the third file match, the processor 120 may maintain the execution of the third file. When the decrypted signature value and the hash value corresponding to the third file do not match or the third file does not include the signature value, the processor 120 may maintain the execution of the third file.
프로세서(120)는 사용자 명령에 따라 복수의 가상화 공간에 할당된 공개 키를 변경할 수 있다. 예를 들면, 제1 가상화 공간에 할당된 공개 키에 대응되는 개인 키가 유출된 경우, 프로세서(120)는 제1 가상화 공간에 할당된 공개 키를 변경하는 사용자 명령을 수신할 수 있다. The processor 120 may change the public key allocated to the plurality of virtualization spaces according to a user command. For example, when the private key corresponding to the public key allocated to the first virtual space is leaked, the processor 120 may receive a user command to change the public key allocated to the first virtual space.
프로세서(120)는 사용자 명령에 기반하여 제1 가상화 공간에 할당된 공개 키를 변경하고, 변경된 공개 키에 대응되는 개인 키를 제1 가상화 공간에 대응되는 외부 서버에 전송하도록 통신부(130)를 제어할 수 있다. 제1 가상화 공간에 대응되는 외부 서버는 제1 가상화 공간 상에서 실행될 수 있는 파일을 생성, 서명 및 전자 장치(100)에 전송하는 서버를 의미한다.The processor 120 controls the communication unit 130 to change the public key allocated to the first virtual space based on a user command, and to transmit the private key corresponding to the changed public key to an external server corresponding to the first virtual space. can do. The external server corresponding to the first virtual space means a server that creates, signs, and transmits a file that can be executed in the first virtual space to the electronic device 100 .
또 다른 실시예로, 프로세서(120)는 사용자 명령에 따라 복수의 가상화 공간에 할당된 보안 레벨을 변경할 수 있다. 예를 들어, 프로세서(120)는 제1 가상화 공간 상에 실행되는 파일의 신뢰도를 높이기 위해 제1 가상화 공간 상에 할당된 보안 레벨을 높인다는 사용자 명령을 입력받을 수 있다. 프로세서(120)는 입력된 사용자 명령에 기반하여 제1 가상화 공간에 할당된 보안 레벨을 높일 수 있다.In another embodiment, the processor 120 may change the security level allocated to the plurality of virtualization spaces according to a user command. For example, the processor 120 may receive a user command to increase the security level allocated to the first virtual space in order to increase the reliability of the file executed on the first virtual space. The processor 120 may increase the security level allocated to the first virtual space based on the input user command.
한편, 프로세서(120)는 디지털 신호를 처리하는 중앙처리장치(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)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다.Meanwhile, the processor 120 includes a central processing unit (CPU), a micro controller unit (MCU), a micro processing unit (MPU), a controller, and an application processor (AP) for processing a digital signal. )), a communication processor (CP), and one or more of an ARM processor, or may be defined by a corresponding term. In addition, the processor 120 may be implemented as a system on chip (SoC), large scale integration (LSI), or a field programmable gate array (FPGA) having a built-in processing algorithm. The processor 120 may perform various functions by executing computer executable instructions stored in the memory 110 .
도 3b는 본 개시의 일 실시예에 따른, 전자 장치(100)의 구성을 상세히 도시한 블록도이다. 도 3b에 도시된 바와 같이, 전자 장치(100)는 메모리(110), 프로세서(120), 통신부(130), 디스플레이(140), 스피커(150) 및 입력부(160)를 포함할 수 있다. 메모리(110) 및 프로세서(120)는 도 3a를 참조하여 구체적으로 설명하였으므로, 중복되는 설명은 생략하도록 한다.3B is a block diagram illustrating in detail the configuration of the electronic device 100 according to an embodiment of the present disclosure. As shown in FIG. 3B , the electronic device 100 may include a memory 110 , a processor 120 , a communication unit 130 , a display 140 , a speaker 150 , and an input unit 160 . Since the memory 110 and the processor 120 have been described in detail with reference to FIG. 3A , redundant descriptions will be omitted.
통신부(130)는 회로를 포함하는 별도의 하드웨어 장치로 구현될 수 있다. 통신부(130)는 외부 장치(예를 들어, 다른 종류의 전자 장치 또는 외부 서버 등)와의 통신을 수행할 수 있다. 이때, 통신부(130)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다.The communication unit 130 may be implemented as a separate hardware device including a circuit. The communication unit 130 may communicate with an external device (eg, another type of electronic device or an external server). In this case, the communication connection of the communication unit 130 with the external device may include communication through a third device (eg, a repeater, a hub, an access point, a server, or a gateway, etc.).
통신부(130)는 외부 장치와 통신을 수행하기 위해 다양한 통신 모듈을 포함할 수 있다. 일 예로, 통신부(140)는 무선 통신 모듈을 포함할 수 있으며, 예를 들면, LTE, LTE-A(LTE Advance), 5G(5th Generation), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신 모듈을 포함할 수 있다. The communication unit 130 may include various communication modules to communicate with an external device. For example, the communication unit 140 may include a wireless communication module, for example, LTE, LTE Advance (LTE-A), 5G ( 5th Generation), CDMA (code division multiple access), WCDMA (wideband CDMA) ), a universal mobile telecommunications system (UMTS), wireless broadband (WiBro), and a cellular communication module using at least one of Global System for Mobile Communications (GSM).
또 다른 예로, 무선 통신 모듈은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee) 또는 라디오 프리퀀시(RF) 중 적어도 하나를 포함할 수 있다. As another example, the wireless communication module may include, for example, at least one of wireless fidelity (WiFi), Bluetooth, Bluetooth low energy (BLE), Zigbee, and radio frequency (RF).
통신부(130)는 외부 서버로부터 파일을 수신할 수 있다. 이 때, 외부 서버는 전자 장치(100)의 가상화 공간 상 중 하나에 할당된 공개 키에 대응되는 개인 키를 기반으로 파일의 해시 값을 암호화하는 서버일 수 있다. 이와 관련된 실시예는 도 4를 참조하여 구체적으로 설명하도록 한다. 그리고, 통신부(130)는 사용자 명령에 의해 변경된 공개 키에 대응되는 개인 키를 외부 서버로 전송할 수 있다.The communication unit 130 may receive a file from an external server. In this case, the external server may be a server that encrypts a hash value of a file based on a private key corresponding to a public key allocated to one of the virtual spaces of the electronic device 100 . An embodiment related thereto will be described in detail with reference to FIG. 4 . In addition, the communication unit 130 may transmit the private key corresponding to the public key changed by the user command to the external server.
디스플레이(140)는 프로세서(120)의 제어에 따라 다양한 정보를 표시할 수 있다. 특히, 실행되는 파일에 포함된 서명 값 또는 보안 레벨 중 적어도 하나가 파일이 실행되는 가상화 공간 상에 할당된 공개 키 또는 보안 레벨에 대응되지 않은 경우, 디스플레이(140)는 파일의 실행을 중지한다는 메시지 또는 이를 나타내는 인디케이터를 표시할 수 있다.The display 140 may display various information under the control of the processor 120 . In particular, when at least one of a signature value or a security level included in an executed file does not correspond to a public key or a security level allocated on the virtual space in which the file is executed, the display 140 displays a message indicating that the execution of the file is stopped Alternatively, an indicator indicating this may be displayed.
디스플레이(150)는 터치 패널과 함께 터치 스크린으로 구현되거나 플렉서블 디스플레이(flexible display)로 구현될 수 있다.The display 150 may be implemented as a touch screen together with a touch panel or as a flexible display.
스피커(150)는 오디오 처리부에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. The speaker 150 is configured to output not only various audio data on which various processing tasks such as decoding, amplification, and noise filtering have been performed by the audio processing unit, but also various notification sounds or voice messages.
특히, 스피커(150)는, 프로세서(120) 제어에 의해, 실행되는 파일에 포함된 서명 값 또는 보안 레벨에 기초하여 파일의 실행이 중지된다는 알림음 또는 음성 메시지를 출력할 수 있다. 한편, 오디오를 출력하기 위한 구성은 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.In particular, the speaker 150 may output, under the control of the processor 120 , a notification sound or a voice message indicating that execution of the file is stopped based on a security level or a signature value included in the file being executed. Meanwhile, a configuration for outputting audio may be implemented as a speaker, but this is only an exemplary embodiment and may be implemented as an output terminal capable of outputting audio data.
입력부(160)는 전자 장치(100)를 제어하기 위한 사용자 입력을 수신할 수 있다. 특히, 입력부(170)는 사용자 손 또는 스타일러스 펜 등을 이용한 사용자 터치를 입력받기 위한 터치 패널, 사용자 조작을 입력받기 위한 버튼 등이 포함될 수 있다. 그 밖에, 입력부(160)는 다른 입력 장치(예로, 키보드, 마우스, 모션 입력부 등)로 구현될 수 있다.The input unit 160 may receive a user input for controlling the electronic device 100 . In particular, the input unit 170 may include a touch panel for receiving a user touch input using a user's hand or a stylus pen, a button for receiving a user manipulation, and the like. In addition, the input unit 160 may be implemented as another input device (eg, a keyboard, a mouse, a motion input unit, etc.).
입력부(160)는 복수의 가상화 공간 중 하나에 할당된 공개 키 또는 보안 레벨을 변경하는 사용자 명령을 수신할 수 있다. 프로세서(120)는 입력부(160)에 입력된 사용자 명령에 기반하여 복수의 가상화 공간 중 하나에 할당된 공개 키 또는 보안 레벨을 변경할 수 있다.The input unit 160 may receive a public key allocated to one of a plurality of virtualization spaces or a user command for changing a security level. The processor 120 may change a public key or a security level allocated to one of a plurality of virtualization spaces based on a user command input to the input unit 160 .
도 4는 본 개시의 일 실시예에 따른, 전자 장치(100)와 외부 서버(200)간의 동작을 설명하기 위한 순서도이다.4 is a flowchart illustrating an operation between the electronic device 100 and the external server 200 according to an embodiment of the present disclosure.
외부 서버(200)는 파일을 생성하고, 파일에 대해 디지털 서명 동작을 수행할 수 있다(S410). 외부 서버(200)가 생성한 파일은 전자 장치(100) 중 특정 가상화 공간에서 실행될 파일일 수 있다. 외부 서버(200)는 생성된 파일의 해시 값을 개인 키로 암호화하여 획득된 서명 값을 파일의 일 부분에 부가할 수 있다.The external server 200 may create a file and perform a digital signature operation on the file (S410). The file generated by the external server 200 may be a file to be executed in a specific virtualization space of the electronic device 100 . The external server 200 may add a signature value obtained by encrypting the hash value of the generated file with a private key to a portion of the file.
외부 서버(200)는 서명 값이 포함된 생성된 파일을 전자 장치(100)에 전송할 수 있다(S420). 전자 장치(100)는 복수의 가상화 공간 중 외부 서버(200)에 대응되는 가상화 공간 상에서 파일의 실행을 감지할 수 있다(S430). 예를 들어, 전자 장치(100) 상의 복수의 가상화 공간 중 적어도 하나는 외부 서버(200)에서 생성되는 파일이 실행되도록 설정될 수 있다. 즉, 외부 서버(200)는 설정된 적어도 하나의 가상화 공간 상에 할당된 공개키에 대응되는 개인키로 생성된 파일의 해시 값을 암호화하여 서명 값을 획득할 수 있다.The external server 200 may transmit the generated file including the signature value to the electronic device 100 (S420). The electronic device 100 may detect execution of a file in a virtual space corresponding to the external server 200 among a plurality of virtual spaces ( S430 ). For example, at least one of a plurality of virtualization spaces on the electronic device 100 may be set to execute a file generated by the external server 200 . That is, the external server 200 may obtain a signature value by encrypting a hash value of a file generated with a private key corresponding to a public key allocated on at least one set virtual space.
외부 서버(200)에 대응되는 가상화 공간 상에서 파일의 실행이 감지되면, 전자 장치(100)는 외부 서버(200)에 대응되는 가상화 공간에 할당된 공개 키를 이용하여 파일에 포함된 서명 값을 복호화할 수 있다(S440). 전자 장치(100)는 복호화된 서명 값과 외부 서버(200)로부터 수신된 파일에 대응되는 해시 값을 비교하여 파일의 서명 값을 검증할 수 있다(S450). 외부 서버(200)로부터 수신된 파일에 대응되는 해시 값은 파일에서 추출된 해시 값을 의미한다.When execution of the file is detected in the virtual space corresponding to the external server 200 , the electronic device 100 decrypts the signature value included in the file using the public key allocated to the virtual space corresponding to the external server 200 . It can be done (S440). The electronic device 100 may verify the signature value of the file by comparing the decrypted signature value with a hash value corresponding to the file received from the external server 200 (S450). The hash value corresponding to the file received from the external server 200 means a hash value extracted from the file.
전자 장치(100)는 서명 값의 검증 결과에 따라 파일의 실행 중지 여부를 결정할 수 있다(S460). 복호화된 서명 값과 파일에 대응되는 해시 값이 동일할 경우, 전자 장치(100)는 서명 값의 무결함을 식별하고 파일의 실행을 유지할 수 있다. 복호화된 서명 값과 파일에 대응되는 해시 값이 상이할 경우, 전자 장치(100)는 파일의 실행을 중지시킬 수 있다.The electronic device 100 may determine whether to stop the execution of the file according to the verification result of the signature value (S460). When the decrypted signature value and the hash value corresponding to the file are the same, the electronic device 100 may identify the integrity of the signature value and maintain the execution of the file. When the decrypted signature value is different from the hash value corresponding to the file, the electronic device 100 may stop the execution of the file.
한편, 전자 장치(100)는 사용자 명령에 따라 외부 서버(200)에 대응되는 가상화 공간에 할당된 공개 키를 변경할 수 있다(S470). 예를 들어, 가상화 공간에 할당된 공개 키에 대응되는 개인 키가 누출된 경우, 전자 장치(100)는 공개 키를 변경하는 사용자 명령을 입력받을 수 있다. 전자 장치(100)는 변경된 공개 키에 대응되는 개인 키를 외부 서버(200)에 전송할 수 있다(S480).Meanwhile, the electronic device 100 may change the public key allocated to the virtual space corresponding to the external server 200 according to a user command (S470). For example, when the private key corresponding to the public key allocated to the virtualization space is leaked, the electronic device 100 may receive a user command to change the public key. The electronic device 100 may transmit the private key corresponding to the changed public key to the external server 200 (S480).
외부 서버(200)는 전자 장치(100)에 전송할 파일을 생성하고, 수신된 개인 키를 이용하여 생성된 파일에 대해 디지털 서명 동작을 수행할 수 있다(S490). 구체적으로, 외부 서버(200)는 수신된 변경된 개인 키를 이용하여 새롭게 생성된 파일의 해시 값을 암호화하여 서명 값을 획득하고, 서명 값이 포함된 파일을 전자 장치(100)에 전송할 수 있다.The external server 200 may generate a file to be transmitted to the electronic device 100 and perform a digital signature operation on the generated file using the received private key (S490). Specifically, the external server 200 may obtain a signature value by encrypting a hash value of a newly generated file using the received changed private key, and may transmit the file including the signature value to the electronic device 100 .
도 5는 본 개시의 일 실시예에 따른, 전자 장치(100)의 제어 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating a method of controlling the electronic device 100 according to an embodiment of the present disclosure.
커널이 복수의 가상화 공간 중 제1 공개 키가 할당된 제1 가상화 공간 상에서 제1 파일의 실행을 감지하면, 전자 장치(100)는 제1 공개 키를 이용하여 실행된 제1 파일에 포함된 서명 값을 복호화할 수 있다(S510).When the kernel detects the execution of the first file in the first virtual space to which the first public key is allocated among the plurality of virtual spaces, the electronic device 100 uses the first public key to generate a signature included in the executed first file The value may be decoded (S510).
전자 장치(100)는 복호화된 서명 값과 제1 파일에 대응되는 해시 값을 비교하여 제1 파일의 서명 값을 검증할 수 있다(S520). The electronic device 100 may verify the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file ( S520 ).
제1 파일에 대응되는 해시 값은 제1 파일을 통해 추출된 해시 값을 의미한다. 복호화된 서명 값과 제1 파일에 대응되는 해시 값이 동일한 경우, 전자 장치(100)는 서명 값의 무결성을 식별하고 파일의 실행을 유지할 수 있다. 복호화된 서명 값과 제1 파일에 대응되는 해시 값이 상이하거나 제1 파일에 서명 값이 포함되지 않은 경우, 전자 장치(100)는 파일의 실행을 중지시킬 수 있다.The hash value corresponding to the first file means a hash value extracted through the first file. When the decrypted signature value and the hash value corresponding to the first file are the same, the electronic device 100 may identify the integrity of the signature value and maintain execution of the file. When the decrypted signature value is different from the hash value corresponding to the first file or the signature value is not included in the first file, the electronic device 100 may stop the execution of the file.
본 개시의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.Various embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage medium readable by a machine (eg, a computer). As a device that is called and can operate according to the called command, it may include an electronic device (eg, the electronic device 100) according to the disclosed embodiments. When the command is executed by the processor, the processor directly Alternatively, a function corresponding to the instruction may be performed using other components under the control of the processor. The instruction may include code generated or executed by a compiler or an interpreter. , may be provided in the form of a non-transitory storage medium, where the 'non-transitory storage medium' does not include a signal and means that it is tangible and data is semi-permanent in the storage medium Alternatively, temporary storage is not distinguished, for example, a 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예로, 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to an embodiment, the method according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products may be traded between sellers and buyers as commodities. The computer program product may be distributed in the form of a machine-readable storage medium (eg, compact disc read only memory (CD-ROM)) or online through an application store (eg, Play Store™). In the case of online distribution, at least a portion of the computer program product (eg, a downloadable app) is at least temporarily stored in a storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server, or is temporarily stored can be created with
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.Each of the components (eg, a module or a program) according to various embodiments may be composed of a singular or a plurality of entities, and some sub-components of the aforementioned sub-components may be omitted, or other sub-components may be It may be further included in various embodiments. Alternatively or additionally, some components (eg, a module or a program) may be integrated into a single entity, so that functions performed by each corresponding component prior to integration may be performed identically or similarly. According to various embodiments, operations performed by a module, program, or other component are executed sequentially, parallel, iteratively, or heuristically, or at least some operations are executed in a different order, are omitted, or other operations are added. can be

Claims (15)

  1. 전자 장치에 있어서,In an electronic device,
    운영 체제 및 상기 운영 체제 상의 커널(kernel)의 리소스를 공유하며 고유의 공개 키가 각각 할당된 복수의 가상화 공간을 포함하는 메모리; 및a memory that shares resources of an operating system and a kernel on the operating system and includes a plurality of virtualization spaces to which a unique public key is allocated; and
    상기 복수의 가상화 공간 중 적어도 하나의 가상화 공간 상에서 실행되는 파일에 포함된 서명 값을 검증하는 프로세서;를 포함하고,A processor for verifying a signature value included in a file executed in at least one virtual space among the plurality of virtual spaces; includes;
    상기 프로세서는,The processor is
    상기 커널이 상기 복수의 가상화 공간 중 제1 공개 키가 할당된 제1 가상화 공간 상에서 제1 파일의 실행을 감지하면, 상기 제1 공개 키를 이용하여 상기 실행된 제1 파일에 포함된 서명 값을 복호화하고, When the kernel detects the execution of the first file in the first virtual space to which the first public key is allocated among the plurality of virtual spaces, the signature value included in the executed first file is generated using the first public key. decrypt,
    상기 복호화된 서명 값과 상기 제1 파일에 대응되는 해시 값을 비교하여 상기 제1 파일의 서명 값을 검증하는 전자 장치.An electronic device for verifying the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file.
  2. 제1항에 있어서,According to claim 1,
    상기 프로세서는,The processor is
    상기 커널이 상기 복수의 가상화 공간 이외의 공간에서 제2 파일이 실행되는 것을 감지하면, 상기 운영 체제 상에 할당된 제2 공개 키를 이용하여 상기 제2 파일에 포함된 서명 값을 복호화하고,When the kernel detects that the second file is executed in a space other than the plurality of virtualized spaces, it decrypts a signature value included in the second file using a second public key allocated on the operating system,
    상기 제2 공개 키를 이용하여 복호화된 서명 값과 상기 제2 파일에 대응되는 해시 값을 비교하여 상기 제2 파일의 서명 값을 검증하고,verifying the signature value of the second file by comparing the decrypted signature value using the second public key with a hash value corresponding to the second file;
    상기 제2 공개 키와 상기 제1 공개 키는 서로 상이한 것을 특징으로 하는 전자 장치.The electronic device of claim 1, wherein the second public key and the first public key are different from each other.
  3. 제1항에 있어서,According to claim 1,
    상기 프로세서는,The processor is
    상기 복호화된 서명 값과 상기 제1 파일에 대응되는 해시 값이 일치하지 않거나 상기 제1 파일 상에 서명 값이 포함되지 않은 경우, 상기 제1 파일의 실행을 중지시키는 전자 장치.When the decrypted signature value and the hash value corresponding to the first file do not match or the signature value is not included in the first file, the electronic device stops execution of the first file.
  4. 제1항에 있어서,The method of claim 1,
    회로를 포함하는 통신부;를 더 포함하고,A communication unit including a circuit; further comprising,
    상기 프로세서는,The processor is
    외부 서버로부터 제3 파일을 상기 통신부를 통해 수신하고,Receiving a third file from an external server through the communication unit,
    상기 커널이 상기 복수의 가상화 공간 중 상기 외부 서버에 대응되는 제3 가상화 공간 상에서 상기 제3 파일이 실행되는 것을 감지하면, 상기 제3 가상화 공간에 포함된 제3 공개 키를 이용하여 상기 제3 파일에 포함된 서명 값을 복호화하고, When the kernel detects that the third file is executed in a third virtual space corresponding to the external server among the plurality of virtual spaces, the third file is used using a third public key included in the third virtual space. Decrypt the signature value included in
    상기 복호화된 서명 값과 상기 제3 파일에 대응되는 해시 값을 비교하여 상기 제3 파일의 서명 값을 검증하는 전자 장치.The electronic device verifies the signature value of the third file by comparing the decrypted signature value with a hash value corresponding to the third file.
  5. 제1항에 있어서,According to claim 1,
    상기 복수의 가상화 공간 각각에 보안 레벨(secure level)이 할당되고,A security level is allocated to each of the plurality of virtualization spaces,
    상기 프로세서는,The processor is
    상기 커널이 상기 복수의 가상화 공간 중 제1 보안 레벨이 할당된 제4 가상화 공간 상에서 제4 파일이 실행되는 것을 감지하면, 상기 파일에 할당된 보안 레벨과 상기 제1 보안 레벨을 비교하여 상기 제4 파일의 실행을 중지시킬지 여부를 결정하는 전자 장치.When the kernel detects that a fourth file is executed in a fourth virtualized space to which a first security level is allocated among the plurality of virtualized spaces, the fourth file is compared with the first security level by comparing the security level allocated to the file An electronic device that determines whether or not to stop the execution of a file.
  6. 제5항에 있어서,6. The method of claim 5,
    상기 프로세서는,The processor is
    상기 제4 파일에 할당된 보안 레벨이 상기 제1 보안 레벨 미만이거나 상기 제4 파일에 상기 보안 레벨이 할당되지 않은 경우, 상기 제4 파일의 실행을 중지시키는 것으로 결정하고,When the security level assigned to the fourth file is less than the first security level or the security level is not assigned to the fourth file, it is determined to stop the execution of the fourth file;
    상기 제4 파일에 할당된 보안 레벨이 상기 제1 보안 레벨 이상인 경우, 상기 제4 파일을 실행하는 것으로 결정하는 전자 장치.When the security level assigned to the fourth file is equal to or greater than the first security level, the electronic device determines to execute the fourth file.
  7. 제5항에 있어서,6. The method of claim 5,
    상기 프로세서는,The processor is
    상기 커널이 상기 복수의 가상화 공간 이외의 공간 상에서 제5 파일의 실행을 감지하면, 상기 운영 체제 상에 할당된 제2 보안 레벨과 상기 제5 파일의 보안 레벨을 비교하여 상기 제5 파일의 실행을 중지시킬지 여부를 결정하고,When the kernel detects the execution of the fifth file in a space other than the plurality of virtualized spaces, the execution of the fifth file is performed by comparing the security level of the fifth file with the second security level allocated to the operating system. decide whether to stop
    상기 제2 보안 레벨은 상기 제1 보안 레벨과 상이한 것을 특징으로 하는 전자 장치.The second security level is different from the first security level.
  8. 제5항에 있어서,6. The method of claim 5,
    상기 프로세서는,The processor is
    상기 커널이 상기 복수의 가상화 공간 중 상기 제1 보안 레벨이 할당되고 제3 공개키가 할당된 제6 가상화 공간 상에서 제6 파일의 실행을 감지하면, 상기 파일의 서명 값을 상기 제3 공개키를 이용하여 복호화하고,When the kernel detects execution of a sixth file in a sixth virtual space to which the first security level is allocated and a third public key is allocated among the plurality of virtual spaces, the signature value of the file is converted to the third public key decrypt using
    상기 복호화한 서명 값 및 상기 제6 파일에 할당된 보안 레벨에 기초하여 상기 제6 파일의 실행을 중지시킬지 여부를 결정하는 전자 장치.The electronic device determines whether to stop execution of the sixth file based on the decrypted signature value and a security level assigned to the sixth file.
  9. 제1항에 있어서,According to claim 1,
    통신부;를 더 포함하고,Communication unit; further comprising,
    상기 프로세서는,The processor is
    사용자 명령에 따라 상기 제1 가상화 공간에 할당된 공개키를 변경하고,Changing the public key allocated to the first virtual space according to a user command,
    상기 변경된 공개키에 대응되는 개인 키를 상기 제1 가상화 공간에 대응되는 외부 서버에 전송하도록 상기 통신부를 제어하는 전자 장치.An electronic device for controlling the communication unit to transmit the private key corresponding to the changed public key to an external server corresponding to the first virtual space.
  10. 제1항에 있어서2. The method of claim 1
    상기 가상화 공간은 컨테이너(container)인 것을 특징으로 하는 전자 장치.The virtualized space is an electronic device, characterized in that the container (container).
  11. 운영 체제 및 상기 운영 체제 상의 커널(kernel)의 리소스를 공유하며 고유의 공개 키가 각각 할당된 복수의 가상화 공간을 포함하는 메모리를 포함하는 전자 장치의 제어 방법에 있어서,A method for controlling an electronic device comprising an operating system and a memory that shares resources of a kernel on the operating system and includes a plurality of virtualized spaces to which unique public keys are respectively allocated,
    상기 커널이 상기 복수의 가상화 공간 중 제1 공개 키가 할당된 제1 가상화 공간 상에서 제1 파일의 실행을 감지하면, 상기 제1 공개 키를 이용하여 상기 실행된 제1 파일에 포함된 서명 값을 복호화하는 단계; 및When the kernel detects the execution of the first file in the first virtual space to which the first public key is allocated among the plurality of virtual spaces, the signature value included in the executed first file is generated using the first public key. decrypting; and
    상기 복호화된 서명 값과 상기 제1 파일에 대응되는 해시 값을 비교하여 상기 제1 파일의 서명 값을 검증하는 단계;를 포함하는 제어 방법.and verifying the signature value of the first file by comparing the decrypted signature value with a hash value corresponding to the first file.
  12. 제11항에 있어서,12. The method of claim 11,
    상기 커널이 상기 복수의 가상화 공간 이외의 공간에서 제2 파일이 실행되는 것을 감지하면, 상기 운영 체제 상에 할당된 제2 공개 키를 이용하여 상기 제2 파일에 포함된 서명 값을 복호화하는 단계; 및when the kernel detects that the second file is executed in a space other than the plurality of virtualized spaces, decrypting a signature value included in the second file using a second public key allocated to the operating system; and
    상기 제2 공개 키를 이용하여 복호화된 서명 값과 상기 제2 파일에 대응되는 해시 값을 비교하여 상기 제2 파일의 서명 값을 검증하는 단계;를 더 포함하고,Comparing a signature value decrypted using the second public key with a hash value corresponding to the second file to verify the signature value of the second file;
    상기 제2 공개 키와 상기 제1 공개 키는 서로 상이한 것을 특징으로 하는 제어 방법.The second public key and the first public key are different from each other.
  13. 제11항에 있어서,12. The method of claim 11,
    상기 검증하는 단계는,The verification step is
    상기 복호화된 서명 값과 상기 제1 파일에 대응되는 해시 값이 일치하지 않거나 상기 제1 파일 상에 서명 값이 포함되지 않은 경우, 상기 제1 파일의 실행을 중지시키는 단계;를 더 포함하는 제어 방법.When the decrypted signature value and the hash value corresponding to the first file do not match or the signature value is not included in the first file, stopping execution of the first file; .
  14. 제11항에 있어서,12. The method of claim 11,
    외부 서버로부터 제3 파일을 수신하는 단계;receiving a third file from an external server;
    상기 커널이 상기 복수의 가상화 공간 중 상기 외부 서버에 대응되는 제3 가상화 공간 상에서 상기 제3 파일이 실행되는 것을 감지하면, 상기 제3 가상화 공간에 포함된 제3 공개 키를 이용하여 상기 제3 파일에 포함된 서명 값을 복호화하는 단계; 및When the kernel detects that the third file is executed in a third virtual space corresponding to the external server among the plurality of virtual spaces, the third file is used using a third public key included in the third virtual space. Decrypting the signature value included in the; and
    상기 복호화된 서명 값과 상기 제3 파일에 대응되는 해시 값을 비교하여 상기 제3 파일의 서명 값을 검증하는 단계;를 더 포함하는 제어 방법.and verifying the signature value of the third file by comparing the decrypted signature value with a hash value corresponding to the third file.
  15. 제11항에 있어서,12. The method of claim 11,
    상기 복수의 가상화 공간 각각에 보안 레벨(secure level)이 할당되고,A security level is allocated to each of the plurality of virtualization spaces,
    상기 커널이 상기 복수의 가상화 공간 중 제1 보안 레벨이 할당된 제4 가상화 공간 상에서 제4 파일이 실행되는 것을 감지하면, 상기 파일에 할당된 보안 레벨과 상기 제1 보안 레벨을 비교하여 상기 제4 파일의 실행을 중지시킬지 여부를 결정하는 단계;를 더 포함하는 제어 방법.When the kernel detects that a fourth file is executed in a fourth virtualized space to which a first security level is allocated among the plurality of virtualized spaces, the fourth file is compared with the first security level by comparing the security level allocated to the file The control method further comprising; determining whether to stop the execution of the file.
PCT/KR2021/011506 2020-09-11 2021-08-27 Electronic device and control method thereof WO2022055162A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200116907A KR20220034483A (en) 2020-09-11 2020-09-11 Electronic device and control method thereof
KR10-2020-0116907 2020-09-11

Publications (1)

Publication Number Publication Date
WO2022055162A1 true WO2022055162A1 (en) 2022-03-17

Family

ID=80632266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/011506 WO2022055162A1 (en) 2020-09-11 2021-08-27 Electronic device and control method thereof

Country Status (2)

Country Link
KR (1) KR20220034483A (en)
WO (1) WO2022055162A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120011502A1 (en) * 2010-07-12 2012-01-12 International Business Machines Corporation Managing unique electronic identification for kernel extensions in isolated virtual space
US20140325644A1 (en) * 2013-04-29 2014-10-30 Sri International Operating system-independent integrity verification
US20180109387A1 (en) * 2016-10-18 2018-04-19 Red Hat, Inc. Continued verification and monitor of application code in containerized execution environment
KR101876297B1 (en) * 2012-03-16 2018-07-10 삼성전자주식회사 Apparatus and method for electronic signature verification
US20190319941A1 (en) * 2016-03-30 2019-10-17 Airwatch Llc Associating user accounts with enterprise workspaces

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120011502A1 (en) * 2010-07-12 2012-01-12 International Business Machines Corporation Managing unique electronic identification for kernel extensions in isolated virtual space
KR101876297B1 (en) * 2012-03-16 2018-07-10 삼성전자주식회사 Apparatus and method for electronic signature verification
US20140325644A1 (en) * 2013-04-29 2014-10-30 Sri International Operating system-independent integrity verification
US20190319941A1 (en) * 2016-03-30 2019-10-17 Airwatch Llc Associating user accounts with enterprise workspaces
US20180109387A1 (en) * 2016-10-18 2018-04-19 Red Hat, Inc. Continued verification and monitor of application code in containerized execution environment

Also Published As

Publication number Publication date
KR20220034483A (en) 2022-03-18

Similar Documents

Publication Publication Date Title
CN110178136B (en) Method and apparatus for signature verification of field programmable gate array programs
US10078599B2 (en) Application access control method and electronic apparatus implementing the same
TWI585612B (en) Managing use of a field programmable gate array with isolated components
US10146942B2 (en) Method to protect BIOS NVRAM from malicious code injection by encrypting NVRAM variables and system therefor
US20150046712A1 (en) Method of operating data security and electronic device supporting the same
US11039486B2 (en) System, method and computer program product for secure bluetooth cryptography in a virtual mobile device platform
JP2016517241A (en) Inline encryption and decryption supported by storage devices
JP2011048661A (en) Virtual server encryption system
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
WO2017122980A1 (en) Electronic device and method for authenticating identification information thereof
WO2016148491A1 (en) Method and apparatus for protecting application
JP2017511554A (en) Access isolation for multi-operating system devices
US11086986B2 (en) Processing control apparatus, processing control method, and non-transitory recoding medium
TW201942784A (en) Data encryption, decryption method and device
TW201939337A (en) Behavior recognition, data processing method and apparatus
EP3066604B1 (en) Data accessibility control
KR102180529B1 (en) Application access control method and electronic device implementing the same
WO2021080123A1 (en) Electronic device and control method for same
WO2016200058A1 (en) Binary merging device, method, and computer program
CN104115413A (en) Method and apparatus for outputting content in portable terminal supporting secure execution environment
WO2021006574A1 (en) Method and apparatus for managing application
US20210012017A1 (en) Method and apparatus for storing and processing application program information
WO2022055162A1 (en) Electronic device and control method thereof
US8332658B2 (en) Computer system, management terminal, storage system and encryption management method
KR102368208B1 (en) File leakage prevention based on security file system and commonly used file access interface

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: 21867028

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: 21867028

Country of ref document: EP

Kind code of ref document: A1