WO2024112057A1 - 보안 데이터를 저장하는 전자 장치 및 그 동작 방법 - Google Patents

보안 데이터를 저장하는 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
WO2024112057A1
WO2024112057A1 PCT/KR2023/018740 KR2023018740W WO2024112057A1 WO 2024112057 A1 WO2024112057 A1 WO 2024112057A1 KR 2023018740 W KR2023018740 W KR 2023018740W WO 2024112057 A1 WO2024112057 A1 WO 2024112057A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
encrypted
processor
electronic device
arc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/KR2023/018740
Other languages
English (en)
French (fr)
Inventor
황진하
김인호
이동선
류재민
정경임
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to EP23894985.3A priority Critical patent/EP4575871A4/en
Priority to CN202380078175.1A priority patent/CN120202471A/zh
Priority to US18/520,023 priority patent/US12627469B2/en
Publication of WO2024112057A1 publication Critical patent/WO2024112057A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption

Definitions

  • This disclosure relates to an electronic device that stores secure data and a method of operating the same.
  • an electronic device eg, user equipment (UE)
  • UE user equipment
  • voice communication services or data communication services at a designated location or while moving.
  • voice communication services or data communication services services and additional functions provided through electronic devices are gradually increasing.
  • an appropriate authentication process is required and data requiring security needs to be safely processed.
  • a universal integrated circuit card is inserted into an electronic device, and the electronic device and a mobile network operator (MNO) are connected through a universal subscriber identity module (USIM) installed inside the UICC.
  • MNO mobile network operator
  • USIM universal subscriber identity module
  • Authentication is performed between servers.
  • the MNO provides a UICC (eg, a SIM card or USIM card) to the user, and the user can insert the provided UICC into his or her electronic device.
  • eUICC embedded UICC
  • the eUICC may be manufactured as a UICC chip fixed within the terminal during the terminal manufacturing process.
  • An integrated SIM integrated SIM, hereinafter referred to as iSIM
  • iSIM integrated SIM
  • SOC system on chip
  • iSIM has a structure in which it is not easy to physically attach or detach the UICC, such as general wireless terminals such as mobile phones, machine to machine (M2M) or device to device (D2D) terminals, and internet of things (IoT) devices. It can be used in various electronic devices.
  • general wireless terminals such as mobile phones, machine to machine (M2M) or device to device (D2D) terminals, and internet of things (IoT) devices. It can be used in various electronic devices.
  • M2M machine to machine
  • D2D device to device
  • IoT internet of things
  • An electronic device includes a first processor operating in a general non-secure environment; a second processor operating in a secure environment; a first memory allocated to the general non-secure environment; a second memory allocated to the secure environment; and a third memory shared between the general non-secure environment and the secure environment.
  • the second processor encrypts at least some of the secure data to generate an encrypted portion, the secure data is generated by a trusted application executing in the secure environment, and stores the encrypted portion in the third memory. It may be set to store, in the second memory, first information used to encrypt at least part of the secure data and second information generated in the process of encrypting at least part of the secure data.
  • the first processor may be set to store the encrypted portion stored in the third memory in the first memory.
  • a non-transitory computer-readable storage medium storing one or more programs according to an embodiment
  • the one or more programs when executed by at least one processor of the electronic device, cause the electronic device to;
  • a first processor operating in a secure environment executing a trusted application in the secure environment and generating secure data
  • the first processor at least a portion of the generated secure data to generate an encrypted portion.
  • Encrypt store the encrypted portion in a first memory shared between the secure environment and a general non-secure environment, and use the first processor to encrypt at least a portion of the secure data and the security.
  • Second information generated in the process of encrypting at least part of the data is stored in a second memory allocated to the secure environment, and stored in the first memory by a second processor operating in the general non-secure environment. It may include instructions for storing the encrypted portion in a third memory allocated to the general non-secure environment.
  • FIG. 1 is a block diagram of an electronic device 101 in a network environment, according to one or more embodiments.
  • Figure 2 is a block diagram of a program according to one or more embodiments.
  • Figure 3 shows a block diagram for explaining a program module according to one or more embodiments.
  • FIG. 4 is a diagram illustrating an example of an execution environment according to a program module of an electronic device according to one or more embodiments.
  • FIG. 5 is a flowchart illustrating an example of an operation of an electronic device according to one or more embodiments.
  • FIG. 6 is a diagram for explaining an example of the operation of the electronic device of FIG. 5 according to one or more embodiments.
  • FIG. 7 is a flowchart illustrating an example of an operation of an electronic device according to one or more embodiments.
  • FIG. 8 is a diagram for explaining an example of the operation of the electronic device of FIG. 7 according to one or more embodiments.
  • FIG. 1 is a block diagram of an electronic device 101 in a network environment 100, according to various embodiments.
  • the electronic device 101 communicates with the electronic device 102 through a first network 198 (e.g., a short-range wireless communication network) or a second network 199. It is possible to communicate with the electronic device 104 or the server 108 through (e.g., a long-distance wireless communication network). According to one or more embodiments, the electronic device 101 may communicate with the electronic device 104 through the server 108.
  • a first network 198 e.g., a short-range wireless communication network
  • a second network 199 e.g., a second network 199.
  • the electronic device 101 may communicate with the electronic device 104 through the server 108.
  • the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, Sensor module 176, interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module (196), or may include an antenna module (197).
  • at least one of these components eg, the connection terminal 178) may be omitted or one or more other components may be added to the electronic device 101.
  • some of these components e.g., sensor module 176, camera module 180, or antenna module 197) are integrated into one component (e.g., display module 160). It can be.
  • the processor 120 for example, executes software (e.g., program 140) to operate at least one other component (e.g., hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and various data processing or calculations can be performed. According to one or more embodiments, as at least part of data processing or computation, processor 120 may store instructions or data received from another component (e.g., sensor module 176 or communication module 190) into volatile memory. The commands or data stored in the volatile memory 132 may be processed and the resulting data may be stored in the non-volatile memory 134 .
  • software e.g., program 140
  • processor 120 may store instructions or data received from another component (e.g., sensor module 176 or communication module 190) into volatile memory.
  • the commands or data stored in the volatile memory 132 may be processed and the resulting data may be stored in the non-volatile memory 134 .
  • the processor 120 may include a main processor 121 (e.g., a central processing unit or an application processor) or an auxiliary processor 123 (e.g., a graphics processing unit, a neural network) that can operate independently or together with the main processor 121. It may include a processing unit (NPU: neural processing unit), image signal processor, sensor hub processor, or communication processor. For example, if the electronic device 101 includes a main processor 121 and a secondary processor 123, the secondary processor 123 may be set to use lower power than the main processor 121 or be specialized for a designated function. You can.
  • the auxiliary processor 123 may be implemented separately from the main processor 121 or as part of it.
  • the auxiliary processor 123 may, for example, act on behalf of the main processor 121 while the main processor 121 is in an inactive (e.g., sleep) state, or while the main processor 121 is in an active (e.g., application execution) state. ), together with the main processor 121, at least one of the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190) At least some of the functions or states related to can be controlled.
  • coprocessor 123 e.g., image signal processor or communication processor
  • may be part of another functionally related component e.g., camera module 180 or communication module 190. It can be implemented.
  • the auxiliary processor 123 may include a hardware structure specialized for processing artificial intelligence models.
  • Artificial intelligence models can be created through machine learning. For example, such learning may be performed in the electronic device 101 itself, where artificial intelligence is performed, or may be performed through a separate server (e.g., server 108).
  • Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited.
  • An artificial intelligence model may include multiple artificial neural network layers.
  • Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above.
  • artificial intelligence models may additionally or alternatively include software structures.
  • the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101. Data may include, for example, input data or output data for software (e.g., program 140) and instructions related thereto.
  • Memory 130 may include volatile memory 132 or non-volatile memory 134.
  • the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144, or application 146.
  • the input module 150 may receive commands or data to be used in a component of the electronic device 101 (e.g., the processor 120) from outside the electronic device 101 (e.g., a user).
  • the input module 150 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).
  • the sound output module 155 may output sound signals to the outside of the electronic device 101.
  • the sound output module 155 may include, for example, a speaker or a receiver. Speakers can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. According to one or more embodiments, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 160 can visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display module 160 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device.
  • the display module 160 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 170 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one or more embodiments, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101. Sound may be output through (e.g., electronic device 102) (e.g., speaker or headphone).
  • electronic device 102 e.g., speaker or headphone
  • the sensor module 176 detects the operating state (e.g., power or temperature) of the electronic device 101 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 176 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, It may include a biometric sensor, temperature sensor, humidity sensor, or illuminance sensor.
  • the interface 177 may support one or more designated protocols that can be used to connect the electronic device 101 directly or wirelessly with an external electronic device (eg, the electronic device 102).
  • the interface 177 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 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102).
  • the connection terminal 178 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 179 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 can capture still images and moving images. According to one or more embodiments, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 can manage power supplied to the electronic device 101.
  • the power management module 188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101.
  • the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • Communication module 190 is configured to provide a direct (e.g., wired) communication channel or wireless communication channel between electronic device 101 and an external electronic device (e.g., electronic device 102, electronic device 104, or server 108). It can support establishment and communication through established communication channels. Communication module 190 operates independently of processor 120 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one or more embodiments, the communication module 190 may be a wireless communication module 192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194.
  • GNSS global navigation satellite system
  • the corresponding communication module is a first network 198 (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (e.g., legacy It may communicate with an external electronic device 104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a first network 198 e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network 199 e.g., legacy It may communicate with an external electronic device 104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network
  • the wireless communication module 192 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 to communicate within a communication network such as the first network 198 or the second network 199.
  • subscriber information e.g., International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the wireless communication module 192 may support 5G networks after 4G networks and next-generation communication technologies, for example, NR access technology (new radio access technology).
  • NR access technology provides high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access to multiple terminals (massive machine type communications (mMTC)), or ultra-reliable and low-latency (URLLC). -latency communications)) can be supported.
  • the wireless communication module 192 may support high frequency bands (eg, mmWave bands), for example, to achieve high data rates.
  • the wireless communication module 192 uses various technologies to secure performance in high frequency bands, for example, beamforming, massive array multiple-input and multiple-output (MIMO), and full-dimensional multiplexing.
  • MIMO massive array multiple-input and multiple-output
  • the wireless communication module 192 may support various requirements specified in the electronic device 101, an external electronic device (e.g., electronic device 104), or a network system (e.g., second network 199). According to one or more embodiments, the wireless communication module 192 may provide peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U- Can support plane latency (e.g., downlink (DL) and uplink (UL) of 0.5 ms or less each, or round trip of 1 ms or less).
  • peak data rate e.g., 20 Gbps or more
  • loss coverage e.g., 164 dB or less
  • U- Can support plane latency e.g., downlink (DL) and uplink (UL) of 0.5 ms or less each, or round trip of 1 ms or less.
  • the antenna module 197 may transmit or receive signals or power to or from the outside (eg, an external electronic device).
  • the antenna module 197 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 197 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 198 or the second network 199 is, for example, connected to the plurality of antennas by the communication module 190. can be selected. Signals or power may be transmitted or received between the communication module 190 and an external electronic device through the at least one selected antenna.
  • other components eg, radio frequency integrated circuit (RFIC) in addition to the radiator may be additionally formed as part of the antenna module 197.
  • RFIC radio frequency integrated circuit
  • peripheral devices e.g., 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 101 and the external electronic device 104 through the server 108 connected to the second network 199.
  • Each of the external electronic devices 102 or 104 may be of the same or different type as the electronic device 101.
  • all or part of the operations performed in the electronic device 101 may be executed in one or more of the external electronic devices 102, 104, or 108.
  • the electronic device 101 may perform the function or service instead of executing the function or service on its own.
  • one or more external electronic devices may be requested to perform at least part of the function or service.
  • One or more external electronic devices that have received the request may execute at least part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device 101.
  • the electronic device 101 may process the result as is or additionally and provide it as at least part of a response to the request.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology can be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an Internet of Things (IoT) device.
  • Server 108 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 104 or server 108 may be included in the second network 199.
  • the electronic device 101 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
  • Figure 2 is a block diagram 200 of a program 140 according to one or more embodiments.
  • the program 140 is an operating system 142, middleware 144, or an application executable on the operating system 142 for controlling one or more resources of the electronic device 101. It may include (146).
  • Operating system 142 may include, for example, Android TM , iOS TM , Windows TM , Symbian TM , Tizen TM , or Bada TM .
  • At least some of the programs 140 are preloaded into the electronic device 101, for example, during manufacturing, or are stored in an external electronic device (e.g., the electronic device 102 or 104) in an environment in which a user uses the electronic device. , or can be downloaded or updated from the server 108).
  • the operating system 142 may control (e.g., allocate or reclaim) system resources (e.g., processes, memory, or power) of the electronic device 101.
  • Operating system 142 may additionally or alternatively operate on other hardware devices of electronic device 101, such as input device 150, audio output device 155, display device 160, audio module 170. , sensor module 176, interface 177, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196, or It may include one or more driver programs for driving the antenna module 197.
  • the middleware 144 may provide various functions to the application 146 so that the application 146 can use functions or information provided by one or more resources of the electronic device 101.
  • the middleware 144 includes, for example, an application manager 201, a window manager 203, a multimedia manager 205, a resource manager 207, a power manager 209, a database manager 211, and a package manager ( 213), connectivity manager (215), notification manager (217), location manager (219), graphics manager (221), security manager (223), call manager (225), or voice recognition manager (227). can do.
  • the application manager 201 may, for example, manage the life cycle of the application 146.
  • the window manager 203 can, for example, manage GUI resources used on the screen.
  • the multimedia manager 205 may determine the format required for playing media files and encode or decode the media file using a codec suitable for the format.
  • the resource manager 207 may, for example, manage the source code or memory space of the application 146.
  • the power manager 209 manages, for example, battery capacity, temperature, or power, and can use this information to determine or provide power information necessary for the operation of the electronic device 101.
  • the power manager 209 may interface with a basic input/output system (BIOS).
  • BIOS basic input/output system
  • the database manager 211 may create, search, or change a database to be used in the application 146, for example.
  • the package manager 213 may, for example, manage the installation or update of applications distributed in the form of package files.
  • the connectivity manager 215 may manage, for example, a wireless or wired connection between the electronic device 101 and an external electronic device.
  • the notification manager 217 may provide a function for notifying the user of an event that has occurred (eg, a call, a message, or an alarm).
  • the location manager 219 may, for example, manage location information of the electronic device 101.
  • the graphics manager 221 may, for example, manage graphic effects to be provided to users or user interfaces related thereto.
  • Security manager 223 may provide, for example, system security or user authentication.
  • the telephony manager 225 may, for example, manage the voice call or video call function of the electronic device 101.
  • the voice recognition manager 227 transmits the user's voice data to the server 108 and generates a command or corresponding voice corresponding to a function to be performed in the electronic device 101 based on the voice data. You can receive converted text data based on the data.
  • the middleware 244 may dynamically delete some existing components or add new components.
  • at least a portion of the middleware 144 may be included as part of the operating system 142 or may be implemented as software separate from the operating system 142.
  • the application 146 includes, for example, home 251, dialer 253, SMS/MMS (255), instant message (IM) 257, browser 259, camera 261, and alarm 263. , Contacts (265), Voice Recognition (267), Email (269), Calendar (271), Media Player (273), Album (275), Watch (277), Health (279) (e.g. exercise amount or blood sugar level, etc. measurement), or environmental information 281 (e.g., barometric pressure, humidity, or temperature information) applications. According to one or more embodiments, the application 146 may further include an information exchange application configured to support information exchange between the electronic device 101 and an external electronic device.
  • an information exchange application configured to support information exchange between the electronic device 101 and an external electronic device.
  • the information exchange application may include, for example, a notification relay application for delivering designated information (e.g., a call, message, or alarm) to an external electronic device, or a device management application for managing the external electronic device.
  • the notification relay application transmits notification information corresponding to an event (e.g., email reception) generated in another application (e.g., email application 269) of the electronic device 101 to an external electronic device.
  • notification information may be received from an external electronic device and provided to the user of the electronic device 101.
  • the device management application may, for example, control the power (e.g., turn-on or turn-on) of an external electronic device or some component thereof (e.g., display device 160 or camera module 180) that communicates with the electronic device 101. -off) or functions (e.g., brightness, resolution, or focus of the display device 160 or the camera module 180) can be controlled.
  • a device management application may additionally or alternatively support installation, deletion, or update of applications running on external electronic devices.
  • an electronic device eg, the electronic device 101 of FIG. 1
  • the electronic device described below may be implemented like the electronic device 101 described above in FIG. 1, redundant description will be omitted.
  • FIG. 3 is a diagram for explaining an example of the configuration of the electronic device 101 according to one or more embodiments.
  • the electronic device 101 may be implemented to include more or fewer components than those shown in FIG. 3 .
  • FIG. 3 will be described with reference to FIG. 4 .
  • FIG. 4 is a diagram illustrating an example of an execution environment according to a program module of an electronic device (eg, the electronic device 101 of FIG. 1 ) according to one or more embodiments.
  • the program module 400 may include a rich execution environment (REE) 410 and a trusted execution environment (TEE) 420.
  • the REE 410 and TEE 420 may be distinguished, for example, in hardware or in software. In one or more examples, REE 410 and TEE 420 may be physically separated and/or software separated.
  • the REE 410 may be an environment in which a general operating system (eg, the operating system 242 of FIG. 2) operates. For example, Android operating system, Windows operating system, Linux operating system, etc. can operate on REE 410.
  • TEE 420 may be an environment running a securely secured operating system, for example a secured operating system, or any other working system well known to those skilled in the art.
  • a secure operating system such as Qualcomm's QSee, Trustonic's Kinibi, etc. may operate on the TEE 420.
  • applications supporting iSIM functionality may operate on TEE 420.
  • Data processing based on a secure operating system may be performed securely and safely within the TEE 420.
  • TEE 420 includes a trust zone, a secure execution environment, a platform security processor, trusted execution technology, software guard extensions, Alternatively, it may be implemented in various ways, such as any other implementation configuration known to those skilled in the art, and a person skilled in the art will easily understand that there is no limitation to the implemented configuration.
  • the REE 410 may include an application layer 411, a framework layer 412, and a kernel layer 413.
  • various applications eg, application 246 in FIG. 2
  • the framework layer 412 may operate functions that support the operation of applications and services provided by the operating system.
  • the kernel layer 413 may be a layer in which core functions of the operating system operate.
  • the kernel layer 413 for example, may be configured to control or manage system resources used to execute operations or functions implemented in other programs. Additionally, the kernel layer 413 may provide an interface for controlling or managing system resources by accessing individual components of the electronic device 101.
  • TEE 420 includes a trusted application layer 421, a trusted framework layer 422, and a secured operating system kernel layer. (423) may be included.
  • a trusted application can operate.
  • the electronic device 101 may execute an application that performs the iSIM function in the trusted application layer 421.
  • a trusted application can create, transmit, receive, and store data requiring security during the execution of the application, which will be described in more detail later.
  • Trusted framework layer 422 may run an operating system running on TEE 420, such as a security operating system.
  • the security OS kernel layer 423 may be a layer in which the core functions of the security operating system operate.
  • the secure OS kernel layer 423 may control or manage system resources used to execute, for example, trusted applications or operations or functions implemented in the secure operating system.
  • various hardware eg, memory 330 and processor 320 of the electronic device 101 may operate.
  • the processor 320 may include a first processor 321 and a second processor 322.
  • the first processor 321 and the second processor 322 perform operations executed in a plurality of execution environments (e.g., REE 410 and TEE 420) isolated from each other. can do.
  • the plurality of execution environments may be implemented as software-isolated execution environments, hardware-isolated execution environments, or a combination thereof.
  • each of the first processor 321 and the second processor 322 operates in at least one of a plurality of execution environments to perform a designated operation, and/or the electronic device 101 It is possible to control at least one hardware component included in .
  • the first processor 321 may include an application processor (AP) and may perform operations executed in the REE (410).
  • the second processor 322 may include a secure processor (SP) and may perform operations executed in the TEE 420.
  • Operations of the processor 320 eg, the first processor 321 and the second processor 322) described below may be performed according to the execution of modules stored in the memory 330.
  • the modules may be implemented (eg, executed) in software, firmware, or a combination of at least two or more thereof.
  • the modules are in the form of applications, programs, computer code, instructions, routines, or processes that can be executed by the processor 320.
  • each module may be implemented as hardware (e.g., processor, control circuit) separate from the processor 320.
  • the memory 330 may include a first memory 331, a second memory 332, a third memory 333, and a fourth memory 334.
  • the first memory 331 (eg, at least a portion of the non-volatile memory 138 of FIG. 1) is a non-secure memory and may be a non-volatile memory.
  • the first memory 332 may store data output from an application running on the application layer 311 of the REE (410).
  • an application is executed in the application layer 411 by the first processor 321, and the first processor 321 transmits data generated during application execution to the first processor 321 through the kernel layer 413. It can be stored in memory 332.
  • the first processor 321 may read data required during application execution from the first memory 331 through the kernel layer 413.
  • the second memory 332 is a volatile memory and may be a shared memory shared between the REE 410 and the TEE 420.
  • the second memory 332 may be dynamic random access memory (DRAM).
  • the second memory 332 may temporarily store at least some of the security data output from a trusted application operating in the trusted application layer 421 under the control of the first processor 321 and the second processor 322. there is.
  • the trusted application is executed in the trusted application layer 421 by the second processor 322, and the second processor 322 transfers data to the secure OS kernel as the trusted application is executed.
  • a request is made to the first processor 321 through the mailbox of the layer 423, and the first processor 321 sends a currently running daemon to the second processor 322 through the mailbox of the kernel layer 413.
  • the data stored in the first memory 331 can be read through the daemon and temporarily stored in the second memory 332.
  • the second processor 322 may read data temporarily stored in the second memory 332 through the secure OS kernel layer 423 and transmit it to the trusted application layer 421.
  • the trusted application is executed in the trusted application layer 421 by the second processor 322, and the second processor 322 collects the security data generated as the trusted application is executed. It may be stored in the second memory 332, and storage of the security data temporarily stored in the second memory 332 may be requested from the first processor 321 through the mail box of the security OS kernel layer 423.
  • the first processor 321 temporarily stores the request in the second memory 332 through the daemon.
  • Security data can be read and stored in the first memory 331.
  • the request from the second processor 322 may include the address of the second memory 332 where the security data is stored.
  • the third memory 333 may be a volatile memory (eg, volatile memory 132 of FIG. 1) and may have a lower capacity than the first memory 331.
  • the third memory 333 may be static random access memory (SRAM).
  • the third memory 333 may temporarily store at least some of the security data output from a trusted application running in the trusted application layer 421.
  • a trusted application is executed in the trusted application layer 421 by the second processor 322, and the second processor 322 selects the security data generated as the trusted application is executed. At least part of it can be temporarily stored in the third memory 333 through the security OS kernel layer 423.
  • data stored in the third memory 333 may be encrypted and copied (e.g., swapped out) to the second memory 332.
  • Data stored in the second memory 332 may be decrypted and copied (eg, swapped in) to the third memory 333.
  • the fourth memory 334 (eg, at least a portion of the non-volatile memory 138 of FIG. 1) is a non-volatile memory and may be a secure memory.
  • the fourth memory 334 may store at least some of the security data output from a trusted application running in the trusted application layer 421.
  • a trusted application is executed in the trusted application layer 421 by the second processor 322, and the second processor 322 selects the security data generated as the trusted application is executed. At least part of it can be stored in the fourth memory 334 through the security OS kernel layer 423.
  • the fourth memory 334 may be a storage space where data read, modify, or delete functions are rarely performed.
  • the electronic device 101 may be set to allow access to the fourth memory 334 only for a specific command set. For example, according to a command from a trusted application, data in the fourth memory 334 may be read, modified, or deleted. In addition, data in the fourth memory 334 may not be read, modified, or deleted depending on a command from a general application rather than a trusted application. According to one or more embodiments, information used in the process of encrypting secure data may be stored in the fourth memory 334. Information stored in the fourth memory 334 can be used to decrypt encrypted security data at a later time. This will be described in more detail later.
  • the electronic device 101 performs a plurality of execution functions based on hardware (e.g., memories 331 to 334 and/or processors 321 and 322) implemented independently from each other. It may be implemented to perform an operation (or function) in environments.
  • different pieces of hardware associated with different permissions may be allocated to a plurality of execution environments (e.g., REE 410 and TEE 420). For example, referring to FIG. 4, hardware devices located to the left of the dotted line are assigned to the REE (410) (or run in the REE (410)), and hardware devices located to the right are assigned to the TEE (420). It may be assigned to (or driven in the TEE 420). For example, referring to FIG.
  • different memories 331 to 334 may be allocated to a plurality of execution environments (eg, REE 410 and TEE 420).
  • the first processor 321 executes the first operating system on the REE 410 to perform at least one operation, and reads and writes data to the first memory 331 allocated to the REE 410. there is.
  • the second processor 322 executes a second operating system separate and independent from the first operating system of the REE 410 in the TEE 420 to perform at least one operation, and performs at least one operation in the TEE 420. Data can be read and written to the third memory 323 and the fourth memory 334.
  • the authority and/or security for the TEE 420 may be higher than the authority and/or security for the REE 410.
  • the second processor 322 may access the first memory 331 allocated to the REE 410 in the TEE 420 to read and write data, but the first processor 321 may Access from the REE 410 to the fourth memory 334 allocated to the TEE 420 may be restricted. For example, the first processor 321 may not be able to write data to the fourth memory 334 or read data stored in the fourth memory 334. According to one or more embodiments, access to the second memory 332 by the REE 410 and the TEE 420 may be permitted. For example, the first processor 321 may write data to the second memory 332 in the REE 410 or read data stored in the second memory 332. For example, the second processor 322 may write data to the second memory 332 in the TEE 420 or read data stored in the second memory 332.
  • the electronic device 101 encrypts the security data generated by the execution of the trusted application in the TEE 420 and stores the first memory allocated to the REE 410 through the second memory 332. It can be stored in the memory 331 in the form of a file, and information used to encrypt and/or decrypt security data can be stored in the fourth memory 334.
  • the electronic device 101 stores the first memory 331 allocated to the REE 410 through a daemon currently running in the REE 410.
  • FIG. 5 is a flowchart 500 illustrating an example of an operation of the electronic device 101 according to one or more embodiments.
  • the operations shown in FIG. 5 are not limited to the order shown and may be performed in a variety of orders. Additionally, according to one or more embodiments, more operations may be performed, or at least one operation less than the operations shown in FIG. 5 may be performed. Below, FIG. 5 will be described with reference to FIG. 6 .
  • the electronic device 101 executes a trusted application in the trusted application layer 421 of the TEE 420 in operation 501 to collect secure data.
  • a trusted application in the trusted application layer 421 of the TEE 420 in operation 501 to collect secure data.
  • the data generated includes information that requires security, such as subscriber identification information, authentication key, subscriber phone number, local area ID, personal identification number (PIN), and service provider information. It may include at least one of:
  • security data may vary depending on the application being executed and may include information specified by the developer of the application.
  • the electronic device 101 e.g., the second processor 322) stores security data (e.g., 631 in FIG. 6) generated by execution of a trusted application in the third memory 333 through the secure OS kernel layer 423. ) can be temporarily stored in .
  • the electronic device 101 encrypts the security data or a portion thereof in use in the trusted application in operation 503 (e.g., 601 in FIG. 6) and secures the security OS kernel layer 423. It can be copied (e.g., swap out) to the second memory 332 (e.g., 621 in FIG. 6).
  • advanced encryption standard (AES)-galois/counter mode (GCM) may be used to encrypt data.
  • AES advanced encryption standard
  • GCM Galois/counter mode
  • the encryption method is not limited to this, and other encryption methods known to those skilled in the art that ensure confidentiality and integrity may be used.
  • data encryption may be performed in blocks by dividing data into predetermined sizes.
  • rolling back encrypted data may include changing the encrypted data to a previous form, such as unencrypted data.
  • an anti-replay counter (ARC) may be used to prevent rollback.
  • different ARC values may be used for each data block. Different ARC values used for each data block may be temporarily stored in the third memory 333 in table form. In one or more embodiments, different ARC values used for each data block may be temporarily stored in the third memory 333 in the form of a table (eg, 632 in FIG. 6).
  • the ARC table may be a linear array composed of ARC values.
  • the number of ARC values may be determined according to the size of the security data copied (eg, swapped out) to the second memory 332. For example, 256 ARC values can be used to encrypt 2MB of secure data and copy (e.g., swap out) it to the second memory 332. Each ARC value may be increased by 1 from a predetermined initial value.
  • secure data is copied (e.g., swap out) to the second memory 332 or copied (e.g., swap in) from the second memory 332
  • the corresponding ARC value is used to encrypt the secure data.
  • it can be used as an initial vector (IV) of a decoding operation.
  • IV may be calculated by the following equation:
  • the device specific value is a value unique to the electronic device and may consist of 4 bytes.
  • ARC can be composed of 8 bytes, and IV can be composed of 16 bytes including 4 bytes of zero padding.
  • the electronic device 101 encrypts the parameter values generated in the process of encrypting data in block units and stores them in the second memory 332 through the security OS kernel layer 423 ( Example: swap out).
  • a tag (TAG) (e.g., 651 in FIG. 6) is generated for each data block, and the electronic device 101 (e.g., the second The processor 322) encrypts the tags generated during the encryption process in table form (e.g., 603 in FIG. 6) and stores them (e.g., swap out) in the second memory 332 through the security OS kernel layer 423. (e.g. 623 in FIG. 6).
  • AES-ECB electronic code block
  • the encryption method is not limited to this, and other encryption methods known to those skilled in the art that ensure confidentiality may be used.
  • the electronic device 101 encrypts the information generated during the data encryption process and stored in the third memory 333 to establish the secure OS kernel layer 423. It can be copied (eg, swapped out) to the second memory 332.
  • the electronic device 101 e.g., the second processor 322 encrypts the ARC table stored in the third memory 333 (e.g., 605 in FIG. 6) to create a secure OS kernel layer ( 423) can be copied (e.g., swap out) to the second memory 332 (e.g., 622 in FIG. 6).
  • AES-GCM may be used to encrypt the ARC table.
  • the encryption method is not limited to this, and other encryption methods known to those skilled in the art that ensure confidentiality and integrity may be used.
  • the electronic device 101 e.g., the second processor 322 is used when encrypting information generated in the encryption process and stores the generated parameters in the fourth memory through the secure OS kernel 423. It can be saved at (334).
  • the electronic device 101 e.g., the second processor 322 may use the master ARC as an initial vector (IV) when encrypting the ARC table. Master ARC can be generated as a random value each time secure data generated from a trusted application is stored.
  • a master ARC may be used when decrypting an encrypted ARC table.
  • the electronic device 101 may store the master ARC in the fourth memory 334 through the secure OS kernel layer 423 (e.g., 641 in FIG. 6). .
  • a master tag may be created in the process of encrypting the ARC table. The master tag can be used when decrypting an encrypted ARC table.
  • the electronic device 101 e.g., the second processor 322 may store the master tag in the fourth memory 334 through the secure OS kernel layer 423 (e.g., 642 in FIG. 6). .
  • the electronic device 101 may store the encrypted data stored in the second memory 332 in the first memory 331 allocated to the REE 410.
  • the second processor 322 of the electronic device 101 sends secure data assigned to the REE 410 to the first processor 321 through the mailbox of the secure OS kernel layer 423. It may be requested to store it in the first memory 331.
  • the first processor 321 of the electronic device 101 may receive a request for security data from the second processor 322 through the mail box of the kernel layer 413 while running a daemon in the REE 410. .
  • the request transmitted from the second processor 322 to the first processor 321 may include the address of the second memory 332 where the security data is stored.
  • the first processor 321 of the electronic device 101 reads the encrypted data stored in the second memory 332 through a daemon running in the REE 410 and encrypted data read through the kernel layer 413. may be stored in the first memory 331 (e.g., 607 in FIG. 6).
  • the encrypted data stored in the second memory 332 includes encrypted security data (e.g., 611 in FIG. 6), an encrypted ARC table (e.g., 612 in FIG. 6), and an encrypted tag. It may include a table (e.g., 613 in FIG. 6), and the encrypted data may be stored in the first memory 331 in the form of a single file (e.g., 610 in FIG. 6).
  • FIG. 7 is a flowchart 700 illustrating an example of an operation of the electronic device 101 according to one or more embodiments.
  • the operations shown in FIG. 7 are not limited to the order shown and can be performed in a variety of orders. Additionally, according to one or more embodiments, more operations may be performed, or at least one operation less than the operations shown in FIG. 7 may be performed. Below, FIG. 7 will be described with reference to FIG. 8 .
  • the electronic device 101 may execute a trusted application in the trusted application layer 421 of the TEE 420 in operation 701.
  • the second processor 322 sends the security information stored in the first memory 331 to the first processor 321 via the mailbox of the secure OS kernel 423. You can request data.
  • the electronic device 101 may read the encrypted data file (e.g., 610 in FIG. 8) stored in the first memory 331 in operation 703 (e.g., 801).
  • the encrypted data file e.g., 610 in FIG. 8 stored in the second memory 332 can be read (e.g., 801 in FIG. 8).
  • the first memory 331 contains encrypted data (e.g., 611 in FIG. 8), encryption An encrypted ARC table (e.g., 612 in FIG. 8) and an encrypted tag table (e.g., 613 in FIG. 8) may be stored.
  • the electronic device 101 e.g., the first processor 321 encodes the encrypted data included in the file read from the first memory 331 (e.g., 611 in FIG. 8) and the encrypted ARC table (e.g. : 612 in FIG. 8), and the encrypted tag table (e.g., 613 in FIG. 8) can be copied to the second memory 332.
  • the first processor 321 encodes data included in a file read from the first memory 331 through a daemon running in the REE 410 (e.g., 611 in FIG. 8),
  • the encrypted ARC table e.g., 612 in FIG. 8
  • the encrypted tag table e.g., 613 in FIG. 8
  • the electronic device 101 can decrypt the encrypted data (e.g., 611 in FIG. 8) copied to the second memory 332 in operation 705 for use in a trusted application. there is.
  • the electronic device 101 e.g., the second processor 322 may store encrypted data (e.g., 411 in FIG. 6), an encrypted ARC table (e.g., 612 in FIG. 8), and encryption. Each tag table (e.g., 613 in FIG. 8) can be decrypted.
  • the electronic device 101 e.g., the second processor 322) may verify and decrypt the encrypted data generated during the encryption process using encryption information stored in the fourth memory 334. .
  • the electronic device 101 may decrypt (e.g., 803 of FIG. 8) the encrypted ARC table (e.g., 622 of FIG. 8).
  • the fourth memory 334 includes a master ARC created and used in the encryption process (e.g., 641 in FIG. 8). and master tag (e.g., 642 in FIG. 8) are stored.
  • the second processor 322 stores the master ARC (e.g., 641 in FIG. 8) and the master tag (e.g., 641 in FIG.
  • a master tag may be used for verification of an encrypted ARC table.
  • the electronic device 101 e.g., the second processor 322 may store (swap in) the decrypted ARC table in the third memory 333 through the secure OS kernel layer 423 (e.g., FIG. 8 632).
  • the electronic device 101 may decrypt the encrypted security data using the decrypted information.
  • the electronic device 101 e.g., the second processor 322 stores the ARC values of the decrypted ARC table (e.g., 632 in FIG. 8) and the decrypted ARC values copied to the second memory 332.
  • the encrypted security data e.g., 621 in FIG. 8 copied to the second memory 332 can be decrypted in block units (e.g., in FIG. 8 of 805). For example, data may be split into one or more blocks, where the data is encrypted block by block and then decrypted block by block.
  • the electronic device 101 (e.g., the second processor 322) stores the decrypted security data in the third memory 333 through the secure OS kernel layer 423 (e.g., swap in) can be done (e.g., 631 in FIG. 8). Thereafter, the electronic device 101 (e.g., the second processor 322) uses the decrypted security data stored in the third memory 333 through a trusted application running in the trusted application layer 421 of the TEE 420. You can use it.
  • the secure OS kernel layer 423 e.g., swap in
  • the electronic device 101 e.g., the second processor 322 uses the decrypted security data stored in the third memory 333 through a trusted application running in the trusted application layer 421 of the TEE 420. You can use it.
  • FIG. 9 is a diagram illustrating an example of the format of security data stored in the fourth memory 334 of the electronic device 101 according to one or more embodiments.
  • At least some of the security data output from a trusted application running on the trusted application layer 421 may be stored in the fourth memory 334 .
  • a trusted application is executed in the trusted application layer 421 by the second processor 322, and the second processor 322 selects the security data generated as the trusted application is executed. At least part of it can be stored in the fourth memory 334 through the security OS kernel layer 423. According to one or more embodiments, information used in the process of encrypting secure data may be stored in the fourth memory 334.
  • data 910 generated by execution of trusted application number 1 may be stored in slot A (slot A) 920 of the fourth memory 334.
  • Data including 916 may be stored in the fourth memory 334.
  • Data stored in the fourth memory 334 includes a magic field 911, a version field 912, and an active set, in addition to the master ARC field 915 and the master tag field 916. It may further include a field 913, a data size field 914, and a Reserved field 917.
  • the magic field 911 may consist of 4 bytes and may be an integer used to confirm a command.
  • the version field 912 may consist of 4 bytes and may be a value representing version information of the corresponding data.
  • the active set field 913 may consist of 4 bytes and may be a flag value indicating a set in which correct information is stored.
  • the data size field 914 may consist of 4 bytes and may be a value indicating the size of security data generated by the corresponding trusted application.
  • the master ARC field 915 may consist of 8 bytes, and the master ARC may be a random value generated each time secure data generated from a trusted application is stored. Master ARC can be used as an IV (initial vector) when encrypting an ARC table or decrypting an encrypted ARC table.
  • the master tag field 916 may consist of 16 bytes, and the master tag may be an authentication tag created as a result of an encryption operation when the ARC table is encrypted and copied (e.g., swapped out) to the second memory 332.
  • the master tag can be used as an authentication tag when decrypting an encrypted ARC table.
  • An electronic device includes a first processor 321 operating in a general environment 410; a second processor 322 operating in a secure environment 420; a first memory 331 allocated to the general environment; a second memory 334 allocated to the secure environment; and a third memory 332 shared between the general environment and the secure environment.
  • the second processor encrypts at least some of the secure data generated by a trusted application running in the secure environment and stores it in the third memory, and encodes first information used to encrypt at least some of the secure data. and may be set to store second information generated in the process of encrypting at least part of the secure data in the second memory.
  • the first processor may be set to store at least some of the encrypted secure data stored in the third memory in the first memory.
  • the second processor encrypts the at least some of the secure data in blocks, using different anti-replay counter (ARC) values for each block, and the ARC values are
  • the stored ARC table 432 can be encrypted, and the tag values 651 generated in the process of encrypting at least some of the security data in block units can be set to encrypt the stored tag table.
  • the first processor stores at least some of the encrypted secure data 611, the encrypted ARC table 612, and the encrypted tag table 613 in a file format 610. It can be set to be stored in the first memory.
  • the first information may be a master ARC (641), and the second information may be a master tag (642).
  • the first processor copies at least some of the encrypted security data stored in the first memory and stores it in the third memory.
  • the second processor may be set to decrypt at least some of the encrypted secure data stored in the third memory using the first information and the second information.
  • At least some of the encrypted secure data stored in the third memory is an encryption device in which ARC (anti-replay counter) values used in the process of encrypting the at least some secure data in block units are stored. It includes an ARC table 622 and an encrypted tag table 623 in which tag values generated in the process of encrypting at least some of the secure data in blocks are stored, and the second processor is configured to store the first information and the Decrypt the encrypted ARC table using second information, decrypt the tag table, and decrypt at least some of the secure data encrypted in blocks using the decrypted ARC table and the decrypted tag table. It can be set to do so.
  • ARC anti-replay counter
  • the first processor reads a file 610 containing the encrypted secure data, the encrypted ARC table, and the encrypted tag table from the first memory, and performs the encryption
  • the encrypted security data, the encrypted ARC table, and the encrypted tag table may be set to be separated and stored in the third memory.
  • the second processor is configured to encrypt at least some of the secure data and the ARC table using an advanced encryption standard (AES)-galois/counter mode (GCM) method. You can.
  • AES advanced encryption standard
  • GCM Galois/counter mode
  • the second processor may be configured to decrypt at least some of the encrypted secure data using an advanced encryption standard (AES)-galois/counter mode (GCM) method.
  • AES advanced encryption standard
  • GCM Galois/counter mode
  • the second processor may be configured to encrypt the tag table using an advanced encryption standard (AES)-electronic code block (ECB) method.
  • AES advanced encryption standard
  • EBC electronic code block
  • a method of operating an electronic device includes an operation (501) of executing a trusted application in a secure environment and generating secure data by a first processor 322 operating in a secure environment 420. ) may include.
  • the method includes an operation 503 of encrypting at least some of the generated security data by the first processor and storing it in a first memory 332 shared between the secure environment and the general environment 410. can do.
  • the method allocates, by the first processor, first information used to encrypt at least part of the secure data and second information generated in the process of encrypting at least part of the secure data to the security area. It may include an operation 503 of storing the data in the second memory 334.
  • the method includes storing at least some of the encrypted security data stored in the first memory in a third memory 331 allocated to the general environment by a second processor 321 operating in the general environment. Operation 505 may be included.
  • the encryption operation 503 encrypts the at least some secure data in blocks by the first processor, and uses different anti-replay counter (ARC) values for each block.
  • the operation 505 of storing in the third memory includes, by the second processor, the encrypted at least some secure data, the encrypted ARC table, and the encrypted tag table. It may include an operation of storing (607) in the first memory in a file format (610).
  • the first information may be a master ARC (641), and the second information may be a master tag (642).
  • At least some of the encrypted secure data stored in the first memory is copied by the second processor to the second processor.
  • An operation of storing in a memory (703), an operation of decrypting at least some of the encrypted security data stored in the first memory by the first processor using the first information and the second information (705) ) may further be included.
  • At least some of the encrypted secure data stored in the first memory is an encryption device in which ARC (anti-replay counter) values used in the process of encrypting the at least some secure data in block units are stored. It includes an ARC table 621 and an encrypted tag table 623 in which tag values generated in the process of encrypting at least some of the secure data in block units are stored, and the decryption operation 705 includes the first By a processor, an operation of decrypting the encrypted ARC table using the first information and the second information (803), an operation of decrypting the tag table (805), and the decrypted ARC table and the decrypted An operation 805 of decrypting at least some of the secure data encrypted in blocks using a tag table may be included.
  • ARC anti-replay counter
  • a file 610 containing the encrypted secure data, the encrypted ARC table, and the encrypted tag table is read, by the second processor, from the third memory (801). ), separating the encrypted security data 621, the encrypted ARC table 622, and the encrypted tag table 623 and storing them in the first memory.
  • the encryption operations 601 and 605 include encryption using an advanced encryption standard (AES)-galois/counter mode (GCM) method when encrypting at least some of the secure data and the ARC table. can do.
  • AES advanced encryption standard
  • GCM Galois/counter mode
  • the decryption operation 705 may decrypt at least some of the encrypted secure data using an advanced encryption standard (AES)-galois/counter mode (GCM) method.
  • AES advanced encryption standard
  • GCM Galois/counter mode
  • the operation 603 of encrypting the tag table may be performed using an advanced encryption standard (AES)-electronic code block (ECB) method.
  • AES advanced encryption standard
  • EBC electronic code block
  • An electronic device may be of various types.
  • Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances.
  • Electronic devices according to one or more embodiments of this document are not limited to the above-described devices.
  • first, second, or first or second may be used simply to distinguish one component from another, and to refer to those components in other respects (e.g., importance or order) is not limited.
  • One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.”
  • module used in one embodiment of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. can be used
  • a module may be an integrated part or a minimum unit of the parts or a part 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
  • One or more embodiments of this document are stored in a storage medium (e.g., built-in memory 136 or external memory 138) that can be read by a machine (e.g., electronic device 101). It may be implemented as software (e.g., program 140) including one or more instructions.
  • a processor e.g., processor 120
  • the one or more instructions may include code generated by a compiler or code that can be executed by an interpreter.
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves).
  • This term refers to cases where data is stored semi-permanently in the storage medium. There is no distinction between cases where it is temporarily stored.
  • a method according to one or more embodiments disclosed in this document may be provided and included in a computer program product.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online.
  • a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
  • each component e.g., module or program of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately arranged in other components. It could be. According to one or more embodiments, one or more of the components or operations described above may be omitted, or one or more other components or operations may be added. Alternatively or additionally, multiple components (eg, modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component of the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be 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)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Telephone Function (AREA)

Abstract

일 실시 예에 따라서, 전자 장치는, 일반 비보안 환경에서 동작하는 제1 프로세서; 보안 환경에서 동작하는 제2 프로세서; 상기 일반 비보안 환경에 할당된 제1 메모리; 상기 보안 환경에 할당된 제2 메모리; 및 상기 일반 비보안 환경과 상기 보안 환경에서 공유되는 제3 메모리를 포함할 수 있다. 상기 제2 프로세서는, 암호화 된 부분을 생성하기 위해 보안 데이터 중 적어도 일부를 암호고, 상기 보안 데이터는 상기 보안 환경에서 실행되는 신뢰된 어플리케이션에 의해 생성되고, 상기 암호화 된 부분을 상기 제3 메모리에 저장하고, 상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를 상기 제2 메모리에 저장하도록 설정될 수 있다. 상기 제1 프로세서는, 상기 제3 메모리에 저장된, 상기 암호화 된 부분을 상기 제1 메모리에 저장하도록 설정될 수 있다.

Description

보안 데이터를 저장하는 전자 장치 및 그 동작 방법
본 개시는 보안 데이터를 저장하는 전자 장치 및 그 동작 방법에 관한 것이다.
무선 통신 시스템에서 전자 장치(예: 사용자 장치(user equipment: UE))는 무선 통신 네트워크에 접속하여 정해진 위치나 이동 중에 음성 통신 서비스 또는 데이터 통신 서비스를 이용할 수 있다. 음성 통신 서비스 또는 데이터 통신 서비스 이외에도 전자 장치를 통해 제공되는 서비스 및 부가 기능들은 점차 증가하고 있다. 전자 장치에 다양한 서비스와 부가 기능들을 제공하기 위해서는 적절한 인증 과정이 필요하며 보안이 요구되는 데이터들을 안전하게 처리할 필요가 있다.
일반적으로는 UICC(universal integrated circuit card; 범용 집적 회로 카드)가 전자 장치에 삽입되고, UICC 내부에 설치되어 있는 USIM(universal subscriber identity module)을 통해 전자 장치와 통신 사업자(mobile network operator; MNO)의 서버 간에 인증이 수행된다. 전자 장치의 사용자가 MNO가 제공하는 무선 통신 서비스에 가입하면, MNO는 사용자에게 UICC(예: SIM 카드 또는 USIM 카드)를 제공하고, 사용자가 자신의 전자 장치에 제공받은 UICC를 삽입할 수 있다. 최근에는 사용자가 MNO를 변경하더라도 UICC를 교체하지 않고도, 통신 서비스 제공을 위한 프로파일(profile)을 네트워크를 통해 원격으로 설치할 수 있는 이른바 eUICC(embedded UICC)이 제안되고 있다. 상기 eUICC는 단말의 제조 과정에서 단말 내에 고정된 UICC 칩으로 제작될 수 있다. eUICC 보다 진보된 SIM 기능을 전자 기기의 하드웨어에 통합하여 SOC(system on chip) 형태로 구성하는 통합형 SIM(integrated SIM, 이하 iSIM)이 제안되었다.
iSIM은 휴대폰과 같은 일반 무선 단말은 물론 M2M(machine to machine) 또는 D2D(device to device) 단말, 및 사물 인터넷(internet of things: IoT) 기기와 같이 물리적으로 UICC의 착탈이 용이하지 않는 구조를 가질 수 있는 각종 전자 장치에 이용될 수 있다.
일 실시 예에 따른 전자 장치는, 일반 비보안 환경에서 동작하는 제1 프로세서; 보안 환경에서 동작하는 제2 프로세서; 상기 일반 비보안 환경에 할당된 제1 메모리; 상기 보안 환경에 할당된 제2 메모리; 및 상기 일반 비보안 환경과 상기 보안 환경에서 공유되는 제3 메모리를 포함할 수 있다. 상기 제2 프로세서는, 암호화 된 부분을 생성하기 위해 보안 데이터 중 적어도 일부를 암호고, 상기 보안 데이터는 상기 보안 환경에서 실행되는 신뢰된 어플리케이션에 의해 생성되고, 상기 암호화 된 부분을 상기 제3 메모리에 저장하고, 상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를 상기 제2 메모리에 저장하도록 설정될 수 있다. 상기 제1 프로세서는, 상기 제3 메모리에 저장된, 상기 암호화 된 부분을 상기 제1 메모리에 저장하도록 설정될 수 있다.
일 실시 예에 따른 전자 장치의 동작 방법은, 보안 환경에서 동작하는 제1 프로세서에 의해, 상기 보안 환경에서 신뢰된 어플리케이션을 실행하고 보안 데이터를 생성하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 프로세서에 의해, 암호화 된 부분을 생성하기 위해 상기 생성된 보안 데이터 중 적어도 일부를 암호화 하고, 상기 암호화된 부분을 상기 보안 환경과 일반 비보안 환경에서 공유되는 제1 메모리에 저장하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 프로세서에 의해, 상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를, 상기 보안 환경에 할당된 제2 메모리에 저장하는 동작을 포함할 수 있다. 상기 방법은, 상기 일반 비보안 환경에서 동작하는 제2 프로세서에 의해, 상기 제1 메모리에 저장된, 상기 암호화 된 부분을 상기 일반 비보안 환경에 할당된 제3 메모리에 저장하는 동작을 포함할 수 있다.
일 실시 예에 따른 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체에 있어서, 상기 하나 이상의 프로그램은 전자 장치의 적어도 하나의 프로세서에 의해 실행될 때 상기 전자 장치가; 보안 환경에서 동작하는 제1 프로세서에 의해, 상기 보안 환경에서 신뢰된 어플리케이션을 실행하고 보안 데이터를 생성하고, 상기 제1 프로세서에 의해, 암호화 된 부분을 생성하기 위해 상기 생성된 보안 데이터 중 적어도 일부를 암호화 하고, 상기 암호화된 부분을 상기 보안 환경과 일반 비보안 환경에서 공유되는 제1 메모리에 저장하고, 상기 제1 프로세서에 의해, 상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를, 상기 보안 환경에 할당된 제2 메모리에 저장하고, 상기 일반 비보안 환경에서 동작하는 제2 프로세서에 의해, 상기 제1 메모리에 저장된, 상기 암호화 된 부분을 상기 일반 비보안 환경에 할당된 제3 메모리에 저장하도록 구성하는 명령어들을 포함할 수 있다.
도 1은, 하나 또는 그 이상의 실시 예에 따른, 네트워크 환경 내의 전자 장치(101)의 블록도이다.
도 2는 하나 또는 그 이상의 실시 예에 따른 프로그램의 블록도이다.
도 3은 하나 또는 그 이상의 실시 예에 따른 프로그램 모듈을 설명하기 위한 블록도를 도시한다.
도 4는 하나 또는 그 이상의 실시 예에 따른 전자 장치의 프로그램 모듈에 따른 실행 환경의 일 예를 설명하기 위한 도면이다.
도 5는 하나 또는 그 이상의 실시 예에 따른 전자 장치의 동작의 일 예를 설명하기 위한 흐름도이다.
도 6은 하나 또는 그 이상의 실시 예에 따라 도 5의 전자 장치의 동작의 일 예를 설명하기 위한 도면이다.
도 7은 하나 또는 그 이상의 실시 예에 따른 전자 장치의 동작의 일 예를 설명하기 위한 흐름도이다.
도 8은 하나 또는 그 이상의 실시 예에 따라 도 7의 전자 장치의 동작의 일 예를 설명하기 위한 도면이다.
도 9는 하나 또는 그 이상의 실시 예에 따른 전자 장치의 메모리에 저장되는 보안 데이터의 포맷의 일 예를 설명하기 위한 도면이다.
도 1은, 다양한 실시 예에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 하나 또는 그 이상의 실시 예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시 예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(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) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
하나 또는 그 이상의 실시 예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
하나 또는 그 이상의 실시 예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 하나 또는 그 이상의 실시 예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
도 2는 하나 또는 그 이상의 실시 예에 따른 프로그램(140)의 블록도(200)이다. 하나 또는 그 이상의 실시 예에 따르면, 프로그램(140)은 전자 장치(101)의 하나 이상의 리소스들을 제어하기 위한 운영 체제(142), 미들 웨어(144), 또는 상기 운영 체제(142) 상에서 실행 가능한 어플리케이션(146)을 포함할 수 있다. 운영 체제(142)는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램(140) 중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(101)에 프리로드 되거나, 또는 사용자가 전자 장치를 사용하는 환경에서 외부 전자 장치(예: 전자 장치(102 또는 104), 또는 서버(108))로부터 다운로드 되거나 갱신 될 수 있다.
운영 체제(142)는 전자 장치(101)의 시스템 리소스 (예: 프로세스, 메모리, 또는 전원)를 제어(예: 할당 또는 회수)할 수 있다. 운영 체제(142)는, 추가적으로 또는 대체적으로, 전자 장치(101)의 다른 하드웨어 디바이스, 예를 들면, 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.
미들 웨어(144)는 어플리케이션(146)이 전자 장치(101)의 하나 이상의 리소스들이 제공하는 기능 또는 정보를 사용할 수 있도록 다양한 기능들을 어플리케이션(146)으로 제공할 수 있다. 미들 웨어(144)는, 예를 들면, 어플리케이션 매니저(201), 윈도우 매니저(203), 멀티미디어 매니저(205), 리소스 매니저(207), 파워 매니저(209), 데이터베이스 매니저(211), 패키지 매니저(213), 커넥티비티 매니저(215), 노티피케이션 매니저(217), 로케이션 매니저(219), 그래픽 매니저(221), 시큐리티 매니저(223), 통화 매니저(225), 또는 음성 인식 매니저(227)를 포함할 수 있다. 어플리케이션 매니저(201)는, 예를 들면, 어플리케이션(146)의 생명 주기를 관리할 수 있다. 윈도우 매니저(203)는, 예를 들면, 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(205)는, 예를 들면, 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(207)는, 예를 들면, 어플리케이션(146)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(209)는, 예를 들면, 배터리의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(101)의 동작에 필요한 전력 정보를 결정 또는 제공할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 파워 매니저(209)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다.
데이터베이스 매니저(211)는, 예를 들면, 어플리케이션(146)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(213)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(215)는, 예를 들면, 전자 장치(101)와 외부 전자 장치 간의 무선 또는 유선 연결을 관리할 수 있다. 노티피케이션 매니저(217)는, 예를 들면, 발생된 이벤트(예: 통화, 메시지, 또는 알람)를 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(219)는, 예를 들면, 전자 장치(101)의 위치 정보를 관리할 수 있다. 그래픽 매니저(221)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 시큐리티 매니저(223)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(225)는, 예를 들면, 전자 장치(101)의 음성 통화 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(227)는, 예를 들면, 사용자의 음성 데이터를 서버(108)로 전송하고, 해당 음성 데이터에 기반하여 전자 장치(101)에서 수행될 기능에 대응하는 명령어(command) 또는 해당 음성 데이터에 기반하여 변환된 문자 데이터를 수신할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 미들 웨어(244)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 미들 웨어(144)의 적어도 일부는 운영 체제(142)의 일부로 포함되거나, 또는 운영 체제(142)와는 별도의 소프트웨어로 구현될 수 있다.
어플리케이션(146)은, 예를 들면, 홈(251), 다이얼러(253), SMS/MMS(255), IM(instant message)(257), 브라우저(259), 카메라(261), 알람(263), 컨택트(265), 음성 인식(267), 이메일(269), 달력(271), 미디어 플레이어(273), 앨범(275), 와치(277), 헬스(279)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(281)(예: 기압, 습도, 또는 온도 정보) 어플리케이션을 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 어플리케이션(146)은 전자 장치(101)와 외부 전자 장치 사이의 정보 교환을 지원하도록 구성된 정보 교환 어플리케이션을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보 (예: 통화, 메시지, 또는 알람)를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(101)의 다른 어플리케이션(예: 이메일 어플리케이션(269))에서 발생된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(101)의 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치(101)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 표시 장치(160) 또는 카메라 모듈(180))의 전원(예: 턴-온 또는 턴-오프) 또는 기능(예: 표시 장치(160) 또는 카메라 모듈(180)의 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.
이하에서는 다양한 실시 예들에 따른 전자 장치(예: 도 1의 전자 장치(101))의 구성의 일 예에 대해서 설명한다. 이하에서 기술되는 전자 장치는 도 1에서 전술한 전자 장치(101)와 같이 구현될 수 있으므로 중복되는 설명은 생략한다.
도 3은 하나 또는 그 이상의 실시 예에 따른 전자 장치(101)의 구성의 일 예를 설명하기 위한 도면이다. 다만 당업자가 이해하는 바와 같이, 전자 장치(101)는 도 3에 도시되는 구성들 보다 더 많은 구성들 또는 더 적은 구성들을 포함하도록 구현될 수 있다. 이하에서는 도 4를 참조하여 도 3에 대해서 설명한다.
도 4는 하나 또는 그 이상의 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(101))의 프로그램 모듈에 따른 실행 환경의 일 예를 설명하기 위한 도면이다.
도 4를 참조하면, 프로그램 모듈(400)은, REE(rich execution environment)(410) 및 TEE(trusted execution environment)(420)를 포함할 수 있다. REE(410) 및 TEE(420)는, 예를 들어 하드웨어적으로 구분될 수 있거나, 또는 소프트웨어적으로 구분될 수도 있다. 하나 또는 그 이상의 예에서, REE(410) 및 TEE(420)는 물리적으로 분리되고/또는 소프트웨어적으로도 분리될 수도 있다. REE(410)는, 일반적인 운영체제(예: 도 2의 운영 체제(242))가 작동하는 환경일 수 있다. 예를 들어 안드로이드 운영 체제, 윈도우즈(windows) 운영 체제, 리눅스(linux) 운영 체제 등이 REE(410)에서 작동할 수 있다. TEE(420)는, 보안적으로 안전하게 보호되는 운영 체제, 예를 들어 보안 운영 체제(secured operating system)가 작동하는 환경 또는 당업자에게 잘 알려진 어떤 다른 작업 시스템일 수 있다. 예를 들어, 퀄컴(qualcomm)의 QSee, 트러스토닉(trustonic)의 Kinibi 등의 보안 운영 체제가 TEE(420)에서 작동할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, iSIM 기능을 지원하는 애플리케이션이 TEE(420)에서 작동할 수 있다. 보안 운영 체제를 기반으로 하는 데이터 처리가 보안적으로 또한 안전하게 TEE(420) 내에서 수행될 수 있다. TEE(420)는, 트러스트 존(trust zone), 보안 실행 환경(secure execution environment), 플랫폼 보안 프로세서(platform security processor), 신뢰된 실행 기술(trusted execution technology), 소프트웨어 방어 확장(software guard extensions), 또는 당업자에게 알려진 어떤 다른 구현 구성과 같은 다양한 방식으로 구현될 수 있으며, 구현되는 구성에는 제한이 없음을 당업자가 용이하게 이해할 수 있을 것이다.
하나 또는 그 이상의 실시 예에 따라서, REE(410)에는, 어플리케이션 계층(411), 프레임워크(framework) 계층(412) 및 커널(kernel) 계층(413)이 포함될 수 있다. 어플리케이션 계층(411)에서는, 다양한 어플리케이션(예: 도 2의 어플리케이션(246))이 작동할 수 있다. 프레임워크 계층(412)은, 어플리케이션의 작동을 지원하는 기능 및 운영 체제가 제공하는 서비스가 작동할 수 있다. 커널 계층(413)은, 운영 체제의 핵심 기능이 작동하는 계층일 수 있다. 커널 계층(413), 예를 들면, 다른 프로그램들에 구현된 작동 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리하도록 구성될 있다. 또한, 커널 계층(413)은 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
하나 또는 그 이상의 실시 예에 따라서, TEE(420)에는, 신뢰된 어플리케이션(trusted application) 계층(421), 신뢰된 프레임워크(trusted framework) 계층(422) 및 보안 OS 커널(secured operating system kernel) 계층(423)이 포함될 수 있다. 신뢰된 어플리케이션 계층(421)에서는, 신뢰된 어플리케이션(trusted application)이 작동할 수 있다. 하나 또는 그 이상의 실시 예에 따라서, 전자 장치(101)는, iSIM 기능을 수행하는 어플리케이션을 신뢰된 어플리케이션 계층(421)에서 실행시킬 수 있다. 신뢰된 어플리케이션은, 어플리케이션의 실행 과정에서 보안이 필요한 데이터들을 생성, 송수신, 및 저장할 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. 신뢰된 프레임워크 계층(422)은, TEE(420)에서 작동하는 운영 체제, 예를 들어 보안 운영 체제가 작동할 수 있다. 보안 OS 커널 계층(423)은, 보안 운영 체제의 핵심 기능이 작동하는 계층일 수 있다. 보안 OS 커널 계층(423), 예를 들면, 신뢰된 어플리케이션 또는 보안 운영 체제에 구현된 작동 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다.
하드웨어 계층(430)에서는, 전자 장치(101)의 다양한 하드웨어(예: 메모리(330) 및 프로세서(320))가 작동할 수 있다.
프로세서(320)는 제1 프로세서(321) 및 제2 프로세서(322)를 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 제1 프로세서(321)와 제2 프로세서(322)는 서로 격리된 복수의 실행 환경들(예: REE(410) 및 TEE(420))에서 실행되는 동작을 수행할 수 있다. 예를 들어, 복수의 실행 환경들은, 소프트웨어적으로 격리된 실행 환경들로 구현되거나, 하드웨어적으로 격리된 실행 환경들로 구현되거나 이들의 조합으로 구현될 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 제1 프로세서(321) 및 제2 프로세서(322) 각각은 복수의 실행 환경들 중 적어도 하나에서 동작하여, 지정된 동작을 수행하거나, 및/또는 전자 장치(101)에 포함된 적어도 하나의 하드웨어 구성 요소를 제어할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 제1 프로세서(321)는 AP(application processor)를 포함할 수 있고, REE(410)에서 실행되는 동작들을 수행할 수 있다. 일 실시 예에 따르면, 제2 프로세서(322)는 SP(secure processor)를 포함할 수 있고, TEE(420)에서 실행되는 동작들을 수행할 수 있다. 이하에서 설명되는 프로세서(320)(예: 제1 프로세서(321), 및 제2 프로세서(322))의 동작은 메모리(330)에 저장되는 모듈들의 실행에 따라서 수행될 수 있다. 예를 들어, 모듈들의 적어도 일부는 소프트웨어, 펌웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현(예를 들어, 실행)될 수 있다. 예를 들어, 상기 모듈들은 프로세서(320)에 의해 실행 가능한 어플리케이션(application), 프로그램(program), 컴퓨터 코드(computer code), 인스트럭션들(instructions), 루틴(routine), 내지는 프로세스(process)의 형태로 구현될 수 있다. 이에 따라, 상기 모듈들이 프로세서(320)에 의해 실행되는 경우, 상기 모듈들은 상기 프로세서(320)가 상기 모듈과 연관된 동작(또는, 모듈이 제공 가능한 기능)을 수행하도록 야기할 수 있다. 따라서 이하에서 특정 모듈이 동작을 수행한다는 기재는, 특정 모듈이 실행됨에 따라서 프로세서(320)가 해당 동작을 수행하는 것으로 해석될 수 있다. 하나 또는 그 이상의 예에서, 상기 모듈들은 특정 어플리케이션의 일부로 구현될 수도 있다. 하나 또는 그 이상의 예에서, 기재 및/또는 도시된 바에 제한되지 않고, 각 모듈들은 프로세서(320)와는 별도의 하드웨어(예: 프로세서, 제어 회로)로 구현될 수도 있다.
메모리(330)는 제1 메모리(331), 제2 메모리(332), 제3 메모리(333), 및 제4 메모리(334)를 포함할 수 있다.
제1 메모리(331)(예: 도 1의 비휘발성 메모리(138)의 적어도 일부)는 비보안성 메모리로 비휘발성 메모리일 수 있다. 제1 메모리(332)는 REE(410)의 어플리케이션 계층(311)에서 작동하는 어플리케이션으로부터 출력되는 데이터를 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 제1 프로세서(321)에 의해 어플리케이션 계층(411)에서 어플리케이션이 실행되고, 제1 프로세서(321)는 어플리케이션 실행 중에 생성되는 데이터를 커널 계층(413)을 통해 제1 메모리(332)에 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 제1 프로세서(321)는 어플리케이션 실행 중에 요구되는 데이터를 커널 계층(413)을 통해 제1 메모리(331)로부터 독출할 수 있다.
제2 메모리(332)는 휘발성 메모리로서 REE(410)와 TEE(420)에 공유되는 공유 메모리일 수 있다. 제2 메모리(332)는 DRAM(dynamic random access memory)일 수 있다. 제2 메모리(332)는 제1 프로세서(321) 및 제2 프로세서(322)의 제어에 따라, 신뢰된 어플리케이션 계층(421)에서 작동하는 신뢰된 어플리케이션으로부터 출력되는 보안 데이터 중 적어도 일부를 임시 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 제2 프로세서(322)에 의해 신뢰된 어플리케이션 계층(421)에서 신뢰된 어플리케이션이 실행되고, 제2 프로세서(322)는 신뢰된 어플리케이션이 실행됨에 따라 데이터를 보안 OS 커널 계층(423)의 메일 박스를 통해 제1 프로세서(321)로 요청하고, 제1 프로세서(321)는 현재 실행중인 데몬(demon)이 커널 계층(413)의 메일 박스를 통해 제2 프로세서(322)의 요청을 수신함에 따라, 데몬을 통해 제1 메모리(331)에 저장된 데이터를 읽어 들여서 제2 메모리(332)에 임시 저장할 수 있다. 제2 프로세서(322)는 보안 OS 커널 계층(423)을 통해 제2 메모리(332)에 임시 저장된 데이터를 읽어 들여서 신뢰된 어플리케이션 계층(421)에 전달할 수 있다. 하나 또는 그 이상의 실시 예에서, 제2 프로세서(322)에 의해 신뢰된 어플리케이션 계층(421)에서 신뢰된 어플리케이션이 실행되고, 제2 프로세서(322)는 신뢰된 어플리케이션이 실행됨에 따라 생성되는 보안 데이터를 제2 메모리(332)에 저장하고, 보안 OS 커널 계층(423)의 메일 박스를 통해 제1 프로세서(321)로 제2 메모리(332)에 임시 저장된 보안 데이터의 저장을 요청할 수 있다. 제1 프로세서(321)는 현재 실행중인 데몬(demon)이 커널 계층(413)의 메일 박스를 통해 제2 프로세서(322)의 요청을 수신함에 따라, 데몬을 통해 제2 메모리(332)에 임시 저장된 보안 데이터를 읽어들여서 제1 메모리(331)에 저장할 수 있다. 제2 프로세서(322)의 요청에는 보안 데이터가 저장된 제2 메모리(332)의 주소가 포함될 수 있다.
제3 메모리(333)는 휘발성 메모리(예: 도 1의 휘발성 메모리(132))일 수 있으며, 제1 메모리(331) 대비 저용량을 가질 수 있다. 제3 메모리(333)는 SRAM(static random access memory)일 수 있다. 제3 메모리(333)는 신뢰된 어플리케이션 계층(421)에서 작동하는 신뢰된 어플리케이션으로부터 출력되는 보안 데이터 중 적어도 일부를 임시 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 제2 프로세서(322)에 의해 신뢰된 어플리케이션 계층(421)에서 신뢰된 어플리케이션이 실행되고, 제2 프로세서(322)는 신뢰된 어플리케이션이 실행됨에 따라 생성되는 보안 데이터 중 적어도 일부를 보안 OS 커널 계층(423)을 통해 제3 메모리(333)에 임시 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 제2 프로세서(322)의 제어에 의해, 제3 메모리(333)에 저장된 데이터가 암호화 되어 제2 메모리(332)로 복사(예: swap out)될 수 있고, 제2 메모리(332)에 저장된 데이터가 복호화 되어 제3 메모리(333)로 복사(예: swap in)될 수 있다.
하나 또는 그 이상의 실시 예에서, 제4 메모리(334)(예: 도 1의 비휘발성 메모리(138)의 적어도 일부)는 비휘발성 메모리로 보안 메모리일 수 있다. 제4 메모리(334)는 신뢰된 어플리케이션 계층(421)에서 작동하는 신뢰된 어플리케이션으로부터 출력되는 보안 데이터 중 적어도 일부를 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 제2 프로세서(322)에 의해 신뢰된 어플리케이션 계층(421)에서 신뢰된 어플리케이션이 실행되고, 제2 프로세서(322)는 신뢰된 어플리케이션이 실행됨에 따라 생성되는 보안 데이터 중 적어도 일부를 보안 OS 커널 계층(423)을 통해 제4 메모리(334)에 저장할 수 있다. 제4 메모리(334)는 데이터의 독출, 수정 또는 삭제 기능이 드물게 수행되는 저장 공간일 수 있다. 전자 장치(101)는, 특정한 명령어 세트에 대하여서만 제4 메모리(334)에 접근을 허용하도록 설정될 수 있다. 예를 들어, 신뢰된 어플리케이션으로부터의 명령어에 따라, 제4 메모리(334)의 데이터가 독출, 수정 또는 삭제될 수 있다. 아울러, 신뢰된 어플리케이션이 아닌 일반적인 어플리케이션으로부터의 명령어에 따라, 제4 메모리(334)의 데이터가 독출, 수정 또는 삭제되지 않을 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 보안 데이터를 암호화 하는 과정에서 사용되는 정보들이 제4 메모리(334)에 저장될 수 있다. 제4 메모리(334)에 저장된 정보들은 추후 암호화 된 보안 데이터를 복호화 하기 위해 사용될 수 있다. 이에 대하여서는 더욱 상세하게 후술하도록 한다.
하나 또는 그 이상의 실시 예에 따르면, 전자 장치(101)는, 서로 독립적으로 구현된 하드웨어들(예: 메모리들(331 내지 334) 및/또는 프로세서들(321, 322))에 기반하여 복수의 실행 환경들에서 동작(또는, 기능)을 수행하도록 구현될 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 서로 다른 권한과 관련된 서로 다른 하드웨어 조각이 복수의 실행 환경들(예: REE(410) 및 TEE(420)) 별로 할당될 수 있다. 예를 들어, 도 4를 참조하면, 점선을 기준으로 좌측에 위치되는 하드웨어 장치들은 REE(410)에 할당(또는, REE(410)에서 구동)되고, 우측에 위치되는 하드웨어 장치들은 TEE(420)에 할당(또는, TEE(420)에서 구동)될 수 있다. 예를 들어, 도 4를 참조하면, 복수의 실행 환경들(예: REE(410) 및 TEE(420)) 별로 서로 다른 메모리(331 내지 334)가 할당될 수 있다. 제1 프로세서(321)는, REE(410)에서 제1 운영 체제를 실행하여 적어도 하나의 동작을 수행하고, REE(410)에 할당된 제1 메모리(331)에 데이터를 읽고 쓸(write) 수 있다. 제2 프로세서(322)는, TEE(420)에서 REE(410)의 제1 운영 체제와는 별도의 독립된 제2 운영 체제를 실행하여 적어도 하나의 동작을 수행하고, TEE(420)에 할당된 제3 메모리(323) 및 제4 메모리(334)에 데이터를 읽고 쓸 수 있다. 하나 또는 그 이상의 실시 예에 따르면, TEE(420)에 대한 권한 및/또는 보안성은, REE(410)에 대한 권한 및/또는 보안성보다 더 높을 수 있다. 하나 또는 그 이상의 예에서, 제2 프로세서(322)는, TEE(420)에서 REE(410)에 할당된 제1 메모리(331)에 접근하여 데이터를 읽고 쓸 수 있으나, 제1 프로세서(321)는 REE(410)에서 TEE(420)에 할당된 제4 메모리(334)로의 접근이 제한될 수 있다. 예를 들어, 제1 프로세서(321)는 제4 메모리(334)에 데이터를 쓰거나 제4 메모리(334)에 저장된 데이터를 읽을 수 없을 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 제2 메모리(332)에 대하여, REE(410)와 TEE(420)의 접근이 허용될 수 있다. 예를 들어, 제1 프로세서(321)는, REE(410)에서 제2 메모리(332)에 데이터를 쓰거나 제2 메모리(332)에 저장된 데이터를 읽을 수 있다. 예를 들어, 제2 프로세서(322)는, TEE(420)에서 제2 메모리(332)에 데이터를 쓰거나 제2 메모리(332)에 저장된 데이터를 읽을 수 있다.
이하에서는 하나 또는 그 이상의 실시 예에 따른 전자 장치(101)의 동작의 예에 대해서 설명한다.
하나 또는 그 이상의 실시 예에 따르면 전자 장치(101)는 TEE(420)에서 신뢰된 어플리케이션의 실행에 의해 생성된 보안 데이터를 암호화 하여 제2 메모리(332)를 통해 REE(410)에 할당된 제1 메모리(331)에 파일 형태로 저장하고, 보안 데이터를 암호화 및/또는 복호화 하는데 사용되는 정보들을 제4 메모리(334)에 저장할 수 있다. 하나 또는 그 이상의 실시 예에 따르면 전자 장치(101)는 TEE(420)에서 신뢰된 어플리케이션이 실행됨에 따라, REE(410)에서 현재 실행중인 데몬을 통해 REE(410)에 할당된 제1 메모리(331)에 파일 형태로 저장된 암호화 된 보안 데이터를 읽어 들여서 제2 메모리(332)에 복사하고, 제4 메모리(334)로부터 보안 데이터를 암호화 및/또는 복호화 하는데 사용되는 보안 정보들을 읽어 들이고, 보안 정보들을 이용하여 제2 메모리(332)에 복사된 암호화 된 보안 데이터를 복호화 하여 제3 메모리(333)에 임시 저장하고, 신뢰된 어플리케이션이 실행되는 동안 복호화된 보안 데이터를 사용할 수 있다.
도 5는 하나 또는 그 이상의 실시 예에 따른 전자 장치(101)의 동작의 일 예를 설명하기 위한 흐름도(500)이다. 당업자에 의해 이해되는 바와 같이, 도 5에 도시되는 동작들은 도시되는 순서에 국한되지 않고 다양한 순서로 수행될 수 있다. 또한, 하나 또는 그 이상의 실시 예에 따르면 도 5에 도시되는 동작들 보다 더 많은 동작들이 수행되거나, 더 적은 적어도 하나의 동작이 수행될 수도 있다. 이하에서는, 도 6을 참조하여 도 5에 대해서 설명한다.
하나 또는 그 이상의 실시 예에 따르면, 전자 장치(101)(예: 제2 프로세서(322))는 501 동작에서 TEE(420)의 신뢰된 어플리케이션 계층(421)에서 신뢰된 어플리케이션을 실행하여 보안 데이터를 생성할 수 있다. 예를 들어, 신뢰된 어플리케이션 중 iSIM이 실행되는 경우, 생성되는 데이터는 가입자 식별정보, 인증 키, 가입자 전화번호, 로컬 영역 ID, 개인 식별 번호(PIN), 및 서비스 공급자 정보 등 보안이 필요한 정보들 중 적어도 하나를 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 보안 데이터는 실행되는 어플리케이션에 따라 다를 수 있으며, 해당 어플리케이션 개발자가 지정한 정보들이 포함될 수 있다. 전자 장치(101)(예: 제2 프로세서(322))는 신뢰된 어플리케이션의 실행으로 생성된 보안 데이터(예: 도 6의 631)를, 보안 OS 커널 계층(423)을 통해 제3 메모리(333)에 임시 저장될 수 있다.
전자 장치(101)(예: 제2 프로세서(322))는 503 동작에서 신뢰된 어플리케이션에서 사용중인 보안 데이터 또는 그것의 일부분을 암호화 하여(예: 도 6의 601) 보안 OS 커널 계층(423)을 통해 제2 메모리(332)에 복사(예: swap out)할 수 있다(예: 도 6의 621). 하나 또는 그 이상의 실시 예에서 데이터를 암호화 하는 방식으로 AES(advanced encryption standard)-GCM(galois/counter mode)가 사용될 수 있다. 암호화 방식은 이에 한정되지 않으며, 기밀성과 무결성이 보장되는 당업자에게 알려진 다른 암호화 방식이 사용될 수도 있다. 하나 또는 그 이상의 실시 예에서 데이터 암호화는 데이터를 소정 크기로 분할한 블록 단위로 수행될 수 있다. 데이터를 블록 단위로 암호화 할 때 롤백(rollback)을 방지하기 위한 기법이 사용될 수 있다. 당업자에 의해 이해되는 바와 같이, 암호화된 데이터의 롤백은 암호화된 데이터를 암호화되지 않은 데이터와 같은 이전 형태로 변경하는 것을 포함할 수 있다. 하나 또는 그 이상의 실시 예에 따르면 롤백 방지를 위해 ARC(anti-replay counter)가 사용될 수 있다. 롤백 방지를 위해 데이터 블록 별로 서로 다른 ARC 값이 사용될 수 있다. 데이터 블록 별로 사용되는 서로 다른 ARC 값들은 테이블 형태로 제3 메모리(333)에 임시 저장될 수 있다. 하나 또는 그 이상의 실시 예에서 데이터 블록 별로 사용되는 서로 다른 ARC 값들은 테이블 형태로 제3 메모리(333)에 임시 저장될 수 있다(예: 도 6의 632). ARC 테이블은 ARC 값들로 구성된 선형 배열(linear array)일 수 있다. ARC 값들의 개수는 제2 메모리(332)로 복사(예: swap out)되는 보안 데이터의 크기에 따라 결정될 수 있다. 예를 들어 2MB의 보안 데이터를 암호화 하여 제2 메모리(332)로 복사(예: swap out)하기 위해서는 256개의 ARC 값이 사용될 수 있다. 각각의 ARC 값은 미리 정해진 초기값으로부터 1씩 증가될 수 있다. 하나 또는 그 이상의 실시 예에서 보안 데이터가 제2 메모리(332)로 복사(예: swap out)되거나 제2 메모리(332)로부터 복사(예: swap in)될 때, 해당 ARC 값은 보안 데이터의 암호화 또는 복호화 동작의 IV(initial vector)로서 사용될 수 있다. 하나 또는 그 이상의 실시 예에서 IV는 다음 식에 의해 계산될 수 있다.
[수학식 1]
IV = device specific value + ARC + zero padding
상기 식에서 device specific value는 전자 장치 고유의 값으로 4byte로 구성될 수 있다. ARC는 8byte로 구성될 수 있고, IV는 4byte의 제로 패딩(zero padding)을 포함하여 16byte로 구성될 수 있다.
전자 장치(101)(예: 제2 프로세서(322))는 데이터를 블록 단위로 암호화 하는 과정에서 생성되는 파라미터 값들을 암호화 하여 보안 OS 커널 계층(423)을 통해 제2 메모리(332)에 저장(예: swap out)할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, AES-GCM을 사용하여 데이터를 암호화 하는 과정에서 데이터 블록 별로 태그(TAG) (예: 도 6의 651)가 생성되며, 전자 장치(101)(예: 제2 프로세서(322))는 암호화 과정에서 생성된 태그들을 테이블 형태로 암호화 하여(예: 도 6의 603) 보안 OS 커널 계층(423)을 통해 제2 메모리(332)에 저장(예: swap out)할 수 있다(예: 도 6의 623). 하나 또는 그 이상의 실시 예에서 태그를 암호화 하는 방식으로 AES-ECB(electronic code block) 모드가 사용될 수 있다. 암호화 방식은 이에 한정되지 않으며, 기밀성이 보장되는 당업자에게 알려진 다른 암호화 방식이 사용될 수도 있다.
하나 또는 그 이상의 실시 예에서, 전자 장치(101)(예: 제2 프로세서(322))는 데이터 암호화 과정에서 생성되고 제3 메모리(333)에 저장된 정보들을 암호화 하여 보안 OS 커널 계층(423)을 통해 제2 메모리(332)에 복사(예: swap out)할 수 있다. 하나 또는 그 이상의 실시 예에서, 전자 장치(101)(예: 제2 프로세서(322))는 제3 메모리(333)에 저장된 ARC 테이블을 암호화 하여(예: 도 6의 605) 보안 OS 커널 계층(423)을 통해 제2 메모리(332)에 복사(예: swap out)할 수 있다(예: 도 6의 622). 하나 또는 그 이상의 실시 예에서 ARC 테이블을 암호화 하는 방식으로 AES-GCM가 사용될 수 있다. 암호화 방식은 이에 한정되지 않으며, 기밀성과 무결성이 보장되는 당업자에게 알려진 다른 암호화 방식이 사용될 수도 있다. 하나 또는 그 이상의 실시 예에서, 전자 장치(101)(예: 제2 프로세서(322))는 암호화 과정에서 생성되는 정보들을 암호화 할 때 사용되고 생성되는 파라미터들을 보안 OS 커널(423)을 통해 제4 메모리(334)에 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 전자 장치(101)(예: 제2 프로세서(322))는 ARC 테이블을 암호화 할 때, IV(initial vector)로서 마스터 ARC를 사용할 수 있다. 마스터 ARC는 신뢰된 어플리케이션으로부터 생성된 보안 데이터를 저장할 때마다 랜덤 값으로 생성될 수 있다. 하나 또는 그 이상의 실시 예에서, 마스터 ARC는 암호화 된 ARC 테이블을 복호화 할 때 사용될 수 있다. 예를 들어, 전자 장치(101)(예: 제2 프로세서(322))는 보안 OS 커널 계층(423)을 통해 마스터 ARC를 제4 메모리(334)에 저장할 수 있다(예: 도 6의 641). 하나 또는 그 이상의 실시 예에서 ARC 테이블을 암호화 하는 과정에서 마스터 태그가 생성될 수 있다. 마스터 태그는 암호화 된 ARC 테이블을 복호화 할 때 사용될 수 있다. 예를 들어, 전자 장치(101)(예: 제2 프로세서(322))는 보안 OS 커널 계층(423)을 통해 마스터 태그를 제4 메모리(334)에 저장할 수 있다(예: 도 6의 642).
동작 505 에서, 전자 장치(101)(예: 제1 프로세서(321))는 제2 메모리(332)에 저장된 암호화 된 데이터들을 REE(410)에 할당된 제1 메모리(331)에 저장할 수 있다. 하나 또는 그 이상의 실시 예에서, 전자 장치(101)의 제2 프로세서(322)는 보안 OS 커널 계층(423)의 메일 박스를 통해 제1 프로세서(321)로 보안 데이터를 REE(410)에 할당된 제1 메모리(331)에 저장하도록 요청할 수 있다. 전자 장치(101)의 제1 프로세서(321)는 REE(410)에서 데몬을 실행 중인 상태에서 커널 계층(413)의 메일 박스를 통해 제2 프로세서(322)로부터 보안 데이터의 요청을 수신할 수 있다. 하나 또는 그 이상의 실시 예에서 제2 프로세서(322)에서 제1 프로세서(321)로 전달되는 요청에는 보안 데이터가 저장된 제2 메모리(332)의 주소가 포함될 수 있다. 전자 장치(101)의 제1 프로세서(321)는 REE(410)에서 실행 중인 데몬을 통해서 제2 메모리(332)에 저장된 암호화 된 데이터들을 읽어 들이고, 커널 계층(413)을 통해 읽어 들인 암호화 된 데이터들을 제1 메모리(331)에 저장할 수 있다(예: 도 6의 607). 하나 또는 그 이상의 실시 예에서, 제2 메모리(332)에 저장된 암호화 된 데이터들은 암호화 된 보안 데이터(예: 도 6의 611), 암호화 된 ARC 테이블(예: 도 6의 612), 및 암호화 된 태그 테이블(예: 도 6의 613)을 포함할 수 있고, 암호화 된 데이터들은 하나의 파일 형태로 제1 메모리(331)에 저장될 수 있다(예: 도 6의 610).
도 7은 하나 또는 그 이상의 실시 예에 따른 전자 장치(101)의 동작의 일 예를 설명하기 위한 흐름도(700)이다. 당업자가 이해하는 바와 같이, 도 7에 도시되는 동작들은 도시되는 순서에 국한되지 않고 다양한 순서로 수행될 수 있다. 또한, 하나 또는 그 이상의 실시 예에 따르면 도 7에 도시되는 동작들 보다 더 많은 동작들이 수행되거나, 더 적은 적어도 하나의 동작이 수행될 수도 있다. 이하에서는, 도 8을 참조하여 도 7에 대해서 설명한다.
하나 또는 그 이상의 실시 예에 따르면, 전자 장치(101)(예: 제2 프로세서(322))는 701 동작에서 TEE(420)의 신뢰된 어플리케이션 계층(421)에서 신뢰된 어플리케이션을 실행할 수 있다. 하나 또는 그 이상의 실시 예에서, 신뢰된 어플리케이션이 실행됨에 따라, 제2 프로세서(322)는 보안 OS 커널(423)의 메일 박스를 통해 제1 프로세서(321)로 제1 메모리(331)에 저장된 보안 데이터를 요청할 수 있다.
전자 장치(101)(예: 제1 프로세서(321))는 703 동작에서 제1 메모리(331)에 저장된 암호화 된 데이터 파일(예: 도 8의 610)을 독출할 수 있다(예: 도 8의 801). 하나 또는 그 이상의 실시 예에서, 제1 프로세서(321)는 커널 계층(413)의 메일 박스를 통해 제2 프로세서(322)로부터의 보안 데이터 요청을 수신하면, REE(410)에서 실행중인 데몬(daemon)을 통해서 제2 메모리(332)에 저장된 암호화 된 데이터 파일(예: 도 8의 610)을 독출할 수 있다(예: 도 8의 801). 하나 또는 그 이상의 실시 예에 따르면, 보안 데이터의 암호화 방식으로 AES-GCM이 사용되고 롤백 방지를 위해 ARC가 사용된 경우, 제1 메모리(331)에는 암호화 된 데이터(예: 도 8의 611), 암호화 된 ARC 테이블(예: 도 8의 612), 및 암호화 된 태그 테이블(예: 도 8의 613)이 저장되어 있을 수 있다. 이 경우, 전자 장치(101)(예: 제1 프로세서(321))는 제1 메모리(331)로부터 독출한 파일에 포함된 암호화 된 데이터(예: 도 8의 611), 암호화 된 ARC 테이블(예: 도 8의 612), 및 암호화 된 태그 테이블(예: 도 8의 613)을 제2 메모리(332)에 복사할 수 있다. 하나 또는 그 이상의 실시 예에서, 제1 프로세서(321)는 REE(410)에서 실행중인 데몬을 통해서 제1 메모리(331)로부터 독출한 파일에 포함된 암호화 된 데이터(예: 도 8의 611), 암호화 된 ARC 테이블(예: 도 8의 612), 및 암호화 된 태그 테이블(예: 도 8의 613)을 제2 메모리(332)에 복사할 수 있다.
전자 장치(101)(예: 제2 프로세서(322))는 705 동작에서 제2 메모리(332)에 복사된 암호화 된 데이터(예: 도 8의 611)를 신뢰된 어플리케이션에서 사용하기 위하여 복호화 할 수 있다. 하나 또는 그 이상의 실시 예에서, 전자 장치(101)(예: 제2 프로세서(322))는 암호화 된 데이터(예: 도 6의 411)암호화 된 ARC 테이블(예: 도 8의 612), 및 암호화 된 태그 테이블(예: 도 8의 613)을 각각 복호화 할 수 있다. 하나 또는 그 이상의 실시 예에서 전자 장치(101)(예: 제2 프로세서(322))는 암호화 과정에서 생성된 암호화 데이터들을 제4 메모리(334)에 저장된 암호화 정보들을 이용하여 검증하고 복호화 할 수 있다. 하나 또는 그 이상의 실시 예에서 전자 장치(101)(예: 제2 프로세서(322))는 암호화 된 ARC 테이블(예: 도 8의 622)을 복호화(예: 도 8의 803)할 수 있다. 하나 또는 그 이상의 실시 예에서, 보안 데이터를 암호화 하는 과정에서 ARC 테이블이 AES-GCM으로 암호화 된 경우, 제4 메모리(334)에는 암호화 과정에서 생성되고 사용된 마스터 ARC(예: 도 8의 641)와 마스터 태그(예: 도 8의 642)가 저장되어 있다. 하나 또는 그 이상의 실시 예에서 제2 프로세서(322)는 보안 OS 커널 계층(423)을 통해 제4 메모리(334)에 저장된 마스터 ARC(예: 도 8의 641)와 마스터 태그(예: 도 8의 642)를 읽어들이고, 마스터 ARC(예: 도 8의 641)와 마스터 태그(예: 도 8의 642)를 이용하여 제2 메모리(332)에 저장된, 암호화 된 ARC 테이블(예: 도 8의 622)을 복호화(예: 도 8의 803)할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 마스터 태그는 암호화 된 ARC 테이블의 검증을 위해 사용될 수 있다. 전자 장치(101)(예: 제2 프로세서(322))는 복호화 된 ARC 테이블은 보안 OS 커널 계층(423)을 통해 제3 메모리(333)에 저장(swap in)할 수 있다(예: 도 8의 632).
전자 장치(101)(예: 제2 프로세서(322))는 복호화 된 정보들을 이용하여 암호화 된 보안 데이터를 복호화 할 수 있다. 하나 또는 그 이상의 실시 예에서 전자 장치(101)(예: 제2 프로세서(322))는 복호화 된 ARC 테이블(예: 도 8의 632)의 ARC 값들과 제2 메모리(332)에 복사된 복호화 된 태그 테이블(예: 도 8의 623)의 태그 값들을 이용하여, 제2 메모리(332)에 복사된 암호화 된 보안 데이터(예: 도 8의 621)를 블록 단위로 복호화 할 수 있다(예: 도 8의 805). 예를 들어, 데이터는 하나 이상의 블록으로 분할될 수 있으며, 여기서 데이터는 블록 단위로 암호화되고, 이후 블록 단위로 복호화된다.
하나 또는 그 이상의 실시 예에서, 전자 장치(101)(예: 제2 프로세서(322))는 복호화 된 보안 데이터를 보안 OS 커널 계층(423)을 통해 제3 메모리(333)에 저장(예: swap in)할 수 있다(예: 도 8의 631). 이후 전자 장치(101)(예: 제2 프로세서(322))는 TEE(420)의 신뢰된 어플리케이션 계층(421)에서 실행 중인 신뢰된 어플리케이션을 통해 제3 메모리(333)에 저장된 복호화 된 보안 데이터를 사용할 수 있다.
도 9는 하나 또는 그 이상의 실시 예에 따른 전자 장치(101)의 제4 메모리(334)에 저장되는 보안 데이터의 포맷의 일 예를 설명하기 위한 도면이다.
하나 또는 그 이상의 실시 예에서 제4 메모리(334)에는 신뢰된 어플리케이션 계층(421)에서 작동하는 신뢰된 어플리케이션으로부터 출력되는 보안 데이터 중 적어도 일부가 저장될 수 있다. 하나 또는 그 이상의 실시 예에서, 제2 프로세서(322)에 의해 신뢰된 어플리케이션 계층(421)에서 신뢰된 어플리케이션이 실행되고, 제2 프로세서(322)는 신뢰된 어플리케이션이 실행됨에 따라 생성되는 보안 데이터 중 적어도 일부를 보안 OS 커널 계층(423)을 통해 제4 메모리(334)에 저장할 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 제4 메모리(334)에는 보안 데이터를 암호화 하는 과정에서 사용되는 정보들이 제4 메모리(334)에 저장될 수 있다.
도 9를 참조하면, 신뢰된 어플리케이션 1번(SA#1)의 실행에 의해 생성된 데이터(910)가 제4 메모리(334)의 슬롯 A(slot A)(920)에 저장될 수 있다. 하나 또는 그 이상의 실시 예에 따르면, 제2 프로세서(322)가 ARC 테이블을 암호화 할 때 IV(initial vector)로서 사용되는 마스터 ARC 필드(915)와, ARC 테이블을 암호화 하는 과정에서 생성된 마스터 태그 필드(916)를 포함하는 데이터가 제4 메모리(334)에 저장될 수 있다. 제4 메모리(334)에 저장되는 데이터는, 마스터 ARC 필드(915)와 마스터 태그 필드(916) 외에도 매직(magic) 필드(911), 버전(version) 필드(912), 액티브 셋(active set) 필드(913), 데이터 사이즈 필드(914), 및 Reserved 필드(917)를 더 포함할 수 있다.
매직(magic) 필드(911)는 4byte로 이루어질 수 있으며, 명령을 확인하기 위해 사용되는 정수일 수 있다. 버전(version) 필드(912)는 4byte로 이루어질 수 있으며, 해당 데이터의 버전 정보를 나타내는 값일 수 있다. 액티브 셋(active set) 필드(913)는 4byte로 이루어질 수 있으며, 올바른 정보가 저장된 셋을 나타내는 플래그 값일 수 있다. 데이터 사이즈 필드(914)는 4byte로 이루어질 수 있으며, 해당되는 신뢰된 어플리케이션에 의해 생성된 보안 데이터의 사이즈를 나타내는 값일 수 있다. 마스터 ARC 필드(915)는 8byte로 이루어질 수 있으며, 마스터 ARC는 신뢰된 어플리케이션으로부터 생성된 보안 데이터를 저장할 때마다 생성된 랜덤 값일 수 있다. 마스터 ARC는 ARC 테이블을 암호화 하거나 암호화 된 ARC 테이블을 복호화 할 때 IV(initial vector)로 사용될 수 있다. 마스터 태그 필드(916)는 16byte로 이루어질 수 있으며, 마스터 태그는 ARC 테이블이 암호화 되어 제2 메모리(332)로 복사(예: swap out)될 때 암호화 동작의 결과로 생성되는 인증태그일 수 있다. 마스터 태그는 암호화 된 ARC 테이블을 복호화 할 때 인증태그로 사용될 수 있다.
하나 또는 그 이상의 실시 예에 따른 전자 장치는, 일반 환경(410)에서 동작하는 제1 프로세서(321); 보안 환경(420)에서 동작하는 제2 프로세서(322); 상기 일반 환경에 할당된 제1 메모리(331); 상기 보안 환경에 할당된 제2 메모리(334); 및 상기 일반 환경과 상기 보안 환경에서 공유되는 제3 메모리(332)를 포함할 수 있다. 상기 제2 프로세서는, 상기 보안 환경에서 실행되는 신뢰된 어플리케이션에 의해 생성된 보안 데이터 중 적어도 일부를 암호화 하여 상기 제3 메모리에 저장하고, 상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를 상기 제2 메모리에 저장하도록 설정될 수 있다. 상기 제1 프로세서는, 상기 제3 메모리에 저장된, 상기 암호화 된 적어도 일부의 보안 데이터를 상기 제1 메모리에 저장하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제2 프로세서는, 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하되, 상기 블록 별로 서로 다른 ARC(anti-replay counter) 값들을 사용하여 암호화 하고, 상기 ARC 값들이 저장된 ARC 테이블(432)을 암호화 하며, 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하는 과정에서 생성되는 태그값들(651)이 저장된 태그 테이블을 암호화 하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제1 프로세서는, 상기 암호화 된 적어도 일부의 보안 데이터(611), 상기 암호화 된 ARC 테이블(612), 및 상기 암호화 된 태그 테이블(613)을 파일 형태(610)로 상기 제1 메모리에 저장하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제1 정보는 마스터 ARC(641)이고, 상기 제2 정보는 마스터 태그(642)일 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제1 프로세서는, 상기 보안 환경에서 상기 신뢰된 어플리케이션이 실행됨에 따라, 상기 제1 메모리에 저장된 상기 암호화 된 적어도 일부의 보안 데이터를 복사하여 상기 제3 메모리에 저장하며, 상기 제2 프로세서는, 상기 제1 정보 및 상기 제2 정보를 이용하여, 상기 제3 메모리에 저장된 상기 암호화 된 적어도 일부의 보안 데이터를 복호화 하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제3 메모리에 저장된 암호화 된 적어도 일부의 보안 데이터는, 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하는 과정에서 사용된 ARC(anti-replay counter)값들이 저장된 암호화 된 ARC 테이블(622), 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하는 과정에서 생성된 태그 값들이 저장된 암호화 된 태그 테이블(623)을 포함하며, 상기 제2 프로세서는, 상기 제1 정보 및 상기 제2 정보를 이용하여 상기 암호화 된 ARC 테이블을 복호화 하고, 상기 태그 테이블을 복호화 하고, 상기 복호화 된 ARC 테이블 및 상기 복호화 된 태그 테이블을 이용하여 상기 블록 단위로 암호화 된 상기 적어도 일부의 보안 데이터를 복호화 하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제1 프로세서는, 상기 제1 메모리로부터 상기 암호화 된 보안 데이터, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 포함하는 파일(610)을 독출하고, 상기 암호화 된 보안 데이터, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 각각 분리하여 상기 제3 메모리에 저장하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제2 프로세서는, 상기 보안 데이터 중 적어도 일부와, 상기 ARC 테이블을 암호화 할 때, AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 암호화 하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제2 프로세서는, 상기 암호화 된 보안 데이터 중 적어도 일부를 AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 복호화 하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제2 프로세서는, 상기 태그 테이블을 암호화 할 때, AES(advanced encryption standard)- ECB(electronic code block) 방식으로 암호화 하도록 설정될 수 있다.
하나 또는 그 이상의 실시 예에 따른 전자 장치의 동작 방법은, 보안 환경(420)에서 동작하는 제1 프로세서(322)에 의해, 상기 보안 환경에서 신뢰된 어플리케이션을 실행하고 보안 데이터를 생성하는 동작(501)을 포함할 수 있다. 상기 방법은, 상기 제1 프로세서에 의해, 상기 생성된 보안 데이터 중 적어도 일부를 암호화 하고, 상기 보안 환경과 일반 환경(410)에서 공유되는 제1 메모리(332)에 저장하는 동작(503)을 포함할 수 있다. 상기 방법은, 상기 제1 프로세서에 의해, 상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를, 상기 보안 영역에 할당된 제2 메모리(334)에 저장하는 동작(503)을 포함할 수 있다. 상기 방법은, 상기 일반 환경에서 동작하는 제2 프로세서(321)에 의해, 상기 제1 메모리에 저장된, 상기 암호화 된 적어도 일부의 보안 데이터를 상기 일반 환경에 할당된 제3 메모리(331)에 저장하는 동작(505)을 포함할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 암호화 하는 동작(503)은, 상기 제1 프로세서에 의해, 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하되, 상기 블록 별로 서로 다른 ARC(anti-replay counter) 값들을 사용하여 암호화 하는 동작(601), 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하는 과정에서 생성되는 태그값들이 저장된 태그 테이블을 암호화 하는 동작(603), 및 상기 ARC 값들이 저장된 ARC 테이블을 암호화 하는 동작(605)을 포함할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제3 메모리에 저장하는 동작(505)은, 상기 제2 프로세서에 의해, 상기 암호화 된 적어도 일부의 보안 데이터, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 파일 형태(610)로 상기 제1 메모리에 저장(607)하는 동작을 포함할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제1 정보는 마스터 ARC(641)이고, 상기 제2 정보는 마스터 태그(642)일 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 보안 환경에서 상기 신뢰된 어플리케이션이 실행됨에 따라(701), 상기 제2 프로세서에 의해, 상기 제1 메모리에 저장된 상기 암호화 된 적어도 일부의 보안 데이터를 복사하여 상기 제1 메모리에 저장하는 동작(703), 상기 제1 프로세서에 의해, 상기 제1 정보 및 상기 제2 정보를 이용하여, 상기 제1 메모리에 저장된 상기 암호화 된 적어도 일부의 보안 데이터를 복호화 하는 동작(705)을 더 포함할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제1 메모리에 저장된 암호화 된 적어도 일부의 보안 데이터는, 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하는 과정에서 사용된 ARC(anti-replay counter)값들이 저장된 암호화 된 ARC 테이블(621), 상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하는 과정에서 생성된 태그 값들이 저장된 암호화 된 태그 테이블(623)을 포함하며, 상기 복호화 하는 동작(705)은, 상기 제1 프로세서에 의해, 상기 제1 정보 및 상기 제2 정보를 이용하여 상기 암호화 된 ARC 테이블을 복호화 하는 동작(803), 상기 태그 테이블을 복호화 하는 동작(805), 및 상기 복호화 된 ARC 테이블 및 상기 복호화 된 태그 테이블을 이용하여 상기 블록 단위로 암호화 된 상기 적어도 일부의 보안 데이터를 복호화 하는 동작(805)을 포함할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 제2 프로세서에 의해, 상기 제3 메모리로부터 상기 암호화 된 보안 데이터, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 포함하는 파일(610)을 독출하고(801), 상기 암호화 된 보안 데이터(621), 상기 암호화 된 ARC 테이블(622), 및 상기 암호화 된 태그 테이블(623)을 각각 분리하여 상기 제1 메모리에 저장하는 동작을 더 포함할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 암호화 하는 동작(601,605)은, 상기 보안 데이터 중 적어도 일부와, 상기 ARC 테이블을 암호화 할 때, AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 암호화 할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 복호화 하는 동작(705)은, 상기 암호화 된 보안 데이터 중 적어도 일부를 AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 복호화 할 수 있다.
하나 또는 그 이상의 실시 예에서, 상기 태그 테이블을 암호화 하는 동작(603)은, AES(advanced encryption standard)- ECB(electronic code block) 방식으로 암호화 할 수 있다.
본 문서에 개시된 하나 또는 그 이상의 실시 예에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 하나 또는 그 이상의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 일 실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "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)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
하나 또는 그 이상의 실시 예에 따르면, 본 문서에 개시된 하나 또는 그 이상의 실시 예에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
하나 또는 그 이상의 실시 예에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 하나 또는 그 이상의 실시 예에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 일 실시 예에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치(101)에 있어서,
    일반 비보안 환경(410)에서 동작하는 제1 프로세서(321);
    보안 환경(420)에서 동작하는 제2 프로세서(322);
    상기 일반 비보안 환경에 할당된 제1 메모리(331);
    상기 보안 환경에 할당된 제2 메모리(334); 및
    상기 일반 비보안 환경과 상기 보안 환경에서 공유되는 제3 메모리(332)를 포함하며,
    상기 제2 프로세서는,
    암호화 된 부분을 생성하기 위해 보안 데이터 중 적어도 일부를 암호화 하고, 상기 보안 데이터는 상기 보안 환경에서 실행되는 신뢰된 어플리케이션에 의해 생성되고,
    상기 암호화 된 부분을 상기 제3 메모리에 저장하고,
    상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를 상기 제2 메모리에 저장하고,
    상기 제1 프로세서는,
    상기 제3 메모리에 저장된, 상기 암호화 된 부분을 상기 제1 메모리에 저장하도록 설정된 전자 장치.
  2. 제1항에 있어서,
    상기 제2 프로세서는,
    상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하되, 상기 블록 별로 서로 다른 ARC(anti-replay counter) 값들을 사용하여 암호화 하고,
    상기 블록 별로 상기 ARC 값들이 저장된 ARC 테이블(432)을 암호화 하며,
    상기 적어도 일부의 보안 데이터를 상기 블록 단위로 암호화 하는 과정에서 생성되는 태그값들(651)이 저장된 태그 테이블을 암호화 하도록 설정되는 것을 특징으로 하는 전자 장치.
  3. 제2항에 있어서,
    상기 제1 프로세서는,
    상기 암호화 된 적어도 일부의 보안 데이터(611), 상기 암호화 된 ARC 테이블(612), 및 상기 암호화 된 태그 테이블(613)을 파일 형태(610)로 상기 제1 메모리에 저장하도록 설정되는 것을 특징으로 하는 전자 장치.
  4. 제2항 또는 제3항에 있어서,
    상기 제1 정보는 마스터 ARC(641)이고, 상기 제2 정보는 마스터 태그(642)임을 특징으로 하는 전자 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 프로세서는,
    상기 보안 환경에서 상기 신뢰된 어플리케이션이 실행됨에 따라, 상기 제1 메모리에 저장된 상기 암호화 된 부분을 복사된 부분으로서 복사하고, 상기 복사된 부분을 상기 제3 메모리에 저장하며,
    상기 제2 프로세서는,
    상기 제1 정보 및 상기 제2 정보를 이용하여, 상기 제3 메모리에 저장된 상기 암호화 된 부분을 복호화 하도록 설정되는 전자 장치.
  6. 제5항에 있어서,
    상기 제3 메모리에 저장된 상기 암호화 된 부분은,
    상기 적어도 일부의 보안 데이터를 상기 블록 단위로 암호화 하는 과정에서 사용된 ARC(anti-replay counter)값들이 저장된 암호화 된 ARC 테이블(622), 상기 적어도 일부의 보안 데이터를 상기 블록 단위로 암호화 하는 과정에서 생성된 태그 값들이 저장된 암호화 된 태그 테이블(623)을 포함하며,
    상기 제2 프로세서는,
    상기 제1 정보 및 상기 제2 정보를 이용하여 상기 암호화 된 ARC 테이블을 복호화 하고,
    상기 암호화 된 태그 테이블을 복호화 하고,
    상기 복호화 된 ARC 테이블 및 상기 복호화 된 태그 테이블을 이용하여 상기 암호화 된 부분을 복호화 하도록 설정되는 전자 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 제1 프로세서는,
    상기 제1 메모리로부터 상기 암호화 된 부분, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 포함하는 파일(610)을 독출하고, 상기 암호화 된 부분, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 각각 상기 제3 메모리에 저장하도록 설정된 전자 장치.
  8. 제2항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 프로세서는,
    상기 보안 데이터 중 적어도 일부와, 상기 ARC 테이블을 암호화 할 때, AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 암호화 하도록 설정된 전자 장치.
  9. 제5항 내지 제8항 중 어느 한 항에 있어서,
    상기 제2 프로세서는,
    상기 암호화 된 부분을 AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 복호화 하도록 설정된 전자 장치.
  10. 제2항 내지 제9항 중 어느 한 항에 있어서,
    상기 제2 프로세서는,
    상기 태그 테이블을 암호화 할 때, AES(advanced encryption standard)- ECB(electronic code block) 방식으로 암호화 하도록 설정된 전자 장치.
  11. 전자 장치(101)의 동작 방법에 있어서,
    보안 환경(420)에서 동작하는 제1 프로세서(322)에 의해, 상기 보안 환경에서 신뢰된 어플리케이션을 실행하고 보안 데이터를 생성하는 동작(501),
    상기 제1 프로세서에 의해, 암호화 된 부분을 생성하기 위해 상기 생성된 보안 데이터 중 적어도 일부를 암호화 하고, 상기 암호화된 부분을 상기 보안 환경과 일반 비보안 환경(410)에서 공유되는 제1 메모리(332)에 저장하는 동작(503),
    상기 제1 프로세서에 의해, 상기 보안 데이터 중 적어도 일부를 암호화 하기 위하여 사용되는 제1 정보 및 상기 보안 데이터 중 적어도 일부를 암호화 하는 과정에서 생성되는 제2 정보를, 상기 보안 환경에 할당된 제2 메모리(334)에 저장하는 동작(503), 및
    상기 일반 비보안 환경에서 동작하는 제2 프로세서(321)에 의해, 상기 제1 메모리에 저장된, 상기 암호화 된 부분을 상기 일반 비보안 환경에 할당된 제3 메모리(331)에 저장하는 동작(505)을 포함하는 방법.
  12. 제11항에 있어서,
    상기 제1 프로세서에 의해 상기 암호화 하는 동작(503)은,
    상기 적어도 일부의 보안 데이터를 블록 단위로 암호화 하되, 상기 블록 별로 서로 다른 ARC(anti-replay counter) 값들을 사용하여 암호화 하는 동작(601),
    상기 적어도 일부의 보안 데이터를 상기 블록 단위로 암호화 하는 과정에서 생성되는 태그값들이 저장된 태그 테이블을 암호화 하는 동작(603), 및
    상기 블록 별로 상기 ARC 값들이 저장된 ARC 테이블을 암호화 하는 동작(605)을 포함하고,
    상기 제2 프로세서에 의해 상기 제3 메모리에 저장하는 동작(505)은,
    상기 암호화 된 부분, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 파일 형태(610)로 상기 제1 메모리에 저장(607)하는 동작을 포함하고,
    상기 제1 정보는 마스터 ARC(641)이고, 상기 제2 정보는 마스터 태그(642)임을 특징으로 하는 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 보안 환경에서 상기 신뢰된 어플리케이션이 실행됨에 따라(701), 상기 제2 프로세서에 의해, 상기 제1 메모리에 저장된 상기 암호화 된 부분을 복사하고, 상기 복사된 부분을 상기 제1 메모리에 저장하는 동작(703),
    상기 제1 프로세서에 의해, 상기 제1 정보 및 상기 제2 정보를 이용하여, 상기 제1 메모리에 저장된 상기 암호화 된 부분을 복호화 하는 동작(705)을 더 포함하고,
    상기 제1 메모리에 저장된 암호화 된 부분은,
    상기 적어도 일부의 보안 데이터를 상기 블록 단위로 암호화 하는 과정에서 사용된 ARC(anti-replay counter)값들이 저장된 암호화 된 ARC 테이블(621), 상기 적어도 일부의 보안 데이터를 상기 블록 단위로 암호화 하는 과정에서 생성된 태그 값들이 저장된 암호화 된 태그 테이블(623)을 포함하며,
    상기 제1 프로세서에 의해 상기 복호화 하는 동작(705)은,
    상기 제1 정보 및 상기 제2 정보를 이용하여 상기 암호화 된 ARC 테이블을 복호화 하는 동작(803),
    상기 태그 테이블을 복호화 하는 동작(805), 및
    상기 복호화 된 ARC 테이블 및 상기 복호화 된 태그 테이블을 이용하여 상기 암호화 된 부분을 복호화 하는 동작(805)을 포함하는 방법.
  14. 제13항에 있어서,
    상기 제2 프로세서에 의해,
    상기 제3 메모리로부터 상기 암호화 된 보안 데이터, 상기 암호화 된 ARC 테이블, 및 상기 암호화 된 태그 테이블을 포함하는 파일(610)을 독출하고(801), 상기 암호화 된 부분(621), 상기 암호화 된 ARC 테이블(622), 및 상기 암호화 된 태그 테이블(623)을 각각 상기 제1 메모리에 저장하는 동작을 더 포함하는 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 암호화 하는 동작(601,605)은,
    상기 보안 데이터 중 적어도 일부와, 상기 ARC 테이블을 암호화 할 때, AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 암호화 하고,
    상기 복호화 하는 동작(705)은,
    상기 암호화 된 부분을 AES(advanced encryption standard)-GCM(galois/counter mode) 방식으로 복호화 하고,
    상기 태그 테이블을 암호화 하는 동작(603)은,
    AES(advanced encryption standard)- ECB(electronic code block) 방식으로 암호화 하는 방법.
PCT/KR2023/018740 2022-11-25 2023-11-21 보안 데이터를 저장하는 전자 장치 및 그 동작 방법 Ceased WO2024112057A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP23894985.3A EP4575871A4 (en) 2022-11-25 2023-11-21 Electronic device for storing secure data and its operating method
CN202380078175.1A CN120202471A (zh) 2022-11-25 2023-11-21 用于存储安全数据的电子装置及其操作方法
US18/520,023 US12627469B2 (en) 2022-11-25 2023-11-27 Electronic device for storing secure data and method for operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0160173 2022-11-25
KR1020220160173A KR20240077842A (ko) 2022-11-25 2022-11-25 보안 데이터를 저장하는 전자 장치 및 그 동작 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/520,023 Continuation US12627469B2 (en) 2022-11-25 2023-11-27 Electronic device for storing secure data and method for operating the same

Publications (1)

Publication Number Publication Date
WO2024112057A1 true WO2024112057A1 (ko) 2024-05-30

Family

ID=91196214

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/018740 Ceased WO2024112057A1 (ko) 2022-11-25 2023-11-21 보안 데이터를 저장하는 전자 장치 및 그 동작 방법

Country Status (2)

Country Link
KR (1) KR20240077842A (ko)
WO (1) WO2024112057A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320263A1 (en) * 2007-06-20 2008-12-25 Daniel Nemiroff Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner
KR20170124360A (ko) * 2016-05-02 2017-11-10 삼성전자주식회사 가상 sim 운용 방법 및 그 장치
US20200304295A1 (en) * 2019-03-22 2020-09-24 Jpmorgan Chase Bank, N.A. Systems and methods for manipulation of private information on untrusted environments
CN113553204A (zh) * 2021-09-16 2021-10-26 支付宝(杭州)信息技术有限公司 一种数据传输方法及装置
KR20220062866A (ko) * 2020-11-09 2022-05-17 한화테크윈 주식회사 네트워크 카메라 및 그의 보안 서비스 제공 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320263A1 (en) * 2007-06-20 2008-12-25 Daniel Nemiroff Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner
KR20170124360A (ko) * 2016-05-02 2017-11-10 삼성전자주식회사 가상 sim 운용 방법 및 그 장치
US20200304295A1 (en) * 2019-03-22 2020-09-24 Jpmorgan Chase Bank, N.A. Systems and methods for manipulation of private information on untrusted environments
KR20220062866A (ko) * 2020-11-09 2022-05-17 한화테크윈 주식회사 네트워크 카메라 및 그의 보안 서비스 제공 방법
CN113553204A (zh) * 2021-09-16 2021-10-26 支付宝(杭州)信息技术有限公司 一种数据传输方法及装置

Also Published As

Publication number Publication date
KR20240077842A (ko) 2024-06-03

Similar Documents

Publication Publication Date Title
WO2022030893A1 (ko) 오디오 공유를 지원하는 전자 장치
WO2022010134A1 (ko) 메시지의 암호화 방법 및 전자 장치
WO2022092869A1 (ko) 전자 장치 및 이를 이용한 메모리 보호 방법
WO2021006574A1 (en) Method and apparatus for managing application
WO2022030891A1 (ko) 백업 데이터 복원 방법 및 이를 위한 전자 장치
WO2024071582A1 (ko) 블록체인 기반 데이터 전송 방법 및 장치
US12627469B2 (en) Electronic device for storing secure data and method for operating the same
WO2024075929A1 (ko) 신뢰 실행 환경을 제공하기 위한 전자 장치
WO2024039235A1 (ko) 전자 장치 및 전자 장치에서 사용자 인증을 수행하는 방법
WO2025089665A1 (ko) 전자 장치 및 개인화 컨텐츠 생성 방법
WO2020149555A1 (ko) 암호화될 데이터의 정보량에 기반하여 암호화에 사용될 키를 선택하는 전자 장치 및 전자 장치의 동작 방법
WO2024096639A1 (ko) 전자 장치 및 전자 장치에서 데이터를 검증하는 방법
WO2023038222A1 (ko) 사용자의 생체 정보를 보호하기 위한 전자 장치
WO2022154273A1 (ko) 데이터 백업을 지원하는 전자 장치 및 그 운용 방법
KR20240077842A (ko) 보안 데이터를 저장하는 전자 장치 및 그 동작 방법
WO2023058860A1 (ko) 멀티 서명된 apk 파일을 처리하는 전자 장치 및 그 동작 방법
WO2022124646A1 (ko) 프라이버시 서비스를 제공하기 위한 전자 장치
WO2021256720A1 (ko) 외부 장치로 요청을 전송하는 방법 및 이를 지원하는 전자 장치
WO2024071861A1 (ko) 업데이트 방법 및 이를 위한 전자 장치
WO2023013886A1 (ko) 분리 권한을 이용하는 전자 장치 및 그 동작 방법
WO2024072117A1 (ko) 전자 장치 및 어플리케이션 간의 통신 방법
WO2024205383A1 (ko) 가상 머신을 이용하여 인증을 수행하는 전자 장치 및 이의 동작 방법
KR20240026069A (ko) 전자 장치 및 전자 장치에서 사용자 인증을 수행하는 방법
WO2024039233A1 (ko) 전자 장치 및 전자 장치에서 프라이버시 강화 모드를 실행하는 방법
WO2025154939A1 (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: 23894985

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023894985

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2023894985

Country of ref document: EP

Effective date: 20250318

WWE Wipo information: entry into national phase

Ref document number: 202380078175.1

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 202380078175.1

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2023894985

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE