1 |
1
전자 장치에 있어서,메모리; 및상기 메모리와 작동적으로 연결된 프로세서를 포함하며,상기 메모리는, 실행될 때, 상기 프로세서가,상기 메모리에 데이터 쓰기(write) 요청을 검출하는 것에 기반하여, 일반 환경에서, 상기 메모리에 제1 주소 공간 및 제2 주소 공간을 할당하고, 상기 일반 환경에서, 상기 메모리의 상기 제1 주소 공간에 데이터를 쓴 후, 상기 제2 주소 공간으로의 접근을 검출하고,상기 제2 주소 공간으로의 접근을 검출하는 것에 기반하여, 보안 환경의 매니저에 의해, 상기 메모리의 상기 제1 주소 공간에 매핑된 상기 일반 환경의 제1 사용자 가상 메모리 주소 공간의 접근 권한에 대한 쓰기 접근이 비활성화되게 설정하고, 상기 제2 주소 공간에 매핑된 상기 일반 환경의 및 제2 사용자 가상 메모리 주소 공간의 접근 권한에 대한 읽기 접근이 활성화되고, 쓰기 접근이 비활성화되게 설정하고, 및상기 보안 환경의 상기 매니저에 의해, 상기 메모리의 상기 제1 주소 공간에 매핑된 상기 일반 환경의 제1 커널 가상 메모리 주소 공간의 접근 권한에 대한 쓰기 접근이 비활성화되게 설정하도록 하는 인스트럭션들(instructions)을 저장하는 전자 장치
|
2 |
2
제 1 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 제1 주소 공간 및 상기 제2 주소 공간을 할당한 후, 상기 일반 환경의 커널에 의해, 상기 메모리의 상기 제1 주소 공간 및 상기 제2 주소 공간을 상기 일반 환경의 제1 페이지 테이블의 상기 제1 사용자 가상 메모리 주소 공간 및 상기 제2 사용자 가상 메모리 주소 공간에 매핑하고, 및상기 일반 환경의 상기 커널에 의해, 상기 메모리의 상기 제1 주소 공간 및 상기 제2 주소 공간을 상기 일반 환경의 제2 페이지 테이블의 상기 제1 커널 가상 메모리 주소 공간 및 제2 커널 가상 메모리 주소 공간에 매핑하도록 하는 인스트럭션들을 저장하는 전자 장치
|
3 |
3
제 2 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 제1 사용자 가상 메모리 주소 공간의 접근 권한, 상기 제2 사용자 가상 메모리 주소 공간의 접근 권한, 및 상기 제1 커널 가상 메모리 주소 공간의 접근 권한, 및 상기 제2 커널 가상 메모리 주소 공간의 접근 권한에 대한 읽기 및 쓰기 접근이 활성화(read-writable)되게 설정하도록 하는 인스트럭션들을 저장하는 전자 장치
|
4 |
4
제 3 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 제1 주소 공간 및 상기 제2 주소 공간을 상기 제1 커널 가상 메모리 주소 공간 및 상기 제2 커널 가상 메모리 주소 공간에 매핑한 후, 상기 일반 환경의 드라이버를 통해, 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소, 및 상기 커널에서 관리하고 있는 프로세스의 메모리 공간 정보를 상기 보안 환경의 상기 매니저로 전송하고, 상기 매니저에 의해, 상기 프로세스의 메모리 공간 정보에 기반하여, 상기 일반 환경의 클라이언트 어플리케이션의 정적 영역에 대한 제1 해시 값을 생성하고, 상기 매니저에 의해, 상기 제1 해시 값과 기 저장된 상기 정적 영역의 가상 메모리 주소에 대한 제2 해시 값을 비교하고, 및 상기 매니저에 의해, 상기 제1 해시 값과 상기 제2 해시 값이 동일한지 여부에 기반하여, 상기 정적 영역 중 로드된 페이지에 대해 검증을 수행하는, 제1 호출자 인증을 수행하도록 하는 인스트럭션들을 저장하는 전자 장치
|
5 |
5
제 4 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가, 상기 제1 해시 값과 상기 제2 해시 값이 동일한 경우, 상기 매니저에 의해, 상기 제1 호출자 인증을 성공한 것으로 결정하고, 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소를 상기 보안 환경의 테이블에 저장하도록 하는 인스트럭션들을 저장하는 전자 장치
|
6 |
6
제 5 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가, 상기 제1 호출자 인증을 수행한 후, 상기 매니저에 의해, 상기 메모리의 상기 제2 주소 공간에 매핑된 상기 일반 환경의 상기 제2 사용자 가상 메모리 주소 공간에 대한 상기 읽기 및 상기 쓰기 접근이 활성화된 상태를, 상기 읽기 및 상기 쓰기 접근이 비활성화 상태로 변경하도록 설정하는 인스트럭션들을 저장하는 전자 장치
|
7 |
7
제 6 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가, 상기 제1 호출자 인증을 수행한 후, 상기 메모리의 페이지 디스크립터(page descriptor)의 특정 비트를 이용하여, 상기 제1 호출자 인증을 수행했음을 나타내는 값을 설정하도록 하는 인스트럭션들을 저장하는 전자 장치
|
8 |
8
제 7 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 일반 환경에서, 상기 메모리의 상기 제2 주소 공간에 매핑된 상기 제2 사용자 가상 메모리 주소 공간의 접근 권한에 대해 읽기 및 쓰기 접근이 비활성화 상태에서 상기 클라이언트 어플리케이션에 의해, 상기 제2 주소 공간으로의 접근을 검출하는 것에 기반하여, 상기 제2 주소 공간에서 접근 권한 오류가 발생하고, 및상기 접근 권한 오류가 발생하는 것에 기반하여 상기 매니저를 호출하도록 하는 인스트럭션들을 저장하는 전자 장치
|
9 |
9
제 8 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 매니저에 의해, 상기 접근 권한 오류가 상기 메모리의 상기 제2 주소 공간에서 발생한 것인지 여부를 확인하고,상기 매니저에 의해, 상기 접근 권한 오류가 상기 메모리의 상기 제2 주소 공간에서 발생한 것으로 확인되는 것에 기반하여, 상기 페이지 디스크립터의 특정 비트를 확인하고, 및상기 매니저에 의해, 상기 특정 비트에 기반하여, 상기 제1 호출자 인증이 수행되지 않은 상기 정적 영역의 로드된 페이지에 대해 검증을 수행하는, 제2 호출자 인증을 수행하도록 하는 인스트럭션들을 저장하는 전자 장치
|
10 |
10
제 9 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 매니저에 의해, 상기 제1 호출자 인증이 수행되지 않은 상기 정적 영역의 로드된 페이지에 대한 제3 해시 값을 생성하고, 상기 매니저에 의해, 상기 기 저장된 상기 정적 영역의 가상 메모리 주소에 대한 제2 해시 값과 상기 생성된 제3 해시 값을 비교하고,상기 매니저에 의해, 상기 제2 해시 값과 상기 제3 해시 값이 동일한지 여부에 기반하여, 상기 제1 호출자 인증이 수행되지 않은 상기 정적 영역의 로드된 페이지에 대한 검증을 수행하는 상기 제2 호출자 인증을 수행하도록 하는 인스트럭션들을 저장하는 전자 장치
|
11 |
11
제 10 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 제2 해시 값과 상기 제3 해시 값이 동일한 경우, 상기 매니저에 의해, 상기 제2 호출자 인증을 성공한 것으로 결정하고, 상기 일반 환경의 상기 제2 사용자 가상 메모리 주소 공간의 접근 권한을 상기 읽기 및 쓰기 접근이 비활성화 상태에서, 상기 읽기 접근이 활성화되고 상기 쓰기 접근이 비활성되도록 변경하는 인스트럭션들을 저장하는 전자 장치
|
12 |
12
제 11 항에 있어서,상기 메모리는, 실행될 때, 상기 프로세서가,상기 매니저에 의해, 상기 보안 환경의 테이블 및 상기 제1 주소 공간의 접근 권한을 확인하고,상기 보안 환경의 테이블에 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소가 저장되어 있고, 상기 제1 주소 공간의 접근 권한에 대해 읽기 접근이 활성화, 쓰기 접근이 비활성화로 설정된 경우, 상기 보안 환경의 보안 어플리케이션을 호출하고, 및상기 보안 환경의 테이블에 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소가 저장되어 있지 않거나, 및/또는 상기 제1 주소 공간의 접근 권한에 대해 상기 쓰기 접근이 활성화로 설정된 경우, 상기 매니저에 의해 상기 보안 어플리케이션의 호출을 차단하도록 하는 인스트럭션들을 저장하는 전자 장치
|
13 |
13
제 1 항에 있어서,상기 제1 주소 공간은, 상기 일반 환경 및 상기 보안 환경 간 데이터를 전송하는데 사용하기 위해 할당된 주소 공간을 포함하고, 및상기 제2 주소 공간은, 상기 일반 환경의 사용자 공간에서 상기 보안 환경의 보안 공간으로 전환하기 위해 할당된 주소 공간을 포함하는 전자 장치
|
14 |
14
전자 장치의 메모리 보호 방법에 있어서,메모리에 데이터 쓰기(write) 요청을 검출하는 것에 기반하여, 일반 환경에서, 상기 메모리에 제1 주소 공간 및 제2 주소 공간을 할당하는 동작;상기 일반 환경에서, 상기 메모리의 상기 제1 주소 공간에 데이터를 쓴 후, 상기 제2 주소 공간으로의 접근을 검출하는 동작;상기 제2 주소 공간으로의 접근을 검출하는 것에 기반하여, 보안 환경의 매니저에 의해, 상기 메모리의 상기 제1 주소 공간에 매핑된 상기 일반 환경의 제1 사용자 가상 메모리 주소 공간의 접근 권한에 대한 쓰기 접근이 비활성화되게 설정하고, 상기 제2 주소 공간에 매핑된 상기 일반 환경의 제2 사용자 가상 메모리 주소 공간의 접근 권한에 대한 읽기 접근(read access)이 활성화되고, 쓰기 접근(write access)이 비활성화되게 설정하는 동작; 및상기 보안 환경의 상기 매니저에 의해, 상기 메모리의 상기 제1 주소 공간에 매핑된 상기 일반 환경의 제1 커널 가상 메모리 주소 공간의 접근 권한에 대한 쓰기 접근이 비활성화되게 설정하는 동작을 포함하는 방법
|
15 |
15
제 14 항에 있어서,상기 제1 주소 공간 및 상기 제2 주소 공간을 할당한 후, 상기 일반 환경의 커널에 의해, 상기 메모리의 상기 제1 주소 공간 및 상기 제2 주소 공간을 상기 일반 환경의 제1 페이지 테이블의 상기 제1 사용자 가상 메모리 주소 공간 및 상기 제2 사용자 가상 메모리 주소 공간에 매핑하는 동작; 및상기 일반 환경의 상기 커널에 의해, 상기 메모리의 상기 제1 주소 공간 및 상기 제2 주소 공간을 상기 일반 환경의 제2 페이지 테이블의 상기 제1 커널 가상 메모리 주소 공간 및 제2 커널 가상 메모리 주소 공간에 매핑하는 동작을 더 포함하는 방법
|
16 |
16
제 15 항에 있어서,상기 제1 사용자 가상 메모리 주소 공간의 접근 권한, 상기 제2 사용자 가상 메모리 주소 공간의 접근 권한, 및 상기 제1 커널 가상 메모리 주소 공간의 접근 권한, 및 상기 제2 커널 가상 메모리 주소 공간의 접근 권한에 대한 읽기 및 쓰기 접근이 활성화(read-writable)되게 설정하는 동작을 더 포함하는 방법
|
17 |
17
제 16 항에 있어서,상기 일반 환경의 드라이버를 통해, 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소, 및 상기 커널에서 관리하고 있는 프로세스의 메모리 공간 정보를 상기 보안 환경의 상기 매니저로 전송하는 동작; 상기 매니저에 의해, 상기 프로세스의 메모리 공간 정보에 기반하여, 상기 일반 환경의 클라이언트 어플리케이션의 정적 영역에 대한 제1 해시 값을 생성하는 동작; 상기 매니저에 의해, 상기 제1 해시 값과 기 저장된 상기 정적 영역의 가상 메모리 주소에 대한 제2 해시 값을 비교하는 동작; 및상기 매니저에 의해, 상기 제1 해시 값과 상기 제2 해시 값이 동일한지 여부에 기반하여, 상기 정적 영역 중 로드된 페이지에 대해 검증을 수행하는, 제1 호출자 인증을 수행하는 동작을 더 포함하는 방법
|
18 |
18
제 17 항에 있어서,상기 제1 해시 값과 상기 제2 해시 값이 동일한 것으로 결정하는 것에 기반하여, 상기 매니저에 의해, 상기 제1 호출자 인증을 성공한 것으로 결정하고, 상기 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소를 상기 보안 환경의 테이블에 저장하는 동작을 더 포함하는 방법
|
19 |
19
제 18 항에 있어서, 상기 매니저에 의해, 상기 메모리의 상기 제2 주소 공간에 매핑된 상기 일반 환경의 상기 제2 사용자 가상 메모리 주소 공간에 대한 상기 읽기 및 상기 쓰기 접근이 활성화된 상태를 상기 읽기 및 상기 쓰기 접근이 비활성화 상태로 변경하도록 설정하는 동작을 더 포함하는 방법
|
20 |
20
제 19 항에 있어서,상기 일반 환경에서, 상기 메모리의 상기 제2 주소 공간에 매핑된 상기 제2 사용자 가상 메모리 주소 공간의 접근 권한에 대해 읽기 및 쓰기 접근이 비활성화 상태에서 상기 제2 주소 공간으로의 접근을 검출하는 것에 기반하여, 상기 제2 주소 공간에서 접근 권한 오류가 발생하는 동작; 및상기 접근 권한 오류가 발생하는 것에 기반하여 상기 매니저를 호출하는 동작을 더 포함하는 방법
|
21 |
21
제 20 항에 있어서,상기 매니저에 의해, 상기 접근 권한 오류가 상기 메모리의 상기 제2 주소 공간에서 발생한 것인지 여부를 확인하는 동작;상기 매니저에 의해, 상기 접근 권한 오류가 상기 메모리의 상기 제2 주소 공간에서 발생한 것으로 확인되는 것에 기반하여, 상기 페이지 디스크립터의 특정 비트를 확인하는 동작; 및상기 매니저에 의해, 상기 특정 비트에 기반하여, 상기 제1 호출자 인증이 수행되지 않은 상기 정적 영역의 로드된 페이지에 대해 검증을 수행하는, 제2 호출자 인증을 수행하는 동작을 더 포함하는 방법
|
22 |
22
제 21 항에 있어서,상기 제2 호출자 인증을 수행하는 동작은,상기 매니저에 의해, 상기 제1 호출자 인증이 수행되지 않은 상기 정적 영역의 로드된 페이지에 대한 제3 해시 값을 생성하는 동작; 상기 매니저에 의해, 상기 기 저장된 상기 정적 영역의 가상 메모리 주소에 대한 제2 해시 값과 상기 생성된 제3 해시 값을 비교하는 동작;상기 매니저에 의해, 상기 제2 해시 값과 상기 제3 해시 값이 동일한지 여부에 기반하여, 상기 제1 호출자 인증이 수행되지 않은 상기 정적 영역의 로드된 페이지에 대한 검증을 수행하는 상기 제2 호출자 인증을 수행하는 동작을 포함하는 방법
|
23 |
23
제 22 항에 있어서,상기 제2 사용자 가상 메모리 주소 공간의 접근 권한에 대한 상기 읽기 접근이 활성화되고, 상기 쓰기 접근이 비활성화되게 설정하는 동작은,상기 제2 해시 값과 상기 제3 해시 값이 동일한 경우, 상기 매니저에 의해, 상기 제2 호출자 인증을 성공한 것으로 결정하고, 상기 일반 환경의 상기 제2 사용자 가상 메모리 주소 공간의 접근 권한을 상기 읽기 및 쓰기 접근이 비활성화 상태에서, 상기 읽기 접근이 활성화되고 상기 쓰기 접근이 비활성되도록 변경하는 동작을 포함하는 방법
|
24 |
24
제 23 항에 있어서,상기 매니저에 의해, 상기 보안 환경의 테이블 및 상기 제1 주소 공간의 접근 권한을 확인하는 동작;상기 보안 환경의 테이블에 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소가 저장되어 있고, 상기 제1 주소 공간의 접근 권한에 대한 읽기 접근이 활성화되고, 쓰기 접근이 비활성화로 설정된 경우, 상기 보안 환경의 보안 어플리케이션을 호출하는 동작; 및상기 보안 환경의 테이블에 상기 데이터, 상기 제1 주소 공간 및 상기 제2 주소 공간의 가상 메모리 주소가 저장되어 있지 않거나, 및/또는 상기 제1 주소 공간의 접근 권한에 대해 상기 쓰기 접근이 활성화로 설정된 경우, 상기 매니저에 의해 상기 보안 어플리케이션의 호출을 차단하는 동작을 더 포함하는 방법
|
25 |
25
제 14 항에 있어서,상기 제1 주소 공간은, 상기 일반 환경 및 상기 보안 환경 간 데이터를 전송하는데 사용하기 위해 할당된 주소 공간을 포함하고, 및상기 제2 주소 공간은, 상기 일반 환경의 사용자 공간에서 상기 보안 환경의 보안 공간으로 전환하기 위해 할당된 주소 공간을 포함하는 방법
|