1 |
1
REE(Rich Execution Environment)와 PrEE(Private Execution Environment) 간의 분리 및 PrEE의 각 SCL(Security Critical Logics)을 분리하는 단계;환경 전환을 수행하기 위한 명령을 사용하여 분리된 REE, PrEE 및 TEE(Trusted Execution Environment) 환경 간에 전환을 수행하는 단계;분리된 REE와 PrEE 간의 메모리를 공유하기 위한 통신을 제공하는 단계;분리된 REE와 PrEE 간의 파라미터를 SCL로 전달하는 단계;개인 실행의 경우 TEE의 페이지 테이블에 메모리를 매핑하여, TEE가 분리된 REE(또는 PrEE)의 메모리에 액세스하도록 캐시 유지 관리를 수행하는 단계; 및 SCL이 실행되는 동안 PrEE에서 인터럽트 소스로 인터럽트 요청(Interrupt ReQuest; IRQ)을 활성화하는 단계 를 포함하는 모바일 기기상의 안전한 실행 환경 생성 방법
|
2 |
2
제1항에 있어서,REE와 PrEE 간의 분리 및 PrEE의 각 SCL을 분리하는 단계는,REE와 PrEE를 스테이지-2 페이지 테이블에 의해 정적으로 분리하는 단계; 및악성 코드로부터 양성 SCL을 보호하기 위해, 모든 SCL에 대해 메모리 관리를 수행하여 PrEE의 각 SCL을 분리하는 단계를 포함하는 모바일 기기상의 안전한 실행 환경 생성 방법
|
3 |
3
제2항에 있어서, REE와 PrEE를 스테이지-2 페이지 테이블에 의해 정적으로 분리하는 단계는, 각 환경에 대한 스테이지-2 페이지 테이블을 생성하여 부팅하는 동안 스테이지-2 페이지 테이블의 모든 항목을 채우고, 모든 항목이 채워지면, VTTBR(Virtualization Translation Table Base Register)을 REE의 스테이지-2 페이지 테이블의 주소로 설정하고 HCR(Hyp Configuration Register)에 VM(Virtual Machine) 플래그를 구성하는 모바일 기기상의 안전한 실행 환경 생성 방법
|
4 |
4
제1항에 있어서, 환경 전환을 수행하기 위한 명령을 사용하여 분리된 REE, PrEE 및 TEE 환경 간에 전환을 수행하는 단계는, 상기 명령은 SMC(Secure Monitor call) 명령을 포함하고, SMC 명령을 REE 및 PrEE의 복수의 지점에 삽입함과 동시에 SCL의 배포 및 해지를 위한 SMC 명령을 호출하는 커널 드라이버를 생성하고, SCL의 런타임 호출에 대해 특정 즉시 값을 전달하는 SVC(SuperVisor Call) 명령으로 SCL의 진입 점을 패치 하고, SVC 예외 처리기는 현재 SVC 예외의 즉시 값이 SCL 호출을 나타내는 경우 SMC를 호출하는 모바일 기기상의 안전한 실행 환경 생성 방법
|
5 |
5
제4항에 있어서, 환경 전환을 수행하기 위한 명령을 사용하여 분리된 REE, PrEE 및 TEE 환경 간에 전환을 수행하는 단계는, 하이퍼바이저 모드에서 스테이지-2 페이지 테이블 항목을 조정하여 SCL을 분리하거나, 또는 스테이지-2 페이지 테이블에서 매핑 되지 않은 메모리에 대한 액세스로 인해 발생하는 스테이지-2 페이지 오류를 이용하여 PrEE 및 REE 환경 간에 전환을 수행하는모바일 기기상의 안전한 실행 환경 생성 방법
|
6 |
6
제1항에 있어서,분리된 REE와 PrEE 간의 메모리를 공유하기 위한 통신을 제공하는 단계는,프라이빗존 프레임워크가 개인 실행을 위해 REE와 PrEE 사이에 메모리를 복사하고, REE의 공격자는 커널 구성 요소 주소를 SCL 파라미터로 전달하여 REE의 OS를 조작하기 위해 프라이빗존 프레임워크의 사용이 가능하고,메모리 연산을 수행하기 전, 프라이빗존 프레임워크는 SCL 파라미터로 전달된 가상 주소가 존재하는지 여부, 사용자 메모리 범위 내에 있는지 여부 및 가상 주소와 실제 주소 간의 매핑을 확인하는모바일 기기상의 안전한 실행 환경 생성 방법
|
7 |
7
제1항에 있어서, 분리된 REE와 PrEE 간의 파라미터를 SCL로 전달하는 단계는, SCL 배포 중에 파라미터의 수와 각 파라미터의 유형 및 크기를 등록하는 단계;SCL이 호출 될 때 프라이빗존 프레임워크를 통해 파라미터에 대해 등록된 정보를 검사하는 단계;파라미터가 정수형인 경우, 프라이빗존 프레임워크를 통해 파라미터를 REE로부터 복사하는 단계; 및파라미터가 포인터인 경우, 프라이빗존 프레임워크를 통해 미리 지정된 메모리를 TEE에 맵핑하고, 크기 정보에 따라 REE로부터 해당 값을 복사하여 새로운 메모리를 PrEE에 할당하고, 복사된 값을 메모리에 저장하고, SCL의 페이지 테이블에 새로 할당된 메모리에 대한 매핑을 생성하는 단계를 포함하는 모바일 기기상의 안전한 실행 환경 생성 방법
|
8 |
8
제1항에 있어서, 개인 실행의 경우 TEE의 페이지 테이블에 메모리를 매핑하여, TEE가 분리된 REE(또는 PrEE)의 메모리에 액세스하도록 캐시 유지 관리를 수행하는 단계는, 프라이빗존 프레임워크를 통해 매핑된 PrEE에 파라미터를 기록한 후, 기록된 메모리의 캐시영역이 무효화되고, SCL의 진입점이 SVC 명령으로 패치될 때 데이터 캐시와 REE 분기 예측기가 무효화되는 모바일 기기상의 안전한 실행 환경 생성 방법
|
9 |
9
제1항에 있어서, SCL이 실행되는 동안 PrEE에서 인터럽트 소스로 IRQ를 활성화하는 단계는, IREE가 PrEE에서 발생할 경우, IRQ 처리부에 의해 트랩되고, IRQ 처리부는 SCL 컨텍스트를 저장하고, IRQ를 나타내는 파라미터로 SMC를 호출하고, TEE 내의 프라이빗존 프레임워크를 통해 모든 레지스터의 내용을 클리어하고, LR의 값을 REE 내의 IRQ를 처리한 후 실행될 REE 내의 트램펄린 코드의 주소로 설정하고, SP는 REE의 커널 스택의 주소로 설정되고, 프라이빗존 프레임워크를 통해 IRQ 처리를 시작하기 위해 PC를 REE의 IRQ 처리부 주소로 설정하여 환경을 REE로 변환하는모바일 기기상의 안전한 실행 환경 생성 방법
|
10 |
10
REE와 PrEE 간의 분리 및 PrEE의 각 SCL을 분리하는 분리부;환경 전환을 수행하기 위한 명령을 사용하여 분리된 REE, PrEE 및 TEE 환경 간에 전환을 수행하는 환경 전환부;분리된 REE와 PrEE 간의 메모리를 공유하기 위한 통신을 제공하는 통신부;분리된 REE와 PrEE 간의 파라미터를 SCL로 전달하는 파라미터 매핑부;개인 실행의 경우 TEE의 페이지 테이블에 메모리를 매핑하여 TEE가 분리된 REE(또는 PrEE) 메모리에 액세스하도록 캐시 유지 관리를 수행하는 캐시 유지 관리부; 및 SCL이 실행되는 동안 PrEE에서 인터럽트 소스로 인터럽트 요청(Interrupt ReQuest; IRQ)을 활성화하는 IRQ 처리부 를 포함하는 모바일 기기상의 안전한 실행 환경 생성 장치
|
11 |
11
제10항에 있어서,상기 분리부는,REE와 PrEE를 스테이지-2 페이지 테이블에 의해 정적으로 분리하고, 악성 코드로부터 양성 SCL을 보호하기 위해, 모든 SCL에 대해 메모리 관리를 수행하여 PrEE의 각 SCL을 분리하는 모바일 기기상의 안전한 실행 환경 생성 장치
|
12 |
12
제11항에 있어서, 상기 분리부는,각 환경에 대한 스테이지-2 페이지 테이블을 생성하여 부팅하는 동안 스테이지-2 페이지 테이블의 모든 항목을 채우고, 모든 항목이 채워지면, VTTBR을 REE의 스테이지-2 페이지 테이블의 주소로 설정하고 HCR에 VM 플래그를 구성하는 모바일 기기상의 안전한 실행 환경 생성 장치
|
13 |
13
제10항에 있어서, 상기 환경 전환부는,상기 명령은 SMC(Secure Monitor call) 명령을 포함하고, SMC 명령을 REE 및 PrEE의 복수의 지점에 삽입하여 SCL의 배포 및 해지를 위한 SMC 명령을 호출하는 커널 드라이버를 생성하고, SCL의 런타임 호출에 대해 특정 즉시 값을 전달하는 SVC 명령으로 SCL의 진입 점을 패치 하고, SVC 예외 처리기는 현재 SVC 예외의 즉시 값이 SCL 호출을 나타내는 경우 SMC를 호출하는 모바일 기기상의 안전한 실행 환경 생성 장치
|
14 |
14
제13항에 있어서, 상기 환경 전환부는,HYP 모드에서 스테이지-2 페이지 테이블 항목을 조정하여 SCL을 분리하거나, 또는 스테이지-2 페이지 테이블에서 매핑되지 않은 메모리에 대한 액세스로 인해 발생하는 스테이지-2 페이지 오류를 이용하여 PrEE 및 REE 환경 간에 전환을 수행하는모바일 기기상의 안전한 실행 환경 생성 장치
|
15 |
15
제10항에 있어서, 상기 통신부는, 프라이빗존 프레임워크가 개인 실행을 위해 REE와 PrEE 사이에 메모리를 복사하고, REE의 공격자는 커널 구성 요소 주소를 SCL 파라미터로 전달하여 REE의 OS를 조작하기 위해 프라이빗존 프레임워크의 악용이 가능하므로,메모리 연산을 수행하기 전, 프라이빗존 프레임워크는 SCL 파라미터로 전달된 가상 주소가 존재하는지 여부, 사용자 메모리 범위 내에 있는지 여부 및 가상 주소와 실제 주소 간의 매핑을 확인하는모바일 기기상의 안전한 실행 환경 생성 장치
|
16 |
16
제10항에 있어서, 상기 파라미터 매핑부는, SCL 배포 중에 파라미터의 수와 각 파라미터의 유형 및 크기를 등록하고, SCL이 호출 될 때 프라이빗존 프레임워크를 통해 파라미터에 대해 등록된 정보를 검사하고, 파라미터가 정수형인 경우, 프라이빗존 프레임워크를 통해 파라미터를 REE로부터 복사하고, 파라미터가 포인터인 경우, 프라이빗존 프레임워크를 통해 미리 지정된 메모리를 TEE에 맵핑하고, 크기 정보에 따라 REE로부터 해당 값을 복사하여 새로운 메모리를 PrEE에 할당하고, 복사된 값을 메모리에 저장하고, SCL의 페이지 테이블에 새로 할당된 메모리에 대한 매핑을 생성하는 모바일 기기상의 안전한 실행 환경 생성 장치
|
17 |
17
제10항에 있어서, 상기 캐시 유지 관리부는, 프라이빗존 프레임워크를 통해 매핑된 PrEE에 파라미터를 기록한 후, 기록된 메모리의 캐시영역이 무효화하고, SCL의 진입점이 SVC 명령으로 패치될 때 데이터 캐시와 REE 분기 예측기가 무효화하는모바일 기기상의 안전한 실행 환경 생성 장치
|
18 |
18
제10항에 있어서, 상기 IRQ 처리부는, IREE가 PrEE에서 발생할 경우, IRQ 처리부에 의해 트랩되고, IRQ 처리부는 SCL 컨텍스트를 저장하고, IRQ를 나타내는 파라미터로 SMC를 호출하고, TEE 내의 프라이빗존 프레임워크를 통해 모든 레지스터의 내용을 클리어하고, LR의 값을 REE 내의 IRQ를 처리한 후 실행될 REE 내의 트램펄린 코드의 주소로 설정하고, SP는 REE의 커널 스택의 주소로 설정되고, 프라이빗존 프레임워크를 통해 IRQ 처리를 시작하기 위해 PC를 REE의 IRQ 처리부 주소로 설정하여 환경을 REE로 변환하는모바일 기기상의 안전한 실행 환경 생성 장치
|
19 |
19
프로그램 및 OS를 수행하는 REE;트러스트존 기능을 이용하여 생성된 REE와 격리된 실행 공간으로써, 보안 OS 및 TEE 서비스들을 설치하여 수행하는 TEE; REE 및 TEE에 추가적으로 생성되는 공간으로써, 가상화 기능을 이용하여 REE의 메모리 영역의 일부를 나누고 개발자의 소프트웨어에서 SCL을 실행하는 PrEE; 및REE 및 PrEE 간의 메모리는 격리되고, 모니터모드에서 REE 및 PrEE 간의 격리된 메모리를 공유하는 프라이빗존 프레임워크를 포함하는 모바일 기기상의 안전한 실행 환경 시스템
|
20 |
20
제19항에 있어서, 모니터모드에서 수행되는 프라이빗존 프레임워크는 시스템 상에서 가장 높은 권한을 갖고, 상기 권한을 통해 REE 및 PrEE에 접근 가능하고, REE, PrEE, TEE 영역 간의 변경 및 소프트웨어 간의 통신을 중재하는모바일 기기상의 안전한 실행 환경 시스템
|