Patent Description:
Recently, various services such as a smart banking service, a smart home service, an email service, etc. have been provided through an electronic apparatus such as a smartphone, etc. Those types of services are provided by various applications distributed by service providers.

Although a user convenience has been improved, an application installed in a smartphone, etc. may be attacked by a hacker.

If an application is attacked by a hacker, important information of the user (e.g., account information, password information, etc.) may be leaked. For example, important user information may be leaked from a bank service provider by faking (e.g., forging, modulating, etc.) an application by applying a method of reverse engineering a bank application installed in a smartphone. Accordingly, there is a need for identifying integrity of an application to confirm whether an application installed in an electronic apparatus is faked (e.g., forged, modulated, etc.).

Patent document <CIT> describes a method and an authentication server for authenticating an integrity of an application by verifying whether or not an application has been tampered with. Patent document <CIT> describes an application and method that verify the integrity of applications installed on a smart device by using hash values of application information and related data securely stored in a cloud space.

Accordingly, an aspect of the disclosure is to provide a server for identifying integrity of an application installed in an electronic apparatus and a method thereof.

There is provided a sever in accordance with claim <NUM>, a method for identifying integrity of an application in accordance with claim <NUM> and a system for identifying integrity of an application in accordance with claim <NUM>. Other aspects of the invention are set forth in the dependent claims.

According to the above-described various embodiments, it is possible to prevent leakage of important information by the forged or modulated application.

Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the various embodiments described herein can be made without departing from the scope of the disclosure as defined by the claims.

The terms 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 disclosure. Accordingly, it should be apparent to those skilled in the art. However, these terms may vary depending on the intentions of the person skilled in the art that the following description of various embodiments of the disclosure is provided for illustration purpose only and not for the purpose of limiting the disclosure as defined by the appended claims.

In describing embodiments, a detailed description of relevant known functions or components may be omitted if it would obscure the description of the subject matter.

The disclosure will be described with reference to the following drawings and features in the enclosed drawings, but the features of the disclosure are not limited thereto.

Hereinafter, the disclosure will be described with reference to the accompanying drawings.

<FIG> is a view to explain an integrity identification system according to an embodiment of the disclosure.

Referring to <FIG>, an integrity identification system <NUM> may include a server <NUM> and an electronic apparatus <NUM>.

The server <NUM> may identify integrity of an application stored in the electronic apparatus <NUM>. For example, the server <NUM> may identify whether the application stored in the electronic apparatus <NUM> is forged or modulated.

Examples of the application stored in the electronic apparatus <NUM> may include a banking application, a smart home application, an email application, etc..

The server <NUM> may transmit an application check module for identifying integrity of the application stored in the electronic apparatus <NUM> to the electronic apparatus <NUM>.

The application check module may be a module for obtaining identification information of the application stored in the electronic apparatus <NUM>. The application check module may be a module in which a hash algorithm is applied to the application stored in the electronic apparatus <NUM> to obtain a hash value of the application.

The server <NUM> may transmit an application check module including a signing key to the electronic apparatus <NUM>. The server <NUM> may transmit the application check module into which the signing key is injected to the electronic apparatus <NUM>.

When receiving the identification information of the application from the electronic apparatus <NUM>, the server <NUM> may identify the integrity of the application based on whether the identification information is signed by the signing key and whether the identification information matches pre-stored identification information.

When the identification information received from the electronic apparatus <NUM> is validated by a signature verification algorithm and matches the pre-stored identification information, the server <NUM> may identify that the application is not forged or modulated. On the other hand, when the identification information is not validated by the signature verification algorithm or fails to match the pre-stored identification information, the server <NUM> may identify that the application is forged or modulated.

When the application is identified as being forged or modulated, the server <NUM> may induce deletion of the application.

By identifying the integrity of an application based on whether the identification information received from the electronic apparatus <NUM> is signed by a signing key included in the application check module, a user may trust that identification information of an application is obtained by an application check module provided from the server <NUM>, and trust the identification on the integrity of the application.

<FIG> is a block diagram to explain a server according to an embodiment of the disclosure.

Referring to <FIG>, a server <NUM> may include a memory <NUM>, a communicator <NUM>, and a processor <NUM>.

The memory <NUM> may store an operating system (OS) for controlling an operation of a constituent element of the server <NUM> and a command or data related to the constituent element of the server <NUM>.

The processor <NUM> may control a plurality of hardware or software constituent elements of the server <NUM> by using various commands or data stored in the memory <NUM>, load or process commands or data received from at least one of the other constituent elements to a volatile memory, and store various data in a non-volatile memory.

The memory <NUM> may store identification information of an application. The identification information of the application may be information for identifying integrity of the application, such as a hash value obtained by applying a hash algorithm to the application. However, a hash value is merely an example, and the identification information may be various codes of the application before forgery or modulation.

The memory <NUM> may include at least one of a volatile memory or a non-volatile memory. Examples of the volatile memory may include dynamic random access memory (DRAM), static RAM (SRAM), synchronous DRAM (SDRAM), phase-change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), ferroelectric RAM (FeRAM), etc. Examples of the non-volatile memory may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, and the like. The memory <NUM> may include a non-volatile medium such as a hard disk drive (HDD), a solid state disk (SSD), an embedded multimedia card (eMMC), a universal flash storage (UFS), and the like.

The communicator <NUM> may perform communication with an external device. The communicator <NUM> may transmit and receive various data by performing communication with the electronic apparatus <NUM>.

The communicator <NUM> may receive a signal for requesting identification of integrity of an application stored in the electronic apparatus <NUM> from the electronic apparatus <NUM>.

The application may include an application check module container. The application check module container may store (or temporarily store) the application check module to be described below.

The communicator <NUM> may transmit an application check module for identifying the integrity of the application stored in the electronic apparatus <NUM> to the electronic apparatus <NUM>. The application check module may include a module for obtaining identification information of the application stored in the electronic apparatus <NUM>.

The communicator <NUM> may receive the identification information corresponding to the application from the electronic apparatus <NUM>. The identification information may be identification information generated by the application check module.

The communicator <NUM> may include a Wi-Fi chip, a Bluetooth chip, a wireless communication chip, etc..

The processor <NUM> may control an operation of the server <NUM>.

The processor <NUM> may control hardware or software constituent elements connected to the processor <NUM> by driving an operating system or an operation program and perform various data processing and calculations. In addition, the processor <NUM> may load commands or data received from at least one other constituent element to a volatile memory to perform processing, and store various data in a non-volatile memory.

The processor <NUM> may be embodied as a specific processor for performing the operation (e.g., embedded processor) or a generic-purpose processor (e.g., a central processing unit (CPU) or an application processor) for performing the operations by executing at least one software program stored in a memory device, such as memory <NUM>.

The processor <NUM> may control the communicator <NUM> to transmit an application check module for identifying integrity of the application stored in the electronic apparatus <NUM> to the electronic apparatus <NUM>.

When a signal for requesting identification of integrity of the application is received from the electronic apparatus <NUM>, the processor <NUM> may control the communicator <NUM> to transmit the application check module to the electronic apparatus <NUM>.

The application check module may be a module that obtains the identification information of the application stored in the electronic apparatus <NUM>. The application check module may be a module in which a hash algorithm is applied to the application stored in the electronic apparatus <NUM> to obtain a hash value of the application.

When transmitting the application check module to the electronic apparatus <NUM>, the processor <NUM> may control the communicator <NUM> to transmit the application check module to which a signing key is injected to the electronic apparatus <NUM>.

When receiving a request for identifying integrity of the application from the electronic apparatus <NUM>, the processor <NUM> may control the communicator <NUM> to transmit the application check module including a signing key to the electronic apparatus <NUM>. The signing key may be a key generated by a signature algorithm, but is not limited thereto.

The signing key may be a one-time key. The processor <NUM> may generate a new signing key at the time of transmitting the application check module to the electronic apparatus <NUM> and control the communicator <NUM> to transmit the application check module including the newly generated signing key to the electronic apparatus <NUM>.

For example, the processor <NUM> may generate a new signing key which is different from a previous signing key when the signal requesting identification of integrity is received again, and control the communicator <NUM> to transmit the application check module including the newly generated signing key to the electronic apparatus <NUM>.

The signing key may be obfuscated. Obfuscation refers to a technique for preventing attack using reverse engineering by making it difficult for an attacker such as a hacker to interpret the signing key.

For example, the processor <NUM> may obfuscate the signing key through various methods such as data obfuscation, control obfuscation, layout obfuscation, aggregate obfuscation, preventive obfuscation, code/data encryption, and the like. The controller <NUM> may control the communicator <NUM> to transmit the application check module including the obfuscated signing key to the electronic apparatus <NUM>.

Therefore, the disclosure can effectively prevent an attack from an attacker by using a one-time signing key or an obfuscated signing key.

When identification information of the application is received from the electronic apparatus <NUM>, the processor <NUM> may identify integrity of the application based on whether the signing key is signed in the identification information, and whether the identification information matches the pre-stored identification information. The identification information may be a signing key obtained by signing the hash value of the applications stored in the electronic apparatus <NUM> with the signing key.

As an example, when the signature value received from the electronic apparatus <NUM> is signed by the signing key, and the hash value matches the pre-stored hash value, the processor <NUM> may identify that the application is not forged or modulated. On the other hand, when the signature value is not signed by the signing key, or the hash value fails to match the pre-stored hash value, the processor <NUM> may identify that the application is forged or modulated.

When the validity of the signature value received from the electronic apparatus <NUM> is verified by a signature verification algorithm corresponding to the signing key, the processor <NUM> may identify that the signature value received from the electronic apparatus <NUM> is signed by the signing key. In other words, the processor <NUM>, when the signature value received from the electronic apparatus <NUM> is decoded by the signature verification algorithm, may identify that the signature value received from the electronic apparatus <NUM> is signed by the signing key inserted into the application check module. By identifying integrity of the application based on whether the identification information received from the electronic apparatus <NUM> is signed by the signing key included in the application check module, the disclosure may trust that the identification information of the application is obtained by the application check module provided by the server <NUM>, and also trust the identification of the integrity of the application.

When the identification information is received after a predetermined time passes from when the application check module is transmitted to the electronic apparatus <NUM>, the processor <NUM> may not identify the integrity of the application based on the received identification information. The predetermined time may vary depending on a user setting or command, and may be a time such as <NUM> seconds, <NUM> minute, etc..

When the identification information is received after a predetermined time passes from when the application check module is transmitted to the electronic apparatus <NUM>, the processor <NUM> may not identify the integrity of the application based on the received identification information, but generate a new signing key which is different from the previous signing key and control the communicator <NUM> to transmit the application check module including the newly generated signing key to the electronic apparatus <NUM>.

In an example, if identification information is received after a predetermined time for obtaining the identification information of the application stored in the electronic apparatus <NUM> passes, the identification information could be information manipulated by an attacker.

The newly generated signing key may be a signing key obfuscated at a level higher than the obfuscation level of the obfuscation technique applied to the previous signing key.

In other words, when the identification information is received after a predetermined time elapses from when the application check module is transmitted to the electronic apparatus <NUM>, the processor <NUM> may control the communicator <NUM> to transmit the application check module including the signing key obfuscated at a relatively higher level than that of the obfuscation technique applied to the previous signing key to the electronic apparatus <NUM>. For example, when obfuscating the previous signing key through one obfuscation technique, the processor <NUM> may obfuscate the newly generated signing key by overlapping a plurality of obfuscation techniques to make it difficult for an attacker to analyze the signing key, thereby increasing the security strength. Accordingly, this disclosure can effectively defend against an attack.

It has been described that when the signal requesting identification of the integrity of the application is received from the electronic apparatus <NUM>, the application check module is transmitted to the electronic apparatus <NUM>. However, the disclosure is not limited thereto. In an example, the processor <NUM> may control the communicator <NUM> to transmit the application check module to the electronic apparatus <NUM> in many cases.

In an example, the processor <NUM> may control the communicator <NUM> to transmit the application check module to the electronic apparatus <NUM> at a predetermined time interval. The predetermined time interval may vary depending on a user command and may be a time interval such as one week, one month, etc..

The processor <NUM> may control the communicator <NUM> to transmit the application check module to the electronic apparatus <NUM> when a signal requesting a service of an application is received from the electronic apparatus <NUM>. As an example, the signal requesting the service of the application may be a signal requesting to update the application.

Therefore, the disclosure prevents important information of users from being leaked through forged or merged applications by identifying the integrity of the application stored in the electronic apparatus <NUM> without user's requests. <FIG>, <FIG>, to and 3C are views to explain an example of identifying integrity of an application according to an embodiment of the disclosure. Referring to <FIG>, the electronic apparatus <NUM> may be embodied as a smartphone. However, the electronic apparatus <NUM> may be any of various electronic apparatuses such as a smart television (TV), a computer, a laptop, a personal computer (PC), a tablet, a camcorder, etc., as well as an IoT device such as a washing machine, a refrigerator, a robot vacuum cleaner, etc. In addition, the electronic apparatus <NUM> may be a wearable device such as a smart watch.

According to a user command, the electronic apparatus <NUM> may transmit a signal for requesting identification of the integrity of the application stored in the electronic apparatus <NUM> to the server <NUM>.

For example, when a user input for requesting identification of the integrity is received, the electronic apparatus <NUM> may transmit the signal requesting the identification of integrity to the server <NUM>.

The processor <NUM> may receive the signal requesting identification of the integrity of the application from the electronic apparatus <NUM> and control the communicator <NUM> to transmit the application check module including the signing key to the electronic apparatus <NUM>.

When the application check module is received, the electronic apparatus <NUM> may transmit the identification information of the application stored in the electronic apparatus <NUM> to the server <NUM>. The identification information may be a signature value obtained by signing the hash value of the application with the signing key.

When the identification information of the application is received, the processor <NUM> may identify the integrity of the application stored in the electronic apparatus <NUM>. The processor <NUM>, when the received signature value is signed by the signing key and the hash value matches the pre-stored hash value, may identify that the application is not forged or modulated. Oh the other hand, when the signature value is not signed by the signing key or the hash value fails to match the pre-stored hash value, the processor <NUM> may identify that the application is forged or modulated.

In addition, as a result of identification, the processor <NUM> may transmit a message for inducing deletion of the application to the electronic apparatus <NUM> if it is identified that the application is forged or modulated.

Referring to <FIG>, the processor <NUM> may transmit a message notifying that the application stored in the electronic apparatus <NUM> is hacked and inducing reinstallation of the application after deleting it to the electronic apparatus <NUM>.

As a result of identification, when it is identified that the application is not forged or modulated, the processor <NUM> may transmit a message to the electronic apparatus <NUM> notifying that the application is safe.

Referring to <FIG>, the processor <NUM> may transmit a message that the application is safe to the electronic apparatus <NUM>.

Therefore, the disclosure prevents personal information from being leaked through a forged or modulated application by providing the result of identification to the electronic apparatus <NUM>.

<FIG> is a view to explain an example of identifying integrity of an application according to an embodiment of the disclosure.

Referring to <FIG>, the electronic apparatus <NUM> may be an artificial intelligence (AI) speaker that provides a home smart function.

In this case, when a user's voice for requesting identification of integrity of the application installed in the electronic apparatus <NUM> is received from a user, the electronic apparatus <NUM> may transmit a signal requesting identification of integrity of the application to the server <NUM>.

As an example, the electronic apparatus <NUM> may convert a user voice into text through a Speech to Text (STT) algorithm and transmit the text to the server <NUM>.

The processor <NUM> may control the communicator <NUM> to transmit an integrity check application for identifying the integrity of the application stored in the electronic apparatus <NUM> to the electronic apparatus <NUM> based on the text received from the electronic apparatus <NUM>.

As described above, the processor <NUM> may receive identification information of the application stored in the electronic apparatus <NUM> from the electronic apparatus <NUM>, and identify whether the application is forged or modulated based on whether the received identification information is signed by the signing key and whether the received identification information matches the pre-stored identification information.

As a result of identification, the processor <NUM>, when the applications is identified as being forged or modulated, may transmit the signal corresponding to the voice that induces deletion of the application to the electronic apparatus <NUM>.

Referring to <FIG>, the processor <NUM> may transmit a signal corresponding to the voice notifying that the application stored in the electronic apparatus <NUM> is hacked and inducing reinstallation of the application after deleting it to the electronic apparatus <NUM>.

The processor <NUM> may receive a signal for requesting identification of integrity of an application from the electronic apparatus <NUM>. The application may be an application that is stored in an external electronic apparatus.

Referring to <FIG>, an external electronic apparatus <NUM> may be a webcam. Examples of the external electronic apparatus <NUM> may be various electronic apparatuses such as a washing machine, a refrigerator, an air conditioner, a robot vacuum cleaner, etc..

When a signal requesting to identify the integrity of the application stored in the external electronic apparatus <NUM> is received from the electronic apparatus <NUM>, the processor <NUM> may transmit the application check module including the signing key to the external electronic apparatus <NUM>.

The processor <NUM> may receive the identification information of the application stored in the external electronic apparatus <NUM> from the external electronic apparatus <NUM>. The identification information may be a signature value obtained by signing the hash value of the application stored in the external electronic apparatus <NUM> with the signing key.

The processor <NUM> may receive the identification information of the application stored in the external electronic apparatus <NUM> from the external electronic apparatus <NUM>, and identify whether the application is forged or modulated based on whether the received identification information is signed by the signing key and whether the received identification information matches the pre-stored identification information.

As a result of identification, when the application is identified as being forged or modulated, the processor <NUM> may transmit a message that induces deletion of the application to the electronic apparatus <NUM>.

Referring to <FIG>, the electronic apparatus <NUM> may transmit a message notifying that the application stored in the external electronic apparatus <NUM> is hacked and inducing reinstallation of the application after deleting it to the electronic apparatus <NUM>.

As an example, by providing the user with the identification on the integrity of the application stored in the external electronic apparatus <NUM> in association with the electronic apparatus <NUM>, such as when the external electronic apparatus <NUM> is an IoT device without a display or a speaker, the user may identify the integrity of an application more conveniently.

<FIG> is a block diagram to explain an example of identifying integrity of an application through an application market according to an embodiment of the disclosure.

Referring to <FIG>, the server <NUM> may be a market server for storing identification information of each of a plurality of applications. The server <NUM> may be a market server that stores various information on applications developed by application developers and transmits application installation files to electronic apparatuses.

The server <NUM> may receive a signal requesting identification of integrity of the application stored in the electronic apparatus <NUM> from an external server <NUM>.

As an example, the external server <NUM>, when the signal requesting for identification of the integrity of the application stored in the electronic apparatus <NUM> is received from the electronic apparatus <NUM>, may transmit the signal requesting for identification of the integrity of the application stored in the electronic apparatus <NUM> to the server <NUM>.

When the signal requesting for identification of the integrity of the application stored in the electronic apparatus <NUM> is received from the external server <NUM>, the server <NUM> may transmit the application check module including the signing key to the electronic apparatus <NUM>.

When identification information corresponding to the application stored in the electronic apparatus <NUM> is received from the electronic apparatus <NUM>, the server <NUM> may identify information corresponding to the identification information of the application stored in the electronic apparatus <NUM> among a plurality of pre-stored pieces of identification information.

As an example, when a signature value obtained by signing (or calculating) the hash value of the application stored in the electronic apparatus <NUM> is received from the electronic apparatus <NUM>, the server <NUM> may identify the integrity of the application based on whether the received signature value is signed by the signing key included in the application check module and whether the received hash value matches the hash value of the application.

The server <NUM> may transmit information on the identification result to the electronic apparatus <NUM> and/or the server <NUM>. When the information on the identification result is transmitted to the server <NUM>, the server <NUM> may transmit the information to the electronic apparatus <NUM>.

When the server according to an embodiment of the disclosure is embodied as a market server, it is sufficient that the market sever is provided with hardware or software, and there is no need for all external servers managing applications to have hardware or software for identifying the integrity of the application. Therefore, an advantageous effect in technology and economy can be achieved.

<FIG> is a flowchart for identifying integrity of an application according to an embodiment of the disclosure.

Referring to <FIG>, the server <NUM> may transmit an application check module for identifying the integrity of an application stored in an electronic apparatus <NUM> to the electronic apparatus <NUM> at operation S710.

The application check module may be a module for obtaining the identification information of the application stored in the electronic apparatus <NUM>. The application check module may be a module in which a hash value of the application is obtained by applying a hash algorithm to the application stored in the electronic apparatus <NUM>.

The server <NUM> may transmit the application check module into which the signing key is injected to the electronic apparatus <NUM> in transmitting the application check module to the electronic apparatus <NUM>.

The server <NUM> may receive identification information corresponding to the application from the electronic apparatus <NUM> at operation S720.

The server <NUM> may identify the integrity of the application based on whether the received identification information is signed by the signing key included in the application check module and whether the received identification information matches the identification information that is pre-stored in the memory at operation S730.

When the signing key is signed in the identification information received from the electronic apparatus <NUM>, and the identification information matches the pre-stored identification information, the server <NUM> may identify that the application is not forged or modulated. On the other hand, when the signing key is not signed in the identification information or the identification information fails to match the pre-stored identification information, the server <NUM> may identify that the application is forged or modulated.

The methods according to various example embodiments of the disclosure may be embodied in the form of software or an application that can be installed on a server of the related art.

The methods according to various example embodiments of the disclosure may be embodied as a software upgrade or a hardware upgrade with respect to a server of the related art.

In addition, various example embodiments of the disclosure can be performed through an embedded server provided in a server, or an external server.

A non-transitory computer readable medium that stores a program for sequentially performing a method for identifying integrity of an application according to an embodiment of the disclosure may be provided.

The non-transitory computer readable medium refers to a medium that stores data semi-permanently rather than storing data for a very short time, such as a register, a cache, and a memory, and is readable by an apparatus. As an example, the above-described various applications or programs may be stored in a non-transitory computer readable medium such as a compact disc (CD), a digital versatile disc (DVD), a hard disk, a Blu-ray disk, a universal serial bus (USB) memory stick, a memory card, and a read only memory (ROM), and may be provided.

While the disclosure has been shown and described with reference to various 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 scope of the disclosure as defined by the appended claims.

Claim 1:
A server (<NUM>) comprising:
a memory (<NUM>);
a communicator (<NUM>); and
a processor (<NUM>) configured to:
transmit an application check module for identifying integrity of an application stored in an electronic apparatus (<NUM>) to the electronic apparatus (<NUM>) through the communicator (<NUM>), and
based on identification information corresponding to the application being received from the electronic apparatus (<NUM>), identify integrity of the application based on the received identification information,
wherein the processor (<NUM>) is further configured to identify integrity of the application based on whether the received identification information is signed by a signing key included in the application check module, and whether the received identification information matches identification information that is pre-stored in the memory (<NUM>),
wherein the processor (<NUM>) is further configured to, based on a signal requesting to identify integrity of the application being received from the electronic apparatus (<NUM>), generate the signing key and transmit the application check module including the generated signing key to the electronic apparatus (<NUM>),
wherein the processor (<NUM>) is further configured to, based on the signal requesting to identify integrity of the application being received again, generate a new signing key that is different from the signing key, and transmit the application check module including the new signing key to the electronic apparatus (<NUM>).