Electronic device restricting access to development functions and operation method thereof

The FSE module authenticates users before granting access to developer modes, addressing vulnerabilities in firmware security by ensuring only authorized users can exploit development functions, thus fortifying the chain of trust.

WO2026010183A1PCT designated stage Publication Date: 2026-01-08SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/007780
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-30
Filing Date
2025-06-05
Publication Date
2026-01-08

AI Technical Summary

Technical Problem

Existing firmware security mechanisms, such as the chain of trust, are vulnerable to tampering and modification by attackers due to exposure of developer modes that provide system development functions, allowing unauthorized access and exploitation of vulnerabilities.

Method used

Implement a First Secure Entry (FSE) module that determines user authentication before allowing access to developer modes, using a boot command to load firmware and generate encrypted information for verification through a server.

Benefits of technology

Enhances firmware security by restricting developer mode access to authenticated users, preventing unauthorized tampering and exploitation, thereby strengthening the chain of trust.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025007780_08012026_PF_FP_ABST
    Figure KR2025007780_08012026_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed are an electronic device for restricting access to development functions and an operating method thereof. According to the present invention, the electronic device comprises a memory storing instructions and one or more processors for executing the instructions. When the one or more processors individually or collectively execute the instructions, the instructions cause the electronic device to: determine whether a booting command is for entering a developer mode when receiving the booting command for the electronic device from a user; receive, from a host device for using the developer mode, a first function number for any one of development functions provided by the developer mode when the booting command is for entering the developer mode; generate first information on the basis of the first function number; transmit the first information to the host device; receive, in response to the transmission of the first information to the host device, second information generated, on the basis of the first information, by a server authenticating the user; and determine whether to enter the developer mode on the basis of the first information and the second information.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic device restricting access to development functions and method of operation thereof

[0001] An electronic device and method of operating the same for restricting access to development functions are disclosed.

[0002] When executing firmware, it is necessary to determine whether the firmware has been tampered with or modified. This is because malicious attackers can tamper with firmware to install malware, install backdoors, or otherwise compromise the system's security. To achieve this, it may be necessary to detect whether the firmware has been tampered with or modified when loaded into memory.

[0003] For example, a chain of trust technology can be used to detect falsification and / or modification of firmware. A chain of trust technology can be a technology that starts with the initial, unmodified firmware and, when loading the next firmware into memory, the previous firmware executed immediately before the next firmware detects whether the next firmware has been modified.

[0004] The background technology described above is possessed or acquired during the process of deriving the present disclosure and cannot necessarily be said to be a publicly known technology disclosed to the general public prior to the filing of the present disclosure.

[0005] According to one embodiment, an electronic device may include a memory that stores instructions. The electronic device may include at least one processor that executes the instructions. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device, when receiving a boot command for the electronic device from a user, to determine whether the boot command is a command for entering a developer mode. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device, when the boot command is a command for entering the developer mode, to receive a first function number for any one of the development functions provided by the developer mode from a host device for using the developer mode. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to generate first information based on the first function number. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to transmit the first information to the host device. When said at least one processor individually or collectively executes said commands, said commands may cause said electronic device to receive second information generated by a server authenticating said user based on said first information in response to transmitting said first information to said host device. When said at least one processor individually or collectively executes said commands, said commands may cause said electronic device to determine whether to enter said developer mode based on said second information.

[0006] According to one embodiment, a method of operating an electronic device may include an operation of determining whether a booting command for the electronic device is a command for entering a developer mode when the booting command is received from a user. If the booting command is a command for entering the developer mode, the method of operating the electronic device may include an operation of receiving a first function number for any one of development functions provided by the developer mode from a host device for using the developer mode. The method of operating the electronic device may include an operation of generating first information based on the first function number. The method of operating the electronic device may include an operation of transmitting the first information to the host device. The method of operating the electronic device may include an operation of receiving, in response to transmitting the first information to the host device, second information generated by a server for authenticating the user based on the first information. The method of operating the electronic device may include an operation of determining whether to enter the developer mode based on the second information.

[0007] According to one embodiment, a non-transitory computer-readable recording medium can store one or more computer programs including instructions for executing the above-described method of operation.

[0008] According to one embodiment, an electronic device may include a memory that stores instructions. The electronic device may include at least one processor that executes the instructions. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to load firmware into the memory that determines whether to allow a user of a host device access to a developer mode. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to receive a first function number for any one of the development functions provided by the developer mode from the host device, and to use the firmware to generate first information based on the first function number. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to transmit the first information to the host device. When said at least one processor individually or collectively executes said commands, said commands may cause said electronic device to receive, in response to transmitting said first information to said host device, second information generated by a server authenticating said user based on said first information. When said at least one processor individually or collectively executes said commands, said commands may cause said electronic device to sequentially execute at least one firmware for entering a development function corresponding to said first function number based on said second information.

[0009] According to one embodiment, a method of operating an electronic device may include loading firmware into a memory, the firmware determining whether to allow a user of a host device access to a developer mode. The method of operating the electronic device may include receiving a first function number for any one of development functions provided by the developer mode from the host device, and generating first information based on the first function number using the firmware. The method of operating the electronic device may include transmitting the first information to the host device. The method of operating the electronic device may include receiving, in response to transmitting the first information to the host device, second information generated by a server authenticating the user based on the first information. The method of operating the electronic device may include sequentially executing at least one firmware for entering a development function corresponding to the first function number based on the second information.

[0010] According to one embodiment, a non-transitory computer-readable recording medium can store one or more computer programs including instructions for executing the above-described method of operation.

[0011] FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.

[0012] Figure 2 is a drawing for explaining conventional firmware execution.

[0013] FIG. 3 is a diagram for explaining the execution of firmware according to one embodiment of the present disclosure.

[0014] FIGS. 4 to 6 are drawings for explaining the operation of a server, a host device, and an electronic device according to one embodiment of the present disclosure.

[0015] FIG. 7 is a drawing for explaining a screen of an electronic device according to one embodiment of the present disclosure.

[0016] FIGS. 8 to 10 are drawings for explaining the operation of a server, a host device, and an electronic device according to one embodiment of the present disclosure.

[0017] FIG. 11 is a flowchart illustrating the operation of an electronic device according to one embodiment of the present disclosure.

[0018] Hereinafter, embodiments will be described in detail with reference to the attached drawings. In the description with reference to the attached drawings, identical components are assigned the same reference numerals regardless of the drawing numbers, and redundant descriptions thereof will be omitted.

[0019] FIG. 1 is a block diagram of an electronic device (101) within a network environment (100) according to various embodiments. Referring to FIG. 1, in the network environment (100), the electronic device (101) may communicate with the electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of the electronic device (104) or the server (108) via a second network (199) (e.g., a long-range wireless communication network). In one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).

[0020] The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134).

[0021] According to one embodiment, the processor (120) may be implemented as a circuit (e.g., a processing circuit) such as a system on chip (SoC) or an integrated circuit (IC). The processor (120) may include one or more processors. For example, the processor (120) may include a combination of one or more processors such as a CPU, a GPU, an MPU (micro processing unit), an AP, and a CP.

[0022] According to one embodiment, 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 processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (121). For example, when the electronic device (101) includes the main processor (121) and the auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a given function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as a part thereof.

[0023] The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (101) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include a plurality of artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.

[0024] The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto.

[0025] According to one embodiment, the memory (130) may include one or more memories. The instructions stored in the memory (130) may be stored in one memory. The instructions stored in the memory (130) may be divided and stored in a plurality of memories. The instructions stored in the memory (130) may be individually or collectively executed by at least one processor (120) to cause the electronic device (101) to perform and / or control the operations described with reference to FIGS. 2 to 11. The instructions stored in the memory (130) may be individually or collectively executed by at least one processor to cause the electronic device (101) to perform and / or control the operations described with reference to FIGS. 2 to 11. According to one embodiment, the memory (130) may include a volatile memory (132) or a nonvolatile memory (134).

[0026] The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).

[0027] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0028] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.

[0029] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

[0030] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).

[0031] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0032] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, 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.

[0033] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0034] The haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

[0035] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.

[0036] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).

[0037] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0038] The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include 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) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, the corresponding communication module can communicate with an external electronic device (104) via 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., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).

[0039] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.

[0040] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., 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), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).

[0041] According to various embodiments, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.

[0042] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).

[0043] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion 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 a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

[0044] Electronic devices according to the various embodiments disclosed in this document may take various forms. 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 the embodiments of this document are not limited to the aforementioned devices.

[0045] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0046] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0047] Various embodiments of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.

[0048] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as a computer program product. The computer program product may be traded between sellers and buyers as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)) or may be provided through an application store (e.g., Play Store). TM ) or directly between two user devices (e.g., smart phones), online distribution (e.g., downloading or uploading). In the case of online distribution, at least 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 an intermediary server.

[0049] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the 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 one or more other operations may be added.

[0050] Figure 2 is a drawing for explaining conventional firmware execution.

[0051] The chain of trust technology may be a method for checking for tampering and / or modification of firmware when loading the firmware into memory (e.g., memory (130) of FIG. 1). Therefore, after the firmware is loaded into memory, no checks for tampering and / or modification may be performed on the firmware.

[0052] If the firmware loaded into memory contains a vulnerability and an attacker gains access to this vulnerability, the attacker can modify the firmware and bypass security features. In other words, if the firmware contains a vulnerability, it can be forged and / or modified by an attacker after being loaded into memory, thereby bypassing the chain of trust technology.

[0053] Forgery and / or modification of firmware with the aforementioned vulnerabilities can be accomplished through a developer mode that is not accessible to general users. The developer mode may be a mode that provides system development, debugging, and customization. For example, the developer mode may include development functions such as TEST modes that provide TEST functions used by developers, a download mode (240) for firmware updates, and an upload mode (260) used for debugging when a problem occurs. For example, the developer mode may include development functions such as a recovery mode and an emergency download mode (EDL) mode (260) used to restore an electronic device. The EDL mode may refer to a special function provided by the chip manufacturer for emergency downloads. On the other hand, the general mode may be a mode for general use.

[0054] For example, an electronic device (200) (e.g., electronic device (101) of FIG. 1) may obtain a boot command from a user. According to one embodiment, the boot command may include a command to run in normal mode or a command to run in developer mode.

[0055] For example, when a boot command including a command to run in normal mode is obtained, the electronic device (200) can initialize the device according to the boot command and load a bootloader (210) into the memory. The bootloader (210) can determine whether the kernel (220) has been counterfeited and / or modified before loading the kernel (220) into the memory. If the kernel (220) has not been counterfeited and / or modified, the bootloader (210) can load the kernel (220) into the memory. The kernel (220) can determine whether the operating system (OS) (230) has been counterfeited and / or modified before loading the OS (230) into the memory. If the OS (230) has not been counterfeited and / or modified, the kernel (220) can load the OS (230) into the memory.

[0056] For example, when a boot command including a command to run in developer mode is obtained, the electronic device (200) can initialize the device according to the boot command and load the bootloader (210) into the memory. The bootloader (210) can determine whether the download mode (240) has been counterfeited and / or modified before loading the download mode (240) into the memory. If the download mode (240) has not been counterfeited and / or modified, the bootloader (210) can load the download mode (240) into the memory. The download mode (240) can provide development functions such as a firmware update function, a TEST 1 function, and a TEST 2 function.

[0057] If a vulnerability exists in the TEST 2 feature and an attacker is aware of it, the attacker can exploit the TEST 2 feature to cause a forged and / or modified kernel to run in memory, thereby bypassing the chain of trust.

[0058] For example, when a boot command including a command to run in developer mode (e.g., EDL mode (260)) is obtained, the electronic device (200) can initialize the device according to the boot command and run the download agent (270).

[0059] If a vulnerability exists in the download agent (270) and the attacker is aware of it, the attacker can use the vulnerability in the download agent (270) to bypass the trust chain and execute a new download agent, bootloader firmware, or kernel firmware created by the attacker.

[0060] Bypassing the aforementioned chain of trust can occur if a user easily accesses developer mode. This means that the interfaces that allow the user to access firmware functions are exposed, allowing an attacker to exploit vulnerabilities in the firmware. These interfaces can include any protocol that allows the user to communicate with the electronic device before it boots up.

[0061] Even if a firmware vulnerability exists, attacks can be prevented by preventing attackers from accessing the interfaces that access firmware functions. In other words, attacks can be prevented by restricting access to developer mode to only authenticated users. Below, we will explain how to execute firmware by determining whether the user accessing developer mode is authenticated.

[0062] FIG. 3 is a diagram for explaining the execution of firmware according to one embodiment of the present disclosure.

[0063] An electronic device (300) (e.g., the electronic device (101) of FIG. 1 and the electronic device (200) of FIG. 2) can obtain a boot command from a user. The boot command may include a command to run the electronic device (300) in a normal mode or a command to run it in a developer mode.

[0064] The electronic device (300) can initialize the device upon acquiring a boot command. The electronic device can load the FSE module (first secure entry module) (310) into memory. The FSE module (310) may be the firmware loaded first into memory upon acquiring the boot command. The FSE module may be firmware that determines whether to allow the user of the host device access to developer mode.

[0065] The FSE module (310) can identify a boot command. The FSE module (310) can determine whether the boot command is a command to run the electronic device (300) in normal mode or a command to run it in developer mode.

[0066] If the boot command is a command to run in normal mode, the FSE module (310) can initiate execution of the electronic device (300) in normal mode. If the boot command is a command to run in developer mode, it can determine whether the user (i.e., developer) is an authenticated user. If the user is an authenticated user, the FSE module (310) can initiate execution of the electronic device (300) in developer mode. If the user is not an authenticated user, the FSE module (310) can prevent execution of the electronic device (300) in developer mode.

[0067] In other words, the security level of an electronic device can be strengthened by providing a developer mode only to authenticated users using the FSE module (310) and restricting access to the developer mode for unauthenticated users.

[0068] Below, we will describe the operation between the electronic device (300) for authenticating a user and external devices.

[0069] FIGS. 4 to 6 are drawings for explaining the operation of a server, a host device, and an electronic device according to one embodiment of the present disclosure.

[0070] Referring to FIG. 4, an electronic device (400) (e.g., electronic device (101) of FIG. 1, electronic device (200) of FIG. 2, electronic device (300) of FIG. 3), a host device (420) (e.g., electronic device (102) of FIG. 1 and electronic device (104) of FIG. 1) and a server (430) (e.g., server (108) of FIG. 1) are illustrated.

[0071] The electronic device (400), the host device (420), and the server (430) may be connected to each other by wires and / or wirelessly to communicate with each other. When communicating wirelessly, the electronic device (400), the host device (420), and the server (430) may communicate via a short-range wireless communication network (e.g., the first network (198) of FIG. 1) and / or a long-range wireless communication network (e.g., the second network (199) of FIG. 1).

[0072] The operations described below may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. Furthermore, some operations may be omitted according to some embodiments. Operations (401) to (409) may be performed by at least one component of the electronic device (400) (e.g., the processor (120) of FIG. 1 ). For example, instructions stored in a memory (e.g., the memory (130) of FIG. 1 ) may be executed by at least one processor, and the instructions may cause the electronic device to perform operations (401) to (409) below.

[0073] In operation (401), the electronic device (400) can receive a boot command.

[0074] The electronic device (400) may receive a boot command for the electronic device (400) from a user. The boot command may be a command to turn on the electronic device (400). The boot command may include a command to run in normal mode or a command to run in developer mode. Upon receiving the boot command, the electronic device may load and execute firmware (i.e., an FSE module (e.g., the FSE module (310) of FIG. 3)) that determines whether to allow the user of the host device (420) access to the developer mode into its memory.

[0075] The electronic device (400) is a device that can provide a general mode or a developer mode depending on a booting method, and may include various computing devices such as a mobile phone, a smart phone, a tablet, an e-book device, a laptop, a personal computer, a desktop, a workstation, or a server, various wearable devices such as a smart watch, smart glasses, or a head-mounted display (HMD), various home appliances such as a smart speaker, a smart TV, or a smart refrigerator, a smart car, a smart kiosk, an Internet of Things (IoT) device, a walking assist device (WAD), a drone, or a robot.

[0076] In operation (403), the electronic device (400) can determine whether the boot command is a command to enter developer mode.

[0077] When the electronic device (400) receives a boot command, it can determine whether the boot command is a command to enter the normal mode or a command to enter the developer mode. The electronic device (400) can check the reset reason through an application programming interface (API) provided by the manufacturer of the chip (e.g., processor). The reset reason is stored in a register of the power management integrated circuit (PMIC) of the electronic device (400), and the chip manufacturer can provide an API that can read the reset reason. The electronic device (400) can determine whether the boot command is a command to enter the normal mode or a command to enter the developer mode through the reset reason.

[0078] If the boot command is a command to enter normal mode, the electronic device (400) may allow booting as is. For example, the electronic device (400) may allow booting to load an OS (e.g., OS (230) of FIG. 2).

[0079] If the boot command is a command to enter developer mode, the electronic device (400) may display on the screen that the boot command is a command to access developer mode and wait for input from the host device (420). Alternatively, the electronic device (400) may transmit a message to the host device (420) via a wired and / or wireless communication protocol.

[0080] In operation (421), the host device (420) can receive a first function number.

[0081] The host device (420) may be a device that utilizes the developer mode of the electronic device (400). That is, the host device (420) may be a device that a user (i.e., a developer) uses to utilize the developer mode of the electronic device (400). The electronic device (400) may be a device that provides the developer mode to the host device (420). The host device (420) may utilize the developer mode of the electronic device (400) to perform function development, debugging, customization, etc. for the electronic device (400).

[0082] The host device (420) can receive a first function number from the user. The first function number may be a number corresponding to any one of the development functions provided by the developer mode.

[0083] In operation (423), the host device (420) can transmit a first function number to the electronic device (400).

[0084] The electronic device (400) may receive a first function number. Based on the first function number, the electronic device (400) may identify the development function of the developer mode that the user wishes to access. The electronic device may store a table that is used to identify the development function of the developer mode that the user wishes to access. The table may include development functions and numbers corresponding to the development functions. The table may be included in the FSE module.

[0085] For example, the table may include an EDL mode (e.g., EDL mode (260) of FIG. 2) matching 1 and 1, a download mode (e.g., download mode (240) of FIG. 2) matching 2 and 2. However, this is merely an example, and the present disclosure is not limited thereto. When the electronic device (400) receives 2 as the first function number from the host device (420), the electronic device (400) may use the table to identify that the development function of the developer mode that the user wishes to access is the download mode.

[0086] In operation (405), the electronic device (400) may generate a symmetric key to encrypt the first function number.

[0087] The electronic device (400) can generate a random number upon receiving the first function number. The electronic device (400) can generate a symmetric key based on the random number. The electronic device (400) can generate the symmetric key based on the random number using various algorithms already known.

[0088] In operation (407), the electronic device (400) can generate a first encrypted packet that encrypts a first function number based on a symmetric key.

[0089] In operation (409), the electronic device (400) can transmit first information to the host device (420).

[0090] The first information may include a first function number and a first packet. The first information may be transmitted to the host device (420) via serial communication. Since the first function number of the first packet is encrypted, even if the host device (420) is hacked, the hacker cannot modify the contents of the first packet.

[0091] In operation (425), the host device (420) can receive login information.

[0092] The host device (420) may receive login information from the user to log in to the server (430). The login information may include an ID and password. The server (430) may be a device for authenticating whether the user is an authorized user who can use the developer mode.

[0093] In operation (427), the host device (420) can transmit login information to the server (430).

[0094] In operation (431), the server (430) can determine whether the user is an authenticated user.

[0095] The server (430) can determine whether the user is an authenticated user who can use developer mode based on the login information.

[0096] The server (430) can complete the login if the user is an authenticated user and notify the host device (420) that the user has logged in.

[0097] In operation (429), the host device (420) can transmit first information to the server (430).

[0098] If the host device (420) successfully logs in to the server (430), the host device (420) can transmit first information to the server (430). The host device (420) can transmit first information received from the electronic device (400) to the server (430).

[0099] The server (430) can determine whether the user can use the development function based on the first information. The method for determining whether the user can use the development function based on the first information will be described later in FIG. 5.

[0100] The operations (401) to (409) of the electronic device (400) described above in FIG. 4 can be performed by the FSE module.

[0101] Referring to FIG. 5, an electronic device (400) (e.g., the electronic device (101) of FIG. 1, the electronic device (200) of FIG. 2, and the electronic device (300) of FIG. 3), a host device (420) (e.g., the electronic device (102) of FIG. 1 and the electronic device (104) of FIG. 1), and a server (430) (e.g., the server (108) of FIG. 1) are illustrated. FIG. 5 illustrates operations performed by the server (430) after receiving first information according to operation (429) of FIG. 4.

[0102] In operation (501), the server (430) can determine whether the host device (420) can use the development function corresponding to the first function number.

[0103] In other words, the server (430) can determine whether the user of the host device (420) can use the development function corresponding to the first function number.

[0104] The server (430) can further determine whether the development function corresponding to the first function number can be used based on the first information.

[0105] For example, the server (430) can store a database containing information on users authorized to use each of the development functions, and can determine whether a user can use the development function corresponding to the first function number based on the database.

[0106] In other words, the server (430) can authenticate whether the user is capable of using the development function corresponding to the first function number.

[0107] In operation (503), the server (430) can generate a signature for the first information using a private key.

[0108] The server (430) can extract a first hash value for the first function number and the first packet using a hash algorithm included in the first information. The server (430) can generate a signature by encrypting the first hash value with a private key that only the server has. The server (430) can generate a signature by performing an asymmetric algorithm (e.g., RSA (Rivest-Shamir-Adleman), ECDSA (Elliptic Curve Digital Signature Algorithm), etc.) on the first hash value with the private key.

[0109] In operation (507), the server (430) can transmit second information to the host device (420).

[0110] In operation (521), the host device (420) can transmit second information to the electronic device (400).

[0111] The electronic device (400) may receive second information. The second information received by the electronic device (400) may include a second function number, a second packet, and a signature. The first function number and the first packet of the first information may be forged and / or modified during transmission between the electronic device (400), the host device (420), and the server (430). If the first function number is forged and / or modified during transmission, the first function number and the second function number may be different. If the first packet is forged and / or modified during transmission, the first packet and the second packet may be different.

[0112] Similarly, the signature generated by the server (430) may be forged and / or altered during the process of being transmitted from the server (430) to the electronic device (400). Therefore, if the signature is forged and / or altered during the process of being transmitted, the signature generated by the server (430) and the signature of the second information received by the electronic device (400) may be different.

[0113] Below, we will describe a method for an electronic device (400) to determine whether to provide a developer mode based on the second information.

[0114] Referring to FIG. 6, an electronic device (400) (e.g., the electronic device (101) of FIG. 1, the electronic device (200) of FIG. 2, and the electronic device (300) of FIG. 3), a host device (420) (e.g., the electronic device (102) of FIG. 1 and the electronic device (104) of FIG. 1), and a server (430) (e.g., the server (108) of FIG. 1) are illustrated. FIG. 6 illustrates operations of the electronic device (400) after the electronic device (400) receives second information according to operation (521) of FIG. 5.

[0115] The operations described below may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. Furthermore, some operations may be omitted according to some embodiments. Operations (601) to (611) may be performed by at least one component of the electronic device (400) (e.g., the processor (120) of FIG. 1 ). For example, instructions stored in a memory (e.g., the memory (130) of FIG. 1 ) may be executed by at least one processor, and the instructions may cause the electronic device to perform operations (601) to (611) below.

[0116] In operation (601), the electronic device (400) can decrypt the signature with a public key to obtain a first hash value. The public key can match the private key of the server (430).

[0117] In operation (603), the electronic device (400) can determine a second hash value from the second function number and the second packet.

[0118] The algorithm used to determine the second hash value from the second function number and the second packet may be the same as the algorithm used to determine the first hash value at the server.

[0119] In operation (605), the electronic device (400) can determine whether the first hash value and the second hash value are the same.

[0120] The electronic device (400) may perform operation (607) if the first hash value and the second hash value are identical. If the first hash value and the second hash value are not identical, the electronic device (400) may display on the screen that authentication has failed. For example, if at least one of the first function number, the first packet, and the server-generated signature is forged and / or altered, the first hash value and the second hash value may be different.

[0121] In operation (607), the electronic device (400) can decrypt the second packet with a symmetric key.

[0122] The symmetric key may be a key generated in operation (405) of FIG. 4. That is, the symmetric key may be a key used to encrypt the first function number.

[0123] In operation (609), the electronic device (400) can determine whether the decrypted value of the second packet is the same as the second function number.

[0124] The electronic device (400) may display on the screen that the second packet has an incorrect access (i.e., an error) if the decrypted value and the second function number are not the same. For example, if at least one of the first function number and the first packet is falsified and / or altered, the second packet may not have the same decrypted value and the second function number.

[0125] The electronic device (400) may perform operation (611) if the decrypted value of the second packet is identical to the second function number. In other words, if at least one of the first function number and the first packet is not falsified and / or modified, and if the decrypted value of the second packet and the second function number are both identical to the first function number, operation (611) may be performed.

[0126] In operation (611), the electronic device (400) may allow the host device (420) access to a development function corresponding to the first function number.

[0127] That is, the electronic device (400) can enter developer mode and allow the host device (420) access to the development function corresponding to the first function.

[0128] In other words, the electronic device (400) can sequentially execute at least one firmware for entering a development function corresponding to the first function number. That is, at least one firmware can be sequentially executed according to the trust chain technology.

[0129] The operations (601) to (611) of the electronic device (400) described above in FIG. 6 can be performed by the FSE module.

[0130]

[0131] Below, the screen of the electronic device (400) when a boot command for developer mode is obtained will be described.

[0132] FIG. 7 is a drawing for explaining a screen of an electronic device according to one embodiment of the present disclosure.

[0133] Referring to FIG. 7, an electronic device (700) (e.g., the electronic device (101) of FIG. 1, the electronic device (200) of FIG. 2, the electronic device (300) of FIG. 3, and the electronic device (400) of FIGS. 4 to 6) is illustrated.

[0134] The electronic device (700) can obtain a boot command. The electronic device (700) can obtain a boot command including a command to run the electronic device (700) in developer mode or a boot command including a command to run the electronic device (700) in normal mode.

[0135] For example, the electronic device (700) may obtain a boot command including a command to run the electronic device (700) in a normal mode by pushing the power button (701) for a threshold time in the off state.

[0136] For example, the electronic device (700) may obtain a boot command including a command to run the electronic device (700) in developer mode by pushing the power button (701) and the volume control button (703) for a threshold time in the off state.

[0137] When the electronic device (700) identifies the boot command as a command to enter the developer mode, it may display a screen (710) indicating that it has identified the entry into the developer mode. The electronic device (700) may transmit non-visual information indicating that it has identified the entry into the developer mode to a host device (e.g., the electronic device (102) of FIG. 1, the electronic device (104) of FIG. 1, and the host device (420) of FIG. 4).

[0138] The electronic device (700) may display information on the screen (710) indicating that it has identified a command to enter developer mode. The electronic device (700) may display a link on the screen (710) to a website that explains how to enter developer mode. The electronic device (700) may display a message on the screen (710) indicating that the electronic device (700) should be connected to a host device.

[0139] The electronic device (700) can display a screen (720) indicating that the user has entered the development function if the user is an authenticated user according to the operations described above in FIGS. 4 to 6.

[0140] The electronic device (700) can display a screen (730) if the user is not an authenticated user according to the operations described above in FIGS. 4 to 6.

[0141] The electronic device (700) may display a message indicating that authentication has failed on the screen (730). The electronic device (700) may display a message indicating that the electronic device (700) will reboot after a short period of time (e.g., 5 seconds) on the screen (730). When the electronic device (700) reboots, it may boot into normal mode.

[0142] The electronic device (700) can enhance security by preventing attackers from accessing the functions of the firmware by allowing only authenticated users to access the developer mode.

[0143] FIGS. 8 to 10 are drawings for explaining the operation of a server, a host device, and an electronic device according to one embodiment of the present disclosure.

[0144] Referring to FIGS. 8 to 10, when a boot command is received to run an electronic device (800) (e.g., the electronic device (101) of FIG. 1, the electronic device (200) of FIG. 2, the electronic device (300) of FIG. 3, the electronic device (400) of FIGS. 4 to 6, and the electronic device (700) of FIG. 7) in a developer mode (i.e., EDL mode) according to one embodiment of the present disclosure, the operations of the electronic device (800), the host device (820) (e.g., the electronic device (102) of FIG. 1, the electronic device (104) of FIG. 1, and the host device (420) of FIG. 4), and the server (830) (e.g., the server (108) of FIG. 1 and the server (430) of FIG. 4)) will be described.

[0145] The operations described below may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. Furthermore, some operations may be omitted according to some embodiments. Operations (801) to (805) may be performed by at least one component of the electronic device (800) (e.g., the processor (120) of FIG. 1 ). For example, instructions stored in a memory (e.g., the memory (130) of FIG. 1 ) may be executed by at least one processor, and the instructions may cause the electronic device to perform operations (801) to (805) below.

[0146] In operation (801), the electronic device (800) may receive a boot command including execution of EDL mode.

[0147] EDL mode may be a development feature provided by Developer Mode. Therefore, actions such as determining whether a boot command is a command for entering Developer Mode or obtaining a separate function number may be omitted.

[0148] In operation (821), the host device (820) may request a serial number from the electronic device (800).

[0149] The host device (820) can request the serial number of a chip (e.g., processor) from the electronic device (800).

[0150] In operation (803), the electronic device (800) can read the serial number.

[0151] The electronic device (800) can read the serial number in response to a request received from the host device (820).

[0152] In operation (805), the electronic device (800) can transmit a serial number to the host device (820).

[0153] In operation (823), the host device (820) may receive login information. The host device (820) may receive login information from the user to log in to the server (830). The login information may include an ID and a password. The server (830) may be a device for authenticating whether the user is an authorized user who can use the developer mode.

[0154] In operation (825), the host device (820) may transmit login information to the server (830).

[0155] In operation (831), the server (830) can determine whether the user is an authenticated user. The server (830) can determine whether the user is an authenticated user based on login information.

[0156] The server (830) can complete the login if the user is an authenticated user and notify the host device (820) that the user has logged in.

[0157] In operation (827), the host device (820) can transmit first information to the server (830).

[0158] According to one embodiment, the host device (820) may have previously downloaded a download agent file from the server (830). The download agent file may be a binary file that the developer has previously downloaded from the server (830). The download agent file may include a download agent (e.g., the download agent (270) of FIG. 2) and a signature of the download agent. The signature of the download agent may be an encrypted hash value of the download agent. At this time, the host device (820) may transmit first information including a serial number and the download agent file.

[0159] In one embodiment, the host device (820) may have previously downloaded a download agent file from the server (830). The download agent file may include a download agent (e.g., download agent (270) of FIG. 2) and a signature of the download agent. The signature of the download agent may be an encrypted hash value of the download agent. The host device (820) may transmit first information including only a serial number to the server (830).

[0160] In operation (833), the server (830) can determine whether the host device (820) can use the development function.

[0161] In other words, the server (480) can determine whether the user of the host device (820) can utilize the EDL mode.

[0162] In operation (835), the server (830) may generate a signature based on the serial number using the private key. In one embodiment, the server (830) may include the serial number in the download agent to generate a re-signature based on the private key held by the server (830).

[0163] In one embodiment, when the first information includes a serial number and a download agent file, the server (830) may apply a hash algorithm to the serial number and the download agent to extract a first hash value. The first hash value may be a hash value of the serial number and the download agent. In one embodiment, the first hash value may be a hash value of the download agent including the serial number. The server (830) may generate a signature of the first hash value using a private key. The authentication file may include a signature of the serial number and the first hash value. In this case, the second information may include the authentication file and the download agent file.

[0164] In one embodiment, if the first information includes only a serial number, the server (830) may apply a hash algorithm to the serial number to extract a first hash value. The server (830) may generate a signature of the first hash value using a private key. That is, the first hash value may be a hash value of the serial number. The authentication file may include a signature of the serial number and the first hash value. In this case, the second information may only include the authentication file.

[0165] In action (837), the server (830) can transmit second information to the host device (820).

[0166] The information included in the second information may vary depending on the embodiment described above.

[0167] In operation (829), the host device (820) can transmit second information to the electronic device (800).

[0168] According to one embodiment, if the second information includes an authentication file and a download agent file, the host device (820) may transmit the second information as is to the electronic device (800). At this time, the second information and the third information may be the same.

[0169] In one embodiment, when the second information includes only an authentication file, the host device (820) may transmit third information including the authentication file and a download agent file to the electronic device (800). At this time, the second information and the third information may be different.

[0170] Referring to FIG. 9, a flowchart for explaining the operation of an electronic device (800) that receives third information according to operation (829) of FIG. 8 is illustrated. FIG. 9 may illustrate the operation of an electronic device (800) when the second information and the third information are identical. Since the second information and the third information are identical, for convenience of explanation, it is assumed below that the electronic device (800) receives the second information in operation (829) of FIG. 8.

[0171] The operations described below may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. Furthermore, some operations may be omitted according to some embodiments. Operations (901) to (911) may be performed by at least one component of the electronic device (800) (e.g., the processor (120) of FIG. 1 ). For example, instructions stored in a memory (e.g., the memory (130) of FIG. 1 ) may be executed by at least one processor, and the instructions may cause the electronic device to perform operations (901) to (911) below.

[0172] In operation (901), the electronic device (800) can decrypt the signature with a public key to obtain a first hash value.

[0173] The electronic device (800) can obtain the first hash value by decrypting the signature of the first hash value included in the second information using a public key.

[0174] The first hash value may be a serial number and a hash value of a download agent (e.g., a download agent (270) of FIG. 2).

[0175] In operation (903), the electronic device (800) can determine a second hash value from the serial number and download agent included in the second information.

[0176] In other words, the electronic device (800) can determine the second hash value from the serial number of the authentication file and the download agent of the download agent file.

[0177] The method for determining the second hash value is omitted as described above in Fig. 6.

[0178] In operation (905), the electronic device (800) can determine whether the first hash value and the second hash value are the same.

[0179] If the first hash value and the second hash value are not the same, the electronic device (800) may disconnect from the host device (820) and turn off the power. Since the user interface (UI) cannot be used in EDL mode, the display module (e.g., the display module (160) of FIG. 1) may not be used. Accordingly, the electronic device (800) may not display a separate screen.

[0180] The electronic device (800) can perform operation (907) when the first hash value and the second hash value are the same.

[0181] In operation (907), the electronic device (800) can execute a download agent.

[0182] The electronic device (800) can load the download agent of the second information into memory and execute it. However, the function of the download agent may not be provided to the host device (820).

[0183] In operation (909), the electronic device (800) can determine whether the serial number included in the second information and the serial number read by the electronic device (800) are the same.

[0184] The electronic device (800) can determine whether the serial number of the authentication file included in the second information and the serial number read by the electronic device (800) are the same.

[0185] If the serial number included in the second information and the serial number read by the electronic device (800) are not the same, the electronic device (800) can disconnect from the host device (820) and turn off the power.

[0186] If the serial number included in the second information and the serial number read by the electronic device (800) are the same, the electronic device can perform operation (911).

[0187] In operation (911), the electronic device (800) may allow the host device (820) access to the development functions of the download agent.

[0188] Referring to FIG. 10, a flowchart is illustrated to explain the operation of an electronic device (800) that receives third information according to operation (829) of FIG. 8. FIG. 10 may illustrate the operation of an electronic device (800) in a case where the second information and the third information are different.

[0189] The operations described below may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. Furthermore, some operations may be omitted according to some embodiments. Operations (1001) to (1011) may be performed by at least one component of the electronic device (800) (e.g., the processor (120) of FIG. 1 ). For example, instructions stored in a memory (e.g., the memory (130) of FIG. 1) may be executed by at least one processor, and the instructions may cause the electronic device to perform operations (1001) to (1011) below.

[0190] In operation (1001), the electronic device (800) can decrypt the signature of the serial number to obtain a first hash value and decrypt the signature of the download agent to obtain a second hash value.

[0191] In operation (1003), the electronic device (800) can obtain a third hash value from the serial number and a fourth hash value from the download agent.

[0192] The electronic device (800) can extract a third hash value from the serial number included in the authentication file of the third information. The electronic device (800) can extract a fourth hash value from the download agent included in the download agent file of the third information. The method for extracting the hash value is described above in FIG. 6, and thus a detailed description thereof will be omitted.

[0193] In operation (1005), the electronic device (800) can determine whether the first hash value and the third hash value are the same, and whether the second hash value and the fourth hash value are the same.

[0194] If the first hash value and the third hash value are not the same or the second hash value and the fourth hash value are not the same, the electronic device (800) may disconnect from the host device (820) and turn off the power. Since the user interface (UI) cannot be used in EDL mode, the display module (e.g., the display module (160) of FIG. 1) may not be used. Accordingly, the electronic device (800) may not display a separate screen.

[0195] The electronic device (800) can perform operation (1007) if the first hash value and the third hash value are the same, and the second hash value and the fourth hash value are the same.

[0196] In operation (1007), the electronic device (800) can execute a download agent.

[0197] The electronic device (800) can load the download agent of the second information into memory and execute it. However, the function of the download agent may not be provided to the host device (820).

[0198] In operation (1009), the electronic device (800) can determine whether the serial number included in the second information and the serial number read by the electronic device (800) are the same.

[0199] If the serial number included in the second information and the serial number read by the electronic device (800) are not the same, the electronic device (800) can disconnect from the host device (820) and turn off the power.

[0200] If the serial number included in the second information and the serial number read by the electronic device (800) are the same, the electronic device can perform operation (1011).

[0201] In operation (1011), the electronic device (800) may allow the host device (820) access to the development functions of the download agent.

[0202] FIG. 11 is a flowchart illustrating the operation of an electronic device according to one embodiment of the present disclosure.

[0203] In the embodiments below, the operations may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the operations may be changed, and at least two operations may be performed in parallel. Operations (1110) to (1150) may be performed by at least one component (e.g., the processor (120) of FIG. 1) of an electronic device (e.g., the electronic device (101) of FIG. 1, the electronic device (200) of FIG. 2, the electronic device (300) of FIG. 3, the electronic device (400) of FIGS. 4 to 6, the electronic device (700) of FIG. 7, and the electronic device (800) of FIGS. 8 to 10). For example, instructions stored in a memory (e.g., the memory (130) of FIG. 1) may be executed by at least one processor, and the instructions may cause the electronic device to perform the operations (1110) to (1150) below.

[0204] In operation (1110), the electronic device may load firmware (e.g., the FSE module (310) of FIG. 2) into memory that determines whether to allow access to a developer mode to a user of a host device (e.g., the electronic device (102) of FIG. 1, the electronic device (104) of FIG. 1, the host device (420) of FIG. 4, and the host device (820) of FIG. 8).

[0205] In operation (1120), the electronic device may generate first information based on the first function number using firmware when receiving a first function number for any one of the development functions provided by the developer mode from the host device.

[0206] In operation (1130), the electronic device can transmit first information to the host device.

[0207] In operation (1140), the electronic device may receive second information generated based on the first information by a server (e.g., server (108) of FIG. 1, server (430) of FIG. 4, and server (830) of FIG. 8) that authenticates the user in response to transmitting the first information to the host device.

[0208] In operation (1150), the electronic device can sequentially execute at least one firmware for entering a development function corresponding to the first function number based on the second information.

[0209] Since the matters described above through FIGS. 1 to 10 are applied to each operation illustrated in FIG. 11, a more detailed description is omitted.

[0210] According to one embodiment, an electronic device may include a memory (e.g., memory 130 of FIG. 1) that stores instructions. The electronic device may include at least one processor (e.g., processor 120 of FIG. 1) that executes the instructions. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device, when receiving a boot command for the electronic device from a user, to determine whether the boot command is a command for entering a developer mode. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device, if the boot command is a command for entering a developer mode, to receive a first function number for any one of the development functions provided by the developer mode from a host device for utilizing the developer mode. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to generate first information based on the first function number. When the at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to transmit the first information to the host device. When at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to receive second information generated by a server authenticating the user based on the first information in response to transmitting the first information to the host device. When at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to determine whether to enter developer mode based on the second information.

[0211] According to one embodiment, when at least one processor individually or collectively executes instructions, the instructions may cause the electronic device to generate a symmetric key for encrypting a first function number. When at least one processor individually or collectively executes instructions, the instructions may cause the electronic device to generate a first packet that encrypts the first function number based on the symmetric key, thereby generating first information including the first function number and the first packet.

[0212] According to one embodiment, when at least one processor individually or collectively executes instructions, the instructions may cause the electronic device to generate a random number and generate a symmetric key based on the random number.

[0213] In one embodiment, the server may obtain login information from the host device and determine whether the user is an authenticated user based on the login information. If the user is an authenticated user, the server may determine whether the user can use the development function corresponding to the first function number based on the first information.

[0214] In one embodiment, the server may use a private key to generate a signature for the first function number and the first packet included in the first information, if the user is able to use the development function corresponding to the first function number. The server may transmit second information including the signature to the electronic device via the host device.

[0215] According to one embodiment, when at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to decrypt a signature included in the second information with a public key to obtain a first hash value. When at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to determine a second hash value from a second function number and a second packet included in the second information. When at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to determine whether to enter a developer mode based on whether the first hash value and the second hash value are the same.

[0216] In one embodiment, when at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to decrypt the second packet using the symmetric key used to encrypt the first function number if the first hash value and the second hash value are the same. When at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to determine whether the decrypted value of the second packet is the same as the second function number. When at least one processor individually or collectively executes the instructions, the instructions may cause the electronic device to allow the host device access to the development function corresponding to the first function number if the decrypted value of the second packet is the same as the second function number.

[0217] According to one embodiment, when at least one processor individually or collectively executes instructions, the instructions may cause the electronic device to display on the display module that the developer mode cannot be entered if the first hash value and the second hash value are not the same.

[0218] According to one embodiment, when at least one processor individually or collectively executes instructions, the instructions may cause the electronic device to sequentially execute at least one firmware for entering a development function corresponding to a first function number, if the electronic device determines to enter a developer mode based on the first information and the second information.

[0219] According to one embodiment, a method of operating an electronic device may include an operation of determining whether a boot command is a command for entering a developer mode when a boot command for the electronic device is received from a user. If the boot command is a command for entering a developer mode, the method of operating the electronic device may include an operation of receiving a first function number for any one of development functions provided by the developer mode from a host device for using the developer mode. The method of operating the electronic device may include an operation of generating first information based on the first function number. The method of operating the electronic device may include an operation of transmitting the first information to the host device. The method of operating the electronic device may include an operation of receiving, in response to transmitting the first information to the host device, second information generated by a server for authenticating the user based on the first information. The method of operating the electronic device may include an operation of determining whether to enter the developer mode based on the second information.

[0220] According to one embodiment, the operation of generating the first information may include the operation of generating a symmetric key for encrypting the first function number. The operation of generating the first information may include the operation of generating a first packet (first packet) that encrypts the first function number based on the symmetric key, thereby generating first information including the first function number and the first packet.

[0221] According to one embodiment, the operation of generating a symmetric key may include generating a random number and generating a symmetric key based on the random number.

[0222] In one embodiment, the server may obtain login information from the host device and determine whether the user is an authenticated user based on the login information. If the user is an authenticated user, the server may determine whether the user can use the development function corresponding to the first function number based on the first information.

[0223] In one embodiment, the server may use a private key to generate a signature for the first function number and the first packet included in the first information, if the user is able to use the development function corresponding to the first function number. The server may transmit second information including the signature to the electronic device via the host device.

[0224] According to one embodiment, the operation of determining whether to enter developer mode may include an operation of decrypting a signature included in the second information with a public key to obtain a first hash value. The operation of determining whether to enter developer mode may include an operation of determining a second hash value from a second function number and a second packet included in the second information. The operation of determining whether to enter developer mode may include an operation of determining whether to enter developer mode based on whether the first hash value and the second hash value are identical.

[0225] According to one embodiment, the operation of determining whether to enter the developer mode based on whether the first hash value and the second hash value are the same may include an operation of decrypting the second packet using the symmetric key used to encrypt the first function number if the first hash value and the second hash value are the same. The operation of determining whether to enter the developer mode based on whether the first hash value and the second hash value are the same may include an operation of determining whether the decrypted value of the second packet is the same as the second function number. The operation of determining whether to enter the developer mode based on whether the first hash value and the second hash value are the same may include an operation of allowing the host device to access the development function corresponding to the first function number if the decrypted value of the second packet is the same as the second function number.

[0226] According to one embodiment, the operation of determining whether to enter the developer mode based on whether the first hash value and the second hash value are the same may display on the display module that the developer mode cannot be entered if the first hash value and the second hash value are not the same.

[0227] According to one embodiment, the method of operating the electronic device may further include an operation of sequentially executing at least one firmware for entering a development function corresponding to the first function number when entry into a developer mode is determined based on the first information and the second information.

[0228] According to one embodiment, a non-transitory computer-readable recording medium can store one or more programs including instructions for executing any one of the above-described operating methods.

[0229] The embodiments of the present invention disclosed in this specification and drawings are merely specific examples presented to easily explain the technical contents according to the embodiments of the present invention and to help understand the embodiments of the present invention, and are not intended to limit the scope of the embodiments of the present invention. Therefore, the scope of the various embodiments of the present invention should be interpreted as including all changes or modified forms derived based on the technical ideas of the various embodiments of the present invention in addition to the embodiments disclosed herein.

Claims

1. In electronic devices (101; 200; 300; 400; 700; 800), Memory (130) for storing commands; and At least one processor (120) executing the above instructions Including, When the at least one processor (120) individually or collectively executes the instructions, the instructions cause the electronic device (101; 200; 300; 400; 700; 800) to: When a boot command for the electronic device (101; 200; 300; 400; 700; 800) is received from a user, it is determined whether the boot command is a command for entering the developer mode, and if the boot command is a command for entering the developer mode, a first function number for any one of the development functions provided by the developer mode is received from a host device (102; 104; 420; 820) for using the developer mode, first information is generated based on the first function number, and the first information is transmitted to the host device (102; 104; 420; 820), and in response to transmitting the first information to the host device (102; 104; 420; 820), a server (108; 430; 830) for authenticating the user receives second information generated based on the first information, and transmits the second information to the host device (102; 104; 420; 820). Based on this, it is determined whether to enter the developer mode. Electronic devices (101; 200; 300; 400; 700; 800).

2. In paragraph 1, When the at least one processor (120) individually or collectively executes the instructions, the instructions cause the electronic device (101; 200; 300; 400; 700; 800) to: Generating a symmetric key for encrypting the first function number, and generating a first packet (first packet) that encrypts the first function number based on the symmetric key to generate first information including the first function number and the first packet. Electronic devices (101; 200; 300; 400; 700; 800). 3.제1 항 및 제2항 중 어느 한 항에 있어서, When the at least one processor (120) individually or collectively executes the instructions, the instructions cause the electronic device (101; 200; 300; 400; 700; 800) to: 난수를 생성하고, 상기 난수에 기반하여 상기 대칭키를 생성하도록 하는, Electronic devices (101; 200; 300; 400; 700; 800).

4. In any one of paragraphs 1 to 3, The above server (108; 430; 830) When obtaining login information from the host device (102; 104; 420; 820), determining whether the user is an authenticated user based on the login information, and if the user is an authenticated user, determining whether the user can use the development function corresponding to the first function number based on the first information. Electronic devices (101; 200; 300; 400; 700; 800).

5. In any one of paragraphs 1 to 4, The above server (108; 430; 830) If the user can use the development function corresponding to the first function number, a signature for the first function number and the first packet included in the first information is generated using a private key, and second information including the signature is transmitted to the electronic device (101; 200; 300; 400; 700; 800) via the host device (102; 104; 420; 820). Electronic devices (101; 200; 300; 400; 700; 800).

6. In any one of paragraphs 1 to 5, When the at least one processor (120) individually or collectively executes the instructions, the instructions cause the electronic device (101; 200; 300; 400; 700; 800) to: Decrypting the signature included in the second information with a public key to obtain a first hash value, determining a second hash value from a second function number and a second packet included in the second information, and determining whether to enter the developer mode based on whether the first hash value and the second hash value are the same. Electronic devices (101; 200; 300; 400; 700; 800).

7. In any one of paragraphs 1 to 6, When the at least one processor (120) individually or collectively executes the instructions, the instructions cause the electronic device (101; 200; 300; 400; 700; 800) to: If the first hash value and the second hash value are the same, the second packet is decrypted using the symmetric key used to encrypt the first function number, and it is determined whether the decrypted value of the second packet and the second function number are the same, and if the decrypted value of the second packet and the second function number are the same, the host device (102; 104; 420; 820) is allowed access to the development function corresponding to the first function number. Electronic devices (101; 200; 300; 400; 700; 800).

8. In any one of paragraphs 1 to 7, When the at least one processor (120) individually or collectively executes the instructions, the instructions cause the electronic device (101; 200; 300; 400; 700; 800) to: If the first hash value and the second hash value are not the same, displaying on the display module (160) that the developer mode cannot be entered. Electronic devices (101; 200; 300; 400; 700; 800).

9. In any one of paragraphs 1 to 8, When the at least one processor (120) individually or collectively executes the instructions, the instructions cause the electronic device (101; 200; 300; 400; 700; 800) to: When entry into the developer mode is determined based on the first information and the second information, at least one firmware for entering the development function corresponding to the first function number is sequentially executed. Electronic devices (101; 200; 300; 400; 700; 800).

10. In the operating method of an electronic device (101; 200; 300; 400; 700; 800), An operation of determining whether a boot command for the electronic device (101; 200; 300; 400; 700; 800) is a command to enter developer mode when receiving a boot command from a user; If the above boot command is a command to enter the developer mode, an operation of receiving a first function number for any one of the development functions provided by the developer mode from a host device (102; 104; 420; 820) for using the developer mode; An operation of generating first information based on the first function number; An operation of transmitting the first information to the host device (102; 104; 420; 820); An operation of receiving second information generated based on the first information by a server (108; 430; 830) authenticating the user in response to transmitting the first information to the host device (102; 104; 420; 820); and An action to determine whether to enter the developer mode based on the second information above. including, How it works.

11. In paragraph 10, The operation of generating the above first information is: An operation of generating a symmetric key for encrypting the first function number; and An operation of generating a first packet by encrypting the first function number based on the symmetric key and generating first information including the first function number and the first packet. including, How it works.

12. In any one of paragraphs 10 and 11, The action of generating the above symmetric key is. Generating a random number and generating the symmetric key based on the random number, How it works.

13. In any one of paragraphs 10 to 12, The above server (108; 430; 830) When obtaining login information from the host device (102; 104; 420; 820), determining whether the user is an authenticated user based on the login information, and if the user is an authenticated user, determining whether the user can use the development function corresponding to the first function number based on the first information. How it works.

14. In any one of paragraphs 10 to 13, The above server (108; 430; 830) If the user can use the development function corresponding to the first function number, a signature for the first function number and the first packet included in the first information is generated using a private key, and second information including the signature is transmitted to the electronic device (101; 200; 300; 400; 700; 800) via the host device (102; 104; 420; 820). How it works.

15. In any one of paragraphs 10 to 14, The action to determine whether to enter the above developer mode is: An operation of decrypting the signature included in the above second information using a public key to obtain a first hash value; An operation of determining a second hash value from a second function number and a second packet included in the second information; and An operation for determining whether to enter the developer mode based on whether the first hash value and the second hash value are the same. including, How it works.

Citation Information

Patent Citations

  • Method for securing debug serial connection of embedded system terminal

    KR101382605B1

  • Debugging method of secure module for data protection

    KR1020110068498A

  • Secure system on chip

    KR1020170095161A

  • Device having secure jtag and debugging method for the same

    KR102228454B1

  • Restricted testing access for electronic device

    US8577334B1