KR20120034015A - 프로세서 메인 메모리의 메모리 콘텐츠를 위한 보안 보호 - Google Patents
프로세서 메인 메모리의 메모리 콘텐츠를 위한 보안 보호 Download PDFInfo
- Publication number
- KR20120034015A KR20120034015A KR1020110098780A KR20110098780A KR20120034015A KR 20120034015 A KR20120034015 A KR 20120034015A KR 1020110098780 A KR1020110098780 A KR 1020110098780A KR 20110098780 A KR20110098780 A KR 20110098780A KR 20120034015 A KR20120034015 A KR 20120034015A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- main memory
- cell array
- controller
- write command
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 338
- 238000000034 method Methods 0.000 claims abstract description 65
- 230000008859 change Effects 0.000 claims abstract description 9
- 230000002085 persistent effect Effects 0.000 claims description 56
- 238000003491 array Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 35
- 238000012545 processing Methods 0.000 description 26
- 238000005259 measurement Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 7
- 241000700605 Viruses Species 0.000 description 6
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 3
- 229920001690 polydopamine Polymers 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012419 revalidation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
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)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
본원에 개시된 주제는 메모리 장치들 및 그 보안에 관한 것이다.
Description
본원에 개시된 주제는 메모리 장치들 및 그 보안에 관한 것이다.
메모리 장치들은 점점 더, 예컨대, 금융, 의료, 및/또는 직원 기록들과 같은 민감한 정보를 저장하도록 구현될 수 있다. 추가적으로, 그러한 메모리 장치들은 실행 가능한 코드, 시스템 동작 파라미터 등과 같이, 컴퓨팅 시스템들을 운영하기 위해 사용되는 정보를 저장할 수 있다. 불행히도, 그러한 중요한 및/또는 민감한 정보는 점점 더 정교한 보안 공격의 목표가 될 수 있다. 예컨대, 그러한 공격은 금융 기록 데이터베이스의 허가되지 않은 변경, 판독 및/또는 다운로딩을 수반하여 신원 절도(identity theft)에 기여할 수 있다.
보안 기술은, 예컨대 서명 검증 프로세스를 통과하지 않고 메모리 콘텐츠가 변경 및/또는 판독되는 것을 방지하기 위해 메모리 장치의 동작들을 인증하는 기법들을 포함할 수 있다.
제한적이지 않으며 소모적이지 않은 실시예들이 하기 도면들을 참조하여 설명될 것이며, 달리 명시되지 않은 이상 다양한 도면들을 통해 유사한 참조 번호는 유사한 부분들을 참조한다.
도 1은 실시예에 따른 시스템 구성의 개략도.
도 2는 실시예에 따른 프로세서-메모리 시스템의 개략도.
도 3은 다른 실시예에 따른 프로세서-메모리 시스템의 개략도
도 4는 실시예에 따른 메인 메모리의 부분들을 인증하는 프로세스를 도시한 개략도.
도 5는 실시예에 따른 메인 메모리의 기입 명령을 인증하기 위한 프로세스의 흐름도.
도 6은 안전한 메모리 측정 명령을 수행하기 위한 프로세스의 흐름도.
도 7은 실시예에 따른 컴퓨팅 시스템 및 메모리 장치의 개략도.
도 1은 실시예에 따른 시스템 구성의 개략도.
도 2는 실시예에 따른 프로세서-메모리 시스템의 개략도.
도 3은 다른 실시예에 따른 프로세서-메모리 시스템의 개략도
도 4는 실시예에 따른 메인 메모리의 부분들을 인증하는 프로세스를 도시한 개략도.
도 5는 실시예에 따른 메인 메모리의 기입 명령을 인증하기 위한 프로세스의 흐름도.
도 6은 안전한 메모리 측정 명령을 수행하기 위한 프로세스의 흐름도.
도 7은 실시예에 따른 컴퓨팅 시스템 및 메모리 장치의 개략도.
본 명세서를 통해, "일 실시예" 또는 "실시예"의 참조는, 그 실시예와 관련하여 설명한 특정 특징, 구조, 또는 특성이 청구된 주제의 적어도 일 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서의 다양한 곳에서 어구 "일 실시예" 또는 "실시예"가 나온다고 해서 반드시 모두가 동일한 실시예를 참조하는 것은 아니다. 더욱이, 특정 특징, 구조, 또는 특성은 하나 또는 그 이상의 실시예들에서 조합될 수 있다.
본원에 설명된 실시예들은 지속적인 메모리를 포함하는 메인 메모리를 포함할 수 있다. 예컨대, 지속적인 메모리는 상변화 메모리(PCM), 노어(NOR) 플래시, 및 낸드(NAND) 플래시와 같은 비휘발성 메모리를 포함할 수 있다. 따라서, 지속적인 메인 메모리는 비휘발성 메모리를 포함하는 메모리 어레이를 포함할 수 있다. 일 구현에서, 지속적인 메인 메모리는 아래 설명한 것과 같이 그것의 한 부분이 하나 또는 그 이상의 종류의 비휘발성 메모리를 포함하고, 다른 부분은 휘발성 메모리를 포함하는 메모리 어레이를 포함할 수 있다. 다른 구현에서, 지속적인 메인 메모리는 비휘발성 메모리만을 포함하는 메모리 어레이를 포함할 수 있으나, 청구된 주제는 그렇게 제한되지 않는다. 본원에서, 메인 메모리는 프로세싱 개체에 의해 실행 가능한 하나 또는 그 이상의 어플리케이션들을 유지하기 위해 프로세싱 개체에 의해 사용될 수 있는 메모리를 말하지만, 청구된 주제는 이 점에 있어서 제한되지 않는다. 구현에서, 메인 메모리의 특정 부분들은 예컨대 그러한 특정 부분들을 직접 어드레스함으로써 프로세싱 개체에 의해 액세스될 수 있다. 직접적인 어드레싱은, 프로세싱 개체가 메모리의 특정 위치를 판독하기 위한 어드레스를 발행하고, 후속으로 그 특정 위치가 판독되는 프로세스를 포함할 수 있다. 반면에, 메모리를 간접적으로 어드레싱하는 것은 프로세싱 개체가 입/출력(I/O) 장치에 메모리의 특정 위치를 판독하기 위한 어드레스를 발행할 수 있는 상기 입/출력 장치를 수반하는 프로세스를 포함할 수 있다. 이러한 경우에, 입/출력 장치는 그 특정 위치에 있는 (판독) 데이터를 제시함으로써 응답할 수 있다. 예컨대, BIOS(basic input/output system) 소프트웨어는 프로세싱 개체에 의한 직접적인 어드레싱에 의해 액세스 불가능한 비휘발성, 판독 전용 메모리(ROM) 및/또는 플래시 메모리에 저장될 수 있다.
실시예에서, 메모리 시스템을 운영하는 방법은 프로세서의 메인 메모리 내에 로드된 객체들을 보안 체크하기 위한 기법들을 포함할 수 있다. 그러한 객체들은, 예컨대 기입 명령 및/또는 메인 메모리에 기입될 기입 명령과 연관된 정보를 포함할 수 있다. 객체들을 보안 체크하기 위한 그러한 기법들은 메모리 장치 내에서 인증된 동작들을 수행할 수 있는 메모리 장치를 수반할 수 있다. 예컨대, 메모리 장치의 콘텐츠가 변경되기 전에 보안 서명을 확인하는 프로세스가 수행될 수 있다. 객체들을 보안 체크하는 것은 안전 해시 알고리즘(SHA) 측정 및/또는 다른 암호 측정들을 수행하는 것을 포함할 수 있다. 그러한 측정들은 비교적 시간 소모적일 수 있으나, 본원에 설명된 실시예들은 그러한 암호 측정들을 수행하는 것의 효율을 향상시키기 위한 방법들 및/또는 메모리 장치들을 포함한다. 예컨대, 그러한 측정들을 수행하는 데 걸리는 시간을 줄임으로써 및/또는 프로세서-메모리 시스템에 주문된 동작 요구들을 감소시킴으로써 효율이 개선될 수 있다. 예컨대, 메인 메모리가 지속적인 메모리를 포함한다면, 그러한 측정들이 비휘발성 메모리에 저장되어 있는 동안 암호 측정들은 덜 자주 수행될 수 있다.
실시예에서, 중앙처리장치(CPU)와 같은 프로세싱 개체를 포함하는 시스템은 지속적인 메인 메모리를 포함할 수 있다. 예컨대, 지속적인 메인 메모리는 CPU에 의해 사용될 메인 메모리 및/또는 캐시 메모리의 적어도 일부분을 포함할 수 있다. 그러한 시스템은, 예컨대 단지 몇 가지 예를 들면, 컴퓨터, 휴대전화, PDA, 데이터 로거(data loggers), 및 네비게이션 장비와 같은 다수의 환경들 중 임의의 환경에서 어플리케이션들을 실행하기 위한 컴퓨팅 시스템을 포함할 수 있다. 구현에서, 그러한 시스템은 예컨대 하이퍼바이저(hypervisor)와 같은, 가상화를 위한 자원 관리자를 포함할 수 있다. 일부 예에서, 메인 메모리 및/또는 캐시 메모리는 지속적인 메모리의 일부분 및 다른 종류의 랜덤 액세스 메모리(RAM)의 일부분을 포함할 수 있다. 특정 예에서, 메인 메모리는 PCM 및 다이내믹 랜덤 액세스 메모리(DRAM)의 적어도 일부분을 포함할 수 있다. 그러한 메모리 구성은 예컨대 비휘발성, 비교적 빠른 프로그램/판독 속도, 및/또는 연장된 PCM 수명과 같은 이득을 제공할 수 있다.
일 구현에서, 지속적인 메인 메모리는, 특히, 지속적인 메인 메모리 내에 저장된 콘텐츠의 보안 보호에 관련된 정보를 재결정할 필요를 피하는 이득을 제공할 수 있다. 예컨대, 그러한 정보는 하기 설명된 것과 같이 SHA 측정들, 암호 키들 및/또는 서명들 등을 포함할 수 있다. 다른 구현에서, 지속적인 메인 메모리는, 하기 상세히 설명된 것과 같이 외부 비휘발성 메모리로부터의 그러한 보안 정보를 휘발성 DRAM 내로 리로드할 필요를 피하는 이득을 또한 제공할 수 있다. 예컨대 보안 정보가 지속적인 메인 메모리 내에 유지되지 않는다면, 프로세서 재부팅 프로세스 동안 보안 정보의 그러한 재결정 및/또는 리로드가 발생할 수 있다. 따라서, 개선된 보안 보호는 지속적인 메인 메모리에 의해 제공되는 다수의 이점들 중 하나일 수 있다. 물론, 메인 메모리로서 PCM 또는 다른 지속적인 메모리를 포함하는 실시예의 그러한 특징들 및 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 그렇게 제한되지 않는다.
컴퓨팅 시스템의 실시예에서, 프로세서는 지속적인 메인 메모리에 정보를 기입할 수 있다. 그러나, 그러한 정보는 지속적인 메인 메모리에 기입되도록 허락되기 전에 그러한 정보가 허가되지 않은 부분들을 포함하는지를 결정하기 위해 분석될 수 있다. 예컨대, 컴퓨터 바이러스, 멀웨어(malware) 등과 같은 정보의 그러한 허가되지 않은 부분들은, 지속적인 메인 메모리에 이미 저장된 정보의 완전성에 유해할 수 있다. 따라서, 정보가 허가되지 않은 부분들을 포함하는지를 결정하기 위한 분석은 보안 체크 프로세스를 수반할 수 있다. 예컨대, 보안 체크 프로세스는 그러한 정보가 지속적인 메인 메모리에 로드되기 전에 정보의 SHA 측정 및/또는 다른 암호 보안 측정(예컨대, 단지 몇 가지 예를 들면, MD5, SHA-1, SHA-256)을 실행하는 단계를 포함할 수 있다. 만약 그러한 정보가 허가되지 않은 부분들을 포함하지 않는다고 결정되면, 그러한 정보는 메인 메모리 RAM에 로드되도록 허용될 수 있다. 그러한 정보가 허가되지 않은 부분들을 포함한다고 결정되면, 그러한 정보는 메인 메모리 RAM에 로드되도록 허용되지 않을 수 있다. 보안 체크 프로세스는 비교적 시간 소모적일 수 있다. 지속적인 메인 메모리를 수반하는 구현에서, 그러한 보안 체크 프로세스는 예컨대 컴퓨팅 시스템의 재부팅과 동시에, 또는 사용자 특권으로부터 감독자/안전한 특권으로의 프로세서의 점프와 동시에 수행될 필요가 없다. 특히, 보안 체크 프로세스에서 사용되는, SHA 측정들 및/또는 다른 암호 측정들과 같은 보안 정보는 지속적인 메인 메모리에 저장될 수 있다. 프로세서 및/또는 지속적인 메인 메모리가 전력 손실 또는 다른 파괴적인 사건을 경험한다면, 그러한 측정들은 지속적인 메인 메모리로부터 손실될 필요가 없다. 따라서, 그러한 측정들 및/또는 연관된 보안 정보는 프로세서의 재초기화(예컨대, 재부팅) 후, 또는 사용자 특권으로부터 감독자/안전한 특권으로의 프로세서 점프와 동시에 사용 가능할 수 있다.
실시예에서, 메모리 시스템을 운영하는 방법은 프로세서에 의해 액세스 가능한 메인 메모리에 기입 명령을 수신하는 단계, 및 메인 메모리 내에서 기입 명령의 인증을 결정하는 단계를 포함할 수 있다. 바꾸어 말하면, 하기 상세히 설명된 것과 같이, 기입 명령 및/또는 기입 명령과 연관된 정보의 인증은 메인 메모리 내에 위치한 하나 또는 그 이상의 전자 컴포넌트들에 의해 수행될 수 있다. 예컨대, 메인 메모리 내의 위치는 단일 칩, 온-다이, 적층된 칩들, 및/또는 IC 패키지 내의 위치를 포함할 수 있다. 구현에서, "메인 메모리 내"는, 예컨대 컨트롤러로의 외부 인터페이스를 갖는 메인 메모리 및 인증 로직을 포함하는 물리적 경계 내를 의미할 수 있다.
메인 메모리는 지속적인 메모리를 포함할 수 있으나, 그러한 메인 메모리는 비휘발성 메모리를 포함할 필요가 없다. 예컨대, 그러한 메인 메모리는 DRAM 또는 다른 휘발성 메모리를 포함할 수 있다. 특정 구현에서, 메모리 시스템을 운영하는 방법은, 메인 메모리 내에서, 기입 명령 및/또는 기입 명령과 연관된 정보의 결정된 인증에 적어도 부분적으로 기초하여 메인 메모리의 콘텐츠를 변경할지의 여부를 결정하는 단계를 포함할 수 있다. 예컨대, 메인 메모리는 메인 메모리를 하나 또는 그 이상의 프로세서들에 동작 가능하게 연결하는 시스템 버스로부터 기입 명령을 수신할 수 있다. 그러한 기입 명령이 진짜가 아니거나, 또는 다른 방법으로 메인 메모리 또는 그 일부분을 수정하도록 허가되지 않았다고 결정되면, 기입 명령은 메인 메모리에 의해 무시될 수 있다. 물론, 메모리 시스템을 운영하는 방법의 그러한 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 이러한 점에서 제한되지 않는다.
실시예에서, 메모리 장치는 메모리 장치 내에 위치한 메모리 셀 어레이 및 컨트롤러를 포함할 수 있다. 그러한 컨트롤러가 메모리 셀 어레이에 액세스하기 위한 기입 명령을 수신함과 동시에, 컨트롤러는 기입 명령의 인증을 결정할 수 있다. 메모리 셀 어레이는 지속적인 메모리를 포함할 수 있으나, 그러한 메모리 셀 어레이는 지속적인 메모리를 포함할 필요가 없다. 예컨대, 그러한 어레이는 DRAM 또는 다른 휘발성 메모리를 포함할 수 있다. 특정 실시예에서, 컨트롤러는 기입 명령 및/또는 기입 명령과 연관된 정보의 결정된 인증에 적어도 부분적으로 기초하여 메모리 셀 어레이의 콘텐츠를 수정할지의 여부를 또한 결정할 수 있다. 예컨대, 컨트롤러는 컨트롤러를 포함하는 메모리 장치를 하나 또는 그 이상의 프로세서들에 동작 가능하게 연결하는 버스로부터 기입 명령을 수신할 수 있다. 그러한 기입 명령이 진짜이거나, 또는 다른 방법으로 메모리 장치 또는 그것의 일부분을 수정하도록 허가되었다고 결정되면, 컨트롤러는 기입 명령을 실행할 수 있다. 지속적인 메인 메모리를 포함하는 실시예에서, 그러한 메모리 장치는, 예컨대 메인 메모리 및/또는 프로세서에서의 전력 손실 동안 기입 명령과 연관된 정보 및/또는 기입 명령의 인증과 연관된 정보를 유지하는 것과 같은 이득을 제공할 수 있다. 그러한 경우에, 예컨대 만약 동일한 프로세서로부터의 기입 명령이 다시 수신된다면 인증과 연관된 암호 측정들은 반복될 필요가 없다. 물론, 메모리 장치의 그러한 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 이 점에 있어서 제한되지 않는다.
도 1은 실시예에 따른 프로세싱 시스템(100)의 개략적인 블록도이다. 프로세싱 시스템(100)은 CPU(110), 메인 메모리(120), 및/또는 캐시(130)를 포함할 수 있다. 특히, CPU(110)는 메인 메모리(120) 내에 유지되는 하나 또는 그 이상의 어플리케이션들을 호스트할 수 있다. 도 1에 도시되지 않았지만, 프로세싱 시스템(100)은 추가적인 CPU들 또는 다른 그러한 프로세싱 개체들, 추가적인 메인 메모리들, 및/또는 추가적인 캐시들을 포함할 수 있다. 예컨대, CPU(110), 메인 메모리(120), 및/또는 캐시(130)는 집합적으로 더 큰 멀티프로세서 시스템들을 위한 빌딩 블록들을 포함할 수 있다. 일 구현에서, 프로세싱 시스템(100)은 하나 또는 그 이상의 캐시 메모리 레벨들을 포함하는 메모리 계층 구조(hierarchy)를 사용하여 동작할 수 있다. 임의의 그러한 레벨은 다수의 CPU들 사이에서 공유되는 지속적인 메모리를 포함할 수 있다. 예컨대, 캐시 메모리는 제1 레벨 캐시 및 제2 레벨 캐시를 포함할 수 있으며, 둘 중 하나의 적어도 일부분은 지속적인 메모리를 포함할 수 있다. 다른 구현에서, 프로세싱 시스템(100)은 다수의 운영 체제들이 동시에 실행되는 것을 허용하는 자원 관리자(예컨대, 하드웨어 가상화)를 포함할 수 있다. 그러한 자원 관리자는, 예컨대 하이퍼바이저(hypervisor)를 포함할 수 있다. 물론, 프로세싱 시스템 및 캐시 메모리의 그러한 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 그렇게 제한되지 않는다. 실시예에서, 메인 메모리(120)의 적어도 일부분은 지속적인 메모리를 포함할 수 있다. 특정 구현에서, 메인 메모리(120)의 다른 부분은 휘발성 DRAM과 같은 다른 종류의 메모리를 포함할 수 있다. 지속적인 메모리의 부분들은, 예컨대 하나 또는 그 이상의 다이 구조물들을 포함할 수 있는 메인 메모리(120) 내에 인접하여 배열될 필요가 없다.
도 2는 실시예에 따른 프로세서-메모리 시스템(200)의 개략도이다. 그러한 프로세서-메모리 시스템(200)은, 예컨대 PDA, 휴대 전화, 컴퓨팅 장치, 및/또는 다른 전자 장치와 같은 호스트 장치(도시되지 않음) 내에 포함될 수 있다. 호스트 프로세서(210)는 메모리 컨트롤러(212)를 통해 메인 메모리(220)에 통신적으로 연결될 수 있다. 구현에서, 메모리 컨트롤러(212)는 예컨대 메인 메모리(220)를 포함하는 IC 또는 IC 패키지 외부의 단일 다이 또는 IC 패키지 위와 같은, 메인 메모리(220)의 외부에 위치할 수 있다. 예컨대, 호스트 프로세서(210)는 메인 메모리(220)에 정보를 기입하기 위해 또는 메인 메모리(220)로부터 정보를 판독하기 위해 메인 메모리(220)에 액세스할 수 있다. 일 구현에서, 프로세서-메모리 시스템(200)의 외부에 있는 외부 개체(205)가 호스트 프로세서(210)에 통신적으로 연결될 수 있다. 특정 구현에서, 예컨대 외부 개체(205)는 호스트 프로세서(210)와 무선으로 통신할 수 있다. 외부 개체(205)는 서버, 또는 인터넷을 통해 액세스 가능한 유사한 컴퓨팅 장치, 또는 플래시 메모리, 광 컴퓨터 디스크 등과 같은 메모리 장치를 포함할 수 있다. 외부 개체(205)는 전자 메일 어플리케이션과 같은 실행 가능 코드를 또한 포함할 수 있다. 호스트 프로세서(210) 및 외부 개체(205)는 서로 독립적으로 및/또는 다른 시간에 메인 메모리(220)와 통신할 수 있으나, 청구된 주제는 그렇게 제한되지 않는다. 하기 더 상세히 설명된 것과 같이, 외부 개체(205)는 컴퓨터 바이러스, 멀웨어 등의 소스가 될 수 있으며, 이들은 메인 메모리(220)에 액세스를 시도하기 위한 허가되지 않은 명령들을 포함할 수 있으나, 청구된 주제는 이러한 점에 있어서 제한되지 않는다. 예컨대, 외부 개체(205)는 트로이 목마(Trojan horse)의 소스가 될 수 있는 인터넷의 웹사이트를 위한 서버를 포함할 수 있다. 다른 예에서, 외부 개체(205)는 컴퓨터 바이러스를 포함하는 이메일을 갑자기 열기 위해 사용될 수 있는 전자 메일 어플리케이션을 포함할 수 있다. 또 다른 예에서, 외부 개체(205)는 의심하지 않고(unsuspectingly) 컴퓨터 바이러스를 저장할 수 있는 휴대용 플래시 메모리 장치를 포함할 수 있다. 그러한 경우, 트로이 목마, 컴퓨터 바이러스, 및/또는 다른 멀웨어의 존재는 메인 메모리(220)를 액세스하기 위한 허가되지 않은 시도를 야기할 수 있다.
메인 메모리(220)는 메모리 어레이(260), 마이크로컨트롤러(215), 및/또는 보안 부분(240)을 포함할 수 있다. 일 구현에서, 메모리 어레이(260)는 데이터가 기입될 수 있고 및/또는 데이터가 판독될 수 있는 어드레스 가능한 메모리 셀들의 어레이를 포함할 수 있다. 메모리 어레이(260)는 서브 부분(270)과 같은 둘 또는 그 이상의 부분들로 나누어질 수 있으며, 예컨대 서브 부분은 보안 부분(240)에 의해 제공된 보안 정보를 유지하기 위해 지정될 수 있다. 일 구현에서, 서브 부분(270)은 암호 해시 값들, 서명들, 키들 등과 같은 보안 정보를 저장할 수 있다. 서브 부분(270)의 특정 메모리 위치는 예컨대 메모리 어레이(260)의 특정 메모리 위치들에 저장된 정보에 대응하는 그러한 보안 정보를 유지하기 위해 사용될 수 있다. 예컨대, 수신된 기입 명령을 인증하기 위해 사용될 수 있는 그러한 해시 값들, 서명들, 키들 등의 결정은, 예컨대 메인 메모리(220) 내에서 수행될 수 있다. 메모리 어레이(260)는 단지 몇몇 예를 들어 플래시 메모리, PCM, 및/또는 다른 지속적인 메모리를 포함할 수 있다. 다른 실시예들에서, 메모리 어레이(260)는 예컨대 DRAM과 같은 휘발성 메모리, 또는 지속적인 메모리 및 휘발성 메모리의 조합을 포함할 수 있다.
보안 부분(240)은 메모리 어레이(260) 내에 유지되는 로직 회로 컴포넌트들 및/또는 실행 가능한 코드를 포함할 수 있다. 보안 부분(240)은 호스트 프로세서(210) 및/또는 외부 개체(205)로부터 수신된 명령들을 인증 및/또는 검증할 수 있다. 그러한 인증은 예컨대 보안 키들을 사용하는 기법들을 수반할 수 있다. 일 구현에서, 마이크로컨트롤러(215)는 호스트 프로세서(210)로부터 (예컨대, 메모리 컨트롤러(212)를 통해) 기입 명령들을 수신할 수 있으며, 그러한 수신된 기입 명령들을 인증 및/또는 검증하기 위해 후속으로 보안 부분(240)을 호출(invoke)할 수 있다. 그러한 인증과 동시에, 마이크로컨트롤러(215)는 예컨대 적합한 메모리 어드레싱을 사용하여 메모리 어레이(260)에의 액세스를 허용할 수 있다. 일 구현에서, 마이크로컨트롤러(215)는 보안 부분(240)으로부터 보안 정보를 검색(retrieve)하고, 그러한 정보를 메모리 어레이(260)에 저장할 수 있다. 특히, 상기 설명한 것과 같이, 보안 정보는 서브 부분(270)에 저장될 수 있으며, 서브 부분은 보안 정보를 저장하기 위해 지정된 메모리 어레이(260)의 일부분을 포함할 수 있다. 물론, 프로세서-메모리 시스템(200)의 그러한 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 그렇게 제한되지 않는다.
도 3은 일 실시예에 따른 프로세서-메모리 시스템(300)의 개략적인 블록도이다. 도 3에는 단지 하나의 그러한 개체가 도시되었으나, 그러한 프로세서-메모리 시스템은 임의의 수의 프로세싱 개체들을 포함할 수 있다. 특정 예에서, 그러한 프로세싱 개체는 CPU(310)를 포함할 수 있다. 일 구현에서, CPU(310)는, 예컨대 내장된 지속적인 메모리를 포함하는 로컬 메모리(도시되지 않음)를 포함할 수 있다. 다른 구현에서, CPU(310)는 지속적인 메모리를 포함하는 메인 메모리(320)에 액세스할 수 있다. 특히, 지속적인 메모리는 캐시들(예컨대, 다양한 레벨의 캐시) 및 메인 메모리를 포함하는 메모리 계층 구조에 포함될 수 있다. 그러한 메인 메모리의 적어도 일부분은, 예컨대 PCM을 포함할 수 있다. 그러한 메모리 계층 구조는 캐시들 및 메인 메모리를 포함하는 분포된 메모리를 관리하기 위해 사용될 수 있다. CPU(310)(및 예컨대 컴퓨팅 플랫폼 내에 존재할 수 있는 다른 CPU들)는 그러한 분포된 메모리를 공유할 수 있다. 단지 몇몇 예를 들어, 플래시 메모리, 하드 드라이브, 광 컴퓨터 디스크를 포함할 수 있는 외장 메모리(330)는, CPU(310)를 통해 메인 메모리(320)에 통신적으로 연결될 수 있다. 여기서, CPU(310)는 정보를 외장 메모리(330)로부터 메인 메모리(320)로 전달하기 위해 메인 메모리(320)에 기입 명령들을 송신할 수 있다. 불행히도, 일부 경우들에서, 그러한 정보는 예컨대 컴퓨터 바이러스, 트로이 목마, 및 다른 멀웨어와 같은 허가되지 않은, 어쩌면 악성 코드를 포함할 수 있다. 상기 언급한 것과 같이, 도 2를 참조하여, 외부 개체는 그러한 허가되지 않은 코드의 다른 소스를 포함할 수 있다. 그러나, 본원에 설명한 것과 같이, 메인 메모리(320)는 그러한 허가되지 않은 정보를 메인 메모리(320)에 기입하는 것을 피하기 위한 기법들을 구현 가능할 수 있다.
일 구현에서, 프로세서-메모리 시스템(300)은 컴퓨팅 플랫폼의 일부분을 포함할 수 있다. 그러한 구현에서, CPU(310)는 변환 색인 버퍼(translation lookaside buffer; TLB)를 포함하는 캐시 메모리(도시되지 않음)를 포함할 수 있으며, 이는 특정 페이지 테이블을 가리킬 수 있으며, 이는 차례로 메인 메모리(320)의 하나 또는 그 이상의 개별적인 페이지들을 가리킬 수 있다. 메인 메모리(320)가, 예컨대 DRAM과 같은 휘발성 메모리를 포함하는 실시예에서, CPU(310) 및/또는 메인 메모리(320)로의 전력이 방해 및/또는 중단된다면 메인 메모리(320)의 메모리 콘텐츠가 소실될 수 있다. 반면에, 메인 메모리(320)가 예컨대 PCM과 같은 지속적인 메모리를 포함하는 실시예에서, CPU 및/또는 메인 메모리가 방해된 및/또는 중단된 전력 소스를 경험하더라도 메인 메모리(320)의 콘텐츠는 유지될 수 있다. 그러한 경우에, 하기 상세히 논의된 것과 같이, 예컨대 페이지(370)과 같은 메인 메모리(320)의 일부분에 유지된 보안 정보는 소실될 필요가 없으며 후속 인증 프로세스들을 위해 사용 가능할 수 있다. 물론, 프로세서 시스템의 그러한 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 그렇게 제한되지 않는다.
실시예에서, 메인 메모리(320)는 메모리 어레이(360), 메모리 컨트롤러(315), 및 보안 부분(340)을 포함할 수 있다. 메모리 어레이(360)는 예컨대 페이지들(368 및 370)을 포함하는 페이지들과 같은 하나 또는 그 이상의 부분들을 포함할 수 있다. 특정 구현에서, 하기 상세히 설명한 것과 같이, 페이지(370)는 보안 정보의 적어도 일부분이 저장될 수 있는 메모리 위치를 포함할 수 있다. 보안 부분(340)은 보안 로직 블록(346), 암호 키 저장소(344), 및 메모리 범위 식별자(342)를 포함할 수 있다. 예컨대, 보안 로직 블록(346)은 SHA 로직 블록과 같은 다수의 잘 알려진 암호 로직 블록들 중 임의의 것을 포함할 수 있다. 암호 키 저장소(344)는 정보를 허가하기 위한 프로세스를 위해 사용되는 하나 또는 그 이상의 키들을 저장하기 위한 레지스터 또는 메모리 어레이(360)의 다른 메모리 부분들을 포함할 수 있다. 따라서, 그러한 키들은 메인 메모리(320) 내부의 정보를 포함할 수 있다. 더욱이, 그러한 키들은 일단 공급되면 메인 메모리(320)에 속할(private) 수 있다. 암호 키 저장소(344)는 키를 유지하기 위한 지속적인 메모리를 포함할 수 있으며, 키의 값은 프로세서-메모리 시스템(300) 외부의 사용자들 및/또는 전자 개체들에 비밀로 유지될 수 있다. 일 구현에서, 프로세서(210)(도 2)는 그러한 키들을 알 필요가 없다. 그러한 경우에서, 로컬 프로세서가 명령들을 통과시키고 키들을 알지 못하도록, 예컨대 외부의 프로세스 또는 프로세서가 기입 동작들을 관리할 수 있다. 로컬 프로세서(210)가 안전한 영역을 업데이트하고 있다면, 로컬 프로세서(210)는 키들을 알 수 있다. 그러나, 로컬 프로세서가 로컬 메모리 키들을 아는 것은 비교적 덜 안전하다. 외부 어소리티(authority)가 키들을 알고 명령들을 생성하는 것이 더 안전하다. 다른 구현에서, 프로세서(210)가 키들을 알 수 있다. 그러한 경우, 예컨대 만약 해커, 또는 잠재적인 보안 위반의 다른 개체가 프로세서(210)에 액세스한다면, 그러한 해커 또는 다른 개체는 키를 확보하고 메모리에 기입할 수 있다. 하기 상세히 논의된 것과 같이, 보안 로직 블록(346)은 암호 키 저장소(344)에 유지되는 키를 이용할 수 있다. 메모리 범위 식별자(342)는 메모리 어레이(360)의 레지스터 또는 다른 메모리 부분을 포함할 수 있다. 메모리 범위 식별자(342)는 보안 보호될 메모리 어레이(360)의 하나 또는 그 이상의 부분들을 기술하는 및/또는 식별하는 정보를 유지하기 위한 지속적인 메모리를 포함할 수 있다. 예컨대, 메모리 범위 식별자(342)는 인증 프로세스를 수행하지 않고서는 기입되지 않아야 할 페이지들의 범위를 기술하는 정보를 저장하는 레지스터를 포함할 수 있다.
구현에서, 메모리 컨트롤러(315)는 메인 메모리(320)의 안전한 부분에 기입하기 위해 사용될 수 있는 안전한 기입 명령을 인식하도록 구성될 수 있다. 하기 논의된 것과 같이, 메모리 컨트롤러(315)는 메모리 콘텐츠의 적어도 일부분의 인증을 재측정 및/또는 재확인하기 위해 프로세서에 의해 사용될 수 있는 메모리 측정 명령을 인식하도록 또한 구성될 수 있다.
메인 메모리(320)는 메인 메모리에서 수신된 기입 명령들을 확인할 수 있다. 메인 메모리(320)는 그러한 메모리 콘텐츠들이 계속 유효하고 완전성이 보호될 수 있도록, 메인 메모리(320)의 콘텐츠들의 허가되지 않은 변경을 방지할 수 있다. 메인 메모리(320)가 지속적인 메모리를 포함한다면, 프로세서-메모리 시스템(300)의 재초기화와 동시에, 기입 명령들의 허가를 결정하는 데 관계되는 하나 또는 그 이상의 프로세스들은 반복될 필요가 없다. 예컨대, 데이터 객체가 안전한 기입 명령을 사용하여 지속적인 메인 메모리에 기입되면, 그 메모리 객체는 덮어쓰여질 때까지 안전할 수 있으며 완전성이 보호될 수 있다.
도 4는 실시예에 따른 프로세서-메모리 시스템(400)에서 발생할 수 있는 프로세스의 개략도이다. 프로세서-메모리 시스템(400)이 지속적인 메인 메모리(420)를 포함할 수 있다는 것을 제외하면, 프로세서-메모리 시스템(400)은 상기 설명한 프로세서-메모리 시스템(300)과 유사할 수 있다. 지속적인 메인 메모리(420)는 예컨대 도 3에 도시된 CPU(310)와 유사할 수 있는 CPU(410)에 의해 액세스 가능할 수 있다. 실시예에서, 메인 메모리(420)는 메모리 어레이(460), 메모리 컨트롤러(415), 및 보안 부분(440)을 포함할 수 있다. 메모리 어레이(460)는, 예컨대 페이지들(468 및 470)을 포함하는 페이지들과 같은 하나 또는 그 이상의 부분들을 포함할 수 있다. 특정 구현에서, 페이지(470)는 보안 정보의 적어도 일부분이 저장될 수 있는 메모리 위치를 포함할 수 있다. 보안 부분(440)은 보안 로직 블록(446), 암호 키 저장소(444), 및 메모리 범위 식별자(442)를 포함할 수 있으며, 이는 상기 설명한 보안 로직 블록(346), 암호 키 저장소(344), 및 메모리 범위 식별자(342)와 유사할 수 있다.
특정 구현 및 하기 설명에서, 지속적인 메인 메모리(420)는 페이지들을 포함할 수 있으나, 청구된 주제는 그렇게 제한되지 않는다. 예컨대, 지속적인 메인 메모리(420)는 페이지들(470 및 468)을 포함하는 다수의 페이지들을 포함할 수 있다. 특히, 페이지(470)는 인덱스 테이블을 포함할 수 있으며, 인덱스 테이블은 지속적인 메인 메모리(420) 내의 특정 개별적인 페이지들에 대응하는 암호 해시 값들을 포함할 수 있다. 구현에서, 예컨대 메모리 컨트롤러(415)가 메모리 객체를 재검증하는 프로세스를 수행하는 것을 허용하기 위해, 그러한 인덱스 테이블은 지속적인 메인 메모리(420)의 특정 페이지에 위치할 수 있다. 그러한 재검증 프로세스는 CPU(410)에 의한 요청과 동시에 수행될 수 있으며, CPU(410)는 메모리 측정 명령을 지속적인 메인 메모리(420)에 송신할 수 있다. 예컨대, 페이지(470)는 페이지(468)에 대응하는 해시 값(472), 페이지(466)에 대응하는 해시 값(474), 페이지(469)에 대응하는 해시 값(476) 등을 포함할 수 있다. 그러한 해시 값들은 이전 기간(epoch)에 계산되었을 수 있으며, 예컨대 파워다운 이벤트 동안에도 지속적인 메인 메모리(420) 내에 유지되었을 수 있다. 재검증 프로세스들의 예들은 페이지(470)로부터 페이지들(466, 468, 및 469)로 연장되는 수직 화살표들에 의해 도 4에 표시된다. 도 4는 해시 값들과 같은 암호 정보들이 페이지(470)에 저장될 수 있음을 나타내지만, 청구된 주제는 그러한 상대적인 위치들에 제한되지 않는다. 예컨대, 해시 값들은 페이지(468) 또는 다른 페이지에 위치할 수 있다. 물론, 지속적인 메인 메모리의 그러한 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 그렇게 제한되지 않는다.
도 5는 안전한 기입 명령을 인증하기 위한 프로세스(500)의 흐름도이다. 그러한 프로세스는, 예컨대 상기 설명한 프로세서-메모리 시스템(300 또는 400)에 의해 수행될 수 있다. 블록(510)에서, 상기 설명한 암호 값들을 포함하는 비밀 키들이 메인 메모리의 하나 또는 그 이상의 부분들에 저장될 수 있다. 예컨대, 그러한 비밀 키들은 도 3에 도시된 암호 키 저장소(344)에 저장될 수 있다. 그러한 비밀 키들을 메인 메모리 내에 유지하는 것은, 비밀 키들이 메인 메모리 외부에 저장되는 경우에 비해 메모리 콘텐츠의 보안을 개선하는 이득을 제공할 수 있다. 예컨대, 일 구현에서, 그러한 비밀 키들은 수정되지 않을 수 있으며, 알려진 소스로부터 인증 로직이 입수할 수 있다. 다른 구현에서, 비밀 키들을 업데이트하기 위한 안전한 규약이 있는 경우, 그러한 비밀 키들은 수정될 수 있다. 블록(520)에서, 메인 메모리는 안전한 기입 명령을 수신할 수 있다. 구현에서, 예컨대 그러한 명령은 메인 메모리 외부의 프로세서 또는 메모리 컨트롤러로부터 버스를 통해 수신될 수 있다. 블록(530)에서, 메인 메모리 내의 메모리 컨트롤러는 수신된 안전한 기입 명령을 인증하기 위한 프로세스를 수행할 수 있다. 예컨대, 메인 메모리 내의 그러한 메모리 컨트롤러는 도 3에 도시된 메모리 컨트롤러(315)와 유사할 수 있다. 실시예에서, 수신된 안전한 기입 명령을 인증하기 위한 그러한 프로세스는 안전한 기입 명령 및/또는 안전한 기입 명령과 연관된 정보에 SHA 엔진을 적용하는 단계를 포함할 수 있다. 일 구현에서, 그러한 SHA 엔진을 적용하기 위해 마이크로컨트롤러가 사용될 수 있으나, 청구된 주제는 그렇게 제한되지 않는다. 메인 메모리 내에 저장된 비밀 키가 SHA 엔진에 의해 수행되는 동작들에 또한 포함될 수 있다. 일 구현에서, 도 3에 도시된 보안 로직 블록(346)은 그러한 SHA 엔진의 동작들을 수행하기 위한 마이크로컨트롤러 및/또는 소프트웨어를 포함할 수 있으나, 청구된 주제는 그렇게 제한되지 않는다. 따라서, SHA 엔진은 예컨대 해시 값과 같은 암호 서명을 생성할 수 있다. 한편, 블록(540)에서, 그러한 해시 값들은 예컨대 해시 값들의 인덱스를 포함하는 페이지(470)와 같은 메인 메모리의 일부분에 저장될 수 있다. 다이아몬드(550)에서, 메모리 컨트롤러(315)는 안전한 기입 명령이 진짜인지의 여부를 결정할 수 있다. 만약 진짜가 아니라면, 프로세스(500)는 기입 명령이 무시되는 블록(555)으로 속행할 수 있다. 예컨대, 그러한 경우, 보호된 메인 메모리에 저장된 콘텐츠는 변경되지 않을 수 있다. 메모리 컨트롤러(315)가 안전한 기입 명령이 진짜라고 결정한다면, 프로세스(500)는 메인 메모리에 저장된 콘텐츠를 변경하기 위해 기입 명령이 실행될 수 있는 블록(560)으로 속행할 수 있다. 물론, 프로세스(500)의 그러한 세부 사항들은 단지 예일 뿐이며, 청구된 주제는 그렇게 제한되지 않는다.
도 6은 안전한 메모리 측정 명령을 수행하기 위한 프로세스(600)의 흐름도이다. 그러한 프로세스는, 예컨대 상기 설명한 프로세서-메모리 시스템(300 또는 400)에 의해 수행될 수 있다. 블록(610)에서, 상기 설명한 이전의 암호 계산의 결과들을 포함하는 해시 값들이 메인 메모리의 하나 또는 그 이상의 부분들에 저장될 수 있다. 예컨대, 그러한 해시 값들은 도 4에 도시된, 메인 메모리(420)의 특정 페이지들에 대응하는 그러한 해시 값들의 인덱스를 포함하는 페이지(470)에 저장될 수 있다. 메인 메모리 내에 그러한 해시 값들을 유지하는 것은, 메인 메모리에 저장된 객체들을 재인증하는 것의 효율(예컨대, 속도)을 개선하는 이득을 제공할 수 있다. 블록(620)에서, 메인 메모리는 안전한 메모리 측정 명령을 수신할 수 있다. 구현에서, 그러한 안전한 메모리 측정 명령은, 예컨대 버스를 통해 메인 메모리 외부의 프로세서 또는 메모리 컨트롤러로부터 수신될 수 있다. 다이아몬드(630)에서, 메인 메모리 내의 메모리 컨트롤러는 안전한 메모리 측정 명령에 의해 특정된 특정 항목에 대응하는 해시 값이 이미 메인 메모리에 저장되었는지의 여부를 결정할 수 있다. 예컨대, 상기 언급한 것과 같이, 메모리 컨트롤러(415)는 도 4에 도시된 메인 메모리(420)의 페이지(470)에서 해시 값들의 인덱스를 검색할 수 있다. 그러한 해시 값이 이미 저장되었다면, 프로세스(600)는 메인 메모리에 저장되고, 안전한 메모리 측정 명령에 의해 특정된 객체를 재인증하기 위해 이미 저장된 해시 값이 사용될 수 있는 블록(640)으로 속행한다. 반면에, 그러한 해시 값이 사용 가능하지 않다면, 프로세스(600)는 리턴 에러가 생성될 수 있는 블록(635)로 속행할 수 있다. 물론, 프로세스(600)의 그러한 세부사항은 단지 예일 뿐이며, 청구된 주제는 그렇게 제한되지 않는다.
도 7은 메모리 장치(710)를 포함하는 컴퓨팅 시스템(700)의 대표적인 실시예를 도시하는 개략도이다. 컴퓨팅 장치(704)는 메모리 장치(710)를 관리하도록 구성될 수 있는 임의의 장치, 기기, 또는 기계를 대표할 수 있다. 메모리 장치(710)는 마이크로컨트롤러(715) 및 메모리(722)를 포함할 수 있다. 일 구현에서, 마이크로컨트롤러(715)는 메모리(722) 내에 물리적으로 위치할 수 있다. 제한적이지 않은 예로서, 컴퓨팅 장치(704)는, 예컨대 데스크톱 컴퓨터, 랩톱 컴퓨터, 워크스테이션, 서버 장치 등과 같은 하나 또는 그 이상의 컴퓨팅 장치들 및/또는 플랫폼들; 예컨대 PDA, 이동 통신 장치 등과 같은 하나 또는 그 이상의 개인 컴퓨팅 또는 통신 장치들 또는 기기들; 예컨대 데이터베이스 또는 데이터 저장 서비스 제공자/시스템과 같은 컴퓨팅 시스템 및/또는 연관된 서비스 제공자; 및/또는 이들의 임의의 조합을 포함할 수 있다.
실시예에서, 컴퓨팅 장치(704)는 버스(740) 및 호스트 또는 메모리 컨트롤러(712)를 통해 메모리(722)에 동작 가능하도록 연결된 하나 또는 그 이상의 프로세싱 유닛(720)들을 포함할 수 있다. 프로세싱 유닛(720)은 데이터 컴퓨팅 절차 또는 프로세스의 적어도 일부분을 수행하도록 구성 가능한 하나 또는 그 이상의 회로들을 대표한다. 제한적이지 않은 예로서, 프로세싱 유닛(720)은 하나 또는 그 이상의 프로세서, 컨트롤러, 마이크로프로세서, 마이크로컨트롤러, 어플리케이션 특정 집적 회로(ASIC), 디지털 신호 프로세서(DSP), 프로그램 가능한 로직 장치(PLD), 필드 프로그램 가능한 게이트 어레이(FPGA) 등, 또는 그들의 임의의 조합을 포함할 수 있다. 프로세싱 유닛(720)은, 예컨대 상기 논의된 프로세서 재부팅뿐 아니라, 판독, 기입, 및/또는 삭제와 같은 메모리와 연관된 동작들을 처리하기 위해 메모리 컨트롤러(712)와 통신할 수 있다. 프로세싱 유닛(720)은 메모리 컨트롤러(715)와 통신하기 위한 운영 체제를 포함할 수 있다. 그러한 운영 체제는, 예컨대 버스(740)를 통해 메모리 컨트롤러(715)로 전송될 명령들을 생성할 수 있다. 그러한 명령들은, 예컨대 판독/기입 명령들을 포함할 수 있다. 일 구현에서, 하이퍼바이저는 하나 또는 그 이상의 추가적인 운영 체제들이 동시에 실행되는 것을 허용할 수 있다. 예컨대, 그러한 하이퍼바이저는 가상적인 환경을 허용하기 위한 자원(예컨대, 메모리(722), 프로세싱 유닛(720), 및 입/출력(732)) 관리자를 포함할 수 있다.
메모리(722)는 임의의 데이터 저장 메커니즘을 대표할 수 있다. 메모리(722)는, 예컨대 DRAM(724) 및/또는 지속적인 메모리(726)를 포함할 수 있다. 특정 실시예에서, 상기 설명한 것과 같이 메모리(722)는 지속적인 메모리의 적어도 일부분을 포함하는 메인 메모리를 포함할 수 있다. 메모리(722)는 지속적인 메모리의 적어도 일부분을 마찬가지로 포함할 수 있는 캐시 메모리를 또한 포함할 수 있다. 이 예에서 프로세싱 유닛(720)으로부터 분리된 것으로 도시되었으나, DRAM(724)의 전부 또는 일부는 프로세싱 유닛(720)의 내에, 또는 다른 방법으로 프로세싱 유닛(720)과 함께 위치하여/연결되어 제공될 수 있다는 것을 이해해야 한다.
실시예에 따라, 메모리(722)의 하나 또는 그 이상의 부분들은 메모리(722)의 특정 상태로 표현되는 데이터 및/또는 정보를 대표하는 신호들을 저장할 수 있다. 예컨대, 데이터 및/또는 정보를 대표하는 전기 신호는, 데이터 및/또는 정보를 이진 정보(예컨대, 1들 및 0들)로 나타내기 위해 메모리(722)의 그러한 부분들의 상태에 영향을 주거나 또는 그 상태를 변경함으로써 메모리(722)의 일부분에 "저장"될 수 있다. 이와 같이, 특정 구현에서, 데이터 및/또는 정보를 대표하는 신호를 저장하기 위한 메모리의 부분의 상태의 그러한 변경은, 메모리(722)의 다른 상태 또는 다른 것으로의 변환을 구성한다.
일 실시예에서, 시스템(700)은 메모리 셀 어레이를 포함하는 메모리 장치(722) 및 메모리 장치 내에 위치한 마이크로컨트롤러(715)를 포함할 수 있다. 그러한 마이크로컨트롤러는 예컨대 도 2에 도시된 마이크로컨트롤러(215)와 유사할 수 있다. 시스템(700)은, 하나 또는 그 이상의 어플리케이션들을 호스트하고 메모리 셀 어레이에 액세스하기 위한 기입 명령들을 발행하기 위한 프로세서(720), 및 기입 명령들을 수신하기 위한 메모리 컨트롤러(712)를 또한 포함할 수 있다. 일 구현에서, 메모리 컨트롤러(712)는 메모리 장치 외부에 위치할 수 있으며 프로세서(720) 및 메모리 장치 사이에 배치될 수 있다. 마이크로컨트롤러(715)는 메모리 셀 어레이에 액세스하기 위한 기입 명령들을 수신할 수 있고, 기입 명령들의 인증을 결정할 수 있으며, 기입 명령의 결정된 인증에 적어도 부분적으로 기초하여 메모리 셀 어레이의 콘텐츠를 수정할지의 여부를 결정할 수 있다. 그러한 메모리 셀 어레이는, 예컨대 PCM과 같은 지속적인 메모리를 포함할 수 있다.
컴퓨팅 장치(704)는, 예컨대 입/출력(732)을 포함할 수 있다. 입/출력(732)은 사람의 및/또는 기계의 입력들을 수락하거나 또는 다른 방법으로 도입하도록 구성 가능한 하나 또는 그 이상의 장치들 또는 특징들, 및/또는 사람 및/또는 기계의 출력들을 전달하거나 또는 다른 방법으로 제공하도록 구성 가능한 하나 또는 그 이상의 장치들 또는 특징들을 대표할 수 있다. 제한적이지 않은 예로서, 입/출력 장치(732)는 동작 가능하도록 구성된 디스플레이, 스피커, 키보드, 마우스, 트랙볼, 터치스크린, 데이터 포트 등을 포함할 수 있다.
현재 실시예로서 간주되는 것들이 도시되고 설명되었으나, 본 기술분야의 기술자들은 청구된 주제로부터 벗어나지 않으면서 다양한 다른 변경들이 행해질 수 있고 동등물들이 대체될 수 있다는 것을 이해할 것이다. 추가적으로, 본원에 설명된 중심 개념으로부터 벗어나지 않으면서 청구된 주제의 가르침에 특정 상황을 적응시키기 위한 많은 변경들이 행해질 수 있다. 그러므로, 청구된 주제는 개시된 특정 실시예들에 제한되는 것이 아니라, 그러한 청구된 주제는 첨부된 청구항들 및 그들의 동등물의 범위에 포함되는 모든 실시예들을 또한 포함할 수 있도록 의도된다.
Claims (21)
- 프로세서에 의해 액세스 가능한 메인 메모리에 의해 기입 명령을 수신하는 단계 - 상기 기입 명령은 제1 메모리 컨트롤러를 통해 수신됨 -;
상기 기입 명령의 인증을 결정하는 단계 - 상기 결정은 상기 메인 메모리 내에 위치한 제2 컨트롤러에 의해 수행됨 -; 및
상기 기입 명령의 상기 결정된 인증에 적어도 부분적으로 기초하여 상기 메인 메모리의 콘텐츠를 변경할지의 여부를 결정하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 메인 메모리 내에 암호 키를 유지하는 단계를 더 포함하고, 상기 기입 명령의 인증을 결정하는 단계는 상기 암호 키에 적어도 부분적으로 기초하여 암호 서명을 생성하는 단계를 포함하는 방법. - 제1항에 있어서,
상기 메인 메모리는 지속적인 메모리를 포함하는 방법. - 제1항에 있어서,
상기 메인 메모리는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함하는 방법. - 제1항에 있어서,
전력 손실 이벤트 동안 상기 메인 메모리에 저장된 대응하는 메모리 객체들을 위한 특정 해시 값들을 유지하는 단계를 더 포함하는 방법. - 제1항에 있어서,
상기 메인 메모리는 상변화 메모리(PCM)를 포함하는 방법. - 메모리 장치로서,
메모리 셀 어레이; 및
상기 메모리 장치 내에 위치한 제1 컨트롤러를 포함하고,
상기 제1 컨트롤러는,
제2 메모리 컨트롤러로부터 기입 명령을 수신하고 - 상기 기입 명령은 상기 메모리 셀 어레이에 액세스하기 위한 것임 -,
상기 기입 명령의 인증을 결정하고 - 상기 결정은 상기 메인 메모리 장치 내에 위치한 상기 제1 컨트롤러에 의해서 수행됨 -,
상기 기입 명령의 상기 결정된 인증에 적어도 부분적으로 기초하여 상기 메모리 셀 어레이의 콘텐츠를 수정할지의 여부를 결정하는 메모리 장치. - 제7항에 있어서,
안전한 해시 알고리즘(secure hash algorithm; SHA)을 수행하기 위한 전자 컴포넌트들을 포함하는 보안 블록을 더 포함하는 메모리 장치. - 제8항에 있어서,
상기 안전한 해시 알고리즘에서 사용될 암호 키를 저장하기 위한 특정 메모리 위치를 더 포함하는 메모리 장치. - 제7항에 있어서,
안전해야 할 상기 메모리 셀 어레이의 하나 또는 그 이상의 위치들을 기술하는 정보를 저장하기 위한 특정 메모리 위치를 더 포함하는 메모리 장치. - 제7항에 있어서,
상기 메모리 셀 어레이는 지속적인 메모리를 포함하는 메모리 장치. - 제7항에 있어서,
상기 메모리 셀 어레이는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함하는 메모리 장치. - 제7항에 있어서,
상기 메모리 셀 어레이는 상변화 메모리(PCM)를 포함하는 메모리 장치. - 메모리 셀 어레이, 및 제1 컨트롤러를 포함하는 메모리 장치 - 상기 제1 컨트롤러는 상기 메모리 장치 내에 위치함 -;
하나 또는 그 이상의 어플리케이션들을 호스트하고, 상기 메모리 셀 어레이에 액세스하기 위한 기입 명령들을 발행하기 위한 프로세서; 및
상기 기입 명령들을 수신하기 위한 제2 메모리 컨트롤러 - 상기 제2 메모리 컨트롤러는 상기 프로세서 내에 배치되거나, 또는 상기 프로세서와 상기 메모리 장치 사이에 배치됨 - 를 포함하고,
상기 제1 컨트롤러는,
상기 메모리 셀 어레이에 액세스하기 위한 상기 기입 명령들을 수신 가능하고,
상기 기입 명령들의 인증을 결정 가능하고 - 상기 결정은 상기 제1 컨트롤러에 의해 수행됨 -,
상기 기입 명령의 상기 결정된 인증에 적어도 부분적으로 기초하여 상기 메모리 셀 어레이의 콘텐츠를 수정할지의 여부를 결정 가능한 시스템. - 제14항에 있어서,
상기 메모리 장치는 안전한 해시 알고리즘(SHA)을 수행하기 위한 전자 컴포넌트들을 포함하는 보안 블록을 더 포함하는 시스템. - 제15항에 있어서,
상기 메모리 장치는 상기 안전한 해시 알고리즘에서 사용될 하나 또는 그 이상의 암호 키들을 저장하기 위한 특정 메모리 위치들을 더 포함하는 시스템. - 제14항에 있어서,
상기 메모리 셀 어레이는 지속적인 메모리를 포함하는 시스템. - 제14항에 있어서,
상기 메모리 셀 어레이는 다이내믹 랜덤 액세스 메모리(DRAM)를 포함하는 시스템. - 제14항에 있어서,
상기 메모리 셀 어레이는 상변화 메모리(PCM)를 포함하는 시스템. - 제14항에 있어서,
상기 메모리 셀 어레이는 안전해야 할 상기 메모리 셀 어레이의 하나 또는 그 이상의 다른 위치들을 기술하는 정보를 저장하기 위한 특정 메모리 위치를 포함하는 시스템. - 제14항에 있어서,
가상 환경을 제공하기 위한 하이퍼바이저(hypervisor)를 더 포함하는 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/895,574 US8613074B2 (en) | 2010-09-30 | 2010-09-30 | Security protection for memory content of processor main memory |
US12/895,574 | 2010-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120034015A true KR20120034015A (ko) | 2012-04-09 |
KR101378639B1 KR101378639B1 (ko) | 2014-03-26 |
Family
ID=45832691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110098780A KR101378639B1 (ko) | 2010-09-30 | 2011-09-29 | 프로세서 메인 메모리의 메모리 콘텐츠를 위한 보안 보호 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8613074B2 (ko) |
JP (1) | JP5500458B2 (ko) |
KR (1) | KR101378639B1 (ko) |
CN (1) | CN102541765B (ko) |
DE (1) | DE102011082184A1 (ko) |
TW (1) | TWI441024B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170085638A (ko) * | 2016-01-14 | 2017-07-25 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
KR102068485B1 (ko) | 2012-11-30 | 2020-01-21 | 삼성전자주식회사 | 불 휘발성 메모리 모듈 및 그것의 동작 방법 |
US9729309B2 (en) * | 2012-12-19 | 2017-08-08 | Intel Corporation | Securing data transmission between processor packages |
CN103914664A (zh) * | 2012-12-31 | 2014-07-09 | 比亚迪股份有限公司 | 具有内部存储体保护功能的控制器与控制方法 |
US9262259B2 (en) | 2013-01-14 | 2016-02-16 | Qualcomm Incorporated | One-time programmable integrated circuit security |
CN103793332B (zh) * | 2014-02-28 | 2017-03-01 | 中国科学院微电子研究所 | 基于内存的数据存储方法、装置、处理器和电子设备 |
EP3189619B1 (en) | 2014-09-03 | 2021-02-17 | NantOmics, LLC | Device, method and computer program product for synthetic genomic variant-based secure transaction |
US9710622B2 (en) * | 2015-02-23 | 2017-07-18 | Intel Corporation | Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache |
US9864879B2 (en) * | 2015-10-06 | 2018-01-09 | Micron Technology, Inc. | Secure subsystem |
US10678924B2 (en) * | 2016-08-10 | 2020-06-09 | Qualcomm Incorporated | Hardware-based software-resilient user privacy exploiting ephemeral data retention of volatile memory |
EP3387535B1 (en) | 2016-08-25 | 2021-12-29 | Huawei Technologies Co., Ltd. | Apparatus and method for software self test |
US10652025B2 (en) * | 2017-07-10 | 2020-05-12 | Micron Technology, Inc. | Secure snapshot management for data storage devices |
US11139985B2 (en) * | 2018-12-04 | 2021-10-05 | Journey.ai | Receiving information through a zero-knowledge data management network |
US11036887B2 (en) * | 2018-12-11 | 2021-06-15 | Micron Technology, Inc. | Memory data security |
US11256427B2 (en) * | 2018-12-28 | 2022-02-22 | Micron Technology, Inc. | Unauthorized memory access mitigation |
US11321468B2 (en) * | 2018-12-31 | 2022-05-03 | Micron Technology, Inc. | Systems for providing access to protected memory |
US10921996B2 (en) * | 2019-03-22 | 2021-02-16 | Micron Technology, Inc. | Data lines updating for data generation |
US11120167B2 (en) * | 2019-03-25 | 2021-09-14 | Micron Technology, Inc. | Block chain based validation of memory commands |
JP7332083B2 (ja) * | 2019-04-19 | 2023-08-23 | インテル・コーポレーション | マルチモード保護メモリ |
EP3751572B1 (en) | 2019-06-13 | 2021-12-01 | Melexis Technologies NV | Memory device |
US11487908B2 (en) * | 2019-08-16 | 2022-11-01 | Macronix International Co., Ltd. | Secure memory |
US11264063B2 (en) * | 2019-08-21 | 2022-03-01 | Macronix International Co., Ltd. | Memory device having security command decoder and security logic circuitry performing encryption/decryption commands from a requesting host |
TWI715433B (zh) * | 2020-02-06 | 2021-01-01 | 瑞昱半導體股份有限公司 | 啟動電路、啟動方法以及啟動系統 |
US11379156B2 (en) * | 2020-08-19 | 2022-07-05 | Micron Technology, Inc. | Write type indication command |
CN114914237B (zh) * | 2022-07-19 | 2022-10-25 | 北京智芯微电子科技有限公司 | Romkey单元的版图结构、芯片版图布局方法及芯片 |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0358163A (ja) | 1989-07-26 | 1991-03-13 | Nec Corp | 疎結合型マルチプロセッサシステム |
JPH06150031A (ja) | 1992-10-30 | 1994-05-31 | Nec Corp | Cpuモジュール |
US5442704A (en) | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
JPH0816740A (ja) | 1994-06-24 | 1996-01-19 | Toshiba Corp | 携帯可能な情報処理装置及び情報処理システム |
JPH0816470A (ja) | 1994-07-04 | 1996-01-19 | Hitachi Ltd | 並列計算機 |
JP3320562B2 (ja) | 1994-09-22 | 2002-09-03 | 株式会社東芝 | キャッシュメモリを有する電子計算機 |
JP3210590B2 (ja) | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
JPH10171676A (ja) | 1996-12-10 | 1998-06-26 | Toshiba Corp | マイクロプロセッサのテスト容易化回路 |
US6625756B1 (en) | 1997-12-19 | 2003-09-23 | Intel Corporation | Replay mechanism for soft error recovery |
US6272609B1 (en) | 1998-07-31 | 2001-08-07 | Micron Electronics, Inc. | Pipelined memory controller |
US6807615B1 (en) | 1999-04-08 | 2004-10-19 | Sun Microsystems, Inc. | Apparatus and method for providing a cyclic buffer using logical blocks |
US20080282128A1 (en) | 1999-08-04 | 2008-11-13 | Super Talent Electronics, Inc. | Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance |
US6516384B1 (en) | 1999-12-30 | 2003-02-04 | Intel Corporation | Method and apparatus to perform a round robin and locking cache replacement scheme |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US6452823B1 (en) | 2001-01-31 | 2002-09-17 | Motorola, Inc. | Non-volatile magnetic cache memory and method of use |
WO2002077878A1 (en) * | 2001-03-26 | 2002-10-03 | Galois Connections Inc | Crypto-pointers for secure data storage |
US7269608B2 (en) | 2001-05-30 | 2007-09-11 | Sun Microsystems, Inc. | Apparatus and methods for caching objects using main memory and persistent memory |
US6760819B2 (en) | 2001-06-29 | 2004-07-06 | International Business Machines Corporation | Symmetric multiprocessor coherence mechanism |
KR20040015818A (ko) * | 2001-07-18 | 2004-02-19 | 마츠시타 덴끼 산교 가부시키가이샤 | 기입장치, 반도체 메모리 카드, 기입프로그램 및 기입방법 |
US6658539B2 (en) | 2001-10-16 | 2003-12-02 | International Business Machines Corporation | Super-coherent data mechanisms for shared caches in a multiprocessing system |
US6983348B2 (en) | 2002-01-24 | 2006-01-03 | Intel Corporation | Methods and apparatus for cache intervention |
US7035987B2 (en) | 2002-07-02 | 2006-04-25 | Intel Corporation | Managing storage in processor-based systems |
US7103718B2 (en) | 2002-09-03 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Non-volatile memory module for use in a computer system |
US6892283B2 (en) | 2002-12-05 | 2005-05-10 | International Business Machines Corporation | High speed memory cloner with extended cache coherency protocols and responses |
JP2004199138A (ja) * | 2002-12-16 | 2004-07-15 | Matsushita Electric Ind Co Ltd | メモリデバイスとそれを使用する電子機器 |
US7322042B2 (en) * | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
JP4241175B2 (ja) | 2003-05-09 | 2009-03-18 | 株式会社日立製作所 | 半導体装置 |
US20050080999A1 (en) | 2003-10-08 | 2005-04-14 | Fredrik Angsmark | Memory interface for systems with multiple processors and one memory system |
JP2005182525A (ja) | 2003-12-19 | 2005-07-07 | Fujitsu Ltd | 記憶装置 |
US20050160229A1 (en) | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
JP2006031097A (ja) | 2004-07-12 | 2006-02-02 | Matsushita Electric Ind Co Ltd | 通信システムならびにそれに用いられる通信端末、認証情報管理方法、認証情報管理プログラムおよび認証情報管理プログラムを格納する記録媒体 |
US7644287B2 (en) * | 2004-07-29 | 2010-01-05 | Microsoft Corporation | Portion-level in-memory module authentication |
US7240137B2 (en) | 2004-08-26 | 2007-07-03 | International Business Machines Corporation | System and method for message delivery across a plurality of processors |
US7451166B2 (en) * | 2005-01-13 | 2008-11-11 | International Business Machines Corporation | System and method for maintaining checkpoints of a keyed data structure using a sequential log |
CN101180612A (zh) | 2005-03-31 | 2008-05-14 | 日本电气株式会社 | 计算机系统、存储器管理方法及其程序 |
US20060265544A1 (en) * | 2005-05-17 | 2006-11-23 | John Rudelic | Internally authenticated flash remediation |
JP2006323739A (ja) * | 2005-05-20 | 2006-11-30 | Renesas Technology Corp | メモリモジュール、メモリシステム、及び情報機器 |
US7389402B2 (en) | 2005-06-07 | 2008-06-17 | Advanced Micro Devices, Inc. | Microprocessor including a configurable translation lookaside buffer |
US7934049B2 (en) | 2005-09-14 | 2011-04-26 | Sandisk Corporation | Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory |
US20070136609A1 (en) * | 2005-12-13 | 2007-06-14 | Rudelic John C | Methods and apparatus for providing a secure channel associated with a flash device |
US20070226795A1 (en) | 2006-02-09 | 2007-09-27 | Texas Instruments Incorporated | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture |
WO2007105256A1 (ja) | 2006-02-24 | 2007-09-20 | Fujitsu Limited | マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法 |
WO2008040028A2 (en) | 2006-09-28 | 2008-04-03 | Virident Systems, Inc. | Systems, methods, and apparatus with programmable memory control for heterogeneous main memory |
US7761625B2 (en) | 2006-09-28 | 2010-07-20 | Virident Systems, Inc. | Methods for main memory with non-volatile type memory modules, and related technologies |
US7917812B2 (en) | 2006-09-30 | 2011-03-29 | Codman Neuro Sciences Sárl | Resetting of multiple processors in an electronic device |
US7827360B2 (en) | 2007-08-02 | 2010-11-02 | Freescale Semiconductor, Inc. | Cache locking device and methods thereof |
US8055852B2 (en) | 2007-08-15 | 2011-11-08 | Micron Technology, Inc. | Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same |
CN100492274C (zh) | 2007-08-17 | 2009-05-27 | 杭州华三通信技术有限公司 | 存储控制系统及其处理节点 |
JP5169102B2 (ja) | 2007-09-21 | 2013-03-27 | 大日本印刷株式会社 | プラットフォーム型icカード、プラットフォーム型icカード用プログラム |
US8015365B2 (en) | 2008-05-30 | 2011-09-06 | Intel Corporation | Reducing back invalidation transactions from a snoop filter |
US8301848B2 (en) * | 2008-06-09 | 2012-10-30 | International Business Machines Corporation | Virtualizing storage for WPAR clients using node port ID virtualization |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US8055847B2 (en) | 2008-07-07 | 2011-11-08 | International Business Machines Corporation | Efficient processing of data requests with the aid of a region cache |
US8250350B2 (en) | 2008-08-26 | 2012-08-21 | Texas Digital And Multimedia Systems | Computer system with non-volatile write-protected memory based operating system and secure system architecture |
KR101038167B1 (ko) | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
TW201017421A (en) | 2008-09-24 | 2010-05-01 | Panasonic Corp | Cache memory, memory system and control method therefor |
US8261019B2 (en) | 2009-02-13 | 2012-09-04 | Oracle America, Inc. | Conveying critical data in a multiprocessor system |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8180981B2 (en) | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
US8296496B2 (en) | 2009-09-17 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Main memory with non-volatile memory and DRAM |
US8291175B2 (en) | 2009-10-16 | 2012-10-16 | Oracle America, Inc. | Processor-bus attached flash main-memory module |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
-
2010
- 2010-09-30 US US12/895,574 patent/US8613074B2/en active Active
-
2011
- 2011-08-01 TW TW100127253A patent/TWI441024B/zh active
- 2011-08-10 JP JP2011175264A patent/JP5500458B2/ja active Active
- 2011-09-06 DE DE102011082184A patent/DE102011082184A1/de not_active Ceased
- 2011-09-29 KR KR1020110098780A patent/KR101378639B1/ko active IP Right Grant
- 2011-09-29 CN CN201110303764.4A patent/CN102541765B/zh active Active
-
2013
- 2013-12-16 US US14/107,686 patent/US9317450B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170085638A (ko) * | 2016-01-14 | 2017-07-25 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP5500458B2 (ja) | 2014-05-21 |
TW201229761A (en) | 2012-07-16 |
TWI441024B (zh) | 2014-06-11 |
DE102011082184A1 (de) | 2012-04-05 |
JP2012089108A (ja) | 2012-05-10 |
US20140108823A1 (en) | 2014-04-17 |
US9317450B2 (en) | 2016-04-19 |
US8613074B2 (en) | 2013-12-17 |
KR101378639B1 (ko) | 2014-03-26 |
CN102541765B (zh) | 2015-07-22 |
US20120084573A1 (en) | 2012-04-05 |
CN102541765A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101378639B1 (ko) | 프로세서 메인 메모리의 메모리 콘텐츠를 위한 보안 보호 | |
KR102244645B1 (ko) | 인증된 변수의 관리 | |
US8213618B2 (en) | Protecting content on client platforms | |
US7836299B2 (en) | Virtualization of software configuration registers of the TPM cryptographic processor | |
US10831889B2 (en) | Secure memory implementation for secure execution of virtual machines | |
CN107092495B (zh) | 平台固件铠装技术 | |
EP3047375B1 (en) | Virtual machine manager facilitated selective code integrity enforcement | |
KR102017828B1 (ko) | 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들 | |
WO2017112248A1 (en) | Trusted launch of secure enclaves in virtualized environments | |
TW201349007A (zh) | 提供儲存裝置上防有毒軟體保護之系統與方法 | |
US10360370B2 (en) | Authenticated access to manageability hardware components | |
CN107430555B (zh) | 用于存储器保护的高速缓存和数据组织 | |
EP2619707B1 (en) | Verification and protection of genuine software installationv using hardware super key | |
US20220006637A1 (en) | File system supporting remote attestation-based secrets | |
CN110352411B (zh) | 用于控制对安全计算资源的访问的方法和装置 | |
US11436160B2 (en) | Protection of data in memory of an integrated circuit using a secret token | |
US11921859B2 (en) | System and method for managing device security during startup | |
Francis et al. | TPM: A More Trustworthy Solution to Computer Security | |
WO2017042860A1 (ja) | 実行制御装置及び実行制御方法及び実行制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20170221 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180302 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190305 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20200310 Year of fee payment: 7 |