This application claims the benefit under 35 U.S.C. §119(a) of a Korean patent application filed on Feb. 24, 2012 in the Korean Intellectual Property Office and assigned Serial No. 10-2012-0019095, the entire disclosure of which is hereby incorporated by reference.
1. Field of the Invention:
The present invention relates to a mobile terminal More particularly, the present invention relates to a method and an apparatus for protecting the integrity of a mobile terminal.
2. Description of the Related Art:
In addition to traditional communication functions related to calls and messages, advanced mobile terminals provide various other functions related to, for example, money transfer, stock trading, content playback and gaming.
When a mobile terminal is powered on, it starts to boot by loading the Operating System (OS). In secure booting, a pre-verified entity verifies subsequent entities and executes them only if their security is assured (i.e., not modified). This secure booting is used to detect a modification made to the operating system and the kernel, or malicious code in the mobile terminal, so as to prevent damage to the user and protect intellectual property rights.
However, some mobile terminals apply a secure boot chain only up to a bootloader. Such mobile terminals may boot even after their kernels are modified, and cannot ensure a secure boot. Malicious code installed in mobile terminals with an unsecure boot chain may disturb normal operations, and may allow for the personal or financial information of users to be stolen. This may also override Digital Rights Management (DRM) features, which enforce proper payment for digital content.
Hence, it is necessary to develop a method that can ensure integrity of entities in a mobile terminal
Aspects of the present invention are to address at least the above-mentioned problems and/or disadvantages and to provide at least the advantages described below. Accordingly, an aspect of the present invention is to provide a method and apparatus that can ensure the integrity of the normal world using hardware mechanisms of the secure world.
Another aspect of the present invention is to provide a method that reports a breach of the integrity of the entities involved in the boot process of a mobile terminal.
In accordance with an exemplary embodiment of the present invention, a method for integrity protection in a mobile terminal that has a secure world preventing unauthorized access to resources and a normal world other than the secure world is provided. The method includes sensing power-on of the mobile terminal, verifying, by a trusted entity in the normal world, integrity of a first subsequent entity, and sending, when an integrity breach is detected in the first subsequent entity, by the trusted entity, a modification indication signal to the secure world.
In accordance with another exemplary embodiment of the present invention, an apparatus for integrity protection in a mobile terminal is provided. The apparatus includes a memory unit having a secure world preventing unauthorized access to resources and a normal world other than the secure world, a boot manager for controlling a boot process after sensing power on, and a secure world manager for controlling a process of verifying, by a trusted entity in the normal world, integrity of a first subsequent entity, and sending, when an integrity breach is detected in the first subsequent entity, by the trusted entity, a modification indication signal to the secure world.
In accordance with another exemplary embodiment of the present invention, a method of integrity verification in a mobile terminal that has a secure world preventing unauthorized access to resources and a normal world other than the secure world is provided. The method includes verifying, in sequence, the integrity of a bootloader, a kernel, an initialization process, an Integrity Check Daemon (ICD), an integrity checklist, and modules in the integrity checklist.
Other aspects, advantages, and salient features of the invention will become apparent to those skilled in the art from the following detailed description, which, taken in conjunction with the annexed drawings, discloses exemplary embodiments of the invention.
The above and other aspects, features, and advantages of certain exemplary embodiments of the present invention will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
Throughout the drawings, it should be noted that like reference numbers are used to depict the same or similar elements, features, and structures.
The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of exemplary embodiments of the invention as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the invention. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness.
The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the invention. Accordingly, it should be apparent to those skilled in the art that the following description of exemplary embodiments of the present invention is provided for illustration purpose only and not for the purpose of limiting the invention as defined by the appended claims and their equivalents.
It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a component surface” includes reference to one or more of such surfaces.
It is to be understood that the terms “includes,” “comprises,” “including” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Referring to
In secure boot, an initially verified entity verifies the next entity and boots the same if not modified. For example, referring to
A mobile terminal of the related art boots without any special action even if a kernel modification is detected. That is, a secure boot process of the related art tends to be incomplete.
In the case of Google's Android platform, as the Android code is open-source, a kernel binary or platform binary that has been customized by a third party may be installed in a mobile terminal, which then normally boots. Attackers abusing weaknesses in the open-source Android code continuously devise new rooting techniques. Consequently, the Linux kernel, Android platform and Android applications in mobile terminals may be modified through customized Read-Only Memory (ROM) and rooting.
Malicious code (i.e., malware) may be installed in a mobile terminal having an unsecure boot process. Such malware may disturb normal operations and allow for personal or financial information of the user to be stolen. Such code may also override Digital Rights Management (DRM) features enforcing proper payment for digital content. To deal with this problem, exemplary embodiments of the present invention provide a method that can ensure the integrity of individual entities in a mobile terminal.
Referring to
The secure world 220 is a zone protected by hardware mechanisms and is physically separated from the normal world 210. Unauthorized access to resources in the secure world 220 is prevented. The normal world 210 indicates any zone other than the secure world 220. For example, the Linux kernel and Android platform are included in the normal world 210.
In the boot process, each entity such as the bootloader 110, the kernel 120, the platform 131 and the user data 132 of the user space 130 may verify the integrity of the next entity, and notify the secure world 220 when a modification is detected.
When the mobile terminal is powered on, it compares a value recorded in hardware with a value derived from the bootloader binary. When the values match each other, the bootloader 110 is executed. The bootloader 110 verifies the integrity of the kernel 120. Here, integrity verification may include checking whether a corresponding signature written by the manufacturer or authorized third party has been modified. In the following description, reference to integrity verification and checking signature modification may be used interchangeably.
When the kernel 120 is modified, the bootloader 110 sends a modification indication signal to the secure world 220. Then, a modification indication signal may be sent to the trust zone OS (or controller) preventing unauthorized access to the secure world 220.
When the kernel 120 is not modified or after sending a modification indication signal, the kernel 120 may verify the integrity of the platform 131 (the next entity) and send a modification indication signal if modified.
The platform 131 and subsequent entities repeat a similar procedure.
As described above, in exemplary embodiments of the present invention, entities configured in the memory of a mobile terminal may be chained in sequence and the secure world 220 may be notified of the integrity verification result of each entity. Hence, the integrity of major modules of the mobile terminal may be protected.
Referring to
The bootloader examines the integrity of the kernel (namely, it checks whether the signature attached to the kernel is modified) in steps S315 and S320. When the kernel is modified, the bootloader sends a modification indication signal to the secure world in step S321. In one exemplary embodiment of the present invention, the modification indication signal may be recorded as a value of ‘1’ at a preset memory location included in the secure world. Later, when a different application or entity finds a value of 1 at the memory location, it may determine that the integrity of the mobile terminal has not been maintained.
When the kernel is not modified, the bootloader executes the kernel and the initialization (herein also “Init”) process in the kernel verifies the integrity of the Integrity Check Daemon (ICD) module in steps S325 and S330. When the ICD module is modified, the Init process sends a modification indication signal to the secure world in step S331.
When the ICD module is not modified, the Init process executes the ICD module and the ICD module verifies the integrity of a profile list (e.g., an integrity checklist) in steps S335 and S340. When the profile list is modified, the ICD module sends a modification indication signal to the secure world in step S341.
When the profile list is not modified, the ICD module verifies the integrity of each module enrolled in the profile list in steps S345 and S350. For example, the ICD module checks whether shared libraries or executable files enrolled in the profile list are modified. When a modified module is found, the ICD module sends a modification indication signal to the secure world in step S370.
When no modified module is found, the mobile terminal completes the boot process in step S355. Thereafter, the mobile terminal transitions to the wait state in step S365, and is ready to process user requests.
In the boot process described above, a preceding entity verifies the integrity of a following entity and notifies, when the following entity is modified, modification to the secure world. However, this is not limited only to the boot process. That is, integrity check may also be performed at regular intervals after booting.
To achieve this, the mobile terminal checks whether a preset time has expired after booting in step S360. That is, the mobile terminal attempts to detect signature modification in entities after booting.
When the preset time has expired after booting, the mobile terminal returns to step S335 and repeats the integrity check of the profile list and modules enrolled therein.
Referring to
In the boot process, trusted bootloader 430 verifies the integrity of the kernel 440 and sends, when a modification is detected, a modification indication signal to the trust zone 412. The kernel 440 verifies the integrity of the Init process 441 and sends, when a modification is detected, a modification indication signal to the trust zone 412.
The Init process 441 verifies the integrity of the ICD 450 and sends, when a modification is detected, a modification indication signal to the trust zone 412. When a modification is not detected, the Init process 441 executes the ICD 450.
The ICD 450 verifies the integrity of the profile list 460, program packages 470, shared libraries 480 and executable files 490 enrolled in the profile list 460. When modification is detected, the ICD 450 sends a modification indication signal to the trust zone 412.
Referring to
The mobile terminal checks whether the value indicates an occurrence of a modification indication signal in step S530. Here, when the value stored at the reserved memory location is ‘1’, this indicates that at least one modification indication signal has been reported (i.e., integrity of the mobile terminal is not maintained).
When the value indicates the occurrence of a modification indication signal, the mobile terminal rejects the application execution request in step S550.
When the value indicates a non-occurrence of a modification indication signal, the mobile terminal executes the requested application in step S540.
Referring to
The above description of application A also applies to an application B. Application B may also comprise a secure application B 634 in the secure world 610 and a library B 632 in the normal world 620.
Below is a description of a scenario in which a video application plays back encrypted content with reference to
A description is now given of a case in which the integrity of the mobile terminal is maintained (that is, a signature modification is not detected during the boot process or through a periodic integrity check).
A video application 640 receives encrypted content in step S670. The video application 640 sends a playback request for the received content to a video library 645 in step S672. The video library 645 forwards the playback request to a secure video application 650 in step S674. The secure video application 650 checks whether the value stored at a memory location reserved for integrity check is ‘1’ (i.e., denoting the occurrence of a modification indication signal) in step S676. When the value stored at the reserved memory location is not ‘1’, the secure video application 650 sends the content data to a display unit 660 in step S678. The display unit 660 outputs the content data in step S680.
Assume that the signature attached to the video library 645 is falsified by a hacker at step S682. The ICD module detects a signature modification in the video library 645 through periodic integrity check in step S684, and sends a modification indication signal (False) to a secure ICD application in step S686. The secure ICD application writes a value of 1 at the memory location reserved for the integrity check in step S688. The value of 1 at the reserved memory location indicates a falsification of a signature attached to an entity in the mobile terminal
Thereafter, when a playback request for the content is received, the secure video application 650 checks the value stored at the reserved memory location in step S690. As the value is set to ‘1’, the secure video application 650 rejects the playback request.
Referring to
The wireless communication unit 710 performs data transmission and reception through wireless communication. The wireless communication unit 710 may include a Radio Frequency (RF) transmitter for upconverting the frequency of a signal to be transmitted and amplifying the signal, and an RF receiver for low-noise amplifying a received signal and downconverting the frequency of the received signal. The wireless communication unit 710 may forward data received through a wireless channel to the control unit 760, and transmit data from the control unit 760 through the wireless channel. Here, the wireless communication unit 710 is a module that is present only when the mobile terminal supports wireless communication. That is, the mobile terminal of the present invention may or may not include a specific component listed above depending upon configuration.
The audio processing unit 720 may include a coder/decoder (codec). The codec may have a data codec for processing packet data and the like, and an audio codec for processing an audio signal such as a voice signal. The audio processing unit 720 converts a digital audio signal into an analog audio signal through the audio codec to reproduce the analog audio signal using a speaker, and converts an analog audio signal from a microphone into a digital audio signal through the audio codec.
The input unit 730 generates an input signal corresponding to key manipulation of the user wishing to control the mobile terminal and sends the input signal to the control unit 760. The input unit 730 may include a keypad including numeric and direction keys, and function keys attached to sides of the mobile terminal. When the mobile terminal can be operated using only a touchscreen, the input unit 730 may be excluded.
The display unit 740 may be realized using Liquid Crystal Display (LCD) devices, Organic Light Emitting Diodes (OLED), or Active Matrix Organic Light Emitting Diodes (AMOLED). The display unit 740 provides various pieces of information to the user in visual form, such as menus, input data and function-setting data. The display unit 740 may output a boot screen, an idle screen, a menu screen, a call handling screen and other application screens.
The memory unit 750 stores programs and data needed for operation of the mobile terminal, and may include a program area and a data area. The program area stores an operating system that boots the mobile terminal and controls the overall operation thereof, application programs for playing back multimedia content, other application programs related to a camera, sound reproduction, and playback of still or moving images. The data area is an area that stores data generated in the course of using the mobile terminal, and may store multimedia content such as images, moving images, phonebooks and audio data. The memory unit 750 may include volatile and non-volatile memory devices.
The memory unit 750 may include a secure world 751 and a normal world 752. The secure world 751 is protected by hardware mechanisms and is physically separated from the normal world 752. Unauthorized access to resources in the secure world 751 is prevented to maintain integrity. The normal world 752 is any region other than the secure world 751.
The control unit 760 controls overall operation of the mobile terminal. To protect the integrity of the mobile terminal, the control unit 760 may include a boot manager 761, a secure world manager 762, and a periodic integrity checker 763.
The boot manager 761 manages the boot process of the mobile terminal after power on.
The secure world manager 762 resides at the boundary between the secure world 751 and the normal world 752, and acts as a controller that prevents unauthorized access from the normal world 752 to resources in the secure world 751.
The secure world manager 762 controls the integrity check operation so that a trusted first entity verifies the integrity of a second entity in the boot chain and sends a modification indication signal to the secure world 751 when a modification is detected in the second entity. Here, the trusted first entity verifies integrity of the second entity by checking whether the signature attached to the second entity is falsified.
When a modification is not detected in the second entity, the secure world manager 762 controls the second entity to verify integrity of a third entity.
When an execution request for an application is received, the secure world manager 762 checks whether a modification indication signal has been generated, and may control an operation to reject the execution request when a modification indication signal has been generated.
The periodic integrity checker 763 checks integrity of essential entities at regular intervals during normal operation of the mobile terminal after booting.
In exemplary embodiments of the present invention, the integrity of essential entities in the normal world can be ensured. This may contribute to enhanced effectiveness of DRM features and security services. User convenience may also be enhanced.
While the invention has been shown and described with reference to certain exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2012-0019095 | Feb 2012 | KR | national |