KR100931706B1 - 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치 - Google Patents

타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치 Download PDF

Info

Publication number
KR100931706B1
KR100931706B1 KR1020047006650A KR20047006650A KR100931706B1 KR 100931706 B1 KR100931706 B1 KR 100931706B1 KR 1020047006650 A KR1020047006650 A KR 1020047006650A KR 20047006650 A KR20047006650 A KR 20047006650A KR 100931706 B1 KR100931706 B1 KR 100931706B1
Authority
KR
South Korea
Prior art keywords
memory access
memory
security level
segment
software object
Prior art date
Application number
KR1020047006650A
Other languages
English (en)
Other versions
KR20050018630A (ko
Inventor
바네스브리안씨.
스트론긴지오프레이에스.
스키미드트로드니더블유.
Original Assignee
어드밴스드 마이크로 디바이시즈, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20050018630A publication Critical patent/KR20050018630A/ko
Application granted granted Critical
Publication of KR100931706B1 publication Critical patent/KR100931706B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2113Multi-level security, e.g. mandatory access control

Abstract

가상 메모리 액세스를 수행하기 위한 방법 및 장치. 소프트웨어 객체(350)가 실행된다. 상기 소프트웨어 객체(350)에 대한 보안 레벨이 설정된다. 부차적인 메모리 액세스 테이블(430)이 설정된다. 상기 소프트웨어 객체(350)의 실행에 근거하여 메모리 액세스 요구가 수신된다. 부차적인 메모리 액세스 테이블(430) 내의 세그먼트에 대응하는 적어도 하나의 보안 레벨이 결정된다. 실행 보안 레벨과, 상기 소프트웨어 객체(350)의 실행에 응답하여 액세스되는 세그먼트에 관련된 보안 레벨사이의 매칭이 검증된다. 실행 보안 레벨과 액세스되는 세그먼트에 관련된 보안 레벨사이의 매칭에 응답하여 상기 부차적인 메모리 액세스 테이블(430)에 근거 가상 메모리 어드레스가 결정된다. 상기 가상 메모리 어드레스에 대응하는 물리적 메모리 위치가 찾아진다. 상기 물리적 메모리 위치의 찾음에 근거하여 메모리의 일부가 액세스된다.

Description

타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에 관한 방법 및 장치{METHOD AND APPARATUS FOR PHYSICAL ADDRESS-BASED SECURITY TO DETERMINE TARGET SECURITY}
본 발명은 컴퓨터 시스템 동작들에 관한 것으로, 특히, 보안 메모리 액세스를 제공하기 위한 물리적 어드레스-기반 보안 방식(scheme)을 수행하기 위한 방법 및 장치에 관한 것이다.
컴퓨터나 컴퓨팅 시스템은 오늘날 산업 및 가정에서의 응용의 많은 분야에서 중요한 요소이다. 제조 시스템들, 전력 시스템들, 제품 배송 시스템, 기록 시스템 등과 같은 많은 시스템들은 프로세서들을 사용하는 컴퓨터 시스템에 의해 추진된다. 이러한 프로세서들은 많은 테스트들을 수행하고, 서로간에 상호작동하는 다양한 소프트웨어 프로그램들을 실행한다. 입력/출력 디바이스들은 종종 프로세서들 및 소프트웨어 프로그램들의 동작의 조정을 허용한다. 임의의 소프트웨어 구성들(예컨대, 소프트웨어 객체들, 서브루틴들, 독립형의 프로그램들 등)이 제어를 통해 다른 소프트웨어 구성들에 대해 우선권을 부여받을 수 있도록, 프로세서의 동작 동안 표준의 보안 레벨이 요구된다. 프로세서들에 대한 허가되지 않거나 부주의한 액세스 또는 동작을 막기 위하여, 임의의 소프트웨어 구성들 및 임의의 프로세서 기능들에 대한 액세스가 종종 제한된다. 현재의 컴퓨터 아키텍처는 컴퓨터 시스템 내의 물리적 메모리 안에 존재하는 여러 시스템-정의 테이블들을 사용하는 가상 메모리의 사용을 위한 방식을 포함한다. 이러한 시스템 테이블들 내의 엔트리는 보통 미리 정의되며, 임의의 소프트웨어 구성들에 대한 액세스를 제한하는 예비 섹션(reserved sections)들을 포함한다.
컴퓨팅 시스템은 단일 작업(single task) 디바이스들로부터 다중 작업(multitask) 디바이스들로 진화되어 왔다. 컴퓨팅 시스템은 많은 작업을 실행하고 그들의 리소스 사용을 관리하기 위해 오퍼레이팅 시스템을 사용한다. 전형적으로, 사용자가 프로세스를 시작할 때(예를 들어, 워드 프로세서와 같은 응용 프로그램을 열 때), 상기 오퍼레이팅 시스템은 상기 작업에 의한 사용을 위해 어떤 컴퓨팅 리소스들(예를 들어, 메모리의 일부분들)을 할당(dedicate)한다. 그러나 많은 컴퓨팅 리소스들은 이러한 방식으로 할당될 수 없거나 할당되지 않는다. 예를 들어, 프린터 드라이버들은 다양한 작업들에 의해 자주 사용된다. 그러므로 보통 오퍼레이팅 시스템들은 또한 그러한 공유 리소스들에 관련된 작업들에 대한 액세스 권리들 및 프로토콜들을 정의한다. 그래서, 오퍼레이팅 시스템들의 노력 덕분으로, 컴퓨팅 시스템들은 효율적인 방식으로 다양한 작업들을 동시에 실행할 수 있다.
그러한 컴퓨팅 환경에서의 중요한 한 측면은 "보안"이다. 다중작업을 행하는 컴퓨팅 시스템들은 사용자 프로세스들로부터 그들의 오퍼레이팅 시스템을 보호하고 그 프로세스들을 서로로부터 보호하기 위해 보안 및 보호 서비스들을 사용한다. 보호가 없는 경우, 불량 프로그램에 의한 상기 오퍼레이팅 시스템이나 또 다른 프로세스에 속하는 메모리 공간 내의 프로그램 코드나 데이터의 의도하지 않은 파괴를 야기할 수 있다. 주목할 사항으로서, 적어도 이러한 견지에서 보안은 비록 의도된 부당한 행위에 대한 보호를 고려하지만, 그러한 행위를 좌절시키는 것을 내포하지는 않는다.
x86 프로세서와 같은 많은 프로세서들은 특권 레벨과 같은 다수의 보안 레벨들을 제공한다. 도 1에서, 다수의 보안 레벨들을 표현한 한 예가 보여진다. 도 1에서 역 피라미드 형태 구조가 보안(특권) 레벨 0, 레벨 1, 레벨 2 및 레벨 3의 4개의 레벨들을 예시한다. 오퍼레이팅 시스템에는 레벨 0과 같은 베이스 특권 레벨이 제공된다. 보안 레벨 0으로 제공되는 특권은 특정한 소프트웨어 구성이 레벨 1 내지 레벨 3과 같은 후속 보안 레벨들로 제공되는 액세스를 얻을 수 있게 한다. 만일 소프트웨어 구성이 단지 보안 레벨 2의 특권만 허가된다면, 그 특정한 소프트웨어 구성은 단지 특권 레벨 2 및 레벨 3으로 제공되는 동작들에 대한 액세스 및 제어를 갖게된다. 많은 경우에서, 마이크로소프트 윈도우즈(Microsoft Windows TM)와 같은 대중적인 오퍼레이팅 시스템들은 다수의 특권 레벨들의 전체 능력을 사용하지 않는다. 어떤 소프트웨어 오퍼레이팅 시스템들은 레벨 0 및 레벨 3과 같은 단지 두 개의 특권 레벨들만 사용한다.
사용자 응용 프로그램은 보안 레벨 3에서 실행하고 오퍼레이팅 시스템 서비스들 및 드라이버들은 보안 레벨 0에서 동작한다. 이에 의해 컴퓨터 시스템이 다양한 보안 위험들에 노출된다. 이는 대부분의 드라이버들이 최상의 특권 레벨, 즉 레벨 0에서 동작함으로 인해, 대부분의 드라이버들이 모든 컴퓨터 리소스들에 액세스를 갖기 때문에 더욱 그러하다. 그러므로, 모뎀 디바이스와 같은 컴퓨터 시스템 내의 디바이스를 제어하는 드라이버에 대한 허가되지 않은 액세스는 시스템의 파괴를 가져오는 모뎀의 허가되지 않은 동작을 초래할 수 있다. 더욱이, 시스템 메모리에 대한 허가되지 않은 액세스는 중요한 데이터 및 소프트웨어 프로그램들의 손실을 야기할 수 있다.
본 발명은 상기에 제시된 하나 이상의 문제들을 극복하거나 또는 적어도 그에 대한 영향을 감소시키기 위한 것이다.
본 발명의 일 양상에 따르면, 가상 메모리 액세스를 수행하기 위한 방법이 제공된다. 소프트웨어 객체가 실행된다. 상기 소프트웨어 객체에 대한 보안 레벨이 설정된다. 적어도 상기 보안 레벨들의 하나를 이용하는 다중 테이블 메모리 액세스가 수행된다. 상기 객체의 기능이 실행된다.
본 발명의 또 다른 양상에 따르면, 가상 메모리 액세스를 수행하는 장치가 제공된다. 본 발명의 상기 장치는 버스에 연결된 프로세서, 적어도 하나의 소프트웨어 객체를 상기 프로세서에 연결하기 위한 수단, 메모리 유닛 및 상기 버스와 상기 메모리 유닛에 연결된 메모리 액세스 인터페이스를 포함하는바, 상기 메모리 액세스 인터페이스는 상기 소프트웨어 객체를 실행하는 상기 프로세서에 응답하여 적어도 하나의 보안 레벨을 기반으로, 상기 프로세서에 상기 메모리의 적어도 일부의 다중 레벨 테이블 메모리 액세스를 제공한다.
본 발명은 첨부 도면들과 관련한 다음의 설명을 참조함으로써 이해될 수 있으며, 이 첨부 도면들에서 동일한 참조부호들은 동일한 요소들을 나타낸다.
도 1은 컴퓨터 시스템 내의 보안 액세스를 위한 다수의 특권 레벨들의 구성적 표현을 나타낸다.
도 2는 본 발명의 일 실시예에 따라 사용될 컴퓨터 시스템의 블럭도이다.
도 3은 본 발명의 일 실시예에 따른, 도 2에 보여진 프로세싱 유닛의 더 상세한 블럭도이다.
도 4는 본 발명의 일 실시예에 따른, 도 3에 보여진 메모리 액세스 인터페이스의 더 상세한 블럭도이다.
도 5A 및 5B는 도 1 내지 도 4에서 설명된 프로세서에 의해 수행된 메모리 액세스의 블럭도이다.
도 6은 본 발명의 일 실시예에 따른 보안 방식을 사용하는 메모리 액세스 수행 방법의 흐름이다.
도 7은 본 발명의 일 실시예에 따른, 도 6에서 설명된 다중 테이블 메모리 액세스를 수행하는 방법의 흐름이다.
도 8은 본 발명의 일 실시예에 따른, 도 7에서 설명된 부차적인(secondary table) 메모리 액세스 테이블(즉, 제 2 테이블)을 설정하는 방법의 흐름도이다.
도 9는 본 발명의 일 실시예에 따른, 도 7에서 설명된 다중 테이블 액세스를 수행하는 방법의 흐름도이다.
도 10은 본 발명의 일 실시예에 따른, 도 9에서 설명된 부차적인 메모리 액세스 테이블 내의 보안 레벨을 결정하는 방법의 흐름도이다.
도 11은 본 발명의 일 실시예에 따른, 도 7에서 설명된 다중 레벨 테이블 액세스에 응답하여 적당한 메모리 액세스를 용이하게 하는 방법의 흐름도이다.
본 발명은 비록 다양한 수정과 대안적인 형태들이 가능하지만, 본 명세서에서는 발명의 특정한 실시예를 예로써 도면에 도시하였으며, 이에 대해 자세히 설명될 것이다. 그러나 도면 및 이에 대한 상세한 설명은 본 발명을 개시된 특정 예로만 제한하도록 의도된 것은 아니며, 오히려 첨부된 청구항에 의해 정의되는 것처럼 본 발명의 정신 및 범위 내에 드는 모든 변형, 균등물 및 대안들을 포괄하도록 의도된 것이다.
이하, 본 발명의 예시적인 실시예들이 설명된다. 명확성을 위하여, 본원에서는 실제 구현시의 모든 특징들을 다 설명하지는 않는다. 어떠한 실제 실시예의 전개에 있어서, 실행마다 변하게 되는 시스템 관련 및 사업 관련 제약들과의 호환성과 같은 개발자의 특정한 목표들을 달성하기 위해서는 다수의 실시별 특정한 결정들이 이루어져야 한다는 것을 알 수 있을 것이다. 또한, 이러한 개발 노력은 복잡하고 시간 소모적이지만, 그럼에도 불구하고 본원의 개시의 이익을 갖는 당업자에게 있어서는 일상적인 일이라는 것을 알 수 있을 것이다.
도 1에서 보여지는 것처럼, 본 발명의 실시예들은 보안 액세스 시스템들을 이용한 메모리 액세스를 제공한다. 본 발명의 실시예들은 컴퓨터 시스템 내의 하나 이상의 프로세서들에 의해 개시되는 메모리 액세스 동안 보안을 제공하기 위한 다양한 메모리 액세스 테이블 시스템을 제공한다. 본 발명의 실시예들은 또한 주 가상 메모리 액세스 테이블 및 부차적인 메모리 액세스 테이블을 사용하는 가상 메모리 액세스 시스템을 제공하는데, 이는 메모리 액세스들 동안 보안을 증대시키게 된다.
도 2에 따르면, 본 발명에 따른 시스템(200)의 일 실시예가 보여진다. 시스템(200)은 처리 유닛(210)과, 키보드(230), 마우스(240) 및 입력 펜(250)과 같은 다수의 입력/출력 디바이스들 및 모니터와 같은 디스플레이 유닛(220)으로 구성된다. 일 실시예에서, 본 발명에 따른 보안 레벨 시스템이 상기 처리 유닛(210) 내에 존재한다. 입력/출력 디바이스들(230, 240, 250) 중 하나에 의한 입력에 의해 처리 유닛(210) 내에서 작동 시스템을 포함한 하나 이상의 소프트웨어 구성의 실행이 개시된다. 시스템(200) 내에 존재하는 메모리는 처리 유닛(210) 내에 존재하는 다양한 소프트웨어 구성을 실행하기 위해 액세스된다. 본 발명의 실시예들은 시스템(200) 내에 프로그램된 소정의 보안 엔트리를 근거로 하여, 하나 이상의 소프트웨어 구성들에 의해 개시된 메모리 액세스를 제한한다.
도 3에서, 본 발명에 따른 처리 유닛(210)의 일 실시예의 단순화된 블럭도가 보여진다. 일 실시예에서 처리 유닛(210)은 프로세서(310), 메모리 액세스 인터페이스(320), 메모리 유닛(340) 및 소프트웨어 객체들이나 구성들과 같은 프로그램가능 객체들(350)을 포함한다. 상기 프로세서(310)는 다수의 프로세서들(도시되지 않음)을 포함하는 마이크로프로세서로 될 수 있다. 상기 메모리 유닛(340)은 자기 테이프 메모리, 플래시 메모리, 랜덤 액세스 메모리, 반도체 칩들 상에 있는 메모리 등과 같은 물리적 메모리 부(345)를 포함한다. 반도체 칩 상에 있는 메모리는 동기 다이내믹 랜덤 액세스 메모리(SDRAM : synchronous dynamic random access memory), 2배속 다이내믹 랜덤 액세스 메모리(DDRAM : double-rate dynamic random access memory) 또는 유사한 것과 같은 다양한 형태들 중 하나를 사용한다. 상기 프로세서(310)는 상기 시스템 메모리 액세스 인터페이스(320)를 통해 상기 메모리 유닛(340)과 통신한다. 일 실시예에서, 상기 메모리 액세스 인터페이스(320)는 원하는 메모리 트랜잭션을 특성화하기 위해 상기 메모리 유닛(340)에 메모리 어드레스들 및 로직 시그널들을 제공하는 전형적인 구조이다.
일 실시예에서, 상기 프로세서(310)는 호스트 버스(315)에 연결된다. 상기 프로세서(310)는 상기 호스트 버스(315)를 통해 상기 메모리 액세스 인터페이스(320) 및 상기 객체들(350)과 통신한다. 상기 메모리 액세스 인터페이스(320)는 상기 호스트 버스(315) 및 상기 메모리 유닛(340)에 연결된다. 상기 프로세서(310)는 또한 주변 디바이스들과의 통신에 사용되는 주 버스(325)에 연결된다. 일 실시예에서, 상기 주 버스(325)는 PCI(peripheral component interconnect) 버스이다.(PCI 사양, Rev. 2. 1을 보라). 디스플레이 유닛(220)을 구동하는 비디오 제어기(도시되지 않음)와 다른 디바이스들(예를 들어, PCI 디바이스들)은 상기 주 버스(325)에 연결된다. 상기 컴퓨터 시스템(200)은 보조 PCI 버스(도시되지 않음)와 같은 다른 버스나 이 기술분야의 당업자에게 알려진 다른 주변 디바이스들(도시되지 않음)을 포함한다.
프로세서(310)는 상기 객체들(350)로부터의 명령에 근거하여 다수의 컴퓨터 처리 동작들을 수행한다. 상기 객체들(350)은 상기 프로세서(310)를 프롬프트하여 다수의 기능들을 실행하게 하는 소프트웨어 구성들을 포함한다. 또한, 오퍼레이팅 시스템들, MS 워드TM와 같은 사용자 인터페이스 소프트웨어 시스템들 등과 같은 상기 객체들(350)의 다수의 서브섹션은 상기 프로세서(310) 내에서 동시에 상주하여 동작들을 실행할 수 있다. 본 발명의 실시예는 상기 프로세서(310)에 대한 보안 레벨 액세스 및 특권을 제공한다.
상기 객체들(350)에 의해 제공된 소프트웨어 코드들의 실행에 응답하여, 상기 프로세서(310)는 하나 이상의 객체들(350)의 개시에 의해 프롬프트(즉, 기동)된 상기 작업을 실행하기 위하여 하나 이상의 메모리 액세스들을 수행한다. 상기 프로세서(310)에 의해 수행된 상기 메모리 액세스는 실행 코드들의 저장을 위한 액세싱 메모리 위치들 및 저장된 메모리 위치들로부터 데이터를 얻기 위한 메모리 액세스를 포함한다. 특정한 메모리 위치들 내에 저장된 임의의 데이터는 일부 선택된 객체들(350)중 하나에 의한 액세스에 대해 종종 제한된다. 본 발명의 실시예들은 상기 시스템(200) 내의 특정한 메모리 위치들에 대한 액세스를 제한하기 위해 다중 테이블 보안 액세스를 제공한다. 상기 프로세서(310)는 상기 메모리 액세스 인터페이스(320)를 통해 메모리 액세스를 수행한다. 상기 메모리 액세스 인터페이스(320)는 상기 메모리 유닛(340)에 대한 액세스를 제공하는데, 이 메모리 유닛은 물리적 메모리(345) 및 가상 메모리(342)(즉, 본 명세서의 개시의 이득을 갖는 이 기술분야의 당업자들에게 알려진 가상 메모리 기술들을 사용하여 조직된 물리적 메모리)를 포함한다. 다중 테이블 가상 메모리 액세스 프로토콜이 본 발명의 적어도 일 실시예에 의해 제공된다.
도 4에서, 본 발명에 따른 상기 메모리 액세스 인터페이스(320)의 일 실시예의 블럭도가 보여진다. 일 실시예에서, 상기 메모리 액세스 인터페이스(320)는 가상 메모리 액세스 테이블(410) 및 부차적인 메모리 액세스 테이블(430)을 포함한다. 본 발명의 실시예들은 가상 메모리 시스템을 사용한 메모리 액세스의 수행을 제공한다. 본 발명의 실시예들에서 사용된 가상 메모리 시스템은 가상 메모리 어드레스들에 액세스 하기 위해 다중레벨 테이블 어드레싱 방식(즉, 상기 부차적인 메모리 액세스 테이블(430)과 조합하여 상기 가상 메모리 액세스 테이블(410)을 사용하는)을 사용한다. 상기 가상 메모리 어드레스들은 상기 프로세서(310)가 원하는 물리적 메모리 위치를 찾는데 사용된다.
상기 시스템(200)은 가상 메모리 어드레스를 정의하기 위해, 상기 부차적인 메모리 액세스 테이블(430)과 같은 적어도 하나의 다른 테이블들과 조합하여 상기 가상 메모리 액세스 테이블(410)을 사용한다. 상기 가상 메모리 액세스 테이블(410) 및 부차적인 메모리 액세스 테이블(430)은 가상 메모리 어드레스들(선형 어드레스들)을 물리적 메모리 어드레스로 변환(translate)하는데 사용된다. 상기 물리적 메모리 어드레스는 상기 물리적 메모리(345) 내의 메모리 위치를 가리킨다. 본 발명의 실시예들에 의해 제공된 다중 레벨 메모리 테이블 시스템은 상기 부차적인 메모리 액세스 테이블(430)이 상기 가상 메모리 어드레스 테이블(410)의 전체 부분을 정의할 수 있게 한다. 어떤 경우에는, 상기 부차적인 메모리 액세스 테이블(430)은 상기 가상 메모리 액세스 테이블(410) 내에 존재할 수 없는 가상 메모리 어드레스의 부분을 정의할 수 있다. 상기 부차적인 메모리 액세스 테이블(430)은 상기 가상 메모리 액세스 테이블(410)에 의해 발생된 가상 메모리 어드레스에 근거하여 물리적 메모리 위치를 더 정의하는 미세 조정(fine-tuning) 디바이스로써 사용될 수 있다. 이것은 가상 메모리 어드레스 정의를 보다 정확하고 빠르게 한다.
일 실시예에서, 자체 내에 다수의 서브-셋 테이블들을 구비할 수 있는 상기 부차적인 메모리 액세스 테이블(430)은 도 3에서 보여지는 상기 물리적 메모리(340), 또는 상기 시스템(200)의 메인 메모리(도시되지 않음) 내에 저장된다. 상기 부차적인 메모리 액세스 테이블(430)은 비보안되거나 비검증된 소프트웨어 구성들이나 객체들(350)이 상기 부차적인 메모리 액세스 테이블(430)에 대한 액세스를 얻는 것을 막기 위해 높은 보안 레벨들로 저장된다. 일 실시예에서, 상기 프로세서(310)는 객체(350)에 의해 보내진 명령들을 기반으로 상기 물리적 메모리(345) 내의 위치에 액세스를 요청한다. 상기 프로세서(310)에 의해 행해진 메모리 액세스 요청에 응답하여, 상기 메모리 액세스 인터페이스(320)는 상기 가상 메모리 액세스 테이블(410)에 지시하여 가상 메모리 어드레스를 생성하도록 하는데, 이 가상 메모리 어드레스는 상기 부차적인 메모리 액세스 테이블(430)에 의해 더 정의된다. 상기 가상 메모리 어드레스는 상기 가상 메모리(342) 내의 위치를 가리킨다. 그 다음, 상기 프로세서(310)는 상기 가상 메모리 위치로의 액세스를 요청하는데, 이는 상기 물리적 메모리(345) 내의 대응 위치를 찾는데 사용된다.
상기 프로세서(310)에 의해 수행되는 상기 메모리 액세스를 수행하는 일 실시예가 도 5A 및 도 5B에 도시되어 있으며, 이에 대해 하기에 설명한다. 이제 도 5A를 보면, 데이터 프로세서나 컴퓨터 시스템에서 보안 레벨 속성(attribute)들을 저장하고 검색하기 위한 메모리 시스템(500)의 예시적인 일 실시예가 보여진다. 일 실시예에서, 상기 메모리 시스템(500)은 상기 시스템(200)내의 처리 유닛(210) 내에 통합된다. 상기 메모리 시스템(500)은 메모리 액세스를 위해 가상 어드레스 방식을 사용하는 데이터 프로세서(도시되지 않음)에서 유용하다. 예를 들어, 상기 메모리 시스템(500)은, x86 타입 마이크로프로세서들에서 구현되는 페이징 방식들과 같은 페이징 방식을 사용하여 메모리를 어드레싱할 때 상기 프로세서(310)에 의해 사용될 수 있다. 일 실시예에서, x86 시스템 내의 하나의 메모리 페이지는 4킬로바이트(Kbyte)의 메모리를 포함한다. 또한, 상기 메모리 시스템(500)은 상기 페이지 레벨로 적당한 보안 레벨 속성들을 할당하는 상기 프로세서(310) 내의 특정한 응용들을 발견한다.
상기 메모리 시스템(500)은, x86 타입 마이크로프로세서 내의 페이징 유닛에 의해 수신될 수 있는 가상, 선형 또는 중간 어드레스와는 대조적으로 페이지 부분(510) 및 오프셋 부분(520)으로 구성된 물리적 어드레스(553)를 수신한다. 일 실시예에서, 상기 페이지 부분(510)의 데이터는 적당한 메모리 페이지를 어드레싱(addressing)하고, 상기 오프셋 부분(520)의 데이터는 상기 선택된 페이지 부분(510) 내의 특정한 오프셋 메모리 위치를 어드레싱한다. 상기 메모리 시스템(500)은 x86 타입 마이크로프로세서 내의 페이징 유닛(도시되지 않음)에 의해 생성될 수 있는 상기 물리적 어드레스(553)를 수신한다.
일반적으로 확장된 보안 속성 테이블(ESAT : extended security attributes table)로 언급되는 다중 레벨 룩업 테이블(530)은 상기 물리적 어드레스의 페이지 부분(510)을 수신한다. 상기 다중 레벨 룩업 테이블(530)은 메모리의 각 페이지에 관련된 보안 속성들을 저장한다. 다시 말하면, 각 페이지는 그 페이지에 연관된 임의의 보안 레벨 속성들을 가진다. 일 실시예에서, 상기 페이지에 관련된 상기 보안 속성들은 다중 레벨 룩업 테이블(530) 내에 저장된다. 예를 들어, 각 페이지에 연관된 상기 보안 속성들은 룩 다운, 보안 콘텍스트 ID, 라이트웨이트 콜 게이트, 판독 인에이블, 기입 인에이블, 실행, 외부 마스터 기입 인에이블, 외부 마스터 판독 인에이블, 암호화 메모리, 보안 명령 인에이블 등을 포함한다. 이러한 많은 속성들은 본 명세서의 개시의 이득을 갖는 이 기술분야의 당업자에게 알려져 있다.
일 실시예에서, 상기 다중 레벨 룩업 테이블(530)은 시스템(200)의 시스템 메모리(도시되지 않음) 내에 위치된다. 대안적인 실시예에서, 다중 레벨 룩업 테이블(530)은 상기 프로세서(310) 내에 통합되는데, 상기 프로세서(310)는 상기 시스템(200)을 사용하는 마이크로프로세서를 포함한다. 따라서, 상기 다중 레벨 룩업 테이블(530)이 동작할 수 있는 속도는 적어도 부분적으로 상기 시스템 메모리의 속도에 의존한다. 상기 프로세서(310)의 속도와 비교하면 상기 시스템 메모리의 속도는 일반적으로는 상대적으로 느리다. 그래서, 상기 다중 레벨 룩업 테이블(530)을 사용하여 상기 보안 속성들을 검색하는 과정은 상기 시스템(200)의 전체 동작을 느리게 할 것이다. 상기 보안 속성들을 찾아 검색하는데 요구되는 시간 주기를 줄이기 위해서, 상기 다중 레벨 룩업 테이블(530)과 병행하여 캐시(540)가 구현된다. 상기 캐시(540)는 상기 프로세서(310)처럼 같은 반도체 다이 상에 위치되거나(즉, 상기 캐시와 상기 프로세서(310)는 하나의 반도체 칩 내에 집적된다.) 또는 상기 프로세서 다이 외부에 놓일 수 있다. 일반적으로, 상기 캐시(540)의 속도는 상기 다중 레벨 룩업 테이블(530)의 속도 보다 실질적으로 빠르다. 상기 캐시(540)는 보다 적은 상기 페이지들의 서브셋들과 그리고 상기 다중 레벨 룩업 테이블(530) 내에 포함된 그들의 보안 속성들을 포함한다. 그래서, 상기 캐시(540) 내에 저장된 상기 페이지들의 경우, 상기 보안 속성들에 대한 검색의 동작이 실질적으로 강화된다.
도 5B를 보면, 메모리 내의 페이지와 관련된 상기 보안 속성들을 저장 및 검색하기 위하여 사용되는 상기 다중 레벨 룩업 테이블(530)의 일 실시예가 나타난다. 상기 다중 레벨 룩업 테이블(530)은 보통 ESAT 디렉토리로 언급되는 제 1 테이블(550)과 보통 상기 ESAT로 언급되는 부차적인 메모리 액세스 테이블(552)을 포함한다. 일반적으로, 상기 제 1 테이블(550)은 다수의 ESAT들(552)에 대한 시작 어드레스들의 디렉토리들을 포함하며, 여기에 상기 페이지들 각각에 대한 상기 보안 속성들이 저장된다. 실시예에서, 전체 메모리를 맵핑하기 위해 단일한 ESAT 디렉토리(550)가 사용된다.
최고 차수의 비트들을 포함하고 보통 디렉토리(DIR)(554)로 언급되는 물리적 어드레스(553)의 제 1 부분은 상기 제 1 테이블(550) 안으로의 포인터로서 사용된다. 상기 물리적 어드레스(553)는 또한 테이블 데이터(570)를 포함하는 부분을 포함하는데, 이 부분은 어드레스 되는 상기 테이블(550, 552)을 식별할 수 있다. 상기 물리적 어드레스(553)는 특정한 엔트리(560, 580)가 되는 테이블(550, 552) 내에 오프셋(520)을 더 포함한다. 제 1 테이블(550)은 상기 시스템 메모리 내에서 베이스 어드레스(555)에 위치된다. 상기 물리적 어드레스(553)의 상기 DIR 부분(554)은 상기 베이스 어드레스(555)에 추가되어 엔트리(560)를 식별하는데, 엔트리(560)는 부차적인 메모리 액세스 테이블들(552) 중 하나 내의 적당한 어드레스의 베이스 어드레스를 가리킨다. 일 실시예에서, 다수의 부차적인 메모리 액세스 테이블들(552)은 상기 다중 레벨 룩업 테이블(530) 내에 존재한다. 일반적으로, 제 1 테이블(550) 내의 상기 엔트리들(560)의 각각은 부차적인 메모리 액세스 테이블들(552) 내의 어드레스들 중 하나의 시작 어드레스를 가리킨다. 다시 말해, 각 엔트리(550)는 그 자신의 개별 ESAT(552)를 가리킨다.
일 실시예에서, 제 1 테이블(550)과 그리고 부차적인 메모리 액세스 테이블들(552) 각각은 물리적 메모리(345)의 한 페이지를 차지한다. 그래서, 인에이블된 페이징을 가진 x86 타입 마이크로프로세서 내의 종래의 메모리 관리 유닛은, 필요시 상기 테이블들(550, 552)을 상기 시스템 메모리 내로 또는 밖으로 스왑할 수 있다. 즉, 상기 테이블들(550, 552)의 다중 레벨 구성 때문에, 상기 테이블(552)들의 모두는 상기 메모리 시스템(500)이 적절히 동작하도록 상기 물리적 메모리(345) 내에 동시에 존재할 필요가 없다. 만일 현재 물리적 메모리에 위치되어 있지 않은 테이블(552)들 중 하나가 제 1 테이블(550) 내의 엔트리(560)에 의해 요구된다면, 종래의 x86 마이크로프로세서 내의 메모리 관리 유닛(도시되지 않음)은 하드 디스크 드라이브와 같은 메인 메모리로부터 상기 페이지를 판독하고 상기 요구된 페이지(552)를 (이 페이지를 액세스할)시스템 메모리 내에 저장할 것이다. 상기 테이블들(550, 552)의 한-페이지 사이즈화는 상기 다중 레벨 룩업 테이블(530)을 저장하기 위해 필요한 시스템 메모리의 양을 줄이고, 상기 테이블들(550, 552)을 사용하여 메모리에 액세스하기 위해 필요한 메모리 스왑의 횟수를 줄인다.
일 실시예에서, 각 페이지의 사이즈가 4 킬로바이트(Kbyte)이고 상기 시스템 메모리는 총 16 메가바이트(Mbyte)이다. 그래서, 대략 4000 ESAT 테이블들(552)이 페이지 내에 있게 된다. 일 실시예에서, 상기 4000 ESAT 테이블들(552) 각각은 4000 세트의 보안 속성들을 포함한다. 더욱이, 상기 ESAT 디렉토리(550)는 4000 ESAT 테이블들(552) 각각에 대한 시작 어드레스를 포함한다. 제 1 테이블(550)의 엔트리(560)는 적당한 부차적인 메모리 액세스 테이블(552)의 베이스 어드레스를 가리킨다. 적당한 부차적인 메모리 액세스 테이블(552) 내의 원하는 엔트리(580)는 상기 물리적 어드레스(553)의 제 2 부분(552)(상기 테이블 부분)을 상기 엔트리(560) 내에 포함된 상기 베이스 어드레스(555)에 추가하는 것에 의해 식별된다. 일 실시예에서, 상기 엔트리(580)는 물리적 메모리(345) 내의 상기 식별된 페이지와 연관된 소정의 보안 속성들을 포함한다. 도 5A및 도 5B에서 묘사된 다중 테이블 방식은 예시적인 실시예이고, 본 명세서의 개시의 이득을 갖는 이 기술분야의 당업자라면 본 발명에 따른 다양한 다중 테이블 방식들을 구현할 수 있을 것이다.
도 6에서는 본 발명의 일 실시예에 따른 방법들의 흐름도가 보여진다. 객체(350)가 상기 시스템(200)에 의해 개시된다(블럭 610). 특정한 소프트웨어 프로그램(예를 들어, Microsoft WordTM )과 같은 객체(350)가 마우스(240)와 같은 입력/출력 디바이스의 활성화에 의해 개시된다. 상기 객체(350)가 상기 시스템(200)에 의해 개시될 때, 상기 프로세서(310)는 상기 객체(350)에 의해 제공되는 코드를 실행한다(블럭 620). 상기 시스템(200)은 상기 객체(350)에 대한 소정의 보안 레벨에 근거하여 보안 레벨을 설정한다(블럭 630). 상기 시스템(200)은 다중 테이블 메 모리/리소스 액세스를 시작한다(블럭 640). 상기 시스템(200)에 의해 수행된 상기 다중 테이블 메모리/리소스 액세스는 하기에서 더 자세히 설명된다. 상기 시스템(200)에 의해 설정된 상기 보안 레벨 및 상기 시스템(200)에 의해 수행된 상기 다중 테이블 메모리/리소스 액세스에 근거하여, 상기 객체(350)의 기능(들)이 실행된다. 상기 객체(350)의 기능들은 기록의 생성, 무선 모뎀과 같은 모뎀에 의해 개시된 통신들의 실행과 유사한 것을 포함한다(블럭 650).
도 7에서는, 도 6의 블럭 640에서 묘사된 상기 다중 테이블 메모리/리소스 액세스를 수행하는 일 실시예의 순서도가 묘사된다. 상기 시스템(200)은 부차적인 메모리 액세스 테이블 셋업 기능을 수행한다(블럭 710). 부차적인 메모리 액세스 테이블 셋업은 부차적인 메모리 액세스 테이블(430)에 보안 레벨 데이터를 설정하는 것 및/또는 갱신하는 것을 포함한다. 상기 부차적인 메모리 액세스 테이블(430)은 상기 가상 메모리 액세스 테이블(410) 내의 다수의 부분들을 정의하는데 사용될 수 있다. 상기 부차적인 메모리 액세스 테이블(430)은 상기 가상 메모리 액세스 테이블(410)로부터 누락(missing)될 수 있는 테이블 엔트리들(예를 들어, 도 5B의 560, 580)의 전체 부분들과 관련된 데이터를 포함할 수 있다.
일 실시예에서, 상기 시스템(200)은 물리적 메모리(345)를 페이지들로 분할하여, 상기 페이지들을 근거로 하여 상기 프로세서(310)가 물리적 메모리(345)에 액세스할 수 있게 된다. 일 실시예에서, 상기 페이지들은 x86 프로세서와 호환 가능한 4 킬로바이트(Kbyte)의 메모리 부분들로 정의된다. 상기 가상 메모리 액세스 테이블(410) 및 부차적인 메모리 액세스 테이블(430)은 상기 테이블들(410, 430) 안에 인덱스들을 포함한다. 이러한 인덱스들은 상기 물리적 메모리(345)의 특정한 부분을 찾는데 사용될 수 있는 물리적 어드레스(553)를 계산하는데 사용될 수 있다. 상기 프로세서(310)에 의해 수행되는, 상기 테이블들(410, 430)을 사용한 메모리의 액세스는 하기에서 더 자세히 설명된다.
일단 상기 시스템(200)이 상기 부차적인 메모리 액세스 테이블(430)을 셋업하면, 상기 시스템(200)은 상기 프로세서(310)로부터의 메모리 액세스 요구들을 체크한다(블럭 720). 상기 프로세서(310)로부터의 메모리 액세스 요구들은 일반적으로 객체(350)에 의해 촉구된다. 어떤 객체들(350)은 모뎀을 통한 통신들을 개시 하는것, 특정 문서에 관한 데이터를 검색하는 것 등과 같은 그들의 각각의 작업들을 수행하기 위해 과도한 메모리 액세스들을 요구한다. 상기 시스템(200)은 메모리 액세스 요구가 수신되었는지 여부를 결정한다(블럭 730). 메모리 액세스 요구가 수신되지 않았다고 결정한 때, 상기 시스템(200)은 도 7 에서 블럭(730)으로부터 블럭(720)으로의 경로로 표시된 바와 같이 메모리 액세스 요구들에 대한 체크를 계속한다.
상기 시스템(200)이 메모리 액세스가 요구되었다고 결정한 때, 상기 시스템(200)은 본 발명의 일 실시예에 따라, 다중 레벨 테이블 액세스를 수행한다(블럭 740). 상기 시스템에 의해 수행된 상기 다중 레벨 테이블 액세스의 더 자세한 설명이 하기에 제공된다. 일단 상기 시스템이 블럭(740)에서 설명된 상기 다중 테이블 액세스를 수행하면, 상기 시스템(200)은 상기 다중 레벨 테이블 액세스에 응답하여 적당한 메모리 액세스를 허용한다(블럭 750). 다시 말하면, 시스템(200)은 상기 프로세서(310)에 요구하는 것을 촉구한 객체(350)가 메모리 요구를 요청할 수 있게 하여 실제로 상기 프로세서(310)에 의해 요구된 상기 물리적 메모리(345)에 대한 액세스를 얻을 수 있도록 한다.
도 8에서, 도 7의 블럭(710)에 표시된 것처럼, 부차적인 메모리 액세스 테이블(430)을 셋업하는 방법의 일 실시예가 묘사된다. 상기 시스템(200)은 상기 물리적 메모리(345)를 다수의 세그먼트들로 분할한다. 이러한 세그먼트들은 종종 메모리 페이지로 언급된다. 일 실시예에서, 상기 세그먼트들/페이지들은 4 킬로바이트(Kbyte)에 상당하는 메모리 세그먼트들/페이지들로 분할된다(블럭 810). 일 실시예에서, 상기 물리적 메모리(345)를 4 킬로바이트 세그먼트들로 분할하는 것은 본 명세서의 개시의 이득을 갖는 이 기술분야의 당업자들에게 알려진 하드웨어 프로세스에 의해 수행될 수 있다. 대안적인 실시예에서, 상기 물리적 메모리(345)를 세그먼트들로 분할하는 것은 본 명세서의 개시의 이득을 갖는 이 기술분야의 당업자들에게 알려진 소프트웨어 기술들을 사용하여 수행될 수 있다.
상기 시스템(200)은 어떤 세그먼트들을 상기 부차적인 메모리 액세스 테이블(430)로부터 생략할지를 결정하고 생략 기능을 수행한다(블럭 820). 상기 부차적인 메모리 액세스 테이블(430)로부터 생략된 상기 세그먼트들은 디폴트 보안 레벨이 할당될 수 있는 메모리 페이지들이다. 상기 생략된 세그먼트들은 넓은-레벨 또는 저-레벨 보안 레벨이 할당될 수 있는 메모리 페이지들을 포함한다. 그러므로, 상기 메모리(200)는 생략된 세그먼트들에 대해 디폴트 보안 레벨을 할당한다(블럭 830). 최저 보안 레벨이 상기 생략된 세그먼트들에게 할당되고, 따라서 상기 생략된 세그먼트들은 상기 프로세서(310)를 촉구하여 메모리를 액세스하도록 하는 사실상 어떤 소프트웨어 객체(350)에 의해 액세스될 수 있다.
이어서, 상기 시스템(200)은 상기 물리적 메모리(345) 내의 각각의 생략되지 않은 세그먼트/페이지에 대응하는 보안 레벨을 할당한다(블럭 840). 상기 시스템(200)은 상기 프로세서(310)를 통한 특정한 객체들(350)에 의한 예상된 액세스들에 근거하여 보안 레벨을 상기 메모리 페이지들에 할당한다. 상기 시스템(200)은 상기 프로세스 유닛(210) 내의 임의의 하드웨어 디바이스들 및 다른 메모리 위치들을 보호하고 적당한 보안 레벨을 생략되지 않은 세그먼트/페이지들에게 할당한다.
일단 상기 보안 레벨들이 할당되면, 상기 시스템(200)은 특정한 세그먼트들/페이지들을 상기 가상 메모리(342)와 상호 관련시킨다(블럭 850). 가상 메모리 어드레스들은 특정한 보안 레벨들을 근거로 하여 특정한 물리적 메모리 세그먼트들(345)을 가리킬 수 있다. 이어서, 상기 시스템(200)은 다중 레벨의 부차적인 메모리 액세스 테이블(430)을 생성하기 위해 가상 메모리(342)의 상기 물리적 메모리(345) 내의 세그먼트들에 대한 상관 관계를 사용한다. 일 실시예에서, 상기 부차적인 메모리 액세스 테이블(430) 내의 특정한 공간들은 메모리 리소스들을 절감하기 위해 생략된다. 상기에서 설명된 것과 같이, 상기 생략된 메모리 위치들에는 일반적으로 최저 보안 레벨인 디폴트 보안 레벨이 할당된다.
도 9는 도 7의 블럭(740)에 기재된 상기 다중 레벨 테이블 액세스 프로세스를 수행하는 일 실시예를 도시한다. 메모리 액세스에 대한 요구를 수신한 후, 상기 시스템(200)은 상기 요구된 메모리 액세스에 응답하여 상기 부차적인 메모리 액세스 테이블(430) 내의 보안 레벨을 결정한다(블럭 910). 상기 시스템(200)은 상기 프로세서(310) 내의 소프트웨어의 실행을 개시하는 객체(350)의 형태에 관한 상기 프로세서(310)로의 표시에 응답하여 상기 메모리 액세스에 근거하여 상기 부차적인 메모리 액세스 테이블(430) 내의 상기 보안 레벨을 결정한다. 임의의 소프트웨어 객체들(350)은 메모리 내의 임의의 중요한 데이터(sensitive data)에 대한 액세스 그리고/또는 상기 프로세서 유닛(310) 내의 입력/출력 디바이스들에 대한 액세스를 허용하는 보다 고-레벨의 보안 액세스를 요구한다. 예를 들어, 데이터의 통신 전환을 요구하는 소프트웨어 객체(350)가 상기 프로세서 유닛(310)으로부터의 중요한 데이터에 액세스하기 위해 고-보안 레벨 제거를 요구(clearance)할 수도 있다. 이에 반하여, 데이터 프로세서의 상기 기능을 수행하는 Microsoft WordTM 와 같은 소프트웨어 객체(350)는 그것의 작업을 수행하기 위하여 저-레벨의 보안 제거를 요구할 수도 있다.
상기 시스템(200)은 상기 메모리 액세스 요구를 개시하는 상기 소프트웨어 객체(350)의 보안 레벨의 실행 및 상기 메모리 액세스의 타겟인 상기 페이지의 상기 보안 레벨을 결정한다(블럭 920). 상기 프로세서(310)는 매칭(즉, 상기 요구된 메모리 액세스를 허가할 것인지 아닌지)을 결정하기 위해서 현재 실행중인 소프트웨어 객체(350)의 보안 레벨을 상기 메모리 액세스의 타겟인 상기 페이지의 보안 레벨과 비교한다. 이에 의해 물리적 메모리(345) 내의 임의의 중요한 데이터에 액세스할 권한이 없는 임의의 소프트웨어 객체들(350)이 임의의 메모리 위치들을 액세스 및 제어하는 것이 방지된다. 상기 시스템(200)은 이제 적당한 보안 레벨을 상기 소프트웨어 객체(350)에 의해 개시된 상기 특정한 액세스 요구와 상호 관련시킨다(블럭 930).
상기 시스템(200)은 부차적인 메모리 액세스 테이블 어드레스를 상기 물리적 메모리(345) 내의 위치에 대응하는 상기 가상 메모리(342)와 상호 관련시킨다. 상기 시스템(200)은 상기 물리적 메모리(345)의 위치를 찾아, 적당한 보안 레벨을 상기 물리적 메모리 페이지에 상호 연관시킨다(블럭 950). 일 실시예에서, 상기 메모리 액세스 인터페이스(320)가 상기 가상 메모리(342)의 위치를 찾고 그리고 상기 가상 메모리(342)를 상기 물리적 메모리(345)내의 어떤 위치에 상관시키는 것을 수행한다.
도 10은, 도 9의 블럭(910)에서 보여진 바와 같이 상기 프로세서(310)의 메모리 액세스 요구에 응답하여 상기 부차적인 메모리 액세스 테이블(430) 내의 보안 레벨을 결정하는 일 실시예를 도시한다. 상기 시스템(200)은 상기 가상 메모리 액세스 테이블(410)로부터의 상기 메모리 액세스 요구에 응답하여 상기 물리적 어드레스(553)를 결정한다(블럭 1010). 이어서, 상기 시스템(200)은 상기 물리적 어드레스(553)에 근거하여, 상기 소프트웨어 객체(350)에 응답하여 상기 프로세서(310)에 의해 현재 실행되는 상기 메모리 세그먼트/페이지의 위치를 찾는다(블럭 1020). 상기 시스템(200)은 상기 소프트웨어 객체(350)에 근거한 코드를 실행할 때, 상기 프로세서(310)가 실행을 행하는 상기 페이지의 보안 레벨을 결정하는바, 이에 의해 현재의 보안 레벨을 정의할 수 있다. 그러므로, 상기 시스템(200)은 상기 보안 레벨을 정의하기 위해 상기 메모리 세그먼트/페이지를 효율적으로 사용한다(블럭 1040). 이제, 상기 시스템(200)은 적절한 메모리 액세스를 수행하기 위해 상기 정의된 보안 레벨을 상기 프로세서(310)로 보낸다(블럭 1030). 도 10에 나타난 상기 단계들이 완료됨으로써 도 9의 블럭(910)에서 보여진 부차적인 메모리 액세스 테이블 내의 보안 레벨 결정 단계가 실질적으로 완료된다.
도 11에서, 도 7의 블럭(750)에서 설명된 적당한 메모리 액세스를 수행하기 위한 단계들의 일 실시예의 흐름도가 보여진다. 상기 시스템(200)은 특정한 메모리 액세스 요구에 대응하는 상기 보안 레벨을 체크한다(블럭 1110). 상기 보안 레벨은 상기 프로세서(310)에 의해 실행되는 상기 특정한 소프트웨어 객체(350)에 근거하여 특정한 메모리 요구와 상호 관련될 수 있다. 상기 시스템(200)은 이제 상기 보안 레벨이 상기 메모리/리소스들에 대한 액세스를 허락하기에 충분한지 여부를 결정한다(블럭 1120). 상기 시스템(200)은 상기 보안 레벨 인가가 상기 프로세서(310)에 의해 요구된 상기 메모리 액세스를 허가하고 특정한 메모리 위치들에 대한 액세스를 얻는데 적당한지를 체크한다.
상기 시스템(200)이 상기 보안 레벨은 상기 프로세서(310)에 의해 행해진 특정한 메모리 액세스 요구에 근거하여 메모리/리소스들에 대한 액세스를 허락하기에 충분히 높지 않다고 결정한 때, 상기 시스템(200)은 상기 요구된 메모리/리소스들에 대한 액세스를 거절한다(블럭 1140). 상기 시스템(200)이 상기 보안 레벨이 정말로 상기 요구된 메모리/리소스들에 대한 액세스를 허가하기에 충분하다고 결정한 때, 상기 시스템(200)은 상기 프로세서(310) 또는 상기 소프트웨어 객체(350)가 상기 물리적 메모리(345) 내의 특정한 메모리 위치에 대한 액세스를 얻을 수 있게 한다(블럭 1130). 도 11에 나타난 단계들이 완료됨으로써, 도 7의 블럭(750) 내에 보인 적당한 메모리 액세스를 허가하는 프로세스가 실질적으로 완료된다. 본 발명에 의해 설명된 원리들은 다른 형태의 자동화된 체제(framework)로 구현될 수 있다.
상기 개시된 특정 실시예들은 단지 예시적인 것으로서, 본 발명은 본원의 가르침의 이득을 갖는 이 기술분야의 당업자들에게 명백한 다르지만, 등가적인 방식으로 변경 및 실시될 수 있다. 또한, 본 발명은 본원에 제시된 구조 또는 설계의 세부적인 사항들에 한정되지 않으며, 하기의 청구항들에 의해서 정의된다. 따라서, 상기 개시된 특정 실시예들은 본 발명의 청구 범위 내에서 변동 또는 변경될 수 있다. 그러므로, 본원에서 보호받고자 하는 권리는 하기의 청구항들에서 정의된다.

Claims (10)

  1. 가상 메모리 액세스 테이블(410) 및 부차적인(secondary) 메모리 액세스 테이블(430)을 이용하여 가상 메모리 액세스를 수행하기 위한 방법으로서,
    소프트웨어 객체(350)를 실행하는 단계와;
    상기 소프트웨어 객체(350)의 실행과 관련된 메모리 액세스를 수행하기 위해 물리적 어드레스를 관련시키는 단계와;
    상기 물리적 어드레스를 이용하여 상기 소프트웨어 객체(350)에 대한 적어도 하나의 보안 레벨을 설정하는 단계와;
    상기 적어도 하나의 보안 레벨을 이용하여 다중 테이블 메모리 액세스를 수행하는 단계와; 그리고
    상기 소프트웨어 객체(350)의 실행과 관련된 기능을 실행하는 단계를 포함하며,
    여기서, 상기 적어도 하나의 보안 레벨을 이용하여 다중 테이블 메모리 액세스를 수행하는 단계는,
    상기 부차적인 메모리 액세스 테이블(430)을 설정하는 단계와;
    상기 소프트웨어 객체(350)의 실행에 근거하여 메모리 액세스 요구를 수신하는 단계와;
    적어도 하나의 상기 가상 메모리 액세스 테이블(410) 및 상기 부차적인 메모리 액세스 테이블(430)을 이용하여, 상기 메모리 액세스 요구에 근거하여 다중 레벨 테이블 액세스를 수행하는 단계와; 그리고
    상기 다중 레벨 테이블 액세스에 근거하여 메모리의 일부를 액세스하는 단계를 포함하는 것을 특징으로 하는 가상 메모리 액세스를 수행하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 소프트웨어 객체(350)에 대한 적어도 하나의 보안 레벨을 설정하는 단계는 메모리의 적어도 일부의 메모리 액세스와 관련된 보안 레벨을 할당하는 단계를 더 포함하는 것을 특징으로 하는 가상 메모리 액세스를 수행하기 위한 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 부차적인 메모리 액세스 테이블(430)을 설정하는 단계는,
    물리적 메모리(345)를 다수의 세그먼트들로 분할하는 단계와;
    상기 부차적인 메모리 액세스 테이블(430)로부터 삭제되는 적어도 하나의 세그먼트 및 삭제되지 않는 적어도 하나의 세그먼트를 결정하는 단계와;
    상기 삭제되는 세그먼트에 대해 디폴트 보안 레벨을 할당하는 단계와;
    상기 삭제되지 않는 세그먼트에 대해 보안 레벨을 할당하는 단계와; 그리고
    적어도 하나의 할당된 세그먼트와 가상 메모리 위치를 상호 관련시키는 단계를 더 포함하는 것을 특징으로 하는 가상 메모리 액세스를 수행하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 메모리 액세스 요구에 근거하여 다중 레벨 테이블 액세스를 수행하는 단계는,
    상기 부차적인 메모리 액세스 테이블(430) 내의 세그먼트에 대응하는 적어도 하나의 보안 레벨을 결정하는 단계와;
    상기 객체(350)의 실행에 응답하여, 실행 보안 레벨과 현재 액세스되고 있는 세그먼트와 관련된 보안 레벨 간의 매칭을 검증하는 단계와;
    상기 실행 보안 레벨과 상기 현재 액세스되고 있는 세그먼트와 관련된 보안 레벨 간의 매칭에 응답하여, 상기 부차적인 메모리 액세스 테이블(430)에 근거하여 가상 메모리 어드레스를 결정하는 단계와; 그리고
    상기 가상 메모리 어드레스에 대응하는 물리적 메모리 위치를 정하는 단계를 더 포함하는 것을 특징으로 하는 가상 메모리 액세스를 수행하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 부차적인 메모리 액세스 테이블(430) 내의 세그먼트에 대응하는 적어도 하나의 보안 레벨을 결정하는 단계는,
    상기 가상 메모리 액세스 테이블(410)로부터 물리적 어드레스(553)를 결정하는 단계와;
    상기 물리적 어드레스(553)에 근거하여, 실행되고 있는 세그먼트를 결정하는 단계와; 그리고
    상기 실행되고 있는 세그먼트의 결정에 근거하여 현재의 보안 레벨을 정의하는 단계를 포함하는 것을 특징으로 하는 가상 메모리 액세스를 수행하기 위한 방법.
  7. 가상 메모리 액세스 테이블(410) 및 부차적인 메모리 액세스 테이블(430)을 이용하여 가상 메모리 액세스를 수행하기 위한 장치로서,
    버스(315)에 연결된 프로세서(310)와;
    적어도 하나의 소프트웨어 객체(350)를 상기 프로세서(310)에 연결하기 위한 수단과;
    메모리 유닛(340)과; 그리고
    상기 버스(315) 및 상기 메모리 유닛(340)에 연결된 메모리 액세스 인터페이스(315)를 포함하며,
    상기 메모리 액세스 인터페이스(315)는, 상기 프로세서(310)가 상기 소프트웨어 객체(350)를 실행하는 것에 응답하여, 메모리 액세스를 제공하기 위한 물리적 어드레스를 관련시키고, 적어도 하나의 보안 레벨에 근거하여 상기 물리적 어드레스와 관련된 다중 테이블 메모리 액세스를 상기 프로세서(310)에 제공하며,
    여기서, 상기 다중 테이블 메모리 액세스는,
    상기 부차적인 메모리 액세스 테이블(430)을 설정하고;
    상기 소프트웨어 객체(350)의 실행에 근거하여 메모리 액세스 요구를 수신하고;
    적어도 하나의 상기 가상 메모리 액세스 테이블(410) 및 상기 부차적인 메모리 액세스 테이블(430)을 이용하여, 상기 메모리 액세스 요구에 근거하여 다중 레벨 테이블 액세스를 수행하며; 그리고
    상기 다중 레벨 테이블 액세스에 근거하여 메모리의 일부를 액세스함으로써 이루어지는 것을 특징으로 하는 가상 메모리 액세스를 수행하기 위한 장치.
  8. 제 7 항에 있어서,
    상기 메모리 액세스 인터페이스(315)는 상기 가상 메모리 액세스 테이블(410)을 포함하고, 상기 가상 메모리 액세스 테이블(410)은 상기 부차적인 메모리 액세스 테이블(430)에 결합되며,
    상기 메모리 액세스 인터페이스(315)는 보안 레벨에 근거하여, 상기 메모리 유닛(340)의 적어도 일부를 액세스하기 위한 가상 메모리 어드레싱 방식을 제공하는 것을 특징으로 하는 가상 메모리 액세스를 수행하기 위한 장치.
  9. 컴퓨터에 의해 실행될 때, 가상 메모리 액세스 테이블(410) 및 부차적인 메모리 액세스 테이블(430)을 이용하여 가상 메모리 액세스를 수행하기 위한 방법을 수행하는 명령들이 엔코드된 컴퓨터 판독가능한 프로그램 저장 매체로서, 상기 방법은,
    소프트웨어 객체(350)를 실행하는 단계와;
    상기 소프트웨어 객체(350)의 실행과 관련된 메모리 액세스를 수행하기 위해 물리적 어드레스를 관련시키는 단계와;
    상기 물리적 어드레스에 근거하여 상기 소프트웨어 객체(350)에 대한 보안 레벨을 설정하는 단계와;
    상기 부차적인 메모리 액세스 테이블(430)을 설정하는 단계와;
    상기 소프트웨어 객체(350)의 실행에 근거하여 메모리 액세스 요구를 수신하는 단계와;
    상기 부차적인 메모리 액세스 테이블(430) 내의 세그먼트에 대응하는 적어도 하나의 보안 레벨을 결정하는 단계와;
    상기 소프트웨어 객체(350)의 실행에 응답하여, 실행 보안 레벨과 현재 액세스되고 있는 세그먼트와 관련된 보안 레벨 간의 매칭을 검증하는 단계와;
    상기 실행 보안 레벨과 상기 현재 액세스되고 있는 세그먼트와 관련된 보안 레벨 간의 매칭에 응답하여, 상기 부차적인 메모리 액세스 테이블(430)에 근거하여 가상 메모리 어드레스를 결정하는 단계와; 그리고
    상기 가상 메모리 어드레스에 대응하는 물리적 메모리 위치를 정하고, 상기 물리적 메모리 위치를 정하는 것에 근거하여 메모리의 일부를 액세스하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 프로그램 저장 매체.
  10. 제 9 항에 있어서,
    상기 부차적인 메모리 액세스 테이블(430) 내의 세그먼트에 대응하는 적어도 하나의 보안 레벨을 결정하는 단계는,
    상기 가상 메모리 액세스 테이블(410)로부터 물리적 어드레스(553)를 결정하는 단계와;
    상기 물리적 어드레스(553)에 근거하여, 실행되는 세그먼트를 결정하는 단계와; 그리고
    상기 실행되는 세그먼트의 결정에 근거하여, 현재의 보안 레벨을 정의하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 프로그램 저장 매체.
KR1020047006650A 2001-10-31 2002-08-09 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치 KR100931706B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/999,881 US20040064723A1 (en) 2001-10-31 2001-10-31 Method and apparatus for physical address-based security to determine target security
US09/999,881 2001-10-31
PCT/US2002/025401 WO2003038573A2 (en) 2001-10-31 2002-08-09 Method and apparatus for physical address-based security to determine target security

Publications (2)

Publication Number Publication Date
KR20050018630A KR20050018630A (ko) 2005-02-23
KR100931706B1 true KR100931706B1 (ko) 2009-12-14

Family

ID=25546734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047006650A KR100931706B1 (ko) 2001-10-31 2002-08-09 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치

Country Status (9)

Country Link
US (1) US20040064723A1 (ko)
EP (1) EP1440373B1 (ko)
JP (1) JP2005508039A (ko)
KR (1) KR100931706B1 (ko)
CN (1) CN100424659C (ko)
AU (1) AU2002324662A1 (ko)
DE (1) DE60237909D1 (ko)
TW (1) TW589530B (ko)
WO (1) WO2003038573A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707409B2 (en) * 2002-04-30 2010-04-27 Kt Corporation Method and system for authenticating software
US6785790B1 (en) * 2002-05-29 2004-08-31 Advanced Micro Devices, Inc. Method and apparatus for storing and retrieving security attributes
US7103914B2 (en) * 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
US20060090136A1 (en) * 2004-10-01 2006-04-27 Microsoft Corporation Methods and apparatus for implementing a virtualized computer system
WO2008014800A1 (en) * 2006-07-31 2008-02-07 Telecom Italia S.P.A. A system for implementing security on telecommunications terminals
CN102460400B (zh) * 2009-06-29 2014-09-24 惠普开发有限公司 基于管理程序的本地和远程虚拟内存页面管理
US9465946B2 (en) 2012-06-01 2016-10-11 Intel Corporation Identification and execution of subsets of a plurality of instructions in a more secure execution environment
US8812873B2 (en) 2012-09-26 2014-08-19 Intel Corporation Secure execution of a computer program using binary translators
KR102017828B1 (ko) 2012-10-19 2019-09-03 삼성전자 주식회사 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들
US9389793B2 (en) 2014-03-06 2016-07-12 Freescale Semiconductor, Inc. Trusted execution and access protection for embedded memory
DE102014212018A1 (de) * 2014-06-23 2015-12-24 Continental Teves Ag & Co. Ohg Verfahren und Schaltkreis zur Vermeidung von Speicherschutzverletzungen
US9594929B2 (en) * 2014-08-11 2017-03-14 Honeywell International Inc. Open architecture security methods and systems
US9703623B2 (en) * 2014-11-11 2017-07-11 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Adjusting the use of a chip/socket having a damaged pin
JP6838223B2 (ja) * 2016-11-02 2021-03-03 日立Astemo株式会社 車両制御装置
CN107562514B (zh) * 2017-08-03 2020-11-24 致象尔微电子科技(上海)有限公司 一种物理内存访问控制与隔离方法
CN107562515B (zh) * 2017-08-04 2021-09-07 海光信息技术股份有限公司 一种在虚拟化技术中管理内存的方法
CN107516052B (zh) * 2017-08-14 2020-11-13 海光信息技术有限公司 一种内存访问隔离方法
US10956084B2 (en) * 2018-05-04 2021-03-23 International Business Machines Corporation Drive utilization in multi-tiered systems with read-intensive flash
US11087028B2 (en) * 2018-09-04 2021-08-10 International Business Machines Corporation Multi-layered data security in mobile personal computing devices
CN112528345A (zh) * 2019-09-18 2021-03-19 华为技术有限公司 通信方法、装置、计算机可读存储介质和芯片

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940590A (en) * 1997-05-31 1999-08-17 International Business Machines Corporation System and method for securing computer-executable program code using task gates

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US5293597A (en) * 1987-03-09 1994-03-08 At&T Bell Laboratories Concurrent context memory management unit
JPH01175057A (ja) * 1987-12-28 1989-07-11 Toshiba Corp セキュリティの動的管理方法
US4926476A (en) * 1989-02-03 1990-05-15 Motorola, Inc. Method and apparatus for secure execution of untrusted software
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5802590A (en) * 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
GB2356469B (en) * 1999-11-17 2001-12-12 Motorola Ltd Portable data carrier memory management system and method
US6477612B1 (en) * 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
JP4522548B2 (ja) * 2000-03-10 2010-08-11 富士通フロンテック株式会社 アクセス監視装置及びアクセス監視方法
CN1289968A (zh) * 2000-11-17 2001-04-04 后健慈 控制内存记忆页存取属性的方法及其架构
US6694457B2 (en) * 2001-03-06 2004-02-17 Hewlett-Packard Development Company, L.P. System and method for monitoring execution of privileged instructions
US6823433B1 (en) * 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940590A (en) * 1997-05-31 1999-08-17 International Business Machines Corporation System and method for securing computer-executable program code using task gates

Also Published As

Publication number Publication date
WO2003038573A3 (en) 2003-12-24
CN1578946A (zh) 2005-02-09
CN100424659C (zh) 2008-10-08
EP1440373A2 (en) 2004-07-28
AU2002324662A1 (en) 2003-05-12
WO2003038573A2 (en) 2003-05-08
DE60237909D1 (de) 2010-11-18
EP1440373B1 (en) 2010-10-06
TW589530B (en) 2004-06-01
KR20050018630A (ko) 2005-02-23
US20040064723A1 (en) 2004-04-01
JP2005508039A (ja) 2005-03-24

Similar Documents

Publication Publication Date Title
KR100931706B1 (ko) 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치
US8028148B2 (en) Safe and efficient allocation of memory
US8583888B2 (en) Method to qualify access to a block storage device via augmentation of the device'S controller and firmware flow
JP5581403B2 (ja) メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納
KR100975981B1 (ko) 보안 실행 모드 하에서 보안 커넬을 사용하는 트러스트된클라이언트
US7149873B2 (en) Methods and apparatus for a dual address space operating system
US20060047959A1 (en) System and method for secure computing
KR101000543B1 (ko) 데이터 프로세서의 보안을 개선하기 위한 방법 및 장치
US6785790B1 (en) Method and apparatus for storing and retrieving security attributes
US5724551A (en) Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
US20060085629A1 (en) Mapping a reset vector
CN112256396B (zh) 内存管理方法、系统及安全处理装置、数据处理装置
US7739498B2 (en) Method and apparatus for multi-table accessing of input/output devices using target security
KR101460451B1 (ko) 프로세스 주소 공간을 제어하는 장치 및 방법
WO2001061489A2 (en) Allocating memory based on memory device organization
US7389427B1 (en) Mechanism to secure computer output from software attack using isolated execution
US7299467B2 (en) Method and system for minimizing memory access latency in a computer system
KR20050027084A (ko) 보안민감명령들의 제한실행을 위한 방법 및 장치
US7698522B1 (en) Method and apparatus for linear address based page level security scheme to determine current security context
US6889308B1 (en) Method and apparatus for protecting page translations
CN112580023B (zh) 影子栈管理方法及装置、介质、设备
US20200174920A1 (en) Method for randomizing address space layout of embedded system based on hardware and apparatus for the same

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121122

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee