KR101618535B1 - 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호 - Google Patents

시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호 Download PDF

Info

Publication number
KR101618535B1
KR101618535B1 KR1020157000404A KR20157000404A KR101618535B1 KR 101618535 B1 KR101618535 B1 KR 101618535B1 KR 1020157000404 A KR1020157000404 A KR 1020157000404A KR 20157000404 A KR20157000404 A KR 20157000404A KR 101618535 B1 KR101618535 B1 KR 101618535B1
Authority
KR
South Korea
Prior art keywords
address decoder
memory
read
decoder circuit
processor
Prior art date
Application number
KR1020157000404A
Other languages
English (en)
Other versions
KR20150029688A (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 KR20150029688A publication Critical patent/KR20150029688A/ko
Application granted granted Critical
Publication of KR101618535B1 publication Critical patent/KR101618535B1/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/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
    • 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/1425Protection 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 physical, e.g. cell, word, block

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)
  • Storage Device Security (AREA)

Abstract

일반적으로, 본 개시내용은 ACPI(Advanced Configuration and Power Interface) 테이블의 보호를 포함하는 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호를 위한 방법 및 시스템을 제공한다. 방법은 보호될 시스템 메모리의 영역을 선택하는 단계 - 선택은 시스템 리셋 상태에 응답하여 발생하고 신뢰된 BIOS(basic input/output system)를 포함하는 TCB(trusted control block)에 의해 수행됨 -, 선택된 영역을 판독-기입으로 설정하도록 어드레스 디코더 회로를 프로그래밍하는 단계, 안전하게 보호될 데이터를 선택된 영역으로 이동하는 단계, 선택된 영역을 판독 전용으로 설정하도록 어드레스 디코더 회로를 프로그래밍하는 단계, 및 어드레스 디코더 회로 내의 판독 전용 설정을 록킹하는 단계를 포함한다.

Description

시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호{SECURE DATA PROTECTION WITH IMPROVED READ-ONLY MEMORY LOCKING DURING SYSTEM PRE-BOOT}
본 개시내용은 안전한 데이터 보호에 관한 것으로, 특히, ACPI(Advanced Configuration and Power Interface) 테이블의 보호를 포함하는 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호에 관한 것이다.
컴퓨터 플랫폼이 더 복잡해짐에 따라, BIOS(basic input/output system) 및 BIOS-오퍼레이팅 시스템(OS) 통신 루틴을 포함하는 소프트웨어가 점점 공격(attack)의 대상이 되고 있다. 이러한 공격은 ACPI 테이블, UEFI(Unified Extensible Firmware Interface) 런타임 서비스 및 다른 중요 데이터를 목표로 할 수 있다. 현재의 컴퓨팅 시스템은 일반적으로 시스템 메모리에 대한 보호를 제공하지 않고, 이 중요한 코드 및 데이터는 시스템 시동 및/또는 OS 로딩의 완료 전에 상주할 수 있다. OS가 실행을 시작한 후에 ACPI 코드가 커널(kernel) 모드로 실행될 수 있기 때문에, ACPI에 대한 악의적인 변경은 중요한 보안 취약성을 생성할 수 있고, OEM(Original Equipment Manufacturer) OS 이미지의 해적행위(piracy)를 가능하게 할 수 있다.
본 발명의 실시예의 특징 및 이점은 다음의 상세한 설명 및 도면을 참조하여 명백해질 것이고, 동일한 참조 번호는 동일한 부분을 지칭한다.
도 1은 본 개시내용과 일치하는 하나의 예시적인 실시예의 최상위 수준 시스템 다이어그램을 예시한다.
도 2는 본 개시내용과 일치하는 하나의 예시적인 실시예의 블록도를 예시한다.
도 3은 본 개시내용과 일치하는 예시적인 실시예의 동작들의 플로우챠트를 예시한다.
도 4는 본 개시내용과 일치하는 다른 예시적인 실시예의 동작들의 플로우챠트.
도 5는 본 개시내용과 일치하는 다른 예시적인 실시예의 동작들의 플로우챠트.
다음의 상세한 설명은 예시적인 도면을 참조하여 진행할 것이지만, 다수의 대안들, 변경들 및 변형들이 당업자에게 명백할 것이다.
일반적으로, 본 개시내용은 ACPI 테이블의 보호를 포함하는 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호를 위한 방법 및 시스템을 제공한다. 파워 온 또는 시스템 리셋시에, 신뢰된 소프트웨어 및/또는 하드웨어는 보호를 위한 시스템 메모리의 영역을 선택할 수 있다. 신뢰된 하드웨어는 TCB(trusted control block)일 수 있고 신뢰된 소프트웨어는 신뢰된 BIOS일 수 있다. 어드레스 디코더 회로는 안전하게 보호될 중요한 데이터가 시스템 메모리의 선택된 영역으로 이동되도록 선택된 영역을 판독-기입으로 설정하도록 프로그래밍될 수 있다. 데이터를 이동한 후, 어드레스 디코더 회로는 선택된 영역이 판독 전용으로 설정되도록 재프로그래밍될 수 있다. 어드레스 디코더 회로는 시스템이 리셋되지 않는 한 선택된 메모리 영역의 상태의 후속 변화를 방지하도록 록킹될 수 있다. 록킹은 OS 뿐만 아니라 추가의 사전 부팅 및 부팅 동작을 포함하는 신뢰되지 않은 코드가 시스템 메모리의 보호 영역을 사고로 또는 악의로 변경하는 것을 방지할 수 있다.
도 1은 본 개시내용과 일치하는 하나의 예시적인 실시예의 최상위 수준 시스템 다이어그램(100)을 나타낸다. 시스템은 시스템 메모리(102), 어드레스 디코딩 회로(112) 및 사전 부팅 동작(114), 부팅 동작(116) 및 OS 동작(118)을 수행하도록 구성된 프로세서(120)를 포함할 수 있다. 시스템 메모리는 이하에서 더 상세히 설명하는 바와 같이 어드레스 디코딩 회로(112)의 설정을 통해 비보호 영역(104) 및 보호 영역(106)으로 분할될 수 있다. 메모리(106)의 보호 영역에는 신뢰된 BIOS 코드에 의한 사전 부팅 동작(114) 동안 ACPI 테이블(108) 및 안전하게 보호될 다른 중요한 데이터(110)가 로딩될 수 있다. 일부 실시예에서, 다른 중요한 데이터(110)는 UEFI(Unified Extensible Firmware Interface) 런타임 서비스를 포함할 수 있다. 메모리(106)의 보호 영역은, 예를 들어, 부팅(116) 및 OS(118) 내의 신뢰되지 않은 코드에 대한 제어의 전송 전에 판독 전용 모드로 록킹될 수 있다. 일부 실시예에서, OS 동작은 MVMM(Measured Virtual Machine Monitors) 및 OS의 지원으로 실행될 애플리케이션을 포함할 수 있다.
도 2는 본 개시내용과 일치하는 예시적인 실시예의 추가의 세부사항을 나타내는 블록도(200)를 예시한다. 도 1의 프로세서(120)는 임의의 수의 프로세서 코어(208) 중의 하나 일 수 있고, 각각의 프로세서 코어(208)는 프로세서 캐시 메모리 제어기(214) 및/또는 통합된 메모리 제어기(212)를 포함할 수 있다. 프로세서(208)는 하나 이상의 시스템 메모리 모듈(102)과 통신할 수 있고, 각각의 시스템 메모리 모듈은 로컬 메모리 디바이스 제어기(206)를 포함할 수 있다. 메모리 제어기(214, 212 및 206)의 각각은 각각 연관된 어드레스 디코딩 회로(112a, 112b, 112c)를 더 포함할 수 있다.
신뢰된 BIOS(202)는 플랫폼 제어기 허브(204)를 통해 프로세서 코어(208)에 결합될 수 있다. 신뢰된 BIOS(202)는 사전 부팅 동작 동안 ACPI 테이블(108) 및 안전하게 보호될 다른 중요한 데이터(110)를 시스템 메모리(102)의 보호 영역(106)으로 로딩하도록 구성될 수 있다. 신뢰된 BIOS(202)는 신뢰된 실행 환경을 제공하도록 구성된 확인된 하드웨어 및 소프트웨어를 포함하는 TCB와 연관될 수 있다. 신뢰된 BIOS(202)는 어드레스 디코더 회로(112a, 112b, 112c) 중의 하나 이상을 프로그래밍함으로써 보호 영역(106)을 판독 전용 상태로 설정하고 영역을 그 상태로 록킹할 수 있다. 어드레스 디코딩 회로(112a)는 메모리 액세스 설정 프로그램을 위해 제공되는 SAD(Source Address Decoding) 레지스터를 포함할 수 있다. 어드레스 디코딩 회로(112b)는 메모리 액세스 설정 프로그래밍을 위해 제공된 TAD(Target Address Decoding) 레지스터를 포함할 수 있다. 보호 영역은 후속 시스템 리셋, 파워 사이클 또는 ACPI 시스템 슬리프 상태 3로부터의 웨이크업까지 록킹될 수 있다. 보호 영역에 대한 메모리 기입 동작을 수행하려는 후속의 시도는 드롭(예를 들어, 실패)되고, 시스템이 이러한 이벤트를 보고하도록 구성되면 메모리 기입 결함 에러로서 보고될 수 있다.
일부 실시예에서, 시스템 메모리(102)는 PCMS(phase change memory and switch) 회로를 포함하는 동적 랜덤 액세스 메모리(DRAM)일 수 있다.
도 3은 본 개시내용과 일치하는 예시적인 실시예의 동작들(300)의 플로우챠트이다. 동작(310)는, 예를 들어, POST(power on self test) 또는 다른 사전 부팅 동작의 일부로서 시스템 리셋 또는 파워 업시에 발생할 수 있다. 이하에서 설명하는 바와 같이, 동작(310 내지 360)가 신뢰된 BIOS 코드에 의해 수행될 수 있다. 동작(310)에서, CPU, 칩셋 및 메모리가 초기화된다. 동작(320)에서, 시스템 메모리의 보호 영역이 지정된다. 동작(330)에서, ACPI 테이블이 생성되거나 시스템 메모리의 보호 영역으로 이동된다. 다른 중요 또는 보안 데이터, 테이블, 인터페이스 또는 코드 세그먼트가 또한 보호 영역으로 이동될 수 있다. 동작(340)에서, 메모리 제어기 어드레스 디코더는 보호 영역을 판독 전용으로 설정하도록 프로그래밍된다. 동작(350)에서, 보호 영역 설정은 판독 전용 상태로 록킹된다. 동작(360)에서, 신뢰된 BIOS 코드는 TCB 모드를 빠져나올 수 있다. 동작(370)에서, 임의의 나머지 POST 작업이 실행된다. 동작(380)에서, OS 및/또는 MVMM이 시스템 메모리에 로딩되고 시작된다. 일부 실시예에서, OS/MVMM은 보호 메모리 영역으로부터의 ACPI 테이블을 계속 이용하거나 OS/MVMM이 커널(예를 들어 링0(ring0)) 보호 메모리 영역에 ACPI 테이블을 카피할 수 있다.
도 4는 본 개시내용과 일치하는 다른 예시적인 실시예의 동작들(400)의 플로우챠트이다. 동작(410 내지 480)는 신뢰된 BIOS 코드가 상술한 사전 부팅 동작을 완료한 후에 발생할 수 있다. 동작(410)에서, 캐시 메모리 제어기는 메모리 액세스 요청을 수신한다. 동작(420)에서, 캐시 메모리 제어기는 어드레스 디코더를 참고(consult)한다. 동작(430)에서, 요청된 어드레스가 보호 영역에 없으면, 제어는 동작(480)으로 이행한다. 동작(440)에서, 보호 영역이 판독 전용으로 설정되지 않으면, 제어는 동작(480)으로 이행한다. 동작(450)에서, 메모리 액세스 요청이 기입 액세스가 아니면, 제어는 동작(480)으로 이행하고, 그렇지 않으면, 동작(460)에서, 메모리 요청이 드롭되고, 동작(470)에서, 보고가 인에이블되면 에러가 보고된다. 동작(480)에서, 메모리 요청이 완료된다.
도 5는 본 개시내용과 일치하는 다른 예시적인 실시예의 동작들(500)의 플로우챠트이다. 동작(510)에서, 시스템 메모리의 영역이 보호되도록 선택된다. 시스템 리셋 상태에 응답하여 선택이 발생하고 신뢰된 BIOS를 포함하는 TCB(trusted control block)에 의해 수행된다. 동작(520)에서, 어드레스 디코더 회로는 선택된 영역이 판독-기입으로 설정되도록 프로그래밍된다. 동작(530)에서, 안전하게 보호될 데이터가 선택된 영역으로 이동된다. 동작(540)에서, 어드레스 디코더 회로는 선택된 영역이 판독 전용으로 설정되도록 프로그래밍된다. 동작(550)에서, 어드레스 디코더 회로 내의 판독 전용 설정이 록킹된다.
도 3, 4 및 5는 상이한 실시예에 따른 다양한 동작을 나타내지만, 도 3 내지 5에 도시된 모든 동작이 다른 실시예에 반드시 필요한 것은 아님을 이해할 것이다. 실제로, 본 개시내용의 다른 실시예에서, 도 3 내지 5에 도시된 동작 및/또는 본원에 기재된 다른 동작이 도면들 중 임의의 도면에 특별히 도시되지 않은 방식으로 결합될 수 있으나, 여전히 본 개시내용과 완전하게 일치한다는 것이 고려된다. 따라서, 하나의 도면에서 정확히 도시되지 않은 특징 및/또는 동작에 대해 의도된 특허청구범위는 본 개시내용의 범주 및 내용 내에 있는 것으로 간주된다.
본원에 기재된 방법의 실시예는 하나 이상의 프로세서에 의해 실행될 때 방법을 수행하는 명령어어를 개별적으로 또는 조합하여 저장한 하나 이상의 저장 매체를 포함하는 시스템으로 구현될 수 있다. 여기서, 프로세서는 예를 들어, 시스템 CPU(예를 들어, 코어 프로세서) 및/또는 프로그램가능한 회로를 포함할 수 있다. 따라서, 여기에 기재된 방법에 따른 동작은 몇 개의 상이한 물리 위치에서 프로세싱 구조 등의 복수의 물리적 디바이스에 걸쳐 분배될 수 있다. 또한, 방법 동작은 당업자에 의해 이해되는 바와 같이 개별적으로 또는 부분 조합으로 수행될 수 있는 것으로 의도된다. 따라서, 플로우챠트의 각각의 동작 모두가 수행될 필요는 없고, 본 개시내용은 분명히 당업자에 의해 이해되는 바와 같이 이러한 동작의 모든 부분 조합이 가능하다는 것을 의도한다.
저장 매체는 임의의 타입의 유형(tangible) 매체, 예를 들어, 플로피 디스크, 광 디스크, 콤팩트 디스크 판독 전용 메모리(CD-ROM), CD-RW(compact disk rewritable), DVD(digital versatile disk) 및 광자기 디스크를 포함하는 임의의 타입의 디스크, 판독 전용 메모리(ROM), 동적 및 정적 RAM과 같은 랜덤 액세스 메모리(RAM), 소거가능 프로그램가능한 판독 전용 메모리(EPROM), 전기적 소거가능 프로그램가능한 판독 전용 메모리(EEPROM), 플래시 메모리, 자기 또는 광 카드, PCM(phase change memory), PCMS(phase change memory with switch) 등의 반도체 디바이스 또는 전자 명령어를 저장하기에 적합한 임의의 타입의 매체를 포함할 수 있다.
본원의 임의의 실시예에서 사용되는 "회로"는 예를 들어 하드와이어드(hardwired) 회로, 프로그램가능한 회로, 상태 머신 회로 및/또는 프로그램가능한 회로에 의해 실행되는 명령어를 저장하는 펌웨어를 개별적으로 또는 조합하여 포함할 수 있다.
본원의 임의의 실시예에서 사용되는 바와 같이, 용어 "모듈"은 상술한 동작 중의 임의의 것을 수행하도록 구성된 소프트웨어, 펌웨어 및/또는 회로를 지칭할 수 있다. 소프트웨어는 비일시적 컴퓨터 판독가능한 저장 매체 상에 기록된 소프트웨어 패키지, 코드, 명령어, 명령어 세트 및/또는 데이터로서 실시될 수 있다. 펌웨어는 메모리 디바이스에 하드 코딩(예를 들어, 비휘발성)된 코드, 명령어, 또는 명령어 세트 및/또는 데이터로서 실시될 수 있다. 본원의 임의의 실시예에서 사용된 "회로"는 예를 들어 하드와이어드 회로, 하나 이상의 개별 명령어 프로세싱 코어를 포함하는 컴퓨터 프로세서, 상태 머신 회로 등의 프로그램가능한 회로 및/또는 프로그램가능한 회로에 의해 실행되는 명령어를 저장하는 펌웨어를 개별적으로 또는 임의의 조합으로 포함할 수 있다. 모듈은 더 큰 시스템의 일부를 형성하는 회로, 예를 들어, 집적 회로(IC), SoC(system on-chip), 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰 등으로서 총괄하여 또는 개별적으로 실시될 수 있다.
앱은 호스트 프로세서 또는 다른 프로그램가능한 회로 등의 프로그램가능한 회로 상에서 실행될 수 있는 코드 또는 명령어로서 실시될 수 있다.
따라서, 본 개시내용은 ACPI 테이블의 보호를 포함하는 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호를 위한 방법 및 시스템을 제공한다.
일 양태에 따르면, 방법이 제공된다. 방법은 보호될 시스템 메모리의 영역을 선택하는 것을 포함하고, 선택은 시스템 리셋 상태에 응답하여 발생하고, 선택은 신뢰된 BIOS(basic input/output system)를 포함하는 TCB(trusted control block)에 의해 수행된다. 이 예의 방법은 또한 선택된 영역을 판독-기입으로 설정하도록 어드레스 디코더 회로를 프로그래밍하는 것을 포함한다. 이 예의 방법은 안전하게 보호될 데이터를 선택된 영역으로 이동하는 동작을 더 포함할 수 있다. 이 예의 방법은 선택된 영역을 판독 전용으로 설정하도록 어드레스 디코더 회로를 프로그래밍하는 것을 더 포함할 수 있다. 이 예의 방법은 어드레스 디코더 회로 내의 판독 전용 설정을 록킹하는 것을 더 포함할 수 있다.
다른 예시적인 방법은 상술한 동작을 포함하고, 시스템 리셋 상태는 시스템 파워 업(power up)을 더 포함한다.
다른 예시적인 방법은 상술한 동작을 포함하고, 안전하게 보호될 데이터는 ACPI 테이블을 포함한다.
다른 예시적인 방법은 상술한 동작을 포함하고, 록킹 후에 나머지 시스템 시동 작업을 수행하는 것을 더 포함한다.
다른 예시적인 방법은 상술한 동작을 포함하고, 나머지 시스템 시동 작업은 OS를 로딩하는 것을 포함한다.
다른 예시적인 방법은 상술한 동작을 포함하고, 어드레스 디코더 회로는 프로세서 캐시 메모리 제어기와 연관된 SAD 레지스터를 통해 프로그래밍된다.
다른 예시적인 방법은 상술한 동작을 포함하고, 어드레스 디코더 회로는 통합된 프로세서 메모리 제어기와 연관된 TAD 레지스터를 통해 프로그래밍된다.
다른 예시적인 방법은 상술한 동작을 포함하고, 어드레스 디코더 회로는 DRAM 디바이스 제어기와 연관된다.
다른 예시적인 방법은 상술한 동작을 포함하고, 록킹이 수행된 후 선택된 영역에 대한 메모리 기입 요청을 거부하는 것을 더 포함한다.
다른 예시적인 방법은 상술한 동작을 포함하고, 메모리 기입 요청 거부에 응답하여 메모리 기입 결함 에러를 보고하는 것을 더 포함한다.
일 양태에 따르면, 시스템이 제공된다. 시스템은 시스템 메모리, 시스템 메모리에 결합된 어드레스 디코더 회로, 어드레스 디코더 회로에 결합된 프로세서를 포함한다. 이 예의 시스템은 또한 프로세서와 연관된 TCB를 포함하고, TCB는 신뢰된 BIOS(basic input/output system)를 실행하도록 구성된다. 이 예의 신뢰된 BIOS는 또한 시스템 리셋 상태에 응답하여 보호될 데이터를 시스템 메모리의 선택된 영역으로 이동하고, 선택된 영역을 판독 전용으로 설정하도록 어드레스 디코더 회로를 프로그래밍하고, 어드레스 디코더 회로 내의 판독 전용 설정을 록킹하도록 구성될 수 있다.
다른 예시적인 시스템은 상술한 컴포넌트를 포함하고, 시스템 리셋 상태는 시스템 파워 업을 더 포함한다.
다른 예시적인 시스템은 상술한 컴포넌트를 포함하고, 안전하게 보호될 데이터는 ACPI 테이블을 포함한다.
다른 예시적인 시스템은 상술한 컴포넌트를 포함하고, 프로세서 캐시 메모리 제어기를 더 포함하고, 어드레스 디코더 회로는 프로세서 캐시 메모리 제어기와 연관된 SAD 레지스터를 통해 프로그래밍된다.
다른 예시적인 시스템은 상술한 컴포넌트를 포함하고, 통합된 프로세서 메모리 제어기를 더 포함하고, 어드레스 디코더 회로는 통합된 프로세서 메모리 제어기와 연관된 TAD 레지스터를 통해 프로그래밍된다.
다른 예시적인 시스템은 상술한 컴포넌트를 포함하고, DRAM 디바이스 제어기를 더 포함하고, 어드레스 디코더 회로는 DRAM 디바이스 제어기와 연관된다.
다른 양태에 따르면, 프로세서에 의해 실행될 때 프로세서로 하여금 전술한 예들에 기재된 방법을 수행하게 하는 명령어를 저장한 적어도 하나의 컴퓨터 판독가능 매체가 제공된다.
본원에서 채택된 용어 및 표현은 설명의 용어로서 사용되며, 제한적으로 사용된 것이 아니고, 그러한 용어 및 표현의 사용이 도시되고 기재된 특징들 (또는 그의 일부)의 임의의 동등물을 배제하려는 것을 의도하지 않으며, 특허청구범위의 범주 내에서 다양한 변경들이 가능함을 인식할 것이다. 따라서, 특허청구범위는 이러한 모든 동등물을 포괄하도록 의도된다. 다양한 특징, 양태 및 실시예가 본원에 설명된다. 당업자에 의해 이해되는 바와 같이, 특징들, 양태들 및 실시예들은 서로 결합되기 쉬울 뿐만 아니라 변형 및 변경되기 쉽다. 그러므로, 본 개시내용은 이러한 조합, 변형 및 변경을 모두 포함하는 것으로 간주된다.

Claims (26)

  1. 안전한 데이터 보호를 위한 방법으로서,
    보호될 시스템 메모리의 영역을 선택하는 단계 - 상기 선택은 시스템 리셋 상태에 응답하여 발생하고, 상기 선택은 신뢰된 BIOS(basic input/output system)를 포함하는 TCB(trusted control block)에 의해 수행됨 -;
    상기 선택된 영역을 판독-기입으로 설정하도록 어드레스 디코더 회로를 프로그래밍하는 단계;
    안전하게 보호될 데이터를 상기 선택된 영역으로 이동하는 단계;
    상기 선택된 영역을 판독 전용으로 설정하도록, 프로세서 캐시 메모리 제어기와 연관된 소스 어드레스 디코더(SAD) 레지스터 또는 통합된 프로세서 메모리 제어기와 연관된 타겟 어드레스 디코더(TAD) 레지스터를 통해, 상기 어드레스 디코더 회로를 프로그래밍하는 단계; 및
    상기 어드레스 디코더 회로 내의 상기 판독 전용 설정을 록킹(locking)하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 시스템 리셋 상태는 시스템 파워 업을 더 포함하는 방법.
  3. 제1항에 있어서, 상기 안전하게 보호될 데이터는 ACPI(Advanced Configuration and Power Interface) 테이블을 포함하는 방법.
  4. 제1항에 있어서, 상기 록킹 후에 나머지 시스템 시동 작업들을 수행하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서, 상기 나머지 시스템 시동 작업들은 운영 체제(OS)를 로딩하는 것을 포함하는 방법.
  6. 삭제
  7. 삭제
  8. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 어드레스 디코더 회로는 동적 랜덤 액세스 메모리(DRAM) 디바이스 제어기와 연관되는 방법.
  9. 제1항에 있어서, 상기 록킹이 수행된 후 상기 선택된 영역에 대한 메모리 기입 요청을 거부하는 단계를 더 포함하는 방법.
  10. 제9항에 있어서, 상기 메모리 기입 요청 거부에 응답하여 메모리 기입 결함 에러를 보고하는 단계를 더 포함하는 방법.
  11. 안전한 데이터 보호를 위한 시스템으로서,
    시스템 메모리;
    상기 시스템 메모리에 결합된 어드레스 디코더 회로;
    상기 어드레스 디코더 회로에 결합된 프로세서;
    프로세서 캐시 메모리 제어기;
    통합된 프로세서 메모리 제어기; 및
    상기 프로세서와 연관되고, 신뢰된 BIOS를 실행하도록 구성되는 TCB
    를 포함하고,
    상기 신뢰된 BIOS는,
    시스템 리셋 상태에 응답하여 안전하게 보호될 데이터를 상기 시스템 메모리의 선택된 영역으로 이동하고,
    상기 선택된 영역을 판독 전용으로 설정하도록, 상기 프로세서 캐시 메모리 제어기와 연관된 소스 어드레스 디코더(SAD) 레지스터 또는 상기 통합된 프로세서 메모리 제어기와 연관된 타겟 어드레스 디코더(TAD) 레지스터를 통해, 상기 어드레스 디코더 회로를 프로그래밍하고,
    상기 어드레스 디코더 회로 내의 상기 판독 전용 설정을 록킹하도록 구성되는 시스템.
  12. 제11항에 있어서, 상기 시스템 리셋 상태는 시스템 파워 업을 더 포함하는 시스템.
  13. 제11항에 있어서, 상기 안전하게 보호될 데이터는 ACPI 테이블을 포함하는 시스템.
  14. 삭제
  15. 삭제
  16. 제11항 내지 제13항 중 어느 한 항에 있어서, 동적 랜덤 액세스 메모리(DRAM) 디바이스 제어기를 더 포함하고, 상기 어드레스 디코더 회로는 상기 동적 랜덤 액세스 메모리(DRAM) 디바이스 제어기와 연관되는 시스템.
  17. 프로세서에 의해 실행될 때 안전한 데이터 보호를 위한 이하의 동작들을 수행하는 명령어들을 저장한 컴퓨터 판독가능한 저장 매체로서,
    상기 동작들은,
    보호될 시스템 메모리의 영역을 선택하는 동작 - 상기 선택은 시스템 리셋 상태에 응답하여 발생하고, 상기 선택은 신뢰된 BIOS를 포함하는 TCB에 의해 수행됨 -;
    상기 선택된 영역을 판독-기입으로 설정하도록 어드레스 디코더 회로를 프로그래밍하는 동작;
    안전하게 보호될 데이터를 상기 선택된 영역으로 이동하는 동작;
    상기 선택된 영역을 판독 전용으로 설정하도록, 프로세서 캐시 메모리 제어기와 연관된 소스 어드레스 디코더(SAD) 레지스터 또는 통합된 프로세서 메모리 제어기와 연관된 타겟 어드레스 디코더(TAD) 레지스터를 통해, 상기 어드레스 디코더 회로를 프로그래밍하는 동작; 및
    상기 어드레스 디코더 회로 내의 상기 판독 전용 설정을 록킹하는 동작
    을 포함하는 컴퓨터 판독가능한 저장 매체.
  18. 제17항에 있어서, 상기 시스템 리셋 상태는 시스템 파워 업을 더 포함하는 컴퓨터 판독가능한 저장 매체.
  19. 제17항에 있어서, 상기 안전하게 보호될 데이터는 ACPI 테이블을 포함하는 컴퓨터 판독가능한 저장 매체.
  20. 제17항에 있어서, 상기 록킹 후에 나머지 시스템 시동 작업들을 수행하는 동작을 더 포함하는 컴퓨터 판독가능한 저장 매체.
  21. 제20항에 있어서, 상기 나머지 시스템 시동 작업들은 운영 체제(OS)를 로딩하는 것을 포함하는 컴퓨터 판독가능한 저장 매체.
  22. 삭제
  23. 삭제
  24. 제17항 내지 제21항 중 어느 한 항에 있어서, 상기 어드레스 디코더 회로는 동적 랜덤 액세스 메모리(DRAM) 디바이스 제어기와 연관되는 컴퓨터 판독가능한 저장 매체.
  25. 제17항에 있어서, 상기 록킹이 수행된 후 상기 선택된 영역에 대한 메모리 기입 요청을 거부하는 동작을 더 포함하는 컴퓨터 판독가능한 저장 매체.
  26. 제25항에 있어서, 상기 메모리 기입 요청 거부에 응답하여 메모리 기입 결함 에러를 보고하는 동작을 더 포함하는 컴퓨터 판독가능한 저장 매체.
KR1020157000404A 2012-08-09 2013-08-08 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호 KR101618535B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/570,315 2012-08-09
US13/570,315 US9075751B2 (en) 2012-08-09 2012-08-09 Secure data protection with improved read-only memory locking during system pre-boot
PCT/US2013/054113 WO2014025988A1 (en) 2012-08-09 2013-08-08 Secure data protection with improved read-only memory locking during system pre-boot

Publications (2)

Publication Number Publication Date
KR20150029688A KR20150029688A (ko) 2015-03-18
KR101618535B1 true KR101618535B1 (ko) 2016-05-04

Family

ID=50067082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157000404A KR101618535B1 (ko) 2012-08-09 2013-08-08 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호

Country Status (5)

Country Link
US (1) US9075751B2 (ko)
EP (1) EP2883187A4 (ko)
KR (1) KR101618535B1 (ko)
CN (1) CN104011733B (ko)
WO (1) WO2014025988A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916454B2 (en) * 2011-12-22 2018-03-13 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
CN105793816A (zh) * 2013-12-27 2016-07-20 英特尔公司 硅初始化的受控定制
US9921865B2 (en) * 2014-01-30 2018-03-20 Red Hat Israel, Ltd. Population of system tables by hypervisor
JP5889933B2 (ja) * 2014-02-15 2016-03-22 レノボ・シンガポール・プライベート・リミテッド コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ
US10387668B2 (en) 2014-07-08 2019-08-20 International Business Machines Corporation Data protected process cores
US10198274B2 (en) * 2015-03-27 2019-02-05 Intel Corporation Technologies for improved hybrid sleep power management
CN111295644A (zh) 2017-10-30 2020-06-16 惠普发展公司,有限责任合伙企业 保障硬件初始化
US11169935B2 (en) * 2018-06-20 2021-11-09 Intel Corporation Technologies for low-latency cryptography for processor-accelerator communication
JP2021111112A (ja) * 2020-01-09 2021-08-02 キヤノン株式会社 画像形成装置、及びその制御方法
US11321077B1 (en) * 2020-06-05 2022-05-03 Amazon Technologies, Inc. Live updating of firmware behavior
US11741232B2 (en) * 2021-02-01 2023-08-29 Mellanox Technologies, Ltd. Secure in-service firmware update
CN113032737B (zh) * 2021-03-15 2021-11-30 清华大学 软件的保护方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3884839B2 (ja) * 1997-10-17 2007-02-21 株式会社ルネサステクノロジ 半導体記憶装置
US6292874B1 (en) * 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
KR100543442B1 (ko) * 2002-09-06 2006-01-23 삼성전자주식회사 불 휘발성 반도체 메모리 장치의 메모리 블록들의 쓰기방지 영역을 설정하는 장치
GB2411027B (en) * 2002-11-18 2006-03-15 Advanced Risc Mach Ltd Control of access to a memory by a device
US20040268084A1 (en) 2003-06-30 2004-12-30 Steve Longerbeam Protected RAM filesystem
US7698552B2 (en) 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
US20050283599A1 (en) * 2004-06-22 2005-12-22 Zimmerman Toby S Exposing BIOS information to an ACPI aware operating system
US9158941B2 (en) * 2006-03-16 2015-10-13 Arm Limited Managing access to content in a data processing apparatus
US8312509B2 (en) 2006-09-21 2012-11-13 Intel Corporation High integrity firmware
US20080263256A1 (en) * 2007-04-20 2008-10-23 Motorola, Inc. Logic Device with Write Protected Memory Management Unit Registers
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
US8769228B2 (en) 2010-12-17 2014-07-01 Intel Corporation Storage drive based antimalware methods and apparatuses
CN102063591B (zh) * 2011-01-07 2012-08-08 北京工业大学 基于可信平台的平台配置寄存器参考值的更新方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations

Also Published As

Publication number Publication date
CN104011733A (zh) 2014-08-27
WO2014025988A1 (en) 2014-02-13
EP2883187A4 (en) 2016-04-13
KR20150029688A (ko) 2015-03-18
CN104011733B (zh) 2016-12-21
US20140047174A1 (en) 2014-02-13
US9075751B2 (en) 2015-07-07
EP2883187A1 (en) 2015-06-17

Similar Documents

Publication Publication Date Title
KR101618535B1 (ko) 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호
JP5307196B2 (ja) シリコンに一体化されたコードのシステムへの提供
US9785596B2 (en) Redundant system boot code in a secondary non-volatile memory
US9230116B2 (en) Technique for providing secure firmware
JP6433198B2 (ja) 安全なブートromパッチのためのシステム及び方法
JP5889933B2 (ja) コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ
US8296528B2 (en) Methods and systems for microcode patching
CN101504704B (zh) 由星型信任链支持的嵌入式平台应用程序完整性验证方法
JP2013250980A (ja) プロセッサ資源および実行保護の方法および装置
JP2017091497A (ja) ハイパーバイザモードにおけるコードの安全な実行システムおよび方法
KR20130045389A (ko) 오퍼레이팅 시스템(os) 독립 안티-바이러스(av) 스캐너에 대해 강제적 보안 정책을 시행하기 위한 방법 및 장치
WO2014043884A1 (en) Isolated guest creation in vlrtualized computing system
CN104217139A (zh) 处理系统
CN107567629A (zh) 在可信执行环境容器中的动态固件模块加载器
US20130159661A1 (en) Hardware monitor
US9448888B2 (en) Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
JP5561791B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US20180226136A1 (en) System management mode test operations
CN108537066B (zh) 安全代码跳转和执行选通
CN112114908A (zh) 硬件平台及其启动方法、装置和电子设备
RU2538286C9 (ru) Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера
US20200142738A1 (en) Systems And Methods For Control Flow Integrity In System Management Mode (SMM)
RU2537814C2 (ru) Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера
JP2018036695A (ja) 情報処理監視装置、情報処理監視方法、監視プログラム、記録媒体及び情報処理装置
JP2018049402A (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: 20190328

Year of fee payment: 4