KR101093124B1 - 메모리를 소거하는 메모리 제어기를 포함하는 신뢰성있는실행 환경을 이용한 컴퓨터 시스템 - Google Patents

메모리를 소거하는 메모리 제어기를 포함하는 신뢰성있는실행 환경을 이용한 컴퓨터 시스템 Download PDF

Info

Publication number
KR101093124B1
KR101093124B1 KR1020067003108A KR20067003108A KR101093124B1 KR 101093124 B1 KR101093124 B1 KR 101093124B1 KR 1020067003108 A KR1020067003108 A KR 1020067003108A KR 20067003108 A KR20067003108 A KR 20067003108A KR 101093124 B1 KR101093124 B1 KR 101093124B1
Authority
KR
South Korea
Prior art keywords
memory
processor
data
erase operation
locations
Prior art date
Application number
KR1020067003108A
Other languages
English (en)
Other versions
KR20060061832A (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 KR20060061832A publication Critical patent/KR20060061832A/ko
Application granted granted Critical
Publication of KR101093124B1 publication Critical patent/KR101093124B1/ko

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/2105Dual mode as a secondary aspect
    • 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/2143Clearing memory, e.g. to prevent the data from being stolen

Abstract

컴퓨터 시스템(10)은 보안 초기화 명령을 실행함으로써 보안 실행 모드를 초기화할 수 있는 프로세서(100A)를 포함한다. 더욱이, 상기 프로세서는 보안 동작 시스템 코드 세그먼트를 실행함으로써 보안 실행 모드에서 동작할 수 있다. 상기 컴퓨터 시스템은 또한 복수의 위치들에 데이터를 저장하는 시스템 메모리(110A)를 포함한다. 상기 컴퓨터 시스템은 또한 상기 프로세서의 리셋에 응답하여 인에이블되는 때에 시스템 메모리의 메모리 위치들의 프로그램된 범위로부터 데이터를 선택적으로 소거할 수 있는 메모리 제어기(101A)를 포함한다.
프로세서, 보안 명령, 시스템 메모리, 메모리 제어기.

Description

메모리를 소거하는 메모리 제어기를 포함하는 신뢰성있는 실행 환경을 이용한 컴퓨터 시스템{A COMPUTER SYSTEM EMPLOYING A TRUSTED EXECUTION ENVIRONMENT INCLUDING A MEMORY CONTROLLER CONFIGURED TO CLEAR MEMORY}
본 발명은 컴퓨터 시스템들에 관한 것으로서, 보다 구체적으로는, 허가없는 액세스(unauthorized access)로부터 컴퓨터 시스템 메모리 내에 저장된 데이터를 보호하기 위한 신뢰성있는 실행 모드(trusted execution mode)를 이용하는 컴퓨터 시스템에 관한 것이다.
현대 컴퓨터 시스템들은 사람들이 살아가는 방법에 급격한 변화를 가져오고 있다. 이는 x86 시스템 아키텍처를 이용하는 마이크로프로세서들을 포함하는 시스템 플랫폼들에 대해 특히 그러하다. x86-기반 시스템들의 수많은 소유자-설치가능한 제 3 당사자 주변 장치들 및 응용들에 대한 개방성은 경쟁, 혁신, 및 발전을 촉진시킨 하드웨어 및 소프트웨어 벤더들의 광범위한 시장을 가능하게 하였다. 이러한 발전의 예는 계속-증가하는 품질 및 성능의 디지털 통신 및 매체 시스템으로서 이러한 플랫폼의 현재의 폭넓은 사용이다. 인터넷과 협력하여, 이러한 시스템 플랫폼들은 확실히 디지털 콘텐츠의 대량 분배에 대변혁을 가하고 있으며, 이에 따라 신문들에 주문식(on-demand) 액세스, 실시간 일기 예보들 및 전세계로부터의 무선국들, 온라인 뱅킹 및 쇼핑, 및 오디오와 비디오-기반 엔터테인먼트를 허용한다.
x86 플랫폼이 개방 아키텍처이기 때문에, 장치들은 전형적으로 장치들에 액세스하도록 커널 모드(Kernel mode)에서 실행하는 벤더-공급된 드라이버들을 구비하며, 일정 소프트웨어 응용들은 커널 모드 구성요소들을 포함할 수 있다. 따라서, 개방 아키텍처가 이점들을 가질 수 있으며, 여전히 응용 서로간의 우발적인 간섭에 대한 상당한 정도의 보호를 제공할 수 있지만, 현재 아키텍처 보호 메커니즘들은 이러한 환경에서 원하지않는 조작(unwanted manipulation)에 노출될 수 있다.
x86 아키텍처를 이용한 마이크로프로세서들을 포함하는 컴퓨터 시스템들은 서로간에 간섭하는 응용들로부터 보호하도록 설계되는 특징들을 포함한다. 예를 들어, x86-기반 운영 시스템들은 응용들이 상호 분리되며, 중요한 운영 시스템 코드 및 데이터가 응용들로부터 분리되어 있는 환경을 제공하기 위해 x86 보호 모드 아키텍처의 두가지 특징들: 1) 페이징(paged) 가상 메모리 및 2)실행 특권 레벨에 의존한다.
페이징 가상 메모리는 운영 시스템(OS)이 각 응용에 대한 개별 가상 어드레스 공간을 정의하게 하며, 물리적 메모리의 개별 페이지들을 어드레스 변환 테이블들 세트를 통해 각 가상 어드레스 공간들로 선택적으로 맵핑하게 한다. 이는 각 응용에 다른 응용들로부터 액세스될 수 없는 코드와 데이터에 대한 물리적 메모리의 개인 섹션을 제공한다. 가상 메모리 메커니즘은 또한 OS가 물리적 메모리의 페이지들을 복수의 가상 어드레스 공간들에 선택적으로 맵핑하게 하고, 가상 공간의 이러한 페이지들을 판독-전용(read-only)으로서 선택적으로 지정하게 할 수 있다. 이러한 공유 맵핑 성능은 또한 OS 커널 자체의 사본이 각 응용의 어드레스 공간에 상주하도록 하며, 마찬가지로 주변 장치 액세스 포트들과 관련 장치 드라이버 루틴들의 공유 맵핑들을 허용할 수 있으며, 따라서, 비용이 드는 어드레스 공간 변경들을 요구함이 없이 응용들에 OS 서비스들로의 효율적인 액세스를 제공한다. 그러나, 어드레스 공간의 OS 부분은 OS 코드가 수정될 수 있으며, 여전히 응용 코드로부터 보호되어야 하는 시스템 데이터 영역들을 필수적으로 포함한다. 판독-전용 지정은 이러한 영역에 대해 적절한 보호를 제공할 수 없다.
x86 아키텍처는 또한 OS에 의해 코드 구역들에 배정되어, 코드 세그먼트 디스크립터들에서 유지되는 4 특권 레벨들(0 내지 3)을 정의한다. 전형적으로, 현재의 실행 코드 또는 절차의 특권 레벨은 현재 특권 레벨(Current Privilege Level:CPL)로서 저장될 것이다. 따라서, 특권 레벨들은 일반적으로 CPL0 내지 CPL3으로서 지칭된다. 이러한 특권 레벨들을 사용하여, 일정한 시스템 자원들은 적합한 레벨에서 코드 실행에만 액세스 가능하다. 페이징 가상 메모리 아키텍처는 가상 메모리의 페이지들에 액세스가 특권 레벨에 의해 제한되도록 할 수 있다. 4 특권 레벨들이 정의되지만, 단지 CPL0 및 CPL3 레벨들은 전형적으로 메인스트림 운영 시스템들에 의해 사용되는데, 이는 페이징 가상 메모리 아키텍처가 CPL3로부터 CPL1 이나 CPL2를 구별하지 않기 때문이다. CPL0은 일반적으로 커널 모드로서 지칭되며, 가장 특권화된 레벨인 반면에, CPL3은 일반적으로 사용자 모드로서 지칭되며, 최소 특권화된 레벨이다. OS 코드와 데이터는 전형적으로 CPLO에 배정되는 반면에, 응용 코드와 데이터는 CPL3에 배정된다. CPL0 실행 특권은 판독-전용 보호를 침범하지 않는데, 여기서 두 속성들은 개별적이다. 코드 세그먼트 디스크립터들은 이 레벨들을 배정하는데 사용된다.
이러한 메모리 보호에 추가하여, 가상 메모리 동작 제어를 포함하는 모든 프로세서 제어 레지스터들은 CPL0에서만 액세스 가능한 아키텍처 정의에 의한 것이다. 게다가, 특수한 제어 전송 명령들이 세그먼트 서로간의 실행을 변경하여, 이에 따라 특권 레벨들을 변경하는데 전형적으로 요구된다. 이 명령들은 OS가 이러한 제어 전송들의 타겟들을 OS-제어 코드의 특정 엔트리 포인트들로 제한하게 하며, 따라서 응용은 제어를 OS에 동시에 넘겨줌이 없이 특권 레벨을 변경할 수 없게 된다.
어드레스 공간들 서로간의 분리, 및 응용들에서의 OS 메모리의 분리는 가상 메모리 어드레스 변환 테이블들의 콘텐츠에 의해 완전히 제어될 수 있다. 변환 테이블들은 일 응용들의 메모리에서 다른 것을 분리하는 가상-대-물리적 페이지 맵핑들 및 공유 라이브러리들과 OS를 보호하는 판독-전용과 특권 레벨 속성들을 정의한다. 테이블들은 자체로서 메모리-상주 데이터 구조들이며, 자신들을 공유 OS 메모리 영역에 맵핑하며, 자신들에 대한 액세스를 커널 모드 코드에 제한하는 변환 엔트리들들 포함한다.
기존의 보호 메커니들은 응용들 및 운영 시스템에 적절한 보호를 제공하는 것으로 보여질 것이다. 이는 잘 가동하는 시스템(예를 들어, 운영 시스템에 의한 이러한 메커니즘들의 올바른 애플리케이션 및 이러한 메커니즘들을 제어하는 OS 코드의 올바른 동작 및 커널 모드에서 실행하는 다른 모든 코드가 이를 간섭하지 않는 것)에서 그러하다. 하지만, 전형적인 x86-기반 시스템들은 OS 벤더들이 아닌, 많은 개별 소스들로부터의 이러한 다량의 커널 모드 코드를 포함하며, 이에 따라 이러한 간섭이 우발적인지 또는 만약 그렇지 않다면 발생할 수 없는 지를 보증하기는 불가능할 수 있다.
이는 특히 물리적 메모리의 콘텐츠에 대해 그러할 수 있다. 예를 들어, 메모리의 소정의 위치의 콘텐츠가 응용에 의해 더 이상 필요하지 않을 때에, 상기 위치는 전형적으로 할당해제된다. 하지만, 이 위치에 저장된 실제 데이터는 여전히 그대로 있을 수 있다. 사용자가 수행하는 동작 타입 및 실행되고 있는 소프트웨어 애플리케이션의 타입에 따라, 메모리 내에 저장된 정보는 외부 액세스에 영향을 받을 수 있다. 따라서, 보안성을 개선하고, 이에 의해 x86 아키텍처 시스템들을 가능한한 이러한 액세스에 덜 영향을 받도록 하는 것이 바람직할 수 있다.
신뢰성있는 실행 환경을 이용하는, 메모리를 소거하는 컴퓨터 시스템의 다양한 실시예들이 개시된다. 일 실시예에서, 컴퓨터 시스템은 보안 동작 시스템 코드 세그먼트를 실행함으로써 보안 실행 모드에서 동작할 수 있는 프로세서를 포함한다. 컴퓨터 시스템은 또한 데이터 저장을 위한 복수의 위치들을 포함하는 시스템 메모리를 포함한다. 컴퓨터 시스템은 또한 시스템 메모리에 결합되는 메모리 제어기를 포함한다. 메모리 제어기는 프로세서의 리셋에 응답하여 인에이블(enable)되는 때에 시스템 메모리의 복수의 위치들의 프로그램된 범위(programmed range)에 있는 데이터를 선택적으로 소거할 수 있다.
일 특정 구현에서, 메모리 제어기는 프로세서가 리셋 이전에 RAM 상태에 정지되어 있는지를 결정할 수 있다. 더욱이, 메모리 제어기는 프로세서가 리셋 이전에 RAM 상태에 정지되어 있지 않다는 결정에 응답하여 데이터를 소거할 수 있다.
도 1은 신뢰성있는 컴퓨팅 플랫폼을 이용하는 컴퓨터 시스템의 일 실시예의 블록도이다.
도 2는 신뢰성있는 컴퓨팅 플랫폼을 이용하는 컴퓨터 시스템의 메모리 제어기의 일 실시예의 블록도이다.
도 3은 신뢰성있는 컴퓨팅 플랫폼의 컴퓨터 시스템의 메모리 제어기의 일 실시예의 동작을 설명하는 흐름도이다.
본 발명의 다양한 변형들과 대안 형태들이 가능하지만, 특정 실시예들은 도면들에서의 예에 의해 도시되며, 본원에서 상세히 설명될 것이다. 하지만, 도면들과 그 상세한 설명은 본 발명을 개시되는 특정 형태로 제한하지 않으며, 첨부된 청구항들에 의해 정의되는 바와같이 본 발명의 사상과 범주 내에 드는 모든 변형물들, 등가물들 및 대안물들을 포함하도록 의도된다.
보안/신뢰성 컴퓨팅 플랫폼의 개관
신뢰성있는 컴퓨팅은 컴퓨터 시스템(예를 들어, 개인용 컴퓨터(PC)) 사용자들이 그들의 프라이버시에 대한 공격으로부터 보호되는 동시에 전자 화폐와 영화들의 다운로딩과 같은 새로운 활동들에 참여하도록 한다. 신뢰성있는 컴퓨팅 환경의 일부가 되기 위해서, PC 자체는 사용자와 예를 들어, 은행들과 콘텐츠 제공자들과 같은 외부 엔티티들 모두에 의해 신뢰되어야 한다. 신뢰성있는 PC를 생성하는데 필수적인 중요한 요소들은 신뢰성있는 프로세싱 환경, 플랫폼-특정 비밀들, 암호화 프로세싱, 보안 저장소 및 보안 커널(SK)로서 지칭되는 보안 동작 시스템 코드 세그먼트를 포함한다. 이 요소들을 구현하는 구성 블록(building block)들은 하기에서 더 상세히 설명될 것이다.
x86 명령들을 실행하는 프로세서들은 일반적으로 페이징 가상 메모리와 특권 실행 모드들을 제공하는 보호 모드와 같은 아키텍처 특징들, 및 이 특징들을 제어하는 제어 레지스터들 세트를 포함한다. 이 제어 레지스터들과 페이지 테이블들에 대한 액세스 제어는, 컴퓨터 시스템 내의 프로그램 코드와 데이터에 무허가의 액세스로부터의 추가적 보호를 제공할 수 있다. 따라서, 이 프로세서들에 아키텍처 확장들 세트 및 대응 소프트웨어 지원의 추가는 이러한 보호를 제공할 수 있다. 프로세서에 대한 전체 보안 개선들은 보안 실행 모드(SEM)로서 지칭될 수 있다. 보안 실행 모드(SEM)는 보안 커널이 외부 간섭(tampering)없이 실행할 수 있는 신뢰성있는 실행 환경을 생성하는 프로세서에 추가되는 새로운 동작 모드이다.
따라서, SEM에서 동작가능한 프로세서는 SEM에 의해 인에이블되는 때에 예를 들어, 동작의 신뢰성있는 실행(TX) 모드와 같은 SEM 동작 모드들에 대한 지원을 제공하는 보안 하드웨어(미도시)를 포함할 수 있다. 신뢰성있는 실행 모드는 어떤 소프트웨어가 실행되는지 및 그 특권 레벨에 의존하여 정상 사용자 모드와 정상 커널 모드외에 보안 사용자 모드와 보안 커널 모드에서 동작하는 SEM-가능한 프로세서를 포함할 수 있다. 하드웨어 메모리 액세스들(예를 들어, 다이렉트 메모리 액세스(DMA))로부터뿐만 아니라 이러한 환경 내에서 실행하는 소프트웨어에 의해서만 액세스 가능한 보호 메모리 영역을 생성하는 메커니즘들이 또한 제공될 수 있다.
새로운 신뢰성있는 실행 환경(TX)은 개별 사용자 및 커널 환경들을 분리하기 위해 사용되는 종래의 정상/보호 모드(링 3/링 0) 메커니즘에 다소 유사하다. 따라서, SEM-가능한 CPU는 TX 모드를 생성하여 실행하는 하드웨어 메커니즘들을 포함한다.
개선된 구성 및 전력 인터페이스(ACPI) 사양의 최신 개정은 시스템의 다양한 동작 및 휴면 상태들을 정의한다. 하나의 이러한 휴면 상태는 종종 Ram 상태에 정지로서 지칭되는 S3 상태이다. S3 상태는 시스템 메모리를 제외한 모든 시스템 환경이 분실되는 낮은 기상 대기(low wakeup latency) 휴면 상태로서 정의된다. S3 상태에 들어오자마자, 대부분의 시스템 장치들로부터의 전력은 제거된다. 하지만, 시스템 메모리를 지원하는 메모리 제어기와 같은 장치들은 부분적으로 전력을 공급받을 수 있다.
ACPI 시스템 관리는 주로 신뢰성있는 컴퓨팅 및 신뢰성있는 컴퓨팅 환경과 무관할(orthogonal) 수 있다. 하지만, 하나의 S-상태에서 다른 S-상태로의 이동으로 여러 결과가 일어날 수 있다. 예를 들어, 상술하는 바와같이, 신뢰성있는 환경의 초기화 과정의 일부는 프로세서가 리셋으로부터 나오는 때에 물리적 메모리의 콘텐츠를 소거하는 것이다. 하지만, 시스템이 S3 상태로부터 나오는 경우에, 메모리는 소거되지 않아야 한다. 유사하게는, 신뢰성있는 메모리에 존재하는 비밀들은, 시스템이 예를 들어 S4 상태와 같은 다른 휴면 상태에 놓이는 경우 하드 디스크 상에 "암호화 되지 않은 상태(in the clear)"로 저장될 수 없다.
신뢰성있는 컴퓨팅 플랫폼을 이용하는 컴퓨터 시스템
도 1은 신뢰성있는 컴퓨팅 플랫폼을 이용하는 컴퓨터 시스템의 일 실시예의 블록도이다. 컴퓨터 시스템(10)은 SEM 프로세서(100A)와 SEM 프로세서(100B)로 지정되는 두 SEM 가능한 프로세서들을 포함한다. SEM 프로세서(100A)는 프로세서 버스(105)를 통해 SEM 프로세서(100B)에 결합된다. 컴퓨터 시스템(10)은 또한 SEM 프로세서(100A)에 결합되는 시스템 메모리(110A)와 SEM 프로세서(100B)에 결합되는 시스템 메모리(110B)를 포함한다. SEM 프로세서(100A)는 시스템 버스(125)를 통해 I/O 인터페이스(120)에 결합된다. I/O 인터페이스(120)는 주변 버스(145)를 통해 저장 장치(140)와 주변 장치(150)에 결합된다. I/O 인터페이스(120)는 또한 주변 버스(135)를 통해 SSP(130)에 결합된다. 대안 실시예에서, 주변 버스(135) 대신에, SSP(130)는 점선으로 표시하는 바와같이 주변 버스(145)에 결합될 수 있다. 두 SEM 프로세서들이 도시되지만, 다른 실시예들은 다른 개수의 SEM 프로세서들을 포함할 수 있다. 또한, 동일 참조번호와 문자를 갖는 구성요소들은 단순히 참조번호만에 의해 지칭될 수 있다. 예를 들어, SEM 프로세서(100A)는 단순히 적절한 SEM 프로세서(100)로서 지칭될 수 있다.
일 실시예에서, 프로세서 버스(105)는 HyperTransport™ 사양들에 순응하는 고속 점-대-점 링크를 형성할 수 있는 코히어런트 링크(coherent link)가 될 수 있다. 유사하게는, 일 실시예에서, 시스템 버스(125)는 넌(non)-코히어런트 I/O 링크가 될 수 있다. 예를 들어, 시스템 버스(125)는 또한 HyperTransport™ I/O 사양에 호환 가능한 고속 점-대-점 링크가 될 수 있다. 이러한 실시예들에서, SEM 프로세서(100A)는 넌-코히어런트 링크에 연결하기 위한, 코히어런트 링크 상의 SEM 프로세서(100A)와 SEM 프로세서(100B) 간의 메시지들을 전달하기 위한 집적된 호스트 브릿지 로직(미도시)을 포함할 수 있다. 하지만, 다른 실시예들에서, 시스템 버스 (125)는 예를 들어, 프론트 사이드 버스(FSB)와 같은 임의 타입의 시스템 버스가 될 수 있다.
예시된 실시예들에서, SEM 프로세서(100A)와 SEM 프로세서(100B) 각각은 시스템 메모리들(110A 및 110B) 각각에 연결하기 위한 통합 메모리 제어기(101A 및 101B)를 포함한다. 대안 실시예들에서, I/O 인터페이스(120)는 하나 이상의 메모리 제어기들 및 호스트 브릿지를 포함할 수 있다. 이러한 실시예들에서, 시스템 메모리들(110)은 I/O 인터페이스(120)에 연결될 수 있다.
SEM 프로세서(100)는 x86 아키텍처를 이용하는 프로세서의 예시이다. 예를 들어, 일 실시예에서, SEM 프로세서(100)는 어드밴스드 마이크로 디바이시즈, 인코포레이티드의 Athlon™ 프로세서가 될 수 있다. 이와 같이, SEM 프로세서(100)는 시스템 메모리(110) 또는 저장 장치(140)에 저장될 수 있는 x86 명령들을 실행한다. 예시적 실시예에서, SEM 프로세서(100)는 SEM에 의해 인에이블되는 때에 예를 들어, 도 1의 상세한 설명과 관련하여 상술한 신뢰성있는 실행(TX) 모드와 같은 SEM 동작 모드들에 대한 지원을 제공하는 메모리 제어기(101) 내의 보안 하드웨어(미도시)를 포함한다.
시스템 메모리(110)는 SEM 프로세서(100)에 의해 종종 사용되는 프로그램 명령들 및 데이터를 저장한다. 전형적인 시스템 구성에서, 저장 장치(140)는 또한 프로그램 명령들 및 데이터를 영구적으로 저장하는 데에 사용될 수 있으며, SEM 프로세서(100)가 데이터와 프로그램 코드를 필요로 하기 때문에, 이는 시스템 메모리(110)에 전달될 수 있다. SEM 동작 모드들에 대한 추가적인 지원은 SEM 프로세서(100)의 동작 동안에 시스템 메모리(100)로부터의 OS와 관련하여 실행될 수 있는 보안 커널에 의해 제공될 수 있다. 게다가, 시스템 메모리(110)는 신뢰성있는 부분과 신뢰성없는 부분으로 분할될 수 있다. 보안 커널은 시스템 메모리(110)의 신뢰성있는 부분에 상주한다. 상술한 바와같이, 시스템 메모리(100)는 전형적으로 페이징 가상 메모리를 사용하여 액세스된다. 이러한 구성에서, 시스템 메모리(110)는 개개의 페이지 단위 또는 메모리 조각(chunk) 단위로 액세스될 수 있다. 이 페이징 기능은 전형적으로 OS 메모리 관리 기능들에 의해 처리된다. 더욱이, 메모리 위치들이 할당 및 할당해제되기 때문에, 할당해제된 메모리 위치들에 저장된 데이터는 여전히 액세스 가능할 수 있다.
일 실시예에서, 시스템 메모리(110)는 동적 랜덤 액세스 메모리(DRAM) 기술 또는 예를 들어, 동기화 DRAM(SDRAM)과 같은 이용가능한, 다양한 DRAM 기술들 중 하나로 구현되는 복수의 메모리 칩들을 사용하여 구현될 수 있다. DRAM 칩들은 전형적으로 마더보드 상의 소켓 연결자에 삽입되는 에지 연결자(edge connector)를 갖는 소형 회로 기판들상에 장착된다. 기판들의 구성에 따라, 이들은 단일 또는 듀얼 인-라인(in-line) 메모리 모듈들(예를 들어, SIMM 또는 DIMM 각각)로서 지칭될 수 있다. 시스템 메모리(110)는 메모리 확장을 허용할 수 있는 메모리 모듈들의 복수의 뱅크(bank)들을 포함할 수 있다.
상술한 바와같이, 저장 장치(140)는 프로그램 코드와 데이터를 저장할 수 있다. 일 실시예에서, 저장 장치(140)는 하드 디스크 드라이브 또는 하드 디스크 드라이브들의 뱅크가 될 수 있지만, 예를 들어, CD-ROM 드라이브들, 플로피 디스크 및 테이프 드라이브들과 같은 대용량 저장 장치들을 포함하는 다른 실시예들이 고려된다.
주변 장치(150)는 예를 들어, 모뎀, 비디오 캡쳐 장치 또는 다른 범용 입출력 장치와 같은 임의의 주변 장치가 될 수 있다. 다른 실시예들에서, 다른 개수들의 주변 장치들이 사용될 수 있다.
I/O 인터페이스(120)는 정상 시스템 동작 동안에 다른 주변 버스들과 SEM 프로세서들(100A 및 100B) 간의 처리들을 위한 버스 제어 및 변환을 제공할 수 있다. 일 실시예에서, I/O 인터페이스(120)는 노쓰브릿지(Northbridge)와 관련되는 기능들을 수행할 수 있는 버스 브릿지(미도시)를 포함한다. 예를 들어, 주변 버스(145)는 주변 구성요소 상호연결(PCI) 버스가 될 수 있으며, 주변 버스(135)는 적은 핀 수(LPC: low pin count) 버스가 될 수 있다. 게다가, 버스 브릿지는 보안 초기화 동안에 SEM 프로세서(100)와 SSP(130) 사이에 발생하는 넌-스푸퍼블(non-spoofable) 통신을 허용할 수 있는 보안 메커니즘들(미도시)을 제공할 수 있다.
일반적으로, 보안 커널 초기화 명령(SKINIT)은 예를 들어, SEM 프로세서(100A)와 SEM 프로세서(100B)와 같은 SEM-가능한 프로세서들 상에서 실행된다. 일 실시예에서, SKINIT 명령은 세 개의 실행 단계들, 즉 초기화, 데이터 전송 및 점프를 포함할 수 있다.
초기화 단계 동안에, SEM 프로세서(100A) 상태는 리셋될 수 있으며, 임의의 마이크로코드 패치들이 소거될 수 있다. 게다가, 하기에서 더욱 상세히 설명될 바와같이, SEM 프로세서(100)에 집적되거나 외부에 있는 메모리 제어기들(101A 및 101B)은 시스템 메모리(110)의 메모리 칩들의 물리적 콘텐츠들이 리셋과 같은 일정 시스템 상태들에 응답하여 겹쳐쓰게(overwrite) 하는 로직(도 2에 미도시)을 포함할 수 있다.
도 2를 참조하면, 메모리 제어기의 일 실시예의 블록도가 도시된다. 메모리 제어기(301)는 메모리 소거 상태 비트 저장소(325)와 메모리 소거 유닛(310)에 결합되는 제어 로직(315)을 포함할 수 있다. 메모리 제어기(301)는 예를 들어, 도 1의 시스템 메모리(110)와 같은 시스템 메모리에 결합될 수 있다.
메모리 제어기(301)는 리셋(reset) 또는 파워-업(power-up)이 STR(Suspend To RAM) 동작과 관련되지 않는 경우에 리셋 또는 파워-업 시퀀스에 응답하여 시스템 메모리(110)의 메모리 칩들의 콘텐츠들을 소거하도록 구성될 수 있다. 본원에서 사용되는 바와 같이, 메모리 칩들의 콘텐츠 소거는 시스템 메모리의 메모리 칩들 내에 저장된 데이터가 겹쳐쓰여지게 하며, 이에 따라 사용불능이 되게 하는 것을 의미한다. 일 실시예에서, 메모리 제어기(301)는 자신이 액세스하도록 프로그램된 시스템 메모리의 모든 위치에 제로(0) 로직값을 기록함으로써 메모리 칩들의 콘텐츠를 소거할 수 있다. 다른 실시예에서, 메모리 제어기(301)는 자신이 액세스하도록 프로그램된 시스템 메모리의 모든 위치에 일(1)의 로직값을 기록함으로써 메모리 칩들의 콘텐츠를 소거할 수 있다. 또 다른 실시예에서, 메모리 제어기(301)는 이전에 저장된 임의의 데이터가 사용불능임을 표시하는 어떤 다른 데이터 패턴을 시스템 메모리(110)에 기록함으로써 메모리 칩들의 콘텐츠를 소거할 수 있다. 이러한 실시예에서, 데이터 패턴은 랜덤으로 발생할 수 있다.
일 실시예에서, 메모리 제어기(301)는 도 1의 메모리 제어기(101)와 같이 SEM 프로세서(100) 내에 통합되거나, 대안 실시예에서, 메모리 제어기(301)는 SEM 프로세서(100)의 외부에 있을 수 있는데, 후자의 경우에, 메모리 제어기(301)는 예를 들어, 도 1의 I/O 제어기(120)와 같은 브릿지 유닛의 일부가 될 수 있다.
예시된 실시예에서, 제어 로직(315)은 구성 및 제어 레지스터들(316)과 플랫폼 성능 레지스터들(320)을 포함한다. 구성 및 제어 레지스터(316)는 어드레싱가능한 메모리의 크기를 프로그램하기 위한 소프트웨어 액세스 가능한 레지스터들을 포함할 수 있다. 예를 들어, 초기화 동안에, BIOS는 사용가능한 시스템 메모리의 크기를 결정하며, 후속적으로 구성 및 제어 레지스터들(316)을 프로그램함으로써 메모리 제어기(301)가 이 사용가능한 메모리에 액세스하도록 프로그램한다. 게다가, 구성 및 제어 레지스터들(316)은 DRAME 비트로 지정되는 동적 랜덤 액세스 메모리(DRAM) 인에이블 비트를 포함할 수 있다. 일 실시예에서, DRAME 비트는 예를 들어, 메모리 제어기(301)의 프로그래밍의 최종 단계로서 BIOS와 같은 소프트웨어에 의해 로직값 일(1)로 세팅되거나, 리셋에 의해 로직값 제로(0)로 세팅될 수 있다. 하드웨어는 또한 메모리 제어기가 디스에이블(disable) 또는 턴-오프되는 때에 이 비트를 소거할 수 있다. 세팅되는 때에, DRAME 비트는 메모리 제어기(301)가 디스에이블에서 인에이블로 전이하게 한다. 더욱이, 구성 및 제어 레지스터들(316)은 DStat 비트로 지정되는 DRAM 상태 비트를 포함할 수 있다. 일 실시예에서, DStat 비트는 소프트웨어에 보여질 수 있다. 이러한 비트의 제로(0)에서 일(1)로의 전이는 메모리 소거 동작이 완료되었음을 나타낸다. 이러한 비트는, 메모리 소거 동작이 완료될 때 제어 로직(315)에서의 하드웨어에 의해 일(1)로 세팅될 수 있다. DStat 비트는 DRAME 비트가 소거되는 때에 소거될 수 있다. 예를 들어, 만약 DRAME이 참(true)이고, 그리고 메모리 소거 유닛(310)이 메모리 소거 동작에 있지 않다면, DStat=1이다.
예시된 실시예에서, 메모리 소거 유닛(310)은 메모리 제어기(301)가 디스에이블에서 인에이블로 전이하고 메모리 소거 유닛(310)이 인에이블되는 때에 구성 레지스터들(316)에 프로그램되었던 시스템 메모리 영역을 소거한다. 예를 들어, 일 실시예에서, 메모리 소거 유닛(310)은 메모리 소거 동작 동안에 시스템 메모리에 데이터 기록들을 발생하기 위한 로직을 포함할 수 있다.
예시된 실시예에서, 플랫폼 보안 성능 레지스터들(320)은 MCD로 지정되는 메모리 소거 디스에이블 비트를 포함한다. 하기에서 더 상세히 설명될 바와같이, MCD 비트는 메모리 소거 유닛(310)을 인에이블 및 디스에이블 할 수 있으며, 이에 의해 시스템 메모리의 소거를 인에이블 및 디스에이블 한다.
일 실시예에서, 플랫폼 보안 성능 레지스터들(320)은 메모리 제어기(301)와 관련되는 구성 공간에 위치되는 소프트웨어에 보여지는 액세스-보호 레지스터들이다. MCD 비트는 신뢰성있는 소프트웨어에만 보여질 수 있다. 어드레싱은 새로운 성능 포인터(0Fh)에 기초할 수 있다. MCD 비트는 다이렉트 메모리 액세스 배제 벡터(DEV) 제어 레지스터의 일 비트가 될 수 있다. 일 실시예에서, MCD 비트가 로직 1로 세팅되는 때에, 메모리 소거 유닛(310)은 디스에이블되며, MCD 비트가 로직 0으로 세팅되는 때에, 메모리 소거 유닛(310)은 인에이블된다. 더욱이, 메모리가 인에이블되지 않은 경우에, MCD 비트는 기록되지 않을 수 있다.
일 실시예에서, 시스템 전력이 제거되지만, 시스템 메모리의 메모리 칩들이 전력공급을 유지(예를 들어, S3 상태)하는 때마다, MCD 비트 상태는 보유될 수 있다. 비트 상태 정보를 보유하기 위해, MCD 비트는 STR로 지정되는 관련 Ram 비트에 정지를 가질 수 있는데, 이는 상태를 보유하며 MCD 비트와의 마스터/슬레이브 구성에서 동작할 수 있다. 일 실시예에서, 전력 공급시에, STR 비트 상태는 MCD 비트로 복사된다. 따라서, STR 비트는 시스템 메모리의 콘텐츠가 전력 차단 동안에 저장되었는지를 표시한다. STR 비트는 소프트웨어에 보여지지 않을 수 있으며, 리셋에 의해 소거되지 않을 수 있다. 일 실시예에서, 시스템 전력이 제거되지만, 시스템 메모리의 메모리 칩들이 전력공급을 유지(예를 들어, S3 상태)하는 때마다, STR 비트는 상태를 보유한다. 일단 메모리 제어기(301)가 인에이블되면, 신뢰성있는 소프트웨어는 S3 상태에 들어가기 이전에 MCD 비트를 세팅함으로써 STR 비트를 간접적으로 세팅한다. 전력 차단 상태로 들어가기 이전에, MCD 비트 상태는 STR 비트에 복사될 수 있다. STR 비트는 DRAME 비트가 세팅되는 때에(예를 들어, 메모리 소거 동작이 상태를 추정한 이후에) 자동으로 소거될 수 있다. 예시된 실시예에서, STR 비트는 메모리 소거 상태 비트 저장소(325)에 포함될 수 있다.
예시된 실시예에서, 메모리 소거 상태 비트 저장소(325)는 또한 이전에 소거된 메모리 비트들을 포함한다. 이 비트들은 메모리의 어느 부분들이 이전 메모리 소거 동작에 의해 소거되었는지를 표시한다. 이 비트들은 소프트웨어에 보여질 수 없으며, 리셋에 의해 소거될 수 없다. 일 실시예에서, 시스템 전력이 제거되지만, 시스템 메모리의 메모리 칩들이 전력공급을 유지(예를 들어, S3 상태)하는 때마다, 이전에 소거된 메모리 비트들은 상태를 보유한다. 이전에 소거된 메모리 비트들은 메모리 소거 동작이 수행되는 때마다 다시 로딩될 수 있다.
일 실시예에서, 제어 로직(315)은, 이전에 소거된 메모리 비트들 내에 저장된 상태와 대비하여, 메모리 제어기(301)로 프로그램된 시스템 메모리의 현재 크기를 체크할 수 있다. 만일 매칭이 되지 않는 경우에, 메모리 소거 유닛(310)은 상술한 바와 같이 무조건으로 시스템 메모리를 소거할 수 있다. 예를 들어, 악성 BIOS 또는 BIOS 에뮬레이션 소프트웨어는, 보안 메모리로의 액세스 시도시 이전에 액세스 및 소거된 것보다 더 작은 메모리 영역에 액세스하도록 메모리 제어기(301)를 프로그래밍할 수 있다. 따라서, 매칭이 검출되지 않는 때에, 이전 소거된 메모리 영역 전체가 소거된다. 일 실시예에서, 이전 소거된 메모리 비트들은 최종 메모리 소거 동작에 의해 소거된 메모리의 최상위 64M-바이트 블록의 상위 어드레스 비트들을 저장하도록 구현될 수 있다. 하지만, 다른 실시예들에서, 다른 구현들이 고려된다.
일 실시예에서, 시스템 전력이 제거되고, 하지만 시스템 메모리의 메모리 칩들이 전력을 공급받고 있는 경우에(예를 들어, S3 상태), 상태를 유지하는 메모리 소거 상태 비트 저장소(325)의 비트들은 (점선들로 도시된 바와같이) 메모리 제어기를 수용하는 장치의 I/O 패드 링에 구현된 상태 저장 요소들에 저장될 수 있다. 도 3과 관련하여 하기에서 더 상세히 설명될 바와같이, 메모리 제어기(301)의 제어 로직(315)은 리셋으로부터 나오는 때에 이 상태 저장 요소들에 액세스를 가질 수 있다. 이는, 심지어 일정 시스템 전력 차단 상태들(예를 들어, S3 상태) 동안에도 일정 장치(예를 들어, RAM과 같은 휘발성 저장소)에 대한 전력이 유지되기 때문이다. 이 상태 저장 요소들은 전력 차단 및 후속 전력 공급 시퀀스동안 내내 이 상태를 보유할 수 있다.
도 3은 신뢰성있는 컴퓨팅 플랫폼에서의 메모리 제어기의 일 실시예의 동작을 설명하는 흐름도이다. 도 2 및 도 3을 종합적으로 참조하면, 동작은 블록(400)에서 시작하는데, 여기서 시스템 리셋이 발생한다. 리셋에 응답하여, BIOS는 다양한 시스템 레벨 셋-업 및 구성 작업들을 수행한다. 예를 들어, BIOS는 메모리 제어기(301)를 구성함으로써 시스템 메모리를 인에이블 해야 한다. 특정 시스템 구현에 의존하여, BIOS는 시스템 메모리의 물리적 크기를 결정하기 위해 하나 이상의 메모리 테스트들을 수행할 수 있다. 일단 이용가능한 메모리가 결정되면, 일 실시예에서, BIOS는 이용가능한 메모리의 현재 크기로 메모리 제어기(301)의 하나 이상의 구성 레지스터들(316)을 프로그램한다(405). 일단 메모리 제어기가 프로그램되면, BIOS는 DRAME 비트를 세팅함으로써 메모리 제어기(301)를 인에이블 할 수 있다(블록 410). 이후에, 메모리 제어기(301)는 디스에이블에서 인에이블로 전이한다. STR 비트는 제어 로직(315)에 의해 MCD 비트로 복사된다(블록 415).
디스에이블에서 인에이블로의 전이에 응답하여, 제어 로직(315)은 시스템이 리셋 이전에 S3 상태(예를 들어, STR)에 있었는지를 결정하기 위해 MCD 비트를 판독한다(블록 420). 만일 시스템이 S3 상태에 있지 않았던 경우에(예를 들어, MCD 비트 소거), 제어 로직(315)은 구성 레지스터들(316)에 저장된 값으로부터 메모리 크기를 결정한다(블록 430). 제어 로직(315)은 현재 프로그램된 메모리 크기 내에 있는 모든 위치들의 메모리 소거 동작을 수행하도록 메모리 소거 유닛(310)에 통지한다(블럭 435). 소거되는 메모리 크기는 이전에 소거된 메모리 비트들에 저장된다(블록 440).
블록(425)을 다시 참조하면, 만일 제어 로직(315)이 시스템이 S3 상태에 있었던 것으로 결정하는 경우에(예를 들어, MCD 비트 세팅), 제어 로직(315)은 구성 레지스터들(316)에 저장된 값으로부터 현재 프로그램되는 메모리 크기, 및 메모리 소거 상태 비트 저장소(325)의 이전에 소거된 메모리 비트들 내에 저장된 값을 읽음으로써 이전에 소거된 메모리 크기를 결정한다(블록 445). 제어 로직(315)은 현재 프로그램되는 메모리 크기를 이전에 소거된 메모리 크기에 비교한다(블록 450). 만일 크기가 매칭되지 않는 경우에(블록 455), 제어 로직(315)은 메모리 소거 유닛(310)에 메모리 소거 상태 비트 저장소(325)의 이전에 소거된 메모리 비트들 내에 저장된 값에 의해 표시되는 바와같이 이전에 소거된 메모리 소거 동작에서 소거되었던 모든 위치들의 메모리 소거 동작을 수행하도록 통지한다(블록 460). 소거되는 메모리 크기는 이전에 소거된 메모리 비트들에 저장된다(블록 440). 일 실시예에서, 일단 MCD 비트가 추정되면, STR 비트가 소거될 수 있으며, 이것은 리셋에서 나오는 경우에 메모리 소거 동작이 인에이블되게 할 수 있다.
블록(455)을 다시 참조하면, 만일 현재 프로그램되는 메모리 크기가 이전에 소거된 메모리 크기와 동일한 경우에, 메모리 소거 유닛(310)이 세팅 MCD 비트에 의해 디스에이블 되기 때문에, 메모리 소거 동작은 수행되지 않을 것이다(블록 465).
게다가, 상술한 바와같이, 일단 메모리 제어기(301)가 인에이블되면, MCD 비트는 S3 상태에 들어가기 이전에 신뢰성있는 소프트웨어에 의해 세팅될 수 있으며, 이것은 리셋에서 나오는 경우에 메모리 소거 동작이 디스에이블되게 할 수 있다.
상기 실시예들이 매우 상세하게 설명되었지만, 상기 개시를 완전히 이해한다면 본 발명의 기술분야의 당업자에게 그 수 많은 변형 및 수정은 명백할 것이다. 다음의 청구항들은 이러한 모든 변형 및 수정을 포괄하고 있는 것으로 해석되어야 한다.
본 발명은 일반적으로 컴퓨터 시스템들에 응용할 수 있다.

Claims (10)

  1. 컴퓨터 시스템(10)으로서,
    보안 동작 시스템 코드 세그먼트를 실행함으로써 보안 실행 모드에서 동작하는 프로세서(100A)와 ;
    상기 프로세서에 결합되며, 데이터를 저장하기 위한 복수의 위치(location)들을 포함하는 시스템 메모리(110A)와; 그리고
    상기 시스템 메모리에 결합되며, 시스템 리셋에 응답하여 인에이블되는 때에 상기 시스템 메모리의 상기 복수의 위치들의 프로그램된 범위(programmed range)에서 메모리 소거 동작을 사용하여 상기 데이터를 선택적으로 소거하는 메모리 제어기(101A)를 포함하여 구성되며,
    여기서, 상기 메모리 제어기는 상기 프로세서가 상기 시스템 리셋 이전에 STR(Suspend To RAM) 상태에 있었는 지를 결정하도록 구성되고,
    상기 프로세서가 상기 시스템 리셋 이전에 STR 상태에 있었던 것으로 결정되는 것에 응답하여, 상기 메모리 제어기는 현재 프로그램되는 메모리 크기가 이전의 메모리 소거 동작에서 소거된 상기 복수의 위치들의 상기 프로그램된 범위의 크기와 동일한지를 결정하도록 구성되고,
    상기 현재 프로그램되는 메모리 크기가 이전의 메모리 소거 동작에서 소거된 상기 복수의 위치들의 상기 프로그램된 범위의 크기와 동일한 것으로 결정되는 것에 응답하여, 상기 메모리 제어기는 상기 메모리 소거 동작에 의한 상기 데이터의 소거를 금지시키도록 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 메모리 제어기는 상기 프로세서가 상기 시스템 리셋 이전에 상기 STR 상태에 있지 않았다고 결정되는 것에 응답하여, 상기 메모리 소거 동작을 사용하여 상기 데이터를 소거하도록 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제 1 항에 있어서,
    상기 메모리 제어기는 상기 프로세서가 상기 시스템 리셋 이전에 상기 STR 상태에 있었는지의 여부를 표시하는 비트를 저장하는 저장소(325)를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제 1 항에 있어서,
    I/O 인터페이스(120)를 통해 상기 프로세서에 결합되며, 상기 보안 실행 모드로의 상기 프로세서의 초기화 동안 상기 보안 동작 시스템 코드 세그먼트의 적어도 일부가 유효한지 여부를 검증하는 보안 서비스 프로세서(130)를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  5. 허가없는 액세스(unauthorized access)로부터 컴퓨터 시스템 메모리 내에 저장된 데이터를 보호하는 방법으로서,
    보안 초기화 명령을 실행함으로써 보안 실행 모드에서 프로세서(100A)를 초기화하고, 그리고 보안 동작 시스템 코드 세그먼트를 실행함으로써 상기 보안 실행 모드에서 상기 프로세서가 동작하도록 하는 단계와;
    시스템 메모리(110A)의 복수의 위치들 내에 데이터를 저장하는 단계와; 그리고
    시스템 리셋에 응답하여 상기 시스템 메모리의 상기 복수의 위치들의 프로그램된 범위에서 메모리 소거 동작을 사용하여 상기 데이터를 선택적으로 소거하는 단계를 포함하여 구성되며,
    상기 데이터를 선택적으로 소거하는 단계는,
    상기 프로세서가 상기 시스템 리셋 이전에 STR 상태에 있었는 지를 결정하는 단계와,
    상기 프로세서가 상기 시스템 리셋 이전에 STR 상태에 있었던 것으로 결정되는 것에 응답하여, 현재 프로그램되는 메모리 크기가 이전의 메모리 소거 동작에서 소거된 상기 복수의 위치들의 상기 프로그램된 범위의 크기와 동일한지를 결정하는 단계와, 그리고
    상기 현재 프로그램되는 메모리 크기가 이전의 메모리 소거 동작에서 소거된 상기 복수의 위치들의 상기 프로그램된 범위의 크기와 동일한 것으로 결정되는 것에 응답하여, 상기 메모리 소거 동작에 의한 상기 데이터의 소거를 금지시키는 단계를 포함하는 것을 특징으로 하는 허가없는 액세스로부터 컴퓨터 시스템 메모리 내에 저장된 데이터를 보호하는 방법.
  6. 제 5 항에 있어서,
    상기 데이터를 선택적으로 소거하는 단계는, 상기 프로세서가 상기 시스템 리셋 이전에 상기 STR 상태에 있지 않았다고 결정되는 것에 응답하여, 상기 메모리 소거 동작을 사용하여 상기 데이터를 소거하는 단계를 더 포함하는 것을 특징으로 하는 허가없는 액세스로부터 컴퓨터 시스템 메모리 내에 저장된 데이터를 보호하는 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020067003108A 2003-09-04 2004-06-04 메모리를 소거하는 메모리 제어기를 포함하는 신뢰성있는실행 환경을 이용한 컴퓨터 시스템 KR101093124B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/654,734 US7210009B2 (en) 2003-09-04 2003-09-04 Computer system employing a trusted execution environment including a memory controller configured to clear memory
US10/654,734 2003-09-04
PCT/US2004/018043 WO2005026954A1 (en) 2003-09-04 2004-06-04 A computer system employing a trusted execution environment including a memory controller configured to clear memory

Publications (2)

Publication Number Publication Date
KR20060061832A KR20060061832A (ko) 2006-06-08
KR101093124B1 true KR101093124B1 (ko) 2011-12-13

Family

ID=34225999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067003108A KR101093124B1 (ko) 2003-09-04 2004-06-04 메모리를 소거하는 메모리 제어기를 포함하는 신뢰성있는실행 환경을 이용한 컴퓨터 시스템

Country Status (8)

Country Link
US (1) US7210009B2 (ko)
JP (1) JP4695082B2 (ko)
KR (1) KR101093124B1 (ko)
CN (1) CN100416501C (ko)
DE (1) DE112004001605B4 (ko)
GB (1) GB2422228B (ko)
TW (1) TWI349230B (ko)
WO (1) WO2005026954A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765381B2 (en) * 2003-04-04 2010-07-27 Oracle America, Inc. Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
US7228400B2 (en) * 2003-12-31 2007-06-05 Intel Corporation Control of multiply mapped memory locations
US7380069B2 (en) * 2004-11-19 2008-05-27 Marvell International Technology Ltd. Method and apparatus for DMA-generated memory write-back
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
US8041947B2 (en) * 2006-03-23 2011-10-18 Harris Corporation Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory
US8060744B2 (en) * 2006-03-23 2011-11-15 Harris Corporation Computer architecture for an electronic device providing single-level secure access to multi-level secure file system
US8127145B2 (en) * 2006-03-23 2012-02-28 Harris Corporation Computer architecture for an electronic device providing a secure file system
US7979714B2 (en) * 2006-06-02 2011-07-12 Harris Corporation Authentication and access control device
US7877558B2 (en) * 2007-08-13 2011-01-25 Advanced Micro Devices, Inc. Memory controller prioritization scheme
US7757039B2 (en) * 2007-09-18 2010-07-13 Nikos Kaburlasos DRAM selective self refresh
US7937449B1 (en) * 2007-10-08 2011-05-03 Empirix, Inc. System and method for enabling network stack processes in user mode and kernel mode to access kernel memory locations
US8250354B2 (en) * 2007-11-29 2012-08-21 GlobalFoundries, Inc. Method and apparatus for making a processor sideband interface adhere to secure mode restrictions
US20090144332A1 (en) * 2007-11-29 2009-06-04 Wallace Paul Montgomery Sideband access based method and apparatus for determining software integrity
CN101493877B (zh) * 2008-01-22 2012-12-19 联想(北京)有限公司 数据处理方法及系统
US9274573B2 (en) * 2008-02-07 2016-03-01 Analog Devices, Inc. Method and apparatus for hardware reset protection
US8117642B2 (en) * 2008-03-21 2012-02-14 Freescale Semiconductor, Inc. Computing device with entry authentication into trusted execution environment and method therefor
JP5286943B2 (ja) * 2008-05-30 2013-09-11 富士通株式会社 メモリクリア機構
US7831816B2 (en) * 2008-05-30 2010-11-09 Globalfoundries Inc. Non-destructive sideband reading of processor state information
FR2934697B1 (fr) * 2008-07-29 2010-09-10 Thales Sa Procede et systeme permettant de securiser un logiciel
US20100138597A1 (en) * 2008-11-28 2010-06-03 Kabushiki Kaisha Toshiba Information Processing System, System Controller, and Memory Control Method
US8880854B2 (en) * 2009-02-11 2014-11-04 Via Technologies, Inc. Out-of-order execution microprocessor that speculatively executes dependent memory access instructions by predicting no value change by older instructions that load a segment register
EP2270708A1 (en) * 2009-06-29 2011-01-05 Thomson Licensing Data security in solid state memory
EP2465069B1 (en) * 2009-08-14 2018-02-21 Intrinsic ID B.V. Physically unclonable function with tamper prevention and anti-aging system
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations
US8458486B2 (en) * 2010-10-13 2013-06-04 International Business Machines Corporation Problem-based account generation
WO2013078085A1 (en) * 2011-11-22 2013-05-30 Mips Technologies, Inc. Processor with kernel mode access to user space virtual addresses
TWI464746B (zh) * 2012-03-30 2014-12-11 Wistron Corp 記憶體之清除電路
CN103368928B (zh) * 2012-04-11 2018-04-27 富泰华工业(深圳)有限公司 帐号密码重置系统及方法
US8832465B2 (en) 2012-09-25 2014-09-09 Apple Inc. Security enclave processor for a system on a chip
US8775757B2 (en) 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
US9043632B2 (en) 2012-09-25 2015-05-26 Apple Inc. Security enclave processor power control
US9047471B2 (en) 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
US20150089245A1 (en) * 2013-09-26 2015-03-26 Asher M. Altman Data storage in persistent memory
US9594927B2 (en) * 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US10127406B2 (en) 2015-03-23 2018-11-13 Intel Corporation Digital rights management playback glitch avoidance
CN105630351A (zh) * 2015-12-23 2016-06-01 深圳市嘉兰图设计股份有限公司 具有一键清理后台程序功能的按键系统
US10884952B2 (en) * 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US10353858B2 (en) * 2017-12-18 2019-07-16 GM Global Technology Operations LLC System and method for managing system memory integrity in suspended electronic control units
US11681965B2 (en) * 2019-10-25 2023-06-20 Georgetown University Specialized computing environment for co-analysis of proprietary data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084346A1 (en) * 2001-11-01 2003-05-01 Kozuch Michael A. Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US200402A (en) * 1878-02-19 Improvement in toy money-boxes
US200405A (en) * 1878-02-19 Improvement in feed-water regulators
JPS62169218A (ja) * 1986-01-17 1987-07-25 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 情報処理システムのアプリケ−シヨン中断再開装置
AU640181B2 (en) * 1989-12-26 1993-08-19 Digital Equipment Corporation Method for securing terminal and terminal apparatus for use with the method
JPH07219885A (ja) * 1994-02-04 1995-08-18 Canon Inc 情報処理システム及び電子機器及び制御方法
JP3393521B2 (ja) * 1995-10-19 2003-04-07 日本電信電話株式会社 端末プログラム改ざん検出方法、および情報センタ
JPH09128232A (ja) * 1995-11-01 1997-05-16 Fujitsu Ltd プログラム正常性確認装置
JP3715711B2 (ja) * 1996-04-19 2005-11-16 キヤノン株式会社 画像処理装置及びその画像処理方法
US5987604A (en) * 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6243831B1 (en) * 1998-10-31 2001-06-05 Compaq Computer Corporation Computer system with power loss protection mechanism
US6175454B1 (en) * 1999-01-13 2001-01-16 Behere Corporation Panoramic imaging arrangement
US6367022B1 (en) 1999-07-14 2002-04-02 Visteon Global Technologies, Inc. Power management fault strategy for automotive multimedia system
JP2001202289A (ja) * 2000-01-18 2001-07-27 Casio Comput Co Ltd セキュリティ管理方法およびそのプログラム記録媒体
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US6546472B2 (en) * 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
JP2002323939A (ja) * 2001-04-25 2002-11-08 Casio Comput Co Ltd 起動処理制御装置
JP2003037719A (ja) * 2001-05-17 2003-02-07 Sharp Corp 画像処理装置
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
US6922783B2 (en) * 2002-01-16 2005-07-26 Hewlett-Packard Development Company, L.P. Method and apparatus for conserving power on a multiprocessor integrated circuit
US20030154392A1 (en) * 2002-02-11 2003-08-14 Lewis Timothy A. Secure system firmware using interrupt generation on attempts to modify shadow RAM attributes
US6986006B2 (en) 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US7058768B2 (en) 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US6925627B1 (en) * 2002-12-20 2005-08-02 Conexant Systems, Inc. Method and apparatus for power routing in an integrated circuit
US7284136B2 (en) * 2003-01-23 2007-10-16 Intel Corporation Methods and apparatus for implementing a secure resume

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084346A1 (en) * 2001-11-01 2003-05-01 Kozuch Michael A. Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Edward et al., Fast Object-Oriented Procedure Calls: Lessons from the Intel 432, ISSN:0163-5964 1986
Peterson et al., Operating System Concepts, Addison-Wesley Publishing Company (1986.10.)*

Also Published As

Publication number Publication date
CN100416501C (zh) 2008-09-03
US20050055524A1 (en) 2005-03-10
JP2007504553A (ja) 2007-03-01
US7210009B2 (en) 2007-04-24
DE112004001605B4 (de) 2010-05-06
KR20060061832A (ko) 2006-06-08
TWI349230B (en) 2011-09-21
TW200527293A (en) 2005-08-16
CN1846195A (zh) 2006-10-11
WO2005026954A1 (en) 2005-03-24
GB0604581D0 (en) 2006-04-19
GB2422228B (en) 2007-02-14
GB2422228A (en) 2006-07-19
JP4695082B2 (ja) 2011-06-08
DE112004001605T5 (de) 2006-07-06

Similar Documents

Publication Publication Date Title
KR101093124B1 (ko) 메모리를 소거하는 메모리 제어기를 포함하는 신뢰성있는실행 환경을 이용한 컴퓨터 시스템
KR100987507B1 (ko) 보안 서비스 프로세서로의 접속을 위한 버스 브리지를포함하는 컴퓨터 시스템
US6938164B1 (en) Method and system for allowing code to be securely initialized in a computer
US7165135B1 (en) Method and apparatus for controlling interrupts in a secure execution mode-capable processor
EP1495394B1 (en) A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US7603551B2 (en) Initialization of a computer system including a secure execution mode-capable processor
US6073206A (en) Method for flashing ESCD and variables into a ROM
EP1495401B1 (en) Initialization of a computer system including a secure execution mode-capable processor
US20060184717A1 (en) Integrated circuit capable of flash memory storage management
JP3982687B2 (ja) 分離実行環境での複数の分離メモリへのアクセスの制御
US7146477B1 (en) Mechanism for selectively blocking peripheral device accesses to system memory
US6775734B2 (en) Memory access using system management interrupt and associated computer system
US6405311B1 (en) Method for storing board revision

Legal Events

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

Payment date: 20141126

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 8