WO2023106594A1 - 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법 - Google Patents

복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법 Download PDF

Info

Publication number
WO2023106594A1
WO2023106594A1 PCT/KR2022/015288 KR2022015288W WO2023106594A1 WO 2023106594 A1 WO2023106594 A1 WO 2023106594A1 KR 2022015288 W KR2022015288 W KR 2022015288W WO 2023106594 A1 WO2023106594 A1 WO 2023106594A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution environment
application
signature
electronic device
condition
Prior art date
Application number
PCT/KR2022/015288
Other languages
English (en)
French (fr)
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 WO2023106594A1 publication Critical patent/WO2023106594A1/ko

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/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
    • 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
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Definitions

  • Various embodiments disclosed in this document relate to technology of an electronic device that operates a plurality of execution environments.
  • a blockchain network is a network that is distinct from a centralized network in which decision-making is performed by a central server, and can be expressed as a decentralized network.
  • a blockchain network may refer to a network in which decision-making is performed according to a consensus algorithm of nodes participating in the blockchain network.
  • An electronic device included in a blockchain network serving as a client may perform an operation related to transaction verification using a public key and a private key for the blockchain network. For example, the electronic device may generate a transaction and digitally sign the transaction using a private key.
  • An electronic signature may be a technology for preventing falsification of an electronic or digital document and identifying a subject who created the signature. The electronic device can prevent tampering with the transaction and authenticate the originator of the transaction by performing an electronic signature on the transaction.
  • the electronic device may use a private key generated using seed value (eg, root seed) information in performing electronic signature. For example, the electronic device may generate a seed value in each method (eg, true random number generator, TRNG) and generate a private key based on the generated seed value. Also, the electronic device may generate a public key corresponding to the private key.
  • seed value eg, root seed
  • TRNG true random number generator
  • An electronic device may operate an execution environment having a plurality of security levels to enhance security.
  • the plurality of execution environments may include a first execution environment (eg, a rich execution environment (REE)) and a second execution environment (eg, a trusted execution environment (TEE)) or a secure execution environment. environment) may be included.
  • a first execution environment eg, a rich execution environment (REE)
  • a second execution environment eg, a trusted execution environment (TEE)
  • TEE trusted execution environment
  • secure execution environment. environment e.g., a secure execution environment. environment
  • Private keys used in blockchain networks can cause serious security problems when exposed to third parties.
  • the electronic device may store the private key in a security area within the second execution environment (eg, TEE) requiring a relatively high security level.
  • the electronic device may store the private key in a separate external device (eg, a cold wallet and/or a hardware wallet).
  • An electronic device that stores a private key in a separate area accesses the area whenever it is necessary to use the private key in the blockchain network (e.g., requests to a secure area or connects to an external device) and operates using the private key (e.g., electronic device signature) can be performed.
  • a private key in a second execution environment e.g, TEE
  • TEE second execution environment
  • An electronic device includes a display, a communication circuit, a memory for storing a first application executed in a first execution environment and a second application executed in a second execution environment, a state detection circuit, a memory, and at least one processor electrically connected to the communication circuit and the display, and executing a first application in a first execution environment or a second application in a second execution environment, wherein the at least one processor executes a second application in a second execution environment.
  • obtain a signature request for a transaction generated through the first application obtain first state data through the state detection circuit in response to the signature request, and obtain, based on the first state data, a signature stored in the second execution environment. It may be determined whether the condition is satisfied, based on the determination result, electronic signature of the transaction may be performed using a private key stored in the second execution environment, signature data may be generated, and signature data may be transmitted to the first application.
  • the electronic device executes a first application executed in the first execution environment in the second execution environment.
  • Actions may be included.
  • an electronic device may include a display, a communication circuit, a memory for storing a first application executed in a first execution environment and a second application executed in a second execution environment, a state detection circuit, a state detection circuit, and a memory.
  • the at least one processor electrically connected to the display and executing a first application in a first execution environment or a second application in a second execution environment, wherein the at least one processor is configured to: 1 obtains a signature request for a transaction generated through an application, obtains first state data through a state detection circuit in response to the signature request, and obtains, based on the first state data, a signing condition stored in a second execution environment
  • the display may be controlled to determine whether or not the application is satisfied, transmit the determination result to the first application, and display a result screen indicating the determination result and information on the signing condition in the first execution environment.
  • the computer-readable non-transitory recording medium when executed, the electronic device acquires a signature request for a transaction generated through a first application in a second execution environment, and detects a state in response to the signature request. Acquire first state data through a circuit, determine whether a signature condition stored in the second execution environment is satisfied based on the first state data, and execute a transaction with a private key stored in the second execution environment based on the determination result. It may be written a computer program that performs an electronic signature for generating signature data and transmits the signature data to the first application.
  • the computer-readable non-transitory recording medium when executed, the electronic device acquires a signature request for a transaction generated through a first application in a second execution environment, and detects a state in response to the signature request. Acquire first state data through a circuit, judge based on the first state data whether a signature condition stored in the second execution environment is satisfied, send the determination result to the first application, and in the first execution environment It may be a computer program recorded so as to display a result screen indicating information on the judgment result and the signing condition.
  • a user can set a condition for using data stored in the second execution environment (eg, TEE) or performing an operation in the second execution environment
  • An electronic device or method may be provided.
  • the user of the electronic device may set a condition so that the electronic device can use data stored in the second execution environment only in a designated location.
  • the user of the electronic device may set a condition so that the electronic device performs an operation in the second execution environment only at a designated location.
  • the electronic device when using data stored in the second execution environment, may restrict use only when a specified condition is satisfied. For example, when signing a transaction using a private key, the electronic device may restrict the signing operation to be performed only when a specified condition is satisfied. Alternatively, when performing an operation in the second execution environment, the electronic device may limit the signature operation to be performed only when a specified condition is satisfied.
  • a user of an electronic device is limited to performing an operation only when a condition set by a user is satisfied in addition to using the second execution environment requiring a higher security level than the first execution environment. By doing so, it is possible to obtain more security than using the second execution environment.
  • FIG. 1 is a block diagram of an electronic device according to an exemplary embodiment.
  • FIG. 2 is a diagram illustrating an execution environment of an electronic device according to an exemplary embodiment.
  • FIG. 3 is a flowchart illustrating an operation of performing an electronic signature on a transaction by an electronic device according to an exemplary embodiment.
  • FIG. 4 is a flowchart illustrating an operation of an electronic device performing an electronic signature based on satisfaction of a signature condition according to an embodiment.
  • FIG. 5 is a flowchart illustrating an operation of setting a signing condition by an electronic device according to an exemplary embodiment.
  • FIG. 6 is a flowchart illustrating an operation of displaying a screen indicating whether a signature condition is satisfied by an electronic device according to an exemplary embodiment.
  • FIG. 7 is a diagram illustrating a blockchain application execution UI according to an embodiment.
  • FIG. 8 is a diagram illustrating a UI for setting a signature condition according to an exemplary embodiment.
  • FIG. 9 is a diagram illustrating a transaction creation UI according to an exemplary embodiment.
  • FIG. 10 is a diagram illustrating a result UI of whether a signing condition is satisfied according to an embodiment.
  • FIG. 11 is a block diagram of an electronic device in a network environment according to various embodiments.
  • FIG. 1 is a block diagram of an electronic device according to an exemplary embodiment.
  • an electronic device 100 may include a memory 110, a display 120, a processor 130, a communication circuit 140, a state detection circuit 150, or a combination thereof.
  • the electronic device 100 may include additional components in addition to the components shown in FIG. 1 or may omit some of the components shown in FIG. 1 .
  • the memory 110 may be referred to as a storage means for storing data.
  • the display 120 may be referred to as an output means.
  • the processor 130 may be referred to as a processing means for processing data.
  • the communication circuit 140 may be referred to as communication means for performing communication with other devices.
  • the state detection circuit 150 may be referred to as state detection means for detecting a state.
  • the electronic device 100 may be operated based on at least one of a plurality of execution environments.
  • the electronic device 100 may execute at least one application based on at least one of a plurality of execution environments.
  • the plurality of execution environments may include a first execution environment (eg, rich execution environment (REE)) and a second execution environment (eg, trusted execution environment (TEE)).
  • the second execution environment eg, TEE
  • the second execution environment may be an execution environment having a different (eg, higher) security level from that of the first execution environment (eg, REE).
  • a plurality of execution environments of the electronic device 100 will be described later in detail with reference to FIG. 2 .
  • the memory 110 includes instructions that allow the processor 130 to process data or control components of the electronic device 100 to perform an operation of the electronic device 100 when executed. ) can be stored.
  • the memory 110 may include a plurality of applications executed in each of a plurality of execution environments.
  • the memory 110 may include at least one blockchain application executed in the first execution environment.
  • the blockchain application may include a blockchain application that performs a blockchain-related operation and/or a wallet application that performs a transaction-related operation in a blockchain network.
  • the blockchain application may include instructions that allow the processor 130 to control components of the electronic device 100 to perform operations related to the blockchain when executed.
  • the memory 110 may store a blockchain application downloaded through a server by the user of the electronic device 100 or the processor 130 .
  • an application related to a blockchain wallet may perform functions related to blockchain including opening an account used in a blockchain network and transferring or depositing virtual currency.
  • the memory 110 may include a secure memory area requiring a high security level.
  • the memory 110 may include a separate secure memory in terms of hardware or may logically divide a partial area of the memory 110 into a secure memory area.
  • the secure memory area may be included in the second execution environment.
  • the secure memory area may store a private key requiring a high security level.
  • the memory 110 may include at least one trusted application (TA) executed in the second execution environment.
  • TA trusted application
  • a trusted application may perform an operation utilizing data having a high security level.
  • the trusted application may perform electronic signature using the private key of the electronic device 100 .
  • the trusted application may obtain a signature request for a transaction from a blockchain application executed in the first execution environment, and perform electronic signature on the transaction with a private key in response to the signature request.
  • the display 120 may display various contents (eg, text, image, video, icon, and/or symbol).
  • the display 120 may include a liquid crystal display (LCD), a light emitting diode (LED) display, or an organic light emitting diode (OLED) display.
  • the processor 130 may display various contents related to the blockchain application through the display 120 .
  • the processor 130 may display various execution screens of blockchain applications through the display 120 .
  • the execution screen of the blockchain application may include a screen including information about a transaction and/or a screen including information related to an electronic signature for a transaction.
  • the processor 130 may display a screen for setting signature conditions for performing electronic signature on a transaction through the display 120 and may receive the signature conditions and a user input.
  • the processor 130 displays a screen including condition information for setting signing conditions through the display 120 and obtains an input related to setting signing conditions from the user through the display 120.
  • can Contents of the screen displayed on the display 120 according to various embodiments will be described below with reference to FIGS. 7 to 10 .
  • the processor 130 may be electrically or operatively connected to the memory 110 , the display 120 and/or the communication circuit 140 . According to an embodiment, the processor 130 may execute calculations or data processing related to control and/or communication of at least one other component of the electronic device 100 using instructions stored in the memory 110 . According to an embodiment, the processor 130 may include a central processing unit (CPU), a graphics processing unit (GPU), a micro controller unit (MCU), a sensor hub, a supplementary processor, a communication processor, and an application. It may include at least one of a processor, an application specific integrated circuit (ASIC), and field programmable gate arrays (FPGAs), and may have a plurality of cores.
  • CPU central processing unit
  • GPU graphics processing unit
  • MCU micro controller unit
  • a sensor hub a sensor hub
  • a supplementary processor a communication processor
  • an application may include at least one of a processor, an application specific integrated circuit (ASIC), and field programmable gate arrays (FPGAs), and may have a pluralit
  • the processor 130 may execute an application included in each execution environment in a plurality of execution environments. For example, the processor 130 may perform an operation related to the blockchain through a blockchain application stored in the memory 110 in the first execution environment (eg, REE). In addition, the processor 130 may perform an operation related to the block chain through a trusted application stored in the memory 110 in the second execution environment (eg, TEE). According to one embodiment, it may be understood that the processor 130 performing an operation related to a blockchain is executed through a blockchain application or a trusted application.
  • the communication circuit 140 may be connected to an external device to transmit/receive data.
  • the electronic device 100 may be connected to a blockchain network through a communication circuit 140.
  • the processor 130 may generate signature data by performing an electronic signature on a transaction using a private key, and transmit the generated signature data to a blockchain network connected through the communication circuit 140 . Based on the signature data transmitted to the blockchain network, a verification operation and/or an agreement operation on the transaction may be performed through blockchain nodes included in the blockchain network.
  • the electronic device 100 may include a state detection circuit 150.
  • the processor 130 may obtain state data for determining and/or setting a signing condition for a transaction through the state detection circuit 150 .
  • the state detection circuit 150 may generate various state data related to the signing condition.
  • the state detection circuit 150 may generate location data of the electronic device 100 by using a location sensor (eg, a global navigation satellite system (GNSS) module) for determining location information.
  • GNSS global navigation satellite system
  • the position sensor may indicate various configurations for determining the position of the electronic device 100 without being limited to the expression.
  • the state detection circuit 150 when the state detection circuit 150 is a component for determining location information, the state detection circuit 150 may be included in the communication circuit 140 .
  • the state detection circuit 150 may generate touch data acquired by the electronic device 100 using a sensor (eg, a touch sensor) that obtains a touch input.
  • a sensor eg, a touch sensor
  • the state detection circuit 150 generates connection data for an external electronic device that forms various network connections (eg, Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) with the electronic device 100. can do.
  • the state detection circuit 150 may transmit the generated state data to other components of the electronic device 100.
  • the processor 130 may obtain a signature request for a transaction generated through a blockchain application in the second execution environment.
  • the processor 130 may execute a blockchain application in the first execution environment, obtain a transaction creation request through a user, a blockchain application, or another application, and create a transaction through the blockchain application.
  • a transaction for transferring or depositing a certain amount of virtual currency to an account of a user of an external electronic device may be generated through a blockchain application.
  • the processor 130 may transmit a signature request for a transaction generated through a blockchain application to the second execution environment.
  • the processor 130 may obtain first state data through the state detection circuit 150 in response to the signature request in the second execution environment. For example, the processor 130 acquires location data indicating information on the current location of the electronic device 100 through the state detection circuit 150 and a touch sensor of the electronic device 100 in the second execution environment. Touch data and/or connection data indicating connection information with an external electronic device may be acquired.
  • the processor 130 may determine whether the first state data acquired through the state detection circuit 150 satisfies a signature condition stored in the second execution environment.
  • the secure memory area included in the second execution environment may store signing conditions for conditions for performing an electronic signature.
  • the second execution environment may set a condition for performing an electronic signature and store the set signing condition. An operation of setting the signature conditions will be described later with reference to FIG. 5 .
  • the processor 130 may determine whether the first state data acquired through the state detection circuit 150 satisfies a signature condition. For example, the processor 130 may determine whether the location of the electronic device 100 is included in a designated location range through location data. Alternatively, the processor 130 may determine whether the external electronic device connected to the electronic device 100 is a designated external electronic device through connection data. The processor 130 is not limited to the described example, and may determine whether various types of signature conditions stored in the second execution environment are satisfied using various types of state data acquired through the state detection circuit 150. .
  • the processor 130 may generate signature data by performing an electronic signature on a transaction with a private key stored in the second execution environment based on a result of determining whether the signature condition is satisfied. For example, when it is determined that the signing condition is satisfied based on the first state data, the processor 130 may perform electronic signature on the transaction with a private key stored in the second execution environment. Accordingly, signature data including a transaction electronically signed with the private key can be created.
  • the processor 130 may transfer the generated signature data to a blockchain application within the first execution environment.
  • the processor 130 may transfer the generated signature data to the first execution environment.
  • the processor 130 may transmit signature data including a transaction electronically signed with a private key using a blockchain application in the first execution environment to the blockchain network.
  • FIG. 2 is a diagram illustrating an execution environment of an electronic device according to an exemplary embodiment.
  • the electronic device 100 may operate as a first execution environment (eg, REE 210) and a second execution environment (eg, TEE 220).
  • the electronic device 100 is not limited to the various embodiments disclosed in this document, and an additional execution environment (eg, a third execution environment) having a different security level in addition to the first execution environment and the second execution environment or other execution environments. may contain the environment.
  • the first execution environment may be represented by the REE 210 and the second execution environment by the TEE 220 .
  • the expression is not limited, and the REE 210 may correspond to a general execution environment, and the TEE 220 may correspond to an execution environment having a higher security level than the general execution environment.
  • the REE 210 and the TEE 220 may be operated through various methods without being limited to the example shown in FIG. 2 .
  • the electronic device 100 may operate as the REE 210 and the TEE 220.
  • the TEE 220 may be implemented as a separate circuit and may include a separate processor.
  • the TEE 220 may be present in a removable smart chip, secure digital (SD) card, or may include an embedded secure element (eSE) embedded in a fixed chip of the electronic device 100.
  • the TEE 220 may be driven by an operating system (eg, the trusted OS component 226) different from the operating system (eg, android OS) of the electronic device 100 .
  • the electronic device 100 may operate based on a java card open platform (JCOP) operating system.
  • the electronic device 100 divides one processor 130 and one memory 110 into REE 210 and TEE 220 in terms of hardware (eg, ARM trust zone ( trust zone)).
  • the electronic device 100 may temporally separate one processor 130 and use the REE 210 and the TEE 220 separately.
  • the electronic device 100 may use the memory 110 by dividing it into an area accessible from the REE 210 and an area accessible from the TEE 220 .
  • various components of the electronic device 100 may be used by being divided into REE 210 and TEE 220 areas.
  • a processor for operating the REE 210 and a processor for operating the TEE 220 are implemented in an on-chip form, and each is separately processed. It can be implemented as a core set.
  • a processor for TEE 220 may have the same or similar configuration as processor 130 .
  • the processor for the REE 210 and the processor for the TEE 220 are implemented as separate hardware chips, so that the electronic device 100 may include separate chips.
  • one single chip system on chip, On-Soc
  • On-Soc operates the REE 210
  • one or more external security co-processors provided outside the single chip may be set to operate the TEE 220.
  • the REE 210 includes a blockchain application 211 and various other applications (not shown), a blockchain shared memory 212, a REE application programming interface (API) 213, and a REE HAL (hardware). abstract layer) 214 and/or general operating system component 215.
  • the blockchain application 211 may be an application that performs a blockchain-related operation.
  • a blockchain application can be a wallet application.
  • a blockchain application for example, an application related to a blockchain wallet may perform functions related to blockchain including a function of opening an account used in a blockchain network and transferring or depositing virtual currency.
  • the blockchain application 211 may generate a transaction and transmit a signature request for the generated transaction to the trusted application 222 .
  • the blockchain application 211 may transmit the signature data to a blockchain network (eg, mainnet) in response to acquiring signature data including electronically signed transaction data from the trusted application 222 .
  • a blockchain network eg, mainnet
  • the blockchain application 211 obtains a request for setting signing conditions from a user or other application, and transmits setting information including the condition setting request and information about the condition to the trusted application 222.
  • various applications may include one or more applications capable of performing various functions including calling, messaging, payment, alarm, browser, and/or camera.
  • the REE 210 may include a block chain shared memory 212.
  • the processor 130 may access a block chain shared memory view 221 of the TEE 220 using the block chain shared memory 212 .
  • Blockchain shared memory 212 may be memory accessible by applications (eg, blockchain application 211 and trusted application 222) of REE 210 and TEE 220.
  • the REE API 213 may be an interface for an application to control functions provided by a kernel or middleware.
  • the REE API 213 may include at least one interface or function (eg, command) for various functions including file control, window control, image processing, or text control.
  • the REE API 213 is a set of programming functions and may be provided in different configurations depending on the operating system. For example, in the case of Android or IOS, one API set can be provided for each platform. In the case of Tizen, two or more API sets can be provided for each platform.
  • the REE API 213 may include a functional API for which access to the TEE 220 is permitted.
  • the REE API 213 may include an application interface designed to enable access to some services of the TEE 220.
  • the REE API 213 may include an interface designed to exchange data between applications of the REE 210 and the TEE 220 .
  • REE 210 may include REE HAL 214.
  • the REE HAL 214 may represent a collection of routines that handle hardware-dependent details necessary for the implementation of input/output interfaces, interrupt control, and processor communication.
  • the REE HAL 214 may receive a control command or request abstracted from the blockchain application 211 and deliver the received control command or request to a device driver included in the general operating system component 215.
  • the REE HAL 214 may deliver an abstracted control command or request obtained from the blockchain application 211 to operate in accordance with a device driver included in the general operating system component 215.
  • the REE HAL 214 may transmit a control command obtained so that a device driver included in the general operating system component 215 is activated or deactivated according to an abstracted control command obtained from the blockchain application 211.
  • the device driver may transmit the received control command to the status detection circuit 150.
  • the REE HAL 214 responds to a command related to an operation of the trusted application 222 received from the blockchain application 211 to disable the device driver included in the general operating system component 215.
  • a command may be passed to component 215 .
  • the REE HAL 214 transmits a command received from the blockchain application 211 to the general operating system component 215 to activate the device driver in response to a command related to the end of the operation for the trusted application 222. can
  • the general operating system component (eg, rich OS component) 215 may include a first touch driver 216, a first position sensor driver 217, and/or a first connection driver 218. there is.
  • the general operating system component 215 may include various device drivers corresponding to components included in the state detection circuit 150 .
  • the device driver included in the general operating system component 215 may be a system driver for driving the state detection circuit 150 in the REE 210 .
  • the first touch driver 216 may be a system driver for driving the touch screen 231 .
  • the first position sensor driver 217 may be a system driver for driving the position sensor (eg, GNSS module) 232 .
  • the first connection driver 218 may be a system driver for driving the connection chipset 233 .
  • the REE 210 may include various other components.
  • the REE 210 may include a REE communication agent (not shown) responsible for handling message communication between the blockchain application 211 and the trusted application 222 .
  • the blockchain application 211 may transfer a message from the REE communication agent to the TEE communication agent (not shown) of the TEE 220 using the REE API 213. At this time, the message may be implemented to be delivered only to the TEE 220 in terms of hardware.
  • the TEE 220 may store data requiring a relatively higher security level than the REE 210 in a secure environment and perform related operations.
  • the TEE 220 may operate on the application processor of the electronic device 100 and operate based on a reliable hardware structure determined during the manufacturing process of the electronic device 100 .
  • the TEE 220 can operate in the security area by dividing the application processor or memory into a general area and a security area.
  • the TEE 220 can be configured to operate software or hardware that requires security only in the security area.
  • the electronic device 100 may operate the TEE 220 through a physical change in hardware or a logical change in software.
  • the TEE 220 and the REE 210 can be separated from each other through hardware restrictions, and can operate separately from the software in the same hardware.
  • the TEE 220 includes a blockchain shared memory view 221, a trusted application 222, a secure memory 223, a TEE API 224, a TEE HAL 225, and/or a trusted operating system component (e.g., Trusted OS component) 226.
  • the blockchain shared memory view 221 may be a memory space that can access the blockchain shared memory 212 of the REE 210.
  • the trusted application 222 may include one or more applications capable of performing various functions requiring a high security level, such as digital rights management (DRM), security, payment, or use of biometric information. .
  • the trusted application 222 may perform an operation based on a request acquired from the REE 210 and may deliver a processing result of the operation to the REE 210 .
  • DRM digital rights management
  • the trusted application 222 may obtain a private key generation request from the blockchain application 211 and/or other applications.
  • the processor 130 may generate a key-pair including a private key and a public key by executing the trusted application 222 .
  • the trusted application 222 may store the generated private key in the secure memory 223 .
  • the trusted application 222 may generate a root seed and generate a private key and a public key based on the generated root seed.
  • the root seed may refer to a seed value randomly generated within the range conditions usable in a blockchain network.
  • the root seed is a master private key and a master chain code from a hash value generated through a hash-based message authentication code (HMAC)-secure hash algorithm (SHA) 512 algorithm function. ) can be created.
  • HMAC hash-based message authentication code
  • SHA secure hash algorithm
  • the left 256 bits can be used as a private key
  • the right 256 bits can be used as a chain code.
  • the public key can be obtained using the private key and the elliptic curve function.
  • the trusted application 222 may generate a root seed in various ways (eg, TRNG) and derive a key-pair from the root seed.
  • the trusted application 222 may obtain a condition setting request for an operation of performing an electronic signature with a private key from the blockchain application 211 .
  • the trusted application 222 blocks a request for setting a condition allowing the electronic device 100 to perform an electronic signature only within a certain range (eg, a radius of 500 m) from a designated location with respect to performing the electronic signature. It can be obtained through the chain application 211.
  • the trust application 222 may obtain a condition setting request through the blockchain application 211 to perform the electronic signature only in a state in which a designated external electronic device is connected to the electronic signature. there is.
  • the trusted application 222 may set a signing condition in response to a condition setting request and store the set signing condition in the secure memory 223 .
  • the trusted application 222 may obtain a condition setting request and setting information (eg, within a designated location radius of 500 m) through the blockchain application 211 .
  • the trusted application 222 may store a signing condition in the secure memory 223 based on the condition setting request and setting information.
  • the trusted application 222 may use a device driver included in the trusted operating system component 226 (eg, the second touch driver 227 ), state data may be acquired from the state detection circuit 150 through the second position sensor driver 228 and/or the second connection driver 229.
  • the trusted application 222 may set a signing condition based on the state data and setting information and store the set signing condition in the secure memory 223 .
  • the trusted application 222 may obtain an electronic signature request for a transaction generated from the blockchain application 211 .
  • the trusted application 222 is a device driver (eg, the second touch driver 227, the second position sensor driver 228) included in the trusted operating system component 226 in response to the request for signing the transaction and/or the state data may be obtained from the state detection circuit 150 through the second connection driver 229 .
  • the REE HAL 214 disables the device driver included in the general operating system component 215.
  • a control command may be transmitted to the general operating system component 215 .
  • the TEE HAL 225 issues a control command to activate the device driver included in the trusted operating system component 226 in response to a request for activating the device driver included in the trusted operating system component 226 from the trusted application 222.
  • the REE HAL 214 and the TEE HAL 225 may control device drivers included in the REE 210 and the TEE 220 not to be simultaneously connected to the state detection circuit 150 .
  • the trusted application 222 may determine whether a signature condition stored in the secure memory 223 is satisfied using state data acquired from the state detection circuit 150 .
  • the trusted application 222 may obtain location data indicating information about the current location of the electronic device 100 from the location sensor 232 using the second location sensor driver 228 .
  • the trusted application 222 may determine whether a signature condition stored in the secure memory 223 (eg, within a radius of 500 m from a designated location) is satisfied based on the acquired location data.
  • the trusted application 222 may transmit the determination result to the blockchain application 211.
  • the trusted application 222 may transmit information about whether the signing condition is satisfied or not satisfied to the blockchain application 211 .
  • the trusted application 222 may perform electronic signature on the transaction through the private key stored in the secure memory 223 in response to the signing condition being satisfied.
  • the trust application 222 may digitally sign the transaction using the private key as the signing condition is satisfied, using a digital signature algorithm (e.g., the Rivest, Shamir, Adleman (RSA) algorithm, and/or the elliptic curve (ECDSA) algorithm). It can be performed through digital signature algorithm)).
  • the trust application 222 may transmit the signature data generated by performing an electronic signature on the transaction with a private key to the blockchain application 211 .
  • the TEE API 224 may be an interface provided so that basic software of the TEE 220 can operate.
  • the trusted application 222 may receive various request messages from the REE 210 using the TEE API 224.
  • the trusted application 222 may receive a signature request and/or a signature condition setting request for a transaction generated from the blockchain application 211 using the TEE API 224 .
  • the TEE HAL 225 may perform an operation similar to that of the REE HAL 214.
  • the TEE HAL 225 may receive abstracted control commands or requests from the trusted application 222 and forward the received control commands or requests to a device driver included in the trusted operating system component 226.
  • the TEE HAL 225 may transfer an abstracted control command or request obtained from the trusted application 222 to operate in accordance with a device driver included in the trusted operating system component 226 .
  • the TEE HAL 225 transmits an acquired control command so that a device driver included in the trusted operating system component 226 is activated or deactivated according to an abstracted control command obtained from the trusted application 222.
  • the trusted operating system component 226 can be transmitted.
  • the device driver may transmit the received control command to the status detection circuit 150.
  • the TEE HAL 225 transmits the received command to the trusted operating system component 226 to activate a device driver included in the trusted operating system component 226. can be forwarded to
  • the TEE HAL 225 may transmit a control command obtained to activate or deactivate the device driver to the trusted operating system component 226.
  • the device driver may transmit a control command received from the TEE HAL 225 to the status detection circuit 150.
  • the TEE HAL 225 may transmit a control command to the device driver included in the trusted operating system component 226 to be activated according to the request of the trusted application 222 .
  • the TEE HAL 225 receives a control command abstracted from the trusted application 222 in response to the termination of an operation executed based on the trusted application 222 in the TEE 220, and causes the device driver to be deactivated. It may pass the acquired commands to the trusted operating system component 226 .
  • the trusted operating system component 226 may include a second touch driver 227 , a second position sensor driver 228 , and/or a second connection driver 229 .
  • the trusted operating system component 226 may include various device drivers corresponding to components included in the state detection circuit 150 .
  • the device driver included in the trusted operating system component 226 may be a system driver for driving the state detection circuit 150 in the TEE 220.
  • the second touch driver 227 may be a system driver for driving the touch screen 231 .
  • the second position sensor driver 228 may be a system driver for driving the position sensor (eg, GNSS module) 232 .
  • the second connection driver 229 may be a system driver for driving the connection chipset 233 .
  • the electronic device 100 includes one component (eg, a touch screen 231, a position sensor 232, and/or a connection chipset 233) for each type included in the state detection circuit 150.
  • the general operating system component 215 and the trusted operating system component 226 may be configured to be shared and used.
  • One configuration for each type included in the state detection circuit 150 cannot be used by the trusted operating system component 226 when used by the general operating system component 215, and conversely, when used by the trusted operating system component 226, the general operating system component (215) may be configured to be unavailable.
  • the electronic device 100 may switch and use the configuration included in the state detection circuit 150 through the REE HAL 214 and the TEE HAL 225.
  • the trusted operating system component 226 may include a TEE communication agent (not shown), a trusted core framework (not shown), a trusted function (not shown), and/or a trusted kernel (not shown).
  • the TEE communication agent may play a role of processing secure message communication between the blockchain application 211 and the trusted application 222 as a kind of framework function API.
  • the trusted core framework may provide various operating system functions such as scheduling, communication, and memory management for the trusted application 222 to perform.
  • the trusted function may provide a trusted function such as encryption, and the trusted kernel may be a kernel for driving the TEE 220 .
  • the TEE 220 is not limited to the illustrated configuration, and various components may be added or some components may be omitted.
  • the TEE 220 may include a TEE framework that provides various secure libraries.
  • the operation of the blockchain application 211 and/or the trusted application 222 is performed by the processor 130 executing the blockchain application 211 within the first execution environment (eg, REE 210), respectively.
  • the processor 130 may execute the trusted application 222 and operate within the execution and/or second execution environment (eg, the TEE 220). Accordingly, the operation of the blockchain application 211 and/or the trusted application 222 will be expressed as the operation of the processor 130 within the first execution environment and/or the operation of the processor 130 within the second execution environment, respectively.
  • FIG. 3 is a flowchart 300 illustrating an operation of performing an electronic signature on a transaction by an electronic device according to an exemplary embodiment.
  • the processor 130 requests a signature for a transaction generated through a first application (eg, a blockchain application 211) in a second execution environment (eg, the TEE 220). can be obtained.
  • a first application eg, a blockchain application 211
  • a second execution environment eg, the TEE 220
  • the processor 130 may obtain a transaction creation request from a user and/or other applications through the blockchain application 211 in the first execution environment (eg, REE 210). For example, the processor 130 may obtain a request to transfer a certain amount of money from a user to another user through the blockchain application 211 in the first execution environment. The processor 130 may generate a transaction in response to the transaction creation request. In one embodiment, the processor 130 may transmit a signature request for the generated transaction to the second application (eg, the trusted application 222).
  • the second application eg, the trusted application 222).
  • the processor 130 may obtain first state data through the state detection circuit 150 in response to the signature request.
  • the processor 130 may use a device driver (eg, a second touch driver 227, a second position sensor driver 228, and/or a second connection driver) included in the second execution environment in the second execution environment.
  • the first state data may be requested from the state detection circuit 150 using (229)).
  • the processor 130 may obtain first state data from the state detection circuit 150 using the device driver.
  • the processor 130 may obtain location data indicating location information of the current electronic device 100 by using the second location sensor driver 228 through the location sensor 232 in response to the signature request. .
  • the processor 130 responds to the signature request by using the second connection driver 229 through the connection chipset 233 to access information (eg, AP (access) of an external electronic device connected to the electronic device 100). It is possible to obtain connection data representing point) information).
  • access information eg, AP (access) of an external electronic device connected to the electronic device 100. It is possible to obtain connection data representing point) information).
  • the processor 130 may determine whether a signature condition stored in the second execution environment is satisfied based on the first state data in operation 305 . According to an embodiment, the processor 130 determines whether a signature condition stored in the secure memory 223 is satisfied based on the first state data acquired through the state detection circuit 150 in the second execution environment. can For example, the processor 130 may determine whether a signature condition (eg, within a radius of 500 m from a designated location) is satisfied based on the location data. For another example, the processor 130 may determine whether a signature condition (eg, when connected to a designated external electronic device) is satisfied based on the connection data.
  • a signature condition eg, when connected to a designated external electronic device
  • the processor 130 may generate signature data by performing an electronic signature on the transaction with a private key stored in the second execution environment based on the determination result in operation 307 .
  • the processor 130 may perform electronic signature on the transaction with the private key in response to the satisfaction of the signing condition.
  • the processor 130 may terminate the signing operation for the transaction when the signing condition is not satisfied.
  • the processor 130 may transmit a notification indicating that the signing condition for the transaction is not satisfied to the first application.
  • the processor 130 may transmit signature data to the first application in operation 309 .
  • the processor 130 may generate signature data by performing an electronic signature on the transaction with a private key stored in the secure memory 223, and transmit the generated signature data to the first application.
  • the first application may transmit the signature data to a blockchain network (eg, mainnet) in response to acquiring signature data including electronically signed transaction data from the processor 130 .
  • a blockchain network eg, mainnet
  • the operation of the processor 130 in the second execution environment may be performed by executing a second application (eg, the trusted application 222).
  • a second application eg, the trusted application 222.
  • FIG. 4 is a flowchart 400 for explaining an operation of performing an electronic signature based on a signature condition being satisfied by an electronic device according to an embodiment.
  • the electronic device 100 includes a blockchain application 440 (eg, the blockchain application 211 of FIG. 2 ), a trust application 450 (eg, the trust application 222 of FIG. 2 ), HAL 460 (hardware abstract layer), first driver 470 (eg, first touch driver 216, first position sensor driver 217, and/or first connection driver 218), second driver 480 (eg, second touch driver 227, second position sensor driver 228, and/or second connection driver 229) and/or state detection circuit 490 (eg, state detection in FIG. 1 ) circuit 150).
  • a blockchain application 440 eg, the blockchain application 211 of FIG. 2
  • a trust application 450 eg, the trust application 222 of FIG. 2
  • HAL 460 hardware abstract layer
  • first driver 470 eg, first touch driver 216, first position sensor driver 217, and/or first connection driver 21
  • second driver 480 eg, second touch driver 227, second position sensor driver 228, and/or second connection driver 229
  • the HAL 460 may include the REE HAL 214 and the TEE HAL 225 described with reference to FIG. 2 .
  • the operation of the HAL 460 may represent the operation of the REE HAL 214 or the TEE HAL 225 according to the execution environment.
  • the processor 130 operates in a first execution environment (eg, the REE 210 of FIG. 2 ) and performs an operation on the first driver 470
  • the HAL 460 operates on the REE It may indicate the operation of the HAL 214.
  • the processor 130 operates in the second execution environment (eg, the TEE 220 of FIG. 2) and performs an operation for the second driver 480
  • the operation of the HAL 460 is performed by the TEE HAL ( 225) can be shown.
  • the operation of the blockchain application 440 represents an operation performed by the processor 130 executing the blockchain application 440 in the first execution environment (eg, the REE 210 of FIG. 2 ).
  • the operation of the blockchain application 440 below may be expressed as the operation of the processor 130 in the first execution environment.
  • the operation of the trusted application 450 may represent an operation performed by the processor 130 executing the trusted application 450 in the second execution environment (eg, the TEE 220 of FIG. 2 ).
  • the operation of the trusted application 450 may be expressed as the operation of the processor 130 in the second execution environment.
  • the blockchain application 440 may generate a transaction.
  • the blockchain application 440 may send 401 a request to sign the transaction to the trusted application 450 .
  • the processor 130 may execute the blockchain application 440 to generate a transaction, and transmit a signature request for the generated transaction to the trusted application 450 .
  • the trusted application 450 in the second execution environment may request 402 activation of the second driver 480 to the HAL 460 in response to obtaining a request for signing the transaction.
  • the trusted application 450 may request activation of the second driver 480 to the HAL 460 in order to use the state detection circuit 490 .
  • the HAL 460 may deactivate 403 the first driver 470 in response to the request 402 . Also, the HAL 460 may activate 404 the second driver 480 . For example, the HAL 460 may control the first driver 470 to deactivate the first driver 470 . Also, the HAL 460 may control the second driver 480 so that the second driver 480 is activated.
  • the HAL 460 may request 405 the first state data to the second driver 480 .
  • the HAL 460 may request 405 first state data from the second driver 480 in response to the second driver activation request 402 from the trusted application 450 .
  • the HAL 460 may request 405 first state data from the second driver 480 to determine whether the signing condition for the transaction is satisfied.
  • the second driver 480 may request 406 first state data from the state detection circuit 490 in response to the request 405 .
  • the second driver 480 eg, the second position sensor driver 228, responds to the request 405 by sending a first signal to the state detection circuit 490 (eg, the position sensor 232).
  • the state detection circuit 490 may transmit 407 first state data in response to the request 406 .
  • the state detection circuit 490 may generate location data of the electronic device 100 by using a location sensor (eg, a GNSS sensor) for determining location information of the electronic device 100 .
  • state detection circuitry 490 may use a position sensor to generate latitude and/or longitude data.
  • the state detection circuit 490 may transmit the generated position data to the second driver 480 .
  • the state detection circuit 490 may generate connection data representing information on an external electronic device connected to the electronic device 100 .
  • the state detection circuit 490 may generate a name, identification data (eg, ID), and/or MAC address data of the external electronic device.
  • the state detection circuit 490 may transmit the generated connection data to the second driver 480 .
  • the second driver 480 may transmit ( 408 ) the first state data obtained from the state detection circuit 490 to the HAL 460 .
  • the HAL 460 may transmit 409 the first state data to the trusted application 450 .
  • the trusted application 450 may obtain first state data from the state detection circuit 490 .
  • the trusted application 450 may determine (410) whether the signature condition is satisfied based on the first state data. For example, the trusted application 450 may determine whether a signature condition stored in the second execution environment (eg, the secure memory 223) is satisfied based on the first state data. For example, the trusted application 450 may determine whether the electronic device 100 is located within a radius of 500 m from a designated location based on location data obtained from the state detection circuit 490 . For another example, the trusted application 450 may determine whether the electronic device 100 is connected to a designated external electronic device based on connection data obtained from the state detection circuit 490 .
  • the trusted application 450 may perform (411) an electronic signature on the transaction.
  • the trusted application 450 may generate signature data by performing an electronic signature on a transaction using a private key stored in the secure memory 223 .
  • the trusted application 450 may transmit (412) the signature data generated in operation 411 to the blockchain application 440.
  • the blockchain application 440 may transmit (413) the signed transaction to the blockchain network.
  • the blockchain application 440 may transmit electronically signed transaction data with the private key of the electronic device 100 to the blockchain network.
  • the electronic device 100 may add data related to signing conditions to an electronically signed transaction.
  • the electronic device 100 may add information on a signing condition and/or first state data to transaction data.
  • the electronic device 100 and/or blockchain nodes (e.g., external electronic devices) included in the blockchain network add first state data to transaction data and, if necessary, query block data to obtain a status data can be checked.
  • the electronic device 100 may create and utilize a smart contract that requires satisfaction of a signature condition as an essential requirement.
  • the electronic device 100 may create a smart contract that executes the smart contract when the signing condition is satisfied and terminates execution of the smart contract when the signing condition is not satisfied.
  • the blockchain application 440 may display a screen related to the execution of a transaction through the display 120 when the signing condition is satisfied.
  • the blockchain application 440 may display a screen including information about the generated transaction and/or a screen indicating that the signed transaction has been transmitted to the blockchain network through the display 120 .
  • the trusted application 450 may transmit (414) a notification indicating that the signing condition is not satisfied to the blockchain application 440.
  • the blockchain application 440 may display a screen indicating that the electronic signature for the transaction is not performed because the signing condition is not satisfied through the display 120. .
  • the trust application 450 and/or the blockchain application 440 may terminate the operation of the transaction in response to a signature condition not being satisfied.
  • FIG. 5 is a flowchart 500 illustrating an operation of setting a signature condition by an electronic device according to an exemplary embodiment.
  • the blockchain application 440 may obtain a request for setting a signing condition for a transaction from a user or another application.
  • the blockchain application 440 displays a user interface (UI) for setting signing conditions through the display 120, requests setting of signing conditions, and obtains setting information through a user and/or other applications. can do.
  • the blockchain application 440 may obtain a request for setting signature conditions that allows a signature to be performed only when the electronic device 100 is located within a radius of 500 m from a designated location.
  • the blockchain application 440 may obtain setting information including information on a designated location.
  • the blockchain application 440 may transmit (501) a request for setting information and conditions to the trusted application 450.
  • the block chain application 440 requests the setting of a signature condition so that a signature can be performed only when the electronic device 100 is located within a radius of 500 m from the designated position and setting information including information about the designated position. may be transmitted to the trusted application 450.
  • the trusted application 450 may set a signing condition based on setting information and a condition setting request.
  • the trusted application 450 may store the signing condition in the second execution environment (eg, TEE 220).
  • trusted application 450 may store signing conditions in secure memory 223 .
  • the trusted application 450 in the second execution environment may set a signature condition using the state detection circuit 490 .
  • the setting condition is a condition to perform a signature within a radius of 500 m from the location of the electronic device 100
  • the trusted application 450 provides location data (eg, second state data) of the electronic device 100.
  • the state detection circuit 490 can be used to obtain .
  • the trusted application 450 may request 502 to activate the second driver to the HAL 460 in response to obtaining the condition setting request.
  • the trusted application 450 may request activation of the second driver 480 to the HAL 460 in order to use the state detection circuit 490 .
  • the HAL 460 may deactivate 503 the first driver 470 in response to the request 502 . Also, the HAL 460 may activate 504 the second driver 480 . For example, the HAL 460 may control the first driver 470 to deactivate the first driver 470 . Also, the HAL 460 may control the second driver 480 so that the second driver 480 is activated.
  • the HAL 460 may request 505 second state data for condition setting to the second driver 480 .
  • the HAL 460 may request 505 second state data from the second driver 480 in response to the second driver activation request 504 from the trusted application 450 .
  • the second driver 480 may request 506 second state data from the state detection circuit 490 in response to the request 505 .
  • the second driver 480 eg, the second position sensor driver 228, responds to the request 505 by sending the state detection circuit 490 (eg, the position sensor 232) to the second driver 480 (eg, the position sensor 232).
  • the state detection circuit 490 may transmit 507 second state data in response to the request 506 .
  • the state detection circuit 490 may generate location data of the electronic device 100 by using a location sensor (eg, a GNSS sensor) for determining location information.
  • the state detection circuit 490 may transmit the generated position data to the second driver 480 .
  • the second driver 480 may transmit ( 508 ) the second state data obtained from the state detection circuit 490 to the HAL 460 .
  • the HAL 460 may transmit 509 the second state data to the trusted application 450 .
  • the trusted application 450 may obtain second state data from the state detection circuit 490 .
  • the trusted application 450 may set a signing condition based on the second state data and setting information (510). For example, when the setting information is to set a signature condition within a radius of 500 m from the location of the electronic device 100, the trusted application 450 provides second state data (eg, location data of the electronic device 100). Based on this, a position within a radius of 500 m can be calculated. According to an embodiment, the trusted application 450 may set the calculated location as a signing condition.
  • the trusted application 450 may request 511 confirmation of the signing condition to the blockchain application 440 .
  • the trusted application 450 may request 511 confirmation of the signature condition in order to confirm whether the set signing condition meets the intended signing condition.
  • the blockchain application 440 may transmit a confirmation result to the trusted application 450 in response to the request 511 (512).
  • the blockchain application 440 may display a screen related to a set signing condition through the display 120 in response to the request 511 .
  • the blockchain application 440 may obtain a response to a signature condition set through a user and/or other applications.
  • the blockchain application 440 displays a screen indicating a location within 500 m from the location of the electronic device 100 through the display 120 and displays a screen requesting confirmation from the user through the display 120. can do.
  • the blockchain application 440 may obtain a response to the screen and transmit the confirmation result to the trusted application 450 (512).
  • the trusted application 450 may store (513) the signing conditions.
  • the trusted application 450 may store the signing condition in the second execution environment (eg, the secure memory 223).
  • the electronic device 100 may omit and perform some of the operations described with reference to FIGS. 4 and 5 .
  • the electronic device 100 may add and perform some operations to the operations described with reference to FIGS. 4 and 5 .
  • FIG. 6 is a flowchart 600 illustrating an operation of displaying a screen indicating whether a signature condition is satisfied by an electronic device according to an exemplary embodiment.
  • the processor 130 may obtain a signature request for a transaction generated through the first application in the second execution environment.
  • the processor 130 may obtain a signature request for a transaction generated through a first application (eg, the blockchain application 211) in the second execution environment (eg, the TEE 220). .
  • the processor 130 may obtain a transaction creation request from a user and/or other applications through the blockchain application 211 in the first execution environment (eg, REE 210). For example, the processor 130 may obtain a request to transfer a certain amount of money from a user to another user through the blockchain application 211 in the first execution environment. The processor 130 may generate a transaction in response to the transaction creation request. In one embodiment, the processor 130 may transmit a signature request for the generated transaction to the second application (eg, the trusted application 222).
  • the second application eg, the trusted application 222).
  • the processor 130 may obtain first state data through the state detection circuit 150 in response to the signature request in operation 603 .
  • the processor 130 may use a device driver (eg, a second touch driver 227, a second position sensor driver 228, and/or a second connection driver) included in the second execution environment in the second execution environment.
  • the first state data may be requested from the state detection circuit 150 using (229)).
  • the processor 130 may obtain first state data from the state detection circuit 150 using the device driver.
  • the processor 130 may obtain location data indicating location information of the electronic device 100 by using the second location sensor driver 228 through the location sensor 232 in response to the signature request.
  • the processor 130 responds to the signature request by using the second connection driver 229 through the connection chipset 233 to provide information on an external electronic device currently connected to the electronic device 100 (eg, an AP ( Connection data representing access point information) may be obtained.
  • an AP Connection data representing access point information
  • the processor 130 may determine whether a signature condition stored in the second execution environment is satisfied based on the first state data in operation 605 . According to an embodiment, the processor 130 determines whether a signature condition stored in the secure memory 223 is satisfied based on the first state data acquired through the state detection circuit 150 in the second execution environment. can For example, the processor 130 may determine whether a signature condition (eg, within a radius of 500 m from a designated location) is satisfied based on the location data. For another example, the processor 130 may determine whether a signature condition (eg, when connected to a designated external electronic device) is satisfied based on the connection data.
  • a signature condition eg, when connected to a designated external electronic device
  • the processor 130 may transmit the determination result to the first application. For example, when the signature condition is satisfied, the processor 130 may generate signature data by performing an electronic signature on the transaction using the private key. Also, the processor 130 may transmit the generated signature data to the first application. For another example, when the signing condition is not satisfied, the processor 130 may transmit a notification indicating that the signing condition is not satisfied to the first application.
  • the processor 130 may display a result screen indicating a result of determination and information on the signature condition in the first execution environment.
  • the processor 130 may display a result screen indicating a determination result and a signing condition through the display 120 .
  • the processor 130 may control the display 120 to display a result screen indicating that the electronic signature for the transaction has been performed by satisfying a certain signing condition.
  • the processor 130 may control the display 120 to display a result screen indicating that the transaction has been executed.
  • the processor 130 may control the display 120 to display a result screen indicating which signature condition is not satisfied. For example, the processor 130 displays the display 120 to display a screen indicating that the location condition is not satisfied, a screen indicating that the connection condition is not satisfied, and/or a screen indicating that the remittance amount is limited at the designated location. can control.
  • FIG. 7 is a diagram illustrating a blockchain application execution UI according to an embodiment.
  • the electronic device 100 may display an execution screen of a blockchain application 211 through a display 120 .
  • the processor 130 may control the display 120 to display the location setting screen 710 and/or the connection setting screen 720 among execution screens of the blockchain application 211.
  • the processor 130 may display a condition setting screen corresponding to a user's input among execution screens of the blockchain application 211 through the display 120 .
  • the processor 130 as a signing condition for a transaction, provides type information (eg, first condition information 711, second condition information 711) including a visual object representing a location or a network. 2 condition information 721) may be displayed through the display 120.
  • type information eg, first condition information 711, second condition information 711
  • 2 condition information 721 may be displayed through the display 120.
  • the location setting screen 710 may be displayed on the display 120 when a location-based condition is selected as a signing condition for a transaction.
  • the location setting screen 710 may display type information of a signing condition for a transaction and may include first condition information 711 indicating that a location condition is selected.
  • the location setting screen 710 may include location selection information 712 for setting location conditions.
  • the processor 130 displays location selection information 712 for setting a location condition through the display 120 and obtains an input for the location selection information 712 from a user of the electronic device 100. can do.
  • the location selection information 712 may include visual objects corresponding to 30m, 50m, 100m and/or direct settings from a designated place.
  • the processor 130 may obtain a user input for the visual objects and set a location condition based on the acquired input.
  • the location selection information 712 is not limited and may include various pieces of information about a location to be selected as a signing condition for a transaction.
  • the processor 130 may display a map screen 713 corresponding to a location to be used as a signing condition for a transaction based on a user input for the location selection information 712 .
  • the processor 130 displays a map screen 713 including a visual object for the current location and a visual object for a location selected from the location selection information 712 (eg, a radius of 30 m) through the display 120.
  • the processor 130 is not limited to the map screen 713 and may display, through the display 120, various image information visually representing information about a location set as a signing condition for a transaction. there is.
  • the connection setting screen 720 may be displayed through the display 120 when a condition based on a device connected to the electronic device 100 is selected as a signing condition for a transaction.
  • the connection setting screen 720 may display type information of a signing condition for a transaction and include second condition information 721 indicating that a connection condition is selected.
  • the connection setting screen 720 may include a network setting condition 722 for setting connection conditions.
  • the processor 130 may display a network setting condition 722 for selecting a network setting condition for a device connected to the electronic device 100 as a signing condition for a transaction through the display 120 .
  • the processor 130 may obtain an input for the network setting condition 722 from the user of the electronic device 100 .
  • the network setting condition 722 may include visual objects corresponding to an AP name, an AP ID, and/or a media access control (Mac) address.
  • the processor 130 may obtain a user input for the visual objects and determine a network setting condition based on the acquired input.
  • the network setting condition 722 is not limited and may include various pieces of information for selecting a connection device to be selected as a signing condition for a transaction.
  • the processor 130 may display a connection device list 723 corresponding to a network setting to be used as a signing condition for a transaction based on a user input for the network setting condition 722 .
  • the processor 130 may display a connection device list 723 including a visual object for the selected network setting condition 722 through the display 120 .
  • the processor 130 is not limited to the connected device list 723, and displays various image information through the display 120 that visually indicates information on network conditions set as signing conditions for transactions. can do. For example, when a user input for the network setting condition 722 corresponds to an AP name, the processor 130 may display a connection device list 723 including an AP list through the display 120 . Also, the connection device list 723 may include an input field through which a user directly inputs a connection device.
  • FIG. 8 is a diagram illustrating a UI for setting a signature condition according to an exemplary embodiment.
  • a location condition determination screen 810 and a connection condition determination screen 820 appear according to the type of signature condition.
  • the processor 130 may display a UI for setting signature conditions through the display 120 .
  • the processor 130 may display the location condition determination screen 810 through the display 120 .
  • the location condition determination screen 810 may include a visual object representing map information 811 and location setting information 812 .
  • the connection condition determination screen 820 may include a visual object representing connection network information 821 and connection setting information 822 .
  • the processor 130 may display a screen for determining the signing condition through the display 120 in response to a request for setting the signing condition acquired through the blockchain application 211 .
  • the processor 130 may display a location condition determination screen 810 including map information 811 indicating a current location or a designated location.
  • the location condition determination screen 810 may include location setting information 812 .
  • the location condition determination screen 810 includes a phrase for guiding location condition determination, such as “Please select a point where the transaction signature is allowed, adjust the allowable radius on the map, and press OK” or similar phrases. It may include location setting information 812 to.
  • the processor 130 may obtain a response to the location setting information 812 through the display 120 and transmit a signature condition setting request and location setting information to the trusted application 222 .
  • the processor 130 displays a connection condition determination screen including connection network information 821 indicating information of a currently connected external electronic device. (820) can be displayed.
  • the connection condition determination screen 820 may include connection network information 821 and connection setting information 822 .
  • the connection condition determination screen 820 may include connection setting information 822 including a phrase “set the currently connected AP as a transaction signing condition” or a phrase similar thereto.
  • the processor 130 may obtain a response to the connection setting information 822 through the display 120 and transmit a signature condition setting request and setting information to the trusted application 222 .
  • the processor 130 performs an operation of determining the signature condition described with reference to FIG. 5 , and based on the second state data obtained from the state detection circuit 150, the location condition determination screen ( 810) and the connection condition determination screen 820 may be displayed through the display 120.
  • the processor 130 may set various signature conditions without being limited to the embodiments disclosed in this document. Also, the processor 130 may display various signature condition determination screens through the display 120 .
  • FIG. 9 is a diagram illustrating a transaction creation UI according to an exemplary embodiment.
  • 10 is a diagram illustrating a result UI of whether a signing condition is satisfied according to an embodiment.
  • a transaction creation screen 910 appears through the blockchain application 211 .
  • a first screen 920 for signing conditions based on location a second screen 930 for signing conditions based on connected external electronic devices, location and remittance
  • a third screen 940 for signing conditions based on the amount appears.
  • the processor 130 may execute the blockchain application 211 and display an execution screen of the blockchain application 211 through the display 120 .
  • the processor 130 may generate a transaction through the blockchain application 211 and display a transaction creation screen 910 including information on the generated transaction through the display 120 .
  • the transaction creation screen 910 may display a screen for sending blockchain currency (eg, 0.001 ethereum (ETH)).
  • the processor 130 may display a transaction generation screen 910 including information 911 on the transaction through the display 120.
  • the transaction information 911 may include a remittance amount, a remittance account, and/or a fee.
  • the processor 130 may perform an operation of determining whether the signature condition described with reference to FIG. 4 is satisfied. According to an embodiment, the processor 130 may display a screen as a result of determining whether the signature condition is satisfied through the display 120 .
  • the processor 130 may display a determination result screen through the display 120 based on the type of signature condition. For example, the processor 130 displays a first screen 920 for signature conditions based on location, a second screen 930 for signature conditions based on a connected external electronic device, and a screen 920 for signature conditions based on location and remittance amount. 3
  • the screen 940 may be displayed through the display 120 .
  • the processor 130 obtains first state data for determining whether the signature condition described with reference to FIG. 4 is satisfied through the state detection circuit 150, and the obtained first state data Based on this, it may be determined whether the signature conditions stored in the secure memory 223 are satisfied. According to an embodiment, in the second execution environment, the processor 130 may determine whether the signature condition is satisfied through the trusted application 222 and transmit the determination result to the blockchain application 211.
  • the processor 130 may display a determination result screen based on a determination result obtained through the blockchain application 211 in the first execution environment. For example, when the signing condition is satisfied, the processor 130 may display a screen indicating that the transaction has been executed or a screen indicating that the signing condition has been satisfied through the display 120 .
  • the processor 130 may display a screen for the unsatisfied signature condition through the display 120 .
  • the processor 130 may display a determination result screen for the signature condition based on the type of the signature condition.
  • the processor 130 may display the first screen 920 through the display 120 .
  • the first screen 920 may include first determination result information 921 .
  • the processor 130 "cannot perform transaction signing outside the specified location.”
  • the first determination result information 921 including a phrase similar thereto may be displayed through the display 120 .
  • the processor 130 may display the second screen 930 through the display 120 .
  • the second screen 930 may include second judgment result information 931 .
  • the processor 130 “cannot perform transaction signing unless it is connected to the designated AP.”
  • the second determination result information 931 including a phrase similar thereto may be displayed through the display 120 .
  • the processor 130 may display the third screen 940 through the display 120 .
  • the third screen 940 may include third judgment result information 941 .
  • the processor 130 "remittance amount outside the designated location is limited.”
  • third judgment result information 941 including a phrase similar thereto may be displayed through the display 120 .
  • the processor 130 is not limited to the display 120 and outputs information included in the screens shown in FIGS. 7 to 10 or similar information using various output devices (eg, speakers).
  • various output devices eg, speakers
  • an electronic device eg, the electronic device 100 of FIG. 1
  • a display eg, the display 120 of FIG. 1
  • a communication circuit eg, the communication circuit of FIG. 1 ( 140)
  • a memory for storing a first application executed in the first execution environment and a second application executed in the second execution environment (e.g., memory 110 of FIG. 1)
  • a state detection circuit e.g., FIG. 1 State detection circuit 150
  • the at least one processor in the second execution environment, requests a signature for a transaction generated through the first application. obtains first state data through the state detection circuit in response to the signature request, and determines whether a signature condition stored in the second execution environment is satisfied based on the first state data; Based on the determination result, signature data obtained by performing an electronic signature on the transaction with a private key stored in the second execution environment may be generated, and the signature data may be transmitted to the first application.
  • the at least one processor may display a result screen indicating whether the signature condition is satisfied based on the determination result in the first execution environment through the display.
  • the at least one processor in response to the signature condition not being satisfied, displays a result screen indicating that the signature condition is not satisfied through the display in the first execution environment; The operation for the transaction may be terminated.
  • the at least one processor obtains a setting request for setting the signing condition and setting information on the signing condition through the first application in the first execution environment, and the setting request and The setting information is transmitted to the second application, and in the second execution environment, according to the obtained setting request, the signing condition is set based on the setting information, and the signing condition is set in the second execution environment. can be saved
  • the at least one processor in the second execution environment obtains second state data according to the setting information from the state detection circuit, and the signature condition determines the setting information and the second state data. It can be set based on
  • the at least one processor transmits a confirmation request for the signing condition to the first application in the second execution environment, and uses the first application in the first execution environment.
  • a screen indicating a confirmation request may be displayed on the display, and a response to the confirmation request may be obtained using the first application.
  • the first execution environment and the second execution environment include a first driver and a second driver capable of controlling the state detection circuit, respectively, and the state detection circuit is received through the second driver.
  • the first state data may be obtained.
  • the first execution environment may include a general execution environment (rich/execution/environment (REE)), and the second execution environment may include a trusted execution environment (TEE).
  • REE rich/execution/environment
  • TEE trusted execution environment
  • the electronic device includes the second execution environment.
  • Obtaining a signature request for a transaction generated through a first application executed in the first execution environment obtaining first state data through a state detection circuit included in the electronic device in response to the signature request an operation of determining whether a signature condition stored in the second execution environment is satisfied based on the first state data; and based on a result of the determination, using a private key stored in the second execution environment for the transaction.
  • An operation of generating signature data by performing an electronic signature and an operation of transmitting the signature data to the first application may be included.
  • the operating method of the electronic device includes displaying a result screen indicating whether the signature condition is satisfied through a display included in the electronic device, in the first execution environment, based on a result of the determination. More actions may be included.
  • the operating method of the electronic device may include obtaining a setting request for setting the signing condition and setting information on the signing condition from a user through the first application in the first execution environment; An operation of transmitting the setting request and the setting information to a second application executed in the second execution environment, based on the setting request and the setting information obtained through the second application in the second execution environment; The method may further include setting signing conditions and storing the signing conditions in the second execution environment.
  • the setting of the signing condition may include obtaining second state data according to the setting information from the state detection circuit and determining the signing condition based on the setting information and the second state data. It may include an action to set.
  • the operation of setting the signing condition may include transmitting a confirmation request for the signing condition to the first application in the second execution environment, and through the first application in the first execution environment.
  • the method may further include displaying a screen representing the confirmation request through a display included in the electronic device and obtaining a response to the confirmation request.
  • the first execution environment and the second execution environment include a first driver and a second driver capable of controlling the state detection circuit, respectively, and the obtaining of the first state data comprises: It may be an operation of acquiring the first state data from the state detection circuit through the second driver in the second execution environment.
  • the operation of obtaining the first state data may include an operation of disabling the first driver and an operation of activating the second driver.
  • a display eg, the display 120 of FIG. 1
  • a communication circuit eg, the communication circuit 140 of FIG. 1
  • a memory for storing a first application executed in the first execution environment and a second application executed in the second execution environment (e.g., the memory 110 of FIG. 1), a state detection circuit (e.g., the state detection circuit of FIG. 1 ( 150)), at least one processor electrically connected to the state detection circuit, the memory, and the display, and executing the first application in the first execution environment or the second application in the second execution environment; (eg, the processor 130 of FIG.
  • the at least one processor obtains a signature request for a transaction generated through the first application in the second execution environment, and responds to the signature request to obtain first state data through the state detection circuit, determine whether a signature condition stored in the second execution environment is satisfied based on the first state data, and transmit the determination result to the first application and the display may be controlled to display a result screen indicating information on the determination result and the signing condition in the first execution environment.
  • the result screen in response to determining that the signing condition is not satisfied as a result of the determination, may include information on the unsatisfied signing condition.
  • the at least one processor generates signature data by performing an electronic signature on the transaction with a private key stored in the second execution environment based on a result of the determination in the second execution environment, and Signature data may be transmitted to the first application.
  • the at least one processor controls the display to display a setting screen for setting the signing condition through the first application in the first execution environment, and based on the setting screen from a user. to obtain a setting request and setting information for the signing condition, transmit the setting request and the setting information to the second application, and in the second execution environment, based on the setting information according to the setting request Signing conditions may be set, and the signing conditions may be stored in the second execution environment.
  • the at least one processor transmits a confirmation request for the signature condition to the first application in the second execution environment, and the confirmation through the first application in the first execution environment.
  • the display may be controlled to display a screen indicating a confirmation request, and a response to the confirmation request may be obtained from the user through the first application.
  • an electronic device 1001 communicates with an electronic device 1002 through a first network 1098 (eg, a short-range wireless communication network) or through a second network 1099. It may communicate with at least one of the electronic device 1004 or the server 1008 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 1001 may communicate with the electronic device 1004 through the server 1008.
  • a first network 1098 eg, a short-range wireless communication network
  • a second network 1099 e.g., a second network 1099. It may communicate with at least one of the electronic device 1004 or the server 1008 through (eg, a long-distance wireless communication network).
  • the electronic device 1001 may communicate with the electronic device 1004 through the server 1008.
  • the electronic device 1001 includes a processor 1020, a memory 1030, an input module 1050, an audio output module 1055, a display module 1060, an audio module 1070, a sensor module ( 1076), interface 1077, connection terminal 1078, haptic module 1079, camera module 1080, power management module 1088, battery 1089, communication module 1090, subscriber identification module 1096 , or an antenna module 1097.
  • a processor 1020 e.g, a memory 1030, an input module 1050, an audio output module 1055, a display module 1060, an audio module 1070, a sensor module ( 1076), interface 1077, connection terminal 1078, haptic module 1079, camera module 1080, power management module 1088, battery 1089, communication module 1090, subscriber identification module 1096 , or an antenna module 1097.
  • at least one of these components eg, the connection terminal 1078
  • some of these components eg, sensor module 1076,
  • the processor 1020 for example, executes software (eg, the program 1040) to cause at least one other component (eg, hardware or software component) of the electronic device 1001 connected to the processor 1020. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, processor 1020 transfers commands or data received from other components (eg, sensor module 1076 or communication module 1090) to volatile memory 1032. , process commands or data stored in the volatile memory 1032 , and store resultant data in the non-volatile memory 1034 .
  • software eg, the program 1040
  • processor 1020 transfers commands or data received from other components (eg, sensor module 1076 or communication module 1090) to volatile memory 1032. , process commands or data stored in the volatile memory 1032 , and store resultant data in the non-volatile memory 1034 .
  • the processor 1020 may include a main processor 1021 (eg, a central processing unit or an application processor) or a secondary processor 1023 (eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor).
  • a main processor 1021 eg, a central processing unit or an application processor
  • a secondary processor 1023 eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor.
  • NPU neural network processing unit
  • NPU neural processing unit
  • image signal processor sensor hub processor
  • communication processor e.g., a communication processor.
  • the auxiliary processor 1023 may use less power than the main processor 1021 or be set to be specialized for a designated function.
  • the auxiliary processor 1023 may be implemented separately from or as part of the main processor 1021 .
  • the secondary processor 1023 may, for example, take the place of the main processor 1021 while the main processor 1021 is inactive (eg sleep), or the main processor 1021 is active (eg application execution). ) state, together with the main processor 1021, at least one of the components of the electronic device 1001 (eg, the display module 1060, the sensor module 1076, or the communication module 1090) It is possible to control at least some of the related functions or states.
  • the auxiliary processor 1023 eg, image signal processor or communication processor
  • may be implemented as part of other functionally related components eg, camera module 1080 or communication module 1090). there is.
  • the auxiliary processor 1023 may include a hardware structure specialized for processing an artificial intelligence model.
  • AI models can be created through machine learning. Such learning may be performed, for example, in the electronic device 1001 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 1008).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited.
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted Boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples.
  • the artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
  • the memory 1030 may store various data used by at least one component (eg, the processor 1020 or the sensor module 1076) of the electronic device 1001 .
  • the data may include, for example, input data or output data for software (eg, the program 1040) and commands related thereto.
  • the memory 1030 may include a volatile memory 1032 or a non-volatile memory 1034 .
  • the program 1040 may be stored as software in the memory 1030 and may include, for example, an operating system 1042 , middleware 1044 , or an application 1046 .
  • the input module 1050 may receive a command or data to be used for a component (eg, the processor 1020) of the electronic device 1001 from an outside of the electronic device 1001 (eg, a user).
  • the input module 1050 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
  • the sound output module 1055 may output sound signals to the outside of the electronic device 1001 .
  • the sound output module 1055 may include, for example, a speaker or receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • a receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 1060 may visually provide information to the outside of the electronic device 1001 (eg, a user).
  • the display module 1060 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
  • the display module 1060 may include a touch sensor configured to detect a touch or a pressure sensor configured to measure the intensity of force generated by the touch.
  • the audio module 1070 may convert sound into an electrical signal or vice versa. According to an embodiment, the audio module 1070 acquires sound through the input module 1050, the sound output module 1055, or an external electronic device connected directly or wirelessly to the electronic device 1001 (eg: Sound may be output through the electronic device 1002 (eg, a speaker or a headphone).
  • the audio module 1070 acquires sound through the input module 1050, the sound output module 1055, or an external electronic device connected directly or wirelessly to the electronic device 1001 (eg: Sound may be output through the electronic device 1002 (eg, a speaker or a headphone).
  • the sensor module 1076 detects an operating state (eg, power or temperature) of the electronic device 1001 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 1076 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.
  • the interface 1077 may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device 1001 to an external electronic device (eg, the electronic device 1002).
  • the interface 1077 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal 1078 may include a connector through which the electronic device 1001 may be physically connected to an external electronic device (eg, the electronic device 1002).
  • the connection terminal 1078 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 1079 may convert electrical signals into mechanical stimuli (eg, vibration or motion) or electrical stimuli that a user can perceive through tactile or kinesthetic senses.
  • the haptic module 1079 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 1080 may capture still images and moving images. According to one embodiment, the camera module 1080 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 1088 may manage power supplied to the electronic device 1001 .
  • the power management module 1088 may be implemented as at least part of a power management integrated circuit (PMIC), for example.
  • PMIC power management integrated circuit
  • the battery 1089 may supply power to at least one component of the electronic device 1001 .
  • the battery 1089 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • the communication module 1090 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 1001 and an external electronic device (eg, the electronic device 1002, the electronic device 1004, or the server 1008). Establishment and communication through the established communication channel may be supported.
  • the communication module 1090 may include one or more communication processors that operate independently of the processor 1020 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 1090 is a wireless communication module 1092 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 1094 (eg, : a local area network (LAN) communication module or a power line communication module).
  • a wireless communication module 1092 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 1094 eg, : a local area network (LAN) communication module or a power line communication module.
  • a corresponding communication module is a first network 1098 (eg, a short-distance communication network such as Bluetooth, wireless fidelity direct, or infrared data association (IrDA)) or a second network 1099 (eg, It may communicate with the external electronic device 1004 through a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a telecommunications network such as a computer network (eg, a LAN or a WAN).
  • a computer network eg, a LAN or a WAN
  • These various types of communication modules may be integrated as one component (eg, a single chip) or implemented as a plurality of separate components (eg, multiple chips).
  • the wireless communication module 1092 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 1096 within a communication network such as the first network 1098 or the second network 1099.
  • subscriber information eg, International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the electronic device 1001 may be identified or authenticated.
  • the wireless communication module 1092 may support a 5G network after a 4G network and a next-generation communication technology, for example, NR access technology (new radio access technology).
  • NR access technologies include high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low latency (URLLC)). -latency communications)) can be supported.
  • the wireless communication module 1092 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
  • a high frequency band eg, mmWave band
  • the wireless communication module 1092 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beamforming, or large scale antenna may be supported.
  • the wireless communication module 1092 may support various requirements defined for the electronic device 1001, an external electronic device (eg, the electronic device 1004), or a network system (eg, the second network 1099).
  • the wireless communication module 1092 is configured to provide peak data rate (eg, 20 Gbps or more) for eMBB realization, loss coverage (eg, 164 dB or less) for mMTC realization, or URLLC for realizing URLLC.
  • peak data rate eg, 20 Gbps or more
  • loss coverage eg, 164 dB or less
  • URLLC realizing URLLC.
  • U-plane latency eg, downlink (DL) and uplink (UL) 0.5 ms or less, or round trip 1 ms or less
  • DL downlink
  • UL uplink
  • round trip 1 ms or less can be supported.
  • the antenna module 1097 may transmit or receive signals or power to the outside (eg, an external electronic device).
  • the antenna module 1097 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 1097 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 1098 or the second network 1099 is selected from the plurality of antennas by, for example, the communication module 1090. can be chosen A signal or power may be transmitted or received between the communication module 1090 and an external electronic device through the selected at least one antenna.
  • antenna module 1097 may be additionally formed as a part of the antenna module 1097 in addition to the radiator.
  • the antenna module 1097 may form a mmWave antenna module.
  • the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a lower surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band.
  • a first surface eg, a lower surface
  • a designated high frequency band eg, mmWave band
  • a plurality of antennas eg, array antennas
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • signal e.g. commands or data
  • commands or data may be transmitted or received between the electronic device 1001 and the external electronic device 1004 through the server 1008 connected to the second network 1099 .
  • Each of the external electronic devices 1002 or 1004 may be the same as or different from the electronic device 1001 .
  • all or part of operations executed in the electronic device 1001 may be executed in one or more external electronic devices among the external electronic devices 1002 , 1004 , or 1008 .
  • the electronic device 1001 when the electronic device 1001 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 1001 instead of executing the function or service by itself.
  • one or more external electronic devices may be requested to perform the function or at least part of the service.
  • One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver the execution result to the electronic device 1001 .
  • the electronic device 1001 may provide the result as at least part of a response to the request as it is or after additional processing.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 1001 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 1004 may include an internet of things (IoT) device.
  • Server 1008 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 1004 or server 1008 may be included in the second network 1099.
  • the electronic device 1001 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • Electronic devices may be devices of various types.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • a portable multimedia device e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a smart bracelet
  • first, second, or first or secondary may simply be used to distinguish that component from other corresponding components, and may refer to that component in other respects (eg, importance or order) is not limited.
  • a (eg, first) component is said to be “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively.”
  • the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeably interchangeable with terms such as, for example, logic, logic blocks, components, or circuits.
  • a module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • a storage medium eg, internal memory 1036 or external memory 1038
  • a machine eg, electronic device 1001
  • a processor eg, the processor 1020
  • a device eg, the electronic device 1001
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • the storage medium is a tangible device and does not contain a signal (e.g. electromagnetic wave), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.
  • a signal e.g. electromagnetic wave
  • 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.
  • a computer program product is distributed in the form of a machine-readable storage medium (e.g. CD-ROM (compact disc read only memory)), or through an application store (e.g. Play StoreTM) or on two user devices ( It can be distributed (eg downloaded or uploaded) online, directly between smart phones.
  • a machine-readable storage medium e.g. CD-ROM (compact disc read only memory)
  • an application store e.g. Play StoreTM
  • It can be distributed (eg downloaded or uploaded) online, directly between smart phones.
  • at least part of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium such as a manufacturer's server, an application store server, or a relay server's memory.
  • each component (eg, module or program) of the components described above may include a single object or a plurality of objects, and some of the multiple objects may be separately disposed in other components. .
  • one or more components or operations among the aforementioned components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg modules or programs
  • the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by a corresponding component of the plurality of components prior to the integration. .
  • operations performed by modules, programs, or other components are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.

Landscapes

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

Abstract

일 실시 예에 따른 전자 장치는, 디스플레이, 통신 회로, 제1 실행 환경에서 실행되는 제1 어플리케이션 및 제2 실행 환경에서 실행되는 제2 어플리케이션을 저장하는 메모리, 상태 검출 회로, 상태 검출 회로, 메모리, 통신 회로 및 디스플레이와 전기적으로 연결되고, 제1 실행 환경에서 제1 어플리케이션을 실행하거나 제2 실행 환경에서 제2 어플리케이션을 실행하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 제2 실행 환경에서, 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고, 서명 요청에 응답하여 상태 검출 회로를 통해 제1 상태 데이터를 획득하고, 제1 상태 데이터에 기초하여, 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고, 판단 결과에 기초하여 제2 실행 환경 내에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성하고, 서명 데이터를 제1 어플리케이션으로 전송할 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법
본 문서에서 개시되는 다양한 실시 예들은, 복수 개의 실행 환경을 운용하는 전자 장치의 기술에 관한 것이다.
네트워크에서 블록체인 네트워크(blockchain network)는 의사결정이 중앙 서버에 의해 수행되는 중앙화 네트워크(centralized network)와 구분되는 네트워크로, 탈중앙화 네트워크(decentralized network)로 표현될 수 있다. 블록체인 네트워크는, 블록체인 네트워크에 참여하는 노드들의 합의 알고리즘에 따라 의사결정이 수행되는 네트워크를 지칭할 수 있다.
블록체인 네트워크에 포함된 클라이언트 역할을 하는 전자 장치는, 블록체인 네트워크에 대한 공개키 및 개인키를 이용하여 트랜잭션에 대한 검증과 관련된 동작을 수행할 수 있다. 예를 들어, 전자 장치는 트랜잭션을 생성하고, 개인키를 이용하여 트랜잭션에 대한 전자 서명(digital signature)을 수행할 수 있다. 전자 서명은 전자 문서나 디지털 문서에 대한 변조 방지와 서명을 생성한 주체를 식별하기 위한 기술일 수 있다. 전자 장치는 트랜잭션에 대한 전자 서명을 수행함으로써, 트랜잭션에 대한 변조를 방지하고 트랜잭션의 생성 주체를 인증할 수 있다.
전자 장치는 전자 서명을 수행함에 있어서, 종자 값(예: root seed) 정보를 이용하여 생성된 개인키를 이용할 수 있다. 예를 들어, 전자 장치는 각각의 방식으로(예: true random number generator, TRNG) 종자 값(seed value)을 생성하고, 생성된 종자 값에 기반하여 개인키를 생성할 수 있다. 또한, 전자 장치는 개인키에 상응하는 공개키를 생성할 수 있다.
전자 장치는 보안 강화를 위해 복수의 보안 레벨을 가진 실행 환경을 운용할 수 있다. 예를 들어, 복수의 실행 환경은 제1 실행 환경(예: 일반 실행 환경(REE(rich execution environment))) 및 제2 실행 환경(예: 신뢰 실행 환경(TEE(trusted execution environment)) 또는 보안 실행 환경)을 포함할 수 있다. 블록체인 네트워크에서 사용되는 개인키는 제 3자에게 노출될 경우, 심각한 보안 문제를 야기할 수 있다. 따라서, 전자 장치는 개인키를 상대적으로 높은 보안 레벨이 요구되는 제2 실행 환경(예: TEE)내의 보안 영역에 저장할 수 있다. 또는, 전자 장치는 별도의 외부 장치(예: 콜드 월렛(cold wallet), 및/또는 하드웨어 월렛(hardware wallet))에 개인키를 저장할 수 있다.
별도의 영역에 개인키를 저장한 전자 장치는 블록체인 네트워크에서 개인키의 이용이 필요할 때마다 상기 영역에 접근하여(예: 보안 영역에 요청 또는 외부 장치 연결) 개인키를 이용한 동작(예: 전자 서명)을 수행할 수 있다. 다만, 전자 장치는 제2 실행 환경(예: TEE)에서 개인키를 이용한 동작을 수행하는 경우, 동작에 있어서 다양한 조건을 활용할 수 없는 단점이 있다.
일 실시 예에 따른 전자 장치는, 디스플레이, 통신 회로, 제1 실행 환경에서 실행되는 제1 어플리케이션 및 제2 실행 환경에서 실행되는 제2 어플리케이션을 저장하는 메모리, 상태 검출 회로, 상태 검출 회로, 메모리, 통신 회로 및 디스플레이와 전기적으로 연결되고, 제1 실행 환경에서 제1 어플리케이션을 실행하거나 제2 실행 환경에서 제2 어플리케이션을 실행하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 제2 실행 환경에서, 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고, 서명 요청에 응답하여 상태 검출 회로를 통해 제1 상태 데이터를 획득하고, 제1 상태 데이터에 기초하여, 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고, 판단 결과에 기초하여 제2 실행 환경 내에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성하고, 서명 데이터를 제1 어플리케이션으로 전송할 수 있다.
일 실시 예에 따르면, 제1 실행 환경 및 제2 실행 환경을 포함하는 복수의 실행 환경을 운용 가능한 전자 장치에 있어서, 전자 장치는 제2 실행 환경에서, 제1 실행 환경에서 실행되는 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하는 동작, 서명 요청에 응답하여 전자 장치에 포함된 상태 검출 회로를 통해 제1 상태 데이터를 획득하는 동작, 제1 상태 데이터에 기초하여, 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하는 동작, 판단 결과에 기초하여, 제2 실행 환경 내에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행하여 서명 데이터를 생성하는 동작 및 서명 데이터를 제1 어플리케이션으로 전송하는 동작을 포함할 수 있다.
일 실시 예에 따르면, 전자 장치는, 디스플레이, 통신 회로, 제1 실행 환경에서 실행되는 제1 어플리케이션 및 제2 실행 환경에서 실행되는 제2 어플리케이션을 저장하는 메모리, 상태 검출 회로, 상태 검출 회로, 메모리 및 디스플레이와 전기적으로 연결되고, 제1 실행 환경에서 제1 어플리케이션을 실행하거나 제2 실행 환경에서 제2 어플리케이션을 실행하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 제2 실행 환경에서, 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고, 서명 요청에 응답하여 상태 검출 회로를 통해 제1 상태 데이터를 획득하고, 제1 상태 데이터에 기초하여, 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고, 판단 결과를 제1 어플리케이션으로 전송하고, 제1 실행 환경에서 판단 결과 및 서명 조건에 대한 정보를 나타내는 결과 화면을 표시하도록 디스플레이를 제어할 수 있다.
일 실시 예에 따른 컴퓨터로 판독 가능한 비일시적 기록 매체는, 실행 시에 전자 장치가 제2 실행 환경에서, 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고, 서명 요청에 응답하여 상태 검출 회로를 통해 제1 상태 데이터를 획득하고, 제1 상태 데이터에 기초하여, 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고, 판단 결과에 기초하여 제2 실행 환경 내에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성하고, 서명 데이터를 제1 어플리케이션으로 전송하도록 하는 컴퓨터 프로그램을 기록한 것일 수 있다.
일 실시 예에 따른 컴퓨터로 판독 가능한 비일시적 기록 매체는, 실행 시에 전자 장치가 제2 실행 환경에서, 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고, 서명 요청에 응답하여 상태 검출 회로를 통해 제1 상태 데이터를 획득하고, 제1 상태 데이터에 기초하여, 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고, 판단 결과를 제1 어플리케이션으로 전송하고, 제1 실행 환경에서 판단 결과 및 서명 조건에 대한 정보를 나타내는 결과 화면을 디스플레이하도록 하는 컴퓨터 프로그램을 기록한 것일 수 있다.
본 문서에 개시되는 다양한 실시 예에 따르면, 사용자가 상기 제2 실행 환경(예: TEE) 내에 저장된 데이터를 사용하는 경우 또는 상기 제2 실행 환경에서 동작을 수행하는 경우에 대하여 조건을 설정할 수 있도록 하는 전자 장치 또는 방법이 제공될 수 있다. 예를 들어, 전자 장치의 사용자는 전자 장치가 지정된 위치에서만 상기 제2 실행 환경 내에 저장된 데이터를 사용할 수 있도록 조건을 설정할 수 있다. 또는, 전자 장치의 사용자는 전자 장치가 지정된 위치에서만 상기 제2 실행 환경에서 동작을 수행하도록 조건을 설정할 수 있다.
다양한 실시 예에 따르면, 전자 장치는 상기 제2 실행 환경 내에 저장된 데이터를 사용하는 경우, 지정된 조건이 만족되는 경우에만 사용할 수 있도록 제한할 수 있다. 예를 들어, 전자 장치는 개인키를 이용한 트랜잭션에 대한 서명을 수행하는 경우, 지정된 조건이 만족되는 경우에만 서명 동작을 수행하도록 제한할 수 있다. 또는, 전자 장치는 상기 제2 실행 환경 환경에서 동작을 수행하는 경우, 지정된 조건이 만족되는 경우에만 수행되도록 서명 동작을 제한할 수 있다.
다양한 실시 예들에 따라, 전자 장치의 사용자는, 상기 제1 실행 환경과 비교하여 높은 보안 레벨이 요구되는 상기 제2 실행 환경을 이용하는 것에 더하여 사용자가 설정한 조건이 만족되는 경우에만 동작을 수행하도록 제한함으로써 상기 제2 실행 환경을 이용하는 것 이상의 보안성을 획득할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 일 실시 예에 따른 전자 장치의 블록도이다.
도 2는 일 실시 예에 따른 전자 장치의 실행 환경을 나타내는 도면이다.
도 3은 일 실시 예에 따른 전자 장치가 트랜잭션에 대하여 전자 서명을 수행하는 동작을 설명하기 위한 흐름도이다.
도 4는 일 실시 예에 따른 전자 장치가 서명 조건이 만족됨에 기반하여 전자 서명을 수행하는 동작을 설명하기 위한 흐름도이다.
도 5는 일 실시 예에 따른 전자 장치가 서명 조건을 설정하는 동작을 설명하기 위한 흐름도이다.
도 6은 일 실시 예에 따른 전자 장치가 서명 조건의 만족 여부를 나타내는 화면을 표시하는 동작을 설명하기 위한 흐름도이다.
도 7은 일 실시 예에 따른 블록체인 어플리케이션 실행 UI를 나타내는 도면이다.
도 8은 일 실시 예에 따른 서명 조건의 설정 UI를 나타내는 도면이다.
도 9는 일 실시 예에 따른 트랜잭션의 생성 UI를 나타내는 도면이다.
도 10는 일 실시 예에 따른 서명 조건의 만족 여부의 결과 UI를 나타내는 도면이다.
도 11은 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.
도 1은 일 실시 예에 따른 전자 장치의 블록도이다.
도 1을 참조하면, 전자 장치(100)는 메모리(110), 디스플레이(120), 프로세서(130), 통신 회로(140), 상태 검출 회로(150) 또는 이들의 조합을 포함할 수 있다. 다양한 실시 예에서, 전자 장치(100)는 도 1에 도시된 구성 요소 외에 추가 구성 요소를 포함하거나, 도 1에 도시된 구성 요소 중에서 일부를 생략할 수도 있다.
도 1은 일 실시 예에 따른 전자 장치(100)의 구성요소를 설명하기 위한 것이며, 그 표현에 한정되지 아니한다. 메모리(110)는 데이터를 저장하는 저장 수단으로 언급될 수 있다. 디스플레이(120)는 출력 수단으로 언급될 수 있다. 프로세서(130)는 데이터를 처리하는 처리 수단으로 언급될 수 있다. 통신 회로(140)는 다른 장치와 통신을 수행하는 통신 수단으로 언급될 수 있다. 상태 검출 회로(150)는 상태를 검출하기 위한 상태 검출 수단으로 언급될 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 복수 개의 실행 환경 중 적어도 하나에 기초하여 운용될 수 있다. 전자 장치(100)는 복수 개의 실행 환경 중 적어도 하나에 기초하여 적어도 하나의 어플리케이션을 실행할 수 있다. 예를 들어, 복수의 실행 환경은 제1 실행 환경(예: REE(rich execution environment)) 및 제2 실행 환경(예: TEE(trusted execution environment))을 포함할 수 있다. 일 실시 예에 따르면, 제2 실행 환경(예: TEE)은 제1 실행 환경(예: REE)의 보안 레벨과 다른(예: 높은) 보안 레벨을 가지는 실행 환경일 수 있다. 전자 장치(100)의 복수 개의 실행 환경은 도 2를 참조하여 자세히 후술된다.
일 실시 예에 따르면, 메모리(110)는 프로세서(130)가 실행 시에 전자 장치(100)의 동작을 수행하기 위해 데이터를 처리하거나 전자 장치(100)의 구성요소를 제어하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
일 실시 예에 따르면, 메모리(110)는 복수 개의 실행 환경 각각에서 실행되는 복수 개의 어플리케이션을 포함할 수 있다. 예를 들어, 메모리(110)는 제1 실행 환경에서 실행되는 적어도 하나의 블록체인 어플리케이션을 포함할 수 있다. 블록체인 어플리케이션은 블록체인 관련 동작을 수행하는 블록체인 어플리케이션 및/또는 블록체인 네트워크에서 거래 관련 동작을 수행하는 지갑 어플리케이션을 포함할 수 있다. 블록체인 어플리케이션은 프로세서(130)가 실행 시에 블록체인과 관련된 동작을 수행하기 위해 전자 장치(100)의 구성요소를 제어하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 메모리(110)는 전자 장치(100)의 사용자 또는 프로세서(130)에 의해 서버를 통해 다운로드된 블록체인 어플리케이션을 저장할 수 있다. 일 실시 예에서, 블록체인 지갑과 관련된 어플리케이션은 블록체인 네트워크에서 사용되는 계좌를 개설하고, 가상화폐를 송금하거나 입금하는 기능을 포함하는 블록체인과 관련된 기능을 수행할 수 있다.
일 실시 예에 따르면, 메모리(110)는 높은 보안 레벨이 요구되는 보안 메모리 영역을 포함할 수 있다. 예를 들어, 메모리(110)는 하드웨어적으로 별도의 보안 메모리를 포함하거나 논리적으로 메모리(110)의 일부 영역을 보안 메모리 영역으로 구분할 수 있다. 일 실시 예에 따르면, 보안 메모리 영역은 제2 실행 환경 내에 포함될 수 있다. 보안 메모리 영역은 높은 보안 레벨이 요구되는 개인키를 저장할 수 있다.
일 실시 예에 따르면, 메모리(110)는 제2 실행 환경에서 실행되는 적어도 하나의 신뢰 어플리케이션(trusted application, TA)을 포함할 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션은 높은 보안 레벨을 가진 데이터를 활용하는 동작을 수행할 수 있다. 예를 들어, 신뢰 어플리케이션은 전자 장치(100)의 개인키를 이용하여 전자 서명을 수행할 수 있다. 예를 들어, 신뢰 어플리케이션은 제1 실행 환경에서 실행되는 블록체인 어플리케이션으로부터 트랜잭션에 대한 서명 요청을 획득하고, 서명 요청에 응답하여 개인키로 트랜잭션에 대한 전자 서명을 수행할 수 있다.
일 실시 예에 따르면, 디스플레이(120)는 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼)를 표시할 수 있다. 일 실시 예에 따르면, 디스플레이(120)는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이 또는 유기 발광 다이오드(OLED) 디스플레이를 포함할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 블록체인 어플리케이션과 관련된 각종 컨텐츠를 디스플레이(120)를 통해 표시할 수 있다. 예를 들어, 프로세서(130)는 블록체인 어플리케이션의 다양한 실행 화면을 디스플레이(120)를 통해 표시할 수 있다. 블록체인 어플리케이션의 실행 화면은 트랜잭션에 대한 정보를 포함하는 화면, 및/또는 트랜잭션에 대한 전자 서명과 관련된 정보를 포함하는 화면을 포함할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 디스플레이(120)를 통해 트랜잭션에 대한 전자 서명을 수행하기 위한 서명 조건을 설정하기 위한 화면을 표시하고, 서명 조건과 사용자 입력을 수신할 수 있다. 예를 들어, 프로세서(130)는 서명 조건을 설정하기 위한 조건 정보를 포함하는 화면을 디스플레이(120)를 통해 표시하고, 디스플레이(120)를 통해 사용자로부터 서명 조건을 설정하는 것과 관련된 입력을 획득할 수 있다. 다양한 실시 예들에 따라 디스플레이(120)에 표시되는 화면에 대한 내용은 도 7 내지 도 10를 참조하여 후술된다.
일 실시 예에 따르면, 프로세서(130)는 메모리(110), 디스플레이(120) 및/또는 통신 회로(140)와 전기적으로 또는 작동적으로(operatively) 연결될 수 있다. 일 실시 예에 따르면, 프로세서(130)는 메모리(110)에 저장된 인스트럭션들을 이용하여 전자 장치(100)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(micro controller unit), 센서 허브, 보조프로세서(supplementary processor), 통신프로세서(communication processor), 어플리케이션 프로세서(application processor), ASIC(application specific integrated circuit), 및 FPGA(field programmable gate arrays) 중 적어도 하나를 포함할 수 있으며, 복수의 코어를 가질 수 있다.
일 실시 예에 따르면, 프로세서(130)는 복수 개의 실행 환경에서 각각의 실행 환경에 포함된 어플리케이션을 실행할 수 있다. 예를 들어, 프로세서(130)는 제1 실행 환경(예: REE)에서 메모리(110)에 저장된 블록체인 어플리케이션을 통해 블록체인과 관련된 동작을 수행할 수 있다. 또한, 프로세서(130)는 제2 실행 환경(예: TEE)에서 메모리(110)에 저장된 신뢰 어플리케이션을 통해 블록체인과 관련된 동작을 수행할 수 있다. 일 실시 예에 따르면, 프로세서(130)가 블록체인과 관련된 동작을 수행하는 것은, 블록체인 어플리케이션 또는 신뢰 어플리케이션을 통해 실행되는 것으로 이해될 수 있다.
일 실시 예에 따르면, 통신 회로(140)는 외부 장치와 연결되어 데이터를 송수신하도록 구성될 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 통신 회로(140)를 통해 블록체인 네트워크에 연결될 수 있다. 프로세서(130)는 개인키를 이용하여 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성하고, 생성된 서명 데이터를 통신 회로(140)를 통해 연결된 블록체인 네트워크로 전송할 수 있다. 블록체인 네트워크로 전송된 서명 데이터에 기초하여, 블록체인 네트워크에 포함된 블록체인 노드들을 통해 트랜잭션에 대한 검증 동작 및/또는 합의 동작이 수행될 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 상태 검출 회로(150)를 포함할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 상태 검출 회로(150)를 통해 트랜잭션에 대한 서명 조건을 판단 및/또는 설정하기 위한 상태 데이터를 획득할 수 있다.
일 실시 예에서, 상태 검출 회로(150)는 서명 조건과 관련된 다양한 상태 데이터를 생성할 수 있다. 예를 들어, 상태 검출 회로(150)는 위치 정보를 판단하기 위한 위치 센서(예: GNSS(global navigation satellite system) 모듈)를 이용하여 전자 장치(100)의 위치 데이터를 생성할 수 있다. 다양한 실시 예들에 따라, 위치 센서는 표현에 제한되지 않고 전자 장치(100)의 위치를 판단하기 위한 다양한 구성을 나타낼 수 있다. 일 실시 예에 따라, 상태 검출 회로(150)가 위치 정보를 판단하기 위한 구성인 경우, 상태 검출 회로(150)는 통신 회로(140)에 포함될 수 있다. 또한, 상태 검출 회로(150)는 터치 입력을 획득하는 센서(예: 터치 센서)를 이용하여 전자 장치(100)로 획득되는 터치 데이터를 생성할 수 있다. 또한, 상태 검출 회로(150)는 전자 장치(100)와 다양한 네트워크 연결(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association))을 형성한 외부의 전자 장치에 대한 연결 데이터를 생성할 수 있다. 일 실시 예에 따르면, 상태 검출 회로(150)는 생성된 상태 데이터를 전자 장치(100)의 다른 구성 요소로 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 제2 실행 환경에서, 블록체인 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득할 수 있다. 예를 들어, 프로세서(130)는 제1 실행 환경에서 블록체인 어플리케이션을 실행하고, 사용자, 블록체인 어플리케이션 또는 다른 어플리케이션을 통해 트랜잭션의 생성 요청을 획득하고, 블록체인 어플리케이션을 통해 트랜잭션을 생성할 수 있다. 예를 들어, 블록체인 어플리케이션을 통해 외부 전자 장치의 사용자의 계좌로 일정 금액의 가상 화폐를 송금하거나 입금하는 트랜잭션이 생성될 수 있다. 일 실시 예에서, 프로세서(130)는 블록체인 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 제2 실행 환경으로 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 제2 실행 환경에서, 서명 요청에 응답하여, 상태 검출 회로(150)를 통해 제1 상태 데이터를 획득할 수 있다. 예를 들어, 프로세서(130)는 제2 실행 환경에서, 상태 검출 회로(150)를 통해 전자 장치(100)의 현재 위치에 대한 정보를 나타내는 위치 데이터, 전자 장치(100)의 터치 센서를 통해 획득되는 터치 데이터 및/또는 외부 전자 장치와 연결 정보를 나타내는 연결 데이터를 획득할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 상태 검출 회로(150)를 통해 획득한 제1 상태 데이터가 제2 실행 환경 내에 저장된 서명 조건을 만족하는지 판단할 수 있다. 일 실시 예에 따르면, 제2 실행 환경 내에 포함된 보안 메모리 영역은, 전자 서명을 수행하기 위한 조건에 대한 서명 조건을 저장할 수 있다. 예를 들어, 제2 실행 환경은 전자 서명을 수행하기 위한 조건을 설정하고, 설정된 서명 조건을 저장할 수 있다. 서명 조건을 설정하는 동작은 도 5를 참조하여 후술된다.
일 실시 예에 따르면, 프로세서(130)는 상태 검출 회로(150)를 통해 획득한 제1 상태 데이터가 서명 조건을 만족하는지 판단할 수 있다. 예를 들어, 프로세서(130)는 위치 데이터를 통해 전자 장치(100)의 위치가 지정된 위치 범위에 포함되는지 여부를 판단할 수 있다. 또는 프로세서(130)는 연결 데이터를 통해 전자 장치(100)와 연결된 외부 전자 장치가 지정된 외부 전자 장치인지 여부를 판단할 수 있다. 프로세서(130)는 설명된 예시에 제한되지 않고 상태 검출 회로(150)를 통해 획득되는 다양한 종류의 상태 데이터를 이용하여 제2 실행 환경 내에 저장된 다양한 종류의 서명 조건을 만족하는지 여부를 판단할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 서명 조건을 만족하는지 여부를 판단한 판단 결과에 기초하여 제2 실행 환경 내에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성할 수 있다. 예를 들어, 프로세서(130)는 제1 상태 데이터에 기초하여 서명 조건이 만족되는 것으로 판단된 경우, 제2 실행 환경 내에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행할 수 있다. 따라서, 개인키로 전자 서명된 트랜잭션을 포함하는 서명 데이터가 생성될 수 있다.
일 실시 예에 따르면, 프로세서(130)는 생성된 서명 데이터를 제1 실행 환경 내의 블록체인 어플리케이션으로 전달할 수 있다. 예를 들어, 프로세서(130)는 제1 실행 환경으로 생성된 서명 데이터를 전달할 수 있다. 프로세서(130)는 제1 실행 환경에서 블록체인 어플리케이션을 이용하여 개인키로 전자 서명된 트랜잭션을 포함하는 서명 데이터를 블록체인 네트워크로 전달할 수 있다.
도 2는 일 실시 예에 따른 전자 장치의 실행 환경을 나타내는 도면이다.
도 2를 참조하면, 전자 장치(100)에서 운용되는 복수 개의 실행 환경이 나타난다. 예를 들어, 전자 장치(100)는 제1 실행 환경(예: REE(210)) 및 제2 실행 환경(예: TEE(220))으로 운용될 수 있다. 다만, 전자 장치(100)는 본 문서에 개시된 다양한 실시 예들에 제한되지 않고 제1 실행 환경 및 제2 실행 환경 외에 다른 보안 레벨을 가진 추가적인 실행 환경(예: 제 3 실행 환경) 또는 그 밖의 다른 실행 환경을 포함할 수 있다. 이하 제1 실행 환경은 REE(210), 제2 실행 환경은 TEE(220)로 표현될 수 있다. 다만, 표현에 제한되지 않고 REE(210)는 일반 실행 환경에 대응될 수 있고, TEE(220)는 일반 실행 환경 보다 보안 레벨이 높은 실행 환경에 대응될 수 있다.
다양한 실시 예들에 따라, 도 2에 도시된 예에 제한되지 않고, 다양한 방법을 통해 REE(210) 및 TEE(220)가 운용될 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 REE(210) 및 TEE(220)로 운용될 수 있다. 일 실시 예에 따르면, TEE(220)는 별도의 회로로 구현될 수 있고, 별도의 프로세서를 포함할 수 있다. TEE(220)는 탈착 가능한 스마트 칩, 시큐어 디지털(secure digital, SD) 카드 내에 존재하거나, 또는 전자 장치(100)의 고정 칩 내에 내장된 내장형 보안 요소(embedded secure element, eSE)를 포함할 수 있다. 또한, TEE(220)는 전자 장치(100)의 운영 체제(예: android OS)와 다른 운영 체제(예: trusted OS 컴포넌트(226))로 구동될 수 있다. 예를 들어, JCOP(java card open platform) 운영 체제를 기반으로 동작할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 하드웨어 적으로 하나의 프로세서(130) 및 하나의 메모리(110)를 REE(210)와 TEE(220)로 구분하여 사용(예: ARM의 트러스트 존(trust zone))할 수 있다. 예를 들어, 전자 장치(100)는 하나의 프로세서(130)를 시간적으로 분리하여 REE(210)와 TEE(220)를 구분하여 사용할 수 있다. 또한, 전자 장치(100)는 메모리(110)를 REE(210)에서 접근 가능한 영역 및 TEE(220)에서 접근 가능한 영역으로 구분하여 사용할 수 있다. 그 밖에 전자 장치(100)의 다양한 구성 요소들이 REE(210) 영역과 TEE(220) 영역으로 구분되어 사용될 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 REE(210)를 운용하기 위한 프로세서와 TEE(220)를 운용하기 위한 프로세서가 온-칩(on-chip) 형태로 구현하고, 각각을 별도의 프로세싱 코어 셋으로 구현할 수 있다. 일 실시 예에서, TEE(220)를 위한 프로세서는 프로세서(130)와 동일 또는 유사한 구성을 가질 수 있다.
일 실시 예에 따르면, REE(210)를 위한 프로세서와 TEE(220)를 위한 프로세서가 하드웨어적으로 별도의 칩으로 구현되어 전자 장치(100)는 분리된 칩을 포함할 수 있다. 예를 들어, 하나의 단일 칩(system on chip, On-Soc)은 REE(210)를 운용하고, 단일 칩(On-Soc)의 외부에 구비된 하나 이상의 외부 보안 코어프로세서(external security co-processor)가 TEE(220)를 운용하도록 설정될 수 있다.
일 실시 예에 따르면, REE(210)는 블록체인 어플리케이션(211) 및 그 밖에 다양한 어플리케이션(미도시), 블록체인 공유 메모리(212), REE API(application programming interface)(213), REE HAL(hardware abstract layer)(214) 및/또는 일반 운영체제 컴포넌트(215)를 포함할 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(211)은 블록체인 관련 동작을 수행하는 어플리케이션일 수 있다. 예를 들어, 블록체인 어플리케이션은 지갑 어플리케이션일 수 있다. 블록체인 어플리케이션은 예를 들어, 블록체인 지갑과 관련된 어플리케이션은 블록체인 네트워크에서 사용되는 계좌를 개설하고, 가상화폐를 송금하거나 입금하는 기능을 포함하는 블록체인과 관련된 기능을 수행할 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(211)은 트랜잭션을 생성하고, 생성된 트랜잭션에 대한 서명 요청을 신뢰 어플리케이션(222)으로 전송할 수 있다. 또한, 블록체인 어플리케이션(211)은 신뢰 어플리케이션(222)으로부터 전자 서명된 트랜잭션 데이터를 포함하는 서명 데이터를 획득함에 응답하여, 서명 데이터를 블록체인 네트워크(예: mainnet)로 전송할 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(211)은 서명 조건을 설정하기 위한 요청을 사용자 또는 다른 어플리케이션으로부터 획득하고, 조건 설정 요청 및 조건에 대한 정보를 포함하는 설정 정보를 신뢰 어플리케이션(222)으로 전송할 수 있다.
또한, 다양한 어플리케이션(예: 클라이언트 어플리케이션(client application))은 전화, 메시지, 결제, 알람, 브라우저 및/또는 카메라를 포함하는 다양한 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다.
일 실시 예에 따르면, REE(210)는 블록체인 공유 메모리(block chain shared memory)(212)를 포함할 수 있다. 프로세서(130)는 블록체인 공유 메모리(212)를 이용하여 TEE(220)의 블록체인 공유 메모리 뷰(block chain shared memory view)(221)에 접근할 수 있다. 블록체인 공유 메모리(212)는 REE(210)와 TEE(220)의 어플리케이션(예: 블록체인 어플리케이션(211) 및 신뢰 어플리케이션(222))에 의해 접근 가능한 메모리일 수 있다.
REE API(213)는 어플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스일 수 있다. 예를 들어, REE API(213)는 파일 제어, 창 제어, 영상 처리, 또는 문자 제어를 포함하는 다양한 기능을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. REE API(213)는 프로그래밍 함수들의 집합으로, 운영체제에 따라 다른 구성으로 제공될 수 있다. 예를 들어, 안드로이드 또는 IOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있다. 타이젠(tizen)의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다. 일 실시 예에 따르면, REE API(213)는 TEE(220)에 접근이 허용된 기능적 API를 포함할 수 있다. 예를 들어, REE API(213)는 TEE(220)의 일부 서비스에 접근이 가능하도록 설계된 어플리케이션 인터페이스를 포함할 수 있다. REE API(213)는 REE(210)와 TEE(220)의 어플리케이션 사이의 데이터를 교환할 수 있도록 설계된 인터페이스를 포함할 수 있다.
일 실시 예에 따르면, REE(210)는 REE HAL(214)를 포함할 수 있다. 일 실시 예에 따르면, REE HAL(214)은 입출력 인터페이스, 인터럽트 제어 및 프로세서 통신의 구현에 필요한 하드웨어 종속적인 세부 사항을 처리하는 루틴들의 집합체를 나타낼 수 있다. 예를 들어, REE HAL(214)은 블록체인 어플리케이션(211)으로부터 추상화된 제어 명령 또는 요청을 수신하고, 일반 운영체제 컴포넌트(215)에 포함된 장치 드라이버에 상기 수신된 제어 명령 또는 요청을 전달할 수 있다. 일 실시 예에 따르면, REE HAL(214)은 블록체인 어플리케이션(211)으로부터 획득된 추상화된 제어 명령 또는 요청을 일반 운영체제 컴포넌트(215)에 포함된 장치 드라이버에 맞게 동작하도록 전달할 수 있다. 예를 들어, REE HAL(214)은 블록체인 어플리케이션(211)으로부터 획득된 추상화된 제어 명령에 따라 일반 운영체제 컴포넌트(215)에 포함된 장치 드라이버가 활성화 또는 비활성화되도록 획득된 제어 명령을 전달할 수 있다. 일 실시 예에서, 상기 장치 드라이버는 수신된 제어 명령을 상태 검출 회로(150)로 전송할 수 있다. 예를 들어, REE HAL(214)은 블록체인 어플리케이션(211)으로부터 수신된 신뢰 어플리케이션(222)에 대한 동작과 관련된 명령에 응답하여, 일반 운영체제 컴포넌트(215)에 포함된 장치 드라이버를 비활성화 하도록 일반 운영체제 컴포넌트(215)로 명령을 전달할 수 있다. 또한, REE HAL(214)은 블록체인 어플리케이션(211)으로부터 신뢰 어플리케이션(222)에 대한 동작이 종료됨과 관련된 명령에 응답하여, 상기 장치 드라이버를 활성화하도록 일반 운영체제 컴포넌트(215)로 수신된 명령을 전달할 수 있다.
일 실시 예에 따르면, 일반 운영체제 컴포넌트(예: rich OS component)(215)는 제1 터치 드라이버(216), 제1 위치 센서 드라이버(217) 및/또는 제1 연결 드라이버(218)를 포함할 수 있다. 다양한 실시 예들에 따라, 일반 운영체제 컴포넌트(215)는 상태 검출 회로(150)에 포함된 구성 요소에 대응되는 다양한 장치 드라이버를 포함할 수 있다. 일 실시 예에 따르면, 일반 운영체제 컴포넌트(215)에 포함된 장치 드라이버는 상태 검출 회로(150)를 REE(210)에서 구동하기 위한 시스템 드라이버일 수 있다. 예를 들어, 제1 터치 드라이버(216)는 터치 스크린(231)을 구동하기 위한 시스템 드라이버일 수 있다. 또한, 제1 위치 센서 드라이버(217)는 위치 센서(예: GNSS 모듈)(232)를 구동하기 위한 시스템 드라이버일 수 있다. 또한, 제1 연결 드라이버(218)는 연결 칩셋(233)을 구동하기 위한 시스템 드라이버일 수 있다.
다양한 실시 예들에 따라, REE(210)는 그 밖에 다양한 구성 요소를 포함할 수 있다. 예를 들어, REE(210)는 블록체인 어플리케이션(211)과 신뢰 어플리케이션(222) 간의 메시지 통신을 처리하는 역할을 하는 REE 통신 에이전트(미도시)를 포함할 수 있다. 블록체인 어플리케이션(211)은 REE API(213)를 이용하여 REE 통신 에이전트에서 TEE(220)의 TEE 통신 에이전트(미도시)로 메시지를 전달할 수 있다. 이때, 메시지는 하드웨어적으로 TEE(220)에만 전달될 수 있도록 구현될 수 있다.
TEE(220)는 REE(210)보다 상대적으로 높은 보안 레벨이 요구되는 데이터를 안전한 환경 내에서 저장하고 관련 동작을 수행할 수 있다. TEE(220)는 전자 장치(100)의 어플리케이션 프로세서 상에서 동작하고, 전자 장치(100)의 제조 과정에서 결정된 신뢰할 수 있는 하드웨어 구조에 기반하여 동작할 수 있다. TEE(220)는 어플리케이션 프로세서 또는 메모리를 일반 영역과 보안 영역으로 구분하여 보안 영역에서 동작할 수 있다. TEE(220)는 보안이 필요한 소프트웨어나 하드웨어를 보안 영역에서만 동작하게 하도록 설정할 수 있다. 전자 장치(100)는 하드웨어의 물리적 변경 또는 소프트웨어의 논리적 변경을 통하여 TEE(220)를 운용할 수 있다. TEE(220)는 REE(210)와 하드웨어적인 제약을 통하여 서로 분리될 수 있고, 동일한 하드웨어에서 소프트웨어적으로 분리되어 동작할 수 있다.
TEE(220)는 블록체인 공유 메모리 뷰(221), 신뢰 어플리케이션(trusted application)(222), 보안 메모리(223), TEE API(224), TEE HAL(225) 및/또는 신뢰 운영체제 컴포넌트(예: Trusted OS 컴포넌트)(226)를 포함할 수 있다. 블록체인 공유 메모리 뷰(221)는 REE(210)의 블록체인 공유 메모리(212)에 접근할 수 있는 메모리 공간일 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(222)은 DRM(digital rights management), 보안, 결제, 또는 생체 정보 이용과 같은 높은 보안 수준이 요구되는 다양한 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다. 신뢰 어플리케이션(222)은 REE(210)로부터 획득한 요청에 기반한 동작을 수행할 수 있으며, 동작에 대한 처리 결과를 REE(210)로 전달할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(222)은 블록체인 어플리케이션(211) 및/또는 그 밖의 다른 어플리케이션으로부터 개인키 생성 요청을 획득할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 신뢰 어플리케이션(222)을 실행하여, 개인키 및 공개키를 포함하는 키-쌍을 생성할 수 있다. 또한, 신뢰 어플리케이션(222)은 생성된 개인키를 보안 메모리(223)에 저장할 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(222)은 루트 시드(root seed)를 생성하고, 생성된 루트 시드에 기반하여 개인키 및 공개키를 생성할 수 있다. 일 실시 예에서, 루트 시드는 블록체인 네트워크에서 사용 가능한 범위 조건 내에서 임의로 생성되는 종자 값을 의미할 수 있다. 일 실시 예에 따르면, 루트 시드는 HMAC(hash-based message authentication code)-SHA(secure hash algorithm) 512 알고리즘 함수를 통해 생성한 해시 값에서 마스터 개인키(master private key)와 마스터 체인코드(master chain code)를 생성할 수 있다. 512 비트의 해시된 값에서 왼쪽 256비트를 개인키로 사용하고, 오른쪽 256 비트를 체인코드로 사용할 수 있다. 공개키는 개인키와 타원곡선 함수를 이용하여 획득할 수 있다. 다만, 상술한 루트 시드 및 키에 관한 설명은 일 예시이며 이에 한정되지 아니한다. 다양한 실시 예들에 따라, 신뢰 어플리케이션(222)은 다양한 방식으로(예: TRNG) 루트 시드를 생성하고, 루트 시드로부터 키-쌍을 유도할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(222)은 블록체인 어플리케이션(211)으로부터 개인키로 전자 서명을 수행하는 동작에 대한 조건 설정 요청을 획득할 수 있다. 예를 들어, 신뢰 어플리케이션(222)은 전자 서명을 수행하는 것에 대하여, 전자 장치(100)가 지정된 위치로부터 일정 범위(예: 반경 500m) 내에서만 전자 서명을 수행할 수 있도록 하는 조건 설정 요청을 블록체인 어플리케이션(211)을 통해 획득할 수 있다. 다른 예를 들어, 신뢰 어플리케이션(222)은 전자 서명을 수행하는 것에 대하여, 지정된 외부 전자 장치가 연결된 상태에서만 전자 서명을 수행할 수 있도록 하는 조건 설정 요청을 블록체인 어플리케이션(211)을 통해 획득할 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(222)은 조건 설정 요청에 응답하여, 서명 조건을 설정하고, 설정된 서명 조건을 보안 메모리(223)에 저장할 수 있다. 예를 들어, 신뢰 어플리케이션(222)은 블록체인 어플리케이션(211)을 통해 조건 설정 요청 및 설정 정보(예: 지정된 위치 반경 500m 내)를 획득할 수 있다. 또한, 신뢰 어플리케이션(222)은 상기 조건 설정 요청 및 설정 정보에 기초하여 서명 조건을 보안 메모리(223)에 저장할 수 있다. 다양한 실시 예들에 따라, 서명 조건을 설정함에 있어 상태 검출 회로(150)를 이용해야 하는 경우, 신뢰 어플리케이션(222)은 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버(예: 제2 터치 드라이버(227), 제2 위치 센서 드라이버(228) 및/또는 제2 연결 드라이버(229))를 통해 상태 검출 회로(150)로부터 상태 데이터를 획득할 수 있다. 신뢰 어플리케이션(222)은 상기 상태 데이터 및 설정 정보에 기초하여 서명 조건을 설정하고, 설정된 서명 조건을 보안 메모리(223)에 저장할 수 있다.
일 실시 예에 따르면 신뢰 어플리케이션(222)은 블록체인 어플리케이션(211)으로부터 생성된 트랜잭션에 대한 전자 서명 요청을 획득할 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(222)은 트랜잭션에 대한 서명 요청에 응답하여 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버(예: 제2 터치 드라이버(227), 제2 위치 센서 드라이버(228) 및/또는 제2 연결 드라이버(229))를 통해 상태 검출 회로(150)로부터 상태 데이터를 획득할 수 있다. 예를 들어, 블록체인 어플리케이션(211)으로부터 생성된 트랜잭션에 대한 전자 서명 요청을 신뢰 어플리케이션(222)이 획득함에 응답하여, REE HAL(214)은 일반 운영체제 컴포넌트(215)에 포함된 장치 드라이버가 비활성화 되도록 제어 명령을 상기 일반 운영체제 컴포넌트(215) 로 전달할 수 있다. 또한, TEE HAL(225)는 신뢰 어플리케이션(222)으로부터 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버의 활성화 요청에 응답하여, 상기 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버가 활성화되도록 제어 명령을 전달할 수 있다. 따라서, REE HAL(214) 및 TEE HAL(225)은 REE(210) 및 TEE(220) 각각에 포함된 장치 드라이버가 상태 검출 회로(150)와 동시에 연결되지 않도록 제어할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(222)은 상태 검출 회로(150)로부터 획득한 상태 데이터를 이용하여 보안 메모리(223)에 저장된 서명 조건이 만족되는지 여부를 판단할 수 있다. 예를 들어, 신뢰 어플리케이션(222)은 제2 위치 센서 드라이버(228)를 이용하여 위치 센서(232)로부터 전자 장치(100)의 현재 위치에 대한 정보를 나타내는 위치 데이터를 획득할 수 있다. 또한, 신뢰 어플리케이션(222)은 획득한 위치 데이터에 기초하여, 보안 메모리(223)에 저장된 서명 조건(예: 지정된 위치로부터 반경 500m 내)이 만족되는지 여부를 판단할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(222)은 상기 판단 결과를 블록체인 어플리케이션(211)으로 전송할 수 있다. 예를 들어, 신뢰 어플리케이션(222)은 서명 조건이 만족되었는지 또는 서명 조건이 만족되지 않았는지에 대한 정보를 블록체인 어플리케이션(211)으로 전송할 수 있다. 또한, 신뢰 어플리케이션(222)은 서명 조건이 만족됨에 응답하여, 보안 메모리(223)에 저장된 개인키를 통해 트랜잭션에 대한 전자 서명을 수행할 수 있다. 예를 들어, 신뢰 어플리케이션(222)은 서명 조건이 만족됨에 따라 개인키를 이용하여 트랜잭션에 대한 디지털 서명을 디지털 서명 알고리즘(예: RSA(Rivest, Shamir, Adleman)알고리즘, 및/또는 ECDSA(elliptic curve digital signature algorithm))을 통해 수행할 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(222)은 개인키로 트랜잭션에 대한 전자 서명을 수행하여 생성된 서명 데이터를 블록체인 어플리케이션(211)으로 전송할 수 있다.
일 실시 예에 따르면, TEE API(224)은 TEE(220)의 기본 소프트웨어가 동작할 수 있도록 제공되는 인터페이스일 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(222)은 TEE API(224)를 이용하여 REE(210)로부터 다양한 요청 메시지를 전달받을 수 있다. 예를 들어, 신뢰 어플리케이션(222)은 TEE API(224)를 이용하여 블록체인 어플리케이션(211)으로부터 생성되는 트랜잭션에 대한 서명 요청 및/또는 서명 조건 설정 요청을 전달받을 수 있다.
일 실시 예에 따르면, TEE HAL(225)은 REE HAL(214)과 유사한 동작을 수행할 수 있다. 예를 들어, TEE HAL(225)은 신뢰 어플리케이션(222)으로부터 추상화된 제어 명령 또는 요청을 수신하고, 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버에 상기 수신된 제어 명령 또는 요청을 전달할 수 있다. 일 실시 예에 따르면, TEE HAL(225)은 신뢰 어플리케이션(222)으로부터 획득된 추상화된 제어 명령 또는 요청을 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버에 맞게 동작하도록 전달할 수 있다. 예를 들어, TEE HAL(225)은 신뢰 어플리케이션(222)으로부터 획득된 추상화된 제어 명령에 따라 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버가 활성화 또는 비활성화되도록 획득된 제어 명령을 신뢰 운영체제 컴포넌트(226)로 전달할 수 있다. 일 실시 예에서, 상기 장치 드라이버는 수신된 제어 명령을 상태 검출 회로(150)로 전송할 수 있다. 예를 들어, TEE HAL(225)은 신뢰 어플리케이션(222)으로부터 수신된 추상화된 제어 명령에 응답하여, 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버가 활성화되도록 수신된 명령을 신뢰 운영체제 컴포넌트(226)로 전달할 수 있다. 또한, TEE HAL(225)은 상기 장치 드라이버가 활성화 또는 비활성화되도록 획득된 제어 명령을 신뢰 운영체제 컴포넌트(226)로 전달할 수 있다. 일 실시 예에서, 상기 장치 드라이버는 TEE HAL(225)로부터 수신된 제어 명령을 상태 검출 회로(150)로 전송할 수 있다. 예를 들어, TEE HAL(225)은 신뢰 어플리케이션(222)의 요청에 따라 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버가 활성화되도록 상기 장치 드라이버로 제어 명령을 전달할 수 있다. 또한, TEE HAL(225)은 TEE(220)에서 신뢰 어플리케이션(222)에 기초하여 실행된 동작이 종료됨에 응답하여, 신뢰 어플리케이션(222)으로부터 추상화된 제어 명령을 수신하고, 상기 장치 드라이버가 비활성화되도록 신뢰 운영체제 컴포넌트(226)로 획득한 명령을 전달할 수 있다.
일 실시 예에 따르면, 신뢰 운영체제 컴포넌트(226)는 제2 터치 드라이버(227), 제2 위치 센서 드라이버(228) 및/또는 제2 연결 드라이버(229)를 포함할 수 있다. 다양한 실시 예들에 따라, 신뢰 운영체제 컴포넌트(226)는 상태 검출 회로(150)에 포함된 구성 요소에 대응되는 다양한 장치 드라이버를 포함할 수 있다. 일 실시 예에 따르면, 신뢰 운영체제 컴포넌트(226)에 포함된 장치 드라이버는 상태 검출 회로(150)를 TEE(220)에서 구동하기 위한 시스템 드라이버일 수 있다. 예를 들어, 제2 터치 드라이버(227)는 터치 스크린(231)을 구동하기 위한 시스템 드라이버일 수 있다. 또한, 제2 위치 센서 드라이버(228)는 위치 센서(예: GNSS 모듈)(232)를 구동하기 위한 시스템 드라이버일 수 있다. 또한, 제2 연결 드라이버(229)는 연결 칩셋(233)을 구동하기 위한 시스템 드라이버일 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 상태 검출 회로(150)에 포함된 종류별로 하나의 구성(예: 터치 스크린(231), 위치 센서(232) 및/또는 연결 칩셋(233))을 일반 운영체제 컴포넌트(215) 및 신뢰 운영체제 컴포넌트(226)가 공유하여 사용하도록 구성될 수 있다. 상기 상태 검출 회로(150)에 포함된 종류별로 하나의 구성은 일반 운영체제 컴포넌트(215)가 사용할 때는 신뢰 운영체제 컴포넌트(226)가 사용할 수 없고, 반대로, 신뢰 운영체제 컴포넌트(226)가 사용할 때는 일반 운영체제 컴포넌트(215)가 사용할 수 없도록 구성될 수 있다. 전자 장치(100)는 REE HAL(214) 및 TEE HAL(225)을 통해 상기 상태 검출 회로(150)에 포함된 구성을 스위칭(switching)하여 사용할 수 있다.
신뢰 운영체제 컴포넌트(226)는 도시된 구성요소 외에도 TEE 통신 에이전트(미도시), 신뢰 코어 프레임워크(미도시), 신뢰 기능(미도시), 및/또는 신뢰 커널(미도시)을 포함할 수 있다. TEE 통신 에이전트는 프레임워크 기능(framework function) API의 종류의 하나로 블록체인 어플리케이션(211)과 신뢰 어플리케이션(222) 간의 안전한 메시지 통신을 처리하는 역할을 할 수 있다. 신뢰 코어 프레임워크는 신뢰 어플리케이션(222)이 수행할 수 있도록 스케줄링, 통신, 메모리 관리와 같은 다양한 운영체제 기능을 제공할 수 있다. 신뢰 기능은 암호와 같은 신뢰 기능을 제공할 수 있고, 신뢰 커널은 TEE(220)를 구동하기 위한 커널일 수 있다. 또한, TEE(220)는 도시된 구성에 제한되지 않고 다양한 구성을 추가하거나 일부 구성을 생략할 수 있다. 예를 들어, TEE(220)는 각종 시큐어 라이브러리(secure library)들을 제공하는 TEE 프레임워크(framework)를 포함할 수 있다.
다양한 실시 예들에 따라, 블록체인 어플리케이션(211) 및/또는 신뢰 어플리케이션(222)의 동작은 각각 제1 실행 환경(예: REE(210)) 내에서 프로세서(130)가 블록체인 어플리케이션(211)을 실행 및/또는 제2 실행 환경 (예: TEE(220))내에서 프로세서(130)가 신뢰 어플리케이션(222)을 실행하여 동작할 수 있다. 따라서, 블록체인 어플리케이션(211) 및/또는 신뢰 어플리케이션(222)의 동작은 각각 제1 실행 환경 내에서 프로세서(130)의 동작 및/또는 제2 실행 환경 내에서 프로세서(130)의 동작으로 표현될 수 있다.
도 3은 일 실시 예에 따른 전자 장치가 트랜잭션에 대하여 전자 서명을 수행하는 동작을 설명하기 위한 흐름도(300)이다.
도 3을 참조하면, 프로세서(130)는 동작 301에서 제2 실행 환경(예: TEE(220))에서, 제1 어플리케이션(예: 블록체인 어플리케이션(211))을 통해 생성된 트랜잭션에 대한 서명 요청을 획득할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 제1 실행 환경(예: REE(210))에서, 블록체인 어플리케이션(211)을 통해 사용자 및/또는 다른 어플리케이션으로부터 트랜잭션 생성 요청을 획득할 수 있다. 예를 들어, 프로세서(130)는 제1 실행 환경에서, 블록체인 어플리케이션(211)을 통해 사용자로부터 다른 사용자에게 일정 금액을 전송하고자 하는 요청을 획득할 수 있다. 프로세서(130)는 상기 트랜잭션 생성 요청에 응답하여, 트랜잭션을 생성할 수 있다. 일 실시 예에서, 프로세서(130)는 제2 어플리케이션(예: 신뢰 어플리케이션(222))으로 생성된 트랜잭션에 대한 서명 요청을 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 동작 303에서, 서명 요청에 응답하여 상태 검출 회로(150)를 통해 제1 상태 데이터를 획득할 수 있다. 예를 들어, 프로세서(130)는 제2 실행 환경에서, 제2 실행 환경에 포함된 장치 드라이버(예: 제2 터치 드라이버(227), 제2 위치 센서 드라이버(228) 및/또는 제2 연결 드라이버(229))를 이용하여 상태 검출 회로(150)로 제1 상태 데이터를 요청할 수 있다. 또한, 프로세서(130)는 상기 장치 드라이버를 이용하여 상태 검출 회로(150)로부터 제1 상태 데이터를 획득할 수 있다. 예를 들어, 프로세서(130)는 서명 요청에 응답하여 위치 센서(232)를 통해 제2 위치 센서 드라이버(228)를 이용하여 현재 전자 장치(100)의 위치 정보를 나타내는 위치 데이터를 획득할 수 있다. 다른 예를 들어, 프로세서(130)는 서명 요청에 응답하여 연결 칩셋(233)을 통해 제2 연결 드라이버(229)를 이용하여 전자 장치(100)와 연결된 외부 전자 장치의 정보(예: AP(access point) 정보)를 나타내는 연결 데이터를 획득할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 동작 305에서, 제1 상태 데이터에 기초하여 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 제2 실행 환경에서, 상태 검출 회로(150)를 통해 획득한 제1 상태 데이터에 기초하여 보안 메모리(223)에 저장된 서명 조건이 만족 되는지 여부를 판단할 수 있다. 예를 들어, 프로세서(130)는 상기 위치 데이터에 기초하여 서명 조건(예: 지정된 위치로부터 반경 500m 내)이 만족되는지 여부를 판단할 수 있다. 다른 예를 들어, 프로세서(130)는 상기 연결 데이터에 기초하여 서명 조건(예: 지정된 외부 전자 장치와 연결된 경우)이 만족되는지 여부를 판단할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 동작 307에서, 판단 결과에 기초하여, 제2 실행 환경 내에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행하여 서명 데이터를 생성할 수 있다. 예를 들어, 프로세서(130)는 제2 실행 환경에서, 서명 조건이 만족됨에 응답하여 개인키로 트랜잭션에 대한 전자 서명을 수행할 수 있다. 다른 예를 들어, 프로세서(130)는 서명 조건이 만족되지 않은 경우, 트랜잭션에 대한 서명 동작을 종료할 수 있다. 프로세서(130)는 트랜잭션에 대한 서명 조건이 만족되지 않았음을 알리는 알림을 제1 어플리케이션으로 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 동작 309에서, 서명 데이터를 제1 어플리케이션으로 전송할 수 있다. 예를 들어, 프로세서(130)는 서명 조건이 만족 되는 경우, 보안 메모리(223)에 저장된 개인키로 트랜잭션에 대한 전자 서명을 수행하여 서명 데이터를 생성하고, 생성된 서명 데이터를 제1 어플리케이션으로 전송할 수 있다. 제1 어플리케이션은 프로세서(130)로부터 전자 서명된 트랜잭션 데이터를 포함하는 서명 데이터를 획득함에 응답하여, 서명 데이터를 블록체인 네트워크(예: mainnet)로 전송할 수 있다.
일 실시 예에 따르면, 제2 실행 환경에서 프로세서(130)의 동작은 제2 어플리케이션(예: 신뢰 어플리케이션(222))을 실행하여 수행될 수 있다.
도 4는 일 실시 예에 따른 전자 장치가 서명 조건이 만족됨에 기반하여 전자 서명을 수행하는 동작을 설명하기 위한 흐름도(400)이다.
도 4를 참조하면, 전자 장치(100)는 블록체인 어플리케이션(440)(예: 도 2의 블록체인 어플리케이션(211)), 신뢰 어플리케이션(450)(예: 도 2의 신뢰 어플리케이션(222)), HAL(460)(hardware abstract layer), 제1 드라이버(470)(예: 제1 터치 드라이버(216), 제1 위치 센서 드라이버(217) 및/또는 제1 연결 드라이버(218)), 제2 드라이버(480)(예: 제2 터치 드라이버(227), 제2 위치 센서 드라이버(228) 및/또는 제2 연결 드라이버(229)) 및/또는 상태 검출 회로(490)(예: 도 1의 상태 검출 회로(150))를 포함할 수 있다.
일 실시 예에 따르면, 이하 도 4 및 도 5에서, HAL(460)은 도 2를 참조하여 설명된 REE HAL(214) 및 TEE HAL(225)를 포함할 수 있다. 이하 HAL(460)의 동작은 실행 환경에 따라 REE HAL(214) 또는 TEE HAL(225)의 동작을 나타낼 수 있다. 예를 들어, 프로세서(130)가 제1 실행 환경(예: 도 2의 REE(210))에서 동작하고, 제1 드라이버(470)에 대한 동작을 수행하는 경우, HAL(460)의 동작은 REE HAL(214)의 동작을 나타낼 수 있다. 또한, 프로세서(130)가 제2 실행 환경(예: 도 2의 TEE(220))에서 동작하고, 제2 드라이버(480)에 대한 동작을 수행하는 경우, HAL(460)의 동작은 TEE HAL(225)의 동작을 나타낼 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(440)의 동작은 제1 실행 환경(예: 도 2의 REE(210))에서 프로세서(130)가 블록체인 어플리케이션(440)을 실행하여 수행되는 동작을 나타낼 수 있다. 따라서, 이하 블록체인 어플리케이션(440)의 동작은 제1 실행 환경에서 프로세서(130)의 동작으로 표현될 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(450)의 동작은 제2 실행 환경(예: 도 2의 TEE(220))에서 프로세서(130)가 신뢰 어플리케이션(450)을 실행하여 수행되는 동작을 나타낼 수 있다. 따라서, 이하 신뢰 어플리케이션(450)의 동작은 제2 실행 환경에서 프로세서(130)의 동작으로 표현될 수 있다.
일 실시 예에 따르면, 제1 실행 환경에서, 블록체인 어플리케이션(440)은 트랜잭션을 생성할 수 있다. 일 실시 예에서, 블록체인 어플리케이션(440)은 신뢰 어플리케이션(450)으로 트랜잭션에 대한 서명 요청을 전송(401)할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 블록체인 어플리케이션(440)을 실행하여 트랜잭션을 생성하고, 생성된 트랜잭션에 대한 서명 요청을 신뢰 어플리케이션(450)으로 전송할 수 있다.
일 실시 예에 따르면, 제2 실행 환경에서 신뢰 어플리케이션(450)은 트랜잭션에 대한 서명 요청을 획득함에 응답하여, HAL(460)로 제2 드라이버(480) 활성화를 요청(402)할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 상태 검출 회로(490)를 이용하기 위해, HAL(460)로 제2 드라이버(480)의 활성화를 요청할 수 있다.
일 실시 예에 따르면, HAL(460)은 상기 요청(402)에 응답하여, 제1 드라이버(470)를 비활성화(403)할 수 있다. 또한, HAL(460)은 제2 드라이버(480)를 활성화(404)할 수 있다. 예를 들어, HAL(460)은 제1 드라이버(470)가 비활성화 되도록 제1 드라이버(470)를 제어할 수 있다. 또한, HAL(460)은 제2 드라이버(480)가 활성화되도록 제2 드라이버(480)를 제어할 수 있다.
일 실시 예에 따르면, HAL(460)은 제2 드라이버(480)로 제1 상태 데이터를 요청(405)할 수 있다. 예를 들어, HAL(460)은 신뢰 어플리케이션(450)으로부터 제2 드라이버 활성화 요청(402)에 응답하여, 제2 드라이버(480)로 제1 상태 데이터를 요청(405)할 수 있다. 또는, HAL(460)은 트랜잭션에 대한 서명 조건의 만족 여부를 판단하기 위해, 제2 드라이버(480)로 제1 상태 데이터를 요청(405)할 수 있다.
일 실시 예에 따르면, 제2 드라이버(480)는 상기 요청(405)에 응답하여, 상태 검출 회로(490)로 제1 상태 데이터를 요청(406)할 수 있다. 예를 들어, 제2 드라이버(480)(예: 제2 위치 센서 드라이버(228))는 상기 요청(405)에 응답하여, 상태 검출 회로(490)(예: 위치 센서(232))로 제1 상태 데이터(예: 위치 데이터)를 요청할 수 있다.
일 실시 예에 따르면, 상태 검출 회로(490)는 상기 요청(406)에 응답하여 제1 상태 데이터를 전송(407)할 수 있다. 예를 들어, 상태 검출 회로(490)는 전자 장치(100)의 위치 정보를 판단하기 위한 위치 센서(예: GNSS 센서)를 이용하여 전자 장치(100)의 위치 데이터를 생성할 수 있다. 예를 들어, 상태 검출 회로(490)는 위치 센서를 이용하여 위도 및/또는 경도 데이터를 생성할 수 있다. 상태 검출 회로(490)는 생성된 위치 데이터를 제2 드라이버(480)로 전송할 수 있다. 다른 예를 들어, 상태 검출 회로(490)는 전자 장치(100)와 연결된 외부 전자 장치의 정보를 나타내는 연결 데이터를 생성할 수 있다. 예를 들어, 상태 검출 회로(490)는 외부 전자 장치의 이름, 식별 데이터(예: ID) 및/또는 MAC 주소 데이터를 생성할 수 있다. 상태 검출 회로(490)는 생성된 연결 데이터를 제2 드라이버(480)로 전송할 수 있다.
일 실시 예에 따르면, 제2 드라이버(480)는 HAL(460)로 상태 검출 회로(490)로부터 획득한 제1 상태 데이터를 전송(408)할 수 있다. HAL(460)은 신뢰 어플리케이션(450)으로 제1 상태 데이터를 전송(409)할 수 있다. 동작 407 내지 동작 409를 통해 신뢰 어플리케이션(450)은 상태 검출 회로(490)로부터 제1 상태 데이터를 획득할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(450)은 제1 상태 데이터에 기초하여 서명 조건이 만족되는지 판단(410)할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 제1 상태 데이터에 기초하여 제2 실행 환경 내(예: 보안 메모리(223))에 저장된 서명 조건이 만족되는지 여부를 판단할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 상태 검출 회로(490)로부터 획득한 위치 데이터에 기초하여, 지정된 위치로부터 반경 500m내에 전자 장치(100)가 위치하는지 여부를 판단할 수 있다. 다른 예를 들어, 신뢰 어플리케이션(450)은 상태 검출 회로(490)로부터 획득한 연결 데이터에 기초하여, 전자 장치(100)가 지정된 외부 전자 장치와 연결되었는지 여부를 판단할 수 있다.
일 실시 예에 따르면, 서명 조건이 만족되는 경우, 신뢰 어플리케이션(450)은 트랜잭션에 대한 전자 서명을 수행(411)할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 보안 메모리(223)에 저장된 개인키를 이용하여, 트랜잭션에 대한 전자 서명을 수행하여 서명 데이터를 생성할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(450)은 블록체인 어플리케이션(440)으로 동작 411에서 생성된 서명 데이터를 전송(412)할 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(440)은 서명된 트랜잭션을 블록체인 네트워크로 전송(413)할 수 있다. 예를 들어, 블록체인 어플리케이션(440)은 전자 장치(100)의 개인키로 전자 서명된 트랜잭션 데이터를 블록체인 네트워크로 전송할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 전자 서명된 트랜잭션에 서명 조건과 관련된 데이터를 추가할 수 있다. 예를 들어, 전자 장치(100)는 트랜잭션 데이터에 서명 조건에 대한 정보 및/또는 제1 상태 데이터를 추가할 수 있다. 일 실시 예에 따르면, 전자 장치(100) 및/또는 블록체인 네트워크에 포함된 블록체인 노드(예: 외부 전자 장치)들은 트랜잭션 데이터에 제1 상태 데이터가 추가되어, 필요시 블록 데이터를 조회하여 상태 데이터를 확인할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 서명 조건의 만족을 필수 요건으로 하는 스마트 컨트랙트를 작성하고 활용할 수 있다. 예를 들어, 전자 장치(100)는 서명 조건이 만족되는 경우, 스마트 컨트랙트를 실행하고 서명 조건이 만족되지 않는 경우, 스마트 컨트랙트의 실행이 종료되도록 하는 스마트 컨트랙트를 생성할 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(440)은 서명 조건이 만족되어 트랜잭션의 실행과 관련된 화면을 디스플레이(120)를 통해 표시할 수 있다. 예를 들어, 블록체인 어플리케이션(440)은 생성된 트랜잭션에 대한 정보를 포함하는 화면 및/또는 서명된 트랜잭션이 블록체인 네트워크로 전송되었음을 나타내는 화면을 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 서명 조건이 만족되지 않은 경우, 신뢰 어플리케이션(450)은 블록체인 어플리케이션(440)으로 서명 조건이 만족되지 않음을 나타내는 알림을 전송(414)할 수 있다. 일 실시 예에 따르면, 블록체인 어플리케이션(440)은 수신한 상기 알림에 응답하여, 서명 조건이 만족되지 않아 트랜잭션에 대한 전자 서명이 수행되지 않음을 나타내는 화면을 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면 신뢰 어플리케이션(450) 및/또는 블록체인 어플리케이션(440)은 서명 조건이 만족되지 않음에 응답하여 트랜잭션에 대한 동작을 종료할 수 있다.
도 5는 일 실시 예에 따른 전자 장치가 서명 조건을 설정하는 동작을 설명하기 위한 흐름도(500)이다.
도 4를 참조하여 설명된 내용과 중복되는 내용은 생략될 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(440)은 트랜잭션에 대한 서명 조건을 설정하기 위한 요청을 사용자 또는 다른 어플리케이션으로부터 획득할 수 있다. 예를 들어, 블록체인 어플리케이션(440)은 서명 조건을 설정하기 위한 사용자 인터페이스(UI)를 디스플레이(120)를 통해 표시하고, 서명 조건의 설정 요청 및 설정 정보를 사용자 및/또는 다른 어플리케이션을 통해 획득할 수 있다. 예를 들어, 블록체인 어플리케이션(440)은 전자 장치(100)가 지정된 위치로부터 반경 500m 내에 위치하는 경우에만 서명이 수행될 수 있도록 하는 서명 조건의 설정 요청을 획득할 수 있다. 또한, 블록체인 어플리케이션(440)은 지정된 위치에 대한 정보를 포함하는 설정 정보를 획득할 수 있다.
일 실시 예에 따르면, 블록체인 어플리케이션(440)은 신뢰 어플리케이션(450)으로 설정 정보 및 조건 설정 요청을 전송(501)할 수 있다. 예를 들어, 블록체인 어플리케이션(440)은 전자 장치(100)가 지정된 위치에서 반경 500m 내에 위치하는 경우에만 서명이 수행될 수 있도록 하는 서명 조건의 설정 요청 및 지정된 위치에 대한 정보를 포함하는 설정 정보를 신뢰 어플리케이션(450)으로 전송할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(450)은 설정 정보 및 조건 설정 요청에 기반하여 서명 조건을 설정할 수 있다. 일 실시 예에서, 신뢰 어플리케이션(450)은 서명 조건을 제2 실행 환경(예: TEE(220)) 내에 저장할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 서명 조건을 보안 메모리(223)에 저장할 수 있다.
일 실시 예에 따르면, 제2 실행 환경에서 신뢰 어플리케이션(450)은 상태 검출 회로(490)를 이용하여 서명 조건을 설정할 수 있다. 예를 들어, 설정 조건이 전자 장치(100)의 위치에서 반경 500m 내에서 서명을 수행하도록 하는 조건인 경우, 신뢰 어플리케이션(450)은 전자 장치(100)의 위치 데이터(예: 제2 상태 데이터)를 획득하기 위해 상태 검출 회로(490)를 이용할 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(450)은 조건 설정 요청을 획득함에 응답하여, HAL(460)로 제2 드라이버 활성화를 요청(502)할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 상태 검출 회로(490)를 이용하기 위해, HAL(460)로 제2 드라이버(480)의 활성화를 요청할 수 있다.
일 실시 예에 따르면, HAL(460)은 상기 요청(502)에 응답하여, 제1 드라이버(470)를 비활성화(503)할 수 있다. 또한, HAL(460)은 제2 드라이버(480)를 활성화(504)할 수 있다. 예를 들어, HAL(460)은 제1 드라이버(470)가 비활성화 되도록 제1 드라이버(470)를 제어할 수 있다. 또한, HAL(460)은 제2 드라이버(480)가 활성화되도록 제2 드라이버(480)를 제어할 수 있다.
일 실시 예에 따르면, HAL(460)은 제2 드라이버(480)로 조건 설정을 위한 제2 상태 데이터를 요청(505)할 수 있다. 예를 들어, HAL(460)은 신뢰 어플리케이션(450)으로부터 제2 드라이버 활성화 요청(504)에 응답하여, 제2 드라이버(480)로 제2 상태 데이터를 요청(505)할 수 있다.
일 실시 예에 따르면, 제2 드라이버(480)는 상기 요청(505)에 응답하여, 상태 검출 회로(490)로 제2 상태 데이터를 요청(506)할 수 있다. 예를 들어, 제2 드라이버(480)(예: 제2 위치 센서 드라이버(228))는 상기 요청(505)에 응답하여, 상태 검출 회로(490)(예: 위치 센서(232))로 제2 상태 데이터(예: 위치 데이터)를 요청할 수 있다.
일 실시 예에 따르면, 상태 검출 회로(490)는 상기 요청(506)에 응답하여 제2 상태 데이터를 전송(507)할 수 있다. 예를 들어, 상태 검출 회로(490)는 위치 정보를 판단하기 위한 위치 센서(예: GNSS 센서)를 이용하여 전자 장치(100)의 위치 데이터를 생성할 수 있다. 상태 검출 회로(490)는 생성된 위치 데이터를 제2 드라이버(480)로 전송할 수 있다.
일 실시 예에 따르면, 제2 드라이버(480)는 HAL(460)로 상태 검출 회로(490)로부터 획득한 제2 상태 데이터를 전송(508)할 수 있다. HAL(460)은 신뢰 어플리케이션(450)으로 제2 상태 데이터를 전송(509)할 수 있다. 동작 507 내지 동작 509를 통해 신뢰 어플리케이션(450)은 상태 검출 회로(490)로부터 제2 상태 데이터를 획득할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(450)은 제2 상태 데이터 및 설정 정보에 기초하여 서명 조건을 설정(510)할 수 있다. 예를 들어, 설정 정보가 전자 장치(100)의 위치에서 반경 500m 내로 서명 조건을 설정하는 것인 경우, 신뢰 어플리케이션(450)은 제2 상태 데이터(예: 전자 장치(100)의 위치 데이터)에 기초하여 반경 500m 내 위치를 계산할 수 있다. 일 실시 예에 따르면, 신뢰 어플리케이션(450)은 계산된 위치를 서명 조건으로 설정할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(450)은 블록체인 어플리케이션(440)으로 서명 조건의 확인을 요청(511)할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 설정된 서명 조건이 의도된 서명 조건에 부합하는지 확인하기 위해, 서명 조건의 확인을 요청(511)할 수 있다. 일 실시 예에 따르면, 블록체인 어플리케이션(440)은 상기 요청(511)에 응답하여 신뢰 어플리케이션(450)으로 확인 결과를 전송(512)할 수 있다. 예를 들어, 블록체인 어플리케이션(440)은 상기 요청(511)에 응답하여, 설정된 서명 조건과 관련된 화면을 디스플레이(120)를 통해 표시할 수 있다. 일 실시 예에 따르면, 블록체인 어플리케이션(440)은 사용자 및/또는 다른 어플리케이션을 통해 설정된 서명 조건에 대한 응답을 획득할 수 있다. 예를 들어, 블록체인 어플리케이션(440)은 전자 장치(100)의 위치에서 500m 내의 위치를 나타내는 화면을 디스플레이(120)를 통해 표시하고, 사용자에게 확인을 요청하는 화면을 디스플레이(120)를 통해 표시할 수 있다. 블록체인 어플리케이션(440)은 상기 화면에 대한 응답을 획득하고, 신뢰 어플리케이션(450)으로 확인 결과를 전송(512)할 수 있다.
일 실시 예에 따르면, 신뢰 어플리케이션(450)은 서명 조건을 저장(513)할 수 있다. 예를 들어, 신뢰 어플리케이션(450)은 제2 실행 환경 내(예: 보안 메모리(223))에 상기 서명 조건을 저장할 수 있다.
다양한 실시 예들에 따라, 전자 장치(100)는 도 4 및 도 5를 참조하여 설명된 동작 중에서 일부를 생략하고 수행할 수 있다. 또는, 전자 장치(100)는 도 4 및 도 5를 참조하여 설명된 동작에 일부 동작을 추가하여 수행할 수 있다.
도 6은 일 실시 예에 따른 전자 장치가 서명 조건의 만족 여부를 나타내는 화면을 표시하는 동작을 설명하기 위한 흐름도(600)이다.
도 6을 참조하면, 프로세서(130)는 동작 601에서, 제2 실행 환경에서 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득할 수 있다. 예를 들어, 프로세서(130)는 제2 실행 환경(예: TEE(220))에서, 제1 어플리케이션(예: 블록체인 어플리케이션(211))을 통해 생성된 트랜잭션에 대한 서명 요청을 획득할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 제1 실행 환경(예: REE(210))에서, 블록체인 어플리케이션(211)을 통해 사용자 및/또는 다른 어플리케이션으로부터 트랜잭션 생성 요청을 획득할 수 있다. 예를 들어, 프로세서(130)는 제1 실행 환경에서, 블록체인 어플리케이션(211)을 통해 사용자로부터 다른 사용자에게 일정 금액을 전송하고자 하는 요청을 획득할 수 있다. 프로세서(130)는 상기 트랜잭션 생성 요청에 응답하여, 트랜잭션을 생성할 수 있다. 일 실시 예에서, 프로세서(130)는 제2 어플리케이션(예: 신뢰 어플리케이션(222))으로 생성된 트랜잭션에 대한 서명 요청을 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 동작 603에서, 서명 요청에 응답하여 상태 검출 회로(150)를 통해 제1 상태 데이터를 획득할 수 있다. 예를 들어, 프로세서(130)는 제2 실행 환경에서, 제2 실행 환경에 포함된 장치 드라이버(예: 제2 터치 드라이버(227), 제2 위치 센서 드라이버(228) 및/또는 제2 연결 드라이버(229))를 이용하여 상태 검출 회로(150)로 제1 상태 데이터를 요청할 수 있다. 또한, 프로세서(130)는 상기 장치 드라이버를 이용하여 상태 검출 회로(150)로부터 제1 상태 데이터를 획득할 수 있다. 예를 들어, 프로세서(130)는 서명 요청에 응답하여 위치 센서(232)를 통해 제2 위치 센서 드라이버(228)를 이용하여 전자 장치(100)의 위치 정보를 나타내는 위치 데이터를 획득할 수 있다. 다른 예를 들어, 프로세서(130)는 서명 요청에 응답하여 연결 칩셋(233)을 통해 제2 연결 드라이버(229)를 이용하여 현재 전자 장치(100)와 연결된 외부 전자 장치의 정보(예: AP(access point) 정보)를 나타내는 연결 데이터를 획득할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 동작 605에서, 제1 상태 데이터에 기초하여 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 제2 실행 환경에서, 상태 검출 회로(150)를 통해 획득한 제1 상태 데이터에 기초하여 보안 메모리(223)에 저장된 서명 조건이 만족 되는지 여부를 판단할 수 있다. 예를 들어, 프로세서(130)는 상기 위치 데이터에 기초하여 서명 조건(예: 지정된 위치로부터 반경 500m 내)이 만족되는지 여부를 판단할 수 있다. 다른 예를 들어, 프로세서(130)는 상기 연결 데이터에 기초하여 서명 조건(예: 지정된 외부 전자 장치와 연결된 경우)이 만족되는지 여부를 판단할 수 있다.
일 실시 예에 따르면, 동작 607에서 프로세서(130)는 상기 판단 결과를 제1 어플리케이션으로 전송할 수 있다. 예를 들어, 프로세서(130)는 서명 조건이 만족된 경우, 개인키를 이용하여 트랜잭션에 대한 전자 서명을 수행하여 서명 데이터를 생성할 수 있다. 또한, 프로세서(130)는 생성된 서명 데이터를 제1 어플리케이션으로 전송할 수 있다. 다른 예를 들어, 프로세서(130)는 서명 조건이 만족되지 않은 경우, 서명 조건이 만족되지 않음을 나타내는 알림을 제1 어플리케이션으로 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 동작 609에서, 제1 실행 환경에서 판단 결과 및 서명 조건에 대한 정보를 나타내는 결과 화면을 표시할 수 있다. 예를 들어, 프로세서(130)는 디스플레이(120)를 통해 판단 결과 및 어떤 서명 조건인지를 나타내는 결과 화면을 표시할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 서명 조건이 만족된 경우, 어떤 서명 조건을 만족하여 트랜잭션에 대한 전자 서명이 수행되었음을 나타내는 결과 화면을 표시하도록 디스플레이(120)를 제어할 수 있다. 또는, 프로세서(130)는 서명 조건이 만족된 경우, 트랜잭션이 실행되었음을 나타내는 결과 화면을 표시하도록 디스플레이(120)를 제어할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 서명 조건이 만족되지 않은 경우, 어떤 서명 조건이 만족되지 않았는지를 나타내는 결과 화면을 표시하도록 디스플레이(120)를 제어할 수 있다. 예를 들어, 프로세서(130)는 위치 조건이 만족되지 않았음을 나타내는 화면, 연결 조건이 만족되지 않았음을 나타내는 화면 및/또는 지정된 위치에서는 송금 금액이 제한됨을 나타내는 화면을 표시하도록 디스플레이(120)를 제어할 수 있다.
도 7은 일 실시 예에 따른 블록체인 어플리케이션 실행 UI를 나타내는 도면이다.
도 7을 참조하면, 전자 장치(100)는 디스플레이(120)를 통해 블록체인 어플리케이션(211)의 실행 화면을 표시할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 블록체인 어플리케이션(211)의 실행 화면 중에서 위치 설정 화면(710) 및/또는 연결 설정 화면(720)을 표시하도록 디스플레이(120)를 제어할 수 있다. 예를 들어, 프로세서(130)는 블록체인 어플리케이션(211)의 실행 화면 중에서 사용자의 입력에 대응되는 조건 설정 화면을 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 트랜잭션에 대한 서명 조건으로, 위치(location) 또는 네트워크(network)를 나타내는 시각적 객체를 포함하는 조건의 종류 정보(예: 제1 조건 정보 (711), 제2 조건 정보(721))를 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 위치 설정 화면(710)은 트랜잭션에 대한 서명 조건으로 위치에 기반한 조건이 선택된 경우 디스플레이(120)를 통해 표시될 수 있다. 예를 들어, 위치 설정 화면(710)은 트랜잭션에 대한 서명 조건의 종류 정보를 표시하고, 위치 조건이 선택됨을 나타내는 제1 조건 정보(711)를 포함할 수 있다. 일 실시 예에 따르면, 위치 설정 화면(710)은 위치 조건을 설정하기 위한 위치 선택 정보(712)를 포함할 수 있다. 예를 들어, 프로세서(130)는 위치 조건을 설정하기 위한 위치 선택 정보(712)를 디스플레이(120)를 통해 표시하고, 전자 장치(100)의 사용자로부터 위치 선택 정보(712)에 대한 입력을 획득할 수 있다. 예를 들어, 위치 선택 정보(712)는 지정한 장소로부터 30m, 50m, 100m 및/또는 직접 설정에 대응하는 시각적 객체들을 포함할 수 있다. 프로세서(130)는 상기 시각적 객체들에 대한 사용자 입력을 획득하고, 획득된 입력에 기반하여 위치 조건을 설정할 수 있다. 다양한 실시 예들에 따라, 위치 선택 정보(712)는 제한되지 않고 트랜잭션에 대한 서명 조건으로 선택될 위치에 대한 다양한 정보를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 위치 선택 정보(712)에 대한 사용자 입력에 기반하여, 트랜잭션에 대한 서명 조건으로 사용될 위치에 상응하는 지도 화면(713)을 표시할 수 있다. 예를 들어, 프로세서(130)는 현재 위치에 대한 시각적 객체 및 위치 선택 정보(712)에서 선택된 위치(예: 반경 30m)에 대한 시각적 객체를 포함하는 지도 화면(713)을 디스플레이(120)를 통해 표시할 수 있다. 다양한 실시 예들에 따라, 프로세서(130)는, 지도 화면(713)에 제한되지 않고, 트랜잭션에 대한 서명 조건으로 설정된 위치에 대한 정보를 시각적으로 나타내는 다양한 이미지 정보를 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 연결 설정 화면(720)은 트랜잭션에 대한 서명 조건으로 전자 장치(100)와 연결된 장치에 기반한 조건이 선택된 경우 디스플레이(120)를 통해 표시될 수 있다. 예를 들어, 연결 설정 화면(720)은 트랜잭션에 대한 서명 조건의 종류 정보를 표시하고, 연결 조건이 선택됨을 나타내는 제2 조건 정보(721)를 포함할 수 있다. 일 실시 예에 따르면, 연결 설정 화면(720)은 연결 조건을 설정하기 위한 네트워크 설정 조건(722)을 포함할 수 있다. 예를 들어, 프로세서(130)는 트랜잭션에 대한 서명 조건으로 전자 장치(100)와 연결된 장치에 대하여 네트워크 설정 조건을 선택하기 위한 네트워크 설정 조건(722)을 디스플레이(120)를 통해 표시할 수 있다. 또한, 프로세서(130)는 전자 장치(100)의 사용자로부터 네트워크 설정 조건(722)에 대한 입력을 획득할 수 있다. 예를 들어, 네트워크 설정 조건(722)은 AP 이름, AP ID 및/또는 Mac(media access control) 주소에 대응하는 시각적 객체들을 포함할 수 있다. 프로세서(130)는 상기 시각적 객체들에 대한 사용자 입력을 획득하고, 획득된 입력에 기반하여 네트워크 설정 조건을 결정할 수 있다. 다양한 실시 예들에 따라, 네트워크 설정 조건(722)은 제한되지 않고 트랜잭션에 대한 서명 조건으로 선택될 연결 장치를 선택하는 다양한 정보를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 네트워크 설정 조건(722)에 대한 사용자 입력에 기반하여, 트랜잭션에 대한 서명 조건으로 사용될 네트워크 설정에 상응하는 연결 장치 리스트(723)를 표시할 수 있다. 예를 들어, 프로세서(130)는 선택된 네트워크 설정 조건(722)에 대한 시각적 객체를 포함하는 연결 장치 리스트(723)를 디스플레이(120)를 통해 표시할 수 있다.
다양한 실시 예들에 따라, 프로세서(130)는, 연결 장치 리스트(723)에 제한되지 않고, 트랜잭션에 대한 서명 조건으로 설정된 네트워크 조건에 대한 정보를 시각적으로 나타내는 다양한 이미지 정보를 디스플레이(120)를 통해 표시할 수 있다. 예를 들어, 네트워크 설정 조건(722)에 대한 사용자 입력이 AP 이름에 대응되는 경우, 프로세서(130)는 디스플레이(120)를 통해 AP 리스트를 포함하는 연결 장치 리스트(723)를 표시할 수 있다. 또한, 연결 장치 리스트(723)는 사용자가 직접 연결 장치를 입력할 수 있는 입력 필드를 포함할 수 있다.
도 8은 일 실시 예에 따른 서명 조건의 설정 UI를 나타내는 도면이다.
도 8을 참조하면, 블록체인 어플리케이션(211)의 실행 화면의 일부로, 서명 조건의 종류에 따라 위치 조건 결정 화면(810) 및 연결 조건 결정 화면(820)이 나타난다. 일 실시 예에 따르면, 프로세서(130)는 디스플레이(120)를 통해 서명 조건을 설정하기 위한 UI를 표시할 수 있다. 예를 들어, 프로세서(130)는 서명 조건이 위치 기반한 조건인 경우, 위치 조건 결정 화면(810)을 디스플레이(120)를 통해 표시할 수 있다. 일 실시 예에 따르면, 위치 조건 결정 화면(810)은 지도 정보(811) 및 위치 설정 정보(812)를 나타내는 시각적 객체를 포함할 수 있다. 일 실시 예에 따르면, 연결 조건 결정 화면(820)은 연결 네트워크 정보(821) 및 연결 설정 정보(822)를 나타내는 시각적 객체를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 블록체인 어플리케이션(211)을 통해 획득된 서명 조건에 대한 설정 요청에 응답하여, 서명 조건 결정에 대한 화면을 디스플레이(120)를 통해 표시할 수 있다. 예를 들어, 프로세서(130)는 위치에 기반한 서명 조건의 설정 요청이 획득된 경우, 현재 위치 또는 지정된 위치를 나타내는 지도 정보(811)를 포함하는 위치 조건 결정 화면(810)을 표시할 수 있다. 일 실시 예에 따르면, 위치 조건 결정 화면(810)은 위치 설정 정보(812)를 포함할 수 있다. 예를 들어, 위치 조건 결정 화면(810)은 “트랜잭션 서명을 허용할 지점을 선택하고 허용 반경을 지도에서 조절하고 확인을 눌러 주세요” 와 같은 위치 조건 결정을 가이드하기 위한 문구 또는 이와 유사한 문구를 포함하는 위치 설정 정보(812)를 포함할 수 있다. 일 실시 예에서, 프로세서(130)는 디스플레이(120)를 통해 상기 위치 설정 정보(812)에 대한 응답을 획득하고, 서명 조건 설정 요청 및 위치 설정 정보를 신뢰 어플리케이션(222)으로 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 외부 전자 장치와 연결에 기반한 서명 조건의 설정 요청이 획득된 경우, 현재 연결된 외부 전자 장치의 정보를 나타내는 연결 네트워크 정보(821)를 포함하는 연결 조건 결정 화면(820)을 표시할 수 있다. 일 실시 예에 따르면, 연결 조건 결정 화면(820)은 연결 네트워크 정보(821) 및 연결 설정 정보(822)를 포함할 수 있다. 예를 들어, 연결 조건 결정 화면(820)은 “현재 연결된 AP를 트랜잭션 서명 조건으로 설정합니다,” 문구 또는 이와 유사한 문구를 포함하는 연결 설정 정보(822)를 포함할 수 있다. 일 실시 예에서, 프로세서(130)는 디스플레이(120)를 통해 상기 연결 설정 정보(822)에 대한 응답을 획득하고, 서명 조건 설정 요청 및 설정 정보를 신뢰 어플리케이션(222)으로 전송할 수 있다.
일 실시 예에 따라, 프로세서(130)는 도 5를 참조하여 설명된 서명 조건을 결정하는 동작을 수행하고, 상태 검출 회로(150)로부터 획득된 제2 상태 데이터에 기초하여, 위치 조건 결정 화면(810) 및 연결 조건 결정 화면(820)을 디스플레이(120)를 통해 표시할 수 있다. 다양한 실시 예들에 따라 프로세서(130)는 본 문서에 개시된 실시 예에 제한되지 않고, 다양한 서명 조건을 설정할 수 있다. 또한, 프로세서(130)는 디스플레이(120)를 통해 다양한 서명 조건 결정에 대한 화면을 표시할 수 있다.
도 9는 일 실시 예에 따른 트랜잭션의 생성 UI를 나타내는 도면이다. 도 10는 일 실시 예에 따른 서명 조건의 만족 여부의 결과 UI를 나타내는 도면이다. 도 9를 참조하면, 블록체인 어플리케이션(211)을 통해 트랜잭션 생성 화면(910)이 나타난다. 도 10를 참조하면, 트랜잭션 서명 조건의 만족 여부의 다양한 결과 UI 중에서 위치 기반한 서명 조건에 대한 제1 화면(920), 연결된 외부 전자 장치에 기반한 서명 조건에 대한 제2 화면(930) 및 위치 및 송금 액수에 기반한 서명 조건에 대한 제3 화면(940)이 나타난다.
일 실시 예에 따르면, 프로세서(130)는 블록체인 어플리케이션(211)을 실행하고, 블록체인 어플리케이션(211)의 실행 화면을 디스플레이(120)를 통해 표시할 수 있다. 예를 들어, 프로세서(130)는 블록체인 어플리케이션(211)을 통해 트랜잭션을 생성하고, 생성된 트랜잭션에 대한 정보를 포함하는 트랜잭션 생성 화면(910)을 디스플레이(120)를 통해 표시할 수 있다. 일 실시 예에 따르면, 트랜잭션 생성 화면(910)은 블록체인 화폐(예: 0.001 ETH(ethereum))를 송금하기 위한 화면을 나타낼 수 있다. 일 실시 예에 따르면, 프로세서(130)는 사용자 또는 다른 어플리케이션에 기초하여 트랜잭션 생성이 요청된 경우 트랜잭션에 대한 정보(911)를 포함하는 트랜잭션 생성 화면(910)을 디스플레이(120)를 통해 표시할 수 있다. 예를 들어, 트랜잭션에 대한 정보(911)는 송금액, 송금 계좌 및/또는 수수료를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 블록체인 어플리케이션(211)을 통해 트랜잭션이 생성된 경우, 도 4를 참조하여 설명된 서명 조건의 만족 여부를 판단하는 동작을 수행할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 서명 조건의 만족 여부를 판단한 판단 결과 화면을 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 서명 조건의 종류에 기초하여 판단 결과 화면을 디스플레이(120)를 통해 표시할 수 있다. 예를 들어, 프로세서(130)는 위치 기반한 서명 조건에 대한 제1 화면(920), 연결된 외부 전자 장치에 기반한 서명 조건에 대한 제2 화면(930) 및 위치 및 송금 액수에 기반한 서명 조건에 대한 제3 화면(940)을 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 상태 검출 회로(150)를 통해 도 4를 참조하여 설명된 서명 조건의 만족 여부를 판단하기 위한 제1 상태 데이터를 획득하고, 획득한 제1 상태 데이터에 기초하여 보안 메모리(223)에 저장된 서명 조건이 만족되는지 여부를 판단할 수 있다. 일 실시 예에 따르면, 제2 실행 환경에서, 프로세서(130)는 신뢰 어플리케이션(222)을 통해 서명 조건의 만족 여부를 판단하고, 상기 판단 결과를 블록체인 어플리케이션(211)으로 전송할 수 있다.
일 실시 예에 따르면, 프로세서(130)는 제1 실행 환경에서, 블록체인 어플리케이션(211)을 통해 획득한 판단 결과에 기초하여 판단 결과 화면을 표시할 수 있다. 예를 들어, 프로세서(130)는 서명 조건이 만족된 경우, 트랜잭션이 실행되었음을 나타내는 화면 또는 서명 조건이 만족되었음을 나타내는 화면을 디스플레이(120)를 통해 표시할 수 있다.
다른 예를 들어, 프로세서(130)는 서명 조건이 만족되지 않은 경우, 만족되지 않은 서명 조건에 대한 화면을 디스플레이(120)를 통해 표시할 수 있다. 일 실시 예에 따르면, 프로세서(130)는 서명 조건의 종류에 기초하여 서명 조건에 대한 판단 결과 화면을 표시할 수 있다.
일 실시 예에 따르면, 서명 조건이 위치에 기반한 서명 조건인 경우, 프로세서(130)는 제1 화면(920)을 디스플레이(120)를 통해 표시할 수 있다. 일 실시 예에서, 제1 화면(920)은 제1 판단 결과 정보(921)를 포함할 수 있다. 예를 들어, 프로세서(130)는 “지정된 위치 외에서는 트랜잭션 서명을 수행할 수 없습니다.” 또는 이와 유사한 문구를 포함한 제1 판단 결과 정보(921)를 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 서명 조건이 외부 전자 장치와 연결에 기반한 서명 조건인 경우, 프로세서(130)는 제2 화면(930)을 디스플레이(120)를 통해 표시할 수 있다. 일 실시 예에서, 제2 화면(930)은 제2 판단 결과 정보(931)를 포함할 수 있다. 예를 들어, 프로세서(130)는 “지정된 AP 연결된 상태가 아니면 트랜잭션 서명을 수행할 수 없습니다.” 또는 이와 유사한 문구를 포함한 제2 판단 결과 정보(931)를 디스플레이(120)를 통해 표시할 수 있다.
일 실시 예에 따르면, 서명 조건이 위치 및 송금 금액에 기반한 서명 조건인 경우, 프로세서(130)는 제3 화면(940)을 디스플레이(120)를 통해 표시할 수 있다. 일 실시 예에서, 제3 화면(940)은 제3 판단 결과 정보(941)를 포함할 수 있다. 예를 들어, 프로세서(130)는 “지정된 위치 외에서는 송금 금액이 제한됩니다.” 또는 이와 유사한 문구를 포함한 제3 판단 결과 정보(941)를 디스플레이(120)를 통해 표시할 수 있다.
다양한 실시 예들에 따라, 프로세서(130)는 디스플레이(120)에 제한되지 않고 다양한 출력 장치(예: 스피커)를 이용하여 도 7 내지 도 10에서 도시된 화면에 포함된 정보 또는 이와 유사한 정보를 출력할 수 있다.
상술한 바와 같이, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(100))는, 디스플레이(예: 도 1의 디스플레이(120)), 통신 회로(예: 도 1의 통신 회로(140)), 제1 실행 환경에서 실행되는 제1 어플리케이션 및 제2 실행 환경에서 실행되는 제2 어플리케이션을 저장하는 메모리(예: 도 1의 메모리(110)), 상태 검출 회로(예: 도 1의 상태 검출 회로(150)), 상기 상태 검출 회로, 상기 메모리, 상기 통신 회로 및 상기 디스플레이와 전기적으로 연결되고, 상기 제1 실행 환경에서 상기 제1 어플리케이션을 실행하거나 상기 제2 실행 환경에서 상기 제2 어플리케이션을 실행하는 적어도 하나의 프로세서(예: 도 1의 프로세서(130))를 포함하고, 상기 적어도 하나의 프로세서는, 상기 제2 실행 환경에서, 상기 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고, 상기 서명 요청에 응답하여 상기 상태 검출 회로를 통해 제1 상태 데이터를 획득하고, 상기 제1 상태 데이터에 기초하여, 상기 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고, 상기 판단 결과에 기초하여 상기 제2 실행 환경 내에 저장된 개인키로 상기 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성하고, 상기 서명 데이터를 상기 제1 어플리케이션으로 전송할 수 있다.
일 실시 예에 따르면, 상기 적어도 하나의 프로세서는 상기 제1 실행 환경에서, 상기 판단 결과에 기초하여, 상기 서명 조건의 만족 여부를 나타내는 결과 화면을 상기 디스플레이를 통해 표시할 수 있다.
일 실시 예에 따르면, 상기 서명 조건이 만족되지 않음에 응답하여, 상기 적어도 하나의 프로세서는 상기 제1 실행 환경에서, 상기 서명 조건이 만족되지 않았음을 나타내는 결과 화면을 상기 디스플레이를 통해 표시하고, 상기 트랜잭션에 대한 동작을 종료할 수 있다.
일 실시 예에 따르면, 상기 적어도 하나의 프로세서는 상기 제1 실행 환경에서, 상기 제1 어플리케이션을 통해 상기 서명 조건을 설정하기 위한 설정 요청 및 상기 서명 조건에 대한 설정 정보를 획득하고, 상기 설정 요청 및 상기 설정 정보를 상기 제2 어플리케이션으로 전송하고, 상기 제2 실행 환경에서, 획득된 상기 설정 요청에 따라, 상기 설정 정보에 기초하여 상기 서명 조건을 설정하고, 상기 서명 조건을 상기 제2 실행 환경 내에 저장할 수 있다.
일 실시 예에 따르면, 상기 제2 실행 환경에서 상기 적어도 하나의 프로세서는, 상기 상태 검출 회로로부터 상기 설정 정보에 따른 제2 상태 데이터를 획득하고, 상기 서명 조건은 상기 설정 정보 및 상기 제2 상태 데이터에 기초하여 설정될 수 있다.
일 실시 예에 따르면, 상기 적어도 하나의 프로세서는 상기 제2 실행 환경에서, 상기 서명 조건에 대한 확인 요청을 상기 제1 어플리케이션으로 전송하고, 상기 제1 실행 환경에서, 상기 제1 어플리케이션을 이용하여 상기 확인(confirm) 요청을 나타내는 화면을 상기 디스플레이를 통해 표시하고, 상기 제1 어플리케이션을 이용하여 상기 확인 요청에 대한 응답을 획득할 수 있다.
일 실시 예에 따르면, 상기 제1 실행 환경 및 상기 제2 실행 환경은 각각 상기 상태 검출 회로를 제어할 수 있는 제1 드라이버 및 제2 드라이버를 포함하고, 상기 제2 드라이버를 통해 상기 상태 검출 회로로부터 상기 제1 상태 데이터를 획득할 수 있다.
일 실시 예에 따르면, 상기 제1 실행 환경은 일반 실행 환경(REE(rich execution environment))을 포함하고, 상기 제2 실행 환경은 신뢰 실행 환경(TEE(trusted execution environment))를 포함할 수 있다.
상술한 바와 같이, 제1 실행 환경 및 제2 실행 환경을 포함하는 복수의 실행 환경을 운용 가능한 전자 장치(예: 도 1의 전자 장치(100))에 있어서, 상기 전자 장치는 상기 제2 실행 환경에서, 상기 제1 실행 환경에서 실행되는 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하는 동작, 상기 서명 요청에 응답하여 상기 전자 장치에 포함된 상태 검출 회로를 통해 제1 상태 데이터를 획득하는 동작, 상기 제1 상태 데이터에 기초하여, 상기 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하는 동작, 상기 판단 결과에 기초하여, 상기 제2 실행 환경 내에 저장된 개인키로 상기 트랜잭션에 대한 전자 서명을 수행하여 서명 데이터를 생성하는 동작 및 상기 서명 데이터를 상기 제1 어플리케이션으로 전송하는 동작을 포함할 수 있다.
일 실시 예에 따르면, 상기 전자 장치의 동작 방법은, 상기 판단 결과에 기초하여, 상기 제1 실행 환경에서, 상기 서명 조건의 만족 여부를 나타내는 결과 화면을 상기 전자 장치에 포함된 디스플레이를 통해 표시하는 동작을 더 포함할 수 있다.
일 실시 예에 따르면, 상기 전자 장치의 동작 방법은, 상기 제1 실행 환경에서 상기 제1 어플리케이션을 통해 상기 서명 조건을 설정하기 위한 설정 요청 및 상기 서명 조건에 대한 설정 정보를 사용자로부터 획득하는 동작, 상기 설정 요청 및 상기 설정 정보를 상기 제2 실행 환경에서 실행되는 제2 어플리케이션으로 전송하는 동작, 상기 제2 실행 환경에서, 상기 제2 어플리케이션을 통해 획득된 상기 설정 요청 및 상기 설정 정보에 기초하여 상기 서명 조건을 설정하는 동작 및 상기 서명 조건을 상기 제2 실행 환경 내에 저장하는 동작을 더 포함할 수 있다.
일 실시 예에 따르면, 상기 서명 조건을 설정하는 동작은, 상기 상태 검출 회로로부터 상기 설정 정보에 따른 제2 상태 데이터를 획득하는 동작 및 상기 설정 정보 및 상기 제2 상태 데이터에 기초하여 상기 서명 조건을 설정하는 동작을 포함할 수 있다.
일 실시 예에 따르면, 상기 서명 조건을 설정하는 동작은, 상기 제2 실행 환경에서 상기 서명 조건에 대한 확인 요청을 상기 제1 어플리케이션으로 전송하는 동작, 상기 제1 실행 환경에서 상기 제1 어플리케이션을 통해 상기 확인 요청을 나타내는 화면을 상기 전자 장치에 포함된 디스플레이를 통해 표시하는 동작 및 상기 확인 요청에 대한 응답을 획득하는 동작을 더 포함할 수 있다.
일 실시 예에 따르면, 상기 제1 실행 환경 및 상기 제2 실행 환경은 각각 상기 상태 검출 회로를 제어할 수 있는 제1 드라이버 및 제2 드라이버를 포함하고, 상기 제1 상태 데이터를 획득하는 동작은, 상기 제2 실행 환경에서 상기 제2 드라이버를 통해 상기 상태 검출 회로로부터 상기 제1 상태 데이터를 획득하는 동작일 수 있다.
일 실시 예에 따르면, 상기 제1 상태 데이터를 획득하는 동작은, 상기 제1 드라이버를 비활성화 하는 동작 및 상기 제2 드라이버를 활성화하는 동작을 포함할 수 있다.
상술한 바와 같이, 전자 장치(예: 도 1의 전자 장치(100))에 있어서, 디스플레이(예: 도 1의 디스플레이(120)), 통신 회로(예: 도 1의 통신 회로(140)), 제1 실행 환경에서 실행되는 제1 어플리케이션 및 제2 실행 환경에서 실행되는 제2 어플리케이션을 저장하는 메모리(예: 도 1의 메모리(110)), 상태 검출 회로(예: 도 1의 상태 검출 회로(150)), 상기 상태 검출 회로, 상기 메모리 및 상기 디스플레이와 전기적으로 연결되고, 상기 제1 실행 환경에서 상기 제1 어플리케이션을 실행하거나 상기 제2 실행 환경에서 상기 제2 어플리케이션을 실행하는 적어도 하나의 프로세서(예: 도 1의 프로세서(130))를 포함하고, 상기 적어도 하나의 프로세서는 상기 제2 실행 환경에서, 상기 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고, 상기 서명 요청에 응답하여 상기 상태 검출 회로를 통해 제1 상태 데이터를 획득하고, 상기 제1 상태 데이터에 기초하여, 상기 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고, 상기 판단 결과를 상기 제1 어플리케이션으로 전송하고, 상기 제1 실행 환경에서 상기 판단 결과 및 상기 서명 조건에 대한 정보를 나타내는 결과 화면을 표시하도록 상기 디스플레이를 제어할 수 있다.
일 실시 예에 따르면, 상기 판단 결과, 상기 서명 조건이 만족되지 않는 것으로 판단됨에 응답하여 상기 결과 화면은, 만족되지 않은 서명 조건에 대한 정보를 포함할 수 있다.
일 실시 예에 따르면, 상기 적어도 하나의 프로세서는 상기 제2 실행 환경에서, 상기 판단 결과에 기초하여 상기 제2 실행 환경 내에 저장된 개인키로 상기 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성하고, 상기 서명 데이터를 상기 제1 어플리케이션으로 전송할 수 있다.
일 실시 예에 따르면, 상기 적어도 하나의 프로세서는 상기 제1 실행 환경에서, 상기 제1 어플리케이션을 통해 상기 서명 조건을 설정하기 위한 설정 화면을 표시하도록 상기 디스플레이를 제어하고, 사용자로부터 상기 설정 화면에 기초하여 설정 요청 및 상기 서명 조건에 대한 설정 정보를 획득하고, 상기 설정 요청 및 상기 설정 정보를 상기 제2 어플리케이션으로 전송하고, 상기 제2 실행 환경에서, 상기 설정 요청에 따라 상기 설정 정보에 기초하여 상기 서명 조건을 설정하고, 상기 서명 조건을 상기 제2 실행 환경 내에 저장할 수 있다.
일 실시 예에 따르면, 상기 적어도 하나의 프로세서는 상기 제2 실행 환경에서, 상기 서명 조건에 대한 확인 요청을 상기 제1 어플리케이션으로 전송하고, 상기 제1 실행 환경에서, 상기 제1 어플리케이션을 통해 상기 확인(confirm) 요청을 나타내는 화면을 표시하도록 상기 디스플레이를 제어하고, 상기 제1 어플리케이션을 통해 상기 사용자로부터 상기 확인 요청에 대한 응답을 획득할 수 있다.
도 11은 다양한 실시 예들에 따른 네트워크 환경(1000) 내의 전자 장치(1001)의 블록도이다. 도 11을 참조하면, 네트워크 환경(1000)에서 전자 장치(1001)는 제1 네트워크(1098)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(1002)와 통신하거나, 또는 제2 네트워크(1099)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(1004) 또는 서버(1008) 중 적어도 하나와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(1001)는 서버(1008)를 통하여 전자 장치(1004)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(1001)는 프로세서(1020), 메모리(1030), 입력 모듈(1050), 음향 출력 모듈(1055), 디스플레이 모듈(1060), 오디오 모듈(1070), 센서 모듈(1076), 인터페이스(1077), 연결 단자(1078), 햅틱 모듈(1079), 카메라 모듈(1080), 전력 관리 모듈(1088), 배터리(1089), 통신 모듈(1090), 가입자 식별 모듈(1096), 또는 안테나 모듈(1097)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(1001)에는 이 구성요소들 중 적어도 하나(예: 연결 단자(1078))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시 예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(1076), 카메라 모듈(1080), 또는 안테나 모듈(1097))은 하나의 구성요소(예: 디스플레이 모듈(1060))로 통합될 수 있다.
프로세서(1020)는, 예를 들면, 소프트웨어(예: 프로그램(1040))를 실행하여 프로세서(1020)에 연결된 전자 장치(1001)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(1020)는 다른 구성요소(예: 센서 모듈(1076) 또는 통신 모듈(1090))로부터 수신된 명령 또는 데이터를 휘발성 메모리(1032)에 저장하고, 휘발성 메모리(1032)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(1034)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(1020)는 메인 프로세서(1021)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(1023)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(1001)가 메인 프로세서(1021) 및 보조 프로세서(1023)를 포함하는 경우, 보조 프로세서(1023)는 메인 프로세서(1021)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(1023)는 메인 프로세서(1021)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(1023)는, 예를 들면, 메인 프로세서(1021)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(1021)를 대신하여, 또는 메인 프로세서(1021)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(1021)와 함께, 전자 장치(1001)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(1060), 센서 모듈(1076), 또는 통신 모듈(1090))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(1023)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(1080) 또는 통신 모듈(1090))의 일부로서 구현될 수 있다. 일 실시 예에 따르면, 보조 프로세서(1023)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(1001) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(1008))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted Boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(1030)는, 전자 장치(1001)의 적어도 하나의 구성요소(예: 프로세서(1020) 또는 센서 모듈(1076))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(1040)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(1030)는, 휘발성 메모리(1032) 또는 비휘발성 메모리(1034)를 포함할 수 있다.
프로그램(1040)은 메모리(1030)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(1042), 미들 웨어(1044) 또는 어플리케이션(1046)을 포함할 수 있다.
입력 모듈(1050)은, 전자 장치(1001)의 구성요소(예: 프로세서(1020))에 사용될 명령 또는 데이터를 전자 장치(1001)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(1050)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(1055)은 음향 신호를 전자 장치(1001)의 외부로 출력할 수 있다. 음향 출력 모듈(1055)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(1060)은 전자 장치(1001)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(1060)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 디스플레이 모듈(1060)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(1070)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(1070)은, 입력 모듈(1050)을 통해 소리를 획득하거나, 음향 출력 모듈(1055), 또는 전자 장치(1001)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(1002))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(1076)은 전자 장치(1001)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시 예에 따르면, 센서 모듈(1076)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(1077)는 전자 장치(1001)가 외부 전자 장치(예: 전자 장치(1002))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(1077)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(1078)는, 그를 통해서 전자 장치(1001)가 외부 전자 장치(예: 전자 장치(1002))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시 예에 따르면, 연결 단자(1078)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(1079)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시 예에 따르면, 햅틱 모듈(1079)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(1080)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(1080)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(1088)은 전자 장치(1001)에 공급되는 전력을 관리할 수 있다. 일 실시 예에 따르면, 전력 관리 모듈(1088)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(1089)는 전자 장치(1001)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시 예에 따르면, 배터리(1089)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(1090)은 전자 장치(1001)와 외부 전자 장치(예: 전자 장치(1002), 전자 장치(1004), 또는 서버(1008)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(1090)은 프로세서(1020)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(1090)은 무선 통신 모듈(1092)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(1094)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(1098)(예: 블루투스, WiFi 다이렉트(wireless fidelity direct) 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(1099)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(1004)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(1092)은 가입자 식별 모듈(1096)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(1098) 또는 제2 네트워크(1099)와 같은 통신 네트워크 내에서 전자 장치(1001)를 확인 또는 인증할 수 있다.
무선 통신 모듈(1092)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(1092)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(1092)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중 입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔포밍, 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(1092)은 전자 장치(1001), 외부 전자 장치(예: 전자 장치(1004)) 또는 네트워크 시스템(예: 제2 네트워크(1099))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시 예에 따르면, 무선 통신 모듈(1092)은 eMBB 실현을 위한 피크 데이터 레이트(peak data rate)(예: 20Gbps 이상), mMTC 실현을 위한 손실 커버리지(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(1097)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시 예에 따르면, 안테나 모듈(1097)은 기판(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시 예에 따르면, 안테나 모듈(1097)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(1098) 또는 제2 네트워크(1099)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(1090)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(1090)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시 예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(1097)의 일부로 형성될 수 있다. 다양한 실시 예에 따르면, 안테나 모듈(1097)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시 예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗면 또는 측면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제2 네트워크(1099)에 연결된 서버(1008)를 통해서 전자 장치(1001)와 외부의 전자 장치(1004)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(1002, 또는 1004) 각각은 전자 장치(1001)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(1001)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(1002, 1004, 또는 1008) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(1001)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(1001)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(1001)로 전달할 수 있다. 전자 장치(1001)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(1001)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시 예에 있어서, 외부의 전자 장치(1004)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(1008)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시 예에 따르면, 외부의 전자 장치(1004) 또는 서버(1008)는 제2 네트워크(1099) 내에 포함될 수 있다. 전자 장치(1001)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시 예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 전자 장치(1001)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(1036) 또는 외장 메모리(1038))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(1040))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(1001))의 프로세서(예: 프로세서(1020))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: CD-ROM(compact disc read only memory))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 추가적으로 또는 대체적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치에 있어서,
    디스플레이;
    통신 회로;
    제1 실행 환경에서 실행되는 제1 어플리케이션 및 제2 실행 환경에서 실행되는 제2 어플리케이션을 저장하는 메모리;
    상태 검출 회로;
    상기 상태 검출 회로, 상기 메모리, 상기 통신 회로 및 상기 디스플레이와 전기적으로 연결되고, 상기 제1 실행 환경에서 상기 제1 어플리케이션을 실행하거나 상기 제2 실행 환경에서 상기 제2 어플리케이션을 실행하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는:
    상기 제2 실행 환경에서, 상기 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하고,
    상기 서명 요청에 응답하여 상기 상태 검출 회로를 통해 제1 상태 데이터를 획득하고,
    상기 제1 상태 데이터에 기초하여, 상기 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하고,
    상기 판단 결과에 기초하여 상기 제2 실행 환경 내에 저장된 개인키로 상기 트랜잭션에 대한 전자 서명을 수행한 서명 데이터를 생성하고,
    상기 서명 데이터를 상기 제1 어플리케이션으로 전송하는 전자 장치.
  2. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 실행 환경에서, 상기 판단 결과에 기초하여, 상기 서명 조건의 만족 여부를 나타내는 결과 화면을 상기 디스플레이를 통해 표시하는 전자 장치.
  3. 청구항 2에 있어서,
    상기 서명 조건이 만족되지 않음에 응답하여, 상기 적어도 하나의 프로세서는 상기 제1 실행 환경에서, 상기 서명 조건이 만족되지 않았음을 나타내는 결과 화면을 상기 디스플레이를 통해 표시하고,
    상기 트랜잭션에 대한 동작을 종료하는 전자 장치.
  4. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 실행 환경에서, 상기 제1 어플리케이션을 통해 상기 서명 조건을 설정하기 위한 설정 요청 및 상기 서명 조건에 대한 설정 정보를 획득하고,
    상기 설정 요청 및 상기 설정 정보를 상기 제2 어플리케이션으로 전송하고,
    상기 제2 실행 환경에서, 획득된 상기 설정 요청에 따라, 상기 설정 정보에 기초하여 상기 서명 조건을 설정하고,
    상기 서명 조건을 상기 제2 실행 환경 내에 저장하는 전자 장치.
  5. 청구항 4에 있어서,
    상기 제2 실행 환경에서 상기 적어도 하나의 프로세서는, 상기 상태 검출 회로로부터 상기 설정 정보에 따른 제2 상태 데이터를 획득하고,
    상기 서명 조건은 상기 설정 정보 및 상기 제2 상태 데이터에 기초하여 설정되는 전자 장치.
  6. 청구항 4에 있어서,
    상기 적어도 하나의 프로세서는 상기 제2 실행 환경에서, 상기 서명 조건에 대한 확인(confirm) 요청을 상기 제1 어플리케이션으로 전송하고,
    상기 제1 실행 환경에서, 상기 제1 어플리케이션을 이용하여 상기 확인 요청을 나타내는 화면을 상기 디스플레이를 통해 표시하고,
    상기 제1 어플리케이션을 이용하여 상기 확인 요청에 대한 응답을 획득하는 전자 장치.
  7. 청구항 1에 있어서,
    상기 제1 실행 환경 및 상기 제2 실행 환경은 각각 상기 상태 검출 회로를 제어할 수 있는 제1 드라이버 및 제2 드라이버를 포함하고,
    상기 제2 드라이버를 통해 상기 상태 검출 회로로부터 상기 제1 상태 데이터를 획득하는 전자 장치.
  8. 청구항 1에 있어서,
    상기 제1 실행 환경은 일반 실행 환경(REE(rich execution environment))을 포함하고,
    상기 제2 실행 환경은 신뢰 실행 환경(TEE(trusted execution environment))를 포함하는 전자 장치.
  9. 제1 실행 환경 및 제2 실행 환경을 포함하는 복수의 실행 환경을 운용 가능한 전자 장치에 있어서,
    상기 전자 장치는 상기 제2 실행 환경에서, 상기 제1 실행 환경에서 실행되는 제1 어플리케이션을 통해 생성된 트랜잭션에 대한 서명 요청을 획득하는 동작;
    상기 서명 요청에 응답하여 상기 전자 장치에 포함된 상태 검출 회로를 통해 제1 상태 데이터를 획득하는 동작;
    상기 제1 상태 데이터에 기초하여, 상기 제2 실행 환경 내에 저장된 서명 조건이 만족되는지 여부를 판단하는 동작;
    상기 판단 결과에 기초하여, 상기 제2 실행 환경 내에 저장된 개인키로 상기 트랜잭션에 대한 전자 서명을 수행하여 서명 데이터를 생성하는 동작; 및
    상기 서명 데이터를 상기 제1 어플리케이션으로 전송하는 동작을 포함하는 전자 장치의 동작 방법.
  10. 청구항 9에 있어서,
    상기 판단 결과에 기초하여, 상기 제1 실행 환경에서, 상기 서명 조건의 만족 여부를 나타내는 결과 화면을 상기 전자 장치에 포함된 디스플레이를 통해 표시하는 동작을 더 포함하는 전자 장치의 동작 방법.
  11. 청구항 9에 있어서,
    상기 제1 실행 환경에서 상기 제1 어플리케이션을 통해 상기 서명 조건을 설정하기 위한 설정 요청 및 상기 서명 조건에 대한 설정 정보를 사용자로부터 획득하는 동작;
    상기 설정 요청 및 상기 설정 정보를 상기 제2 실행 환경에서 실행되는 제2 어플리케이션으로 전송하는 동작;
    상기 제2 실행 환경에서, 상기 제2 어플리케이션을 통해 획득된 상기 설정 요청 및 상기 설정 정보에 기초하여 상기 서명 조건을 설정하는 동작; 및
    상기 서명 조건을 상기 제2 실행 환경 내에 저장하는 동작을 더 포함하는 전자 장치의 동작 방법.
  12. 청구항 11에 있어서,
    상기 서명 조건을 설정하는 동작은, 상기 상태 검출 회로로부터 상기 설정 정보에 따른 제2 상태 데이터를 획득하는 동작; 및
    상기 설정 정보 및 상기 제2 상태 데이터에 기초하여 상기 서명 조건을 설정하는 동작을 포함하는 전자 장치의 동작 방법.
  13. 청구항 11에 있어서,
    상기 서명 조건을 설정하는 동작은, 상기 제2 실행 환경에서 상기 서명 조건에 대한 확인 요청을 상기 제1 어플리케이션으로 전송하는 동작;
    상기 제1 실행 환경에서 상기 제1 어플리케이션을 통해 상기 확인 요청을 나타내는 화면을 상기 전자 장치에 포함된 디스플레이를 통해 표시하는 동작; 및
    상기 확인 요청에 대한 응답을 획득하는 동작을 더 포함하는 전자 장치의 동작 방법.
  14. 청구항 9에 있어서,
    상기 제1 실행 환경 및 상기 제2 실행 환경은 각각 상기 상태 검출 회로를 제어할 수 있는 제1 드라이버 및 제2 드라이버를 포함하고,
    상기 제1 상태 데이터를 획득하는 동작은, 상기 제2 실행 환경에서 상기 제2 드라이버를 통해 상기 상태 검출 회로로부터 상기 제1 상태 데이터를 획득하는 동작인 전자 장치의 동작 방법.
  15. 청구항 14에 있어서,
    상기 제1 상태 데이터를 획득하는 동작은, 상기 제1 드라이버를 비활성화 하는 동작; 및
    상기 제2 드라이버를 활성화하는 동작을 포함하는 전자 장치의 동작 방법.
PCT/KR2022/015288 2021-12-08 2022-10-11 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법 WO2023106594A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210175017A KR20230086409A (ko) 2021-12-08 2021-12-08 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법
KR10-2021-0175017 2021-12-08

Publications (1)

Publication Number Publication Date
WO2023106594A1 true WO2023106594A1 (ko) 2023-06-15

Family

ID=86730594

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/015288 WO2023106594A1 (ko) 2021-12-08 2022-10-11 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법

Country Status (2)

Country Link
KR (1) KR20230086409A (ko)
WO (1) WO2023106594A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160101635A (ko) * 2015-02-17 2016-08-25 삼성전자주식회사 보안 회로를 통한 데이터의 저장 및 이용
KR101740391B1 (ko) * 2016-01-15 2017-06-08 (주)케이스마텍 신뢰된 실행 환경 기반의 온라인 서명 인증 장치 및 방법
KR101823471B1 (ko) * 2016-05-11 2018-01-30 (주)케이스마텍 신뢰된 실행 환경 기반의 유무선단말을 이용한 사용자 간편 인증방법 및 시스템
US20200028693A1 (en) * 2018-07-17 2020-01-23 Huawei Technologies Co., Ltd. Verifiable Encryption Based on Trusted Execution Environment
KR20200101211A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160101635A (ko) * 2015-02-17 2016-08-25 삼성전자주식회사 보안 회로를 통한 데이터의 저장 및 이용
KR101740391B1 (ko) * 2016-01-15 2017-06-08 (주)케이스마텍 신뢰된 실행 환경 기반의 온라인 서명 인증 장치 및 방법
KR101823471B1 (ko) * 2016-05-11 2018-01-30 (주)케이스마텍 신뢰된 실행 환경 기반의 유무선단말을 이용한 사용자 간편 인증방법 및 시스템
US20200028693A1 (en) * 2018-07-17 2020-01-23 Huawei Technologies Co., Ltd. Verifiable Encryption Based on Trusted Execution Environment
KR20200101211A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법

Also Published As

Publication number Publication date
KR20230086409A (ko) 2023-06-15

Similar Documents

Publication Publication Date Title
WO2020231177A1 (en) Electronic device and method for receiving push message stored in blockchain
WO2022154272A1 (ko) Iot 장치 및 iot 장치를 서버에 온보딩 하는 방법
WO2021086012A1 (en) Method for transmitting data based on multiple communication schemes and electronic device supporting same
WO2020106019A1 (en) Electronic device and method for providing in-vehicle infotainment service
WO2022114857A1 (ko) 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법
WO2022131549A1 (ko) 전자 장치 및 전자 장치의 동작 방법
WO2023038466A1 (ko) 블록체인 네트워크에서 트랜잭션을 생성하는 전자 장치 및 그의 동작 방법
WO2023106594A1 (ko) 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법
WO2022145768A1 (ko) 액세서리 장치와 무선 통신을 수행하는 전자 장치 및 그 운용 방법
WO2023068609A1 (ko) 외부 장치를 이용하여 트랜잭션을 전송하는 전자 장치 및 그의 동작 방법
WO2024019258A1 (ko) 외부 전자 장치로 송신되는 신호를 제어하는 전자 장치 및 방법
WO2021206452A1 (ko) 보안 데이터 처리 방법 및 이를 지원하는 전자 장치
WO2023054839A1 (ko) 상황에 기반하여 서비스의 인증 방식을 적응적으로 제공하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체
WO2022098015A1 (ko) 내부 데이터가 포함된 트랜잭션을 생성하는 전자 장치 및 이의 동작 방법
WO2023054936A1 (ko) 블록체인 네트워크에서 블록 데이터를 복구하는 전자 장치 및 그의 동작 방법
WO2023149648A1 (ko) 보안 기능을 제공하는 전자 장치 및 그의 동작 방법
WO2024091022A1 (ko) 생체 정보를 이용한 장치들 간의 연결 방법 및 그 전자 장치
WO2023287207A1 (ko) 전자 장치 및 이를 이용한 외부 전자 장치 연결 방법
WO2022260501A1 (ko) 블록체인 네트워크에서 부분 원장을 가진 전자 장치 및 그의 동작 방법
WO2023063694A1 (ko) 블록체인 네트워크에서 부분 원장을 가진 전자 장치 및 그의 동작 방법
WO2023068515A1 (ko) 온도의 변화에 기반하여 배터리의 충전을 제어하는 전자 장치 및 그 방법
WO2022203184A1 (ko) 기능 공유를 위한 전자 장치 및 그의 동작 방법
WO2022014873A1 (ko) 인증을 수행하는 방법 및 이를 지원하는 전자 장치
WO2022139219A1 (ko) 암호화된 객체를 제공하는 방법 및 이를 지원하는 전자 장치
WO2022177138A1 (ko) 보안 이미지를 표시하는 전자 장치 및 이의 동작 방법

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

Country of ref document: EP

Kind code of ref document: A1