KR101000543B1 - 데이터 프로세서의 보안을 개선하기 위한 방법 및 장치 - Google Patents

데이터 프로세서의 보안을 개선하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101000543B1
KR101000543B1 KR1020047014469A KR20047014469A KR101000543B1 KR 101000543 B1 KR101000543 B1 KR 101000543B1 KR 1020047014469 A KR1020047014469 A KR 1020047014469A KR 20047014469 A KR20047014469 A KR 20047014469A KR 101000543 B1 KR101000543 B1 KR 101000543B1
Authority
KR
South Korea
Prior art keywords
memory
stored
secure data
segments
predetermined segments
Prior art date
Application number
KR1020047014469A
Other languages
English (en)
Other versions
KR20040101310A (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 KR20040101310A publication Critical patent/KR20040101310A/ko
Application granted granted Critical
Publication of KR101000543B1 publication Critical patent/KR101000543B1/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

보안 데이터가 저장되어 있는 메모리(108)의 세그먼트들에 대한 액세스를 제어하기 위한 방법 및 장치가 제공된다. 보안 체크 유닛(304)은 다수의 세그먼트들 각각이 보안 데이터를 저장하고 있는 지의 여부에 관하여 메모리(108)의 다수의 세그먼트들에 대한 정보를 유지한다. 힌트 디렉토리(302)는 다수의 이러한 세그먼트들중 어느 것이 보안 데이터를 저장하고 있는 지의 여부에 관한 정보를 유지한다. 힌트 디렉토리(302)는 보안 데이터가 없는 것으로 나타내어진 다수의 세그먼트들의 범위로 입력하는 어드레스(402)를 수신할 때 보안 체크 유닛(304)을 바이패스시킬 수 있다. 힌트 디렉토리(302)가 수신된 어드레스(402)가 보안 데이터를 포함하는 다수의 세그먼트들중 하나 내에 있음을 판정하면, 이 어드레스(402)가 보다 정밀한 조사를 위해 보안 체크 유닛(304)에 전달된다.
Figure R1020047014469
데이터 프로세서, 보안 시스템, 힌트 디렉토리, 보안 체크, 보안 데이터

Description

데이터 프로세서의 보안을 개선하기 위한 방법 및 장치{METHOD AND APPARATUS FOR IMPROVED SECURITY IN A DATA PROCESSOR}
본 발명은 일반적으로 데이터 프로세서에 관한 것으로서, 특히 데이터 프로세서의 안전한 동작을 보증하기 위한 방법 및 장치에 관한 것이다.
개인용 컴퓨터와 같은 범용 컴퓨터 시스템은 단일 태스크 장치에서 멀티태스크 장치로 발전되었다. 이러한 멀티태스킹 장치들은, 사용자 프로세스들로부터 자신들의 운영 체제를 보호하고 이러한 프로세스들을 서로 간에 보호하기 위한 보안 및 보호 서비스들을 필요로 한다. 보호를 행하지 않으면, 예를 들어 악의의 어느 프로그램이 저장 공간에 있는 운영 체제가 별도의 프로세스가 가지고 있는 프로그램 코드나 데이터를 고의로 또는 우발적으로 파손할 수 있다.
일반적으로, x86 마이크로프로세서의 환경에서, 서로 다른 타입의 소프트웨어들은 여러가지 특권 레벨들에서 실행되기 때문에, 이들 소프트웨어의 컴퓨팅 시스템의 자원으로의 액세스권은 여러 가지로 다르게 된다. 예를 들어, 운영 체제는 보다 높은 특권 레벨(Ring 0)에서 실행되는바, 이는 운영 체제가 어느 시스템 자원들에도 거의 자유롭게 액세스한다는 것을 의미한다. 소프트웨어 드라이버들 또한 비교적 높은 특권 레벨을 갖고, 일반적으로 컴퓨팅 시스템의 자원들을 무제한으로 액세스한다.
Microsoft Windows
Figure 112010028300761-pct00009
운영 체제의 가장 최근의 형태인 Windows 2000
Figure 112010028300761-pct00010
은 자신의 커널(kernel)에 포함된 백만개 이상의 코드 라인 및 관련된 커널-모드 드라이버들을 갖는다. 따라서, 이러한 백만개 이상의 코드 라인들은 일반적으로 시스템 자원들을 자유롭게 액세스한다. 이러한 방대한 양의 프로그램 내에는 어떠한 보안 결함들 또는 다른 버그(bug)들이 있을 가능성이 크다. 따라서, 비교적 낮은 특권 레벨에서 실행되는 응용 프로그램은 1개 이상의 이러한 버그들 또는 보안 결함들을 통해, 운영 체제에 의해 제공되는 보안을 붕괴시킬 수 있다. 또한, 불량 드라이버(rogue driver) 역시 시스템 자원들에 저장된 데이터를 액세스하여 변경할 수 있다. 페이지 테이블과 같은 통상 이용되지 않는 자원들에 대한 액세스가 허용되면, 응용 프로그램은 페이지 테이블들을 비롯한, 메모리에 저장된 데이터를 의도적으로 변경한다. 일단 페이지 테이블들이 변경되면, 원래 의도되지 않았던 메모리로부터의 코드를 실행하도록 컴퓨터 시스템의 동작을 전환시킬 수 있다. 또한, 페이지 테이블들이 우발적으로 변경된 경우에도, 응용 프로그램 또는 심지어 운영 체제가 정상적인 경우라면 허가되지 않거나 액세스를 금지하고 있는 메모리 부분들로 전환되게 할 수 있다. 결과적으로, 이러한 허가되지 않는 메모리 섹션들로의 침입(foray)에 의해, 한 응용 프로그램이 다른 프로그램에 의해 이용되는 중요 데이터를 오버라이트할 수 있게 된다.
어떠한 시스템들에서는, 메모리를 그와 관련된 보안 정보를 갖는 페이지들과 같은 다수의 세그먼트들로 분할하는 것이 편리하다. 이러한 정보의 입도(granularity)가 커짐에 따라, 보안 데이터의 양도 커지게 되어, 보안 데이터의 관리 및 액세스가 더욱 어려워진다. 예를 들어, 입도가 상당히 작은 보안 방식은 액세스에 시간을 요하고, 그 결과 시스템의 동작을 느리게 하여 작동할 수 없게 한다.
본 발명은 상기 설명한 1개 이상의 문제들을 극복하거나 또는 적어도 그 영향을 줄이는 것에 관련된다.
본 발명의 일 양상에서는, 보안 데이터(secure data)가 메모리의 제 1 소정의 세그먼트 내의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 1 정보를 저장하는 단계와; 그리고 상기 보안 데이터가 메모리의 다수의 제 2 소정의 세그먼트들 각각 내의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 2 정보를 저장하는 단계를 포함하는 방법이 제공된다. 메모리의 제 2 소정의 세그먼트들은 메모리의 제 1 소정의 세그먼트 보다 작다. 이후, 어드레스가 수신되고, 수신된 어드레스의 적어도 일부가 메모리의 제 1 소정의 세그먼트 내에 있는 지의 여부를 결정한다. 이 어드레스에 대한 액세스는 메모리의 제 1 소정의 세그먼트에 보안 데이터가 없음을 나타내는 상기 저장된 제 1 정보에 응답하여 허가된다. 메모리의 제 2 소정의 세그먼트들중 수신된 어드레스가 위치하는 적어도 하나의 세그먼트는, 메모리의 제 1 소정의 세그먼트가 보안 데이터를 포함한다는 상기 저장된 제 1 정보로부터의 결정에 응답하여 식별된다. 수신된 어드레스에 대한 액세스는, 메모리의 제 2 소정의 세그먼트에 보안 데이터가 없음을 나타내는, 메모리의 상기 식별된 제 2 소정의 세그먼트와 관련된 상기 저장된 제 2 정보에 응답하여 허가된다.
본 발명의 다른 양상에서는, 메모리의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하는 장치가 제공된다. 이 장치는 보안 체크 유닛 및 힌트 디렉토리를 포함한다. 보안 체크 유닛은, 보안 데이터가 메모리의 다수의 제 1 소정의 세그먼트들 각각 내의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 1 정보를 액세스하도록 적합하게 되어 있다. 힌트 디렉토리는, 보안 데이터가 메모리의 다수의 제 1 소정의 세그먼트들중 어느 하나에 저장되어 있는 지의 여부를 나타내는 제 2 정보를 저장하도록 적합하게 되어 있다. 이 힌트 디렉토리는, 수신된 어드레스의 적어도 일부가 메모리의 제 1 소정의 세그먼트들중 적어도 하나 내에 있으며 그리고 제 2 정보가 메모리의 제 1 소정의 세그먼트들 모두에 보안 데이터가 없음을 나타내는 결정에 응답하여, 보안 체크 유닛을 바이패스(bypass)시킨다.
본 발명은 첨부 도면과 함께 설명되는 하기의 상세한 설명으로부터 이해될 수 있는바, 도면의 참조 부호들에 있어서 가장 왼쪽의 숫자(들)는 각 도면 부호들이 나타나는 첫 번째 도면을 나타낸다.
도 1은 본 발명이 이용될 수 있는 컴퓨터 시스템의 하이 레벨 블록도의 일 실시예를 개략적으로 도시한다.
도 2는 도 1의 컴퓨터 시스템에서 이용될 수 있는 개선된 보안 시스템의 최상위 레벨(top level)의 일 실시예를 개략적으로 도시한다.
도 3은 도 1의 컴퓨터 시스템의 보호된 메모리 영역들에 대한 액세스를 제어하기 위한 일부 시스템의 일 실시예를 개략적으로 도시한다.
도 4는 컴퓨터 시스템에 의해 이용되는 다양한 물리적인 메모리 부분들에 대한 액세스를 제어하는 데에 이용되는 메모리 기반 테이블의 일 실시예를 도시한다.
도 5는 도 4의 메모리 기반 테이블의 보다 상세한 실시예를 도시한다.
본 발명은 다양한 변형들 및 대안적인 형태들을 가질 수 있지만, 도면들에는 본 발명의 특정한 실시예들이 도시되어 있으며, 본원에서는 이에 대해 상세히 설명한다. 그러나, 이해될 사항으로서, 이러한 특정한 실시예들에 대한 설명이 본 발명을 개시된 형태로 한정하는 것은 아니다. 본 발명은 첨부된 청구항들에 의해 규정되는 본 발명의 정신 및 범위 내에 있는 모든 변형들, 균등물들 및 대안들을 포함한다.
이하, 본 발명의 예시적인 실시예들에 대해 설명한다. 명확성을 위해, 본원에서는 실제 구현의 모든 특징들을 모두 설명하지는 않는다. 물론, 주목할 사항으로서, 이러한 모든 실제 실시예의 개발시, 예를 들어 시스템 관련 제약 및 사업 관련 제약을 따르는 것과 같이, 개발자의 구체적인 목표들을 달성하기 위해서는, 구현 마다 고유의 다양한 결정들이 이루어져야 하는바, 이는 구현 마다 달라질 것이다. 또한, 주목할 사항으로서, 이러한 개발 노력은 복잡하고 시간이 걸리게 되지만, 그럼에도 불구하고 본원의 개시의 이득을 갖는 당업자들에게는 일상적인 작업이 된다.
먼저, 도 1은 컴퓨터 시스템(100)의 일반적인 블록도를 도시한다. 이 컴퓨터 시스템(100)은, 호스트 버스(104)에 결합되며 다수의 프로세스들(미도시)을 포함할 수 있는 마이크로프로세서와 같은 프로세서(102)를 포함한다. 시스템 메모리 제어기(106)가 호스트 버스(104) 및 메모리 디바이스(108)에 결합된다. 호스트 브리지(110)는 호스트 버스(104)를, 주변 요소 상호 접속(PCI) 버스 (PCI 사양 2.1판)와 같은 주 버스(primary bus)(112)에 결합시킨다. 비디오 제어기(114) 및 다른 디바 이스들(116)(예를 들어, PCI 디바이스들)이 주 버스(112)에 결합된다. 컴퓨터 시스템(100)은, 부(secondary) PCI 버스(미도시) 또는 당업계에 알려진 그 밖의 주변 디바이스들(미도시)과 같은 다른 버스들을 포함한다.
프로세서(102)는 시스템 메모리 제어기(106)를 통해 메모리 디바이스(108)와 통신한다. 이 시스템 메모리 제어기(106)는 통상적으로 구성됨으로써, 메모리 디바이스(108)에 메모리 어드레스들 및 논리 신호들을 제공하여 원하는 메모리 트랜잭션들을 지정한다. 이 메모리 디바이스(108)는, 본 발명의 정신 및 범위를 벗어나지 않으면서 동기형 다이내믹 랜덤 액세스 메모리(SDRAM), 2배속 다이내믹 랜덤 액세스 메모리(DDRAM) 등과 같은 다양한 방식을 취할 수 있다.
도 2는 프로세서(102)와 관련된 물리적인 메모리(108)에 대한 액세스를 제어하기 위해 컴퓨터 시스템(100)에서 이용될 수 있는 보안 시스템(200)의 아키텍쳐의 예시적인 일 실시예를 도시한다. 이 시스템(200)은 메모리 어드레싱에 가상 어드레싱 방식을 이용하는 프로세서에서 유용하다. 예를 들어, 이 시스템(200)은, x86 타입의 마이크로프로세서들에서 이용되고 있는 바와 같은, 페이징 방식을 이용하여 메모리의 어드레스를 지정하는 프로세서에서 유용하다. 또한, 이 시스템(200)은 특히, 그 명칭이 "MEMORY MANAGEMENT SYSTEM AND METHOD PROVIDING INCREASED MEMORY ACCESS SECURITY"이며 2001년 12월 5일 출원된 미국 특허 출원 제10/005271호에 개시된 바와 같은, 페이지 레벨에서 보안 속성(security attributes)들을 할당하는 프로세서에서 유용하며, 상기 미국 특허 출원 제10/005271호는 본 출원의 양수인에게 양도되어 있고, 그 전체가 본원의 참조로서 인용된다.
도 2에 도시된 실시예에서, 시스템(200)에는 마이크로소프트사에 의해 제조되는 Window
Figure 112010028300761-pct00011
와 같은 통상적인 운영 체제(202)가 부가된다. 통상적으로, 운영 체제(202) 및 드라이버들(204)에는 0의 특권 레벨(CPL)이 할당되는바, 이는 이들이 통상 컴퓨터 시스템(100)의 자원들을 액세스하는 데에 있어서 거의 무제한의 액세스를 가짐을 의미한다. 반면, 응용 프로그램들(206)에는 3의 CPL이 할당되는바, 이는 이들이 통상 컴퓨터 시스템(100)의 자원들을 액세스하는 데에 있어서 매우 제한된 액세스 권리를 가지고 있음을 의미한다. 본 발명의 일 실시예에서, 보안 모드(208)는 운영 체제(202), 드라이버들(204) 및 응용 프로그램들(206)에 대해 기능적으로 대응하도록 배치되어 있다. 즉, 보안 커널(210)에는 0의 CPL이 할당되고, 보안 응용 프로그램들(206)에는 3의 CPL이 할당된다. 또한, 보안 특권 레벨(SP)이 운영 체제(202), 드라이버들(204), 응용 프로그램들(206), 보안 커널(210) 및 보안 응용 프로그램들(212)에 할당된다. 이 SP는 통상적인 모드로부터 보안 모드(208)의 액세스 권리를 구별하는 역할을 한다. 즉, CPL과 SP가 결합하여, 보안 커널이 보다 큰 특권들을 가질 수 있게 한다.
보안 커널(210)은 그와 관련된 많은 책임들을 완수할 수 있지만, 본 발명에 있어서 중요한 기능은 메모리 디바이스(108)의 보안 영역들에 데이터/정보/코드를 저장할 수 있는 능력이다. 즉, 보안 커널(210)은 자신의 높은 특권 레벨로 인해 메모리의 선택된 영역에 대한 액세스를 제한한다. 전형적으로, 보안 커널(210)은, 개시 단계중 또는 이후의 시간 동안, 메모리 디바이스(108)의 한 섹션에 데이터/정보/코드를 저장한 다음, 그 섹션이 보안 섹션인 것을 마크하거나 또는 식별한다. 이렇게 메모리의 섹션들이 보안된 섹션인 것으로 식별되면, 하위 특권 레벨들을 갖는 프로그램들에 의해 이 섹션들이 액세스 또는 변경되는 것을 막을 수 있게 된다. 예를 들어, 보안 커널(210)에 의해 기록되고, 보안된 섹션으로 식별된 메모리의 섹션은 운영 체제(202), 드라이버들(204), 보안 응용 프로그램들(212) 또는 응용 프로그램들(206)에 의해 액세스될 수 없다. 이러한 메모리의 보안 섹션들은 오로지 보안 커널(210)에 의해서만 액세스될 수 있다.
계류중인 미국 특허 출원 제10/005271호에서 설명되는 바와 같이, CPU 보안 체크 유닛(SCU)은 CPU에 의해 발생되는 각각의 메모리 액세스 마다 체크하여, 그 액세스가 보안 커널(210)에 의해 보안 영역으로 지정되어 있는 메모리 영역 내에 입력 여부를 판정한다. 또한, 보안 커널(210)에 의해 보안 영역으로 지정된 메모리 영역은 힌트 디렉토리에 의해 분석되는 메모리의 세그먼트 보다 작다. 이에 대해서는 하기에서 보다 상세히 설명된다. 메모리 영역이 보안 영역으로 지정되지 않았으면, CPU SCU는 메모리 액세스가 페이징 유닛과 같은 어드레스 변환 메커니즘으로 진행될 수 있게 한다. 반면, 메모리 액세스가 보안 영역 내에 있으면, CPU SCU는 그 메모리 액세스를 분석하여, 요구측의 에이젼트(requesting agent)가 이러한 요구를 개시할 수 있을 정도로 충분히 높은 특권 레벨을 갖는 지의 여부를 판정한다. CPU SCU의 동작에 대한 보다 상세한 설명은 계류중인 미국 특허 출원 제10/005271호에 개시되어 있는바, 이는 상기에서 본원의 참조로서 인용되었다.
도 3에 도시된 바와 같이, 본 발명은 CPU SCU(304) 앞에 기능적으로 위치하는 힌트 디렉토리(302)에 관련된다. 이 힌트 디렉토리(302)에 의해 시스템(100)은 어느 메모리 액세스의 대상이 보안 메모리의 섹션에 없는 것을 비교적 빠르게 추론한 다음, CPU SCU(304)를 바이패스시킬 수 있게 함으로써, 이 메모리 액세스를 페이징 메커니즘(306)으로 직접 전달하는바, 이 페이징 메커니즘(306)에서 메모리 액세스의 가상 또는 선형 어드레스가 물리적인 어드레스로 변환된다. 힌트 디렉토리는 메모리의 비교적 큰 섹션들이 보안 섹션들을 가지고 있는 지의 여부를 기록하고 있다. 즉, 힌트 디렉토리는 메모리를 1개 또는 그 이상의 페이지들과 같은 비교적 큰 섹션들로 세분한 다음, 그 섹션이 보안 섹션으로 지정되었는 지의 여부를 나타내는 비트를 설정한다. 메모리의 섹션이 보안 부분을 갖지 않으면, 이 섹션에는 보안 부분이 존재하지 않기 때문에, CPU SCU(304)는 액세스하고자 하는 위치들이 보안 영역 내에 있는 지의 여부를 결정하기 위해 더 이상의 질문들을 수행할 필요가 없다.
도 4는 힌트 디렉토리(400)를, 베이스 어드레스(402)에서 시작하여 메모리 디바이스(108)에 저장되는 엔트리들의 테이블 또는 디렉토리로서 개략적으로 도시한다. 각 엔트리는 메모리의 하나의 선택 세그먼트와 관련된 단일 비트이다. 각 엔트리에 저장되는 값은 보안 커널이 그 엔트리와 관련된 메모리의 선택 세그먼트의 어느 부분에 어떠한 데이터/정보/코드를 저장하고 있는 지의 여부를 나타낸다. 즉, 각 엔트리는 관련된 메모리의 세그먼트가 보안되며, CPU SCU(304)에 의해 분석되어야 하는 지의 여부를 나타낸다. 힌트 디렉토리의 입도는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있다. 즉, 어떠한 응용들에서는 각 엔트리가 메모리의 각 페이지에 대응하는 것이 유용하고, 다른 응용들에서는 각 엔트리가 메모리의 다수의 페이지들에 대응하는 것이 유용하다.
힌트 디렉토리(400)의 동작을 설명하기 위해, 2Kbit 페이지의 데이터 입도를 갖는 힌트 디렉토리 및 32 비트 어드레스를 이용하는 시스템(100)과 같은 특정한 예를 고려하는 것이 유용하다. 도 5에 도시된 본 예시적인 실시예에서, 2Kbit 페이지의 개별적인 셀들은 32 비트 어드레스의 하위 10 비트에 의해 표현되어, 힌트 디렉토리 내의 각 위치 및 각 페이지를 식별하기 위한 상위 22 비트를 남긴다. 즉, 베이스 어드레스(402)의 하위 10 비트는 보안 커널(210)에 의해 선택되는 메모리의 시작 어드레스를 식별하고, 액세스 요구의 상위 22 비트는 힌트 디렉토리의 특정 비트를 식별한다. 예를 들어, 22 비트 어드레스 0000000000000000000000은 힌트 디렉토리의 위치(500)를 식별하고, 22 비트 어드레스 0000000000000000000001은 힌트 디렉토리의 위치(502)를 식별하며, 22 비트 어드레스 0000000000000000000010은 힌트 디렉토리의 위치(504)를 식별한다.
또한, 도 5에 도시된 예시적인 실시예에서, 위치들(500 및 504)에는 논리 로우값이 저장됨으로써, 그와 관련된 2Kbit 위치들중 어느 것도 보안되지 않음을 나타낸다. 그러나, 위치(502)에는 논리 하이값이 저장됨으로써, 그와 관련된 2Kbit 위치들중 1개 또는 그 이상이 보안되고 있음을 나타낸다. 따라서, 위치들(500 또는 504)중 어느 하나와 관련된 위치들의 범위로 입력되는 메모리 액세스가 발생하면, 힌트 디렉토리는 CPU SCU(304)가 바이패스되게 함으로써, 변환 프로세스가 즉시 시작될 수 있게 한다. 그러나, 위치(502)와 관련된 위치들의 범위로 입력되는 메모리 액세스가 발생하면, 힌트 디렉토리는 CPU SCU(304)로 하여금 메모리 액세스 요구를 수신하고 분석하여, 보안 메모리 위치를 액세스하고자 하는 지의 여부를 판정하게 한다.
당업자라면 힌트 디렉토리(302)가, 메모리 액세스가 보안 위치를 대상으로 하지 않는다거나 또는 보안 위치를 대상으로 하지 않을 수도 있다는 표시를 제공한다는 것을 알 수 있을 것이다. 이 힌트 디렉토리(302)는 보안 위치를 대상으로 하지 않을 수도 있는 메모리 액세스들을 이후의 분석을 위해 CPU SCU(304)로 보낸다.
상기 설명된 특정 실시예들은 단지 예시적인 것으로서, 본 발명은 본원의 교시의 이득을 갖는 당업자들에게 명백한 다르지만 등가의 방법들로 변경 및 실행될 수 있다. 또한, 하기의 청구항들에서 설명되는 것들 이외에는, 본원에 개시된 구성 또는 설계의 세부적인 사항들에 대한 어떠한 한정도 받지 않는다. 따라서, 상기 개시된 특정 실시예들이 변형 또는 변경될 수 있음은 명백하며, 이러한 모든 변형들은 본 발명의 범위 및 정신 내에 있는 것으로 간주된다. 따라서, 본원에서 보호받고자 하는 대상은 하기의 청구항들의 범위에 기재된 바와 같다.

Claims (10)

  1. 메모리(108)의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하기 위한 장치에 있어서,
    힌트 디렉토리(302)와; 그리고
    보안 체크 유닛(304)을 포함하며,
    상기 힌트 디렉토리(302)는 상기 보안 데이터가 상기 메모리(108)의 복수의 제 1 소정의 세그먼트들중 임의의 하나에 저장되어 있는 지의 여부를 나타내는 제 1 정보를 저장하고, 수신된 어드레스(402)의 적어도 일부가 상기 메모리(108)의 상기 제 1 소정의 세그먼트들중 적어도 하나 내에 있고, 상기 제 1 정보가 상기 메모리(108)의 상기 제 1 소정의 세그먼트들 각각에 상기 보안 데이터가 없음을 나타내고 있는 것으로 판정되면, 상기 보안 체크 유닛(304)을 바이패스시키며; 그리고
    상기 보안 체크 유닛(304)은, 상기 어드레스(402)를 수신하면, 상기 보안 데이터가 상기 메모리(108)의 상기 복수의 제 1 소정의 세그먼트들 각각 내의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 2 정보를 액세스하는 것을 특징으로 하는 메모리(108)의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하는 장치.
  2. 제 1 항에 있어서,
    상기 힌트 디렉토리(302)는, 상기 제 2 정보가 상기 메모리(108)의 상기 제 1 소정의 세그먼트들중 적어도 하나가 상기 보안 데이터를 가지고 있음을 나타내고 있는 것으로 판정되면, 상기 보안 체크 유닛(304)에 상기 어드레스(402)를 제공하는 것을 특징으로 하는 메모리(108)의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하는 장치.
  3. 제 1 항에 있어서,
    상기 힌트 디렉토리(302)는 상기 메모리(108)의 상기 제 1 소정의 세그먼트들중 제 1 복수의 세그먼트와 관련된 하나의 엔트리를 갖는 테이블을 더 포함하며, 상기 엔트리는 상기 보안 데이터를 포함하는 상기 메모리(108)의 상기 제 1 소정의 세그먼트들중 제 1 복수의 세그먼트의 임의의 세그먼트에 응답하여 상기 보안 데이터의 존재를 나타내도록 설정되는 것을 특징으로 하는 메모리(108)의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하는 장치.
  4. 제 3 항에 있어서,
    상기 테이블은 상기 수신된 어드레스(402)의 적어도 일부에 의해 표시되는 상기 메모리(108) 내의 위치에 저장되는 것을 특징으로 하는 메모리(108)의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하는 장치.
  5. 제 3 항에 있어서,
    상기 테이블은 상기 수신된 어드레스(402)의 상위 비트들의 적어도 일부에 의해 표시되는 상기 메모리(108) 내의 위치에 저장되는 것을 특징으로 하는 메모리(108)의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하는 장치.
  6. 메모리(108)의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하기 위한 방법에 있어서,
    상기 보안 데이터가 상기 메모리(108)의 제 1 소정의 세그먼트들 내의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 1 정보를 저장하는 단계와;
    상기 보안 데이터가 상기 메모리(108)의 복수의 제 2 소정의 세그먼트들 각각의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 2 정보를 저장하는 단계와, 여기서 상기 메모리(108)의 상기 제 2 소정의 세그먼트들은 상기 메모리(108)의 상기 제 1 소정의 세그먼트들의 서브세트들이며;
    어드레스(402)를 수신하는 단계와;
    상기 수신된 어드레스(402)의 적어도 일부가 상기 메모리(108)의 상기 제 1 소정의 세그먼트들 내에 있는 지의 여부를 판정하는 단계와;
    상기 저장된 제 1 정보가 상기 메모리(108)의 상기 제 1 소정의 세그먼트들에 상기 보안 데이터가 없음을 나타내는 경우, 상기 어드레스(402)에 대한 액세스를 허가하는 단계와;
    상기 저장된 제 1 정보로부터 상기 메모리(108)의 상기 제 1 소정의 세그먼트들이 상기 보안 데이터를 포함하는 것으로 판정되는 경우, 상기 수신된 어드레스(402)가 위치하는 상기 메모리(108)의 상기 제 2 소정의 세그먼트들중 적어도 하나를 식별하는 단계와; 그리고
    상기 메모리(108)의 상기 식별된 제 2 소정의 세그먼트들과 관련된 상기 저장된 제 2 정보가 상기 메모리(108)의 상기 제 2 소정의 세그먼트들에 상기 보안 데이터가 없음을 나타내는 경우, 상기 수신된 어드레스(402)에 대한 액세스를 허가하는 단계를 포함하는 것을 특징으로 하는 메모리의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 보안 데이터가 상기 메모리(108)의 제 1 소정의 세그먼트들 내의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 1 정보를 저장하는 단계는, 상기 보안 데이터가 상기 메모리(108)의 상기 복수의 제 2 소정의 세그먼트들중 임의의 하나에 저장되어 있는 경우, 단일 정보 비트를 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하기 위한 방법.
  8. 제 6 항에 있어서,
    상기 보안 데이터가 상기 메모리(108)의 복수의 제 2 소정의 세그먼트들 각각의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 2 정보를 저장하는 단계는, 상기 보안 데이터가 복수의 인접하는 제 2 소정의 세그먼트들 각각의 임의의 위치에 저장되어 있는 지의 여부를 나타내는 제 2 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 수신된 어드레스(402)의 적어도 일부가 상기 메모리(108)의 상기 제 1 소정의 세그먼트들 내에 있는 지의 여부를 판정하는 단계는, 상기 수신된 어드레스(402)의 적어도 일부가 상기 복수의 인접하는 제 2 소정의 세그먼트들 내에 있는 지의 여부를 판정하는 단계를 더 포함하는 것을 특징으로 하는 메모리의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하기 위한 방법.
  10. 제 6 항에 있어서,
    상기 저장된 제 1 정보로부터 상기 메모리(108)의 상기 제 1 소정의 세그먼트들이 상기 보안 데이터를 포함하는 것으로 판정되는 경우, 상기 수신된 어드레스(402)가 위치하는 상기 메모리(108)의 상기 제 2 소정의 세그먼트들중 적어도 하나를 식별하는 단계는, 상기 메모리(108)의 상기 제 2 소정의 세그먼트들중 적어도 하나와 관련된 어드레스 범위와 상기 수신된 어드레스(402)를 비교하는 단계를 더 포함하는 것을 특징으로 하는 메모리의 세그먼트 내에 저장된 보안 데이터에 대한 액세스를 제어하기 위한 방법.
KR1020047014469A 2002-03-27 2002-12-20 데이터 프로세서의 보안을 개선하기 위한 방법 및 장치 KR101000543B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/107,633 2002-03-27
US10/107,633 US7571318B2 (en) 2002-03-27 2002-03-27 Method and apparatus for improved security in a data processor
PCT/US2002/041663 WO2003083673A1 (en) 2002-03-27 2002-12-20 Method and apparatus for improved security in a data processor

Publications (2)

Publication Number Publication Date
KR20040101310A KR20040101310A (ko) 2004-12-02
KR101000543B1 true KR101000543B1 (ko) 2010-12-14

Family

ID=28452679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047014469A KR101000543B1 (ko) 2002-03-27 2002-12-20 데이터 프로세서의 보안을 개선하기 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US7571318B2 (ko)
JP (1) JP4399270B2 (ko)
KR (1) KR101000543B1 (ko)
CN (1) CN1315061C (ko)
AU (1) AU2002359879A1 (ko)
DE (1) DE10297688B4 (ko)
GB (1) GB2402782B (ko)
WO (1) WO2003083673A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033979A1 (en) * 2003-08-08 2005-02-10 Hyser Chris D. Method and system for secure direct memory access
US7454787B2 (en) * 2004-01-13 2008-11-18 Hewlett-Packard Development Company, L.P. Secure direct memory access through system controllers and similar hardware devices
US7457832B2 (en) * 2004-08-31 2008-11-25 Microsoft Corporation Verifying dynamically generated operations on a data store
EP1742152B1 (en) * 2005-07-07 2012-09-12 Texas Instruments Inc. Method and system for a multi-sharing memory access control
US7752444B2 (en) * 2005-12-21 2010-07-06 Nortel Networks Limited System and method for providing identity hiding in a shared key authentication protocol
CN101079083B (zh) * 2006-05-25 2010-05-12 中国科学院计算技术研究所 一种对访存操作进行权限检查的系统、装置及方法
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US9378152B2 (en) * 2014-05-09 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
US9563382B2 (en) 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US9507722B2 (en) 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
US10268584B2 (en) 2014-08-20 2019-04-23 Sandisk Technologies Llc Adaptive host memory buffer (HMB) caching using unassisted hinting
US10007442B2 (en) * 2014-08-20 2018-06-26 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints
US10228854B2 (en) 2014-08-20 2019-03-12 Sandisk Technologies Llc Storage devices and methods for optimizing use of storage devices based on storage device parsing of file system metadata in host write operations
US9927997B2 (en) 2015-12-21 2018-03-27 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically and selectively enabling burst mode operation in a storage device
US10521118B2 (en) 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
US10936826B2 (en) 2018-06-14 2021-03-02 International Business Machines Corporation Proactive data breach prevention in remote translation environments
US10884920B2 (en) 2018-08-14 2021-01-05 Western Digital Technologies, Inc. Metadata-based operations for use with solid state devices
CN109033775A (zh) * 2018-09-03 2018-12-18 东莞华贝电子科技有限公司 一种访问权限的远程控制方法及系统
US11249664B2 (en) 2018-10-09 2022-02-15 Western Digital Technologies, Inc. File system metadata decoding for optimizing flash translation layer operations
US11340810B2 (en) 2018-10-09 2022-05-24 Western Digital Technologies, Inc. Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
US6516395B1 (en) * 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6748592B1 (en) * 2000-02-14 2004-06-08 Xoucin, Inc. Method and apparatus for protectively operating a data/information processing device
US7216345B1 (en) * 2000-04-07 2007-05-08 Hall Aluminum Llc Method and apparatus for protectively operating a data/information processing device
CN1252597C (zh) * 2000-07-18 2006-04-19 英特尔公司 在一个独立执行环境中控制对多个独立存储器的访问
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer

Also Published As

Publication number Publication date
WO2003083673A1 (en) 2003-10-09
US20030188184A1 (en) 2003-10-02
JP2005521943A (ja) 2005-07-21
CN1623142A (zh) 2005-06-01
GB2402782B (en) 2005-11-02
JP4399270B2 (ja) 2010-01-13
DE10297688B4 (de) 2006-12-14
CN1315061C (zh) 2007-05-09
GB2402782A (en) 2004-12-15
GB0420638D0 (en) 2004-10-20
KR20040101310A (ko) 2004-12-02
AU2002359879A1 (en) 2003-10-13
US7571318B2 (en) 2009-08-04
DE10297688T5 (de) 2005-06-30

Similar Documents

Publication Publication Date Title
KR101000543B1 (ko) 데이터 프로세서의 보안을 개선하기 위한 방법 및 장치
US5657445A (en) Apparatus and method for limiting access to mass storage devices in a computer system
US7631160B2 (en) Method and apparatus for securing portions of memory
JP5581403B2 (ja) メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納
US6745306B1 (en) Method and system for restricting the load of physical address translations of virtual addresses
US6678825B1 (en) Controlling access to multiple isolated memories in an isolated execution environment
KR100975981B1 (ko) 보안 실행 모드 하에서 보안 커넬을 사용하는 트러스트된클라이언트
US7127579B2 (en) Hardened extended firmware interface framework
EP0306702B1 (en) Virtual input/output commands
US7130977B1 (en) Controlling access to a control register of a microprocessor
CN112074823A (zh) 预测限制存储器区域类型
US6785790B1 (en) Method and apparatus for storing and retrieving security attributes
KR100931706B1 (ko) 타겟 보안을 결정하기 위한 물리적 어드레스-기반 보안에관한 방법 및 장치
KR101001344B1 (ko) 구획된 보안을 위한 입/출력 허가 비트맵
WO2002006929A2 (en) Controlling access to multiple isolated memories in an isolated execution environment
US7296127B2 (en) NoDMA cache
KR100972635B1 (ko) 컴퓨터 시스템내에서의 장치간 액세스를 제어하는 시스템및 방법
KR100941743B1 (ko) 타겟 보안을 이용한 입력/출력 디바이스들의 다중-테이블액세싱을 위한 방법 및 장치
KR100939328B1 (ko) 보안민감명령들의 제한실행을 위한 방법 및 장치
CN116166609A (zh) 存储器防火墙的动态管理
US6889308B1 (en) Method and apparatus for protecting page translations
JP2535086B2 (ja) リング削減ロジック装置
US7698522B1 (en) Method and apparatus for linear address based page level security scheme to determine current security context
JP2002535745A (ja) セキュリティクリティカル機能をデータ処理するシステム

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131205

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141120

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 9