KR20180060876A - Processor and control method thereof - Google Patents
Processor and control method thereof Download PDFInfo
- Publication number
- KR20180060876A KR20180060876A KR1020170012897A KR20170012897A KR20180060876A KR 20180060876 A KR20180060876 A KR 20180060876A KR 1020170012897 A KR1020170012897 A KR 1020170012897A KR 20170012897 A KR20170012897 A KR 20170012897A KR 20180060876 A KR20180060876 A KR 20180060876A
- Authority
- KR
- South Korea
- Prior art keywords
- thread
- program
- security
- access
- security process
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000000903 blocking effect Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 239000002041 carbon nanotube Substances 0.000 description 1
- 229910021393 carbon nanotube Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002159 nanocrystal Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 프로세서 및 그 제어방법에 관한 것으로, 보다 구체적으로 프로그램의 보안 데이터를 보호하기 위한 프로세서 및 그 제어방법에 관한 것이다.The present invention relates to a processor and a control method thereof, and more particularly, to a processor and a control method thereof for protecting security data of a program.
네트워크 기술의 발전에 따라 시스템 내에서 어플리케이션, 프로그램 등 다양한 데이터의 보안 확보의 필요성이 보다 중요해지고 있다. 전자장치의 보안을 지키기 위한 수단으로 다양한 기술이 연구되고 있다. 종래기술에 따르면, 어플리케이션 등 실행될 때 프로세서에 보안데이터를 프로세스 단위로 격리 수용하기 위한 별도의 캐시 메모리를 마련함으로써 보안이 필요한 프로세스에 직접 접근할 수 없게 되어 보안이 향상된다. With the development of network technology, the necessity of ensuring security of various data such as applications and programs in the system becomes more important. Various techniques have been studied as means for securing electronic devices. According to the related art, when an application or the like is executed, by providing a separate cache memory for isolating the security data to the processor in units of processes, the security can be prevented from being directly accessed, thereby improving security.
하지만, 프로세스는 메모리 접근 제어를 하기엔 너무 큰 단위이다. 종래기술은 프로세스 내부의 대상을 타겟으로 하는 공격에 취약하다. 예컨대, 프로세스에 포함된 복수의 스레드(thread) 중 적어도 일부가 이미 공격된 경우 다른 스레드로의 접근을 허용하는 문제가 있다.However, the process is too large a unit for memory access control. The prior art is vulnerable to attacks targeted at objects within the process. For example, there is a problem of allowing access to another thread if at least some of the plurality of threads included in the process are already attacked.
따라서 본 발명은 상술한 문제점을 해결하기 위한 것으로서, 보안이 필요한 프로세스를 스레드 단위로 보호하여 보안이 향상된 프로세서 및 그 제어방법이 제공된다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and an object of the present invention is to provide a processor and a method of controlling the same.
상기한 목적을 달성하기 위하여, 프로세서에 있어서, 보안메모리; 및 프로그램이 실행되는 동안, 상기 프로그램의 데이터 중 보안데이터를 적어도 하나의 보안프로세스로서 상기 보안메모리에 저장하고, 상기 보안프로세스의 수행을 제어하고, 상기 보안프로세스에 포함된 복수의 스레드 각각에 대한 접근을 각 스레드의 접근권한에 기초하여 선택적으로 차단하는 제어부를 포함하는 프로세서가 제공된다. 이로 인하여, 스레드단위로 접근을 제어하게 되어 보안이 효율적으로 향상된다.According to an aspect of the present invention, there is provided a processor comprising: a secure memory; And storing, during execution of the program, security data in the program's data as at least one security process in the secure memory, controlling the execution of the security process, and accessing each of the plurality of threads included in the security process And a control unit for selectively blocking access based on the access right of each thread. As a result, access is controlled on a thread-by-thread basis, thereby improving security efficiently.
상기 제어부는 제1스레드의 실행 중에 상기 제1스레드가 제2스레드로 접근을 시도할 때, 상기 제2스레드의 접근권한에 기초하여 상기 제1스레드의 접근을 차단할 수 있다.The control unit may block the access of the first thread based on the access right of the second thread when the first thread attempts to access the second thread during execution of the first thread.
상기 보안데이터는 상기 보안데이터에 포함된 다른 스레드로부터의 접근이 차단되지 않는 공용 스레드를 포함할 수 있다.The security data may include a public thread whose access from other threads included in the secure data is not blocked.
상기 제어부는 상기 프로그램의 실행이 종료된 후 상기 보안메모리에서 상기 프로그램의 보안데이터를 삭제할 수 있다.The control unit may delete the security data of the program in the secure memory after execution of the program is terminated.
상기 보안메모리는 상기 프로그램의 실행 중에 상기 보안프로세스를 호출하는 제1명령에 따라 상기 복수의 스레드 중 적어도 일부를 수행하고, 수행이 완료된 결과값을 반환할 수 있다.The secure memory may perform at least some of the plurality of threads in response to a first command that invokes the secure process during execution of the program, and may return a result that is completed.
상기 제어부는 상기 프로그램의 실행 중에 상기 보안프로세스의 중단을 명령하는 제2명령에 따라 실행중인 제3스레드를 종료하며, 상기 제3스레드에서 종료된 위치를 저장할 수 있다.The control unit may terminate a third thread that is being executed according to a second instruction to interrupt the security process during execution of the program, and may store the terminated position in the third thread.
상기 제어부는 상기 프로그램의 실행 중에 상기 보안데이터에 재호출을 명령하는 제3명령에 따라 상기 제3스레드를 상기 종료된 위치부터 실행할 수 있다.The control unit may execute the third thread from the terminated position in accordance with a third instruction to re-invoke the secure data during execution of the program.
상기한 목적을 달성하기 위하여, 보안메모리를 포함하는 프로세서의 제어방법에 있어서, 프로그램이 실행되는 동안, 상기 프로그램의 데이터 중 보안데이터를 적어도 하나의 보안프로세스로서 상기 보안메모리에 저장하는 단계; 상기 보안프로세스의 수행을 제어하는 단계; 및 상기 보안프로세스에 포함된 복수의 스레드 각각에 대한 접근을 각 스레드의 접근권한에 기초하여 선택적으로 차단하는 단계를 포함하는 프로세서의 제어방법이 제공된다. 이로 인하여 스레드 단위로 접근을 제어하게 되어 보안이 더욱 향상된다.In order to achieve the above object, there is provided a control method of a processor including a secure memory, comprising the steps of: storing security data among data of the program in a secure memory as at least one security process while a program is being executed; Controlling the execution of the security process; And selectively blocking access to each of the plurality of threads included in the security process based on an access right of each thread. As a result, access is controlled on a thread-by-thread basis, which further enhances security.
제1스레드의 실행 중에 상기 제1스레드가 제2스레드로 접근을 시도할 때, 상기 제2스레드의 접근권한에 기초하여 상기 제1스레드의 접근을 차단하는 단계를 포함할 수 있다.And blocking access of the first thread based on the access right of the second thread when the first thread attempts to access the second thread during execution of the first thread.
상기 보안데이터는 상기 보안데이터에 포함된 다른 스레드로부터의 접근이 차단되지 않는 공용 스레드를 포함할 수 있다.The security data may include a public thread whose access from other threads included in the secure data is not blocked.
상기 프로그램의 실행이 종료된 후 상기 보안메모리에서 상기 프로그램의 보안데이터를 삭제하는 단계를 포함할 수 있다.And deleting the security data of the program from the secure memory after execution of the program is terminated.
상기 보안프로세스의 수행을 제어하는 단계는, 상기 프로그램의 실행 중에 상기 보안프로세스를 호출하는 제1명령에 따라 상기 복수의 스레드 중 적어도 일부를 수행하는 단계; 및 수행이 완료된 결과값을 반환하는 단계를 포함할 수 있다.Wherein controlling the execution of the security process comprises: performing at least some of the plurality of threads in accordance with a first instruction to invoke the security process during execution of the program; And returning the result value of which execution is completed.
상기 보안프로세스의 수행을 제어하는 단계는, 상기 프로그램의 실행 중에 상기 보안프로세스의 중단을 명령하는 제2명령에 따라 실행중인 제3스레드를 종료하는 단계; 및 상기 제3스레드에서 종료된 위치를 저장하는 단계를 포함할 수 있다.Wherein the step of controlling the execution of the security process comprises the steps of: terminating a third thread being executed according to a second instruction for commanding the interruption of the security process during execution of the program; And storing the terminated position in the third thread.
상기 보안프로세스의 수행을 제어하는 단계는, 상기 프로그램의 실행 중에 상기 보안데이터에 재호출을 명령하는 제3명령에 따라 상기 제3스레드를 상기 종료된 위치부터 실행하는 단계를 포함할 수 있다.The step of controlling the execution of the security process may include executing the third thread from the terminated position in accordance with a third instruction to re-invoke the secure data during execution of the program.
상기한 바와 같이, 본 발명에 의하면 보안이 필요한 프로세스가 스레드 단위로 보호됨으로써 보안이 향상된다.As described above, according to the present invention, a process requiring security is protected on a per-thread basis, thereby improving security.
도 1은 본 발명의 일 실시예에 따른 전자장치를 도시한다.
도 2는 본 발명의 일 실시예에 따른 전자장치의 블록도를 도시한다.
도 3은 본 발명의 일 실시예에 따른 프로세서의 블록도를 도시한다.
도 4는 본 발명의 일 실시예에 따른 프로세서의 동작을 도시한다.
도 5는 본 발명의 일 실시예에 따른 프로세서의 프로세스로의 접근을 차단하는 동작을 도시한다.
도 6은 본 발명의 일 실시예에 따른 프로세서의 스레드로의 접근을 차단하는 동작을 도시한다.
도 7은 본 발명의 일 실시예에 따른 프로세서의 공유스레드로의 접근을 허용하는 동작을 도시한다.
도 8은 본 발명의 다른 일 실시예에 따른 SGX를 이용한 프로세서의 일 예를 도시한다.
도 9는 본 발명의 일 실시예에 따른 프로세서의 제어흐름도를 도시한다.1 shows an electronic device according to an embodiment of the present invention.
Figure 2 shows a block diagram of an electronic device according to an embodiment of the invention.
Figure 3 shows a block diagram of a processor in accordance with an embodiment of the present invention.
Figure 4 illustrates the operation of a processor in accordance with an embodiment of the present invention.
5 illustrates an operation for blocking access to a process of a processor according to an embodiment of the present invention.
6 illustrates an operation for blocking access to a thread of a processor according to an embodiment of the present invention.
Figure 7 illustrates an operation that allows access to a shared thread of a processor in accordance with an embodiment of the invention.
FIG. 8 illustrates an example of a processor using an SGX according to another embodiment of the present invention.
9 shows a control flow diagram of a processor according to an embodiment of the present invention.
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 이하 실시예들의 설명에서는 첨부된 도면들에 기재된 사항들을 참조하는 바, 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 구성요소를 나타낸다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.If the term includes an ordinal such as a first component, a second component, or the like in the embodiment, such term is used to describe various components, and the term is used to distinguish one component from another And these components are not limited in meaning by their terms. The terms used in the embodiments are applied to explain the embodiments, and do not limit the spirit of the present invention.
이하 실시예들에 의해 설명되는 본 발명의 사상은 다양한 기능을 수행하는 전자장치에 적용될 수 있다.The spirit of the present invention described by the following embodiments can be applied to an electronic device performing various functions.
도 1은 본 발명의 일 실시예에 따른 전자장치를 도시한다. 본 발명의 일 실시예에 따른 전자장치(1)는 컴퓨터, TV, 스마트폰 등으로 구현될 수 있다. 본 발명의 다른 실시예로서, 전자장치(1)는 태블릿PC, 멀티미디어 재생기, 전자액자, 디지털광고판, LFD, 디지털 사이니지, 셋탑박스, 스마트워치, 냉장고 등 네트워크 신호를 수신하고, 컨텐츠를 제공할 수 있는 다양한 장치로 구현될 수 있으나, 본 발명에 따른 전자장치(1)는 전술된 예시로 한정되지 않는다.1 shows an electronic device according to an embodiment of the present invention. The
본 실시예에서의 전자장치(1)는 저장된 프로그램 등 명령어에 따른 동작을 수행하는 프로세서(207)에 의해 제어된다. 프로세서(207)는 보안이 필요한 보안프로세스(도 3의 310 참조)를 일시적으로 저장하는 보안메모리(301)와 나머지 프로세스인 비보안프로세스(도 3의 311 참조)를 일시적으로 저장하는 비보안메모리(303)를 포함한다. 명령에 의해 프로그램이 실행될 때, 프로그램의 데이터 중 보안이 필요한 보안프로세스(310)는 보안메모리(301)로 이동되고, 보안프로세스(310)로의 접근은 차단된다. 보안프로세스(310)는 복수의 스레드(도 4의 400 참조)를 포함하며, 보안프로세스(310)내부에서 어느 하나의 스레드(400)로부터 다른 하나로의 접근 역시 차단된다. 스레드(400)단위로 접근을 제어함으로 인하여, 전자장치(1)의 보안이 향상된다.The
도 2는 본 발명의 일 실시예에 따른 전자장치의 블록도를 도시한다. 본 발명의 일 실시예에 따른 전자장치(1)는 신호수신부(200), 신호처리부(201), 디스플레이부(203), 통신부(205), 저장부(209) 및 프로세서(207)를 포함한다. 도 2에 도시된 본 발명의 일 실시예에 따른 전자장치(1)의 구성은 하나의 예시일 뿐이며, 본 발명의 일 실시예에 따른 전자장치(1)는 도 2에 도시된 구성 외 다른 구성이 추가되거나, 혹은 도 2에 도시된 구성 중 어느 하나가 배제되어 구현될 수도 있다.Figure 2 shows a block diagram of an electronic device according to an embodiment of the invention. An
신호수신부(200)는 외부로부터 컨텐츠의 신호를 수신한다. 컨텐츠의 신호는 방송신호를 포함한다. 신호수신부(200)는 방송신호송출장비로부터 또는 방송신호를 중계하는 중계장치로부터 방송신호를 수신하기 위한 튜너(tuner)를 구비할 수 있다. 튜너는 복수의 채널 중 사용자에 의해 선택된 어느 하나의 채널의 방송신호를 튜닝하여 수신할 수 있다. 신호수신부(200)는 서버로부터 네트워크를 통해 컨텐츠의 신호를 수신할 수도 있다.The
전자장치(1)는 전술한 바와 같이 핸드폰, 스마트폰, 태블릿 PC 등 모바일 장치로 구성될 수도 있다. 전자장치(1)가 모바일장치로 구성되는 경우, 전자장치(1)는 이동통신을 통해 외부 장치와 연결되기 위한 이동통신부를 추가로 구비할 수 있다. 이동통신부는 적어도 하나 이상의 안테나를 포함하는 외부 장치와 통신하며 음성통화, 영상통화, 문자메시지 또는 멀티미디어 메시지를 위한 무선신호를 송수신한다.The
신호처리부(201)는 신호수신부(200)를 통해 수신되는 컨텐츠의 신호에 대해 신호처리를 수행하고, 신호처리가 수행된 신호를 디스플레이부(203)에 출력함으로써 디스플레이부(203)에 출력영상이 표시되도록 한다. 신호처리부(201)가 수행하는 신호처리 프로세스는, 예를 들면, 영상 및 오디오를 포함하는 컨텐츠 신호를 영상, 오디오 부가데이터의 각 하위스트림으로 구분하는 디멀티플렉싱(demultiplexing), 인터레이스(interace) 방식의 영상신호를 프로그레시브(progressive) 방식으로 변환하는 디인터레이싱(de-interlacing), 영상신호의 해상도를 조정하는 스케일링(scaling), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 등을 포함할 수 있다.The
디스플레이부(203)는 신호처리부(201)에서 처리된 신호에 기초하여 컨텐츠의 영상을 표시한다. 디스플레이부(203)의 구현방식은 한정되지 않으며, 예를 들면 액정(liquid crystal), 플라즈마(plasma), 발광 다이오드(light-emitting diode), 유기발광 다이오드(organic light-emitting diode), 면전도 전자총(surface-conduction electron-emitter), 탄소 나노 튜브(carbon nano-tube), 나노 크리스탈(nano-crystal) 등의 다양한 디스플레이 방식으로 구현될 수 있다.The
디스플레이부(203)는 액정 방식인 경우에, 액정 디스플레이 패널과 액정 디스플레이 패널에 광을 공급하는 백라이트유닛과, 액정 디스플레이 패널을 구동시키는 패널구동기판 등을 포함한다. 디스플레이부(203)는 백라이트유닛없이, 자발광소자인 OLED패널로 구현될 수도 있다.The
통신부(205)는 유선통신을 위한 접속부를 포함하며, 접속부는 HDMI(high definition multimedia interface), HDMI-CEC(consumer electronics control), USB, 컴포넌트(component) 등의 규격에 따른 신호/데이터를 송/수신할 수 있으며, 이들 각각의 규격에 대응하는 적어도 하나 이상의 커넥터 또는 단자를 포함한다. 통신부(205)는 유선 LAN(local area network)을 통해 복수의 서버들과 유선 통신을 수행할 수 있다.The
통신부(205)는 유선 접속을 위한 커넥터 또는 단자를 포함하는 접속부 이외에도 다양한 다른 통신 방식으로 구현될 수 있다. 예컨대, 통신부(205)는 무선 LAN을 통해 무선 통신 또는 무선 근거리 통신 등을 수행할 수 있다. 외부 장치와 무선 통신을 수행하기 위해 RF(radio frequency)신호를 송수신하는 RF회로를 포함할 수 있으며, Wi-fi, 블루투스, 지그비(Zigbee), UWM(Ultra-Wide Band), Wireless USB, NFC(Near Field Communication), 적외선 통신(IrDA, infrared data association) 중 하나 이상의 통신을 수행하도록 구성될 수 있다.The
저장부(209)는 전자장치(1)의 다양한 데이터를 저장하도록 구성된다. 본 실시예에서의 저장부(209)는 플래쉬 메모리(flash memory), EPROM 또는 EEPROM 등과 같은 비휘발성 메모리로 구성된다.The
프로세서(207)는 전자장치(1)의 제반 구성들이 동작하기 위한 제어를 수행한다. 프로세서(207)는 설치된 프로그램이 시작될 때 적어도 일부가 로드되는 휘발성의 메모리를 포함한다. 메모리는 프로그램(305)의 보안데이터(302)가 로드되는 보안메모리(301)와 비보안데이터(304)가 로드되는 비보안메모리(303)를 포함하며, 각각은 별도의 하드웨어로 구성된다. 프로세서(207)는 또한 보안메모리(301)와 비보안메모리(303)의 동작을 제어하는 마이크로프로세서, CPU(central processing unit) 등 서브프로세서들을 포함하는 접근제어부(300)를 포함할 수 있다. The
프로세서(207)를 동작하기 위한 제어프로그램은, BIOS, 디바이스드라이버, 운영체계, 펌웨어, 플랫폼 및 응용프로그램(어플리케이션) 중 적어도 하나의 형태로 구현되는 프로그램(들)을 포함할 수 있다. 하나의 실시예로서, 응용프로그램은, 전자장치장치(1)의 제조 시에 전자장치(1)에 미리 설치 또는 저장되거나, 혹은 추후 사용 시에 외부로부터 응용프로그램의 데이터를 수신하여 수신된 데이터에 기초하여 전자장치(1)에 설치될 수 있다. 응용프로그램의 데이터는, 예컨대, 어플리케이션 마켓과 같은 외부 서버로부터 전자장치(1)로 다운로드 될 수도 있다.The control program for operating the
일 실시예로서, 프로세서(207)는 프로그램이 실행될 때, 프로그램(도 3의 305 참조)의 보안데이터(302)를 보안메모리(301)에 저장하여 로드한다. 프로그램의 실행에 따라 보안데이터(302)가 필요할 때는 콜게이트(도 4의 403 참조)를 통해 호출 및 리턴을 하여 보안프로세스(310)를 수행한다. 프로세서(207)는 보안프로세스(310)뿐 아니라, 보안프로세스(310)의 각 스레드(도 4의 400 참조)들에 대한 접근을 차단한다. In one embodiment, when the program is executed, the
이하, 도면을 통해 프로세서(207)의 동작에 대해서 자세히 설명한다.Hereinafter, the operation of the
도 3은 본 발명의 일 실시예에 따른 프로세서의 블록도를 도시한다. 프로세서(207)는 보안메모리(301), 비보안메모리(303) 및 접근제어부(300)를 포함한다. 보안메모리(301)는 별도의 하드웨어로 구성된다. 프로그램(305)이 시작될 때, 프로세서(207)는 저장부(209)로부터 보안데이터(302)를 보안메모리(301)에 로드하고, 비보안데이터(304)를 비보안메모리(303)에 로드한다. 보안메모리(301)에 로드된 보안데이터(302)는 적어도 하나 이상의 보안프로세스(310)를 생성하고, 비보안메모리(303)에 로드된 비보안데이터(304)는 적어도 하나 이상의 비보안프로세스(311)를 생성한다. 접근제어부(300)는 외부 및 다른 보안프로세스(310)로부터 보안프로세스(310)로의 접근을 차단한다.Figure 3 shows a block diagram of a processor in accordance with an embodiment of the present invention. The
프로그램(305)의 실행이 종료되면, 프로세서(207)는 보안메모리(301)와 비보안메모리(303)에 저장되고 로드된 데이터를 모두 삭제한다. When the execution of the
도 4는 본 발명의 일 실시예에 따른 프로세서의 동작을 도시한다. 프로그램(305)의 실행은 일례로서 비보안메모리(303)에서 시작된다. 비보안프로세스(311)는 복수의 스레드를 포함한다. 비보안프로세스(311)의 각 스레드(401)를 순차적으로 실행함으로써 비보안프로세스(311)가 수행된다. 스레드(401)의 실행 중에 콜게이트(403)를 통해 보안프로세스(310)가 호출한다. 콜게이트(403)는 보안프로세스(310)에 접근할 수 있는 권한이 있는 구성으로, 비보안프로세스(311)로부터 호출데이터를 수신하여 보안프로세스(310)로 전달하고, 보안프로세스(310)로부터 리턴값을 수신하면 비보안프로세스(311)로 전달하는 역할을 수행한다. 보안메모리(301)는 콜게이트(403)를 통해 호출되는 명령이 수신되면, 호출된 명령에 따라 보안프로세스(310)를 수행한다. 보안프로세스(310)는 포함된 복수의 스레드(400)를 순차적으로 실행함으로써 수행된다. 보안프로세스(310)의 수행이 완료되거나, 종료를 명령하는 명령이 수신됨에 따라 보안프로세스(310)의 수행을 종료하고, 결과값을 콜게이트(403)로 리턴한다. 비보안메모리(303)는 콜게이트(403)로부터 수신된 결과값을 이용하여 비보안프로세스(311)의 수행을 완료한다.Figure 4 illustrates the operation of a processor in accordance with an embodiment of the present invention. Execution of the
보안프로세스(310)의 수행이 완료되기 전 명령에 의해 정지되는 경우, 보안메모리(301)는 수행이 종료된 스레드(400)의 위치를 기억한다. 보안메모리(301)는 다시 호출에 의해 보안프로세스(310)가 시작될 때, 수행이 종료된 시점부터 수행을 계속하도록 구성된다.If the
도 5는 본 발명의 일 실시예에 따른 보안프로세스로의 접근을 차단하는 동작을 도시한다.5 illustrates an operation for blocking access to a security process according to an embodiment of the present invention.
접근제어부(300)는 콜게이트(403)를 통해 보안프로세스(310)를 호출하는 것이 아닌 보안프로세스(310)의 데이터의 복사 및 변경 등의 직접적인 접근을 차단한다. 차단되는 보안프로세스(310)로의 접근은 통신부(205)를 통해 전자장치(1) 외부로부터의 접근, 프로세서(207) 외부로부터의 접근, 비보안메모리(303)로부터의 접근 및 복수의 보안프로세스(310) 중 어느 하나로부터 다른 하나로의 접근을 포함한다. 저장부(209)는 보안프로세스(310)로의 접근권한에 대한 정보를 저장할 수 있다. 접근제어부(300)는 저장부(209)에 저장된 보안프로세스(310)로의 접근권한에 기초하여 접근권한이 없는 접근을 모두 차단한다. The
도 6은 본 발명의 일 실시예에 따른 프로세서의 스레드로의 접근을 차단하는 동작을 도시한다. 본 발명의 일 실시예에 따른 접근제어부(300)는 보안프로세스(310)로의 접근을 차단할 뿐 아니라, 보안프로세스(310)에 포함된 스레드(600, 601)각각으로의 접근 또한 차단한다. 차단되는 보안프로세스(310)의 어느 하나의 스레드(601)로의 접근은 통신부(205)를 통해 전자장치(1) 외부로부터의 접근, 프로세서(207) 외부로부터의 접근, 비보안메모리(303)로부터의 접근, 다른 보안프로세스(310)로부터의 접근 및 실행중인 보안프로세스(310)에 포함된 다른 스레드(600)로부터의 접근을 포함한다. 저장부(209)는 각 스레드(600, 601)로의 접근권한에 대한 정보를 저장할 수 있다. 접근제어부(300)는 저장부(209)에 저장된 스레드(600, 601)로의 접근권한에 기초하여 접근권한이 없는 접근을 모두 차단한다.6 illustrates an operation for blocking access to a thread of a processor according to an embodiment of the present invention. The
도 7은 본 발명의 일 실시예에 따른 프로세서의 공유스레드로의 접근을 허용하는 동작을 도시한다. 보안프로세스(310)는 다른 스레드(700)로부터 접근이 허용되는 공유스레드(701)를 포함한다. 접근제어부(300)는 외부로부터 공유스레드(701)로의 접근은 차단하고, 같은 보안프로세스(310)에 속한 스레드(700)로부터의 접근은 허용한다. Figure 7 illustrates an operation that allows access to a shared thread of a processor in accordance with an embodiment of the invention. The
도 8은 본 발명의 다른 일 실시예에 따른 SGX를 이용한 프로세서의 일 예를 도시한다.FIG. 8 illustrates an example of a processor using an SGX according to another embodiment of the present invention.
본 발명의 다른 일 실시예에 따른 프로세서(207)는 SGX(Software Guard Extension)에 따른 프로세서(207)를 포함한다. SGX는 어플리케이션 등의 보안이 필요한 보안프로세스(도 3의 310 참조)에게 인클레이브(enclave)(810)라는 공간을 제공하여 안전하게 실행되도록 한다. 본 발명의 일 실시예에 따른 프로세서(207)는 스레드(811, 813)의 접근권한를 알 수 있는 ETCM(Enclave Thread Cache Map)(805)와 스레드(811, 813)로의 접근을 제어하는 TAC(thread access controller)(809)를 추가로 포함한다. 이하, 본 발명의 일 실시예에 따른 프로세서(207)의 구성요소를 설명한다.The
SGX CPU(800)는 프로세서(207)의 제어부로서, 보호영역을 생성 및 관리하며, 실행중인 인클레이브(810)의 컨텍스트정보(CR_ACTIVE_SECS)와 실행중인 스레드(811, 813) 컨텍스트정보(CR_TCS_PH)를 레지스터에 저장한다. The
EPC(enclave page cache)(803)는 페이지캐시로서 인클레이브(810)를 넣어 실행하는 별도의 하드웨어다. 어플리케이션이 실행될 때 SGX CPU(800)는 EPC(803)내에 적어도 하나 이상의 인클레이브(810)를 생성한다. 인클레이브(810)는 복수의 스레드(811, 813)를 포함할 수 있다.An encapsulated page cache (EPC) 803 is a separate hardware for embedding an
EPCM(enclave page cache map)(805)은 보안구조로서, 페이지캐시의 컨텐츠를 트래킹하도록 프로세서(207)에 의해 사용된다. EPCM(805)은 엔클레이브(810)로의 접근권한(enclavesecs)에 대한 정보를 포함하고 있다.An encapsulated page cache map (EPCM) 805 is a security architecture and is used by the
MMU(memory management unit)(801)는 현재 실행중인 인클레이브(810)의 컨텍스트정보와 접근권한에 기초하여 인클레이브(810)로의 권한 없는 접근을 제어한다.A memory management unit (MMU) 801 controls unauthorized access to the
ETCM(807)은 스레드(811, 813)로의 접근권한에 대한 정보(enclavetcs)를 포함한다.The
TAC(809)는 실행중인 스레드(811)의 컨텍스트정보와 접근권한에 기초하여 다른 스레드(813)로의 권한 없는 접근을 제어한다. 본 실시예에서, TAC(809)는 실행중인 스레드(811)가 같은 인클레이브(810)에 포함된 다른 스레드(813)의 데이터를 수정, 복사 등을 위한 접근을 차단한다.The
도 9는 본 발명의 일 실시예에 따른 프로세서의 제어흐름도를 도시한다.9 shows a control flow diagram of a processor according to an embodiment of the present invention.
먼저, 동작 S900에서, 프로세서(207)는 프로그램이 실행되는 동안, 프로그램의 데이터 중 보안데이터를 적어도 하나의 보안프로세스(310)로서 보안메모리(301)에 저장한다. 이어서, 동작 S901에서, 보안프로세스(310)의 수행이 제어된다. 마지막으로, 동작 S902에서, 접근제어부(300)는 보안프로세스(310)에 포함된 복수의 스레드(400) 각각에 대한 접근을 각 스레드(400)의 접근권한에 기초하여 선택적으로 차단한다.First, in operation S900, the
1 - 전자장치
207 - 프로세서
300 - 접근제어부
301 - 보안메모리
303 - 비보안메모리1 - electronic device
207 - Processor
300 - access control unit
301 - Secure memory
303 - Non-secure memory
Claims (14)
보안메모리; 및
프로그램이 실행되는 동안, 상기 프로그램의 데이터 중 보안데이터를 적어도 하나의 보안프로세스로서 상기 보안메모리에 저장하고, 상기 보안프로세스의 수행을 제어하고, 상기 보안프로세스에 포함된 복수의 스레드 각각에 대한 접근을 각 스레드의 접근권한에 기초하여 선택적으로 차단하는 제어부를 포함하는 프로세서.A processor comprising:
Secure memory; And
The method comprising: storing, during execution of a program, security data in the program's data as at least one security process in the secure memory, controlling the execution of the security process, and accessing each of a plurality of threads included in the security process And for selectively blocking based on access rights of each thread.
상기 제어부는 제1스레드의 실행 중에 상기 제1스레드가 제2스레드로 접근을 시도할 때, 상기 제2스레드의 접근권한에 기초하여 상기 제1스레드의 접근을 차단하는 프로세서.The method according to claim 1,
Wherein the controller blocks access of the first thread based on an access right of the second thread when the first thread attempts to access the second thread during execution of the first thread.
상기 보안데이터는 상기 보안데이터에 포함된 다른 스레드로부터의 접근이 차단되지 않는 공용 스레드를 포함하는 프로세서.3. The method of claim 2,
Wherein the secure data comprises a public thread whose access from other threads contained in the secure data is not blocked.
상기 제어부는 상기 프로그램의 실행이 종료된 후 상기 보안메모리에서 상기 프로그램의 보안데이터를 삭제하는 프로세서.The method according to claim 1,
Wherein the control unit deletes the security data of the program from the secure memory after execution of the program is terminated.
상기 보안메모리는 상기 프로그램의 실행 중에 상기 보안프로세스를 호출하는 제1명령에 따라 상기 복수의 스레드 중 적어도 일부를 수행하고, 수행이 완료된 결과값을 반환하는 프로세서.The method according to claim 1,
Wherein the secure memory performs at least some of the plurality of threads in accordance with a first command that invokes the security process during execution of the program, and returns a result that is completed.
상기 제어부는 상기 프로그램의 실행 중에 상기 보안프로세스의 중단을 명령하는 제2명령에 따라 실행중인 제3스레드를 종료하며, 상기 제3스레드에서 종료된 위치를 저장하는 프로세서.The method according to claim 1,
Wherein the control unit terminates a third thread that is being executed according to a second instruction to interrupt the security process during execution of the program, and stores the terminated position in the third thread.
상기 제어부는 상기 프로그램의 실행 중에 상기 보안데이터에 재호출을 명령하는 제3명령에 따라 상기 제3스레드를 상기 종료된 위치부터 실행하는 프로세서.The method according to claim 6,
Wherein the control unit executes the third thread from the terminated position in accordance with a third instruction to re-invoke the secure data during execution of the program.
프로그램이 실행되는 동안, 상기 프로그램의 데이터 중 보안데이터를 적어도 하나의 보안프로세스로서 상기 보안메모리에 저장하는 단계;
상기 보안프로세스의 수행을 제어하는 단계; 및
상기 보안프로세스에 포함된 복수의 스레드 각각에 대한 접근을 각 스레드의 접근권한에 기초하여 선택적으로 차단하는 단계를 포함하는 프로세서의 제어방법.A control method of a processor including a secure memory,
Storing security data among data of the program in the secure memory as at least one security process while the program is being executed;
Controlling the execution of the security process; And
And selectively blocking access to each of the plurality of threads included in the security process based on access rights of each thread.
제1스레드의 실행 중에 상기 제1스레드가 제2스레드로 접근을 시도할 때, 상기 제2스레드의 접근권한에 기초하여 상기 제1스레드의 접근을 차단하는 단계를 포함하는 프로세서의 제어방법.9. The method of claim 8,
And blocking access of the first thread based on the access right of the second thread when the first thread attempts to access the second thread during execution of the first thread.
상기 보안데이터는 상기 보안데이터에 포함된 다른 스레드로부터의 접근이 차단되지 않는 공용 스레드를 포함하는 프로세서의 제어방법.10. The method of claim 9,
Wherein the secure data includes a public thread whose access from other threads included in the secure data is not blocked.
상기 프로그램의 실행이 종료된 후 상기 보안메모리에서 상기 프로그램의 보안데이터를 삭제하는 단계를 포함하는 프로세서의 제어방법.9. The method of claim 8,
And deleting the security data of the program from the secure memory after execution of the program is terminated.
상기 보안프로세스의 수행을 제어하는 단계는,
상기 프로그램의 실행 중에 상기 보안프로세스를 호출하는 제1명령에 따라 상기 복수의 스레드 중 적어도 일부를 수행하는 단계; 및
수행이 완료된 결과값을 반환하는 단계를 포함하는 프로세서의 제어방법.9. The method of claim 8,
Wherein the step of controlling the execution of the security process comprises:
Performing at least a portion of the plurality of threads in accordance with a first instruction to invoke the security process during execution of the program; And
And returning a result value of which execution is completed.
상기 보안프로세스의 수행을 제어하는 단계는,
상기 프로그램의 실행 중에 상기 보안프로세스의 중단을 명령하는 제2명령에 따라 실행중인 제3스레드를 종료하는 단계; 및
상기 제3스레드에서 종료된 위치를 저장하는 단계를 포함하는 프로세서의 제어방법.9. The method of claim 8,
Wherein the step of controlling the execution of the security process comprises:
Terminating a third thread being executed in accordance with a second instruction to interrupt the security process during execution of the program; And
And storing the terminated position in the third thread.
상기 보안프로세스의 수행을 제어하는 단계는,
상기 프로그램의 실행 중에 상기 보안데이터에 재호출을 명령하는 제3명령에 따라 상기 제3스레드를 상기 종료된 위치부터 실행하는 단계를 포함하는 프로세서의 제어방법.
14. The method of claim 13,
Wherein the step of controlling the execution of the security process comprises:
And executing the third thread from the terminated position in accordance with a third instruction to re-invoke the secure data during execution of the program.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662426726P | 2016-11-28 | 2016-11-28 | |
US62/426,726 | 2016-11-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180060876A true KR20180060876A (en) | 2018-06-07 |
KR102690486B1 KR102690486B1 (en) | 2024-08-01 |
Family
ID=62622040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170012897A KR102690486B1 (en) | 2016-11-28 | 2017-01-26 | Processor and control method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102690486B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210043644A (en) * | 2018-10-05 | 2021-04-21 | 구글 엘엘씨 | Enclave fork support |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020035582A (en) * | 1999-09-03 | 2002-05-11 | 션 엘. 맥클린톡 | Resource access control system |
KR20090010871A (en) * | 2007-07-24 | 2009-01-30 | 삼성전자주식회사 | Method and apparatus for managing access privileges in a cldc osgi environment |
JP2011526387A (en) * | 2008-06-27 | 2011-10-06 | マイクロソフト コーポレーション | Granting least privilege access for computing processes |
-
2017
- 2017-01-26 KR KR1020170012897A patent/KR102690486B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020035582A (en) * | 1999-09-03 | 2002-05-11 | 션 엘. 맥클린톡 | Resource access control system |
KR20090010871A (en) * | 2007-07-24 | 2009-01-30 | 삼성전자주식회사 | Method and apparatus for managing access privileges in a cldc osgi environment |
JP2011526387A (en) * | 2008-06-27 | 2011-10-06 | マイクロソフト コーポレーション | Granting least privilege access for computing processes |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210043644A (en) * | 2018-10-05 | 2021-04-21 | 구글 엘엘씨 | Enclave fork support |
US11714912B2 (en) | 2018-10-05 | 2023-08-01 | Google Llc | Enclave fork support |
Also Published As
Publication number | Publication date |
---|---|
KR102690486B1 (en) | 2024-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8225061B2 (en) | Method and apparatus for protected content data processing | |
US10515209B2 (en) | Sandboxing third party components | |
KR20150026786A (en) | Electronic device and method for contolling power | |
KR101355697B1 (en) | Secure provision of a digital content protection scheme | |
CN103455520A (en) | Method and device for accessing Android database | |
CN109933960B (en) | Service calling control method, service calling method, device and terminal | |
KR102100456B1 (en) | Method and apparatus for drm service in an electronic device | |
US10212470B1 (en) | System for highly predictable performance of set-top boxes using downloadable conditional access | |
CN104115413A (en) | Method and apparatus for outputting content in portable terminal supporting secure execution environment | |
US20170169218A1 (en) | Electronic device and method of operating the same | |
KR20180060876A (en) | Processor and control method thereof | |
RU2679187C2 (en) | Method, device for setting system data and terminal | |
KR20180052695A (en) | Secure entry and exit of software modules protected by controlled encryption key management | |
CN111382381B (en) | User data sharing method and device, mobile terminal and storage medium | |
US7747791B2 (en) | Program access authorization of peripheral devices via a smart card | |
KR102569734B1 (en) | Electronic apparatus and the control method thereof | |
KR102230862B1 (en) | Image processing apparatus and control methof thereof | |
CN115842927B (en) | Video stream safety display method and device and electronic equipment | |
US10846376B2 (en) | Electronic apparatus and control method thereof | |
CN116361777A (en) | Authority management method and device, storage medium and electronic equipment | |
EP1345417A1 (en) | Method and digital television unit for operating broadcast applications | |
CN115277099A (en) | Function security method based on Android system and related equipment | |
US9607178B2 (en) | Protection against key tampering | |
CN115495396A (en) | Remote control method and device | |
CN115220800A (en) | Application program control system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |