KR20110034612A - 데이터 처리 시스템 및 방법 - Google Patents

데이터 처리 시스템 및 방법 Download PDF

Info

Publication number
KR20110034612A
KR20110034612A KR1020107029085A KR20107029085A KR20110034612A KR 20110034612 A KR20110034612 A KR 20110034612A KR 1020107029085 A KR1020107029085 A KR 1020107029085A KR 20107029085 A KR20107029085 A KR 20107029085A KR 20110034612 A KR20110034612 A KR 20110034612A
Authority
KR
South Korea
Prior art keywords
segment
memory
processor
access
module
Prior art date
Application number
KR1020107029085A
Other languages
English (en)
Other versions
KR101567620B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41137881&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20110034612(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from EP08158870A external-priority patent/EP2138946A1/en
Application filed by 나그라비젼 에스에이 filed Critical 나그라비젼 에스에이
Publication of KR20110034612A publication Critical patent/KR20110034612A/ko
Application granted granted Critical
Publication of KR101567620B1 publication Critical patent/KR101567620B1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Circuits Of Receivers In General (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 데이터 처리 시스템에서 저장 장치로부터 메모리 모듈로 디지털 정보를 안전하게 로딩하는 시스템 및 방법에 관한 것으로, 상기 데이터 처리 시스템은 적어도 하나의 저장 장치와, 적어도 하나의 메모리 모듈과, 적어도 하나의 프로세서와, 상기 프로세서와 상기 메모리 모듈 사이에 접속된 메모리 액세스 컨트롤러와, 상기 프로세서, 상기 메모리 모듈, 상기 저장 장치 및 상기 메모리 액세스 컨트롤러에 접속된 보안 메모리 관리 모듈을 포함한다. 프로세서에 의한 데이터 요구는 보안 메모리 관리 모듈로 전달되고, 보안 메모리 관리 모듈은 저장 장치로부터 메모리 모듈로 데이터를 로딩하고, 프로세서가 데이터에 대한 액세스를 갖도록 메모리 액세스 컨트롤러를 구성한다.

Description

데이터 처리 시스템 및 방법{SECURE MEMORY MANAGEMENT SYSTEM AND METHOD}
본 발명은 컴퓨터 보안 분야에 관한 것으로, 특히 데이터 또는 애플리케이션의 휘발성 작업 메모리로의 안전한 로딩을 보장하거나 또는 하나의 애플리케이션이 다른 애플리케이션을 위한 데이터 또는 코드를 수정하지 않도록 서로로부터 동시 애플리케이션을 격리시키는 것에 관한 것이다.
데이터 처리 시스템은 프로세싱 유닛(CPU), 휘발성 메모리(RAM) 및 비휘발성 메모리(ROM)와 같은 하드웨어 자원을 포함할 수 있다. 데이터 처리 시스템은 적어도 하나의 운영체제의 제어 하에 동작하고 하나 또는 여러 개의 소프트웨어 자원 또는 애플리케이션에 따른 루틴을 수행할 수 있다. 애플리케이션은 비휘발성 메모리에 저장되고 실행이 요구될 때 휘발성 메모리로 로딩될 수 있다. 애플리케이션의 실행 동안 상기 애플리케이션에 의해 요구되는 데이터 또는 애플리케이션에 의해 생성되는 데이터는 비휘발성 또는 휘발성 메모리에 저장되거나 하나의 메모리로부터 다른 메모리로 전달될 수 있다.
무선 접속을 포함한 데이터 처리 시스템에 대한 다수의 접속 옵션의 출현으로 그리고 모바일 데이터 처리 시스템의 사용이 크게 성장함에 따라, 악의적인 공격으로부터 이들 시스템을 보호할 필요성이 매우 중요하게 되었다. 악의적인 공격은 시스템 부팅을 방해하고/방해하거나 일부 애플리케이션에 의해 생성 또는 사용되는 데이터를 가로채고/가로채거나 변형시키는 것을 목표로 할 수 있다.
이제, 데이터 처리 시스템에 대한 부정한 조작 및 공격에 대해 데이터 처리 시스템을 보호하는 것이 필요한 요건이 되고 있다. 이러한 악의적인 공격은 데이터 처리 시스템의 운영체제를 인계하거나 또는 그렇지 않으면 사용자의 인식 또는 허가없이 데이터 처리 시스템의 정상적인 프로세싱 시퀀스를 방해하도록 설계된 소프트웨어의 형태로 나타날 수 있다. 이러한 소프트웨어는 멀웨어(malware)로 알려져 있다. 데이터 처리 시스템에서 멀웨어의 존재는 일반적으로 치유하기가 어렵고, 시스템을 완전히 고장내거나 심지어 시스템을 복구불가능하게 만들 수 있다.
컴퓨터 바이러스, 웜, 트로이안 목마, 스파이웨어 등은 모두 상이한 유형의 멀웨어이다. 상이한 유형의 멀웨어는 다른 애플리케이션용인 데이터를 가로채거나 패스워드 또는 비밀로 유지되어야 하는 다른 정보를 훔치기 위해 키 스트로크를 감시하거나, 데이터를 수정 또는 변경하거나 파일을 파괴하거나, 사용자가 의도하지 않은 일부 기능을 파괴하거나 또는 실행시키도록 프로그램을 수정하는 등의 다양한 방법으로 처리 시스템을 공격할 수 있다.
멀웨어 공격을 물리치기 위한 시스템이 존재하며 일반적으로 시스템의 CPU에 의해 구성될 수 있는 메모리 관리 유닛의 특징을 갖는다. 따라서 CPU가 악의의 사용자로부터 공격을 받으면 안전성이 손상된다. 최근의 CPU의 복잡성 때문에, 그러한 공격의 가능성을 최소화하기 위해 요구되는 부가적인 보안 기능은 그러한 기능을 구현하는데 필요한 여분의 온칩 공간에 의해 비용이 크게 증가하게 되고 컴퓨팅 오버헤드가 발생하며 따라서 동작 속도가 저하된다. 또한, 통상적인 CPU의 복잡성으로 인해, 그러한 수정은 받아들일 수 있는 수준의 신뢰도를 갖는 높은 보안 수전을 제공할 수 없다. 따라서, 데이터 처리 시스템에서 데이터 또는 애플리케이션을 메모리에 로딩하거나 메모리로부터 언로딩하는 것을 안전하게 관리하는 비용면에서 효율적이고 크기면에서 효율적인 해법을 갖는 것이 바람직하다.
본 발명은 적어도 하나의 저장 장치(SD)와, 적어도 하나의 메모리 모듈(MM)과, 적어도 하나의 프로세서(CP)를 포함하되, 저장 장치(SD)는 적어도 하나의 데이터 세그먼트와, 세그먼트에 대한 액세스 및 인증 데이터를 갖는, 데이터 처리 시스템에서 저장 장치(SD)로부터 메모리 모듈(MM)로 디지털 정보를 안전하게 로딩하는 방법 및 시스템에 관한 것으로서, 데이터 처리 시스템은 프로세서(CP)와 메모리 모듈(MM) 사이에 접속된 메모리 액세스 컨트롤러(RA)와, 프로세서(CP), 메모리 모듈(MM), 저장 장치(SD) 및 메모리 액세스 컨트롤러(RA)에 접속된 보안 메모리 관리 모듈(SMM)을 포함하고, 보안 메모리 관리 모듈(SMM)은 프로세서(CP)로부터 저장 장치(SD)에 저장된 세그먼트에 대한 요구를 수신하는 수단을 포함하고, 세그먼트는 적어도 하나의 액세스 조건 상기 세그먼트와 관련된 적어도 하나의 인증 데이터 조각을 가지며, 보안 메모리 관리 모듈(SMM)은 요구된 세그먼트를 저장 장치(SD)로부터 메모리 모듈(MM)로 로딩하는 수단과, 인증 데이터를 사용하여 액세스 조건을 인증하는 수단과, 액세스 조건을 이용하여 메모리 액세스 컨트롤러(RA)를 구성하는 수단을 포함하며, 메모리 액세스 컨트롤러(RA)는 프로세서(CP)로부터 프로세서 상태를 검출하는 수단과, 액세스 조건을 프로세서 상태와 비교하는 수단과, 비교 결과에 따라서 메모리 모듈(MM)에 대한 액세스를 허용 또는 차단하는 수단을 포함한다.
데이터 처리 시스템에서 저장 장치(SD)로부터 메모리 모듈(MM)로 디지털 정보를 안전하게 로딩하기 위한 본 발명에 이용되는 방법은 보안 메모리 관리 모듈(SMM)에 의해, 프로세서(CP)로부터 디지털 정보에 대한 요구를 수신하는 단계와, 저장 장치(SD)에서 요구된 디지털 정보를 포함하는 세그먼트를 찾아내는 단계와, 세그먼트에 대한 액세스 조건 세트 및 인증 데이터를 추출하는 단계와, 인증 데이터로 액세스 조건을 인증하는 단계와, 찾아낸 세그먼트를 수용할 메모리 모듈(MM) 내의 적절한 영역을 결정하는 단계와, 찾아낸 세그먼트를 메모리 모듈(MM) 내의 결정된 영역에 로딩하는 단계와, 추출된 액세스 조건을 이용하여 메모리 액세스 컨트롤러 모듈(RA)을 구성하는 단계를 포함한다.
본 발명은, 메모리 모듈(MM)을 로딩하고 메모리 액세스 컨트롤러(RA)를 구성하는 보안 메모리 관리 모듈(SMM)에 결합된 메모리 모듈(MM)과 프로세서(CP) 사이에서 방화벽 역할을 하는 메모리 액세스 컨트롤러 모듈(RA)을 사용한다. 보안 메모리 관리 모듈(SMM)은 로드 및 저장과 같은 축소된 커멘드 세트를 갖는 단순한 구조이므로, 이러한 구성은 시스템에 높은 수준의 보안을 가져오며, 따라서 CPU가 메모리 액세스 컨트롤러 모듈을 구성하는 것을 담당하는 경우의 CPU보다 공격에 덜 취약하다.
도 1은 프로세서(CP), 메모리 모듈(MM), 저장 장치(SD), 메모리 액세스 컨트롤러 모듈(RA) 및 보안 메모리 관리 모듈(SMM)을 포함하는 데이터 처리 시스템을 도시한 도면.
본 발명은 첨부 도면과 함께 바람직한 실시예의 상세한 설명을 참조하면 가장 잘 이해될 것이다.
최근의 데이터 처리 시스템은 일반적으로 메모리 집약적이다. 이 사실은 온칩 메모리가 고가일 수 있다는 사실과 함께 많은 데이터 처리 시스템에서 상당 량의 오프칩 저장부에 의존하게 만든다. 따라서 보안이 중요한 경우, 오프칩 또는 비신뢰적(non-trusted) 환경과 온칩 또는 신뢰적(trusted) 환경 간에 데이터를 안전하게 전송할 수 있게 하는 것이 요구된다. 또한, 최근의 CPU(프로세서)의 복잡성으로 인해, 요구된 높은 수준의 보안성을 유지하면서 요구된 목표를 달성할 수 있도록 프로세서를 수정하는 것이 쉽지 않고, 또한 온칩 면적 때문에 저렴하지도 않다. 따라서, 메모리 액세스와 관련된 작업을 담당하는, 로드(load) 및 저장(store)과 같은 제한된 수의 컨맨드를 사용하는 전용 하드웨어를 갖는 것이 보다 바람직할 것이다.
본 발명은 데이터 처리 시스템 내에서, 저장 장치로부터 메모리 모듈로 디지티러 정보를 안전하게 로딩하는 수단을 제공하는 방법 및 하드웨어 솔루션을 설명한다. 일반적으로, 저장 장치는 비신뢰적 환경에 있고 메모리 모듈은 신뢰적 모듈에 있다. 본 발명은 신뢰적 환경과 비신뢰적 환경 사이에 인터페이스를 제공하고, 이를 통해 디지털 정보로의 액세스에 대한 요구가 전달된다. 본 발명은 메모리 모듈에 저장된 데이터에 대한 필요한 액세스 권한을 갖는 프로세서가 메모리의 요구된 부분이 로딩되면 메모리의 요구된 부분에 대한 액세스를 갖도록 인터페이스를 구성하는 수단을 포함한다. 저장 장치는 플래시 메모리, EPROM, EEPROM, ROM, 하드 디스크, 외부 서버 또는 기타 저장 수단의 형태를 취할 수 있다. 메모리 모듈은 일반적으로 RAM(random access memory), 즉 휘발성 메모리의 형태를 취할 것이다. 본 명세서에서, 디지털 정보란 용어는 실행가능한 코드 또는 실행가능한 코드에 의해 발생되거나 또는 사용된 정보와 같이 메모리 모듈에 로딩되기 쉬운 데이터를 나타내는데 사용된다.
본 발명의 보안 메모리 관리 시스템은 적어도 프로세서(CP), 메모리 모듈(MM) 및 저장 장치(SD)를 포함하는 데이터 처리 시스템(도 1 참고)에 통합되고, 한쪽이 프로세서(CP)와 메모리 모듈(MM) 사이에 접속되고 다른 한쪽이 저장 장치(SD)에 접속된 보안 메모리 관리 모듈(SMM)로 알려진 전용 하드웨어를 포함하며, 보안 메모리 관리 모듈(SMM)의 목적은 프로세서(CP)와 메모리 모듈(MM) 사이의 통신을 관리하고, 저장 장치(SD)와 메모리 모듈(MM) 사이에 디지털 정보를 전달한다. 즉, 메모리 모듈(MM)에 로딩 및 업로딩한다. 보안 메모리 관리 시스템은 또한 프로세서(CP)와 메모리 모듈(MM) 사이에 위치해 있는 메모리 액세스 컨트롤러 모듈(RA)로 알려져 있는 전용 하드웨어를 더 포함한다. 메모리 액세스 컨트롤러 모듈(RA)은 프로세서(CP)와 메모리 모듈(MM) 사이에서 방화벽 역할을 한다. 저장 장치(SD)에 저장된 디지털 정보는 관련 액세스 조건 세트를 가지며, 이들 액세스 조건 세트는 디지털 정보와 함께 저장된다. 보안 메모리 관리 모듈(SMM)은, 상기 프로세서(CP)가 적절한 액세스 권한을 갖고 있는 경우, 프로세서(CP)가 로딩된 메모리 모듈(MM)의 부분들에 대한 정확한 액세스를 할 수 있도록 메모리 액세스 컨트롤러(RA)를 구성한다. 따라서 보안 메모리 관리 모듈(SMM)은 메모리 모듈(MM)이 안전하게 유지되도록 메모리 액세스 컨트롤러 모듈(RA)과 함께 기능한다.
본 발명에서, 세그먼테이션(segmantation)이라고 하는 규약(convention)이 사용된다. 즉 디지털 정보는 세그먼트로 저장된다. 세그먼테이션 규약은 저장 장치에 저장된 디지털 정보뿐만 아니라 메모리 모듈에 저장된 디지털 정보에 대해서도 사용된다. 세그먼트는 사전에 결정된 수의 바이트를 포함하는 여러개의 디지털 정보 블록으로 이루어진다. 예컨대, 디지털 정보 블럭은 32 바이트 길이를 가질 수 있다. 각 세그먼트는 세그먼트 식별번호, 세그먼트에 포함된 데이터 유형, 세그먼트의 길이, 세그먼트의 어드레스, 디지털 서명, 세그먼트의 컨텐츠의 일방향 함수와 같은 무결성 값(integrity figure)과 같은 관련 속성 세트, 예컨대, 어느 프로세스가 세그먼트에 대한 판독 액세스 또는 기록 액세스 또는 실행 액세스를 가질 수 있는 지를 나타내는 조건 권한 세트를 갖는다. 이들 속성은 세그먼트에 부착된 세그먼트 헤더에 기록되고 저장된다. 도 1은 두 개의 상이한 유형의 세그먼트, 즉 실행가능한 코드를 포함하는 코드 세그먼트(CS) 및 애플리케이션에 의해 사용되거나 애플리케이션에 의해 생성될 수 있는 디지털 정보를 포함하는 데이터 세그먼트(DS)를 도시하고 있다.
현재 프로세서(CP)에 의해 사용되는 디지털 정보는 메모리 모듈(MM)에 유지된다. 프로세서(CP)가 현재 메모리 모듈(MM)에 없는 디지털 정보에 대한 액세스를 요구하면, 프로세서(CP)는 요구된 디지털 정보에 대한 요구를 보안 메모리 관리 모듈(SMM)에게 전송한다. 프로세서(CP)로부터 요구를 수신하면, 보안 메모리 관리 모듈(SMM)은 세그먼트 또는 요구된 디지털 정보를 포함하는 복수의 세그먼트를 찾아내고, 액세스 조건들, 디지털 서명 및 세그먼트 무결성 값을 포함하는 세그먼트 헤더로부터 여러 정보 조각을 추출한다. 보안 메모리 관리 모듈(SMM)은 사전 결정된 암호 기법에 따라서 디지털 서명을 검증함으로써 세그먼트에 대한 인증을 수행한다. 보안 메모리 관리 모듈(SMM)은 세그먼트의 컨텐츠의 일방향 함수와 같은 무결성 값을 계산하고, 계산된 무결성 값을 세그먼트 헤더로부터 추출된 무결성 값과 비교함으로써 세그먼트에 대한 무결성 검사를 수행한다. 보안 메모리 관리 모듈(SMM)은 찾아낸 세그먼트를 수용할 수 있는 메모리 모듈(MM) 내의 적절한 영역을 결정하고 메모리 모듈(MM)의 결정된 영역에 상기 세그먼트를 로드하며, 상기 영역은 복수의 어드레스가능한 메모리 모듈 위치를 포함한다. 본 발명의 일실시예에서, 무결성 검사는 메모리 모듈(MM)을 로딩하는 동안 온더플라이(on-the-fly), 블록 단위 또는 세그먼트 단위로 행해질 수 있다. 본 발명의 다른 실시예에서, 무결성 검사는 로딩된 후에 메모리 모듈(MM)에서 행해질 수 있다. 보안 메모리 관리 모듈(SMM)은 또한 필요한 액세스 권한을 갖는 프로세서가 로딩된 데이터에 대한 요구된 액세스를 갖도록 메모리 액세스 컨트롤러(RA)를 구성할 것이다.
일반적으로, 데이터 처리 시스템은 또한 메모리 맵핑을 행하는 일부 수단을 포함하며, 이것에 의해 디지털 정보의 블록 또는 세그먼트는 상기 블록 또는 세그먼트가 상기 가상 어드레스와 상이한 메모리 모듈(MM) 내의 일부 물리적 어드레스에 저장되는 동안 가상 어드레스를 이용하여 프로세서에 의해 액세스된다. 세그먼트 헤더는 세그먼트의 가상 어드레스를 더 포함할 수 있다. 디지털 정보가 메모리 모듈 내의 이용가능한 공간에 로딩될 때, 맵핑은 정보가 로딩되는 물리적 어드레스와 가상 어드레스 사이의 링크를 반영하도록 업데이트된다. 본 발명의 일실시예에서, 이 메모리 맵핑은 메모리 모듈(MM)의 연속적인 로드 사이에서 변할 수 있다.
본 발명의 다른 실시예에서, 저장 장치 내의 디지털 정보는 암호화된 형태가 바람직하다. 이 경우, 세그먼트 헤더는 세그먼트를 해독하는 세그먼트 키를 더 포함한다. 세그먼트 키는 바람직하게는 보안 메모리 관리 모듈(SMM)에 의해 세그먼트 헤더로부터 추출되고, 이들 키는 메모리 모듈(MM)로 로딩되기 전에 디지털 정보를 해독하는데 사용된다.
메모리 액세스 컨트롤러(RA)는 세그먼트 기술자(descriptor)(SDES)를 포함한다. 세그먼트 기술자는 메모리 모듈로 로딩된 디지털 정보의 각 세그먼트에 대응하는 세그먼트 헤더의 부분을 유지한다. 각각의 세그먼트가 로딩될 때, 세그먼트 헤더로부터 그 세그먼트에 대한 액세스 조건을 추출하여 인증한 보안 메모리 관리 모듈은, 프로세서가 적절한 액세스 권한을 갖는 경우 프로세스가 메모리 모듈 내의 대응 세그먼트에 대한 액세스를 갖도록 하는 방식으로, 세그먼트 기술자 내의 액세스 조건을 업데이트한다. 세그먼트 기술자가 업데이트될 때까지, 프로세서는 디지털 정보가 로딩되는 메모리 모듈의 부분에 대한 액세스를 갖지 않는다. 여러 개의 상이한 운영체제에 걸쳐 호환가능하도록, 세그먼트 기술자는 실행 파일, 객체 코드, 라이브러리 등을 위한 표준 파일 포맷인 "ELF" 포맷(실행가능 및 링킹 포맷)일 수 있다.
세그먼트 기술자는 어떠한 유형의 액세스가 프로세서에 의해 허용되는 지를 명시한다. 예를 들면, 소정 어드레스 범위는 판독 모드에서만 액세스가능하고, 그 영역에 대한 어떠한 기록 시도도 허용되지 않을 수 있다. 이 유형의 정보는 세그먼트 기술자에 표시된다. 이와 유사하게, 프로세스가 기록 또는 삭제하도록 허용되는 영역이 세그먼트 기술자에 표시된다. 세그먼트 기술자는 또한 프로세서가 실행 파일을 보유하는 것으로 표시된 영역으로부터 인스트럭션을 페치할 수 있도록 하기 위해 실행 권한을 가질 필요가 있도록(또는 소정 프로세스 id가 소정의 기능을 실행할 권한을 갖도록) 실행가능한 루틴 또는 기능을 유지하는 영역을 나타낼 수도 있다.
데이터 및 어드레스 버스 외에, 주변부로부터 또는 주변부로의 전송이 액세스 유형(판독/기록)을 정의하는 제어 라인에 의해 제어된다. 다른 라인들은 실행가능 코드가 페치되는지의(실행 모드) 여부 또는 프로세서가 메모리에서 데이터를 판독/기록하고 있는 지의 여부를 판정하는데 사용될 수 있다.
세그먼트에 부착된 액세스 조건들의 일례는 판독, 기록 또는 실행 모드로 조건을 정의한다.
다른 실시예에 따르면, 액세스 조건은 프로세서의 모드와 관련하여 정의된다.
프로세서가 데이터의 소정 부분에 액세스할 권한을 갖는 지의 여부는 상기 데이터의 부분이 위치해 있는 세그먼트에 부착된 관련 액세스 조건 및 그 데이터를 요청하는 시간에 프로세서가 실행 중인 모드(예컨대 프로세서가 사용자 모드 또는 수퍼 사용자 모드에 있을 수 있다)에 의존한다. 동작 모드는 일반적으로 프로세서와 관련된 상태 레지스터 또는 모드 레지스터 내의 비트에 의해 표시된다. 프로세서가 임의의 특정 시간에 실행하는 모드는 관련 레지스터의 상태를 검사함으로써 확인될 수 있다. 이 레지스터는 메모리 액세스 컨트롤러에 의해 통신 라인에 접속되어 메모리 액세스 컨트롤러가 프로세서가 어느 모드에 있는 지를 판정할 수 있다. 이 모드는 메인 버스를 통해 레지스터 값을 전달함으로써 메모리 액세스 컨트롤러와 통신할 수 있다. 데이터 조각을 요구하는 시간에서의 프로세서의 동작 모드에 따라, 프로세서의 동작 모드와 세그먼트 기술자에 유지된 관련 액세스 조건에 따라 그 데이터 조각에 의해 요구되는 모드 사이의 비교 결과에 따라서 액세스가 허용되거나 불허될 수 있다. 이와 유사하게, 프로세서 모드와 유사한 방법으로 어느 프로세스가 데이터의 특정 세그먼트에 액세스할 권한을 갖는지를 나타내기 위해 프로세스 식별자(프로세스 id)가 어떻게 사용되는 지를 상상하는 것은 쉽다.
메모리 액세스 컨트롤러의 역할은 프로세서 모드의 값을 수신하고 이 모드를 세그먼트에 부착된 액세스 조건의 컨텐츠와 비교하는 것이다.
본 발명의 다른 실시예에서, 데이터의 세그먼트는 자신과 관련된 복수의 액세스 조건 세트를 가질 수 있으며, 각 세트는 프로세서 동작의 특정 모드와 관련된다. 프로세서가 복수의 액세스 조건이 존재하는 세그먼트 내의 데이터 조각에 대한 액세를 요구하면, 메모리 액세스 컨트롤러(RA)는 프로세서가 실행 중인 모드와 관련되는 액세스 조건 세트를 적용한다. 프로세서 모드는 액세스 조건 세트를 정의하고, 프로세서의 유형(판독/기록/실행)은 데이터 조각에 대한 액세스를 정의하는데 사용될 것이다.
따라서 세그먼트에 부착된 액세스 조건은 프로세서가 그 세그먼트에 액세스하기 위해 가질 필요가 있는 모드, 요구된 액세스의 유형 및 프로세서의 동작 모드를 포함하는 상태를 정의한다.
본 발명의 다른 실시예에서, 디지털 정보를 메모리 모듈에 저장하기 전에 광 암호화가 그 디지털 정보에 대해 사용될 수 있다. 제 1 실시예에 따르면, 암호화 키는 보안 메모리 관리 모듈에 의해 생성된 난수에 기초할 수 있다. 이 수는 시스템에 전원이 켜질 때마다 새로운 키가 생성되도록 시스템을 초기화하는 동안 생성될 수 있다. 세그먼트 내의 디지털 정보는 이 키 하에서 암호화되고, 이 키는 그 세그먼트에 대응하는 세그먼트 기술자에 위치한다. 이와 달리, 세그먼트가 업로드될 때마다 랜덤 키가 생성될 수 있다. 그러면, 디지털 정보는 프로세서가 그 정보를 요구할 때에 메모리 액세스 컨트롤러에 의해 해독될 것이다. 본 발명의 또 다른 실시예에서, 암호화 키는 디지털 정보가 로딩되는 물리적 어드레스(메모리 모듈 내의 실제 어드레스)의 함수일 수 있다(즉, 물리적 어드레스의 일방향 함수를 계산).
본 발명은 메모리 모듈로 로딩되는 디지털 정보의 보안성을 보장할 뿐만 아니라, 메모리 모듈의 로딩과 관련된 모든 기능들이 보안 메모리 관리 모듈로 위임되므로, 메모리 모듈이 로딩되는 동안 프로세서가 다른 작업을 완료할 수 있게 한다. 최근의 프로세서에 나타나는 높은 수준의 복잡도와 관련하여, 본 발명은 상술한 메모리 관리 기능들을 이미 복잡한 프로세서에 포함시키려고 시도하기보다 이들 기능들이 메모리 액세스 컨트롤러(RA)와 보안 메모리 관리 모듈(SMM)의 조합에 의한 전용 하드웨어 시스템에 의해 처리되게 함으로써 높은 수준의 보안을 보장하는 이점을 제공한다.

Claims (14)

  1. 적어도 하나의 저장 장치(SD)와, 적어도 하나의 메모리 모듈(MM)과, 적어도 하나의 프로세서(CP)를 포함하되, 상기 저장 장치(SD)는 적어도 하나의 데이터 세그먼트와, 상기 세그먼트에 대한 액세스 및 인증 데이터를 갖는, 데이터 처리 시스템에 있어서,
    상기 프로세서(CP)와 상기 메모리 모듈(MM) 사이에 접속된 메모리 액세스 컨트롤러(RA)와,
    상기 프로세서(CP), 상기 메모리 모듈(MM), 상기 저장 장치(SD) 및 상기 메모리 액세스 컨트롤러(RA)에 접속된 보안 메모리 관리 모듈(SMM)을 포함하고,
    상기 보안 메모리 관리 모듈(SMM)은 상기 프로세서(CP)로부터 상기 저장 장치(SD)에 저장된 세그먼트에 대한 요구를 수신하는 수단을 포함하고,
    상기 세그먼트는 적어도 하나의 액세스 조건 및 상기 세그먼트에 대한 적어도 하나의 인증 데이터 조각을 가지며,
    상기 보안 메모리 관리 모듈(SMM)은 상기 요구된 세그먼트를 상기 저장 장치(SD)로부터 상기 메모리 모듈(MM)로 로딩하는 수단과,
    상기 인증 데이터를 사용하여 상기 액세스 조건을 인증하는 수단과,
    상기 액세스 조건을 이용하여 상기 메모리 액세스 컨트롤러(RA)를 구성하는 수단을 포함하며,
    상기 메모리 액세스 컨트롤러(RA)는
    상기 프로세서(CP)로부터 프로세서 상태를 검출하는 수단과,
    상기 액세스 조건을 상기 프로세서 상태와 비교하는 수단과,
    상기 비교 결과에 따라서 상기 메모리 모듈(MM)에 대한 액세스를 허용 또는 차단하는 수단을 더 포함하는
    데이터 처리 시스템.
  2. 제 1 항에 있어서,
    상기 세그먼트는 무결성 값(integrity figure)을 더 포함하고,
    상기 보안 메모리 관리 모듈(SMM)은 상기 무결성 값을 상기 세그먼트 내의 데이터에 기초한 계산된 무결성 값과 비교하여 상기 세그먼트의 무결성을 검사하는 수단을 포함하는
    데이터 처리 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 액세스 조건은 상기 프로세서(CP)에 의해 요구되는 액세스 유형에 따라서 상기 메모리 액세스 컨트롤러(RA)에 의해 결정되는 상기 메모리 모듈(MM)로부터의 인스트럭션의 판독 또는 기록 또는 실행에 대한 조건을 정의하는
    데이터 처리 시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 액세스 조건은 복수의 액세스 데이터 세트를 포함하고, 상기 프로세서(CP)는 상기 메모리 액세스 컨트롤러(RA)에게 프로세서 모드를 전달하고, 상기 메모리 액세스 컨트롤러(RA)는 상기 수신된 프로세서 모드에 기초하여 상기 액세스 데이터 세트를 선택하는
    데이터 처리 시스템.
  5. 데이터 처리 시스템에서 저장 장치(SD)로부터 메모리 모듈(MM)로 디지털 정보를 안전하게 로딩하는 방법으로서,
    상기 데이터 처리 시스템은 적어도 하나의 저장 장치(SD)와, 적어도 하나의 메모리 모듈(MM)과, 적어도 하나의 프로세서(CP)와, 상기 프로세서(CP)와 상기 메모리 모듈(MM) 사이에 접속된 메모리 액세스 컨트롤러 모듈(RA)과, 상기 프로세서(CP), 상기 메모리 모듈(MM), 상기 저장 장치(SD) 및 상기 메모리 액세스 컨트롤러 모듈(RA)에 접속된 보안 메모리 관리 모듈(SMM)을 포함하고,
    상기 방법은
    상기 보안 메모리 관리 모듈(SMM)에 의해, 상기 프로세서(CP)로부터 디지털 정보에 대한 요구를 수신하는 단계와,
    상기 저장 장치(SD)에서 상기 요구된 디지털 정보를 포함하는 세그먼트를 찾아내는 단계와,
    상기 세그먼트에 대한 액세스 조건 세트 및 인증 데이터를 추출하는 단계와,
    상기 인증 데이터로 상기 액세스 조건을 인증하는 단계와,
    상기 찾아낸 세그먼트를 수용할 상기 메모리 모듈(MM) 내의 적절한 영역을 결정하는 단계와,
    상기 찾아낸 세그먼트를 상기 메모리 모듈(MM) 내의 상기 결정된 영역에 로딩하는 단계와,
    상기 추출된 액세스 조건을 이용하여 상기 메모리 액세스 컨트롤러 모듈(RA)을 구성하는 단계를 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 디지털 정보의 세그먼트에 대한 무결성 값을 추출하는 단계와,
    상기 디지털 정보의 세그먼트에 대한 무결성 값을 계산하는 단계와,
    상기 추출된 무결성 값을 상기 계산된 무결성 값과 비교하여 상기 디지털 정보의 세그먼트의 무결성을 검증하는 단계를 더 포함하는
    방법.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 저장 장치(SD)는 비신뢰적(non-trusted) 환경에 있고, 상기 메모리 모듈(MM)은 신뢰적 환경에 있는
    방법.
  8. 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,
    맵핑 방식(mapping scheme)이 사용되어, 가상 어드레스가 물리적 어드레스와 관련되고, 상기 가상 어드레스는 디지털 정보 조각을 가리키도록 상기 프로세서에 의해 사용된 어드레스이고, 상기 물리저 어드레스는 상기 디지털 정보가 저장되는 상기 메모리 모듈(MM) 내의 위치의 어드레스인
    방법.
  9. 제 8 항에 있어서,
    상기 가상 어드레스와 상기 물리적 어드레스 간의 관계는 상기 메모리 모듈(MM)의 로드(load) 후에 적어도 1회 수정되는
    방법.
  10. 제 5 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 저장 장치 내의 상기 디지털 정보의 세그먼트는 암호화된 포맷으로 존재하고,
    상기 방법은
    상기 디지털 정보의 세그먼트에 대한 세그먼트 키를 추출하는 단계와,
    상기 추출된 세그먼트 키를 사용하여 상기 디지털 정보의 세그먼트를 해독하는 단계를 더 포함하는
    방법.
  11. 제 5 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 디지털 정보의 세그먼트는 상기 메모리 모듈(MM)로 로딩되기 전에 키에 의해 암호화되는
    방법.
  12. 제 11 항에 있어서,
    상기 암호화 키는 상기 보안 메모리 관리 모듈(SMM)에서 생성된 난수에 기초하는
    방법.
  13. 제 11 항에 있어서,
    상기 암호화 키는 상기 물리적 어드레스에 기초하는
    방법.
  14. 제 5 항 내지 제 13 항에 있어서,
    상기 메모리 모듈(MM)은 휘발성 메모리인
    방법.
KR1020107029085A 2008-06-24 2009-06-23 데이터 처리 시스템 및 방법 KR101567620B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP08158870A EP2138946A1 (en) 2008-06-24 2008-06-24 Secure memory management system
EP08158870.9 2008-06-24
EP08161479 2008-07-30
EP08161479.4 2008-07-30

Publications (2)

Publication Number Publication Date
KR20110034612A true KR20110034612A (ko) 2011-04-05
KR101567620B1 KR101567620B1 (ko) 2015-11-20

Family

ID=41137881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107029085A KR101567620B1 (ko) 2008-06-24 2009-06-23 데이터 처리 시스템 및 방법

Country Status (10)

Country Link
US (1) US8489836B2 (ko)
EP (1) EP2310976B1 (ko)
JP (1) JP5415531B2 (ko)
KR (1) KR101567620B1 (ko)
CN (1) CN102077204B (ko)
AT (1) ATE532143T1 (ko)
BR (1) BRPI0915412A2 (ko)
CA (1) CA2728445C (ko)
MX (1) MX2010014464A (ko)
WO (1) WO2009156402A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102355495B (zh) * 2011-09-27 2014-01-22 中国联合网络通信集团有限公司 数据处理方法、装置和***
WO2013004854A2 (en) * 2012-09-26 2013-01-10 Nxp B.V. Processing system
KR102017828B1 (ko) 2012-10-19 2019-09-03 삼성전자 주식회사 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들
WO2014185893A1 (en) * 2013-05-14 2014-11-20 Hewlett-Packard Development Company, L.P. Detection of a security event
KR102167393B1 (ko) 2013-08-16 2020-10-19 삼성전자 주식회사 메모리 공유 환경에서 데이터 무결성 감시 장치 및 방법
EP3063627B1 (en) * 2013-10-31 2020-02-26 Hewlett-Packard Enterprise Development LP Memory integrity checking
KR102213665B1 (ko) * 2014-08-01 2021-02-09 삼성전자주식회사 인증 프로그램을 갖는 메모리 카드, 그것을 포함하는 스토리지 시스템, 및 그것의 동작 방법
ES2924347T3 (es) * 2015-03-26 2022-10-06 Nagravision Sa Método y sistema para buscar al menos un dato específico en una unidad de usuario
KR20190075363A (ko) * 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
CN110598412B (zh) * 2018-06-12 2021-12-14 杨力祥 将权力信息隔离并依托它进行权力检查的方法及计算装置
CN109710373B (zh) * 2018-11-22 2021-02-12 海光信息技术股份有限公司 实现内存与外部存储器交换功能的方法和装置、安全处理器
CN109726566B (zh) * 2018-11-22 2021-03-09 成都海光集成电路设计有限公司 基于安全内存加密技术的加密***和加密方法
EP3663957A1 (en) * 2018-12-03 2020-06-10 Nagravision S.A. Remote enforcement of device memory
CN111914284B (zh) * 2020-09-30 2021-03-19 杭州未名信科科技有限公司 操作***中进程地址空间隔离保护方法、装置及设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237615A (en) * 1982-05-20 1993-08-17 The United States Of America As Represented By The National Security Agency Multiple independent binary bit stream generator
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6336187B1 (en) * 1998-06-12 2002-01-01 International Business Machines Corp. Storage system with data-dependent security
US6339815B1 (en) 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US7636843B1 (en) * 1999-08-20 2009-12-22 Sony Corporation Information transmission system and method, drive device and access method, information recording medium, device and method for producing recording medium
TW548940B (en) 1999-11-29 2003-08-21 Gen Instrument Corp Generation of a mathematically constrained key using a one-way function
WO2001054099A1 (fr) * 2000-01-21 2001-07-26 Sony Corporation Systeme d'authentification de donnees
JP4226760B2 (ja) * 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
WO2002025410A2 (en) 2000-09-15 2002-03-28 Koninklijke Philips Electronics N.V. Protect by data chunk address as encryption key
FR2822971A1 (fr) 2001-04-03 2002-10-04 St Microelectronics Sa Systeme et procede de controle d'acces a des donnees protegees stockees dans une memoire
US6851040B2 (en) * 2001-08-15 2005-02-01 Transmeta Corporation Method and apparatus for improving segmented memory addressing
US20030196096A1 (en) 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US6851056B2 (en) 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
US7043616B1 (en) * 2002-04-18 2006-05-09 Advanced Micro Devices, Inc. Method of controlling access to model specific registers of a microprocessor
US7496966B1 (en) * 2002-04-18 2009-02-24 Advanced Micro Devices, Inc. Method and apparatus for controlling operation of a secure execution mode-capable processor in system management mode
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US20060036830A1 (en) * 2004-07-31 2006-02-16 Dinechin Christophe De Method for monitoring access to virtual memory pages
US8332653B2 (en) 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
JP4551231B2 (ja) * 2005-01-31 2010-09-22 日本電信電話株式会社 プログラム実行保護システム、プログラム実行保護方法
US20060218425A1 (en) 2005-02-25 2006-09-28 Zhimin Ding Integrated microcontroller and memory with secure interface between system program and user operating system and application
DE102006035610B4 (de) * 2006-07-31 2012-10-11 Infineon Technologies Ag Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
US20080072070A1 (en) * 2006-08-29 2008-03-20 General Dynamics C4 Systems, Inc. Secure virtual RAM
CN101034378A (zh) 2007-04-27 2007-09-12 吴晓栋 一种实现处理器及其计算机***信息处理环境高度安全与可信的方法
US8156322B2 (en) * 2007-11-12 2012-04-10 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules

Also Published As

Publication number Publication date
CN102077204B (zh) 2013-06-12
BRPI0915412A2 (pt) 2016-09-06
EP2310976A1 (en) 2011-04-20
WO2009156402A1 (en) 2009-12-30
ATE532143T1 (de) 2011-11-15
CN102077204A (zh) 2011-05-25
MX2010014464A (es) 2011-02-22
CA2728445C (en) 2017-01-24
US20090319741A1 (en) 2009-12-24
EP2310976B1 (en) 2011-11-02
CA2728445A1 (en) 2009-12-30
KR101567620B1 (ko) 2015-11-20
US8489836B2 (en) 2013-07-16
JP2011525653A (ja) 2011-09-22
JP5415531B2 (ja) 2014-02-12

Similar Documents

Publication Publication Date Title
KR101567620B1 (ko) 데이터 처리 시스템 및 방법
US11630904B2 (en) System, apparatus and method for configurable trusted input/output access from authorized software
CN107851160B (zh) 用于在isa控制下进行多个共存可信执行环境的可信i/o的技术
EP3326105B1 (en) Technologies for secure programming of a cryptographic engine for secure i/o
US9372699B2 (en) System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
US8464011B2 (en) Method and apparatus for providing secure register access
US8656146B2 (en) Computer system comprising a secure boot mechanism
EP1850265B1 (en) Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory
TWI567580B (zh) 用於防止惡意軟體執行的方法與系統
EP1840786B1 (en) Computer architecture for an electronic device providing single-level secure access to multi-level secure file system
US9665373B2 (en) Protecting confidential data with transactional processing in execute-only memory
US8677492B2 (en) Detection of hidden objects in a computer system
US8954696B2 (en) Secure memory management system and method
US20040151319A1 (en) Method and apparatus for managing a hierarchy of nodes
US11520886B2 (en) Advanced ransomware detection
CN112434286A (zh) 动态库的调用方法、装置、电子装置和存储介质
US20170372061A1 (en) Provisioning of identity information
US11815944B2 (en) System and method for securing firmware function calls using session-based encryption
EP3440586B1 (en) Method for write-protecting boot code if boot sequence integrity check fails
Shim et al. SOTPM: software one-time programmable memory to protect shared memory on ARM trustzone
EP2138946A1 (en) Secure memory management system
KR102493066B1 (ko) 프로세스 내부 공격에 대응하기 위한 세밀한 고립 기술

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181023

Year of fee payment: 4