KR20110034612A - 데이터 처리 시스템 및 방법 - Google Patents
데이터 처리 시스템 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
본 발명은 컴퓨터 보안 분야에 관한 것으로, 특히 데이터 또는 애플리케이션의 휘발성 작업 메모리로의 안전한 로딩을 보장하거나 또는 하나의 애플리케이션이 다른 애플리케이션을 위한 데이터 또는 코드를 수정하지 않도록 서로로부터 동시 애플리케이션을 격리시키는 것에 관한 것이다.
데이터 처리 시스템은 프로세싱 유닛(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)
- 적어도 하나의 저장 장치(SD)와, 적어도 하나의 메모리 모듈(MM)과, 적어도 하나의 프로세서(CP)를 포함하되, 상기 저장 장치(SD)는 적어도 하나의 데이터 세그먼트와, 상기 세그먼트에 대한 액세스 및 인증 데이터를 갖는, 데이터 처리 시스템에 있어서,
상기 프로세서(CP)와 상기 메모리 모듈(MM) 사이에 접속된 메모리 액세스 컨트롤러(RA)와,
상기 프로세서(CP), 상기 메모리 모듈(MM), 상기 저장 장치(SD) 및 상기 메모리 액세스 컨트롤러(RA)에 접속된 보안 메모리 관리 모듈(SMM)을 포함하고,
상기 보안 메모리 관리 모듈(SMM)은 상기 프로세서(CP)로부터 상기 저장 장치(SD)에 저장된 세그먼트에 대한 요구를 수신하는 수단을 포함하고,
상기 세그먼트는 적어도 하나의 액세스 조건 및 상기 세그먼트에 대한 적어도 하나의 인증 데이터 조각을 가지며,
상기 보안 메모리 관리 모듈(SMM)은 상기 요구된 세그먼트를 상기 저장 장치(SD)로부터 상기 메모리 모듈(MM)로 로딩하는 수단과,
상기 인증 데이터를 사용하여 상기 액세스 조건을 인증하는 수단과,
상기 액세스 조건을 이용하여 상기 메모리 액세스 컨트롤러(RA)를 구성하는 수단을 포함하며,
상기 메모리 액세스 컨트롤러(RA)는
상기 프로세서(CP)로부터 프로세서 상태를 검출하는 수단과,
상기 액세스 조건을 상기 프로세서 상태와 비교하는 수단과,
상기 비교 결과에 따라서 상기 메모리 모듈(MM)에 대한 액세스를 허용 또는 차단하는 수단을 더 포함하는
데이터 처리 시스템.
- 제 1 항에 있어서,
상기 세그먼트는 무결성 값(integrity figure)을 더 포함하고,
상기 보안 메모리 관리 모듈(SMM)은 상기 무결성 값을 상기 세그먼트 내의 데이터에 기초한 계산된 무결성 값과 비교하여 상기 세그먼트의 무결성을 검사하는 수단을 포함하는
데이터 처리 시스템.
- 제 1 항 또는 제 2 항에 있어서,
상기 액세스 조건은 상기 프로세서(CP)에 의해 요구되는 액세스 유형에 따라서 상기 메모리 액세스 컨트롤러(RA)에 의해 결정되는 상기 메모리 모듈(MM)로부터의 인스트럭션의 판독 또는 기록 또는 실행에 대한 조건을 정의하는
데이터 처리 시스템.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 액세스 조건은 복수의 액세스 데이터 세트를 포함하고, 상기 프로세서(CP)는 상기 메모리 액세스 컨트롤러(RA)에게 프로세서 모드를 전달하고, 상기 메모리 액세스 컨트롤러(RA)는 상기 수신된 프로세서 모드에 기초하여 상기 액세스 데이터 세트를 선택하는
데이터 처리 시스템.
- 데이터 처리 시스템에서 저장 장치(SD)로부터 메모리 모듈(MM)로 디지털 정보를 안전하게 로딩하는 방법으로서,
상기 데이터 처리 시스템은 적어도 하나의 저장 장치(SD)와, 적어도 하나의 메모리 모듈(MM)과, 적어도 하나의 프로세서(CP)와, 상기 프로세서(CP)와 상기 메모리 모듈(MM) 사이에 접속된 메모리 액세스 컨트롤러 모듈(RA)과, 상기 프로세서(CP), 상기 메모리 모듈(MM), 상기 저장 장치(SD) 및 상기 메모리 액세스 컨트롤러 모듈(RA)에 접속된 보안 메모리 관리 모듈(SMM)을 포함하고,
상기 방법은
상기 보안 메모리 관리 모듈(SMM)에 의해, 상기 프로세서(CP)로부터 디지털 정보에 대한 요구를 수신하는 단계와,
상기 저장 장치(SD)에서 상기 요구된 디지털 정보를 포함하는 세그먼트를 찾아내는 단계와,
상기 세그먼트에 대한 액세스 조건 세트 및 인증 데이터를 추출하는 단계와,
상기 인증 데이터로 상기 액세스 조건을 인증하는 단계와,
상기 찾아낸 세그먼트를 수용할 상기 메모리 모듈(MM) 내의 적절한 영역을 결정하는 단계와,
상기 찾아낸 세그먼트를 상기 메모리 모듈(MM) 내의 상기 결정된 영역에 로딩하는 단계와,
상기 추출된 액세스 조건을 이용하여 상기 메모리 액세스 컨트롤러 모듈(RA)을 구성하는 단계를 포함하는
방법.
- 제 5 항에 있어서,
상기 디지털 정보의 세그먼트에 대한 무결성 값을 추출하는 단계와,
상기 디지털 정보의 세그먼트에 대한 무결성 값을 계산하는 단계와,
상기 추출된 무결성 값을 상기 계산된 무결성 값과 비교하여 상기 디지털 정보의 세그먼트의 무결성을 검증하는 단계를 더 포함하는
방법.
- 제 5 항 또는 제 6 항에 있어서,
상기 저장 장치(SD)는 비신뢰적(non-trusted) 환경에 있고, 상기 메모리 모듈(MM)은 신뢰적 환경에 있는
방법.
- 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,
맵핑 방식(mapping scheme)이 사용되어, 가상 어드레스가 물리적 어드레스와 관련되고, 상기 가상 어드레스는 디지털 정보 조각을 가리키도록 상기 프로세서에 의해 사용된 어드레스이고, 상기 물리저 어드레스는 상기 디지털 정보가 저장되는 상기 메모리 모듈(MM) 내의 위치의 어드레스인
방법.
- 제 8 항에 있어서,
상기 가상 어드레스와 상기 물리적 어드레스 간의 관계는 상기 메모리 모듈(MM)의 로드(load) 후에 적어도 1회 수정되는
방법.
- 제 5 항 내지 제 9 항 중 어느 한 항에 있어서,
상기 저장 장치 내의 상기 디지털 정보의 세그먼트는 암호화된 포맷으로 존재하고,
상기 방법은
상기 디지털 정보의 세그먼트에 대한 세그먼트 키를 추출하는 단계와,
상기 추출된 세그먼트 키를 사용하여 상기 디지털 정보의 세그먼트를 해독하는 단계를 더 포함하는
방법.
- 제 5 항 내지 제 10 항 중 어느 한 항에 있어서,
상기 디지털 정보의 세그먼트는 상기 메모리 모듈(MM)로 로딩되기 전에 키에 의해 암호화되는
방법.
- 제 11 항에 있어서,
상기 암호화 키는 상기 보안 메모리 관리 모듈(SMM)에서 생성된 난수에 기초하는
방법.
- 제 11 항에 있어서,
상기 암호화 키는 상기 물리적 어드레스에 기초하는
방법.
- 제 5 항 내지 제 13 항에 있어서,
상기 메모리 모듈(MM)은 휘발성 메모리인
방법.
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)
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)
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 |
-
2009
- 2009-06-23 KR KR1020107029085A patent/KR101567620B1/ko active IP Right Grant
- 2009-06-23 BR BRPI0915412A patent/BRPI0915412A2/pt not_active Application Discontinuation
- 2009-06-23 EP EP09769251A patent/EP2310976B1/en active Active
- 2009-06-23 US US12/489,712 patent/US8489836B2/en active Active
- 2009-06-23 WO PCT/EP2009/057830 patent/WO2009156402A1/en active Application Filing
- 2009-06-23 MX MX2010014464A patent/MX2010014464A/es active IP Right Grant
- 2009-06-23 CN CN2009801238264A patent/CN102077204B/zh active Active
- 2009-06-23 JP JP2011514064A patent/JP5415531B2/ja active Active
- 2009-06-23 CA CA2728445A patent/CA2728445C/en active Active
- 2009-06-23 AT AT09769251T patent/ATE532143T1/de active
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 |