KR20140112399A - Application access control method and electronic device implementing the same - Google Patents

Application access control method and electronic device implementing the same Download PDF

Info

Publication number
KR20140112399A
KR20140112399A KR1020140023825A KR20140023825A KR20140112399A KR 20140112399 A KR20140112399 A KR 20140112399A KR 1020140023825 A KR1020140023825 A KR 1020140023825A KR 20140023825 A KR20140023825 A KR 20140023825A KR 20140112399 A KR20140112399 A KR 20140112399A
Authority
KR
South Korea
Prior art keywords
area
hash value
application
processor
application program
Prior art date
Application number
KR1020140023825A
Other languages
Korean (ko)
Other versions
KR102180529B1 (en
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US14/205,842 priority Critical patent/US9407642B2/en
Publication of KR20140112399A publication Critical patent/KR20140112399A/en
Priority to US15/200,909 priority patent/US10078599B2/en
Application granted granted Critical
Publication of KR102180529B1 publication Critical patent/KR102180529B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Computer Hardware Design (AREA)
  • Telephone Function (AREA)

Abstract

A method and apparatus of access control in an electronic apparatus implementing the method are provided. According to various embodiments, the method of operating an electronic apparatus includes: setting a volatile memory as a first area and a second area by a processor of the electronic apparatus including the volatile memory to further increase security of the volatile memory greater than that of the first area; temporarily storing first information drawn from hardware or firmware in the second area by the processor; temporarily storing second information in the second area by the processor; recognizing an access request for the second information of an application program temporarily stored in the first area; and authenticating using at least a portion of the application program in the second area by the processor. Other embodiments are possible.

Description

어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치{APPLICATION ACCESS CONTROL METHOD AND ELECTRONIC DEVICE IMPLEMENTING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an application access control method,

본 개시는 컴퓨팅 자원(computing asset)에 대한 어플리케이션의 접근을 제어하는 방법 및 이를 구현하는 전자 장치에 관한 것이다.The present disclosure relates to a method of controlling access of an application to a computing asset and an electronic device implementing the same.

스마트 폰, 태블릿 PC 등과 같은 전자장치는 메모리, 프로세서 및 운영체제(OS: Operating System)를 탑재하고 이에 따라 다양한 어플리케이션을 실행할 수 있다. 전자 장치는 온라인 상거래 및 금융 거래를 실행할 수 있다. 온라인 상거래나 금융 거래 등과 같은 기능들의 실행에 있어서, 공통적인 관심사는 보안이다. 이러한 보안을 위해 전자 장치는 예를 들면, 컴퓨팅 자원(computing asset)에 대한 어플리케이션의 접근을 제어할 수 있다.Electronic devices such as smart phones, tablet PCs, and the like can be loaded with memories, processors, and operating systems (OSs) and can execute various applications accordingly. Electronic devices can execute online commerce and financial transactions. In the implementation of functions such as online commerce or financial transactions, a common concern is security. For this security, the electronic device can, for example, control the access of the application to a computing asset.

종래 기술에 따르면, 접근 제어 방법은 공개 키 구조(public key infrastructure)에 기반한 접근 제어 방법, 비밀번호(password) 기반 접근 제어 방법, 로컬(local) 접근 제어 방법 등이 있을 수 있다. According to the related art, the access control method may be an access control method based on a public key infrastructure, a password based access control method, and a local access control method.

공개 키 기반 구조에 기반한 접근 제어 방법이 적용된 시스템은 그 설치 및 유지 보수가 복잡하다. 또한, 인증서(certificate)의 유효 기간이 만료된 경우 새로운 인증서가 발급되어야 한다. 또한 인증서의 분실 및 훼손의 위험성이 있어 그 무결성이 보장되기 어렵다. 또한 공인 인증서의 경우 발급되는데 비용이 소요될 수 있다. A system to which an access control method based on a public key infrastructure is applied is complicated to install and maintain. In addition, if the validity period of the certificate has expired, a new certificate must be issued. Also, the integrity of the certificate is difficult to guarantee because of the risk of loss or damage of the certificate. In addition, it may be costly to issue certificates.

비밀번호 기반 접근 제어 방법은 비밀번호의 해킹 또는 분실에 상당한 위험이 존재하며, 실제로 포털 및 온라인 서비스 업체에서 보안에 문제가 생기는 사건이 발생하고 있다.The password-based access control method poses a significant risk of hacking or losing a password. In fact, portal and online service providers are experiencing security problems.

로컬(local) 접근 제어 방법이 적용된 전자 장치는 사용자에게 비밀번호를 요청하지 않을 수도 있다. 그러나, 해당 전자장치의 로컬 저장소(local storage)에 저장된 데이터가 위조되거나 해킹될 수 있다. 따라서 보안이 필요한 데이터는 안전한 저장소가 필요하다.An electronic device to which a local access control method is applied may not request a password from the user. However, data stored in the local storage of the electronic device may be forged or hacked. Therefore, data that requires security requires secure storage.

본 개시는 컴퓨팅 자원에 대한 어플리케이션의 접근을 제어하여 컴퓨팅 자원을 안전하게 보호할 수 있도록 하는 방법 및 이를 구현하는 전자장치를 제공 할 수 있다.The present disclosure may provide a method for controlling access of an application to computing resources to safely protect computing resources and an electronic device for implementing the method.

본 개시의 일 실시예에 따른 전자 장치를 동작하는 방법은, 휘발성 메모리를 포함하는 전자 장치의 프로세서에 의하여, 상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하는 동작으로서, 상기 제 2 영역은 상기 제 1 영역보다 보안이 더 강화된 동작, 상기 프로세서에 의하여, 상기 제 2영역 내에 하드웨어 또는 펌웨어로부터 인출된 제 1 정보를 임시적으로 저장하는 동작, 상기 프로세서에 의하여, 상기 제 2 영역 내에 제 2 정보를 임시적으로 저장하는 동작, 상기 프로세서에 의하여, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근 요청을 인식하는 동작, 및A method of operating an electronic device according to an embodiment of the present disclosure is an operation of setting the volatile memory as a first region and a second region by a processor of an electronic device including a volatile memory, Temporarily storing first information retrieved from the hardware or firmware in the second area by the processor, wherein the second information is temporarily stored in the second area by the processor, Temporarily storing information; recognizing, by the processor, an access request for the second information of an application program temporarily stored in the first area; and

상기 프로세서에 의하여, 상기 제 2 영역 내에서 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 인증하는 동작을 포함 할 수 있다.And authenticating, by the processor, using at least a portion of the application program within the second area.

본 개시의 일 실시예에 따른 전자 장치를 동작하는 방법에 있어서, 휘발성 메모리를 포함하는 전자 장치의 프로세서에 의하여, 상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하는 동작으로서, 상기 제 2 영역은 상기 제 1 영역보다 보안이 더 강화된 동작, 상기 프로세서에 의하여, 상기 제 2영역 내에 하드웨어 또는 펌웨어로부터 인출된 제 1 정보를 임시적으로 저장하는 동작, 상기 프로세서에 의하여, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션프로그램의 적어도 일부를 이용하여 상기 어플리케이션프로그램을 대표하는 데이터를 상기 제 2 영역 내에서 획득하는 동작, 상기 제 1 정보를 이용하여 상기 제 2 영역에서 상기 어플리케이션 프로그램을 대표하는 데이터를 암호화하는 동작, 상기 암호화된 상기 어플리케이션 프로그램을 대표하는 데이터를 상기 전자장치의 비휘발성 저장 장치에 저장하는 동작을 포함 할 수 있다.A method of operating an electronic device in accordance with an embodiment of the present disclosure, the method comprising: setting, by a processor of an electronic device including a volatile memory, the volatile memory as a first region and a second region, Temporarily storing first information fetched from the hardware or firmware in the second area by the processor, wherein the first information is temporarily stored in the first area by the processor, Acquiring data representative of the application program in the second area by using at least a part of the application program stored in the first area, encrypting data representing the application program in the second area using the first information The encrypted application program, And storing the represented data in a non-volatile storage of the electronic device.

본 개시의 일 실시예에 따른 전자 장치에 있어서, 휘발성 메모리, 비휘발성 저장 장치, 하드웨어 저장 장치, 프로세서를 포함하며, 상기 프로세서는, 상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하고, 상기 제 2 영역 내에 상기 하드웨어 저장 장치로부터 인출된 제 1 정보를 임시적으로 저장하며. 상기 제 2 영역 내에 제 2 정보를 임시적으로 저장하고, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근 요청을 인식하여, 상기 제 2 영역 내에서 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 인증하는 것을 소프트웨어 적으로 수행하도록 구성될 수 있다. The electronic device according to one embodiment of the present disclosure includes a volatile memory, a non-volatile storage device, a hardware storage device, and a processor, wherein the processor sets the volatile memory as a first area and a second area, Temporarily storing first information fetched from the hardware storage device in a second area; Temporarily storing second information in the second area, recognizing an access request for the second information of the application program temporarily stored in the first area, and recognizing at least a part of the application program in the second area And perform authentication by using software.

본 개시의 다양한 실시예들에 따른 접근 제어 방법 및 전자장치는 컴퓨팅 자원에 대한 어플리케이션의 접근을 제어하여 컴퓨팅 자원을 안전하게 보호할 수 있다.Access control methods and electronic devices in accordance with various embodiments of the present disclosure may control access of an application to computing resources to secure computing resources.

도 1은 본 개시의 일 실시예에 따른 전자장치에 대한 블록도를 도시한다.
도 2는 본 개시의 일 실시예에 따른 하드웨어 200의 블록도를 도시한다.
도 3은 본 개시의 일 실시예에 따른 프로그래밍 모듈 300의 블록도를 도시한다.
도 4는 본 개시의 일 실시예에 따른 제품들의 배치를 도시한다.
도 5는 본 개시의 일 실시예에 따른 하드웨어 500의 블록도를 도시한다.
도 6은 본 개시의 일 실시예에 따른 프로그래밍 모듈 600의 블록도이다.
도 7은 본 개시의 일 실시예에 따른 프로그래밍 모듈 700의 블록도이다.
도 8은 해시 값 계산 과정의 일례를 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 접근 제어 테이블들을 도시한다.
도 10은 본 개시의 일 실시예에 따른 어플리케이션 등록 방법을 설명하기 위한 흐름도이다.
도 11은 본 개시의 다른 실시예에 따른 어플리케이션 등록 방법을 설명하기 위한 흐름도이다.
도 12는 본 개시의 일 실시예에 따른 어플리케이션 인증 방법을 설명하기 위한 흐름도이다.
도 13은 본 개시의 다른 실시예에 따른 어플리케이션 인증 방법을 설명하기 위한 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 어플리케이션 등록 및 인증 방법을 설명하기 위한 도면이다.
Figure 1 shows a block diagram for an electronic device according to an embodiment of the present disclosure.
Figure 2 shows a block diagram of hardware 200 in accordance with one embodiment of the present disclosure.
FIG. 3 shows a block diagram of a programming module 300 in accordance with one embodiment of the present disclosure.
Figure 4 illustrates the arrangement of products in accordance with one embodiment of the present disclosure.
5 shows a block diagram of hardware 500 in accordance with one embodiment of the present disclosure.
6 is a block diagram of a programming module 600 in accordance with one embodiment of the present disclosure.
7 is a block diagram of a programming module 700 in accordance with one embodiment of the present disclosure.
8 is a diagram for explaining an example of a hash value calculation process.
9 shows access control tables according to an embodiment of the present disclosure.
10 is a flowchart illustrating an application registration method according to an embodiment of the present disclosure.
11 is a flowchart for explaining an application registration method according to another embodiment of the present disclosure.
12 is a flowchart illustrating an application authentication method according to an embodiment of the present disclosure.
13 is a flowchart for explaining an application authentication method according to another embodiment of the present disclosure.
14 is a diagram for explaining an application registration and authentication method according to an embodiment of the present disclosure.

이하, 첨부된 도면들을 참조하여 다양한 실시예들을 상세히 설명한다. 이때, 첨부된 도면들에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한 본 개시의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 하기의 설명에서는 본 개시의 다양한 실시 예들에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 개시의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. Note that, in the drawings, the same components are denoted by the same reference symbols as possible. Further, the detailed description of known functions and configurations that may obscure the gist of the present disclosure will be omitted. In the following description, only parts necessary for understanding the operation according to various embodiments of the present disclosure will be described, and the description of other parts will be omitted so as not to obscure the gist of the present disclosure.

본 개시에 따른 전자장치는, 통신 기능이 포함된 장치일 수 있다. 예를 들면, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 카메라(camera), 웨어러블 장치(wearable device), 전자 시계(electronic clock), 손목 시계(wrist watch), 가전 제품(home appliance)(예: 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기 등), 인공 지능 로봇, TV, DVD(digital video disk) 플레이어, 오디오, 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSyncTM, 어플TVTM, 또는 구글 TVTM), 전자 사전, 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(electronic equipment for ship, 예를 들면, 선박용 항법 장치, 자이로콤파스 등), 항공 전자기기(avionics), 보안 기기, 전자 의복, 전자 키, 캠코더(camcorder), 게임 콘솔(game consoles), HMD(head-mounted display), 평판표시장치(flat panel display device), 전자 액자, 전자 앨범, 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device) 또는 프로젝터(projector) 등의 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 본 개시에 따른 전자장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.The electronic device according to the present disclosure may be a device including a communication function. For example, a smartphone, a tablet personal computer, a mobile phone, a videophone, an e-book reader, a desktop personal computer, a laptop personal computer, netbook computer, personal digital assistant, portable multimedia player (PMP), MP3 player, mobile medical device, electronic bracelet, electronic necklace, electronic apps, camera, Such as wearable devices, electronic clocks, wrist watches, home appliances such as refrigerators, air conditioners, vacuum cleaners, ovens, microwaves, washing machines, air cleaners, A magnetic resonance imaging (MRI), a computed tomography (CT), a camera, an ultrasound machine, etc.), a navigation system, Device, a GPS receiver em receiver, an event data recorder (EDR), a flight data recorder (FDR), a set-top box, a TV box (eg Samsung HomeSync ™, an Applet TV ™ or a Google TV ™) an electronic device, an electronic device, an electronic device, an electronic device, an infotainment device, an electronic equipment for ship (for example, a marine navigation device, a gyro compass, etc.), avionics, game consoles, head-mounted displays, flat panel display devices, electronic frames, electronic albums, furniture or parts of buildings / structures including communication functions, electronic boards, , An electronic signature receiving device or a projector, and the like. It will be apparent to those skilled in the art that the electronic device according to the present disclosure is not limited to the devices described above.

본 개시에 따른 전자장치는 어떠한 기능(function)이나 동작(operation) 등이 어느 환경(environment)에서 실행(execute) 또는 계산(compute)되느냐에 따라, 여러 환경들로 구분될 수 있다. 예를 들면, 전자장치는 신뢰 환경(trusted environment)과 비신뢰 환경(non-trusted environment)을 포함할 수 있다. 신뢰 환경은 신뢰 영역(trusted world, trusted region or trusted area)으로 바꾸어 지칭될 수 있다. 비신뢰 환경도 비신뢰 영역(non-trusted world, non-trusted region or non-trusted area)으로 바꾸어 지칭될 수 있다.An electronic device according to the present disclosure can be divided into various environments depending on which function or operation is executed or compute in an environment. For example, an electronic device may include a trusted environment and a non-trusted environment. The trust environment may be referred to as a trusted world (trusted world). An untrusted environment can also be referred to as a non-trusted world (non-trusted region) or a non-trusted area.

비신뢰 환경은 일반적인 운영체제(operating system; OS), 드라이버들, 미들웨어, 어플리케이션들을 포함할 수 있다. 이러한 시스템의 예는 안드로이드일 수 있다. 안드로이드는 리눅스 커널, 장치 드라이버들, 안드로이드 미들웨어 및 어플리케이션들을 포함할 수 있다. An untrusted environment may include a common operating system (OS), drivers, middleware, and applications. An example of such a system could be Android. Android can include the Linux kernel, device drivers, Android middleware, and applications.

신뢰 환경은 보안 요소들(security critical components)을 포함할 수 있다. 보안 요소들은 실행 중인(on run time) 비신뢰 환경의 구성 요소(예: 어플리케이션)에 의해 접근될 수 있다. 이러한 접근에 의해 특정 보안 관련 동작들(specific security related operations)이 실행될 수 있다. 일반적으로 신뢰 환경은 보안 OS, 보안 드라이버들, 보안 미들웨어 및 트러스티드 어플리케이션(TA: trusted application)들을 포함할 수 있다. 또한 신뢰 환경은 특별한 모듈을 포함할 수 있다. 이러한 특별한 모듈(예, 모니터)은 신뢰 환경과 비신뢰 환경 간의 통신을 중개 또는 제어할 수 있다. 비신뢰 환경은 신뢰 환경에 직접 접근할 수 없고, 모니터를 통해서만 신뢰 환경에 접근할 수 있도록 설정될 수 있다. 이를 위해, 모니터는 예컨대, ARM(Advance RISC Machine)사의 트러스트존(TrustZone) 기술이 적용될 수 있다.The trust environment may include security critical components. Security elements can be accessed by components (eg, applications) in an untrusted environment that is on-run time. This approach allows specific security related operations to be performed. In general, a trusted environment may include a secure OS, security drivers, security middleware, and trusted applications (TA). The trust environment may also include special modules. This particular module (eg, monitor) can mediate or control communications between the trusted and untrusted environments. An untrusted environment can not be directly accessed to the trusted environment, and can be set to access the trusted environment only through the monitor. For this purpose, the monitor can be applied, for example, TrustZone technology of ARM (Advance RISC Machine).

도 1은 본 개시의 일 실시예에 따른 전자장치에 100 대한 블록도를 도시한다.Figure 1 shows a block diagram of an electronic device 100 according to one embodiment of the present disclosure.

도 1을 참조하면, 전자장치 100은 버스 110, 프로세서 120, 메모리 130, 사용자 입력 모듈 140, 디스플레이 모듈 150, 또는 통신 모듈 160을 포함할 수 있다.Referring to FIG. 1, the electronic device 100 may include a bus 110, a processor 120, a memory 130, a user input module 140, a display module 150, or a communication module 160.

버스 110은, 전술한 구성요소들을 서로 연결하고, 전술한 구성요소들 간의 통신(예: 제어 메시지)을 전달하는 회로일 수 있다.The bus 110 may be a circuit that interconnects the components described above and communicates (e.g., control messages) between the components described above.

프로세서 120은, 예를 들면, 버스 110을 통해 전술한 다른 구성요소들(예: 메모리 130, 사용자 입력 모듈 140, 디스플레이 모듈 150, 통신 모듈 160 등)로부터 명령을 수신하여, 수신된 명령을 해독하고, 해독된 명령에 따른 연산이나 데이터 처리를 실행할 수 있다.Processor 120 receives an instruction from other components (e.g., memory 130, user input module 140, display module 150, communication module 160, etc.) described above via bus 110, decodes the received instruction , It is possible to execute an operation or data processing according to the decoded command.

메모리 130은, 프로세서 120 또는 다른 구성요소들(예: 사용자 입력 모듈 140, 디스플레이 모듈 150, 통신 모듈 160 등)로부터 수신되거나 프로세서 120 또는 다른 구성요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 메모리 130은, 예를 들면, 커널 131, 미들웨어 132, 어플리케이션 프로그래밍 인터페이스(API: application programming interface) 133 또는 어플리케이션 134 등의 프로그래밍 모듈들을 포함할 수 있다. 전술한 각각의 프로그래밍 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.Memory 130 may store instructions or data received from processor 120 or other components (e.g., user input module 140, display module 150, communication module 160, etc.) or generated by processor 120 or other components. The memory 130 may include, for example, a kernel 131, a middleware 132, an application programming interface (API) 133, or an application 134. Each of the above-described programming modules may be composed of software, firmware, hardware, or a combination of at least two of them.

커널 131은 나머지 다른 프로그래밍 모듈들, 예를 들면, 미들웨어 132, API 133 또는 어플리케이션 134에 구현된 동작 또는 기능을 실행하는데 사용되는 시스템 자원들(예: 버스 110, 프로세서 120 또는 메모리 130 등)을 제어 또는 관리할 수 있다. 또한 커널 131은 미들웨어 132, API 133 또는 어플리케이션 134에서 전자장치 100의 개별 구성요소에 접근하여 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.The kernel 131 may control system resources (e.g., bus 110, processor 120, or memory 130, etc.) used to execute an operation or function implemented in the other programming modules, e.g., middleware 132, API 133, Or management. The kernel 131 may also provide an interface through which the individual components of the electronic device 100 can be accessed, controlled or managed in the middleware 132, API 133, or application 134.

미들웨어 132는 API 133 또는 어플리케이션 134가 커널 131과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어 132는 (다수의) 어플리케이션들 134로부터 수신된 작업 요청들과 관련하여, 예를 들면, (다수의) 어플리케이션들 134들 중 적어도 하나의 어플리케이션에 전자장치 100의 시스템 자원(예: 버스 110, 프로세서 120 또는 메모리 130 등)를 사용할 수 있는 우선순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 로드 밸런싱을 수행할 수 있다.The middleware 132 can perform an intermediary function so that the API 133 or the application 134 can communicate with the kernel 131 to exchange data. In addition, the middleware 132 may be configured to communicate system resources (e.g., buses) of the electronic device 100 to at least one application (e.g., a plurality of applications) 134 with respect to work requests received from 110, processor 120, or memory 130, etc.) may be used to perform load balancing for work requests.

API 133은 어플리케이션 134가 커널 131 또는 미들웨어 132에서 제공하는 기능을 제어할 수 있는 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수를 포함할 수 있다.The API 133 is an interface through which the application 134 can control the functions provided by the kernel 131 or the middleware 132, and includes at least one interface or function for, for example, file control, window control, image processing, .

사용자 입력 모듈 140은, 예를 들면, 사용자로부터 명령 또는 데이터를 입력 받아 버스 110을 통해 프로세서 120 또는 메모리 130에 전달할 수 있다. 디스플레이 모듈 150은 사용자에게 화상, 영상 또는 데이터 등을 표시할 수 있다.The user input module 140 may receive commands or data from a user, for example, and may transmit the received commands or data to the processor 120 or the memory 130 via the bus 110. The display module 150 can display images, images, data, and the like to the user.

통신 모듈 160은 다른 전자장치 102와 전자장치 100간의 통신을 연결할 수 있다. 통신 모듈 160은 소정의 근거리 통신 프로토콜(예: Wifi(wireless fidelity), BT(Bluetooth), NFC(near field communication) 또는 소정의 네트워크 통신(예: Internet, LAN(local area network), WAN(wire area network), telecommunication network, cellular network, satellite network 또는 POTS(plain old telephone service) 등) 162를 지원할 수 있다. 전자장치들 102, 104 각각은 전자장치 100과 동일한(예: 같은 타입의) 장치이거나 또는 다른(예: 다른 타입의) 장치일 수 있다.The communication module 160 can connect the communication between the other electronic device 102 and the electronic device 100. The communication module 160 may be implemented using a predetermined communication protocol such as wireless fidelity, BT, near field communication (NFC) or predetermined network communication (e.g., Internet, local area network, (e. g., the same type) device as the electronic device 100, or may be an electronic device, e. g., a cellular network, a cellular network, a satellite network or a plain old telephone service (POTS) It may be another (e.g. different type) device.

도 2는 본 개시의 다양한 실시예들에 따른 하드웨어 200의 블록도를 도시한다.Figure 2 shows a block diagram of hardware 200 in accordance with various embodiments of the present disclosure.

하드웨어 200은, 예를 들면, 도 1에 도시된 전자 장치 100일 수 있다. 도 2를 참조하면, 하드웨어 200은 하나 이상의 프로세서 210, SIM(subscriber identification module) 카드 214, 메모리 220, 통신 모듈 230, 센서 모듈 240, 사용자 입력 모듈 250, 디스플레이 모듈 260, 인터페이스 270, 오디오 코덱 280, 카메라 모듈 291, 전력관리 모듈 295, 배터리 296, 인디케이터 297 또는 모터 298을 포함할 수 있다.The hardware 200 may be, for example, the electronic device 100 shown in FIG. 2, the hardware 200 includes one or more processors 210, a subscriber identification module (SIM) card 214, a memory 220, a communication module 230, a sensor module 240, a user input module 250, a display module 260, an interface 270, an audio codec 280, A camera module 291, a power management module 295, a battery 296, an indicator 297, or a motor 298.

프로세서 210(예: 프로세서 120)은 하나 이상의 어플리케이션 프로세서(AP: application processor) 211 또는 하나 이상의 커뮤니케이션 프로세서(CP: communication processor) 213을 포함할 수 있다. 프로세서 210은, 예를 들면, 도 1에 도시된 프로세서 120일 수 있다. 도 2에서는 AP 211 및 CP 213이 프로세서 210 내에 포함된 것으로 도시되었으나, AP 211과 CP 213은 서로 다른 IC 패키지들 내에 각각 포함될 수 있다. 어떤 실시예에 따르면 AP 211 및 CP 213은 하나의 IC 패키지 내에 포함될 수 있다.The processor 210 (e.g., processor 120) may include one or more application processors (APs) 211 or one or more communication processors (CP) The processor 210 may be, for example, the processor 120 shown in FIG. Although AP 211 and CP 213 are shown as being included in processor 210 in FIG. 2, AP 211 and CP 213 may be included in different IC packages, respectively. According to some embodiments, AP 211 and CP 213 may be included in one IC package.

AP 211은 운영체제 또는 응용 프로그램을 구동하여 AP 211에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어하고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있다. AP 211은, 예를 들면, SoC(system on chip)로 구현될 수 있다. 어떤 실시예에 따르면, 프로세서 210은 GPU(graphic processing unit, 미도시)를 더 포함할 수 있다.The AP 211 may control a plurality of hardware or software components connected to the AP 211 by operating an operating system or an application program, and may perform various data processing and calculations including multimedia data. The AP 211 can be implemented, for example, as a system on chip (SoC). According to some embodiments, the processor 210 may further include a graphics processing unit (GPU) (not shown).

CP 213은 하드웨어 200을 포함하는 전자장치(예: 전자장치 100)와 네트워크로 연결된 다른 전자장치들 간의 통신에서 데이터 링크를 관리하고 통신 프로토콜을 변환하는 기능을 수행할 수 있다. CP 213은, 예를 들면, SoC로 구현될 수 있다. 어떤 실시예에 따르면, CP 213은 멀티미디어 제어 기능의 적어도 일부를 수행할 수 있다. CP 213은, 예를 들면, 가입자 식별 모듈(예: SIM 카드 214)을 이용하여 통신 네트워크 내에서 단말의 구별 및 인증을 수행할 수 있다. 또한, CP 213은 사용자에게 음성 통화, 영상 통화, 문자 메시지 또는 패킷 데이터(packet data) 등의 서비스들을 제공할 수 있다.The CP 213 can perform the function of managing the data link and converting the communication protocol in communication between the electronic device (e.g., the electronic device 100) including the hardware 200 and other networked electronic devices. CP 213 can be implemented, for example, in SoC. According to some embodiments, the CP 213 may perform at least some of the multimedia control functions. The CP 213 can perform terminal identification and authentication within the communication network using, for example, a subscriber identity module (e.g., SIM card 214). In addition, the CP 213 can provide services such as voice call, video call, text message, or packet data to the user.

또한, CP 213은 통신 모듈 230의 데이터 송수신을 제어할 수 있다. 도 2에서는, CP 213, 전력관리 모듈 295 또는 메모리 220 등의 구성요소들이 AP 211과 별개의 구성요소로 도시되어 있으나, 어떤 실시예에 따르면, AP 211이 전술한 구성요소들의 적어도 일부(예: CP 213)를 포함하도록 구현될 수 있다.In addition, the CP 213 can control data transmission / reception of the communication module 230. In FIG. 2, components such as CP 213, power management module 295, or memory 220 are shown as separate components from AP 211, but according to some embodiments, AP 211 may include at least some of the above- CP 213).

어떤 실시예에 따르면, AP 211 또는 CP 213은 각각에 연결된 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, AP 211 또는 CP 213은 다른 구성요소 중 적어도 하나로부터 수신하거나 다른 구성요소 중 적어도 하나에 의해 생성된 데이터를 비휘발성 메모리에 저장(store)할 수 있다.According to some embodiments, AP 211 or CP 213 may load and process commands or data received from at least one of the non-volatile memory or other components connected to each, into volatile memory. In addition, AP 211 or CP 213 may store data in at least one of the other components or in non-volatile memory generated by at least one of the other components.

SIM 카드214은 가입자 식별 모듈을 구현한 카드일 수 있으며, 전자장치의 특정 위치에 형성된 슬롯에 삽입될 수 있다. SIM 카드 214은 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.The SIM card 214 may be a card that implements the subscriber identity module and may be inserted into a slot formed at a specific location in the electronic device. The SIM card 214 may include unique identification information (e.g., ICCID) or subscriber information (e.g., international mobile subscriber identity (IMSI)).

메모리 220은 내장 메모리 222 또는 외장 메모리 224를 포함할 수 있다. 메모리 220은, 예를 들면, 도 1에 도시된 메모리 130일 수 있다. 내장 메모리 222는, 예를 들면, 휘발성 메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비휘발성 메모리(non-volatile Memory, 예를 들면, OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory 등) 중 적어도 하나를 포함할 수 있다. 한 실시예에 따르면, 내장 메모리 222는 Solid State Drive(SSD)의 형태를 취할 수도 있다. 외장 메모리 224는 flash drive, 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 MemoryStick 등을 더 포함할 수 있다.The memory 220 may include an internal memory 222 or an external memory 224. The memory 220 may be, for example, the memory 130 shown in FIG. The built-in memory 222 may be a volatile memory such as a dynamic RAM (DRAM), a static random access memory (SRAM), a synchronous dynamic RAM (SDRAM), or a non-volatile memory (e.g., At least one of an OTPROM (one time programmable ROM), a PROM (programmable ROM), an EPROM (erasable and programmable ROM), an EEPROM (electrically erasable and programmable ROM), a mask ROM, a flash ROM, a NAND flash memory, . According to one embodiment, the internal memory 222 may take the form of a solid state drive (SSD). The external memory 224 may be a flash drive, for example, a compact flash (CF), a secure digital (SD), a micro secure digital (SD), a mini secure digital (SD), an extreme digital .

통신 모듈 230은 무선 통신 모듈 231 또는 RF 모듈 234를 포함할 수 있다. 통신 모듈 230은, 예를 들면, 도 1에 도시된 통신 모듈 160일 수 있다. 무선 통신 모듈 231은, 예를 들면, WiFi 모듈 233, BT(bluetooth) 모듈 235, GPS 수신 모듈 237 또는 NFC(near field communication) 모듈239를 포함할 수 있다. 예를 들면, 무선 통신 모듈 231은 무선 주파수를 이용하여 무선 통신 기능을 제공할 수 있다. 추가적으로 또는 대체적으로, 무선 통신 모듈 231은 하드웨어 200을 네트워크(예: Internet, LAN(local area network), WAN(wire area network), telecommunication network, cellular network, satellite network 또는 POTS(plain old telephone service) 등)와 연결시키기 위한 네트워크 인터페이스(예: LAN card) 또는 모뎀 등을 포함할 수 있다. NFC 모듈 233은 NFC 안테나와 연결을 위한 접속 단자를 포함할 수 있다.The communication module 230 may include a wireless communication module 231 or an RF module 234. The communication module 230 may be, for example, the communication module 160 shown in FIG. The wireless communication module 231 may include, for example, a WiFi module 233, a bluetooth module 235, a GPS receiving module 237, or an NFC (near field communication) module 239. For example, the wireless communication module 231 may provide a wireless communication function using a radio frequency. Additionally or alternatively, the wireless communication module 231 may communicate the hardware 200 to a network (e.g., the Internet, a LAN, a WAN, a telecommunication network, a cellular network, a satellite network or a plain old telephone service A network interface (e.g., a LAN card) or a modem for connecting with a network interface (not shown). The NFC module 233 may include a connection terminal for connection with the NFC antenna.

RF 모듈 234는 데이터의 송수신, 예를 들면, RF 신호 또는 호출된 전자신호의 송수신을 담당할 수 있다. RF 모듈 234는, 도시되지는 않았으나, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter) 또는 LNA(low noise amplifier) 등을 포함할 수 있다. 또한, RF 모듈234는 무선통신에서 자유공간상의 전자파를 송수신하기 위한 부품, 예를 들면, 도체 또는 도선 등을 더 포함할 수 있다.The RF module 234 is capable of transmitting and receiving data, for example, an RF signal or transmitting and receiving a called electronic signal. The RF module 234 may include, for example, a transceiver, a power amplifier module (PAM), a frequency filter, or a low noise amplifier (LNA), although not shown. Further, the RF module 234 may further include a component, for example, a conductor or a lead, for transmitting and receiving electromagnetic waves in free space in wireless communication.

센서 모듈 240은, 예를 들면, 제스처 센서 240A, 자이로 센서 240B, 기압 센서 240C, 마그네틱 센서 240D, 가속도 센서 240E, 그립 센서 240F, 근접 센서 240G, RGB(red, green, blue) 센서 240H, 생체 센서 240I, 온/습도 센서 240J, 조도 센서 240K 또는 UV(ultra violet) 센서 240M 중의 적어도 하나를 포함할 수 있다. 센서 모듈 240은 물리량을 계측하거나 전자장치의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 추가적으로/대체적으로, 센서 모듈 240은, 예를 들면, 후각 센서(E-nose sensor, 미도시), EMG 센서(electromyography sensor, 미도시), EEG 센서(electroencephalogram sensor, 미도시), ECG 센서(electrocardiogram sensor, 미도시) 또는 지문 센서 등을 포함할 수 있다. 센서 모듈 240은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어회로를 더 포함할 수 있다.The sensor module 240 includes a gesture sensor 240A, a gyro sensor 240B, an air pressure sensor 240C, a magnetic sensor 240D, an acceleration sensor 240E, a grip sensor 240F, a proximity sensor 240G, an RGB (red, green, blue) sensor 240H, 240I, a temperature / humidity sensor 240J, an illuminance sensor 240K, or an ultraviolet (UV) sensor 240M. The sensor module 240 may measure the physical quantity or sense the operating state of the electronic device, and convert the measured or sensed information into electrical signals. Additionally or alternatively, the sensor module 240 may include an electronic sensor such as, for example, an E-nose sensor (not shown), an EMG sensor (not shown), an EEG sensor (not shown), an electrocardiogram sensor, not shown) or a fingerprint sensor. The sensor module 240 may further include a control circuit for controlling at least one or more sensors belonging to the sensor module 240.

사용자 입력 모듈 250은 터치 패널(touch panel) 252, (디지털) 펜 센서(pen sensor) 254, 키(key) 256 또는 초음파 입력 장치 258을 포함할 수 있다. 사용자 입력 모듈 250은, 예를 들면, 도 1에 도시된 사용자 입력 모듈 140일수 있다. 터치 패널 252는, 예를 들면, 정전식, 감압식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 터치 입력을 인식할 수 있다. 또한, 터치 패널 252는 컨트롤러(미도시)를 더 포함할 수도 있다. 정전식의 경우, 직접 터치뿐만 아니라 간접 터치의 인식도 가능하다. "직접 터치 방식"은 전도성 물체(예를 들어, 손가락 또는 스타일러스펜)가 터치스크린에 직접 접촉하는 (contact) 방식을 의미할 수 있다. 어떤 실시예에 따르면, "간접 터치 방식"은, 비전도성 물체에 둘러싸인 전도성 물체(예, 장갑을 낀 상태의 손가락)가 터치스크린에 인접하거나, 비전도성 물체(예를 들어, 손가락을 낀 상태의 장갑)가 터치스크린에 접촉하는 방식을 의미할 수 있다. 어떤 실시예에 따르면, "간접 터치 방식"은 터치스크린의 위에 비전도성 물체(예를 들어, 터치스크린을 보호하기 위한 커버(cover))가 접촉한 상태에서 손가락이 비전도성 물체를 터치하는 방식을 의미할 수도 있다. 어떤 실시예에 따르면, "간접 터치 방식"은 손가락이 터치스크린에 접촉하지 않으면서, 미리 설정된 거리 이내로 터치스크린에 인접함에 의하여 이벤트를 발생시키는 방식, 보통 "호버링(hovering)," 이라고 불리는 방식을 의미할 수도 있다. 터치 패널 252는 택타일레이어(tactile layer)를 더 포함할 수도 있다. 이 경우, 터치 패널 252는 사용자에게 촉각 반응을 제공할 수 있다. 터치 패널 252는 디스플레이 모듈 260의 화면(즉, 터치스크린)에 설치될 수 있다. 예컨대, 터치패널 252는 터치스크린에 위치하는 애드 온 타입(add-on type) 또는 디스플레이 모듈 260 내에 삽입되는 온 셀 타입(on-cell type) 또는 인 셀 타입(in-cell type)으로 구현될 수 있다.The user input module 250 may include a touch panel 252, a (digital) pen sensor 254, a key 256, or an ultrasonic input device 258. The user input module 250 may be, for example, the user input module 140 shown in FIG. The touch panel 252 can recognize the touch input in at least one of, for example, an electrostatic type, a pressure sensitive type, an infrared type, or an ultrasonic type. Further, the touch panel 252 may further include a controller (not shown). In the case of the electrostatic type, not only the direct touch but also the indirect touch can be recognized. By "direct touch method" may mean a method in which a conductive object (e.g., a finger or a stylus pen) is in direct contact with the touch screen. According to some embodiments, an " indirect touch scheme "is one in which a conductive object (e.g., a gloved finger) surrounded by a nonconductive object is adjacent to the touch screen or a nonconductive object (e.g., Gloves) may contact the touch screen. According to some embodiments, the "indirect touch method" is a method in which a finger touches a non-conductive object in contact with a non-conductive object (e.g., a cover for protecting the touch screen) It may mean. According to some embodiments, an " indirect touch method "is a method of generating an event by proximity to a touch screen within a predetermined distance, without a finger touching the touch screen, usually a method called" hovering, It may mean. The touch panel 252 may further include a tactile layer. In this case, the touch panel 252 can provide a tactile response to the user. The touch panel 252 may be installed on a screen of the display module 260 (i.e., a touch screen). For example, the touch panel 252 may be implemented as an add-on type located on a touch screen or an on-cell type or an in-cell type inserted into the display module 260 have.

(디지털) 펜 센서 254는, 예를 들면, 사용자의 터치 입력을 받는 것과 동일 또는 유사한 방법 또는 별도의 인식용 시트(sheet)를 이용하여 구현될 수 있다. 키 256로서, 예를 들면, 키패드 또는 터치 키가 이용될 수 있다. 초음파 입력 장치 258은 초음파 신호를 발생하는 펜을 통해, 단말에서 마이크(예: 마이크 288)로 음파를 감지하여 데이터를 확인할 수 있는 장치로서, 무선 인식이 가능하다. 어떤 실시예에 따르면, 하드웨어 200은 통신 모듈 230을 이용하여 이와 연결된 외부 장치(예: 네트워크, 컴퓨터 또는 서버)로부터 사용자 입력을 수신할 수도 있다.(Digital) pen sensor 254 may be implemented using the same or similar method as receiving the touch input of the user, for example, or using a separate recognizing sheet. As the key 256, for example, a keypad or a touch key may be used. The ultrasonic wave input device 258 is a device that can confirm data by sensing a sound wave from a terminal to a microphone (e.g., a microphone 288) through a pen that generates an ultrasonic signal, and is capable of wireless recognition. According to some embodiments, the hardware 200 may utilize the communication module 230 to receive user input from an external device (e.g., a network, computer or server) connected thereto.

디스플레이 모듈 260은 패널 262 또는 홀로그램 264를 포함할 수 있다. 디스플레이 모듈 260은, 예를 들면, 도 1에 도시된 디스플레이 모듈 150일 수 있다. 패널 262는, 예를 들면, LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등일 수 있다. 패널262는, 예를 들면, 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 패널 262는 터치 패널 252와 하나의 모듈로 구성될 수도 있다. 홀로그램 264는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 한 실시예에 따르면, 디스플레이 모듈 260은 패널 262 또는 홀로그램 264를 제어하기 위한 제어회로를 더 포함할 수 있다.The display module 260 may include a panel 262 or a hologram 264. The display module 260 may be, for example, the display module 150 shown in FIG. The panel 262 may be, for example, a liquid-crystal display (LCD) or an active-matrix organic light-emitting diode (AM-OLED). The panel 262 can be embodied, for example, flexible, transparent or wearable. The panel 262 may be composed of a touch panel 252 and one module. The hologram 264 can display a stereoscopic image in the air using the interference of light. According to one embodiment, the display module 260 may further include control circuitry for controlling the panel 262 or the hologram 264.

인터페이스 270은, 예를 들면, HDMI(high-definition multimedia interface) 272, USB(universal serial bus) 274, 프로젝터 276 또는 D-sub(D-subminiature) 278을 포함할 수 있다. 추가적으로 또는 대체적으로, 인터페이스 270은, 예를 들면, SD(secure Digital)/MMC(multi-media card)(미도시) 또는 IrDA(infrared data association, 미도시)를 포함할 수 있다.The interface 270 may include, for example, a high-definition multimedia interface (HDMI) 272, a universal serial bus (USB) 274, a projector 276, or a D-sub (D-subminiature) 278. Additionally or alternatively, the interface 270 may include, for example, a secure digital (SD) / multi-media card (MMC) (not shown) or an IrDA (infrared data association;

오디오 코덱 280은 음성과 전기신호를 쌍방향으로 변환시킬 수 있다. 오디오 코덱 280은, 예를 들면, 스피커 282, 리시버 284, 이어폰 286 또는 마이크 288 등을 통해 입력 또는 출력되는 음성 정보를 변환시킬 수 있다.The audio codec 280 can convert audio and electrical signals in both directions. The audio codec 280 can convert audio information input or output through, for example, a speaker 282, a receiver 284, an earphone 286, a microphone 288, or the like.

카메라 모듈 291은 화상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 렌즈 또는 후면 렌즈), ISP(image signal processor, 미도시) 또는 플래쉬 LED(flash LED, 미도시)를 포함할 수 있다.The camera module 291 is a device capable of capturing an image and a moving image. According to one embodiment, the camera module 291 includes at least one image sensor (e.g., a front lens or a rear lens), an image signal processor (ISP) Not shown).

전력관리 모듈 295는 하드웨어 200의 전력을 관리할 수 있다. 도시하지는 않았으나, 전력관리 모듈 295는, 예를 들면, PMIC(power management integrated circuit), 충전 IC(charger integrated circuit) 또는 배터리 게이지(battery fuel gauge)를 포함할 수 있다.The power management module 295 can manage the power of the hardware 200. Although not shown, the power management module 295 may include, for example, a power management integrated circuit (PMIC), a charger integrated circuit (IC), or a battery fuel gauge.

PMIC는, 예를 들면, 집적회로 또는 SoC 반도체 내에 탑재될 수 있다. 충전 방식은 유선과 무선으로 구분될 수 있다. 충전 IC는 배터리를 충전시킬 수 있으며, 충전기로부터의 과전압 또는 과전류 유입을 방지할 수 있다. 한 실시예에 따르면, 충전 IC는 유선 충전 방식 또는 무선 충전 방식 중 적어도 하나를 위한 충전 IC를 포함할 수 있다. 무선 충전 방식으로는, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등이 있으며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 정류기 등의 회로가 추가될 수 있다.The PMIC can be mounted, for example, in an integrated circuit or a SoC semiconductor. The charging method can be classified into wired and wireless. The charging IC can charge the battery and can prevent an overvoltage or an overcurrent from the charger. According to one embodiment, the charging IC may comprise a charging IC for at least one of a wired charging mode or a wireless charging mode. Examples of the wireless charging system include a magnetic resonance system, a magnetic induction system or an electromagnetic wave system, and additional circuits for wireless charging, for example, a coil loop, a resonant circuit, a rectifier, have.

배터리 게이지는, 예를 들면, 배터리 296의 잔량, 충전 중 전압, 전류 또는 온도를 측정할 수 있다. 배터리 296은 전기를 생성하여 전원을 공급할 수 있고, 예를 들면, 충전식 전지(rechargeable battery)일 수 있다.The battery gauge can measure, for example, the remaining amount of the battery 296, the voltage during charging, the current or the temperature. The battery 296 can generate electricity to supply power, and can be, for example, a rechargeable battery.

인디케이터 297은 하드웨어 200 혹은 그 일부(예: AP 211)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터 298은 전기적 신호를 기계적 진동으로 변환할 수 있다. MCU 299는, 센서 모듈 240을 제어할 수 있다.Indicator 297 may indicate a particular state of hardware 200 or a portion thereof (e.g., AP 211), such as a boot state, a message state, or a state of charge. The motor 298 can convert an electrical signal to mechanical vibration. The MCU 299 can control the sensor module 240.

도시되지는 않았으나, 하드웨어 200은 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 모바일 TV지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting) 또는 미디어 플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다. 본 개시에 따른 하드웨어의 전술한 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자장치의 종류에 따라서 달라질 수 있다. 본 개시에 따른 하드웨어는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 본 개시에 따른 하드웨어의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.Although not shown, the hardware 200 may include a processing unit (e.g., a GPU) for mobile TV support. The processing device for mobile TV support can process media data according to standards such as digital multimedia broadcasting (DMB), digital video broadcasting (DVB), or media flow. Each of the above-described components of the hardware according to the present disclosure can be composed of one or more components, and the name of the component can be changed according to the type of the electronic device. The hardware according to the present disclosure may be configured to include at least one of the above-described components, and some components may be omitted or further include other additional components. In addition, some of the components of the hardware according to the present disclosure may be combined and configured as an entity, so that the functions of the corresponding components before being combined can be performed in the same manner.

본 개시에 사용된 용어 "모듈"은, 예를 들어, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은 예를 들어, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component) 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, 본 개시에 따른 "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.The term "module" as used herein may mean a unit comprising, for example, one or a combination of two or more of hardware, software or firmware. A "module" may be interchangeably used with terms such as, for example, unit, logic, logical block, component or circuit. A "module" may be a minimum unit or a portion of an integrally constructed component. A "module" may be a minimum unit or a portion thereof that performs one or more functions. "Modules" may be implemented either mechanically or electronically. For example, a "module" in accordance with the present disclosure may be implemented as an application-specific integrated circuit (ASIC) chip, field-programmable gate arrays (FPGAs) or programmable logic arrays (FPGAs) logic device).

도 3은 본 개시의 다양한 실시예들에 따른 프로그래밍 모듈 300의 블록도를 도시한다.3 shows a block diagram of a programming module 300 in accordance with various embodiments of the present disclosure.

도 3을 참조하면, 프로그래밍 모듈 300은 도 1에 도시된 전자장치 100(예: 메모리 130)에 포함(예: 저장)될 수 있다. 프로그래밍 모듈 300의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다. 프로그래밍 모듈 300은 하드웨어(예: 하드웨어 200)에 구현되어 전자장치(예: 전자장치 100)에 관련된 자원을 제어하는 운영체제(OS: operation system) 또는 운영체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 370)을 포함할 수 있다. 예를 들면, 운영체제는 안드로이드(Android), iOS, 윈도우즈(Windows), 심비안(Symbian), 타이젠(Tizen) 또는 바다(Bada) 등이 될 수 있다. 도 3을 참조하면, 프로그래밍 모듈 300은 커널 310, 미들웨어 330, API(application programming interface) 360 또는 어플리케이션 370을 포함할 수 있다.Referring to FIG. 3, the programming module 300 may be included (e.g., stored) in the electronic device 100 (e.g., memory 130) shown in FIG. At least some of the programming modules 300 may be comprised of software, firmware, hardware, or a combination of at least two of these. The programming module 300 may be implemented in an operating system (OS) that is implemented in hardware (e.g., hardware 200) to control resources associated with an electronic device (e.g., electronic device 100) or a variety of applications . For example, the operating system may be Android, iOS, Windows, Symbian, Tizen, or Bada. 3, the programming module 300 may include a kernel 310, a middleware 330, an application programming interface (API) 360, or an application 370.

커널 310(예: 커널 131)은 시스템 리소스 매니저 311 또는 디바이스 드라이버 312를 포함할 수 있다. 시스템 리소스 매니저 311은, 예를 들면, 프로세스관리부 313, 메모리관리부 315 또는 파일시스템관리부 317 등을 포함할 수 있다. 시스템 리소스 매니저 311은 시스템 자원의 제어, 할당 또는 회수 등을 수행할 수 있다. 디바이스 드라이버 312는, 예를 들면, 디스플레이 드라이버 314, 카메라 드라이버 316, 블루투스 드라이버 318, 공유 메모리 드라이버 320, USB 드라이버 322, 키패드 드라이버 324, WiFi 드라이버 326 또는 오디오 드라이버 328을 포함할 수 있다. 또한, 한 실시예에 따르면, 디바이스 드라이버 312는 IPC (inter-process communication, 미도시) 드라이버를 포함할 수 있다.The kernel 310 (e.g., kernel 131) may include a system resource manager 311 or a device driver 312. The system resource manager 311 may include, for example, a process management unit 313, a memory management unit 315, or a file system management unit 317. The system resource manager 311 can perform control, allocation, or recovery of system resources. The device driver 312 may include, for example, a display driver 314, a camera driver 316, a Bluetooth driver 318, a shared memory driver 320, a USB driver 322, a keypad driver 324, a WiFi driver 326 or an audio driver 328. Also, according to one embodiment, the device driver 312 may include an inter-process communication (IPC) driver.

미들웨어 330은 어플리케이션 370이 공통적으로 필요로 하는 기능을 제공하기 위해 미리 구현해 놓은 복수의 모듈들을 포함할 수 있다. 또한, 미들웨어 330은 어플리케이션 370이 전자장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 API 360를 통해 기능을 제공할 수 있다. 예를 들면, 도 3에 도시된 바와 같이, 미들웨어 330(예: 미들웨어 132)은 런타임 라이브러리 335, 어플리케이션 매니저(application manager) 341, 윈도우 매니저(window manager) 342, 멀티미디어 매니저(multimedia manager) 343, 리소스 매니저(resource manager) 344, 파워 매니저(power manager) 345, 데이터베이스 매니저(database manager) 346, 패키지 매니저 347, 연결 매니저(connectivity manager) 348, 통지 매니저(notification manager) 349, 위치 매니저(location manager) 350, 그래픽 매니저(graphic manager) 351 또는 보안 매니저(security manager) 352 중 적어도 하나를 포함할 수 있다.The middleware 330 may include a plurality of modules previously implemented in order to provide functions that the application 370 commonly requires. The middleware 330 may also provide functionality through the API 360 so that the application 370 can efficiently use limited system resources within the electronic device. 3, the middleware 330 (e.g., middleware 132) includes a runtime library 335, an application manager 341, a window manager 342, a multimedia manager 343, A resource manager 344, a power manager 345, a database manager 346, a package manager 347, a connectivity manager 348, a notification manager 349, a location manager 350 A graphic manager 351, or a security manager 352. In this case,

런타임 라이브러리 335는, 예를 들면, 어플리케이션 370이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 한 실시예에 따르면, 런타임 라이브러리 335는 입출력, 메모리 관리 또는 산술 함수에 대한 기능 등을 수행할 수 있다.The runtime library 335 may include, for example, a library module that the compiler uses to add new functionality through a programming language while the application 370 is running. According to one embodiment, the runtime library 335 may perform functions such as input / output, memory management, or arithmetic functions.

어플리케이션 매니저 341은, 예를 들면, 어플리케이션 370 중 적어도 하나의 어플리케이션의 생명주기(life cycle)를 관리할 수 있다. 윈도우 매니저 342는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저 343은 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 리소스 매니저 344는 어플리케이션 370 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다.The application manager 341 can manage the life cycle of at least one of the applications 370, for example. The window manager 342 can manage GUI resources used on the screen. The multimedia manager 343 can recognize the format required for reproducing various media files and can encode or decode the media file using a codec suitable for the corresponding format. The resource manager 344 can manage resources such as source code, memory or storage space of at least one of the applications 370.

파워 매니저 345는 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리(battery) 또는 전원을 관리하고, 동작에 필요한 전력 정보 등을 제공할 수 있다. 데이터베이스 매니저 346은 어플리케이션 370 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색 또는 변경할 수 있도록 관리할 수 있다. 패키지 매니저 347은 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.The power manager 345 operates in conjunction with a basic input / output system (BIOS) or the like to manage a battery or a power source and provide power information necessary for the operation. The database manager 346 may manage to create, retrieve, or modify a database for use by at least one of the applications 370. The package manager 347 can manage installation or update of an application distributed in the form of a package file.

연결 매니저 348은, 예를 들면, WiFi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 통지 매니저 349는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 위치 매니저 350은 전자장치의 위치 정보를 관리할 수 있다. 그래픽 매니저 351은 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저 352는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다. 한 실시예에 따르면, 전자장치(예: 전자장치 100)가 전화 기능을 구비한 경우에는, 미들웨어 330은 전자장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager, 미도시)를 더 포함할 수 있다.The connection manager 348 may manage wireless connections, such as, for example, WiFi or Bluetooth. The notification manager 349 may display or notify events such as arrival messages, appointments, proximity notifications, etc. in a manner that is not disturbed to the user. The location manager 350 can manage the location information of the electronic device. The graphic manager 351 can manage the graphical effect to be provided to the user or a user interface related thereto. The security manager 352 can provide security functions necessary for system security or user authentication. According to one embodiment, when the electronic device (e.g., electronic device 100) has a telephone function, the middleware 330 may further include a telephony manager (not shown) for managing the voice or video call capability of the electronic device .

미들웨어 330은 전술한 내부 구성요소 모듈들의 다양한 기능 조합을 통해 새로운 미들웨어 모듈을 생성하여 사용할 수 있다. 미들웨어 330은 차별화된 기능을 제공하기 위해 운영체제의 종류별로 특화된 모듈을 제공할 수 있다. 또한, 미들웨어 330은 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 따라서, 본 개시의 실시예에 기재된 구성요소를 일부 생략하거나 다른 구성요소를 더 구비하거나 또는 유사한 기능을 수행하는 다른 명칭을 갖는 구성요소로 대체할 수 있다.The middleware 330 can create and use a new middleware module through various functional combinations of the internal component modules. The middleware 330 can provide a module specialized for each type of operating system in order to provide differentiated functions. In addition, the middleware 330 can dynamically delete some existing components or add new ones. Accordingly, the components described in the embodiments of the present disclosure may be partially replaced with components having other names or having other components or having other functions performing similar functions.

API 360(예: API 133)은 API 프로그래밍 함수들의 집합으로, 운영체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 예를 들면, 플랫폼별로 하나의 API 셋을 제공할 수 있으며, 타이젠(Tizen)의 경우, 예를 들면, 두 개 이상의 API 셋을 제공할 수 있다.API 360 (API 133, for example) is a set of API programming functions that can be provided in different configurations depending on the operating system. For example, in the case of Android or iOS, for example, one API set can be provided for each platform, and in the case of Tizen, for example, two or more API sets can be provided.

어플리케이션 370(예: 어플리케이션 134)은, 예를 들면, 프리로드 어플리케이션(preloaded Application) 또는 제 삼자 어플리케이션(third party application)을 포함할 수 있다.The application 370 (e.g., application 134) may include, for example, a preloaded application or a third party application.

프로그래밍 모듈 300의 적어도 일부는 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 명령어는, 하나 이상의 프로세서(예: 프로세서 210)에 의해 실행될 경우, 하나 이상의 프로세서가 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리 260이 될 수 있다. 프로그래밍 모듈 300의 적어도 일부는, 예를 들면, 프로세서 210에 의해 구현(implement)(예: 실행)될 수 있다. 프로그래밍 모듈 300의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트 (sets of instructions) 및/또는 프로세스 등을 포함할 수 있다.At least some of the programming modules 300 may be implemented with instructions stored on a computer-readable storage medium. The instructions, when executed by one or more processors (e.g., processor 210), may perform one or more functions corresponding to instructions. The computer readable storage medium may be, for example, a memory 260. [ At least some of the programming modules 300 may be implemented (e.g., executed) by, for example, the processor 210. At least some of the programming modules 300 may include, for example, modules, programs, routines, sets of instructions and / or processes, etc., for performing one or more functions.

본 개시에 따른 프로그래밍 모듈(예: 프로그래밍 모듈 300)의 구성요소들의 명칭은 운영체제의 종류에 따라서 달라질 수 있다. 본 개시에 따른 프로그래밍 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 본 개시에 따른 프로그래밍 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 처리될 수 있으며, 또한 일부 동작이 생략되거나, 다른 동작이 추가될 수 있다.The names of components of a programming module (e.g., programming module 300) according to the present disclosure may vary depending on the type of operating system. A programming module according to the present disclosure may include at least one or more of the elements described above, some of which may be omitted, or may further include other additional elements. Operations performed by a programming module or other component in accordance with the present disclosure may be processed in a sequential, parallel, iterative, or heuristic manner, and some operations may be omitted, or other operations may be added.

도 4는 본 개시 일 실시예에 따른 구성의 배치를 도시한다.4 shows an arrangement of a configuration according to an embodiment of the present disclosure.

도 4를 참조하면, 어떤 사적인 어플리케이션들 410은 신뢰 환경의 하드웨어 420(예: trusted storage)에 있는 시스템 자원 또는 어플리케이션 자원에 대한 접근을 신뢰 환경에게 요청할 수 있다. 여기서 어플리케이션 자원은 예를 들면, 키(예: 보안키), 민감한(sensitive) 데이터, 어떤 곳에 대한 접근 등을 의미할 수 있다. 시스템 자원은 메모리, 프로세서, 버스 등을 의미할 수 있다. 신뢰 플랫폼 430 상의 해시 기반 어플리케이션 접근 제어 440은 각 어플리케이션의 기밀성을 유지하면서 그들의 자원에 대한 어플리케이션들의 독립된 접근을 관리 가능하게 한다. 높은(하드웨어 수준의) 보안 수준을 달성하면서도 사용자 상호작용(비밀번호 입력)은 요청되지 않는다.Referring to FIG. 4, some private applications 410 may request a trusted environment to access system resources or application resources in trusted environment hardware 420 (e.g., trusted storage). Where the application resource may mean, for example, a key (e.g., a security key), sensitive data, or access to something. System resources may refer to memory, processors, buses, and the like. The hash-based application access control 440 on the trust platform 430 allows the independent access of applications to their resources while maintaining the confidentiality of each application. User interaction (password entry) is not required while achieving a high (hardware level) security level.

도 5는 본 개시의 일 실시예에 따른 하드웨어 500의 블록도를 도시한다.5 shows a block diagram of hardware 500 in accordance with one embodiment of the present disclosure.

하드웨어 500은, 예를 들면, 도 1에 도시된 전자 장치 100일 수 있다. 도 5를 참조하면, 하드웨어 500은 제 1 메모리 510, 제 2 메모리 520, 제 3 메모리 530 및 프로세서 540을 포함할 수 있다. The hardware 500 may be, for example, the electronic device 100 shown in FIG. Referring to FIG. 5, the hardware 500 may include a first memory 510, a second memory 520, a third memory 530, and a processor 540.

제 1 메모리 510은 프로세서 540에 의하여, 논리적으로 또는 물리적으로 비신뢰 환경 511(제 1 영역)과 신뢰 환경 512(제 2 영역)로 설정될 수 있다. 또한 제 1 메모리 510은 휘발성 메모리(예: DRAM)일 수 있다.The first memory 510 may be logically or physically set by the processor 540 to an untrusted environment 511 (first area) and a trusted environment 512 (second area). The first memory 510 may also be a volatile memory (e.g., DRAM).

제 2 메모리 520은 접근 제어 모듈 521, 접근 제어 테이블 522 및 어플리케이션들 523_1~523_N을 포함할 수 있다. 제 2 메모리 520은 비휘발성 메모리(예: 플래시(flash) 메모리)일 수 있다. The second memory 520 may include an access control module 521, an access control table 522, and applications 523_1 to 523_N. The second memory 520 may be a non-volatile memory (e.g., flash memory).

제 3 메모리 530은 비밀 키(예: 비밀 키 531)를 포함할 수 있다. 제 3 메모리 520은 비휘발성 메모리(예: 롬(ROM))일 수 있다. 도 5에서는 제 3 메모리 530이 프로세서 500과 별개의 구성요소로 도시되어 있으나, 어떤 실시예에 따르면, 제 3 메모리 530은 프로세서 500의 내부에 전체 또는 일부가 포함될 수 있다.The third memory 530 may include a secret key (e.g., a secret key 531). The third memory 520 may be a non-volatile memory (e.g., ROM). In FIG. 5, the third memory 530 is shown as a separate component from the processor 500, but according to some embodiments, the third memory 530 may be entirely or partially included in the processor 500.

프로세서 510은 도 2에 도시된 어플리케이션 프로세서 211일 수 있다. 프로세서 510에 배터리의 전원이 공급되면, 부팅 프로그램이 제 2 메모리 520(또는 제 3 메모리 530)에서 제 1 메모리 510으로 로딩된다. 프로세서 540은 제 1 메모리 510으로 로딩된 부팅 프로그램에 액세스하여 그 명령을 해독하고, 해독 결과에 따른 기능(예: 환경 분류, 운영체제 로딩 작업)을 실행할 수 있다. 프로세서 540은 제 1 메모리 510의 전체 또는 일부를 비신뢰 환경 511과 신뢰 환경 512로 분류하고, 운영체제를 제 2 메모리 520(또는 제 3 메모리 530)에서 제 1 메모리 510의 신뢰 환경 512로 로딩할 수 있다. 프로세서 540은 제 1 메모리 510으로 로딩된 운영체제에 액세스하여 그 기능(예: 접근 제어 모듈 및 그 테이블 로딩 작업)을 실행할 수 있다. 프로세서 540은 접근 제어 모듈 521 및 비밀 키 530을 신뢰 환경 512으로 로딩할 수 있다. 어떠한 실시예에 따르면, 비밀 키 531은 신뢰 환경 512으로 로딩되지 않을 수도 있다. 또한, 프로세서 540은 접근 제어 테이블 522(예: 접근 제어 테이블 612)을 비신뢰 환경 511으로 로딩하고, 어플리케이션들 523_1~523_N 중에서 적어도 하나를 비신뢰 환경 511으로 로딩할 수 있다. 어떠한 실시예에 따르면, 접근 제어 테이블 522(예: 도 7에 도시된 접근 제어 테이블 722)는 신뢰 환경 512으로 로딩될 수도 있다. 프로세서 540은 접근 제어 모듈 521에 액세스하여 그 기능을 실행할 수 있다.The processor 510 may be the application processor 211 shown in FIG. When the battery 510 is powered on, the boot program is loaded into the first memory 510 from the second memory 520 (or the third memory 530). The processor 540 accesses the boot program loaded into the first memory 510, decodes the command, and executes a function (e.g., an environment classification, an operating system loading operation) according to the decoding result. The processor 540 may classify all or a portion of the first memory 510 into an untrusted environment 511 and a trusted environment 512 and may load the operating system from the second memory 520 (or third memory 530) into the trusted environment 512 of the first memory 510 have. The processor 540 may access the operating system loaded into the first memory 510 and execute its functions (e.g., the access control module and its table loading operations). The processor 540 may load the access control module 521 and the secret key 530 into the trusted environment 512. According to some embodiments, the secret key 531 may not be loaded into the trusted environment 512. The processor 540 may also load the access control table 522 (e.g., the access control table 612) into the untrusted environment 511 and load at least one of the applications 523_1 to 523_N into the untrusted environment 511. [ According to some embodiments, access control table 522 (e.g., access control table 722 shown in FIG. 7) may be loaded into trusted environment 512. The processor 540 may access the access control module 521 and perform its functions.

다른 실시예에 따르면, 전자 장치는 휘발성 메모리(제 1 메모리 510), 비휘발성 저장 장치(예: 제 2 메모리 520), 하드웨어 저장 장치(예: 제 3 메모리 530), 프로세서를 포함하며, 상기 프로세서는, 상기 휘발성 메모리를 제 1 영역(예: 비신뢰 환경 511) 및 제 2 영역(예: 신뢰 환경 512)으로 설정하고, 상기 제 2 영역 내에 상기 하드웨어 저장 장치로부터 인출된 제 1 정보(예: 비밀 키)를 임시적으로 저장하며. 상기 제 2 영역 내에 제 2 정보(예: 추가적인 파일(additional files), 정적 컨텐츠(static content), 어플리케이션 코드(code), UI 스트링(user interface strings), 애니메이션 명령(animation instructions), 어플리케이션 데이터, 연락처(contact), 이미지, 비밀번호, 텍스트, 동영상, 컨텐츠 중 적어도 하나)를 임시적으로 저장하고, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근 요청을 인식하여, 상기 제 2 영역 내에서 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 인증하는 것을 소프트웨어 적으로 수행하도록 구성될 수 있다. 상기 프로세서는, 상기 인증을 위해 상기 어플리케이션 프로그램의 적어도 일부의 데이터를 고정된 길이의 데이터로 매핑하도록 구성될 수 있다. 상기 프로세서는, 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 생성된 제 1 해시(Hash)값 및 이미 계산된 제 2 해시(Hash)값을 비교하여 인증하도록 구성될 수 있다. 상기 프로세서는, 상기 제 1 정보를 이용하여 상기 제 2 해시 값을 획득하도록 구성될 수 있다. 상기 프로세서는, 상기 어플리케이션의 코드 및/또는 정적(static) 데이터를 이용하여 상기 제 1 해시 값을 생성하도록 구성될 수 있다. 상기 프로세서는, 상기 비휘발성 저장 장치에서 상기 제 2 해시 값을 포함하는 데이터를 상기 제 2 영역으로 임시적으로 인출하도록 구성될 수 있다. 상기 프로세서는, 상기 어플리케이션의 식별 정보를 이용하여 상기 인증을 수행하도록 구성될 수 있다. 상기 프로세서는, 함께 저장된 상기 어플리케이션의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시값을 암호화한 인증 태그를 이용하여 상기 인증을 수행하도록 구성될 수 있다 상기 프로세서는, 상기 인증에 기반하여 상기 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근을 허용하도록 구성될 수 있다. 상기 프로세서는, 상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하고, 상기 제 2영역 내에 상기 하드웨어 저장 장치로부터 인출된 제 1 정보를 임시적으로 저장하고, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 적어도 일부를 이용하여 상기 어플리케이션 프로그램을 대표하는 데이터를 상기 제 2 영역 내에서 획득하고, 상기 제 1 정보를 이용하여 상기 제 2 영역에서 상기 어플리케이션 프로그램을 대표하는 데이터를 암호화하고, 상기 암호화된 어플리케이션 프로그램을 대표하는 데이터를 상기 비휘발성 저장 장치에 저장하도록 구성될 수 있다. 상기 프로세서는, 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 획득한 데이터 및 이미 계산된 제 2 해시(Hash) 값을 비교하도록 구성될 수 있다. 상기 프로세서는, 상기 어플리케이션 프로그램의 식별 정보를 암호화하여 저장하도록 구성될 수 있다. 상기 프로세서는, 상기 제 2 영역에서 상기 어플리케이션 프로그램의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시값을 암호화한 인증 태그를 함께 저장하도록 구성될 수 있다. According to another embodiment, the electronic device comprises a volatile memory (first memory 510), a non-volatile storage (e.g. second memory 520), a hardware storage device (e.g. third memory 530) (E.g., untrusted environment 511) and a second area (e.g., trusted environment 512), and the first information (e.g., Secret key) temporarily. (E.g., additional files, static content, application code, user interface strings, animation instructions, application data, contacts, etc.) temporarily storing at least one of an image, a contact, an image, a password, a text, a moving picture, and a content, recognizing an access request for the second information of an application program temporarily stored in the first area, And performing authentication using at least a portion of the application program within the application program. The processor may be configured to map data of at least a portion of the application program to data of a fixed length for the authentication. The processor may be configured to compare and authenticate a first hash value generated using at least a portion of the application program and a previously calculated second hash value. The processor may be configured to use the first information to obtain the second hash value. The processor may be configured to generate the first hash value using code and / or static data of the application. The processor may be configured to temporarily fetch data in the non-volatile storage device containing the second hash value into the second area. The processor may be configured to perform the authentication using the identification information of the application. The processor may be configured to perform the authentication using data that is encrypted with at least a portion of the application stored together and an authentication tag that has encrypted the hash value of the data stored in the application. To allow access to the second information. Wherein the processor is configured to set the volatile memory as a first area and a second area, to temporarily store first information fetched from the hardware storage device in the second area, to temporarily store the application program temporarily stored in the first area, Acquiring data representative of the application program in the second area using at least a part of the first application, encrypting data representing the application program in the second area using the first information, And store the data representative of the program in the non-volatile storage. The processor may be configured to compare data obtained using at least a portion of the application program and a second calculated hash value. The processor may be configured to encrypt and store identification information of the application program. The processor may be configured to store together the authentication data in which encryption of at least a part of the application program is encrypted in the second area and an authentication tag in which the hash value of the data is encrypted.

도 6은 본 개시의 일 실시예에 따른 프로그래밍 모듈 600의 블록도이다.6 is a block diagram of a programming module 600 in accordance with one embodiment of the present disclosure.

도 6를 참조하면, 프로그래밍 모듈 600은 도 1에 도시된 전자장치 100 (예: 메모리 130)에 포함(예: 저장)될 수 있다. 프로그래밍 모듈 600의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다. Referring to FIG. 6, programming module 600 may be included (e.g., stored) in electronic device 100 (e.g., memory 130) shown in FIG. At least a portion of programming module 600 may be comprised of software, firmware, hardware, or a combination of at least two of them.

프로그래밍 모듈 600은 비신뢰 환경 610 및 신뢰 환경 620을 포함할 수 있다. 비신뢰 환경 610은 어플리케이션들 611_1~N과 접근 제어 테이블 612를 포함할 수 있다. 신뢰 환경 620은 접근 제어 모듈 621을 포함할 수 있다. 접근 제어 모듈 621의 모든 기능들은 신뢰 환경 620에서 실행될 수 있다. 접근 제어 모듈 621은 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합일 수 있다.The programming module 600 may include an untrusted environment 610 and a trusted environment 620. The untrusted environment 610 may include applications 611_1-N and an access control table 612. The trust environment 620 may include an access control module 621. All functions of the access control module 621 may be executed in the trusted environment 620. The access control module 621 may be one or a combination of hardware, software, or firmware.

어플리케이션들 611_1~N은 예를 들면, 도 3에 도시된 어플리케이션 370의 구성 요소일 수 있다. 어플리케이션들 611_1~N은 각각, 자원에 대한 접근을, 접근 제어 모듈 621에 요청할 수 있다. 어플리케이션들 611_1~N은 각각, 어플리케이션 코드, 정적(static) 데이터 및 동적(dynamic) 데이터를 포함할 수 있다. 어플리케이션이 예를 들어, 주소록 어플리케이션(컨텍트 378)인 경우, 정적 데이터는 배경 이미지, 연락처들이 될 수 있고, 동적 데이터는 각각의 연락처에 넘버링된 숫자가 될 수 있다. 접근 제어 테이블 612는 어플리케이션들 611_1~N에 각각 대응되는 레코드들을 포함할 수 있다. 이러한 레코드들은 암호화될 수 있다.The applications 611_1 to N may be, for example, components of the application 370 shown in Fig. Each of the applications 611_1 to N may request access to the resource from the access control module 621. Applications 611_1-N may each contain application code, static data, and dynamic data. If the application is, for example, an address book application (contact 378), the static data can be a background image, contacts, and the dynamic data can be a number numbered for each contact. The access control table 612 may include records corresponding to the applications 611_1 to N, respectively. These records can be encrypted.

어플리케이션(예: 어플리케이션 611_1)이 등록을 요청하면, 접근 제어 모듈 621은 어플리케이션의 해시 값(hash value) 및 식별 정보(ID: identification information)를 계산할 수 있다. 접근 제어 모듈 621은 계산된 해시 값 및 식별 정보에 대응되는 레코드가 접근 제어 테이블 612에 존재하는지 여부를 검사할 수 있다. 검사 결과 없다면, 접근 제어 모듈 621은 계산된 해시 값 및 식별 정보를 새로운 레코드로써 접근 제어 테이블 612에 넣을 수 있다. 이는 해당 어플리케이션에 대한 성공적인 등록을 의미한다. 추가적으로, 접근 제어 모듈 621은 어플리케이션 토큰(application token)을 생성하여 해당 어플리케이션에 제공할 수도 있다. 어플리케이션의 해시 값 및 ID가 이미 접근 제어 테이블 612에 있다면, 해당 어플리케이션은 이미 등록된 것이므로, 접근 제어 모듈 621은 등록의 요청을 거부할 수 있다. 추가적으로, 접근 제어 모듈 621은 사용자에게 등록 거부 메시지를 출력하는 동작을 수행할 수도 있다. 여기서 출력은 디스플레이 모듈을 시각적인 피드백, 스피커를 이용한 청각적인 피드백 및 모터를 이용한 촉각적인 피드백 중 적어도 하나를 포함할 수 있다.When an application (e.g., application 611_1) requests registration, the access control module 621 may calculate an application hash value and identification information (ID). The access control module 621 can check whether the record corresponding to the calculated hash value and the identification information exists in the access control table 612. [ If there is no check result, the access control module 621 may insert the calculated hash value and identification information into the access control table 612 as a new record. This means successful registration for the application. In addition, the access control module 621 may generate an application token and provide it to the application. If the hash value and the ID of the application are already in the access control table 612, the access control module 621 can deny the registration request because the application is already registered. In addition, the access control module 621 may perform an operation of outputting a registration rejection message to the user. Wherein the output may include at least one of visual feedback, auditory feedback using a speaker, and tactile feedback using a motor.

어플리케이션(예: 어플리케이션 611_1)은 어떤 자원들(키, 데이터, 어떤 곳 또는 다른 자원에 대한 접근)에 대한 접근을 접근 제어 모듈 621에게 요청할 수 있다. 이러한 요청에 반응하여, 접근 제어 모듈 621은 어플리케이션의 해시 값 및 ID를 계산할 수 있다. 접근 제어 모듈 621은 해시를 여러 방식으로 계산할 수 있다. 예를 들면, 접근 제어 모듈 621은 운영체제(예: 신뢰 환경 620의 운영체제 또는 비신뢰 환경 610의 운영체제)로부터 어플리케이션의 이진 경로(binary path)의 일부 또는 전체를 얻어서, 얻은 이진(binary)에 대한 해시 값을 계산할 수 있다. 또는, 접근 제어 모듈 621은 메모리(예: 신뢰 환경 620에 의해 관리되는 보안 저장소 또는 비신뢰 환경 610에 의해 관리되는 일반 저장소)에 있는 어플리케이션의 코드의 일부 또는 전체에 대한 해시를 계산할 수도 있다. An application (e.g., application 611_1) may request access control module 621 access to certain resources (access to keys, data, anywhere, or other resources). In response to this request, the access control module 621 may calculate the hash value and ID of the application. The access control module 621 may calculate the hash in various ways. For example, the access control module 621 may obtain some or all of the application's binary path from the operating system (e.g., the operating system of the trusted environment 620 or the operating system of the untrusted environment 610) The value can be calculated. Alternatively, the access control module 621 may compute a hash for some or all of the application's code in memory (e.g., a secure repository managed by a trusted environment 620 or a generic repository managed by an untrusted environment 610).

접근 제어 모듈 621은 운영체제로부터 어플리케이션의 이진 경로의 일부 또는 전체를 얻어서, 얻은 이진을 이용하여 ID를 계산할 수 있다. 추가적으로 또는 대안적으로, 접근 제어 모듈 621은 메모리에 저장된 어플리케이션의 이름을 이용하여 ID를 계산할 수도 있다. 또는, 접근 제어 모듈 621은 메모리에 저장된 어플리케이션의 다양한 정보(예: 어플리케이션 이름, 운영체제 이름, 버전 정보 등)를 이용하여 ID를 생성할 수도 있다. 또는, 접근 제어 모듈 621은 메모리에 저장된 어플리케이션의 다양한 정보 중에서 적어도 하나를 어플리케이션 ID로 설정할 수도 있다.The access control module 621 may obtain a part or all of the binary path of the application from the operating system and calculate the ID using the obtained binary. Additionally or alternatively, the access control module 621 may calculate the ID using the name of the application stored in memory. Alternatively, the access control module 621 may generate an ID using various information (e.g., application name, operating system name, version information, etc.) of the application stored in the memory. Alternatively, the access control module 621 may set at least one of various information of the application stored in the memory as an application ID.

접근 제어 모듈 621은, "계산된 해시 값과 ID"에 대응되는 레코드가 접근 제어 테이블 612 에 있으면, 어플리케이션의 인증이 성공된 것이므로 접근을 허용할 수 있다. 이에 따라 어플리케이션은 자원에 접근하여 작업(예: 데이터 읽기, 데이터 쓰기, 데이터 변경, 하드웨어의 사용, 다른 어플리케이션에 대한 접근 등)을 수행할 수 있다. The access control module 621 can allow access if the record corresponding to the "calculated hash value and ID" is in the access control table 612, since the application has been successfully authenticated. As a result, applications can access resources and perform tasks (eg, reading data, writing data, changing data, using hardware, accessing other applications, etc.).

대응되는 레코드가 접근 제어 테이블 612에 없다면, 접근 제어 모듈 621은, 어플리케이션의 인증이 실패된 것이므로, 접근을 금지할 수 있다. 추가적으로, 인증이 실패된 경우 접근 제어 모듈 621은 사용자에게 경고 메시지를 출력하는 동작을 수행할 수 있다. 여기서 출력은 디스플레이 모듈을 시각적인 피드백, 스피커를 이용한 청각적인 피드백 및 모터를 이용한 촉각적인 피드백 중 적어도 하나를 포함할 수 있다. If the corresponding record is not found in the access control table 612, the access control module 621 can prohibit the access because the authentication of the application has failed. In addition, when the authentication fails, the access control module 621 may perform an operation of outputting a warning message to the user. Wherein the output may include at least one of visual feedback, auditory feedback using a speaker, and tactile feedback using a motor.

어떤 실시예에 따르면, 인증이 실패된 경우, 접근 제어 모듈 621은 "어플리케이션 업그레이드" 이벤트를 생성 및 기록(log)할 수 있다. 어플리케이션 업그레이드는 사용자의 승인을 요청할 수 있다. 어플리케이션 업그레이드가 사용자에 의해 승인된 경우, 접근 제어 모듈 621은 해당 어플리케이션을 업그레이드하고, 업그레이드된 어플리케이션의 ID 및 해시 값을 계산하고, "계산된 ID 및 해시 값"으로 접근 제어 테이블 612의 해당 레코드를 갱신할 있다. 이후, 업그레이드된 어플리케이션이 접근을 요청하면, 접근 제어 모듈 621은 접근을 허용할 수 있다. According to some embodiments, if authentication fails, the access control module 621 may generate and log an "application upgrade" event. Application upgrades may require user approval. When the application upgrade is approved by the user, the access control module 621 upgrades the application, calculates the ID and hash value of the upgraded application, and stores the corresponding record in the access control table 612 as the " I can update. Thereafter, when the upgraded application requests access, the access control module 621 can grant access.

접근 제어 테이블 612은 비신뢰 환경 610에 저장될 수 있다. 이런 경우, 접근 제어 테이블 612의 각 레코드들은 인증된 암호화(Authenticated Encryption) 방식에 의해 암호화될 수 있다. 암호화 방식은"AES(Advanced Encryption Standard)-GCM(Galois Counter Mode; 예컨대, 도 8에 도시된 프로세스)"가 사용될 수도 있고, 또는 다른 수단이 사용될 수도 있다. 테이블의 레코드의 암호화는 신뢰 환경 620에서 실행될 수 있다. 예를 들면, 접근 제어 모듈 621은 레코드를 암호화하고 이를 접근 제어 테이블 612에 등록할 수 있다. 암호화된 레코드의 해독도 신뢰 환경 620에서 실행될 수 있다. 예를 들면, 접근 제어 모듈 621은 접근 제어 테이블 612을 비신뢰 환경 610으로부터 읽어 와, 해독 키(예: 비밀 신뢰 환경 키(secret trusted environment key))를 이용하여, 읽어 온 접근 제어 테이블의 레코드들을 해독할 수 있다. 접근 제어 모듈 621은 해독된 레코드들을 각각, 어플리케이션의 해시 값 및 ID와 비교하여, 해시 값 및 ID에 대응되는 레코드가 상기 접근 제어 테이블에 존재하는지 여부를 판단할 수 있다.The access control table 612 may be stored in an untrusted environment 610. In this case, each record in the access control table 612 can be encrypted by an authenticated encryption method. The encryption method may be "Advanced Encryption Standard (AES) -GCM (Galois Counter Mode) (e.g., the process shown in FIG. 8)" Encryption of records in the table may be performed in trusted environment 620. For example, the access control module 621 may encrypt the record and register it in the access control table 612. The decryption of the encrypted record may also be performed in trusted environment 620. For example, the access control module 621 reads the access control table 612 from the untrusted environment 610 and uses the decryption key (e.g., a secret trusted environment key) to retrieve records of the read access control table It can be decrypted. The access control module 621 may compare the decrypted records with the hash value and the ID of the application, respectively, and determine whether a record corresponding to the hash value and the ID exists in the access control table.

신뢰 환경 620에서 동작하는 "인증된 암호화 과정"은 접근 제어 테이블 612의 기밀성(confidentiality)을 보장할 수 있다. 또한 "인증된 암호화 과정"은 접근 제어 테이블 612에서 무결성 위반(integrity violation)의 검출을 보장할 수 있다. 이러한 보장은 접근 제어 테이블 612에서 어떤 레코드를 변조하는 것이 (계산적으로) 불가능하고, 접근 제어 테이블 612의 어떠한 비인가 변경도 접근 제어 모듈 621에 의해 검출될 수 있다는 것을 의미한다. 접근 제어 테이블 612에서 무결성 위반의 검출을 보장하는 것은 결국 올바른 접근 제어 결정의 보장을 의미한다.The "authenticated encryption process" operating in the trust environment 620 can ensure the confidentiality of the access control table 612. [ The "authenticated encryption process" can also ensure the detection of an integrity violation in the access control table 612. This assurance means that it is not possible (computationally) to modulate a record in the access control table 612 and any unauthorized modification of the access control table 612 can be detected by the access control module 621. Ensuring the detection of an integrity violation in the access control table 612 eventually means ensuring a correct access control decision.

어떤 실시예에 따르면, 접근 제어 모듈 621에게 "자원에 대한 접근을 요청하는 어플리케이션"은 신뢰 환경 620에서 동작하는 어플리케이션일 수도 있다.According to some embodiments, the "application requesting access to resources" to access control module 621 may be an application running in trusted environment 620. [

어떤 실시예에 따르면, 접근의 승인이 필요한 자원은 신뢰 환경 620에 포함된 자원일 수 있다. 이러한 자원은 시스템 자원(예: 메모리, 프로세서, 버스 등) 및 어플리케이션 자원(예: 키, 데이터, 다른 어플리케이션 등) 중 적어도 하나를 포함할 수 있다.According to some embodiments, a resource that needs to be granted access may be a resource included in the trusted environment 620. Such resources may include at least one of system resources (e.g., memory, processor, bus, etc.) and application resources (e.g., keys, data, other applications, etc.).

도 7은 본 개시의 일 실시예에 따른 프로그래밍 모듈 700의 블록도이다.7 is a block diagram of a programming module 700 in accordance with one embodiment of the present disclosure.

도 7을 참조하면, 프로그래밍 모듈 700은 도 1에 도시된 전자장치 100 (예: 메모리 130)에 포함(예: 저장)될 수 있다. 프로그래밍 모듈 700은 비신뢰 환경 710 및 신뢰 환경 720을 포함할 수 있다. 비신뢰 환경 710은 어플리케이션들 711_1~N을 포함할 수 있다. 신뢰 환경 720은 접근 제어 모듈 721 과 접근 제어 테이블 722를 포함할 수 있다. 이와 같이 접근 제어 테이블 722이 안전한 신뢰 환경 720에 포함될 경우, 접근 제어 테이블 722의 각각의 레코드들은 암호화되지 않을 수도 있다.Referring to FIG. 7, the programming module 700 may be included (e.g., stored) in the electronic device 100 (e.g., memory 130) shown in FIG. Programming module 700 may include an untrusted environment 710 and a trusted environment 720. The untrusted environment 710 may include applications 711_1-N. The trust environment 720 may include an access control module 721 and an access control table 722. Thus, when the access control table 722 is included in the secure trust environment 720, each record in the access control table 722 may not be encrypted.

도 8은 해시 값 계산 과정의 일례를 설명하기 위한 도면이다.8 is a diagram for explaining an example of a hash value calculation process.

도 8을 참조하면, 접근 제어 모듈(예: 접근 제어 모듈 621)은 어플리케이션 810의 전부 또는 일부(예: 코드 및 정적 데이터)를 읽어 올 수 있다. 접근 제어 모듈은 지정된 해시 함수 820을 이용하여, 읽어 온 어플리케이션 810의 전체 또는 일부의 해시 값 830을 계산할 수 있다. 예를 들어, 읽어 온 어플리케이션 810의 전부 또는 일부의 크기가 1GB이고, 해시 함수 820이 SHA(Secure Hash Algorithm)-256라고 한다면, 해시 값 830의 크기는 256bit가 된다.8, an access control module (e.g., access control module 621) may read all or a portion of application 810 (e.g., code and static data). The access control module may calculate the hash value 830 of all or part of the read application 810 using the designated hash function 820. [ For example, if the size of all or part of the read application 810 is 1GB and the hash function 820 is SHA (Secure Hash Algorithm) -256, then the size of the hash value 830 is 256 bits.

도 9는 본 개시의 일 실시예에 따른 접근 제어 테이블들을 도시한다.9 shows access control tables according to an embodiment of the present disclosure.

도 9 (a) 참조하면, 접근 제어 테이블 910에서 레코드들 910_1~910_N은 각각, 암호화된 "어플리케이션의 ID(App_ID)"와 암호화된 "어플리케이션의 해시 값(App_Hash)"을 포함할 수 있다. 어플리케이션 ID는 해당 어플리케이션의 전체 이진 경로 및 이름 중 적어도 하나로부터 구성될 수 있다. 물론 다른 방식으로도 구성될 수 있다. 각 레코드의 무결성은 "인증된 암호화 과정"에 의해 보장되고, 테이블 전체의 무결성 또한 보장될 수 있다.9A, records 910_1 to 910_N in the access control table 910 may include an encrypted "application ID (App_ID)" and an encrypted "application hash value (App_Hash)", respectively. The application ID can be composed of at least one of the entire binary path and name of the application. Of course, it can also be configured in other ways. The integrity of each record is ensured by an "authenticated encryption process " and the integrity of the entire table can also be guaranteed.

어떤 실시예에 따르면, 레코드에서 해시 값은 어떤 수단(예: 접근 제어 모듈 621, MAC 등)에 의해 신뢰 환경(예: 신뢰환경 620 또는 720)에 포함될 수 있다. 레코드에서 다른 값(예: 어플리케이션 ID)은 비신뢰 환경(예: 비신뢰 환경 610 또는 710)에 포함될 수 있다. 접근 제어 테이블 910은 비신뢰 환경(예: 비신뢰 환경 610)에 포함될 수 있다. 대안적으로, 접근 제어 테이블 910은 신뢰 환경(예: 신뢰 환경 722)에 포함될 수도 있다.According to some embodiments, the hash value in the record may be included in a trusted environment (e.g., trusted environment 620 or 720) by some means (e.g., access control module 621, MAC, etc.). Other values in the record (e.g., application ID) may be included in an untrusted environment (e.g., untrusted environment 610 or 710). Access control table 910 may be included in an untrusted environment (e.g., untrusted environment 610). Alternatively, access control table 910 may be included in a trusted environment (e.g., trusted environment 722).

도 9 (b)를 참조하면, 접근 제어 테이블 920에서 레코드들 920_1~920_N은 각각, 암호화된 "어플리케이션의 해시 값(App_Hash)"과, 암호화된 "어플리케이션과 관련된 자원(App_Asset)"과, 해당 어플리케이션의 변조 여부를 검증하기 위한 인증 정보(Authk)를 포함할 수 있다. 인증 정보(Authk)는 해당 어플리케이션 또는 그와 관련된 정보를 이용하여 생성된 것일 수 있다. 접근 제어 테이블 920은 비신뢰 환경(예: 비신뢰 환경 610)에 포함될 수 있다. 대안적으로, 접근 제어 테이블 920은 신뢰 환경(예: 신뢰 환경 722)에 포함될 수도 있다.9B, in the access control table 920, the records 920_1 to 920_N respectively include an encrypted "application hash value (App_Hash)", an encrypted "application related resource (App_Asset)", And authentication information (Auth k ) for verifying whether or not it is modulated. The authentication information (Auth k ) may be generated using the application or information related thereto. Access control table 920 may be included in an untrusted environment (e.g., untrusted environment 610). Alternatively, access control table 920 may be included in a trusted environment (e.g., trusted environment 722).

도 9 (c)를 참조하면, 접근 제어 테이블 930에서 레코드들 930_1~930_N은 각각, 암호화된 인증 정보(App_Auth_Info)와, 암호화된 "어플리케이션 ID(App_ID)"와, 암호화된 "어플리케이션의 데이터(Data)"와, 인증 태그(Auth_TagK)를 포함할 수 있다. 접근 제어 테이블 930은 비신뢰 환경(예: 비신뢰 환경 610)에 포함될 수 있다. 대안적으로, 접근 제어 테이블 930은 신뢰 환경(예: 신뢰 환경 722)에 포함될 수도 있다.9C, in the access control table 930, the records 930_1 to 930_N include encrypted authentication information (App_Auth_Info), encrypted "application ID (App_ID)", encrypted "application data ) "And an authentication tag (Auth_Tag K ). Access control table 930 may be included in an untrusted environment (e.g., untrusted environment 610). Alternatively, access control table 930 may be included in a trusted environment (e.g., trusted environment 722).

도 10은 본 개시의 일 실시예에 따른 어플리케이션 등록 방법을 설명하기 위한 흐름도이다.10 is a flowchart illustrating an application registration method according to an embodiment of the present disclosure.

도 10을 참조하면, 동작 1010에서 전자장치(예: 전자 장치 100)의 프로세서 120은 어플리케이션의 등록 요청을 인식할 수 있다. 등록 요청에 반응하여 동작 1020에서 프로세서 120은 어플리케이션의 해시와 ID를 계산(calculate)할 수 있다. 동작 1030에서 프로세서 120은 계산된 값들(예: App1_ID, App1_hash)에 대응되는 레코드가 접근 제어 테이블에 존재하는지 여부를 판단할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하지 않으면, 동작 1040에서 프로세서 120은 계산된 값들을 접근 제어 테이블에 등록할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하면, 동작 1050에서 프로세서 120은 등록의 요청을 거부할 수 있다.Referring to FIG. 10, at operation 1010, processor 120 of an electronic device (e.g., electronic device 100) may recognize a registration request for an application. In operation 1020, in response to the registration request, the processor 120 may calculate the hash and ID of the application. At operation 1030, the processor 120 may determine whether a record corresponding to the calculated values (e.g., App1_ID, App1_hash) is present in the access control table. If a corresponding record is not present in the access control table, then at operation 1040 processor 120 may register the calculated values in the access control table. If a corresponding record is present in the access control table, at operation 1050 processor 120 may deny the registration request.

도 11는 본 개시의 다른 실시예에 따른 어플리케이션 등록 방법을 설명하기 위한 흐름도이다.11 is a flowchart for explaining an application registration method according to another embodiment of the present disclosure.

도 11를 참조하면, 동작 1110에서 전자장치(예: 전자 장치 100)의 프로세서 110은 어플리케이션의 등록 요청을 인식할 수 있다. 등록 요청에 반응하여 동작 1120에서 프로세서 120은 어플리케이션의 해시와 ID를 계산(calculate)할 수 있다. 동작 1130에서 프로세서 120은 접근 제어 테이블의 각 레코드들을 복호화할 수 있다. 동작 1140에서 프로세서 120은 계산된 값들(예: App1_ID, App1_hash)에 대응되는 레코드가 접근 제어 테이블에 존재하는지 여부를 판단할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하지 않으면, 동작 1150에서 프로세서 120은 계산된 값들을 암호화할 수 있다. 동작 1160에서 프로세서 120은 암호화된 값들을 해당 어플리케이션에 대한 레코드로써 접근 제어 테이블에 등록할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하면, 동작 1170에서 프로세서 120은 등록의 요청을 거부할 수 있다.Referring to FIG. 11, at operation 1110, processor 110 of an electronic device (e.g., electronic device 100) may recognize a registration request for an application. In operation 1120, in response to the registration request, the processor 120 may calculate the hash and ID of the application. At operation 1130, the processor 120 may decrypt each record in the access control table. At operation 1140, the processor 120 may determine whether a record corresponding to the calculated values (e.g., App1_ID, App1_hash) is present in the access control table. If a corresponding record is not present in the access control table, processor 120 may encrypt the computed values at operation 1150. In operation 1160, the processor 120 may register the encrypted values in the access control table as a record for the application. If a corresponding record is present in the access control table, at operation 1170 processor 120 may deny the registration request.

도 12은 본 개시의 일 실시예에 따른 어플리케이션 인증 방법을 설명하기 위한 흐름도이다.12 is a flowchart illustrating an application authentication method according to an embodiment of the present disclosure.

도 12을 참조하면, 동작 1210에서 프로세서 120은 자원에 대한 어플리케이션의 접근 요청을 인식할 수 있다. 접근 요청에 반응하여 동작 1220에서 프로세서 120은 어플리케이션의 해시와 ID를 계산(calculate)할 수 있다. 동작 1230에서 프로세서 120은 계산된 값들(예: App1_ID, App1_hash)에 대응되는 레코드가 접근 제어 테이블에 존재하는지 여부를 판단할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하면, 동작 1240에서 프로세서 120은 접근을 허용할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하지 않으면, 동작 1250에서 프로세서 120은 보안 경고할 수 있다.Referring to FIG. 12, at operation 1210, the processor 120 may recognize an application access request for resources. In operation 1220, in response to an access request, the processor 120 may calculate an application hash and an ID. At operation 1230, the processor 120 may determine whether a record corresponding to the calculated values (e.g., App1_ID, App1_hash) is present in the access control table. If a corresponding record is present in the access control table, processor 120 may grant access at operation 1240. If a corresponding record is not present in the access control table, then at operation 1250 processor 120 may issue a security warning.

도 13는 본 개시의 다른 실시예에 따른 어플리케이션 인증 방법을 설명하기 위한 흐름도이다.13 is a flowchart for explaining an application authentication method according to another embodiment of the present disclosure.

도 13를 참조하면, 동작 1310에서 프로세서 120은 자원에 대한 어플리케이션의 접근 요청을 인식할 수 있다. 접근 요청에 반응하여 동작 1320에서 프로세서 120은 어플리케이션의 해시와 ID를 계산(calculate)할 수 있다. 동작 1330에서 프로세서 120은 접근 제어 테이블의 각 레코드들을 복호화할 수 있다. 동작 1340에서 프로세서 120은 계산된 값들(예: App1_ID, App1_hash)에 대응되는 레코드가 접근 제어 테이블에 존재하는지 여부를 판단할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하면, 동작 1350에서 프로세서 120은 접근을 허용할 수 있다. 대응되는 레코드가 접근 제어 테이블에 존재하지 않으면, 동작 1360에서 프로세서 120은 보안 경고할 수 있다.Referring to FIG. 13, at operation 1310, the processor 120 may recognize an application access request for resources. In operation 1320, in response to an access request, the processor 120 may calculate the hash and ID of the application. At operation 1330, the processor 120 may decrypt each record in the access control table. At operation 1340, the processor 120 may determine whether a record corresponding to the computed values (e.g., App1_ID, App1_hash) is present in the access control table. If a corresponding record is present in the access control table, processor 120 may grant access at operation 1350. If a corresponding record is not present in the access control table, processor 120 may issue a security alert at operation 1360.

도 14은 본 개시의 일 실시예에 따른 어플리케이션 등록 및 인증 방법을 설명하기 위한 도면이다.14 is a diagram for explaining an application registration and authentication method according to an embodiment of the present disclosure.

도 14을 참조하면, 접근 제어 모듈(예: 접근 제어 모듈 521)은 어플리케이션 1410의 전부 또는 일부 예컨대, 데이터 1411을 읽어 올 수 있다. 접근 제어 모듈은 데이터 1411을 비밀 키 1412를 이용하여 암호화(1413)할 수 있다. 접근 제어 모듈은 암호화된 데이터 1414를 어플리케이션 1410의 레코드로써 메모리 1415에 저장할 수 있다.Referring to FIG. 14, an access control module (e.g., access control module 521) may read all or a portion of application 1410, e.g., data 1411. The access control module may encrypt (1413) the data 1411 using the secret key 1412. The access control module may store the encrypted data 1414 in the memory 1415 as a record of the application 1410.

접근 제어 모듈은 지정된 해시 함수 1416을 이용하여 데이터 1411의 해시 값을 구하고, 비밀 키 1412를 이용하여 해시 값을 암호화(1417)할 수 있다. 접근 제어 모듈은 암호화된 해시 값(인증 태그 1418)을 어플리케이션 1410의 레코드로써 메모리 1415에 저장할 수 있다.The access control module may obtain the hash value of the data 1411 using the designated hash function 1416 and encrypt (1417) the hash value using the secret key 1412. The access control module may store the encrypted hash value (authentication tag 1418) in the memory 1415 as a record of the application 1410.

접근 제어 모듈은 인증 태그 1418을 이용하여, 어플리케이션의 변조 여부를 확인할 수 있다. 구체적으로, 접근 제어 모듈은 암호화된 데이터 1414를 메모리 1415에서 읽어 와, 비밀 키 1412를 이용하여 복호화(1419)할 수 있다. 또한 접근 제어 모듈은 인증 태그 1418을 메모리 1415에서 읽어 와, 비밀 키 1412를 이용하여 복호화(1420)할 수 있다. 암호화 및 복호화 방식에는 주지된 바와 같이, 대칭키 방식과 비대칭키 방식이 있다. 만약 데이터 1411및 해시 값이 비대칭키 방식으로 암호화되었다면, 암호화된 데이터 1414및 인증 태그 1418은 비밀 키 1412가 아닌, 특정 복호화 키로 복호화될 수도 있다.The access control module can check whether or not the application is tampered with using the authentication tag 1418. Specifically, the access control module may read the encrypted data 1414 from the memory 1415 and decrypt 1419 using the secret key 1412. The access control module may also read the authentication tag 1418 from the memory 1415 and decrypt 1420 using the secret key 1412. As is well known in the encryption and decryption methods, there are a symmetric key method and an asymmetric key method. If the data 1411 and the hash value are encrypted in an asymmetric key fashion, the encrypted data 1414 and the authentication tag 1418 may be decrypted with a specific decryption key rather than the secret key 1412.

접근 제어 모듈은 상기 해시 함수 1416을 이용하여, 복호화된 데이터 1421의 해시 값을 계산할 수 있다. 접근 제어 모듈은 계산된 해시 값과 복호화된 인증 태그 1418을 비교하여 동일 여부를 판단(1422)할 수 있다. 만약 동일하다면 접근 제어 모듈은 복호화된 데이터 1421가 정상적인 것으로 인식할 수 있다. 만약 동일하지 않다면 접근 제어 모듈은 복호화된 데이터 1421가 변조된 것으로 인식할 수 있다.The access control module may calculate the hash value of the decrypted data 1421 using the hash function 1416. [ The access control module may compare the calculated hash value with the decrypted authentication tag 1418 to determine 1422 whether it is the same. If they are the same, the access control module can recognize that the decrypted data 1421 is normal. If not, the access control module can recognize that the decrypted data 1421 is modulated.

다른 실시예에 따르면, 전자 장치를 통해 인증하는 방법은 휘발성 메모리를 포함하는 전자 장치의 프로세서에 의하여, 상기 휘발성 메모리를 제 1 영역(예: 비신뢰 환경) 및 제 2 영역(예 : 신뢰 환경)으로 설정하는 동작으로서, 상기 제 2 영역(예: 신뢰 환경)은 상기 제 1 영역보다 보안이 더 강화된 동작, 상기 프로세서에 의하여, 상기 제 2영역 내에 하드웨어 또는 펌웨어로부터 인출된 제 1 정보(예: 비밀 키)를 임시적으로 저장하는 동작, 상기 프로세서에 의하여, 상기 제 2 영역 내에 제 2 정보(예: 추가적인 파일(additional files), 정적 컨텐츠(static content), 어플리케이션 코드(code), UI 스트링(user interface strings), 애니메이션 명령(animation instructions), 어플리케이션 데이터, 연락처(contact), 이미지, 비밀번호, 텍스트, 동영상, 컨텐츠 중 적어도 하나)를 임시적으로 저장하는 동작, 상기 프로세서에 의하여, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근 요청을 인식하는 동작, 및 상기 프로세서에 의하여, 상기 제 2 영역 내에서 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 인증하는 동작을 포함할 수 있다. 상기 인증하는 동작은, 상기 어플리케이션 프로그램의 적어도 일부의 데이터를 고정된 길이의 데이터로 매핑하는 동작을 포함할 수 있다. 상기 인증하는 동작은 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 생성된 제 1 해시(Hash)값 및 이미 계산된 제 2 해시(Hash)값을 비교하여 인증하는 동작을 포함할 수 있다. 상기 인증하는 동작은 상기 제 1 정보를 이용하여 상기 제 2 해시 값을 획득하는 동작을 포함할 수 있다. 상기 어플리케이션 프로그램의 상기 제 1 해시 값을 생성하는 동작은, 상기 어플리케이션프로그램의 코드 및/또는 정적(static) 데이터를 이용하여 생성하는 동작을 포함할 수 있다. 상기 인증하는 동작은 비휘발성 저장 장치에서 상기 제 2 해시 값을 포함하는 데이터를 상기 제 2 영역으로 임시적으로 인출하는 동작을 포함할 수 있다. 상기 인증하는 동작은 상기 어플리케이션의 식별 정보를 이용하는 동작을 포함할 수 있다. 상기 인증하는 동작은 상기 어플리케이션 프로그램의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시값을 암호화한 인증 태그를 이용하는 동작을 포함할 수 있다. 상기 인증하는 동작에 기반하여, 상기 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근을 허용하는 동작을 포함할 수 있다. According to another embodiment, a method for authenticating via an electronic device is provided by a processor of an electronic device including a volatile memory, wherein the volatile memory is coupled to a first region (e.g., an untrusted environment) and a second region (e.g., (E. G., A trusted environment) is more secure than the first area, and the first information (e.g., trusted environment) retrieved from the hardware or firmware in the second area by the processor Temporarily storing second information (e.g., additional files, static content, application code, UI string, etc.) in the second area by the processor, user interface strings, animation instructions, application data, contacts, images, passwords, text, video, and content) Storing, by the processor, an access request for the second information of an application program temporarily stored in the first area; and, by the processor, determining, by the processor, And authenticating by using a part thereof. The authenticating operation may include mapping data of at least a portion of the application program to data of a fixed length. The authenticating operation may include comparing and authenticating a first hash value generated using at least a portion of the application program and an already calculated second hash value. The authenticating operation may include using the first information to obtain the second hash value. The operation of generating the first hash value of the application program may include an operation of generating using the code and / or static data of the application program. The authenticating operation may include temporarily fetching data in the non-volatile storage device into the second area including the second hash value. The authenticating operation may include using the identification information of the application. The authenticating operation may include using data that is encrypted at least a part of the application program and an authentication tag that encrypts the hash value of the data. And allowing access to the second information of the application program based on the authenticating operation.

다른 실시예에 따르면, 전자 장치를 통해 등록하는 방법은 휘발성 메모리를 포함하는 전자 장치의 프로세서에 의하여, 상기 휘발성 메모리를 제 1 영역(예: 비신뢰 환경) 및 제 2 영역(예: 신뢰 환경)으로 설정하는 동작으로서, 상기 제 2 영역은 상기 제 1 영역보다 보안이 더 강화된 동작, 상기 프로세서에 의하여, 상기 제 2영역 내에 하드웨어 또는 펌웨어로부터 인출된 제 1 정보(예: 비밀 키)를 임시적으로 저장하는 동작, 상기 프로세서에 의하여, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 적어도 일부를 이용하여 상기 어플리케이션 프로그램을 대표하는 데이터를 상기 제 2 영역 내에서 획득하는 동작, 상기 제 1 정보를 이용하여 상기 제 2 영역에서 상기 어플리케이션 프로그램을 대표하는 데이터를 암호화하는 동작; 상기 암호화된 어플리케이션 프로그램을 대표하는 데이터를 상기 전자장치의 비휘발성 저장 장치에 저장하는 동작을 포함할 수 있다. 상기 어플리케이션 프로그램을 대표하는 데이터를 획득하는 동작은, 상기 어플리케이션 프로그램의 적어도 일부의 데이터를 고정된 길이의 데이터로 매핑하는 동작을 포함할 수 있다. 그리고 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 획득한 상기 어플리케이션 프로그램을 대표하는 데이터 및 이미 계산된 제 2 해시(Hash) 값을 비교하는 동작을 더 포함할 수 있다. 상기 비교하는 동작은 상기 제 1 정보를 이용하여 상기 제 2 해시 값을 획득하는 동작을 포함할 수 있다. 상기 비교하는 동작은 상기 비휘발성 저장 장치에서 상기 제 2 해시 값을 포함하는 데이터를 상기 제 2 영역으로 임시적으로 인출하는 동작을 포함할 수 있다. 상기 어플리케이션 프로그램을 대표하는 데이터를 획득하는 동작은 상기 어플리케이션 프로그램의 코드 및/또는 정적(static) 데이터를 이용하여 상기 어플리케이션 프로그램을 대표하는 데이터를 생성하는 동작을 포함할 수 있다. 상기 저장하는 동작은 상기 어플리케이션 프로그램의 식별 정보를 암호화하여 저장하는 동작을 포함할 수 있다. 상기 저장하는 동작은 상기 제 2 영역에서 상기 어플리케이션 프로그램의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시값을 암호화한 인증 태그를 함께 저장하는 동작을 포함할 수 있다. According to another embodiment, a method of registering through an electronic device is provided by a processor of an electronic device including a volatile memory, wherein the volatile memory is coupled to a first area (e.g., an untrusted environment) and a second area (e.g., Wherein the second area is secured more securely than the first area, the first information (e.g., a secret key) fetched from the hardware or firmware in the second area by the processor is temporarily Obtaining, by the processor, data representative of the application program in the second area using at least a portion of the application program temporarily stored in the first area; Encrypting data representative of the application program in the second area; And storing data representative of the encrypted application program in a non-volatile storage of the electronic device. The act of obtaining data representative of the application program may include mapping at least a portion of the data of the application program to data of a fixed length. And comparing the data representing the application program acquired using at least a part of the application program and the already calculated second hash value. The comparing operation may include obtaining the second hash value using the first information. The comparing operation may include, in the non-volatile storage, temporarily fetching data including the second hash value into the second area. The operation of acquiring data representative of the application program may include generating data representative of the application program using code and / or static data of the application program. The storing operation may include encrypting and storing the identification information of the application program. The storing operation may include storing the data obtained by encrypting at least a part of the application program in the second area and the authentication tag enciphering the hash value of the data together.

상술한 바와 같은 본 개시에 따른 방법은 다양한 컴퓨터를 통하여 수행될 수 있는 프로그램 명령으로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 여기서 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 포함할 수 있다. 또한 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 또한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media)와, CD-ROM, DVD와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 롬(ROM)과, 램(RAM)과, 플래시 메모리 등과 같은 하드웨어가 포함될 수 있다. 또한 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다.The method according to the present disclosure as described above can be recorded in a computer-readable recording medium implemented with program instructions that can be executed through various computers. The recording medium may include a program command, a data file, a data structure, and the like. Also, the program instructions may be those specially designed and constructed for this disclosure or may be available to those skilled in the art of computer software. In addition, a recording medium includes a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical medium such as a CD-ROM and a DVD, and a magnetic optical medium such as a floppy disk. Hardware such as a magneto-optical medium, a ROM, a RAM, a flash memory, and the like may be included. The program instructions may also include machine language code such as those generated by the compiler, as well as high-level language code that may be executed by the computer using an interpreter or the like.

그리고 본 명세서와 도면에 개시된 실시 예들은 본 개시의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 따라서 본 개시의 범위는 여기에 개시된 실시 예들 이외에도 본 개시의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.It is to be understood that both the foregoing description and the following detailed description are exemplary and explanatory only and are not intended to limit the scope of the present disclosure. Accordingly, the scope of the present disclosure should be construed as being included within the scope of the present disclosure in addition to the embodiments disclosed herein, all changes or modifications derived from the technical idea of the present disclosure.

100, 102, 104 : 전자장치 110 : 버스
120 : 프로세서 130 : 메모리
131, 310 : 커널 132, 330 : 미들웨어
133, 360 : 어플리케이션 프로그래밍 인터페이스(API)
134, 370 : 어플리케이션 140 : 사용자 입력 모듈
150 : 디스플레이 모듈 160 : 통신 모듈
162 : 네트워크 164 : 서버
200 : 하드웨어 210 : 프로세서
211 : 어플리케이션 프로세서(AP)
213 : 커뮤니케이션 프로세서(CP)
214 : SIM 카드 220 : 메모리
222 : 내장메모리 224 : 외장메모리
230 : 통신 모듈 231 : 무선 통신 모듈
233 : Wi-Fi 234 : RF 모듈
235 : BT 237 : GPS
239 : NFC 240 : 센서 모듈
240A : 제스쳐 센서 240B : 자이로 센서
240C : 기압 센서 240D : 마그네틱 센서
240E : 가속도 센서 240F : 그립 센서
240G : 근접 센서 240H : RGB 센서
240I : 생체 센서 240J : 온/습도 센서
240K : 조도 센서 240M : UV 센서
250 : 사용자 모듈 252 : 터치 패널
254 : 펜 센서 256 : 키
258 : 울트라 소닉 260 : 디스플레이 모듈
262 : 패널 264 : 홀로그램
270 : 인터페이스 272 : HDMI
274 : USB 276 : 프로젝터
278 : D-SUB 280 : 오디오 코덱
282 : 스피커 284 : 리시버
286 : 이어폰 288 : 마이크
291 : 카메라 모듈 295 : 전력 관리 모듈
296 : 배터리 297 : 인디케이터
298 : 모터 300 : 프로그래밍 모듈
311 : 시스템 리소스 매니저 312 : 디바이스 드라이버
335 : 런타임 라이브러리 341 : 어플리케이션 매니저
342 : 윈도우 매니저 343 : 멀티미디어 매니저
344 : 리소스 매니저 345 : 파워 매니저
346 : 데이터베이스 매니저 347 : 패키지 매니저
348 : 연결 매니저 349 : 통지 매니저
350 : 위치 매니저 351 : 그래픽 매니저
352 : 보안 매니저 371 : 홈
372 : 다이얼러 373 : SMS/MMS
374 : IM 375 : 브라우저
376 : 카메라 377 : 알람
378 : 컨택트 379 : 음성다이얼
380 : 이메일 381 : 달력
382 : 미디어 플레이어 383 : 앨범
384 : 시계
100, 102, 104: electronic device 110: bus
120: processor 130: memory
131, 310: Kernel 132, 330: Middleware
133, 360: Application Programming Interface (API)
134, 370: application 140: user input module
150: Display module 160: Communication module
162: network 164: server
200: hardware 210: processor
211: Application processor (AP)
213: Communication Processor (CP)
214: SIM card 220: memory
222: internal memory 224: external memory
230: communication module 231: wireless communication module
233: Wi-Fi 234: RF module
235: BT 237: GPS
239: NFC 240: Sensor Module
240A: Gesture sensor 240B: Gyro sensor
240C: Pressure sensor 240D: Magnetic sensor
240E: Acceleration sensor 240F: Grip sensor
240G: Proximity sensor 240H: RGB sensor
240I: Biosensor 240J: On / Humidity sensor
240K: Light sensor 240M: UV sensor
250: user module 252: touch panel
254: pen sensor 256: key
258: Ultrasonic 260: Display Module
262: Panel 264: Hologram
270: Interface 272: HDMI
274: USB 276: Projector
278: D-SUB 280: Audio codec
282: Speaker 284: Receiver
286: earphone 288: microphone
291: Camera module 295: Power management module
296: Battery 297: Indicator
298: motor 300: programming module
311: System Resource Manager 312: Device Driver
335: Runtime Library 341: Application Manager
342: Window manager 343: Multimedia manager
344: Resource manager 345: Power manager
346: Database Manager 347: Package Manager
348: Connection manager 349: Notification manager
350: Location manager 351: Graphic manager
352: Security Manager 371: Home
372: Dialer 373: SMS / MMS
374: IM 375: Browser
376: Camera 377: Alarm
378: Contact 379: Voice dialing
380: Email 381: Calendar
382: Media Player 383: Album
384: Clock

Claims (53)

전자 장치에서 접근을 제어하는 방법에 있어서,
상기 전자장치의 프로세서가, 메모리의 제 1 영역에 포함된 어플리케이션으로부터 자원에 대한 접근 요청을 인식하는 동작;
상기 접근 요청에 반응하여, 상기 프로세서가 상기 메모리의 제 2 영역에 포함된 접근 제어 모듈을 실행하여 상기 어플리케이션의 해시 값을 계산하는 동작;
상기 프로세서가, 상기 접근 제어 모듈을 실행하여 상기 해시 값 및 상기 어플리케이션의 식별정보에 대응되는 레코드가 메모리에 존재하는지 여부를 판단하는 동작; 및
상기 프로세서가, 상기 대응되는 레코드가 상기 메모리에 존재할 경우 상기 자원에 대한 접근을 허용하는 동작을 포함하는 방법.
A method of controlling access in an electronic device,
The processor of the electronic device recognizing an access request for resources from an application included in a first area of memory;
In response to the access request, the processor executing an access control module included in a second area of the memory to calculate a hash value of the application;
The processor executing the access control module to determine whether a record corresponding to the hash value and the identification information of the application exists in the memory; And
Wherein the processor includes accessing the resource if the corresponding record is present in the memory.
제 1 항에 있어서,
상기 판단하는 동작은,
암호화되어 상기 제 1 영역에 저장된 레코드를 상기 제 2 영역에 포함된, 지정된 키로 해독하는 동작; 및
상기 해독된 레코드가 상기 해시 값 및 상기 식별정보에 대응되는지 여부를 판단하는 동작을 포함하고,
상기 제 2 영역은 상기 프로세서에 의해 접근의 인증이 필요한 영역인, 방법.
The method according to claim 1,
The determining operation may include:
Decrypting a record stored in the first area encrypted with a designated key included in the second area; And
Determining whether the decrypted record corresponds to the hash value and the identification information,
Wherein the second area is an area requiring authentication of access by the processor.
제 1 항에 있어서,
상기 메모리는 휘발성 메모리인 방법.
The method according to claim 1,
Wherein the memory is a volatile memory.
제 1 항에 있어서,
상기 자원에 대한 접근을 허용하는 동작은,
암호화되어 상기 제 2 영역에 저장된 자원을 상기 제 2 영역에 포함된, 지정된 키로 해독하는 동작; 및
상기 자원을 상기 어플리케이션으로 전달하는 동작을 포함하고,
상기 제 2 영역은 상기 프로세서에 의해 접근의 인증이 필요한 영역인, 방법.
The method according to claim 1,
The act of allowing access to the resource comprises:
Decrypting resources stored in the second area encrypted with a designated key included in the second area; And
Communicating the resource to the application,
Wherein the second area is an area requiring authentication of access by the processor.
제 1 항에 있어서,
상기 자원을 암호화하는 동작;
상기 자원의 제 1 해시 값을 계산하여, 지정된 키로 암호화하는 동작; 및
상기 암호화된 자원과 상기 암호화된 제 1 해시 값을 저장하는 동작을 더 포함하고,
상기 자원에 대한 접근을 허용하는 동작은,
상기 암호화된 자원을 상기 키로 복호화하여 제 2 해시 값을 계산하는 동작과,
상기 암호화된 제 1 해시 값을 상기 키로 복호화하는 동작과,
상기 제 2 해시 값이 상기 제 1 해시 값과 동일한 경우 상기 자원에 대한 접근을 허용하는 동작을 포함하고,
상기 키는 상기 프로세서에 의해 접근의 인증이 필요한 메모리의 영역에 저장되는, 방법.
The method according to claim 1,
Encrypting the resource;
Calculating a first hash value of the resource and encrypting the first hash value with a designated key; And
Further comprising storing the encrypted resource and the encrypted first hash value,
The act of allowing access to the resource comprises:
Decrypting the encrypted resource with the key to calculate a second hash value;
Decrypting the encrypted first hash value with the key,
And allowing access to the resource if the second hash value is equal to the first hash value,
Wherein the key is stored in an area of memory that requires authentication of access by the processor.
제 1 항에 있어서,
상기 해시 값을 계산하는 동작은,
상기 어플리케이션의 이진 경로, 상기 어플리케이션의 코드 및 상기 어플리케이션의 정적 데이터 중 적어도 하나의 해시 값을 계산하는 동작을 포함하는 방법.
The method according to claim 1,
The operation of calculating the hash value includes:
Calculating a hash value of at least one of a binary path of the application, a code of the application, and static data of the application.
제 1 항에 있어서,
상기 식별 정보는,
상기 어플리케이션의 이진 경로 및 상기 어플리케이션과 관련하여 저장된 정보 중에서 적어도 하나로부터 구성된, 방법.
The method according to claim 1,
Wherein,
A binary path of the application, and information stored in association with the application.
제 1 항에 있어서,
상기 대응되는 레코드가 상기 메모리에 존재하지 않는 경우 경고 메시지를 출력하는 동작을 더 포함하는 방법.
The method according to claim 1,
And outputting a warning message if the corresponding record is not present in the memory.
제 1 항에 있어서,
상기 프로세서가, 제 2어플리케이션으로부터 등록 요청을 인식하는 동작;
상기 등록 요청에 반응하여, 상기 제 2 어플리케이션의 제 2 해시 값을 계산하는 동작;
상기 제 2 해시 값 및 상기 제 2 어플리케이션의 식별 정보에 대응되는 레코드가 상기 메모리에 존재하는지 여부를 판단하는 동작; 및
상기 제 2 해시 값 및 상기 제 2 어플리케이션의 식별 정보에 대응되는 레코드가 상기 메모리에 존재하지 않는 경우 상기 제 2 해시 값 및 상기 제 2 어플리케이션의 식별 정보를 저장하는 동작을 더 포함하는 방법.
The method according to claim 1,
The processor recognizing a registration request from a second application;
In response to the registration request, calculating a second hash value of the second application;
Determining whether a record corresponding to the second hash value and the identification information of the second application exists in the memory; And
Storing the second hash value and the identification information of the second application when a record corresponding to the second hash value and the identification information of the second application is not present in the memory.
제 1 영역과 제 2 영역으로 구분되는 제 1 메모리;
어플리케이션의 해시 값 및 식별 정보를 포함하는 접근 제어 테이블 및 자원에 대한 상기 어플리케이션의 접근 제어를 위한 레코드를 저장하는 제 2 메모리;
상기 접근 제어 모듈을 상기 제 1 영역으로 로드하고 상기 레코드를 상기 제 1 영역 또는 제 2 영역으로 로드하는 프로세서를 포함하고,
상기 제 1 영역으로 로드된 접근 제어 모듈은, 상기 프로세서에 의하여,
상기 어플리케이션으로부터 자원에 대한 접근 요청에 반응하여, 상기 어플리케이션의 해시 값을 계산하는 동작과, 상기 해시 값 및 상기 어플리케이션의 식별정보에 대응되는 레코드가 상기 제 1 메모리에 존재하는지 여부를 판단하는 동작; 및 상기 대응되는 레코드가 상기 제 1 메모리에 존재할 경우 상기 자원에 대한 접근을 허용하는 동작을 수행하도록 설정된, 전자 장치.
A first memory divided into a first area and a second area;
A second memory for storing a record for access control of the application to the access control table and the resource including the hash value and identification information of the application;
And a processor for loading the access control module into the first area and loading the record into the first area or the second area,
Wherein the access control module loaded into the first area,
Calculating a hash value of the application in response to a resource access request from the application; determining whether a record corresponding to the hash value and identification information of the application exists in the first memory; And to permit access to the resource if the corresponding record is present in the first memory.
제 10 항에 있어서,
상기 판단하는 동작은,
암호화되어 상기 제 1 영역에 저장된 레코드를 상기 제 2 영역에 포함된, 지정된 키로 해독하는 동작; 및
상기 해독된 레코드가 상기 해시 값 및 상기 식별정보에 대응되는지 여부를 판단하는 동작을 포함하고,
상기 제 2 영역은 접근의 인증이 필요한 영역인, 전자 장치.
11. The method of claim 10,
The determining operation may include:
Decrypting a record stored in the first area encrypted with a designated key included in the second area; And
Determining whether the decrypted record corresponds to the hash value and the identification information,
Wherein the second area is an area requiring authentication of access.
제 11 항에 있어서,
상기 제 1 메모리는 휘발성 메모리인, 전자 장치.
12. The method of claim 11,
Wherein the first memory is a volatile memory.
제 10 항에 있어서,
상기 자원에 대한 접근을 허용하는 동작은,
암호화되어 상기 제 1 영역에 저장된 자원을 상기 제 2 영역에 포함된, 지정된 키로 해독하는 동작; 및
상기 자원을 상기 어플리케이션으로 전달하는 동작을 포함하고,
상기 제 2 영역은 접근의 인증이 필요한 영역인, 전자 장치.
11. The method of claim 10,
The act of allowing access to the resource comprises:
Decrypting resources stored in the first area encrypted with a designated key included in the second area; And
Communicating the resource to the application,
Wherein the second area is an area requiring authentication of access.
제 10 항에 있어서,
상기 프로세서는,
상기 제 1 메모리를 제 1 영역 및 제 2 영역으로 분류하고,
제 3 메모리에 저장된, 복호화를 위한 키를 상기 제 2 영역으로 로드하는,
전자 장치.
11. The method of claim 10,
The processor comprising:
Classifying the first memory into a first area and a second area,
Loading a key for decryption, stored in a third memory, into the second area,
Electronic device.
제 10 항에 있어서,
상기 접근 제어 모듈은,
상기 자원을 암호화하는 동작;
상기 자원의 제 1 해시 값을 계산하여, 지정된 키로 암호화하는 동작; 및
상기 암호화된 자원과 상기 암호화된 제 1 해시 값을 저장하는 동작을 수행하도록 더 설정되고,
상기 자원에 대한 접근을 허용하는 동작은,
상기 암호화된 자원을 상기 키로 복호화하여 제 2 해시 값을 계산하는 동작과,
상기 암호화된 제 1 해시 값을 상기 키로 복호화하는 동작과,
상기 제 2 해시 값이 상기 제 1 해시 값과 동일한 경우 상기 자원에 대한 접근을 허용하는 동작을 포함하고,
상기 키는 상기 제 1 메모리의 영역들 중 접근의 인증이 필요한 영역에 저장되는, 전자 장치.
11. The method of claim 10,
Wherein the access control module comprises:
Encrypting the resource;
Calculating a first hash value of the resource and encrypting the first hash value with a designated key; And
Further configured to perform the operation of storing the encrypted resource and the encrypted first hash value,
The act of allowing access to the resource comprises:
Decrypting the encrypted resource with the key to calculate a second hash value;
Decrypting the encrypted first hash value with the key,
And allowing access to the resource if the second hash value is equal to the first hash value,
Wherein the key is stored in an area of the first memory requiring authentication of the access.
제 10 항에 있어서,
상기 해시 값을 계산하는 동작은,
상기 어플리케이션의 이진 경로, 상기 어플리케이션의 코드 및 상기 어플리케이션의 정적 데이터 중 적어도 하나의 해시 값을 계산하는 동작을 포함하는 전자 장치.
11. The method of claim 10,
The operation of calculating the hash value includes:
Calculating a hash value of at least one of a binary path of the application, a code of the application, and static data of the application.
제 10 항에 있어서,
상기 식별 정보는,
상기 어플리케이션의 이진 경로 및 상기 어플리케이션과 관련하여 저장된 정보 중에서 적어도 하나로부터 구성된, 전자 장치.
11. The method of claim 10,
Wherein,
A binary path of the application, and information stored in association with the application.
제 10 항에 있어서,
상기 접근 제어 모듈은,
상기 대응되는 레코드가 상기 제 1 메모리에 존재하지 않는 경우 경고 메시지를 출력하는 동작을 더 수행하도록 설정된, 전자 장치.
11. The method of claim 10,
Wherein the access control module comprises:
And to output a warning message if the corresponding record is not present in the first memory.
제 10 항에 있어서,
상기 접근 제어 모듈은,
제 2어플리케이션으로부터 등록 요청을 인식하는 동작;
상기 등록 요청에 반응하여, 상기 제 2 어플리케이션의 제 2 해시 값을 계산하는 동작;
상기 제 2 해시 값 및 상기 제 2 어플리케이션의 식별 정보에 대응되는 레코드가 상기 제 1 메모리에 존재하는지 여부를 판단하는 동작; 및
상기 제 2 해시 값 및 상기 제 2 어플리케이션의 식별 정보에 대응되는 레코드가 상기 제 1 메모리에 존재하지 않는 경우 상기 제 2 해시 값 및 상기 제 2 어플리케이션의 식별 정보를 저장하는 동작을 더 수행하도록 설정된, 전자 장치.
11. The method of claim 10,
Wherein the access control module comprises:
Recognizing a registration request from a second application;
In response to the registration request, calculating a second hash value of the second application;
Determining whether a record corresponding to the second hash value and the identification information of the second application exists in the first memory; And
Storing the second hash value and the identification information of the second application when a record corresponding to the second hash value and the identification information of the second application is not present in the first memory, Electronic device.
전자 장치를 동작하는 방법에 있어서,
휘발성 메모리를 포함하는 전자 장치의 프로세서에 의하여, 상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하는 동작으로서, 상기 제 2 영역은 상기 제 1 영역보다 보안이 더 강화된 동작;
상기 프로세서에 의하여, 상기 제 2영역 내에 하드웨어 또는 펌웨어로부터 인출된 제 1 정보를 임시적으로 저장하는 동작;
상기 프로세서에 의하여, 상기 제 2 영역 내에 제 2 정보를 임시적으로 저장하는 동작;
상기 프로세서에 의하여, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근 요청을 인식하는 동작; 및
상기 프로세서에 의하여, 상기 제 2 영역 내에서 상기 어플리케이션 프로그램의 적어도 일부를 이용하여 인증하는 동작을 포함하는 것을 특징으로 하는 방법.
A method of operating an electronic device,
An operation for setting the volatile memory as a first area and a second area by a processor of an electronic device including a volatile memory, the second area being more secure than the first area;
Temporarily storing first information fetched from the hardware or firmware in the second area by the processor;
Temporarily storing second information in the second area by the processor;
Recognizing, by the processor, an access request for the second information of an application program temporarily stored in the first area; And
And authenticating, by the processor, using at least a portion of the application program in the second region.
제 20 항에 있어서,
상기 인증하는 동작은,
상기 어플리케이션프로그램의 적어도 일부의 데이터를 고정된 길이의 데이터로 매핑하는 동작을 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
The authenticating operation includes:
And mapping at least a portion of the data of the application program to data of a fixed length.
제 20항에 있어서,
상기 인증하는 동작은,
상기 어플리케이션 프로그램의 적어도 일부를 이용하여 생성된 제 1 해시(Hash)값 및 이미 계산된 제 2 해시(Hash)값을 비교하여 인증하는 동작을 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
The authenticating operation includes:
And comparing and authenticating a first hash value generated using at least a portion of the application program and an already calculated second hash value.
제 20 항에 있어서,
상기 제 2 정보는 추가적인 파일(additional files), 정적 컨텐츠(static content), 어플리케이션 코드(code), UI 스트링(user interface strings), 애니메이션 명령(animation instructions), 어플리케이션 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Characterized in that the second information comprises at least one of additional files, static content, application code, UI interface strings, animation instructions, Lt; / RTI >
제 20 항에 있어서,
상기 제 2 정보는 연락처(contact), 이미지, 비밀번호, 텍스트, 동영상, 컨텐츠 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Wherein the second information includes at least one of a contact, an image, a password, text, a moving picture, and contents.
제 20 항에 있어서,
상기 인증하는 동작은 상기 제 1 정보를 이용하여 상기 제 2 해시 값을 획득하는 동작을 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Wherein the authenticating comprises using the first information to obtain the second hash value.
제 22 항에 있어서,
상기 어플리케이션 프로그램의 상기 제 1 해시 값을 생성하는 동작은,
상기 어플리케이션프로그램의 코드 및/또는 정적(static) 데이터를 이용하여 생성하는 동작을 포함하는 것을 특징으로 하는 방법.
23. The method of claim 22,
Wherein the generating of the first hash value of the application program comprises:
Using the code and / or static data of the application program.
제 20 항에 있어서,
상기 인증하는 동작은 비휘발성 저장 장치에서 상기 제 2 해시 값을 포함하는 데이터를 상기 제 2 영역으로 임시적으로 인출하는 동작을 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Wherein the authenticating comprises temporarily fetching data in the non-volatile storage device into the second area that includes the second hash value.
제 20 항에 있어서,
상기 인증하는 동작은 상기 어플리케이션프로그램의 식별 정보를 이용하는 동작을 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Wherein the authenticating operation includes using the identification information of the application program.
제 20 항에 있어서,
상기 인증하는 동작은 상기 어플리케이션프로그램의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시 값을 암호화한 인증 태그를 이용하는 동작을 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Wherein the authenticating operation comprises using data that is encrypted at least a portion of the application program and an authentication tag that encrypts the hash value of the data.
제 20 항에 있어서,
상기 프로세서에 의하여, 상기 인증하는 동작에 기반하여 상기 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근을 허용하는 동작을 더 포함하는 것을 특징으로 하는 방법.
21. The method of claim 20,
Further comprising, by the processor, allowing access to the second information of the application program based on the authenticating operation.
전자 장치를 동작하는 방법에 있어서,
휘발성 메모리를 포함하는 전자 장치의 프로세서에 의하여, 상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하는 동작으로서, 상기 제 2 영역은 상기 제 1 영역보다 보안이 더 강화된 동작;
상기 프로세서에 의하여, 상기 제 2영역 내에 하드웨어 또는 펌웨어로부터 인출된 제 1 정보를 임시적으로 저장하는 동작;
상기 프로세서에 의하여, 상기 제 1 영역 내에 임시적으로 저장된 어플리케이션프로그램의 적어도 일부를 이용하여 상기 어플리케이션프로그램을 대표하는 데이터를 상기 제 2 영역 내에서 획득하는 동작;
상기 제 1 정보를 이용하여 상기 제 2 영역에서 상기 어플리케이션 프로그램을 대표하는 데이터를 암호화하는 동작;
상기 암호화된 상기 어플리케이션 프로그램을 대표하는 데이터를 상기 전자장치의 비휘발성 저장 장치에 저장하는 동작을 포함하는 것을 특징으로 하는 방법.
A method of operating an electronic device,
An operation for setting the volatile memory as a first area and a second area by a processor of an electronic device including a volatile memory, the second area being more secure than the first area;
Temporarily storing first information fetched from the hardware or firmware in the second area by the processor;
Obtaining, by the processor, data representative of the application program in the second area using at least a portion of the application program temporarily stored in the first area;
Encrypting data representing the application program in the second area using the first information;
And storing the data representative of the encrypted application program in a non-volatile storage of the electronic device.
제 31 항에 있어서,
상기 어플리케이션 프로그램을 대표하는 데이터를 획득하는 동작은, 상기 어플리케이션프로그램의 적어도 일부의 데이터를 고정된 길이의 데이터로 매핑하는 동작을 포함하는 것을 특징으로 하는 방법.
32. The method of claim 31,
Wherein the act of obtaining data representative of the application program comprises mapping data of at least a portion of the application program to data of a fixed length.
제 31 항에 있어서,
상기 어플리케이션프로그램의 적어도 일부를 이용하여 획득한 상기 어플리케이션 프로그램을 대표하는 데이터 및 이미 계산된 제 2 해시(Hash) 값을 비교하는 동작을 더 포함하는 것을 특징으로 하는 방법.
32. The method of claim 31,
Further comprising: comparing data that is representative of the application program obtained using at least a portion of the application program and a previously calculated second hash value.
제 33 항에 있어서,
상기 비교하는 동작은 상기 제 1 정보를 이용하여 상기 제 2 해시 값을 획득하는 동작을 더 포함하는 것을 특징으로 하는 방법.
34. The method of claim 33,
Wherein the comparing operation further comprises obtaining the second hash value using the first information.
제 33 항에 있어서,
상기 비교하는 동작은 상기 비휘발성 저장 장치에서 상기 제 2 해시 값을 포함하는 데이터를 상기 제 2 영역으로 임시적으로 인출하는 동작을 포함하는 것을 특징으로 하는 방법.
34. The method of claim 33,
Wherein the comparing comprises temporarily fetching data in the non-volatile storage device into the second area, the data including the second hash value.
제 31 항에 있어서,
상기 어플리케이션 프로그램을 대표하는 데이터를 획득하는 동작은 상기 어플리케이션프로그램의 코드 및/또는 정적(static) 데이터를 이용하여 상기 어플리케이션 프로그램을 대표하는 데이터를 생성하는 동작을 포함하는 것을 특징으로 하는 방법.
32. The method of claim 31,
Wherein the act of obtaining data representative of the application program comprises generating data representative of the application program using code and / or static data of the application program.
제 31 항에 있어서,
상기 저장하는 동작은 상기 어플리케이션의 식별 정보를 암호화하여 저장하는 동작을 포함하는 것을 특징으로 하는 방법.
32. The method of claim 31,
Wherein the act of storing comprises encrypting and storing identification information of the application.
제 31 항에 있어서,
상기 저장하는 동작은 상기 제 2 영역에서 상기 어플리케이션 프로그램의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시값을 암호화한 인증 태그를 함께 저장하는 동작을 포함하는 것을 특징으로 하는 방법.
32. The method of claim 31,
Wherein the act of storing includes storing data together with at least a portion of the application program encrypted in the second region and an authentication tag encrypted with the hash value of the data.
전자 장치에 있어서,
휘발성 메모리;
비휘발성 저장 장치;
하드웨어 저장 장치;
프로세서를 포함하며,
상기 프로세서는,
상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하고,
상기 제 2 영역 내에 상기 하드웨어 저장 장치로부터 인출된 제 1 정보를 임시적으로 저장하며.
상기 제 2 영역 내에 제 2 정보를 임시적으로 저장하고,
상기 제 1 영역 내에 임시적으로 저장된 어플리케이션프로그램의 상기 제 2 정보에 대한 접근 요청을 인식하여,
상기 제 2 영역 내에서 상기 어플리케이션프로그램의 적어도 일부를 이용하여 인증하는 것을 소프트웨어 적으로 수행하도록 구성된 전자 장치.
In an electronic device,
Volatile memory;
Nonvolatile storage;
Hardware storage;
≪ / RTI >
The processor comprising:
Setting the volatile memory as a first area and a second area,
Temporarily storing first information fetched from the hardware storage device in the second area;
Temporarily storing second information in the second area,
Recognizing an access request for the second information of an application program temporarily stored in the first area,
And perform authentication using at least a part of the application program in the second area.
제 39 항에 있어서,
상기 프로세서는,
상기 어플리케이션 프로그램의 적어도 일부의 데이터를 고정된 길이의 데이터로 매핑하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
And map data of at least a part of the application program to data of a fixed length.
제 39항에 있어서,
상기 프로세서는,
상기 어플리케이션 프로그램의 적어도 일부를 이용하여 생성된 제 1 해시(Hash)값 및 이미 계산된 제 2 해시(Hash)값을 비교하여 인증하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
And compare the first hash value generated using at least a part of the application program with the already calculated second hash value.
제 39 항에 있어서,
상기 제 2 정보는 추가적인 파일(additional files), 정적 컨텐츠(static content), 어플리케이션 코드(code), UI 스트링(user interface strings), 애니메이션 명령(animation instructions), 어플리케이션 데이터 중 적어도 하나를 포함하는 전자 장치.
40. The method of claim 39,
Wherein the second information comprises at least one of additional files, static content, application code, UI interface strings, animation instructions, .
제 39 항에 있어서,
상기 제 2 정보는 연락처(contact), 이미지, 비밀번호, 텍스트, 동영상, 컨텐츠 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
40. The method of claim 39,
Wherein the second information includes at least one of a contact, an image, a password, text, a moving picture, and contents.
제 39 항에 있어서,
상기 프로세서는,
상기 제 1 정보를 이용하여 상기 제 2 해시 값을 획득하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
And to obtain the second hash value using the first information.
제 41 항에 있어서,
상기 프로세서는,
상기 어플리케이션 프로그램의 코드 및/또는 정적(static) 데이터를 이용하여 상기 제 1 해시 값을 생성하도록 구성된 전자 장치.
42. The method of claim 41,
The processor comprising:
And generate the first hash value using code and / or static data of the application program.
제 39 항에 있어서,
상기 프로세서는,
상기 비휘발성 저장 장치에서 상기 제 2 해시 값을 포함하는 데이터를 상기 제 2 영역으로 임시적으로 인출하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
And temporarily fetch data including the second hash value in the non-volatile storage device into the second area.
제 39 항에 있어서,
상기 프로세서는,
상기 어플리케이션 프로그램의 식별 정보를 이용하여 상기 인증을 수행하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
And to perform the authentication using the identification information of the application program.
제 39 항에 있어서,
상기 프로세서는,
상기 어플리케이션 프로그램의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시값을 암호화한 인증 태그를 이용하여 상기 인증을 수행하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
And to perform the authentication using data that is encrypted at least a part of the application program and an authentication tag that encrypts the hash value of the data.
제 39 항에 있어서,
상기 프로세서는,
상기 휘발성 메모리를 제 1 영역 및 제 2 영역으로 설정하고,
상기 제 2영역 내에 상기 하드웨어 저장 장치로부터 인출된 제 1 정보를 임시적으로 저장하고,
상기 제 1 영역 내에 임시적으로 저장된 어플리케이션 프로그램의 적어도 일부를 이용하여 상기 어플리케이션 프로그램을 대표하는 데이터를 상기 제 2 영역 내에서 획득하고,
상기 제 1 정보를 이용하여 상기 제 2 영역에서 상기 어플리케이션 프로그램을 대표하는 데이터를 암호화하고,
상기 암호화된 어플리케이션 프로그램을 대표하는 데이터를 상기 비휘발성 저장 장치에 저장하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
Setting the volatile memory as a first area and a second area,
Temporarily storing first information fetched from the hardware storage device in the second area,
Acquiring data representative of the application program in the second area using at least a part of the application program temporarily stored in the first area,
Encrypting data representing the application program in the second area using the first information,
And store data representing the encrypted application program in the non-volatile storage device.
제 49 항에 있어서,
상기 프로세서는,
상기 어플리케이션 프로그램의 적어도 일부를 이용하여 획득한 상기 어플리케이션 프로그램을 대표하는 데이터 및 이미 계산된 제 2 해시(Hash) 값을 비교하도록 구성된 전자 장치.
50. The method of claim 49,
The processor comprising:
And compare the already calculated second hash value with data representing the application program obtained using at least a portion of the application program.
제 49 항에 있어서,
상기 프로세서는,
상기 어플리케이션 프로그램의 식별 정보를 암호화하여 저장하도록 구성된 전자 장치.
50. The method of claim 49,
The processor comprising:
And to encrypt and store the identification information of the application program.
제 49 항에 있어서,
상기 프로세서는,
상기 제 2 영역에서 상기 어플리케이션 프로그램의 적어도 일부를 암호화한 데이터 및 상기 데이터의 해시값을 암호화한 인증 태그를 함께 저장하도록 구성된 전자 장치.
50. The method of claim 49,
The processor comprising:
And to store, together with the encrypted data, at least a part of the application program in the second area and an authentication tag which encrypts the hash value of the data.
제 39 항에 있어서,
상기 프로세서는,
상기 인증에 기반하여 상기 어플리케이션 프로그램의 상기 제 2 정보에 대한 접근을 허용하도록 구성된 전자 장치.
40. The method of claim 39,
The processor comprising:
And to allow access to the second information of the application program based on the authentication.
KR1020140023825A 2013-03-13 2014-02-28 Application access control method and electronic device implementing the same KR102180529B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/205,842 US9407642B2 (en) 2013-03-13 2014-03-12 Application access control method and electronic apparatus implementing the same
US15/200,909 US10078599B2 (en) 2013-03-13 2016-07-01 Application access control method and electronic apparatus implementing the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361779220P 2013-03-13 2013-03-13
US61/779,220 2013-03-13

Publications (2)

Publication Number Publication Date
KR20140112399A true KR20140112399A (en) 2014-09-23
KR102180529B1 KR102180529B1 (en) 2020-11-19

Family

ID=51779968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140023825A KR102180529B1 (en) 2013-03-13 2014-02-28 Application access control method and electronic device implementing the same

Country Status (1)

Country Link
KR (1) KR102180529B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160036414A (en) * 2014-09-25 2016-04-04 삼성전자주식회사 Processing Secure Data
WO2018117747A1 (en) * 2016-12-22 2018-06-28 Samsung Electronics Co., Ltd. Electronic device, method for controlling thereof and computer-readable recording medium
US10320786B2 (en) 2015-09-14 2019-06-11 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling the same
US10546126B2 (en) 2016-06-28 2020-01-28 Samsung Electronics Co., Ltd. Method for detecting the tampering of application code and electronic device supporting the same
KR20200012133A (en) * 2018-07-26 2020-02-05 삼성전자주식회사 Electronic apparatus for supporting user input and controlling method thereof
WO2023003233A1 (en) * 2021-07-23 2023-01-26 삼성전자 주식회사 Electronic device and method for operating same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100126478A (en) * 2008-03-04 2010-12-01 애플 인크. System and method of authorizing execution of software code based on accessible entitlements
KR20120057873A (en) * 2010-11-29 2012-06-07 인포섹(주) Apparatus for protecting information associated with security of mobile terminal and method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100126478A (en) * 2008-03-04 2010-12-01 애플 인크. System and method of authorizing execution of software code based on accessible entitlements
KR20120057873A (en) * 2010-11-29 2012-06-07 인포섹(주) Apparatus for protecting information associated with security of mobile terminal and method thereof

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160036414A (en) * 2014-09-25 2016-04-04 삼성전자주식회사 Processing Secure Data
US10320786B2 (en) 2015-09-14 2019-06-11 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling the same
US10546126B2 (en) 2016-06-28 2020-01-28 Samsung Electronics Co., Ltd. Method for detecting the tampering of application code and electronic device supporting the same
WO2018117747A1 (en) * 2016-12-22 2018-06-28 Samsung Electronics Co., Ltd. Electronic device, method for controlling thereof and computer-readable recording medium
KR20200012133A (en) * 2018-07-26 2020-02-05 삼성전자주식회사 Electronic apparatus for supporting user input and controlling method thereof
US11372498B2 (en) 2018-07-26 2022-06-28 Samsung Electronics Co., Ltd. Electronic device for supporting user input and control method of electronic device
WO2023003233A1 (en) * 2021-07-23 2023-01-26 삼성전자 주식회사 Electronic device and method for operating same

Also Published As

Publication number Publication date
KR102180529B1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
US10078599B2 (en) Application access control method and electronic apparatus implementing the same
EP3108613B1 (en) Method and apparatus for authenticating client credentials
US10846696B2 (en) Apparatus and method for trusted execution environment based secure payment transactions
US10237269B2 (en) Method of providing information security and electronic device thereof
US10073985B2 (en) Apparatus and method for trusted execution environment file protection
KR102216877B1 (en) Authentication method and apparatus based on biometric information in a electronic device
US10242167B2 (en) Method for user authentication and electronic device implementing the same
US9891969B2 (en) Method and apparatus for device state based encryption key
US10200201B2 (en) Method for application installation, electronic device, and certificate system
KR20150128202A (en) Content sharing method and apparatus
KR102180529B1 (en) Application access control method and electronic device implementing the same
KR20150022276A (en) Apparatas and method for extravting a encrypted message of image file in an electronic device
US20150244724A1 (en) Service authorization methods and apparatuses
US20170201378A1 (en) Electronic device and method for authenticating identification information thereof
US20140258734A1 (en) Data security method and electronic device implementing the same
US9614673B2 (en) Method of managing keys and electronic device adapted to the same
CN106250770B (en) Electronic device and method for encrypting content
CN110084035B (en) Electronic device and method for suggesting a response guide when a rejection occurs
KR20180046149A (en) Electronic apparatus and method for performing authentication
KR20150098075A (en) Method for inputting/outputting security information and Electronic device using the same
US20150121474A1 (en) Processor security authentication area
KR20140114263A (en) Application authentication method and electronic device implementing the same
KR20170059082A (en) File operation processing method and electronic device supporting the same
KR102348217B1 (en) Method and apparatus for controlling the security screen in electronic device
US20150220720A1 (en) Electronic device and method for controlling access to given area thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant