WO2017047904A1 - Method and apparatus for installation of trusted application in electronic device - Google Patents

Method and apparatus for installation of trusted application in electronic device Download PDF

Info

Publication number
WO2017047904A1
WO2017047904A1 PCT/KR2016/005388 KR2016005388W WO2017047904A1 WO 2017047904 A1 WO2017047904 A1 WO 2017047904A1 KR 2016005388 W KR2016005388 W KR 2016005388W WO 2017047904 A1 WO2017047904 A1 WO 2017047904A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
electronic device
trusted
application package
package
Prior art date
Application number
PCT/KR2016/005388
Other languages
French (fr)
Korean (ko)
Inventor
야우아놀드
한찬규
선크술라사다
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB1516326.4A external-priority patent/GB2542355B/en
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to EP16846726.4A priority Critical patent/EP3321802A4/en
Priority to US15/760,457 priority patent/US10379833B2/en
Publication of WO2017047904A1 publication Critical patent/WO2017047904A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the present disclosure is directed to a method and apparatus for installing a trusted application (TA) on an electronic device.
  • TA trusted application
  • a trusted application is an application that provides security services to applications running on a normal OS, such as mobile banking applications.
  • An application can increase its security level by using a trusted application.
  • Trusted applications can be distributed and managed to client devices through a server-based system called a Trusted Services Manager (TSM).
  • TSM Trusted Services Manager
  • server-based systems such as TSM can take a long time to deploy, can be expensive to set up, and can incur overhead in management.
  • TSM Trusted Services Manager
  • the present disclosure relates to a method of installing a trusted application in an electronic device, and more particularly, to a method of installing a trusted application in an electronic device by using a method of distributing and installing an existing application.
  • a trusted application may be distributed to one or more electronic devices using an application package without necessarily having a server-based system for distributing trusted applications to one or more electronic devices.
  • FIG. 1 is a block diagram illustrating a system for distributing trusted applications, according to one embodiment.
  • FIG. 2 is a block diagram illustrating an internal structure of a processor in which a trusted application is installed, according to an embodiment.
  • 3 and 4 are flowcharts illustrating a method of installing a trusted application according to an exemplary embodiment.
  • FIG. 5 is a block diagram illustrating an apparatus for distributing a trusted application to an electronic device, according to an embodiment.
  • FIG. 6 is a block diagram illustrating an application package including a plurality of trusted applications of different types according to an embodiment.
  • FIG. 7 is a block diagram illustrating a system including paired electronic devices according to an embodiment.
  • FIG. 8 is a flowchart illustrating a method of transmitting a trusted application to another electronic device paired with an electronic device according to an embodiment.
  • FIG. 9 is a flowchart illustrating a method of distributing an application package including a trusted application according to an embodiment.
  • FIG. 10 is a block diagram illustrating an electronic device in which an application is installed, according to an exemplary embodiment.
  • a method of installing an application in an electronic device includes: obtaining an application package for installing the application; Determining whether the application package includes a trusted application that can be installed on the electronic device; And if the application package includes the trusted application, installing the trusted application on the electronic device.
  • the installing may include installing in the security area of the electronic device based on a type of the security area of the electronic device when the application package includes a plurality of trusted applications respectively corresponding to different types of security areas. Selecting a trusted application that can be trusted; Installing the selected trusted application in a secure area of the electronic device.
  • the other electronic device includes a wearable electronic device paired with the electronic device.
  • the determining may include obtaining a flag value indicating whether to include the trusted application in the application package; And determining whether the application package includes a trusted application that can be installed in a security area of the electronic device based on the obtained flag value.
  • an electronic device in which an application is installed may include a network interface for obtaining an application package for installing the application; Determine whether the application package includes a trusted application that can be installed on the electronic device, and if the application package includes the trusted application, install the trusted application on the electronic device. It includes a processor.
  • a method of distributing an application to an electronic device includes: obtaining a normal application to be installed on the electronic device and a trusted application to be installed on the electronic device; Combining the normal application and the trusted application into an application package; And transmitting the application package to the electronic device.
  • a computer-readable recording medium having recorded thereon a program for implementing a method of installing an application on an electronic device.
  • first and second may be used to describe various components, but the components should not be limited by these terms. These terms are used to distinguish one component from another.
  • Some embodiments of the present disclosure may be represented by functional block configurations and various processing steps. Some or all of these functional blocks may be implemented in various numbers of hardware and / or software configurations that perform particular functions.
  • the functional blocks of the present disclosure may be implemented by one or more microprocessors or by circuit configurations for a given function.
  • the functional blocks of the present disclosure may be implemented in various programming or scripting languages.
  • the functional blocks may be implemented in algorithms running on one or more processors.
  • the present disclosure may employ the prior art for electronic configuration, signal processing, and / or data processing. Terms such as “mechanism”, “element”, “means” and “configuration” may be used broadly and are not limited to mechanical and physical configurations.
  • connecting lines or connecting members between the components shown in the drawings are merely illustrative of functional connections and / or physical or circuit connections. In an actual device, the connections between components may be represented by various functional connections, physical connections, or circuit connections that are replaceable or added.
  • FIG. 1 is a block diagram illustrating a system for distributing trusted applications, according to one embodiment.
  • a system for distributing trusted applications includes an electronic device 100, an application distribution service apparatus 110, and a network 120.
  • the application distribution service apparatus 110 may transmit an application package for installing an application to the electronic device to the at least one electronic device 100 through the network 120.
  • the application distribution service apparatus 110 may transmit an application package to the electronic device 100 according to a request of the electronic device 100.
  • the electronic device 100 includes a processor 101, a network interface 102 for connecting to a network, and a memory 103 for storing a computer program that can be executed by the processor 101.
  • the processor 101 may include at least one of a rich OS environment 101a and a trusted execution environment (TEE) 101b shown in FIG. 2.
  • Rich OS environment 101a and trusted execution environment 101b may provide an environment in which normal and trusted applications can run.
  • an application installed in the rich OS environment 101a will be referred to as a normal application.
  • the memory 103 may include a computer readable recording medium.
  • the memory 103 of the electronic device 100 includes an application manager 104 and a trusted application installation service unit 105.
  • the application manager 104 and the trusted application installation service unit 105 may be software programs stored in the memory 103.
  • the application manager 104 and the trusted application installation service unit 105 may be embedded in the electronic device 100.
  • the application manager 104 may obtain an application package from the application distribution service device 110.
  • the application package may include a normal application that may be installed in the rich OS environment 101a.
  • the trusted application installation service unit 105 may check whether the application package obtained from the application distribution service apparatus 110 includes a trusted application. When the application package includes a trusted application, the trusted application installation service unit 105 may extract the trusted application from the application package and install the trusted application in the trusted execution environment 101b.
  • the trusted application installation service unit 105 may be provided in advance in the electronic device 100 by the manufacturer of the electronic device 100. Accordingly, the trusted application installation service unit 105 may be provided in the electronic device 100 to be adapted to the architecture of the trusted execution environment 101b. The trusted application installation service unit 105 may extract a trusted application from the application package and install the trusted application. Therefore, according to an embodiment, a separate server-based system for distributing and managing a trusted application to the plurality of electronic devices 100 may not be required.
  • FIG. 2 is a block diagram illustrating an internal structure of a processor in which a trusted application is installed, according to an embodiment.
  • the processor 101 of the electronic device 100 may include at least one of a rich OS environment 101a and a trusted execution environment 101b on which a normal application and a trusted application may be installed and executed, respectively. Can be.
  • a normal application can be executed on an operating system (OS).
  • the rich OS environment 101a may include an operating system on which conventional normal applications of the electronic device 100 may run.
  • the normal applications executed in the rich OS environment 101a may be isolated from each other by the operating system and executed. Thus, normal applications can be protected against external attacks.
  • the operating system of the rich OS environment 101a is not relatively high in security level, there is a possibility that the operating system of the rich OS environment 101a is contaminated by malware. Since the security level of the application is dependent on the underlying operating system, if the operating system of the rich OS environment 101a is contaminated, the normal application is also likely to be contaminated. Thus, in the rich OS environment 101a, processes that handle relatively insignificant data may be performed by the normal application.
  • a trusted application can be executed on a secure operating system (OS).
  • the security operating system further includes additional security features and can strongly control external access to trusted execution environments.
  • the trusted execution environment 101b may include a secure operating system to provide an isolated environment in which trusted applications can run.
  • Rich OS environment 101a and trusted execution environment 101b may be separate operating system environments that run in parallel. As the data flow between the rich OS environment 101a and the trusted execution environment 101b is strictly controlled, the data of the trusted execution environment 101b can be protected. External access to trusted execution environment 101b as compared to rich OS environment 101a may be strictly limited for the protection of data processed in trusted execution environment 101b.
  • the trusted application can be invoked and executed by one or more normal applications running on the operating system of the rich OS environment 101a.
  • a mobile banking application may request access to a trusted application to process sensitive and sensitive data, such as private information of a user.
  • 3 and 4 are flowcharts illustrating a method of installing a trusted application according to an exemplary embodiment.
  • the electronic device 100 may obtain an application package for installing an application in the electronic device 100 through the network 120.
  • the application package may include a normal application installed in the rich OS environment 101a.
  • the electronic device 100 may determine whether the application package obtained in operation S310 includes a trusted application. For example, the electronic device 100 may determine whether the application package includes a trusted application based on a flag value indicating whether a trusted application is included. The flag may be included in the application package. According to an embodiment, regardless of whether the application package includes a trusted application, the electronic device 100 may install a normal application in the rich OS environment 101a using the application package.
  • the electronic device 100 may extract a trusted application from the application package and install the installed application in the electronic device 100.
  • the trusted application may be installed in the secure area of the electronic device 100.
  • the secure area of the electronic device 100 may provide a high security level environment to trusted applications.
  • the security zone may include a trusted execution environment 101b. Trusted execution environment 101b can provide a highly secure environment to trusted applications by strictly restricting access from the outside. Trusted applications can be installed in the security domain to handle sensitive and sensitive data in high security environments.
  • the electronic device 100 may obtain an application package for installing an application in the electronic device 100 through the network 120.
  • the electronic device 100 may access an app store provided by the application distribution service apparatus 110.
  • the app store may provide the electronic device 100 with at least one of information about an application installed in the electronic device 100 and information about a new application that may be installed in the electronic device 100.
  • the electronic device 100 may download an application package for installing the selected application in the electronic device 100 through the app store.
  • the electronic device 100 may install a normal application in the rich OS environment 101a using an application package.
  • the electronic device 100 may recognize that a new application is installed in the rich OS environment 101a. For example, the electronic device 100 may use 'New App Installed' (“android.intent.action.PACKAGE_ADDED”) that is an event notification indicating that a new application is installed. 'New App Installed' (“android.intent.action.PACKAGE_ADDED”) may be used by the electronic device 100 to recognize that a new application is installed.
  • 'New App Installed' (“android.intent.action.PACKAGE_ADDED”) may be used by the electronic device 100 to recognize that a new application is installed.
  • the above-described event notification is merely an example, and different types of event notifications may be used according to the type of OS used in the electronic device 100.
  • the electronic device 100 may determine whether an application package of a new application installed in the rich OS environment 101a includes a trusted application. For example, the electronic device 100 may determine whether the application package includes a trusted application based on a flag value indicating whether the application package includes a trusted application. In one embodiment, if the application package does not include a trusted application, installation of the trusted application is not necessary, so the installation of the application may be terminated.
  • the electronic device 100 may determine whether a plurality of trusted applications are included in the application package. For example, the electronic device 100 may determine whether a plurality of trusted applications are included in the application package based on identification information indicating a trusted application included in the application package.
  • An application package may include a plurality of trusted applications that may be installed in different types of trusted execution environments 101b or different types of electronic devices 100. Different types of trusted execution environments may be from different versions provided by different vendors or from the same vendor.
  • the electronic device 100 may extract, from an application package, a trusted application that may be installed in the trusted execution environment 101b of the electronic device 100 among a plurality of trusted applications.
  • the electronic device 100 may install the extracted trusted application in the trusted execution environment 101b.
  • the electronic device 100 may select a trusted application that may be installed in the trusted execution environment 101b in which the trusted application is to be installed. For example, the electronic device 100 may select a trusted application that can be installed and executed in the trusted execution environment 101b among a plurality of trusted applications.
  • the electronic device 100 may be installed in each trusted execution environment 101b. You can select more than one.
  • the electronic device 100 may extract the trusted application selected in operation S460 from the application package and install the trusted application in the trusted execution environment 101b.
  • the trusted application may be installed after the normal application is installed in the rich OS environment 101a or before the normal application is installed in the rich OS environment 101a.
  • the normal application and the trusted application may be installed in parallel.
  • a trusted application is installed after the application is installed in the rich OS environment 101a. This is because, by the system notification, the electronic device 100 may recognize that a new application is installed and perform installation of a trusted application.
  • the electronic device 100 may install the trusted application included in the application package in the trusted execution environment 101b.
  • the trusted application installation service unit 105 may terminate the process of installing the trusted application without installing the trusted application.
  • the trusted application installation service unit 105 may terminate the process of installing the trusted application without installing the trusted application. Can be.
  • FIG. 5 is a block diagram illustrating an apparatus for distributing a trusted application to an electronic device, according to an embodiment.
  • the apparatus illustrated in FIG. 5 may be included in the embodiment of the application distribution service apparatus 110 of FIG. 1.
  • the application distribution service apparatus 110 includes an application package generator 111 that combines at least one of a flag 114, a normal application 115, and a trusted application 116 to generate an application package 113. do.
  • the application package generator 111 may generate the application package 113 using a software development kit based on a predetermined operating system.
  • Software development kits are a set of development tools that enable you to create applications for hardware platforms, computer systems, operating systems, and more.
  • the application package generator 111 may generate an application package 113 that may be installed in an operating system installed in the electronic device 100 using a software development kit.
  • the application package generator 111 may generate an application package 113 including the trusted application 116 so that the trusted application 116 may be installed in the electronic device 100 together with the normal application 115. have.
  • the application package generator 111 may set a state of the flag 114 to indicate whether the trusted application 116 is included in the application package 113. For example, the flag 114 may be set to 'TRUE' if the trusted application 116 is included or to 'FALSE' if the trusted application 116 is not included.
  • the flag 114 may be defined using custom android permission.
  • Custom Android credential information is an option to set the necessary permissions when a given activity is executed.
  • the presence of the above-mentioned authorization information may be checked by the electronic device 100.
  • the credential information may be used to indicate the presence or absence of trusted application 116 for application package 113.
  • the authorization information may appear as a sentence (eg, "com.samsung.sec.TA_EXISTS").
  • the authority information may be stored in a manifest file including information related to the normal application.
  • the flag 114 may be defined in the application package 113 in various ways.
  • the information indicating whether the application package 113 includes the trusted application 116 may be included in the application package 113 as various types of information as well as the flag 144.
  • the electronic device 100 may determine whether the application package 113 includes a trusted application 116 by checking the state of the flag 114. If the value of the flag 114 is 'TRUE', the electronic device 100 may perform a process for installing the trusted application 116.
  • authentication tokens for management of trusted execution environments may be embedded in the application package 113.
  • various management functions eg, trusted application deletion, update and status update
  • the authentication token is electronically representing authenticated instructions issued by a privileged entity associated with the trusted execution environment or trusted application 116 of the electronic device 100, such as a vendor of a trusted execution environment or a secure domain owner. Signed binary data.
  • the flag 114 may signal the presence and absence of the trusted application 116.
  • the existence and absence of the trusted application 116 may include a package name attribute by including a suffix, for example, ".TA PKG", which is a signal indicating the existence of the trusted application 116. Signaled via
  • the application distribution service apparatus 110 may include an application distribution unit 112 that transmits an application package 113 to the electronic device 100.
  • the application distributor 112 may transmit the application package 113 generated by the application package generator 111 to the electronic device 100.
  • the application distributor 112 may transmit the application package 113 to the electronic device 100 according to a request of the electronic device 100.
  • FIG. 6 is a block diagram illustrating an application package including a plurality of trusted applications of different types according to an embodiment.
  • the application package 600 may include a flag 610, a normal application 620, and a plurality of trusted applications 630 and 640.
  • the flag 610 may include information about whether the application package 600 includes a trusted application.
  • Each trusted application 630, 640 may correspond to a type 1 trusted execution environment 101b and a type 2 trusted execution environment 101b. Alternatively, each trusted application 630, 640 may correspond to a type 1 and type 2 electronic device 100, respectively.
  • the developer of the application may provide the same application package 600 to different types of electronic devices 100.
  • Different types of electronic devices 100 may include different types of trusted execution environments 101b.
  • the application package 600 may include a plurality of trusted applications 630 and 640 that may be installed in different types of trusted execution environments 101b.
  • one application package 600 may be provided to the electronic devices 100.
  • the electronic device 100 extracts from the application package 600 a trusted application 630, 640 that matches the type of the electronic device 100 and trustworthy execution environment 101b of the electronic device 100. ) Can be installed.
  • FIG. 7 is a block diagram illustrating a system including paired electronic devices according to an embodiment.
  • a mobile electronic device 720 such as a smart phone may be paired with a wearable electronic device 710 such as a smart watch.
  • a wearable electronic device 710 such as a smart watch.
  • Various types of electronic devices may be paired with each other, not limited to the wearable electronic device 710 and the mobile electronic device 720.
  • the second application package may refer to an application package included in the first application package.
  • the third application package may refer to an application package included in the second application package.
  • the first application package may be an application package that may be directly connected to a network or installed in an electronic device used as a main apparatus.
  • the second application package may be an application package that may be installed in an electronic device that is not directly connected to the network but is connected to the network through another electronic device or used as an auxiliary device.
  • the electronic device in which the first application package and the second application package may be installed, respectively may be devices that are connected or paired with each other by wire or wireless.
  • the second application package may be installed in an electronic device of a type that may be connected or paired with an electronic device of the type in which the first application package may be installed.
  • the second application package 723, 726 may be included in the first application package 721, and the second application package 723, 726 may include another application package, for example, a third application package.
  • the second application package 723 may be installed in the type 1 wearable electronic device 710 paired with the mobile electronic device 720.
  • the second application package may include at least one of a normal application 724 and a trusted application 725 that may be installed in the wearable electronic device 710.
  • the third application package which may be included in the second application package 723, 726, may be installed in an electronic device of the type that may be paired or connected with an electronic device of the type in which the second application package 723, 726 may be installed.
  • the application package may include application packages that can be installed repeatedly on another electronic device as in the above-described embodiment.
  • the mobile electronic device 720 extracts the normal application 729 and the trusted application 730 from the first application package 721 to extract the normal application 729 and the trusted application 730 from the rich OS environment 731. And trusted execution environment 732, respectively.
  • the mobile electronic device 720 determines, based on the value of the flag 722, whether a trusted application 730 exists in the first application package 721, and sends the trusted application 730 to the mobile electronic device 720. Can be installed.
  • the first application package 721 may further include a second application package 723 for the type 1 wearable electronic device 710 and an application package 726 for the type 2 wearable electronic device.
  • Different types of wearable electronic devices may include different operating systems or different trusted execution environments.
  • the application package 723 for the type 1 wearable electronic device and the application package 726 for the type 2 wearable electronic device are respectively provided for normal applications 724 and 727 that can be installed on different operating systems and different trusted execution environments. It may include at least one of trusted applications 725, 728 that may be installed.
  • the first application package 721 obtained by the mobile electronic device 720 may include an Android package for the Android Wear smart work as a second application package, or may include a widget for the Samsung Gear Smart Watch. have.
  • Each second application package 723, 726 may further include flags 741, 742 indicating whether the trusted applications 725, 728 are included.
  • the electronic device in which the second application packages 723 and 726 are installed may determine whether the trusted applications 725 and 728 exist using the flags 741 and 742.
  • the mobile electronic device 720 may extract a second application package 723, which may be installed in the type 1 wearable electronic device 710, from the first application package 721.
  • the mobile electronic device 720 may transmit the second application package 723 to the type 1 wearable electronic device 710.
  • the type 1 trusted application 725 included in the second application package 723 may be installed in the trusted execution environment 715 of the type 1 wearable electronic device 710.
  • the second application package 723 may further include a type 1 normal application 724 to be installed in the rich OS environment 714 of the wearable electronic device 710.
  • the second application package 723 may include at least one of a type 1 normal application 725 and a trusted application 725 that may be installed in the type 1 wearable electronic device 710. have.
  • At least one of the normal application 724 and the trusted application 725 included in the second application package 723 may be related to the normal application 729 or the trusted application 730 installed in the mobile electronic device 720.
  • the second application package 723 may include at least one of the type 1 normal application 724 and the trusted application 725 that may be executed in conjunction with the normal application 729 installed in the mobile electronic device 720. It may include.
  • FIG. 8 is a flowchart illustrating a method of transmitting a trusted application to another electronic device paired with an electronic device according to an embodiment.
  • the electronic device may acquire a first application package.
  • the electronic device and the other electronic device may be paired with each other or connected in a wired or wireless manner.
  • the electronic device may determine a second application package to be transmitted to another electronic device among one or more second application packages included in the first application package.
  • the second application package may be determined according to whether the application of the second application package can be installed in another electronic device.
  • At least one of a normal application and a trusted application included in the second application package may be installed in another electronic device that receives the second application package.
  • the other electronic device may install the trusted application based on the flag included in the second application package.
  • the first application package for the mobile electronic device may include one or more second application packages for different types of wearable electronic devices.
  • a second application package that may be installed in the paired wearable electronic device may be selected.
  • the second application package may be transmitted to the paired wearable electronic device.
  • the electronic device may extract the second application package determined in operation S820 from the first application package to be transmitted to another electronic device.
  • the extracted second application package may be transmitted to another electronic device.
  • the second application package may include at least one of a normal application that may be installed in a rich OS environment and a trusted application that may be installed in a trusted execution environment.
  • the second application package may further include a flag indicating whether a trusted application is included.
  • the trusted application may not be included in the second application package but may be transmitted by itself to another electronic device extracted and paired by the electronic device.
  • the second application package sent to the other paired electronic device may include one or more third application packages.
  • the other paired electronic device may extract the third application package from the second application package and transmit the third application package to the electronic device where the application of the third application package is to be installed.
  • the electronic device in which the third application package is to be installed may be another electronic device paired with the electronic device in which the application of the second application package is installed.
  • FIG. 9 is a flowchart illustrating a method of distributing an application including a trusted application, according to an exemplary embodiment.
  • an apparatus for distributing an application may acquire a normal application to be installed in an electronic device and a trusted application to be installed in a secure area of the electronic device.
  • the apparatus for distributing the application may combine the normal application and the trusted application into the application package.
  • the application package may further include a flag indicating whether to include a trusted application.
  • the application package may include a plurality of trusted applications corresponding to the types of the plurality of trusted execution environments.
  • the apparatus may transmit the application package to the electronic device where the application is to be installed.
  • the apparatus may transmit the application package to the electronic device at the request of the electronic device.
  • FIG. 10 is a block diagram illustrating an electronic device in which an application is installed, according to an exemplary embodiment.
  • the electronic device 1000 may include, for example, a network interface 1010 and a processor 1020.
  • the network interface 1010 may obtain an application package for installing an application through an external network.
  • the application package may be provided to the electronic device 1000 through an app store that provides an application package that can be installed in the electronic device 1000.
  • the processor 1020 may extract a trusted application from an application package obtained through the network interface 1010, and install the trusted application in a security area of the electronic device 1000.
  • the secure area of the electronic device 1000 may include a trusted execution environment with limited external access. Trusted applications can work with sensitive and sensitive data. Trusted applications run in a trusted execution environment, allowing them to perform their tasks with a high level of security.
  • a trusted application may be distributed to one or more electronic devices using an application package without necessarily having a server-based system for distributing trusted applications to one or more electronic devices.
  • the above-described embodiments can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer which operates the program using a computer-readable medium.
  • the structure of the data used in the above-described embodiment can be recorded on the computer-readable medium through various means.
  • the above-described embodiments may be implemented in the form of a recording medium including instructions executable by a computer, such as a program module executed by the computer.
  • methods implemented with a software module or algorithm may be stored on a computer readable recording medium as code or program instructions that the computer can read and execute.
  • Computer readable media can be any recording media that can be accessed by a computer, and can include volatile and nonvolatile media, removable and non-removable media.
  • Computer-readable media may include, but are not limited to, magnetic storage media such as ROM, floppy disks, hard disks, and the like, and optical storage media such as CD-ROMs, DVDs, etc. Do not.
  • the computer readable medium may include computer storage media and communication media.
  • a plurality of computer-readable recording media may be distributed in networked computer systems, and data stored in the distributed recording media, for example, program instructions and code, may be executed by at least one computer. have.
  • ... unit refers to a unit for processing at least one function or operation, which may be implemented in hardware or software, or a combination of hardware and software.
  • the "unit” and “module” may be implemented by a program stored in a storage medium that can be addressed and executed by a processor.
  • module means components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, pros, etc. It can be implemented by procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays and variables.

Abstract

Disclosed is a method for the installation of an application in an electronic device, comprising the steps of: obtaining an application package for the installation of an application; determining whether the application package comprises a trusted application which can be installed in an electronic device; and installing, when the application package comprises a trusted application, the trusted application in the electronic device.

Description

신뢰된 어플리케이션을 전자 디바이스에 설치하는 방법 및 장치Method and apparatus for installing a trusted application on an electronic device
본 개시는 신뢰된 어플리케이션(trusted application; TA)을 전자 디바이스에 설치하는 방법 및 장치에 대한 것이다.The present disclosure is directed to a method and apparatus for installing a trusted application (TA) on an electronic device.
통상의 모바일 어플리케이션 또는 앱은 모바일 운영체제(OS; operating system)를 기반으로 실행된다. 실행 중인 어플리케이션들은 운영체제의 커널에 의해 서로 고립될 수 있으므로, 어플리케이션의 보안이 어느정도 보장될 수 있다. 그러나, 어플리케이션의 보안은 멀웨어(malware)에 의해 오염될 수 있는 운영체제에 의존적이다. 따라서, 민감하고 개인적인 데이터를 다루는 어플리케이션은 보다 더 높은 보안 레벨을 필요로 한다.Conventional mobile applications or apps are executed based on a mobile operating system (OS). Running applications can be isolated from each other by the kernel of the operating system, so that the security of the application can be guaranteed to some extent. However, the security of the application depends on the operating system, which can be contaminated by malware. Therefore, applications that handle sensitive and private data require higher security levels.
신뢰된 어플리케이션은 모바일 뱅킹 어플리케이션과 같이 노멀 OS에서 실행되는 어플리케이션에게 보안 서비스를 제공하는 어플리케이션이다. 어플리케이션은 신뢰된 어플리케이션을 이용함으로써 자신의 보안 수준을 높일 수 있다. A trusted application is an application that provides security services to applications running on a normal OS, such as mobile banking applications. An application can increase its security level by using a trusted application.
신뢰된 어플리케이션은 TSM(Trusted Services Manager)로 불리는 서버 기반의 시스템을 통해 클라이언트 디바이스로 분배되고 관리될 수 있다. 그러나 TSM과 같은 서버 기반의 시스템은 배치하는데 오래 걸리고 설정하는데 고비용이 소요될 수 있으며, 관리하는데 오버헤드가 발생할 수 있다. 따라서, 신뢰된 어플리케이션을 분배하고 관리하는데 더 편리한 메캐니즘이 필요하다.Trusted applications can be distributed and managed to client devices through a server-based system called a Trusted Services Manager (TSM). However, server-based systems such as TSM can take a long time to deploy, can be expensive to set up, and can incur overhead in management. Thus, there is a need for a more convenient mechanism for distributing and managing trusted applications.
본 개시는 신뢰된 어플리케이션을 전자 디바이스에 설치하는 방법에 관한 것으로, 자세하게는 기존의 어플리케이션을 분배하고 설치하는 방법을 이용하여 신뢰된 어플리케이션을 전자 디바이스에 설치하는 방법에 관한 것이다.The present disclosure relates to a method of installing a trusted application in an electronic device, and more particularly, to a method of installing a trusted application in an electronic device by using a method of distributing and installing an existing application.
일 실시 예에 의하면, 신뢰된 어플리케이션을 하나 이상의 전자 디바이스로 분배하기 위한 서버 기반의 시스템을 반드시 구비할 필요없이 어플리케이션 패키지를 이용하여 신뢰된 어플리케이션을 하나 이상의 전자 디바이스로 분배할 수 있다.According to an embodiment, a trusted application may be distributed to one or more electronic devices using an application package without necessarily having a server-based system for distributing trusted applications to one or more electronic devices.
도 1은 일 실시 예에 따라서, 신뢰된 어플리케이션을 분배하는 시스템을 나타낸 블록도이다.1 is a block diagram illustrating a system for distributing trusted applications, according to one embodiment.
도 2는 일 실시 예에 따라서, 신뢰된 어플리케이션이 설치되는 프로세서의 내부 구조를 나타낸 블록도이다.2 is a block diagram illustrating an internal structure of a processor in which a trusted application is installed, according to an embodiment.
도 3 및 도 4는 일 실시 예에 따라서, 신뢰된 어플리케이션을 설치하는 방법을 나타낸 순서도이다.3 and 4 are flowcharts illustrating a method of installing a trusted application according to an exemplary embodiment.
도 5는 일 실시 예에 따라서, 신뢰된 어플리케이션을 전자 디바이스로 분배하기 위한 장치를 나타낸 블록도이다.5 is a block diagram illustrating an apparatus for distributing a trusted application to an electronic device, according to an embodiment.
도 6은 일 실시 예에 따라서, 서로 다른 타입의 복수 개의 신뢰된 어플리케이션을 포함하는 어플리케이션 패키지를 나타낸 블록도이다.6 is a block diagram illustrating an application package including a plurality of trusted applications of different types according to an embodiment.
도 7은 일 실시 예에 따라서, 페어링된 전자 디바이스들을 포함하는 시스템을 나타낸 블록도이다.7 is a block diagram illustrating a system including paired electronic devices according to an embodiment.
도 8은 일 실시 예에 따라서, 전자 디바이스와 페어링된 다른 전자 디바이스로 신뢰된 어플리케이션을 전송하는 방법을 나타낸 순서도이다.8 is a flowchart illustrating a method of transmitting a trusted application to another electronic device paired with an electronic device according to an embodiment.
도 9는 일 실시 예에 따라서, 신뢰된 어플리케이션을 포함하는 어플리케이션 패키지를 분배하는 방법을 나타낸 순서도이다.9 is a flowchart illustrating a method of distributing an application package including a trusted application according to an embodiment.
도 10은 일 실시 예에 따라서, 어플리케이션이 설치되는 전자 디바이스를 나타낸 블록도이다.10 is a block diagram illustrating an electronic device in which an application is installed, according to an exemplary embodiment.
일 실시예에 의한 어플리케이션을 전자 디바이스에 설치하는 방법은 상기 어플리케이션을 설치하기 위한 어플리케이션 패키지를 획득하는 단계; 상기 어플리케이션 패키지가 상기 전자 디바이스에 설치될 수 있는 신뢰된 어플리케이션(trusted application)을 포함하는지 여부를 결정하는 단계; 및 상기 어플리케이션 패키지가 상기 신뢰된 어플리케이션을 포함하는 경우, 상기 신뢰된 어플리케이션을 상기 전자 디바이스에 설치하는 단계를 포함한다.According to an embodiment, a method of installing an application in an electronic device includes: obtaining an application package for installing the application; Determining whether the application package includes a trusted application that can be installed on the electronic device; And if the application package includes the trusted application, installing the trusted application on the electronic device.
상기 설치하는 단계는 상기 어플리케이션 패키지가 서로 다른 타입의 보안 영역과 각각 대응되는 복수 개의 신뢰된 어플리케이션을 포함하는 경우, 상기 전자 디바이스의 보안 영역의 타입에 기초하여, 상기 전자 디바이스의 보안 영역에서 설치될 수 있는 신뢰된 어플리케이션을 선택하는 단계; 상기 선택된 신뢰된 어플리케이션을 상기 전자 디바이스의 보안 영역에 설치하는 단계를 포함한다.The installing may include installing in the security area of the electronic device based on a type of the security area of the electronic device when the application package includes a plurality of trusted applications respectively corresponding to different types of security areas. Selecting a trusted application that can be trusted; Installing the selected trusted application in a secure area of the electronic device.
상기 어플리케이션 패키지가 다른 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는지 여부를 결정하는 단계; 및 상기 어플리케이션 패키지가 상기 다른 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는 경우, 상기 신뢰된 어플리케이션을 상기 다른 전자 디바이스로 전송하는 단계를 더 포함한다.Determining whether the application package includes a trusted application that can be installed on another electronic device; And if the application package includes a trusted application that can be installed on the other electronic device, sending the trusted application to the other electronic device.
상기 어플리케이션 패키지로부터, 상기 다른 전자 디바이스에서 설치될 수 있는 제2 어플리케이션 패키지를 추출하는 단계; 및 상기 추출된 제2 어플리케이션 패키지를 상기 다른 전자 디바이스로 전송하는 단계를 더 포함한다.Extracting, from the application package, a second application package that can be installed in the other electronic device; And transmitting the extracted second application package to the other electronic device.
상기 다른 전자 디바이스는 상기 전자 디바이스와 페어링된 웨어러블 전자 디바이스를 포함한다.The other electronic device includes a wearable electronic device paired with the electronic device.
상기 결정하는 단계는 상기 어플리케이션 패키지에서 상기 신뢰된 어플리케이션 포함 여부를 나타내는 플래그 값을 획득하는 단계; 및 상기 획득된 플래그 값에 기초하여, 상기 어플리케이션 패키지가 상기 전자 디바이스의 보안 영역에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는지 여부를 결정하는 단계를 포함한다.The determining may include obtaining a flag value indicating whether to include the trusted application in the application package; And determining whether the application package includes a trusted application that can be installed in a security area of the electronic device based on the obtained flag value.
일 실시예에 의한 어플리케이션이 설치되는 전자 디바이스는 상기 어플리케이션을 설치하기 위한 어플리케이션 패키지를 획득하는 네트워크 인터페이스; 상기 어플리케이션 패키지가 상기 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션(trusted application)을 포함하는지 여부를 결정하고, 상기 어플리케이션 패키지가 상기 신뢰된 어플리케이션을 포함하는 경우, 상기 신뢰된 어플리케이션을 상기 전자 디바이스에 설치하는 프로세서를 포함한다.According to an embodiment, an electronic device in which an application is installed may include a network interface for obtaining an application package for installing the application; Determine whether the application package includes a trusted application that can be installed on the electronic device, and if the application package includes the trusted application, install the trusted application on the electronic device. It includes a processor.
일 실시 예에 의한 어플리케이션을 전자 디바이스로 분배하는 방법은 상기 전자 디바이스에 설치될 노멀 어플리케이션 및 상기 전자 디바이스에 설치될 신뢰된 어플리케이션을 획득하는 단계; 상기 노멀 어플리케이션 및 상기 신뢰된 어플리케이션을 어플리케이션 패키지로 결합하는 단계; 및 상기 어플리케이션 패키지를 상기 전자 디바이스로 전송하는 단계를 포함한다.According to an embodiment of the present disclosure, a method of distributing an application to an electronic device includes: obtaining a normal application to be installed on the electronic device and a trusted application to be installed on the electronic device; Combining the normal application and the trusted application into an application package; And transmitting the application package to the electronic device.
일 실시 예에 있어서, 어플리케이션을 전자 디바이스에 설치하는 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체를 포함한다.In one embodiment, a computer-readable recording medium having recorded thereon a program for implementing a method of installing an application on an electronic device.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 또한, 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present disclosure. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In addition, in order to clearly describe the present disclosure in the drawings, irrelevant parts are omitted, and like reference numerals designate like parts throughout the specification.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.The terms used in the present disclosure are described as general terms currently used in consideration of the functions mentioned in the present disclosure, but they may mean various other terms according to the intention or precedent of a person skilled in the art, the emergence of new technologies, and the like. Can be. Therefore, the terms used in the present disclosure should not be interpreted only by the names of the terms, but should be interpreted based on the meanings of the terms and the contents throughout the present disclosure.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 이 용어들에 의해 한정되어서는 안 된다. 이 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용된다. Also, terms such as first and second may be used to describe various components, but the components should not be limited by these terms. These terms are used to distinguish one component from another.
또한, 본 개시에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것이며, 본 개시를 한정하려는 의도로 사용되는 것이 아니다. 단수의 표현은 문맥상 명백하게 단수를 뜻하지 않는 한, 복수의 의미를 포함한다. 또한 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 본 명세서, 특히, 특허 청구 범위에서 사용된 "상기" 및 이와 유사한 지시어는 단수 및 복수 모두를 지시하는 것일 수 있다. 또한, 본 개시에 따른 방법을 설명하는 단계들의 순서를 명백하게 지정하는 기재가 없다면, 기재된 단계들은 적당한 순서로 행해질 수 있다. 기재된 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다.Also, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present disclosure. Expression in the singular includes the plural unless the context clearly indicates the singular. In addition, when a part is said to "include" a certain component, this means that it may further include other components, without excluding other components unless otherwise stated. As used herein and in the claims, in particular, the above and the like, may refer to both the singular and the plural. In addition, if there is no description explicitly specifying the order of steps describing the method according to the present disclosure, the described steps may be performed in a suitable order. The present disclosure is not limited to the order of description of the described steps.
본 명세서에서 다양한 곳에 등장하는 "일부 실시예에서" 또는 "일 실시예에서" 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.The phrases “in some embodiments” or “in one embodiment” appearing in various places in the specification are not necessarily all referring to the same embodiment.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단" 및 "구성"등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.Some embodiments of the present disclosure may be represented by functional block configurations and various processing steps. Some or all of these functional blocks may be implemented in various numbers of hardware and / or software configurations that perform particular functions. For example, the functional blocks of the present disclosure may be implemented by one or more microprocessors or by circuit configurations for a given function. In addition, for example, the functional blocks of the present disclosure may be implemented in various programming or scripting languages. The functional blocks may be implemented in algorithms running on one or more processors. In addition, the present disclosure may employ the prior art for electronic configuration, signal processing, and / or data processing. Terms such as "mechanism", "element", "means" and "configuration" may be used broadly and are not limited to mechanical and physical configurations.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다. In addition, the connecting lines or connecting members between the components shown in the drawings are merely illustrative of functional connections and / or physical or circuit connections. In an actual device, the connections between components may be represented by various functional connections, physical connections, or circuit connections that are replaceable or added.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.
도 1은 일 실시 예에 따라서, 신뢰된 어플리케이션을 분배하는 시스템을 나타낸 블록도이다.1 is a block diagram illustrating a system for distributing trusted applications, according to one embodiment.
도 1을 참조하면, 신뢰된 어플리케이션을 분배하는 시스템은 전자 디바이스(100), 어플리케이션 분배 서비스 장치(110) 및 네트워크(120)를 포함한다. Referring to FIG. 1, a system for distributing trusted applications includes an electronic device 100, an application distribution service apparatus 110, and a network 120.
어플리케이션 분배 서비스 장치(110)는 어플리케이션을 전자 디바이스에 설치하기 위한 어플리케이션 패키지를 네트워크(120)를 통해 적어도 하나의 전자 디바이스(100)로 전송할 수 있다. 어플리케이션 분배 서비스 장치(110)는 전자 디바이스(100)의 요청에 따라 전자 디바이스(100)로 어플리케이션 패키지를 전송할 수 있다.The application distribution service apparatus 110 may transmit an application package for installing an application to the electronic device to the at least one electronic device 100 through the network 120. The application distribution service apparatus 110 may transmit an application package to the electronic device 100 according to a request of the electronic device 100.
전자 디바이스(100)는 프로세서(101), 네트워크에 접속하기 위한 네트워크 인터페이스(102) 및 프로세서(101)에 의해 실행될 수 있는 컴퓨터 프로그램을 저장하기 위한 메모리(103)를 포함한다. 프로세서(101)는 도 2에 도시되어 있는 리치(rich) OS 환경(101a) 및 신뢰된 실행 환경(Trusted Execution Environment; TEE, 101b)을 적어도 하나 포함할 수 있다. 리치(rich) OS 환경(101a) 및 신뢰된 실행 환경(101b)은 노멀 어플리케이션 및 신뢰된 어플리케이션이 실행될 수 있는 환경을 제공할 수 있다. 이하에서는, 리치 OS 환경(101a)에 설치되는 어플리케이션을 노멀 어플리케이션이라 지칭하기로 한다. The electronic device 100 includes a processor 101, a network interface 102 for connecting to a network, and a memory 103 for storing a computer program that can be executed by the processor 101. The processor 101 may include at least one of a rich OS environment 101a and a trusted execution environment (TEE) 101b shown in FIG. 2. Rich OS environment 101a and trusted execution environment 101b may provide an environment in which normal and trusted applications can run. Hereinafter, an application installed in the rich OS environment 101a will be referred to as a normal application.
메모리(103)는 컴퓨터로 판독 가능한 기록 매체를 포함할 수 있다. 전자 디바이스(100)의 메모리(103)는 어플리케이션 매니저(104) 및 신뢰된 어플리케이션 설치 서비스부(105)를 포함한다. 일 실시 예에 있어서, 어플리케이션 매니저(104) 및 신뢰된 어플리케이션 설치 서비스부(105)는 메모리(103)에 저장된 소프트웨어 프로그램일 수 있다. 또한, 어플리케이션 매니저(104) 및 신뢰된 어플리케이션 설치 서비스부(105)는 전자 디바이스(100)에 임베디드될 수 있다. The memory 103 may include a computer readable recording medium. The memory 103 of the electronic device 100 includes an application manager 104 and a trusted application installation service unit 105. In an embodiment, the application manager 104 and the trusted application installation service unit 105 may be software programs stored in the memory 103. In addition, the application manager 104 and the trusted application installation service unit 105 may be embedded in the electronic device 100.
어플리케이션 매니저(104)는 어플리케이션 분배 서비스 장치(110)로부터 어플리케이션 패키지를 획득할 수 있다. 어플리케이션 패키지는 리치 OS 환경(101a)에 설치될 수 있는 노멀 어플리케이션을 포함할 수 있다.The application manager 104 may obtain an application package from the application distribution service device 110. The application package may include a normal application that may be installed in the rich OS environment 101a.
신뢰된 어플리케이션 설치 서비스부(105)는 어플리케이션 분배 서비스 장치(110)로부터 획득된 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는지 여부를 체크할 수 있다. 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는 경우, 신뢰된 어플리케이션 설치 서비스부(105)는 어플리케이션 패키지로부터 신뢰된 어플리케이션을 추출하고, 신뢰된 실행 환경(101b)에 신뢰된 어플리케이션을 설치할 수 있다. The trusted application installation service unit 105 may check whether the application package obtained from the application distribution service apparatus 110 includes a trusted application. When the application package includes a trusted application, the trusted application installation service unit 105 may extract the trusted application from the application package and install the trusted application in the trusted execution environment 101b.
신뢰된 어플리케이션 설치 서비스부(105)는 전자 디바이스(100)의 제조자에 의해 전자 디바이스(100)에 미리 구비될 수 있다. 따라서, 신뢰된 어플리케이션 설치 서비스부(105)는 신뢰된 실행 환경(101b)의 아키텍처에 적응될 수 있도록 전자 디바이스(100)에 구비될 수 있다. 신뢰된 어플리케이션 설치 서비스부(105)는 어플리케이션 패키지로부터 신뢰된 어플리케이션을 추출하고, 신뢰된 어플리케이션을 설치할 수 있다. 따라서, 일 실시 예에 의하면, 신뢰된 어플리케이션을 복수 개의 전자 디바이스들(100)로 분배하고 관리하기 위한 별도의 서버 기반 시스템은 필요로 하지 않을 수 있다.The trusted application installation service unit 105 may be provided in advance in the electronic device 100 by the manufacturer of the electronic device 100. Accordingly, the trusted application installation service unit 105 may be provided in the electronic device 100 to be adapted to the architecture of the trusted execution environment 101b. The trusted application installation service unit 105 may extract a trusted application from the application package and install the trusted application. Therefore, according to an embodiment, a separate server-based system for distributing and managing a trusted application to the plurality of electronic devices 100 may not be required.
도 2는 일 실시 예에 따라서, 신뢰된 어플리케이션이 설치되는 프로세서의 내부 구조를 나타낸 블록도이다.2 is a block diagram illustrating an internal structure of a processor in which a trusted application is installed, according to an embodiment.
도 2를 참조하면, 전자 디바이스(100)의 프로세서(101)는 각각 노멀 어플리케이션과 신뢰된 어플리케이션이 설치되고 실행될 수 있는 리치 OS 환경(101a) 및 신뢰된 실행 환경(101b) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 2, the processor 101 of the electronic device 100 may include at least one of a rich OS environment 101a and a trusted execution environment 101b on which a normal application and a trusted application may be installed and executed, respectively. Can be.
리치 OS 환경(101a)에서는, 운영체제(OS; operating system) 상에서 노멀 어플리케이션이 실행될 수 있다. 리치 OS 환경(101a)은 전자 디바이스(100)의 통상적인(conventional) 노멀 어플리케이션들이 실행될 수 있는 운영체제를 포함할 수 있다. 리치 OS 환경(101a)에서 실행되는 노멀 어플리케이션들은 운영체제에 의해 서로 고립(isolated)되어 실행될 수 있다. 따라서, 노멀 어플리케이션들은 외부 공격에 맞서 보호될 수 있다. 그러나, 리치 OS 환경(101a)의 운영체제는 상대적으로 보안 수준이 높지 않아, 리치 OS 환경(101a)의 운영체제는 멀웨어에 의해 오염될 가능성이 존재한다. 어플리케이션의 보안 수준은 기저의(underlying) 운영체제에 의존적(dependent)이므로, 리치 OS 환경(101a)의 운영체제가 오염되는 경우, 노멀 어플리케이션도 오염될 가능성이 높아진다. 따라서, 리치 OS 환경(101a)에서는 상대적으로 보안이 중요하지 않은 데이터를 다루는 프로세스들이 노멀 어플리케이션에 의해 수행될 수 있다.In the rich OS environment 101a, a normal application can be executed on an operating system (OS). The rich OS environment 101a may include an operating system on which conventional normal applications of the electronic device 100 may run. The normal applications executed in the rich OS environment 101a may be isolated from each other by the operating system and executed. Thus, normal applications can be protected against external attacks. However, since the operating system of the rich OS environment 101a is not relatively high in security level, there is a possibility that the operating system of the rich OS environment 101a is contaminated by malware. Since the security level of the application is dependent on the underlying operating system, if the operating system of the rich OS environment 101a is contaminated, the normal application is also likely to be contaminated. Thus, in the rich OS environment 101a, processes that handle relatively insignificant data may be performed by the normal application.
신뢰된 실행환경(TEE, 101b)에서는, 보안 운영체제(OS) 상에서 신뢰된 어플리케이션이 실행될 수 있다. 보안 운영체제는 부가적인 보안 기능을 더 포함하고, 신뢰된 실행 환경에 대한 외부 접근을 강력하게 제어할 수 있다. 신뢰된 실행환경(101b)은 보안 운영체제를 포함함으로써 신뢰된 어플리케이션이 실행될 수 있는 고립된 환경을 제공하여 줄 수 있다.In the trusted execution environment (TEE) 101b, a trusted application can be executed on a secure operating system (OS). The security operating system further includes additional security features and can strongly control external access to trusted execution environments. The trusted execution environment 101b may include a secure operating system to provide an isolated environment in which trusted applications can run.
리치 OS 환경(101a) 및 신뢰된 실행환경(101b)은 병렬적으로 실행되는 분리된 운영체제 환경일 수 있다. 리치 OS 환경(101a) 및 신뢰된 실행환경(101b) 간 데이터 흐름은 엄격히 제어됨에 따라 신뢰된 실행환경(101b)의 데이터는 보호될 수 있다. 리치 OS 환경(101a)에 비해 신뢰된 실행환경(101b)에 대한 외부 접근은 신뢰된 실행 환경(101b)에서 처리되는 데이터의 보호를 위해 엄격하게 제한될 수 있다. Rich OS environment 101a and trusted execution environment 101b may be separate operating system environments that run in parallel. As the data flow between the rich OS environment 101a and the trusted execution environment 101b is strictly controlled, the data of the trusted execution environment 101b can be protected. External access to trusted execution environment 101b as compared to rich OS environment 101a may be strictly limited for the protection of data processed in trusted execution environment 101b.
신뢰된 어플리케이션은 리치 OS 환경(101a)의 운영체제에서 동작되는 하나 이상의 노멀 어플리케이션들에 의해 호출되어 실행될 수 있다. 예를 들면, 모바일 뱅킹 어플리케이션은 신뢰된 어플리케이션에 접속하여, 민감하고 중요한 데이터, 예를 들면, 사용자의 개인 정보(private information)를 처리하여 줄 것을 요청할 수 있다. The trusted application can be invoked and executed by one or more normal applications running on the operating system of the rich OS environment 101a. For example, a mobile banking application may request access to a trusted application to process sensitive and sensitive data, such as private information of a user.
도 3 및 도 4는 일 실시 예에 따라서, 신뢰된 어플리케이션을 설치하는 방법을 나타낸 순서도이다.3 and 4 are flowcharts illustrating a method of installing a trusted application according to an exemplary embodiment.
도 3을 참조하면, 단계 S310에서, 전자 디바이스(100)는 어플리케이션을 전자 디바이스(100)에 설치하기 위한 어플리케이션 패키지를 네트워크(120)를 통해 획득할 수 있다. 일 실시 예에 의하면, 어플리케이션 패키지는 리치 OS 환경(101a)에 설치되는 노멀 어플리케이션을 포함할 수 있다.Referring to FIG. 3, in operation S310, the electronic device 100 may obtain an application package for installing an application in the electronic device 100 through the network 120. According to an embodiment, the application package may include a normal application installed in the rich OS environment 101a.
단계 S320에서, 전자 디바이스(100)는 단계 S310에서 획득된 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는지 여부를 결정할 수 있다. 예를 들면, 전자 디바이스(100)는 신뢰된 어플리케이션의 포함 여부를 나타내는 플래그 값에 기초하여 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는지 여부를 결정할 수 있다. 플래그는 어플리케이션 패키지에 포함될 수 있다. 일 실시 예에 의하면, 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는지 여부와는 관계 없이, 전자 디바이스(100)는 어플리케이션 패키지를 이용하여 리치 OS 환경(101a)에 노멀 어플리케이션을 설치할 수 있다.In operation S320, the electronic device 100 may determine whether the application package obtained in operation S310 includes a trusted application. For example, the electronic device 100 may determine whether the application package includes a trusted application based on a flag value indicating whether a trusted application is included. The flag may be included in the application package. According to an embodiment, regardless of whether the application package includes a trusted application, the electronic device 100 may install a normal application in the rich OS environment 101a using the application package.
단계 S330에서, 전자 디바이스(100)는 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는 경우, 신뢰된 어플리케이션을 어플리케이션 패키지로부터 추출하여, 전자 디바이스(100)에 설치할 수 있다. 일 예로, 신뢰된 어플리케이션은 전자 디바이스(100)의 보안 영역에 설치될 수 있다. 전자 디바이스(100)의 보안 영역은 높은 보안 수준의 환경을 신뢰된 어플리케이션에 제공할 수 있다. 예를 들면, 보안 영역은 신뢰된 실행환경(101b)을 포함할 수 있다. 신뢰된 실행환경(101b)은 외부로부터의 접근을 엄격히 제한함으로써, 높은 보안 수준의 환경을 신뢰된 어플리케이션에 제공할 수 있다. 신뢰된 어플리케이션은 보안 영역에 설치됨으로써, 높은 보안 수준의 환경에서 민감하고 중요한 데이터를 처리하는 동작을 수행할 수 있다.In operation S330, when the application package includes a trusted application, the electronic device 100 may extract a trusted application from the application package and install the installed application in the electronic device 100. For example, the trusted application may be installed in the secure area of the electronic device 100. The secure area of the electronic device 100 may provide a high security level environment to trusted applications. For example, the security zone may include a trusted execution environment 101b. Trusted execution environment 101b can provide a highly secure environment to trusted applications by strictly restricting access from the outside. Trusted applications can be installed in the security domain to handle sensitive and sensitive data in high security environments.
도 4를 참조하여, 신뢰된 어플리케이션을 설치하는 방법의 실시 예를 더 설명하기로 한다.Referring to FIG. 4, an embodiment of a method of installing a trusted application will be further described.
도 4를 참조하면, 단계 S410에서, 전자 디바이스(100)는 어플리케이션을 전자 디바이스(100)에 설치하기 위한 어플리케이션 패키지를 네트워크(120)를 통해 획득할 수 있다. Referring to FIG. 4, in operation S410, the electronic device 100 may obtain an application package for installing an application in the electronic device 100 through the network 120.
예를 들면, 전자 디바이스(100)는 어플리케이션 분배 서비스 장치(110)에 의해 제공되는 앱 스토어에 접속할 수 있다. 앱 스토어는 전자 디바이스(100)에 설치된 어플리케이션에 관한 정보와, 전자 디바이스(100)에 설치될 수 있는 새로운 어플리케이션에 관한 정보 중 적어도 하나를 전자 디바이스(100)에 제공할 수 있다. 전자 디바이스(100)에 설치될 어플리케이션이 선택되면, 전자 디바이스(100)는 선택된 어플리케이션을 전자 디바이스(100)에 설치하기 위한 어플리케이션 패키지를 앱 스토어를 통해 다운로드할 수 있다. For example, the electronic device 100 may access an app store provided by the application distribution service apparatus 110. The app store may provide the electronic device 100 with at least one of information about an application installed in the electronic device 100 and information about a new application that may be installed in the electronic device 100. When an application to be installed in the electronic device 100 is selected, the electronic device 100 may download an application package for installing the selected application in the electronic device 100 through the app store.
단계 S420에서, 전자 디바이스(100)는 어플리케이션 패키지를 이용하여 노멀 어플리케이션을 리치 OS 환경(101a)에 설치할 수 있다. In operation S420, the electronic device 100 may install a normal application in the rich OS environment 101a using an application package.
단계 S430에서, 노멀 어플리케이션이 리치 OS 환경(101a)에 설치되면, 전자 디바이스(100)는 새로운 어플리케이션이 리치 OS 환경(101a)에 설치됨을 인식할 수 있다. 예를 들면, 전자 디바이스(100)는 새로운 어플리케이션이 설치됨을 나타내는 이벤트 알림(event notification)인 'New App Installed'("android.intent.action.PACKAGE_ADDED")을 이용할 수 있다. 'New App Installed'("android.intent.action.PACKAGE_ADDED")는 전자 디바이스(100)가 새로운 어플리케이션이 설치됨을 인식하는데 이용될 수 있다. 상술된 이벤트 알림은 일 예에 불과하고, 전자 디바이스(100)에서 사용되는 운영체제의 종류에 따라 서로 다른 형태의 이벤트 알림이 사용될 수 있다.In operation S430, when the normal application is installed in the rich OS environment 101a, the electronic device 100 may recognize that a new application is installed in the rich OS environment 101a. For example, the electronic device 100 may use 'New App Installed' (“android.intent.action.PACKAGE_ADDED”) that is an event notification indicating that a new application is installed. 'New App Installed' (“android.intent.action.PACKAGE_ADDED”) may be used by the electronic device 100 to recognize that a new application is installed. The above-described event notification is merely an example, and different types of event notifications may be used according to the type of OS used in the electronic device 100.
단계 S440에서, 새로운 어플리케이션이 설치됨을 나타내는 이벤트 알림에 대응하여, 전자 디바이스(100)는 리치 OS 환경(101a)에 설치된 새로운 어플리케이션의 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는지 여부를 결정할 수 있다. 예를 들면, 전자 디바이스(100)는 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는지 여부를 나타내는 플래그 값에 기초하여, 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는지 여부를 결정할 수 있다. 일 실시 예에서, 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하지 않는 경우, 신뢰된 어플리케이션의 설치는 필요하지 않으므로, 어플리케이션의 설치는 종료될 수 있다.In operation S440, in response to an event notification indicating that a new application is installed, the electronic device 100 may determine whether an application package of a new application installed in the rich OS environment 101a includes a trusted application. For example, the electronic device 100 may determine whether the application package includes a trusted application based on a flag value indicating whether the application package includes a trusted application. In one embodiment, if the application package does not include a trusted application, installation of the trusted application is not necessary, so the installation of the application may be terminated.
단계 S450에서, 어플리케이션 패키지가 신뢰된 어플리케이션을 포함하는 경우, 전자 디바이스(100)는 복수 개의 신뢰된 어플리케이션이 어플리케이션 패키지에 포함되어 있는지 여부를 결정할 수 있다. 예를 들면, 전자 디바이스(100)는 어플리케이션 패키지에 포함된 신뢰된 어플리케이션을 나타내는 식별 정보에 기초하여, 복수 개의 신뢰된 어플리케이션이 어플리케이션 패키지에 포함되어 있는지 여부를 판단할 수 있다. In operation S450, when the application package includes a trusted application, the electronic device 100 may determine whether a plurality of trusted applications are included in the application package. For example, the electronic device 100 may determine whether a plurality of trusted applications are included in the application package based on identification information indicating a trusted application included in the application package.
일 실시예에 의한 어플리케이션 패키지는 서로 다른 타입의 신뢰된 실행 환경(101b) 또는 서로 다른 타입의 전자 디바이스(100)에 설치될 수 있는 복수 개의 신뢰된 어플리케이션을 포함할 수 있다. 서로 다른 타입의 신뢰된 실행 환경들은 서로 다른 벤더에 의해 제공되거나 동일한 벤더로부터 제공된 서로 다른 버전의 것일 수 있다. 전자 디바이스(100)는 복수 개의 신뢰된 어플리케이션 중 전자 디바이스(100)의 신뢰된 실행 환경(101b)에 설치될 수 있는 신뢰된 어플리케이션을 어플리케이션 패키지로부터 추출할 수 있다. 그리고, 전자 디바이스(100)는 추출된 신뢰된 어플리케이션을 신뢰된 실행 환경(101b)에 설치할 수 있다.An application package according to an embodiment may include a plurality of trusted applications that may be installed in different types of trusted execution environments 101b or different types of electronic devices 100. Different types of trusted execution environments may be from different versions provided by different vendors or from the same vendor. The electronic device 100 may extract, from an application package, a trusted application that may be installed in the trusted execution environment 101b of the electronic device 100 among a plurality of trusted applications. The electronic device 100 may install the extracted trusted application in the trusted execution environment 101b.
단계 S460에서, 어플리케이션 패키지가 복수 개의 신뢰된 어플리케이션을 포함하는 경우, 전자 디바이스(100)신뢰된 어플리케이션이 설치될 신뢰된 실행 환경(101b)에 설치될 수 있는 신뢰된 어플리케이션을 선택할 수 있다. 예를 들면, 전자 디바이스(100)는 복수 개의 신뢰된 어플리케이션 중 신뢰된 실행 환경(101b)에서 설치되어 실행될 수 있는 신뢰된 어플리케이션을 선택할 수 있다. In operation S460, when the application package includes a plurality of trusted applications, the electronic device 100 may select a trusted application that may be installed in the trusted execution environment 101b in which the trusted application is to be installed. For example, the electronic device 100 may select a trusted application that can be installed and executed in the trusted execution environment 101b among a plurality of trusted applications.
일 실시 예에서, 서로 다른 타입의 신뢰된 실행 환경(101b)들이 전자 디바이스(100)에 존재하는 경우, 전자 디바이스(100)는 각각의 신뢰된 실행 환경(101b)에 설치될 수 있는 신뢰된 어플리케이션을 복수 개 선택할 수 있다. In one embodiment, where different types of trusted execution environments 101b exist in the electronic device 100, the electronic device 100 may be installed in each trusted execution environment 101b. You can select more than one.
그리고, 단계 S470에서 전자 디바이스(100)는 어플리케이션 패키지로부터 단계 S460에서 선택된 신뢰된 어플리케이션을 추출하고, 신뢰된 실행환경(101b)에 신뢰된 어플리케이션을 설치할 수 있다.In operation S470, the electronic device 100 may extract the trusted application selected in operation S460 from the application package and install the trusted application in the trusted execution environment 101b.
일 실시예에 의하면, 신뢰된 어플리케이션은 리치 OS 환경(101a)에 노멀 어플리케이션이 설치된 후 설치되거나, 노멀 어플리케이션이 리치 OS 환경(101a)에 설치되기 전에 설치될 수 있다. 또한, 리치 OS 환경(101a)에서 노멀 어플리케이션 및 신뢰된 어플리케이션은 병렬적으로 설치될 수도 있다. According to an embodiment, the trusted application may be installed after the normal application is installed in the rich OS environment 101a or before the normal application is installed in the rich OS environment 101a. In addition, in the rich OS environment 101a, the normal application and the trusted application may be installed in parallel.
다만, 새로운 어플리케이션이 설치될 때 새로운 어플리케이션이 설치됨을 알리는 시스템 알림이 활성화되는 경우, 리치 OS 환경(101a)에 어플리케이션이 설치되고 난 이후 신뢰된 어플리케이션이 설치됨이 바람직하다. 시스템 알림에 의해 전자 디바이스(100)가 새로운 어플리케이션이 설치됨을 인식하여, 신뢰된 어플리케이션에 대한 설치를 수행할 수 있기 때문이다.However, when a system notification indicating that a new application is installed when a new application is installed is activated, it is preferable that a trusted application is installed after the application is installed in the rich OS environment 101a. This is because, by the system notification, the electronic device 100 may recognize that a new application is installed and perform installation of a trusted application.
한편, 어플리케이션 패키지에 하나의 신뢰된 어플리케이션만 포함되어 있는 경우, 전자 디바이스(100)는 어플리케이션 패키지에 포함된 신뢰된 어플리케이션을 신뢰된 실행 환경(101b)에 설치할 수 있다. 다만, 신뢰된 어플리케이션 설치 서비스부(105)는 신뢰된 어플리케이션이 신뢰된 실행 환경(101b)에 설치될 수 없는 경우, 신뢰된 어플리케이션을 설치하지 않고 신뢰된 어플리케이션을 설치하는 프로세스를 종료할 수 있다. 예를 들면, 신뢰된 어플리케이션의 타입과 신뢰된 실행 환경(101b)의 타입이 상이한 경우, 신뢰된 어플리케이션 설치 서비스부(105)는 신뢰된 어플리케이션을 설치하지 않고 신뢰된 어플리케이션을 설치하는 프로세스를 종료할 수 있다.Meanwhile, when only one trusted application is included in the application package, the electronic device 100 may install the trusted application included in the application package in the trusted execution environment 101b. However, if the trusted application cannot be installed in the trusted execution environment 101b, the trusted application installation service unit 105 may terminate the process of installing the trusted application without installing the trusted application. For example, when the type of the trusted application and the type of the trusted execution environment 101b are different, the trusted application installation service unit 105 may terminate the process of installing the trusted application without installing the trusted application. Can be.
도 5는 일 실시 예에 따라서, 신뢰된 어플리케이션을 전자 디바이스로 분배하기 위한 장치를 나타낸 블록도이다.5 is a block diagram illustrating an apparatus for distributing a trusted application to an electronic device, according to an embodiment.
도 5에 도시된 장치는 도 1의 어플리케이션 분배 서비스 장치(110)의 실시예에 포함될 수 있다. 어플리케이션 분배 서비스 장치(110)는 어플리케이션 패키지(113)를 생성하기 위하여, 플래그(114), 노멀 어플리케이션(115) 및 신뢰된 어플리케이션(116) 중 적어도 하나를 결합하는 어플리케이션 패키지 생성부(111)를 포함한다. The apparatus illustrated in FIG. 5 may be included in the embodiment of the application distribution service apparatus 110 of FIG. 1. The application distribution service apparatus 110 includes an application package generator 111 that combines at least one of a flag 114, a normal application 115, and a trusted application 116 to generate an application package 113. do.
예를 들면, 어플리케이션 패키지 생성부(111)는 소정의 운영체제를 기반으로 하는 소프트웨어 개발킷(Software Development Kit)을 이용하여 어플리케이션 패키지(113)를 생성할 수 있다. 소프트웨어 개발 킷은 하드웨어 플랫폼, 컴퓨터 시스템, 운영 체제 등을 위한 응용 프로그램을 만들 수 있게 하는 개발 도구의 집합이다. 어플리케이션 패키지 생성부(111)는 전자 디바이스(100)에 설치된 운영체제에 설치될 수 있는 어플리케이션 패키지(113)를 소프트웨어 개발킷을 이용하여 생성할 수 있다.For example, the application package generator 111 may generate the application package 113 using a software development kit based on a predetermined operating system. Software development kits are a set of development tools that enable you to create applications for hardware platforms, computer systems, operating systems, and more. The application package generator 111 may generate an application package 113 that may be installed in an operating system installed in the electronic device 100 using a software development kit.
어플리케이션 패키지 생성부(111)는 신뢰된 어플리케이션(116)이 노멀 어플리케이션(115)과 함께 전자 디바이스(100)에 설치될 수 있도록 신뢰된 어플리케이션(116)이 포함된 어플리케이션 패키지(113)를 생성할 수 있다. 어플리케이션 패키지 생성부(111)는 어플리케이션 패키지(113)에 신뢰된 어플리케이션(116)이 포함되었는지 여부를 나타내기 위해 플래그(114)의 상태를 설정할 수 있다. 예를 들면, 플래그(114)는 신뢰된 어플리케이션(116)이 포함되면, 'TRUE'로 설정되거나 신뢰된 어플리케이션(116)이 포함되지 않으면, 'FALSE'로 설정될 수 있다. The application package generator 111 may generate an application package 113 including the trusted application 116 so that the trusted application 116 may be installed in the electronic device 100 together with the normal application 115. have. The application package generator 111 may set a state of the flag 114 to indicate whether the trusted application 116 is included in the application package 113. For example, the flag 114 may be set to 'TRUE' if the trusted application 116 is included or to 'FALSE' if the trusted application 116 is not included.
일 예로, 어플리케이션 패키지(113)의 메타 데이터 구조와의 호환성을 위해, 플래그(114)는 커스텀 안드로이드 권한 정보(custom android permission)을 이용하여 정의될 수 있다. 커스텀 안드로이드 권한 정보는 소정의 액티비티가 실행될 때 필요한 권한을 설정하는 옵션이다. 상술된 권한 정보의 존재는 전자 디바이스(100)에 의해 체크될 수 있다. 또한, 권한 정보는 어플리케이션 패키지(113)에 대한 신뢰된 어플리케이션(116)의 존재 또는 부재를 나타내는데 이용될 수 있다. 권한 정보는 문장으로써 나타날 수 있다(예를 들면, "com.samsung.sec.TA_EXISTS"). 권한 정보는 노멀 어플리케이션과 관련된 정보들이 포함된 매니페스트 파일(manifest file)에 저장될 수 있다. 상술된 예에 한하지 않고, 플래그(114)는 다양한 방법으로 어플리케이션 패키지(113)에서 정의될 수 있다. 또한, 어플리케이션 패키지(113)가 신뢰된 어플리케이션(116)을 포함하는지 여부를 나타내는 정보는 플래그(144)뿐만 아니라 다양한 형태의 정보로 어플리케이션 패키지(113)에 포함될 수 있다.As an example, for compatibility with the metadata structure of the application package 113, the flag 114 may be defined using custom android permission. Custom Android credential information is an option to set the necessary permissions when a given activity is executed. The presence of the above-mentioned authorization information may be checked by the electronic device 100. In addition, the credential information may be used to indicate the presence or absence of trusted application 116 for application package 113. The authorization information may appear as a sentence (eg, "com.samsung.sec.TA_EXISTS"). The authority information may be stored in a manifest file including information related to the normal application. In addition to the examples described above, the flag 114 may be defined in the application package 113 in various ways. In addition, the information indicating whether the application package 113 includes the trusted application 116 may be included in the application package 113 as various types of information as well as the flag 144.
전자 디바이스(100)는 플래그(114)의 상태를 체크함으로써 어플리케이션 패키지(113)가 신뢰된 어플리케이션(116)을 포함하는지 여부를 결정할 수 있다. 전자 디바이스(100)는 플래그(114) 값이 'TRUE'인 경우, 신뢰된 어플리케이션(116)을 설치하기 위한 프로세스를 수행할 수 있다.The electronic device 100 may determine whether the application package 113 includes a trusted application 116 by checking the state of the flag 114. If the value of the flag 114 is 'TRUE', the electronic device 100 may perform a process for installing the trusted application 116.
또한, 신뢰된 실행 환경의 관리를 위한 인증 토큰이 어플리케이션 패키지(113)에 임베딩될 수 있다. 따라서, 인증 토큰에 의해, 전자 디바이스(100)에서 신뢰된 어플리케이션(116)에 대한 다양한 관리 기능(예를 들면, 신뢰된 어플리케이션 삭제, 업데이트 및 상태 업데이트)이 지원될 수 있다. 인증 토큰은 신뢰된 실행 환경의 벤더 또는 보안 도메인 소유자와 같이, 전자 디바이스(100)의 신뢰된 실행 환경 또는 신뢰된 어플리케이션(116)과 관련된 권한을 가진 주체에 의하여 발생된 인증된 명령어를 나타내는 전자적으로 서명된 바이너리 데이터이다.In addition, authentication tokens for management of trusted execution environments may be embedded in the application package 113. Thus, with the authentication token, various management functions (eg, trusted application deletion, update and status update) for the trusted application 116 at the electronic device 100 can be supported. The authentication token is electronically representing authenticated instructions issued by a privileged entity associated with the trusted execution environment or trusted application 116 of the electronic device 100, such as a vendor of a trusted execution environment or a secure domain owner. Signed binary data.
상술한 바와 같이 플래그(114)는 신뢰된 어플리케이션(116)의 존재 및 부존재를 시그널링할 수 있다. 이에 한하지 않고, 신뢰된 어플리케이션(116)의 존재 및 부존재는 신뢰된 어플리케이션(116)의 존재 여부를 나타내는 시그널인 접미어(suffix), 예를 들면, ".TA PKG"를 포함함으로써 패키지 이름 속성을 통해 시그널링될 수 있다. As described above, the flag 114 may signal the presence and absence of the trusted application 116. Not limited to this, the existence and absence of the trusted application 116 may include a package name attribute by including a suffix, for example, ".TA PKG", which is a signal indicating the existence of the trusted application 116. Signaled via
어플리케이션 분배 서비스 장치(110)는 전자 디바이스(100)에 어플리케이션 패키지(113)를 전송하는 어플리케이션 분배부(112)를 포함할 수 있다. 어플리케이션 분배부(112)는 어플리케이션 패키지 생성부(111)에 의해 생성된 어플리케이션 패키지(113)를 전자 디바이스(100)로 전송할 수 있다. 어플리케이션 분배부(112)는 전자 디바이스(100)의 요청에 따라 어플리케이션 패키지(113)를 전자 디바이스(100)로 전송할 수 있다.The application distribution service apparatus 110 may include an application distribution unit 112 that transmits an application package 113 to the electronic device 100. The application distributor 112 may transmit the application package 113 generated by the application package generator 111 to the electronic device 100. The application distributor 112 may transmit the application package 113 to the electronic device 100 according to a request of the electronic device 100.
도 6은 일 실시 예에 따라서, 서로 다른 타입의 복수 개의 신뢰된 어플리케이션을 포함하는 어플리케이션 패키지를 나타낸 블록도이다.6 is a block diagram illustrating an application package including a plurality of trusted applications of different types according to an embodiment.
도 6을 참조하면, 어플리케이션 패키지(600)는 플래그(610), 노멀 어플리케이션(620) 및 복수 개의 신뢰된 어플리케이션(630, 640)을 포함할 수 있다. 플래그(610)는 어플리케이션 패키지(600)가 신뢰된 어플리케이션을 포함하는지 여부에 관한 정보를 포함할 수 있다. 각각의 신뢰된 어플리케이션(630, 640)은 타입 1의 신뢰된 실행 환경(101b) 및 타입 2의 신뢰된 실행 환경(101b)과 대응될 수 있다. 또는, 각각의 신뢰된 어플리케이션(630, 640)은 타입 1 및 타입 2의 전자 디바이스(100)와 각각 대응될 수 있다.Referring to FIG. 6, the application package 600 may include a flag 610, a normal application 620, and a plurality of trusted applications 630 and 640. The flag 610 may include information about whether the application package 600 includes a trusted application. Each trusted application 630, 640 may correspond to a type 1 trusted execution environment 101b and a type 2 trusted execution environment 101b. Alternatively, each trusted application 630, 640 may correspond to a type 1 and type 2 electronic device 100, respectively.
어플리케이션의 개발자는 서로 다른 타입의 전자 디바이스(100)들에 동일한 어플리케이션 패키지(600)를 제공할 수 있다. 서로 다른 타입의 전자 디바이스(100)들은 서로 다른 타입의 신뢰된 실행 환경(101b)을 포함할 수 있다. 어플리케이션 패키지(600)는 서로 다른 타입의 신뢰된 실행 환경(101b)에 설치될 수 있는 복수 개의 신뢰된 어플리케이션(630, 640)을 포함할 수 있다. 따라서, 하나의 어플리케이션 패키지(600)가 전자 디바이스(100)들에 제공될 수 있다. 일 실시 예에서, 전자 디바이스(100)는 전자 디바이스(100)의 타입과 일치하는 신뢰된 어플리케이션(630, 640)을 어플리케이션 패키지(600)로부터 추출하고 전자 디바이스(100)의 신뢰된 실행 환경(101b)에 설치할 수 있다.The developer of the application may provide the same application package 600 to different types of electronic devices 100. Different types of electronic devices 100 may include different types of trusted execution environments 101b. The application package 600 may include a plurality of trusted applications 630 and 640 that may be installed in different types of trusted execution environments 101b. Thus, one application package 600 may be provided to the electronic devices 100. In one embodiment, the electronic device 100 extracts from the application package 600 a trusted application 630, 640 that matches the type of the electronic device 100 and trustworthy execution environment 101b of the electronic device 100. ) Can be installed.
도 7은 일 실시 예에 따라서, 페어링된 전자 디바이스들을 포함하는 시스템을 나타낸 블록도이다.7 is a block diagram illustrating a system including paired electronic devices according to an embodiment.
도 7을 참조하면, 스마트폰과 같은 모바일 전자 디바이스(720)는 스마트 워치와 같은 웨어러블 전자 디바이스(710)와 페어링될 수 있다. 웨어러블 전자 디바이스(710) 및 모바일 전자 디바이스(720)에 한하지 않고 다양한 타입의 전자 디바이스들이 서로 페어링될 수 있다.Referring to FIG. 7, a mobile electronic device 720 such as a smart phone may be paired with a wearable electronic device 710 such as a smart watch. Various types of electronic devices may be paired with each other, not limited to the wearable electronic device 710 and the mobile electronic device 720.
이하 설명에서, 제2 어플리케이션 패키지는 제1 어플리케이션 패키지에 포함된 어플리케이션 패키지를 지칭할 수 있다. 제3 어플리케이션 패키지는 제2 어플리케이션 패키지에 포함된 어플리케이션 패키지를 지칭할 수 있다. In the following description, the second application package may refer to an application package included in the first application package. The third application package may refer to an application package included in the second application package.
일 실시 예에 의하면, 제1 어플리케이션 패키지는 네트워크와 직접적으로 연결되어 있거나, 주된 장치로 이용되는 전자 디바이스에서 설치될 수 있는 어플리케이션 패키지일 수 있다. 또한, 제2 어플리케이션 패키지는 네트워크와 직접적으로 연결되지 않고, 다른 전자 디바이스를 통해 네트워크로 연결되어 있거나, 부수적인 장치로 이용되는 전자 디바이스에서 설치될 수 있는 어플리케이션 패키지일 수 있다. 또한, 제1 어플리케이션 패키지 및 제2 어플리케이션 패키지가 각각 설치될 수 있는 전자 디바이스는 서로 유무선으로 서로 연결되거나 페어링된 장치일 수 있다. 제2 어플리케이션 패키지는 제1 어플리케이션 패키지가 설치될 수 있는 타입의 전자 디바이스와 연결되거나 페어링될 수 있는 타입의 전자 디바이스에 설치될 수 있다.According to an embodiment, the first application package may be an application package that may be directly connected to a network or installed in an electronic device used as a main apparatus. In addition, the second application package may be an application package that may be installed in an electronic device that is not directly connected to the network but is connected to the network through another electronic device or used as an auxiliary device. In addition, the electronic device in which the first application package and the second application package may be installed, respectively, may be devices that are connected or paired with each other by wire or wireless. The second application package may be installed in an electronic device of a type that may be connected or paired with an electronic device of the type in which the first application package may be installed.
제2 어플리케이션 패키지(723, 726)는 제1 어플리케이션 패키지(721)에 포함될 수 있고, 제2 어플리케이션 패키지(723, 726)는 또 다른 어플리케이션 패키지, 예를 들면 제3 어플리케이션 패키지를 포함할 수 있다. 제2 어플리케이션 패키지(723)는 모바일 전자 디바이스(720)와 페어링된 타입 1의 웨어러블 전자 디바이스(710)에 설치될 수 있다. 제2 어플리케이션 패키지는 웨어러블 전자 디바이스(710)에 설치될 수 있는 노멀 어플리케이션(724) 및 신뢰된 어플리케이션(725) 중 적어도 하나를 포함할 수 있다. The second application package 723, 726 may be included in the first application package 721, and the second application package 723, 726 may include another application package, for example, a third application package. The second application package 723 may be installed in the type 1 wearable electronic device 710 paired with the mobile electronic device 720. The second application package may include at least one of a normal application 724 and a trusted application 725 that may be installed in the wearable electronic device 710.
제2 어플리케이션 패키지(723, 726)에 포함될 수 있는 제3 어플리케이션 패키지는 제2 어플리케이션 패키지(723, 726)가 설치될 수 있는 타입의 전자 디바이스와 페어링되거나 연결될 수 있는 타입의 전자 디바이스에 설치될 수 있다. 어플리케이션 패키지는 상술한 실시예와 같이 반복적으로(recursively) 다른 전자 디바이스에 설치될 수 있는 어플리케이션 패키지들을 포함할 수 있다.The third application package, which may be included in the second application package 723, 726, may be installed in an electronic device of the type that may be paired or connected with an electronic device of the type in which the second application package 723, 726 may be installed. have. The application package may include application packages that can be installed repeatedly on another electronic device as in the above-described embodiment.
모바일 전자 디바이스(720)는 노멀 어플리케이션(729) 및 신뢰된 어플리케이션(730)을 제1 어플리케이션 패키지(721)로부터 추출하여, 노멀 어플리케이션(729) 및 신뢰된 어플리케이션(730)을 리치 OS 환경(731) 및 신뢰된 실행 환경(732)에 각각 설치할 수 있다. 모바일 전자 디바이스(720)는 플래그(722) 값에 기초하여, 신뢰된 어플리케이션(730)이 제1 어플리케이션 패키지(721)에 존재하는지 결정하고, 신뢰된 어플리케이션(730)을 모바일 전자 디바이스(720)에 설치할 수 있다. The mobile electronic device 720 extracts the normal application 729 and the trusted application 730 from the first application package 721 to extract the normal application 729 and the trusted application 730 from the rich OS environment 731. And trusted execution environment 732, respectively. The mobile electronic device 720 determines, based on the value of the flag 722, whether a trusted application 730 exists in the first application package 721, and sends the trusted application 730 to the mobile electronic device 720. Can be installed.
또한, 제1 어플리케이션 패키지(721)는 타입 1의 웨어러블 전자 디바이스(710)에 대한 제2 어플리케이션 패키지(723) 및 타입 2의 웨어러블 전자 디바이스에 대한 어플리케이션 패키지(726)를 더 포함할 수 있다. 서로 다른 타입의 웨어러블 전자 디바이스들은 서로 다른 운영체제를 포함하거나 서로 다른 신뢰된 실행 환경을 포함할 수 있다. 타입 1 웨어러블 전자 디바이스에 대한 어플리케이션 패키지(723) 및 타입 2 웨어러블 전자 디바이스에 대한 어플리케이션 패키지(726)는 각각 서로 다른 운영체제에 설치될 수 있는 노멀 어플리케이션(724, 727) 및 서로 다른 신뢰된 실행 환경에 설치될 수 있는 신뢰된 어플리케이션(725, 728) 중 적어도 하나를 포함할 수 있다. 예를 들면, 모바일 전자 디바이스(720)에 의해 획득된 제1 어플리케이션 패키지(721)는 제2 어플리케이션 패키지로써 안드로이드 웨어 스마트 워크에 대한 안드로이드 패키지를 포함하거나, 삼성 기어 스마트 워치에 대한 위젯을 포함할 수 있다. In addition, the first application package 721 may further include a second application package 723 for the type 1 wearable electronic device 710 and an application package 726 for the type 2 wearable electronic device. Different types of wearable electronic devices may include different operating systems or different trusted execution environments. The application package 723 for the type 1 wearable electronic device and the application package 726 for the type 2 wearable electronic device are respectively provided for normal applications 724 and 727 that can be installed on different operating systems and different trusted execution environments. It may include at least one of trusted applications 725, 728 that may be installed. For example, the first application package 721 obtained by the mobile electronic device 720 may include an Android package for the Android Wear smart work as a second application package, or may include a widget for the Samsung Gear Smart Watch. have.
각각의 제2 어플리케이션 패키지(723, 726)는 신뢰된 어플리케이션(725, 728)의 포함 여부를 나타내는 플래그(741, 742)를 더 포함할 수 있다. 제2 어플리케이션 패키지(723, 726)가 설치되는 전자 디바이스는 플래그(741, 742)를 이용하여 신뢰된 어플리케이션(725, 728)이 존재하는지 여부를 판단할 수 있다.Each second application package 723, 726 may further include flags 741, 742 indicating whether the trusted applications 725, 728 are included. The electronic device in which the second application packages 723 and 726 are installed may determine whether the trusted applications 725 and 728 exist using the flags 741 and 742.
모바일 전자 디바이스(720)는 타입 1의 웨어러블 전자 디바이스(710)에 설치될 수 있는 제2 어플리케이션 패키지(723)를 제1 어플리케이션 패키지(721)로부터 추출할 수 있다. 그리고, 모바일 전자 디바이스(720)는 타입 1의 웨어러블 전자 디바이스(710)로 제2 어플리케이션 패키지(723)를 전송할 수 있다. 도 7에 도시된 바와 같이, 제2 어플리케이션 패키지(723)에 포함된 타입 1의 신뢰된 어플리케이션(725)은 타입 1의 웨어러블 전자 디바이스(710)의 신뢰된 실행 환경(715)에 설치될 수 있다. 제2 어플리케이션 패키지(723)는 웨어러블 전자 디바이스(710)의 리치 OS 환경(714)에서 설치될 타입 1의 노멀 어플리케이션(724)을 더 포함할 수 있다. 일 실시 예에 의한, 제2 어플리케이션 패키지(723)는 타입 1의 웨어러블 전자 디바이스(710)에 설치될 수 있는 타입 1의 노멀 어플리케이션(725) 및 신뢰된 어플리케이션(725) 중 적어도 하나를 포함할 수 있다. The mobile electronic device 720 may extract a second application package 723, which may be installed in the type 1 wearable electronic device 710, from the first application package 721. In addition, the mobile electronic device 720 may transmit the second application package 723 to the type 1 wearable electronic device 710. As shown in FIG. 7, the type 1 trusted application 725 included in the second application package 723 may be installed in the trusted execution environment 715 of the type 1 wearable electronic device 710. . The second application package 723 may further include a type 1 normal application 724 to be installed in the rich OS environment 714 of the wearable electronic device 710. According to an embodiment, the second application package 723 may include at least one of a type 1 normal application 725 and a trusted application 725 that may be installed in the type 1 wearable electronic device 710. have.
제2 어플리케이션 패키지(723)에 포함된 노멀 어플리케이션(724) 및 신뢰된 어플리케이션(725) 중 적어도 하나는 모바일 전자 디바이스(720)에 설치된 노멀 어플리케이션(729) 또는 신뢰된 어플리케이션(730)과 관련된 것일 수 있다. 예를 들면, 제2 어플리케이션 패키지(723)는 모바일 전자 디바이스(720)에 설치된 노멀 어플리케이션(729)과 연동되어 실행될 수 있는 타입 1의 노멀 어플리케이션(724) 및 신뢰된 어플리케이션(725) 중 적어도 하나를 포함할 수 있다.At least one of the normal application 724 and the trusted application 725 included in the second application package 723 may be related to the normal application 729 or the trusted application 730 installed in the mobile electronic device 720. have. For example, the second application package 723 may include at least one of the type 1 normal application 724 and the trusted application 725 that may be executed in conjunction with the normal application 729 installed in the mobile electronic device 720. It may include.
도 8은 일 실시 예에 따라서, 전자 디바이스와 페어링된 다른 전자 디바이스로 신뢰된 어플리케이션을 전송하는 방법을 나타낸 순서도이다.8 is a flowchart illustrating a method of transmitting a trusted application to another electronic device paired with an electronic device according to an embodiment.
도 8을 참조하면, 단계 S810에서, 전자 디바이스는 제1 어플리케이션 패키지를 획득할 수 있다. 전자 디바이스와 다른 전자 디바이스는 서로 페어링되거나 유무선으로 연결된 상태일 수 있다.Referring to FIG. 8, in operation S810, the electronic device may acquire a first application package. The electronic device and the other electronic device may be paired with each other or connected in a wired or wireless manner.
그리고 단계 S820에서, 전자 디바이스는 제1 어플리케이션 패키지에 포함된 하나 이상의 제2 어플리케이션 패키지 중 다른 전자 디바이스로 전송될 제2 어플리케이션 패키지를 결정할 수 있다. 제2 어플리케이션 패키지는 제2 어플리케이션 패키지의 어플리케이션이 다른 전자 디바이스에 설치될 수 있는지 여부에 따라 결정될 수 있다. In operation S820, the electronic device may determine a second application package to be transmitted to another electronic device among one or more second application packages included in the first application package. The second application package may be determined according to whether the application of the second application package can be installed in another electronic device.
제2 어플리케이션 패키지를 수신한 다른 전자 디바이스에는 제2 어플리케이션 패키지에 포함된 노멀 어플리케이션 및 신뢰된 어플리케이션 중 적어도 하나가 설치될 수 있다. 다른 전자 디바이스는 제2 어플리케이션 패키지에 포함된 플래그에 기초하여 신뢰된 어플리케이션을 설치할 수 있다.At least one of a normal application and a trusted application included in the second application package may be installed in another electronic device that receives the second application package. The other electronic device may install the trusted application based on the flag included in the second application package.
일 실시예에 의하면, 모바일 전자 디바이스에 대한 제1 어플리케이션 패키지는 서로 다른 타입의 웨어러블 전자 디바이스에 대한 하나 이상의 제2 어플리케이션 패키지들을 포함할 수 있다. 특정된 하나의 타입의 웨어러블 전자 디바이스가 모바일 전자 디바이스와 페어링된 경우, 페어링된 웨어러블 전자 디바이스에 설치될 수 있는 제2 어플리케이션 패키지가 선택될 수 있다. 페어링된 웨어러블 전자 디바이스로 제2 어플리케이션 패키지가 전송될 수 있다.According to an embodiment, the first application package for the mobile electronic device may include one or more second application packages for different types of wearable electronic devices. When the specified type of wearable electronic device is paired with the mobile electronic device, a second application package that may be installed in the paired wearable electronic device may be selected. The second application package may be transmitted to the paired wearable electronic device.
단계 S830에서, 전자 디바이스는 다른 전자 디바이스로 전송될 단계 S820에서 결정된 제2 어플리케이션 패키지를 제1 어플리케이션 패키지로부터 추출할 수 있다.In operation S830, the electronic device may extract the second application package determined in operation S820 from the first application package to be transmitted to another electronic device.
단계 S840에서, 추출된 제2 어플리케이션 패키지는 다른 전자 디바이스로 전송될 수 있다. 제2 어플리케이션 패키지는 리치 OS 환경에 설치될 수 있는 노멀 어플리케이션 및 신뢰된 실행환경에 설치될 수 있는 신뢰된 어플리케이션 중 적어도 하나를 포함할 수 있다. 또한, 제2 어플리케이션 패키지는 신뢰된 어플리케이션의 포함 여부를 나타내는 플래그를 더 포함할 수 있다. 또 다른 예로, 신뢰된 어플리케이션은 제2 어플리케이션 패키지에 포함되지 않고, 그 자체로 전자 디바이스에 의해 추출되고 페어링된 다른 전자 디바이스로 전송될 수 있다.In operation S840, the extracted second application package may be transmitted to another electronic device. The second application package may include at least one of a normal application that may be installed in a rich OS environment and a trusted application that may be installed in a trusted execution environment. In addition, the second application package may further include a flag indicating whether a trusted application is included. As another example, the trusted application may not be included in the second application package but may be transmitted by itself to another electronic device extracted and paired by the electronic device.
페어링된 다른 전자 디바이스로 전송된 제2 어플리케이션 패키지는 하나 이상의 제3 어플리케이션 패키지를 포함할 수 있다. 페어링된 다른 전자 디바이스는 제2 어플리케이션 패키지로부터 제3 어플리케이션 패키지를 추출하고, 제3 어플리케이션 패키지의 어플리케이션이 설치될 전자 디바이스로 제3 어플리케이션 패키지를 전송할 수 있다. 제3 어플리케이션 패키지가 설치될 전자 디바이스는 제2 어플리케이션 패키지의 어플리케이션이 설치된 전자 디바이스와 페어링된 또 다른 전자 디바이스일 수 있다.The second application package sent to the other paired electronic device may include one or more third application packages. The other paired electronic device may extract the third application package from the second application package and transmit the third application package to the electronic device where the application of the third application package is to be installed. The electronic device in which the third application package is to be installed may be another electronic device paired with the electronic device in which the application of the second application package is installed.
도 9는 일 실시 예에 따라서, 신뢰된 어플리케이션을 포함하는 어플리케이션을 분배하는 방법을 나타낸 순서도이다.9 is a flowchart illustrating a method of distributing an application including a trusted application, according to an exemplary embodiment.
도 9를 참조하면, 단계 S910에서, 어플리케이션을 분배하는 장치는 전자 디바이스에 설치될 노멀 어플리케이션 및 전자 디바이스의 보안 영역에 설치될 신뢰된 어플리케이션을 획득할 수 있다.9, in operation S910, an apparatus for distributing an application may acquire a normal application to be installed in an electronic device and a trusted application to be installed in a secure area of the electronic device.
단계 S920에서, 어플리케이션을 분배하는 장치는 노멀 어플리케이션 및 신뢰된 어플리케이션을 어플리케이션 패키지로 결합할 수 있다. 어플리케이션 패키지는 신뢰된 어플리케이션 포함 여부를 나타내는 플래그를 더 포함할 수 있다. 어플리케이션 패키지는 복수 개의 신뢰된 실행 환경의 타입과 대응되는 복수 개의 신뢰된 어플리케이션을 포함할 수 있다.In operation S920, the apparatus for distributing the application may combine the normal application and the trusted application into the application package. The application package may further include a flag indicating whether to include a trusted application. The application package may include a plurality of trusted applications corresponding to the types of the plurality of trusted execution environments.
단계 S930에서, 장치는 어플리케이션 패키지를 어플리케이션이 설치될 전자 디바이스로 전송할 수 있다. 장치는 전자 디바이스의 요청에 따라 어플리케이션 패키지를 전자 디바이스로 전송할 수 있다.In operation S930, the apparatus may transmit the application package to the electronic device where the application is to be installed. The apparatus may transmit the application package to the electronic device at the request of the electronic device.
도 10은 일 실시 예에 따라서, 어플리케이션이 설치되는 전자 디바이스를 나타낸 블록도이다.10 is a block diagram illustrating an electronic device in which an application is installed, according to an exemplary embodiment.
도 10을 참조하면, 전자 디바이스(1000)는 예를 들어 네트워크 인터페이스(1010) 및 프로세서(1020)를 포함할 수 있다.Referring to FIG. 10, the electronic device 1000 may include, for example, a network interface 1010 and a processor 1020.
네트워크 인터페이스(1010)는 어플리케이션을 설치하기 위한 어플리케이션 패키지를 외부 네트워크를 통해 획득할 수 있다. 어플리케이션 패키지는 전자 디바이스(1000)에 설치할 수 있는 어플리케이션 패키지를 제공하는 앱 스토어 등을 통해 전자 디바이스(1000)로 제공될 수 있다.The network interface 1010 may obtain an application package for installing an application through an external network. The application package may be provided to the electronic device 1000 through an app store that provides an application package that can be installed in the electronic device 1000.
프로세서(1020)는 네트워크 인터페이스(1010)를 통해 획득된 어플리케이션 패키지로부터 신뢰된 어플리케이션을 추출하고, 신뢰된 어플리케이션을 전자 디바이스(1000)의 보안 영역에 설치할 수 있다. 일 실시 예에서, 전자 디바이스(1000)의 보안 영역은 외부 접근이 제한된 신뢰된 실행 환경을 포함할 수 있다. 신뢰된 어플리케이션은 민감하고 중요한 데이터를 이용하여 작업을 수행할 수 있다. 신뢰된 어플리케이션은 신뢰된 실행 환경에서 실행됨으로써 높은 보안 레벨에서 작업을 수행할 수 있다.The processor 1020 may extract a trusted application from an application package obtained through the network interface 1010, and install the trusted application in a security area of the electronic device 1000. In an embodiment, the secure area of the electronic device 1000 may include a trusted execution environment with limited external access. Trusted applications can work with sensitive and sensitive data. Trusted applications run in a trusted execution environment, allowing them to perform their tasks with a high level of security.
일 실시 예에 의하면, 신뢰된 어플리케이션을 하나 이상의 전자 디바이스로 분배하기 위한 서버 기반의 시스템을 반드시 구비할 필요없이 어플리케이션 패키지를 이용하여 신뢰된 어플리케이션을 하나 이상의 전자 디바이스로 분배할 수 있다.According to an embodiment, a trusted application may be distributed to one or more electronic devices using an application package without necessarily having a server-based system for distributing trusted applications to one or more electronic devices.
한편, 상술한 실시예는, 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터에 의해 판독 가능한 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 또한, 상술한 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로 구현될 수 있다. 예를 들어, 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 컴퓨터가 읽고 실행할 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다.Meanwhile, the above-described embodiments can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer which operates the program using a computer-readable medium. In addition, the structure of the data used in the above-described embodiment can be recorded on the computer-readable medium through various means. In addition, the above-described embodiments may be implemented in the form of a recording medium including instructions executable by a computer, such as a program module executed by the computer. For example, methods implemented with a software module or algorithm may be stored on a computer readable recording medium as code or program instructions that the computer can read and execute.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 기록 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 마그네틱 저장매체, 예를 들면, 롬, 플로피 디스크, 하드 디스크 등을 포함하고,) 광학적 판독 매체, 예를 들면, 시디롬, DVD 등과 같은 저장 매체를 포함할 수 있으나, 이에 제한되지 않는다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다.Computer readable media can be any recording media that can be accessed by a computer, and can include volatile and nonvolatile media, removable and non-removable media. Computer-readable media may include, but are not limited to, magnetic storage media such as ROM, floppy disks, hard disks, and the like, and optical storage media such as CD-ROMs, DVDs, etc. Do not. In addition, the computer readable medium may include computer storage media and communication media.
또한, 컴퓨터가 읽을 수 있는 복수의 기록 매체가 네트워크로 연결된 컴퓨터 시스템들에 분산되어 있을 수 있으며, 분산된 기록 매체들에 저장된 데이터, 예를 들면 프로그램 명령어 및 코드가 적어도 하나의 컴퓨터에 의해 실행될 수 있다.In addition, a plurality of computer-readable recording media may be distributed in networked computer systems, and data stored in the distributed recording media, for example, program instructions and code, may be executed by at least one computer. have.
본 개시에서 설명된 특정 실행들은 일 실시예 일 뿐이며, 어떠한 방법으로도 본 개시의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 및 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. The specific implementations described in this disclosure are only one embodiment and in no way limit the scope of the disclosure. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted.
본 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.The terms "... unit", "module", and the like described herein refer to a unit for processing at least one function or operation, which may be implemented in hardware or software, or a combination of hardware and software.
"부", "모듈"은 어드레싱될 수 있는 저장 매체에 저장되며 프로세서에 의해 실행될 수 있는 프로그램에 의해 구현될 수도 있다.The "unit" and "module" may be implemented by a program stored in a storage medium that can be addressed and executed by a processor.
예를 들어, "부", "모듈" 은 소프트웨어 구성 요소들, 객체 지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들에 의해 구현될 수 있다.For example, "part", "module" means components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, pros, etc. It can be implemented by procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays and variables.

Claims (13)

  1. 어플리케이션을 전자 디바이스에 설치하는 방법에 있어서, In a method for installing an application on an electronic device,
    상기 어플리케이션을 설치하기 위한 어플리케이션 패키지를 획득하는 단계;Obtaining an application package for installing the application;
    상기 어플리케이션 패키지가 상기 전자 디바이스에 설치될 수 있는 신뢰된 어플리케이션(trusted application)을 포함하는지 여부를 결정하는 단계; 및Determining whether the application package includes a trusted application that can be installed on the electronic device; And
    상기 어플리케이션 패키지가 상기 신뢰된 어플리케이션을 포함하는 경우, 상기 신뢰된 어플리케이션을 상기 전자 디바이스에 설치하는 단계를 포함하는, 방법.If the application package includes the trusted application, installing the trusted application on the electronic device.
  2. 제1항에 있어서, The method of claim 1,
    상기 어플리케이션 패키지가 다른 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는지 여부를 결정하는 단계; 및Determining whether the application package includes a trusted application that can be installed on another electronic device; And
    상기 어플리케이션 패키지가 상기 다른 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는 경우, 상기 신뢰된 어플리케이션을 상기 다른 전자 디바이스로 전송하는 단계를 더 포함하는, 방법.If the application package includes a trusted application that can be installed on the other electronic device, sending the trusted application to the other electronic device.
  3. 제2항에 있어서, The method of claim 2,
    상기 어플리케이션 패키지로부터, 상기 다른 전자 디바이스에서 설치될 수 있는 제2 어플리케이션 패키지를 추출하는 단계; 및Extracting, from the application package, a second application package that can be installed in the other electronic device; And
    상기 추출된 제2 어플리케이션 패키지를 상기 다른 전자 디바이스로 전송하는 단계를 더 포함하는, 방법.Sending the extracted second application package to the other electronic device.
  4. 제2항에 있어서, 상기 다른 전자 디바이스는The device of claim 2, wherein the other electronic device is
    상기 전자 디바이스와 페어링된 웨어러블 전자 디바이스를 포함하는, 방법.And a wearable electronic device paired with the electronic device.
  5. 제1항에 있어서, 상기 설치하는 단계는The method of claim 1, wherein the installing step
    상기 어플리케이션 패키지가 서로 다른 타입의 보안 영역과 각각 대응되는 복수 개의 신뢰된 어플리케이션을 포함하는 경우, 상기 전자 디바이스의 타입에 기초하여, 상기 전자 디바이스의 보안 영역에서 설치될 수 있는 신뢰된 어플리케이션을 선택하는 단계;When the application package includes a plurality of trusted applications respectively corresponding to different types of security regions, selecting a trusted application that can be installed in the security region of the electronic device based on the type of the electronic device. step;
    상기 선택된 신뢰된 어플리케이션을 상기 전자 디바이스의 보안 영역에 설치하는 단계를 포함하는, 방법.Installing the selected trusted application in a secure area of the electronic device.
  6. 제1항에 있어서, 상기 결정하는 단계는The method of claim 1, wherein the determining step
    상기 어플리케이션 패키지에서 상기 신뢰된 어플리케이션 포함 여부를 나타내는 플래그 값을 획득하는 단계; 및Obtaining a flag value indicating whether to include the trusted application in the application package; And
    상기 획득된 플래그 값에 기초하여, 상기 어플리케이션 패키지가 상기 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는지 여부를 결정하는 단계를 포함하는, 방법.Based on the obtained flag value, determining whether the application package includes a trusted application that can be installed on the electronic device.
  7. 어플리케이션이 설치되는 전자 디바이스에 있어서,An electronic device in which an application is installed,
    상기 어플리케이션을 설치하기 위한 어플리케이션 패키지를 획득하는 네트워크 인터페이스;A network interface for obtaining an application package for installing the application;
    상기 어플리케이션 패키지가 상기 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션(trusted application)을 포함하는지 여부를 결정하고, 상기 어플리케이션 패키지가 상기 신뢰된 어플리케이션을 포함하는 경우, 상기 신뢰된 어플리케이션을 상기 전자 디바이스에 설치하는 프로세서를 포함하는, 전자 디바이스.Determine whether the application package includes a trusted application that can be installed on the electronic device, and if the application package includes the trusted application, install the trusted application on the electronic device. And a processor.
  8. 제7항에 있어서, 상기 프로세서는8. The processor of claim 7, wherein the processor is
    상기 어플리케이션 패키지가 다른 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는지 여부를 결정하고, Determine whether the application package includes a trusted application that can be installed on another electronic device,
    상기 어플리케이션 패키지가 상기 다른 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는 경우, 상기 신뢰된 어플리케이션을 상기 다른 전자 디바이스로 전송하도록 상기 네트워크 인터페이스를 제어하는, 전자 디바이스.If the application package includes a trusted application that can be installed on the other electronic device, controlling the network interface to send the trusted application to the other electronic device.
  9. 제8항에 있어서, 상기 프로세서는The system of claim 8, wherein the processor is
    상기 어플리케이션 패키지로부터, 상기 다른 전자 디바이스에서 설치될 수 있는 제2 어플리케이션 패키지를 추출하고,Extracting a second application package that can be installed in the other electronic device from the application package,
    상기 추출된 제2 어플리케이션 패키지를 상기 다른 전자 디바이스로 전송하도록 상기 네트워크 인터페이스를 제어하는, 전자 디바이스.And control the network interface to send the extracted second application package to the other electronic device.
  10. 제8항에 있어서, 상기 다른 전자 디바이스는The device of claim 8, wherein the other electronic device is
    상기 전자 디바이스와 페어링된 웨어러블 전자 디바이스를 포함하는, 전자 디바이스.And a wearable electronic device paired with the electronic device.
  11. 제7항에 있어서, 상기 프로세서는8. The processor of claim 7, wherein the processor is
    상기 어플리케이션 패키지가 서로 다른 타입의 보안 영역과 각각 대응되는 복수 개의 신뢰된 어플리케이션을 포함하는 경우, 상기 전자 디바이스의 타입에 기초하여, 상기 전자 디바이스의 보안 영역에서 설치될 수 있는 신뢰된 어플리케이션을 선택하고, 상기 선택된 신뢰된 어플리케이션을 상기 전자 디바이스의 보안 영역에 설치하는, 전자 디바이스.If the application package includes a plurality of trusted applications, each corresponding to a different type of security zone, select a trusted application that can be installed in the security zone of the electronic device based on the type of the electronic device; And install the selected trusted application in a secure area of the electronic device.
  12. 제7항에 있어서, 상기 프로세서는8. The processor of claim 7, wherein the processor is
    상기 어플리케이션 패키지에서 상기 신뢰된 어플리케이션 포함 여부를 나타내는 플래그 값을 획득하고, 상기 획득된 플래그 값에 기초하여, 상기 어플리케이션 패키지가 상기 전자 디바이스에서 설치될 수 있는 신뢰된 어플리케이션을 포함하는지 여부를 결정하는, 전자 디바이스.Obtaining a flag value indicating whether to include the trusted application in the application package, and determining whether the application package includes a trusted application that can be installed in the electronic device based on the obtained flag value; Electronic device.
  13. 어플리케이션을 전자 디바이스로 분배하는 방법에 있어서,In the method for distributing an application to an electronic device,
    상기 전자 디바이스에 설치될 노멀 어플리케이션 및 상기 전자 디바이스의 보안 영역에 설치될 신뢰된 어플리케이션을 획득하는 단계;Obtaining a normal application to be installed in the electronic device and a trusted application to be installed in a secure area of the electronic device;
    상기 노멀 어플리케이션 및 상기 신뢰된 어플리케이션을 어플리케이션 패키지로 결합하는 단계; 및Combining the normal application and the trusted application into an application package; And
    상기 어플리케이션 패키지를 상기 전자 디바이스로 전송하는 단계를 포함하는, 방법.Transmitting the application package to the electronic device.
PCT/KR2016/005388 2015-09-15 2016-05-20 Method and apparatus for installation of trusted application in electronic device WO2017047904A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP16846726.4A EP3321802A4 (en) 2015-09-15 2016-05-20 Method and apparatus for installation of trusted application in electronic device
US15/760,457 US10379833B2 (en) 2015-09-15 2016-05-20 Method and apparatus for installation of trusted application in electronic device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB1516326.4A GB2542355B (en) 2015-09-15 2015-09-15 Methods and apparatus for distributing and installing trusted applications
GB1516326.4 2015-09-15
KR10-2016-0057812 2016-05-11
KR1020160057812A KR102548900B1 (en) 2015-09-15 2016-05-11 Method and apparatus for installing a trusted application on electronic device

Publications (1)

Publication Number Publication Date
WO2017047904A1 true WO2017047904A1 (en) 2017-03-23

Family

ID=58289030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/005388 WO2017047904A1 (en) 2015-09-15 2016-05-20 Method and apparatus for installation of trusted application in electronic device

Country Status (1)

Country Link
WO (1) WO2017047904A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110032246A (en) * 2009-09-22 2011-03-30 삼성전자주식회사 Method for controlling display apparatus and mobile phone
WO2013065915A1 (en) * 2011-11-04 2013-05-10 에스케이플래닛 주식회사 Method for interworking trust between a trusted region and an untrusted region, method, server, and terminal for controlling the downloading of trusted applications, and control system applying same
US20130160147A1 (en) * 2011-12-16 2013-06-20 Dell Products L.P. Protected application programming interfaces
KR20150032906A (en) * 2012-07-19 2015-03-30 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 Method and system for installing application
KR20150052068A (en) * 2012-09-05 2015-05-13 마이크로소프트 코포레이션 Generating native code from intermediate language code for an application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110032246A (en) * 2009-09-22 2011-03-30 삼성전자주식회사 Method for controlling display apparatus and mobile phone
WO2013065915A1 (en) * 2011-11-04 2013-05-10 에스케이플래닛 주식회사 Method for interworking trust between a trusted region and an untrusted region, method, server, and terminal for controlling the downloading of trusted applications, and control system applying same
US20130160147A1 (en) * 2011-12-16 2013-06-20 Dell Products L.P. Protected application programming interfaces
KR20150032906A (en) * 2012-07-19 2015-03-30 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 Method and system for installing application
KR20150052068A (en) * 2012-09-05 2015-05-13 마이크로소프트 코포레이션 Generating native code from intermediate language code for an application

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3321802A4 *

Similar Documents

Publication Publication Date Title
WO2021060853A1 (en) Network access control system and method therefor
WO2018056601A1 (en) Device and method for blocking ransomware using contents file access control
WO2010087678A2 (en) System and method for clipboard security
WO2019225921A1 (en) Method for storing digital key and electronic device
WO2015069018A1 (en) System for secure login, and method and apparatus for same
WO2019022573A1 (en) Methods and apparatus to monitor permission-controlled hidden sensitive application behavior at run-time
WO2019039730A1 (en) Device and method for preventing ransomware
WO2016064041A1 (en) User terminal using hash value to detect whether application program has been tampered and method for tamper detection using the user terminal
KR100790602B1 (en) Device controller, method for controlling a device, and a recording medium for storing a program therefor
JP5631940B2 (en) Information processing apparatus, method, and program
WO2018212474A1 (en) Auxiliary memory having independent recovery area, and device applied with same
WO2020045826A1 (en) Electronic device for processing digital key, and operation method therefor
WO2014157826A1 (en) System and method for blocking attack of smart device-based malicious code
WO2016085050A1 (en) User terminal operating in conjunction with peripheral devices, and method for preventing information leakage using same
WO2016064040A1 (en) User terminal using signature information to detect whether application program has been tampered and method for tamper detection using the user terminal
WO2014200201A1 (en) File security management apparatus and management method for system protection
WO2011065768A2 (en) Method for protecting application and method for executing application using the same
WO2020060101A1 (en) Electronic device for providing service by using secure element, and operating method thereof
WO2015099287A1 (en) Method for authenticating user by using one-time password, and device therefor
WO2019066099A1 (en) System for detecting abnormal behavior on basis of integrated analysis model, and method therefor
WO2017047904A1 (en) Method and apparatus for installation of trusted application in electronic device
WO2020111517A1 (en) Server and method for identifying integrity of application
WO2019225849A1 (en) Security device and method for providing security service through control of file input/output and integrity of guest operating system
WO2023113081A1 (en) Method, apparatus, and computer-readable recording medium for controlling execution of container workload in scheme of event streaming in cloud environment
WO2021225329A1 (en) Method and system for detecting forgery of mobile application by using user identifier and signature collection

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16846726

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2016846726

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15760457

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE