KR100294829B1 - 플래시 메모리를 보호하는 방법 및 장치 - Google Patents

플래시 메모리를 보호하는 방법 및 장치 Download PDF

Info

Publication number
KR100294829B1
KR100294829B1 KR1019980710731A KR19980710731A KR100294829B1 KR 100294829 B1 KR100294829 B1 KR 100294829B1 KR 1019980710731 A KR1019980710731 A KR 1019980710731A KR 19980710731 A KR19980710731 A KR 19980710731A KR 100294829 B1 KR100294829 B1 KR 100294829B1
Authority
KR
South Korea
Prior art keywords
memory
flash memory
logic gate
register
controller
Prior art date
Application number
KR1019980710731A
Other languages
English (en)
Other versions
KR20000022308A (ko
Inventor
필립 이. 매티슨
Original Assignee
피터 엔. 데트킨
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 피터 엔. 데트킨, 인텔 코오퍼레이션 filed Critical 피터 엔. 데트킨
Publication of KR20000022308A publication Critical patent/KR20000022308A/ko
Application granted granted Critical
Publication of KR100294829B1 publication Critical patent/KR100294829B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written

Landscapes

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

Abstract

프로세서(102), 시스템 메모리, 플래시 메모리, 및 메모리 제어기(104)를 갖는 컴퓨터 시스템에서, 시스템 메모리(106)의 일부로 이미지 및 디지털 서명하는 방법이 설명된다. 즉, 프로세서가 플래시 메모리(108)와 시스템 메모리(106)의 일부로만 액세스하도록 제한하는 메모리 제어기를 구성하는 단계; 디지털 서명을 사용하여 플래시 메모리 갱신 프로그램을 검증하는 단계; 및 플래시 메모리 갱신 프로그램이 인증된 것이라면 플래시 메모리를 갱신하는 단계를 포함한다.

Description

플래시 메모리를 보호하는 방법 및 장치{METHOD AND APPARATUS FOR PROTECTING FLASH MEMORY}
최근에, PC가 처음으로 초기화되거나 리셋될 때, PC는 소정의 위치에서 기본 입력/출력 시스템 프로그램(BIOS)을 수행하기 시작한다. 먼저 BIOS는 전원 공급시 자기진단(POST)을 수행하고, (인터럽트 제어기, 직접 메모리 액세스(DMA), 및 타이머/카운터와 같은) 모든 시스템 하드웨어 유닛은 정상 동작을 위해 검사되고 프로그래밍된다. POST완료후, BIOS는 BIOS 연장 소프트웨어를 위한 또다른 소정의 메모리 영역을 스캔한다.
BIOS 연장 소프트웨어는 하드웨어 확장 플러그인 카드에 포함될 수 있다. 특히, 그래픽 어댑터 카드, 랜(LAN) 어댑터 카드, 및 다른 하드웨어 확장 플러그인 카드는 BIOS 연장 소프트웨어를 갖는다. BIOS 연장 소프트웨어로 인해 확장 하드웨어는 자신의 고유 인터럽트 서비스 프로그램을 BIOS 기능 세트에 매핑할 수 있고,이에따라 기능 세트를 개별 하드웨어에 대해 조절한다.
BIOS 기능 세트는 소프트웨어 인터럽트라는 용어로서 정의되며, BIOS 및 어떠한 BIOS 확장 소프트웨어가 인터럽트 벡터 테이블을 수정해야 함을 의미한다(프로세서가 실제 모드에서 실행된다고 가정할 때 BIOS 소프트웨어는 기록된다). 인터럽트 벡터 테이블에 있는 특별한 BIOS 기능의 어드레스를 찾고 제어를 인터럽트 서비스 프로그램으로 전달하는 소프트웨어 인터럽트를 생성함으로써 프로그램은 BIOS 기능 세트를 사용한다.
(키보드 입력과 같은 다른 인터럽트 또는) BIOS 호출을 인터셉트하기위해 DOS 프로그램에 의한 공통 절차는 인터럽트 벡터 테이블을 수정하고, 연관된 데이터를 조사하고 또는 처리하며, 이후 프로세서의 제어를 따라 최초 목표인 BIOS 프로그램으로 전달한다. 예를 들어, 키보드의 키가 눌러질 때, BIOS가 키보드 인터페이스로부터 관련 데이터를 얻고, 필요한 데이터로 번역하며, 큐에 저장하게하는 하드웨어 인터럽트가 발생한다. 이후, 프로그램은, BIOS가 키보드로부터 그 다음 입력을 제공하도록 요구하는 소프트웨어 인터럽트를 생성할 수 있다.
BIOS는 리셋이후 프로세서의 제어를 얻는 제 1 프로그램이기 때문에, 어떠한 보안 기술에 대해서도 중요하다. 따라서, 기계가 불안전한 동작모드에 있는동안, 특히 BIOS가 플래시 메모리에 저장되어 있는 경우, BIOS는 수정되지 않도록 보호되어야한다. BIOS는 플래시 메모리에 저장되어 BIOS의 재프로그래밍 및 필드 갱신이 가능해진다.
특히, BIOS로의 액세스는 시스템 제어기 칩 또는 칩 세트에 의해 제어된다.시스템 제어기는 인터럽트 제어기, DMA 제어기, 및 메모리 제어기와 같은 모든 표준 PC 아키텍쳐 기능을 통합한다. 이 액세스 제어는 BIOS내에 포함된 프로그램의 수행을 위해 플래시 메모리로 액세스하는 기능뿐만 아니라 플래시 메모리를 수정하는 재프로그래밍 기능을 포함한다.
고의가 아닌 수정을 막기위해 현재 사용되는 흔한 방법은, 플래시 메모리의 재프로그래밍이 가능하도록 특정 순서로 특정값이 2개 이상의 레지스터에 기록되어야 하는 레지스터 인터록 기술을 사용하는 것이다. 현재의 플래시 메모리 보호 기술의 예는 도 1에 도시되며, 레지스터(A2), 제 1 키(4), 제 1 비교기(6), 레지스터(B8), 제 2 키(10), 제 2 비교기(14), 및 AND 게이트(12)가 있다. 레지스터(A2)는 기록 라인(18)의 신호 "기록 인에이블(enable)"을 수신할 때 데이터 경로(16)로부터 데이터를 수신한다. 레지스터(A2)의 값은 비교기(6)에 의해 제 1 키(4)의 값과 비교된다. 비교기(6)는 레지스터(A2)의 값이 제 1 키(4)의 값과 동일하다면 AND 게이트(12)에 기록 인에이블 신호를 생성한다. 유사하게, 비교기(14)는 레지스터(B8)에 포함된 값과 제 2 키(10)의 값을 비교하고 레지스터(B)에 포함된 값이 제 2 키(10)에 포함된 값과 동일하면 신호 라인(20)에 "BIOS 기록 인에이블" 신호를 생성한다.
보통, 도 1의 레지스터 인터록을 포함하는 시스템 리셋후, 레지스터(A2) 및 레지스터(B8)는 제로(0) 값을 포함한다. 또한, 레지스터(A2)에 포함된 값(즉, 0)이 키(4)에 포함된 값(즉, 16진수로 "0x00AA55FF")과 동일하지 않을 때 비교기(6)는 제로 논리값을 AND 게이트(12)로 출력하기에 레지스터(B)는 값을 수신하도록 액세스될 수 없다. 플래시의 소거 및 프로그래밍이 가능하도록, 레지스터(B8)는 "0xFF55AA00" 값을 포함해야 한다. 레지스터(B8)로의 액세스가 가능하기위해, 도 1에 도시된 바와같이, 레지스터(A2)는 "0x00AA55FF" 값을 포함해야 한다.
따라서, 플래시 메모리에 있는 플래시 BIOS 프로그램을 재프로그래밍 하기위해, 우선 레지스터(A2)에는 데이터 경로(16)와 기록 신호 라인(18)을 사용하여 "0x00AA55FF" 값이 로드된다. 레지스터(A2)가 상기와 같이 구성되었을 때, 비교기(6)는, 데이터 경로(16)를 사용하여 기록 신호 라인(18)에서 이후의 기록 신호로 인해 "0xFF55AA00" 값으로 레지스터(B8)를 구성되게 하는 AND 게이트(12)에 "기록 인에이블" 신호를 출력할 것이다. 레지스터(B8)가 상기와 같이 구성되었을 때, 재프로그래밍을 위한 플래시 메모리(도시되지 않음)의 액세스가 가능한 비교기(14)는 "BIOS 기록 인에이블" 신호를 신호 라인(20)에 출력할 것이다.
특정 순서로 2개의 특정값을 2개의 특정 레지스터 위치에 기록하는 기술로 인해 실수로 소거되는 확률이 감소되지만, 액세스 순서는 하드웨어 개발자에 의해 제 3자인 BIOS 프로그램 개발자가 이용할 수 있도록 몇가지 형태로 표시되어야 하기때문에, 이 기술은 플래시 메모리를 재프로그래밍하거나, 고의적으로 또는 유해하게 소거하는 것을 막지못한다.
따라서, 허가받은 개별인만이 플래시 메모리를 수정할 수 있는 보호 기술이 필요하다. 게다가, 이 보호 기술은 보호받을 각 기계에 맞는 하드웨어를 제공할 필요없이 플래시 메모리를 보호할 수 있어야한다.
발명의 개요
허가받지 않은 재프로그래밍 시도로부터 기본 입력/출력 시스템과 같은 프로그램을 포함하는 플래시 메모리를 보호하기위해, 플래시 메모리에만 액세스되는 프로세서가 제한되는 모드(즉, 프로세서가 플래시 메모리로부터의 지시만을 수행하고 메인 시스템 메모리 또는 캐시와 같은 다른 메모리로부터는 수행할 수 없는 모드)를 제공하는 시스템 메모리 제어기가 포함된다. 시스템 메모리 제어기의 제어 레지스터를 설정하거나 소거함으로써 이 모드는 인에이블 또는 디스에이블될 수 있다. 시스템 리셋후 기준 모드는 플래시 메모리의 프로그램에 대한 지시 수행을 제한할 것이다.
또한, 메모리 제어기는 플래시 메모리밖의 메모리 공간으로 액세스가능한 영역(즉, 메인 시스템 메모리의 영역)을 한정하도록 사용될 수 있는 한 세트의 레지스터를 통합해야한다. 이 레지스터는 제한된 액세스 모드에서 제어기가 동작하고 있을 때에만 (즉, 프로세서가 오직 플래시 메모리로부터의 지시를 수행하고 있을 때) 프로세서에 액세스할 수 있다. 레지스터 세트는 1쌍 이상의 레지스터로 구성될 것이며, 각 쌍은 기준 레지스터 및 제한 레지스터로 구성될 것이다. 기준 및 제한 레지스터는, 시스템이 제한 모드에서 동작하고 있을때 프로세서에 액세스할 수 있는 플래시 메모리밖으로 메모리 영역을 한정할 것이다. 리셋후의 기준값은 0일 것이다(즉, 리셋후, 연장된 메모리 액세스는 제한 모드에서 허용되지 않는다).
게다가, 플래시 메모리의 재프로그래밍과 소거가 가능하도록 플래시 메모리 프로그래밍 레지스터가 사용된다. 메모리 제어기가 제한 모드에서 동작하고 있을 때에만 상기 기능이 가능하도록 플래시 메모리 프로그래밍 레지스터는 인터록된다.
플래시 메모리를 재프로그램하기위해, 다음에 따르는 절차가 사용될 것이다.
1. 플래시 메모리를 위한 새로운 플래시 메모리 이미지를 포함하는 플래시 메모리 갱신 프로그램은 메인 시스템 메모리로 로드되고 수행된다. 플래시 메모리 갱신 프로그램은 판매원의 개인키로 서명된 디지털 서명을 통합할 것이며, 디지털 서명은 판매원의 개인키로 암호화된 플래시 메모리 갱신 프로그램의 최초 해시값이다.
2. 플래시 메모리 갱신 프로그램은 플래시 메모리에 포함된 현재의 프로그램에서 특별 기능을 호출할 것이고, 새로운 플래시 메모리 이미지가 설치되도록 요구할 것이다. 이 호출은 메인 시스템 메모리에 위치한 플래시 메모리 갱신 프로그램의 크기와 어드레스를 특정화할 것이다.
3. 현재의 프로그램은 메모리 제어기가 제한 모드에서 동작하도록 설정할 것이며, 플래시 메모리 갱신 프로그램을 포함하는 시스템 메모리의 부분으로 연장 메모리가 액세스되도록 할 것이다.
4. 이후 현재의 프로그램은 소스와 (새로운 플래시 메모리 이미지를 포함하는) 플래시 메모리 갱신 프로그램의 내용을 다음과 같은 단계로 검증할 것이다: (a) 최초 해시값을 얻기위해 현재의 프로그램에 저장된 판매원의 개인키를 사용하여 디지털 서명을 해독하는 단계; (b) 메인 시스템 메모리에 상주하는 플래시 메모리 갱신 프로그램에 대한 해시값을 독립적으로 계산하는 단계; 및 (c) 정합을 찾기위해 디지털 서명을 해독하여 얻어진 최초 해시값과 독립적으로 생성된 해시값을 비교하는 단계로 검증된다.
5. 해시값이 정합되면, 즉 허가받은 생성자(AND)로부터 발생한 메인 메모리에 포함된 플래시 메모리 갱신 프로그램이 수정되지 않았음을 나타내면, 플래시 메모리에 포함된 현재의 프로그램은 플래시 메모리의 재프로그래밍을 가능하게 하고 프로세서의 제어를 플래시 메모리 갱신 프로그램으로 전달할 것이다.
6. 이후 플래시 메모리 갱신 프로그램은 플래시 메모리를 소거할 것이며 새로운 플래시 메모리 이미지를 플래시 메모리로 복사할 것이다. 이후의 필드 갱신이 가능하도록 새로운 프로그램 코드는 현재의 프로그램과 같은 동일한 특별 기능을 포함할 것이며, 판매원의 복사된 개인키도 또한 포함한다. 또한, 또다른 바람직한 실시예에서, 플래시 메모리 갱신 프로그램의 이후 각 버전은 갱신된 또는 상이한 키를 포함할 수 있다. 이 실시예에서, 상이한 버전의 갱신 프로그램은 상이한 키를 갖고, 이전 버전의 어떠한 프로그램도 각 버전을 거치지 않고도 갱신될 수 있도록 다중 서명이 요구될 것이며, 다중 키 각각은 이전에 사용되었다. 게다가, 플래시 메모리가 프로그램 코드의 이전 버전으로 또한 다운그레이드(downgrade)될 수 있도록 각 갱신 프로그램은 이전의 모든 키를 포함할 수 있다.
7. 메인 시스템 메모리로부터 여전히 수행되는 플래시 메모리 갱신 프로그램은 새로운 플래시 메모리 이미지에 포함된 프로그램에 프로세서의 제어를 전달할 것이고, 이제 플래시 메모리에서, 메모리 제어기는 정상 동작으로 복귀하며 리셋이 발생한 것처럼 정상적인 초기화 순서를 시작한다.
제공된 보안 기술은 시스템이 보안 모드에서 초기화되도록 요구하지 않으며 시스템의 정상적인 초기화 절차후 구현될 수 있다. 따라서, 시스템 리셋으로,(BIOS와 같은) 플래시 메모리에 위치한 프로그램은 프로세서의 제어를 얻을 것이고, 시스템 메모리에 대해 제한없는 액세스가 가능하도록 메모리 제어기를 설정하며, 그리고 정상적으로 진행한다. 플래시 메모리에 있는 프로그램이 갱신되어야할때, 상기 표시된 바와같이, 단계(1)의 수행이 행해질 것이고, 플래시 메모리 갱신 프로그램이 수행되기전에 프로세서 또는 시스템이 특별 모드에 위치되는 것이 필요하지 않다.
상기 보호 기술을 사용하여, 판매원의 개인키 소유자만이 현재의 프로그램을 수정하는 소프트웨어를 배포할 수 있다. 플래시 재프로그래밍 프로세스동안 미사용 메모리를 사용하지 못하게 함으로써 암호로 검증되지 못한 어떠한 코드도 시스템의 제어를 얻지 못한다. 게다가, 플래시 메모리 또는 허가받은 메모리 공간에 포함되지 못한 현재 프로그램으로의 연장은 수행되지 못할 것이고 따라서 연장부분에 있는 불량 프로그램이 플래시 메모리를 허가없이 수정하지 못하게된다. 보안 프로세스를 파괴하는 유일한 방법은 하드웨어의 동작을 변경하거나 판매원의 개인키를 타협하여 처리하는 것이다. 최초 코드 자체의 기본적 완전성 및 어떠한 갱신도 경제적 및 관리 수단에 의해 확실히 될 수 있고 따라서 각 기계에 유일한 하드웨어 지원이 요구되지 않는다.
본 발명은 허가받지 않은 수정을 막기위해 부팅 프로세스 시작부터 제어를 받아야하는 BIOS에 의존하지 않는다.
장치의 감도성 레지스터를 보호하는 이 방법은 플래시 프로그래밍을 위해 사용될뿐만 아니라, 하드웨어 레지스터를 실제로 수정하여 심각한 결과가 발생할 수있는 다른 응용에 대해서도 사용된다.
본 발명의 다른 목적, 특성 및 이점은 첨부된 도면 및 다음에 따르는 상세한 설명으로 명백할 것이다.
본 발명은 실수로 또는 승인되지 않은 상태에서 플래시 메모리가 수정되지 않도록 보호하는데 사용하는 분야에 관한 것이다. 보다 상세하게, 본 발명은 기본 입력/출력 시스템(BIOS)과 같은 플래시 메모리에 포함된 코드에 대한 수정이 되지 않도록 보호하는 것이다.
도 1은 BIOS에 대한 수정을 막는 종래 기술의 레지스터 인터록을 도시한다.
도 2는 본 발명의 바람직한 실시예에 맞춰 구성된 시스템을 도시한다.
도 3은 본 발명의 바람직한 동작을 포함하는 흐름도를 도시한다.
본 발명은 플래시 메모리를 허가없이 수정하는 것을 방지하는 방법 및 장치를 제공한다. 예를 들어, 본 발명의 전체적인 이해를 위해 특정 실시예가 제공된다. 그러나, 상세한 설명으로 본 발명이 이러한 세부사항없이 실행될 수 있다는 것을 당 기술에 숙련된 당업자는 이해할 것이다. 게다가, 본 발명이 플래시 메모리의 사용을 통해 설명되지만, 전체는 아니지만 본 발명의 대부분의 양태는 일반적으로 메모리에 적용된다. 또한, 본 발명이 모호해지지 않기위해, 공지된 소자, 장치, 프로세스 단계 등은 상세히 되어있지 않다.
또한, 리베스트, 샤미르, 및 애들먼(RSA) 공용키 암호화 시스템과 같은 암호화 기술에 대해 참조할 수 있으며, 암호화 및 디지털 서명에 사용될 수 있다. 그러나, 본 발명의 사상과 범위를 벗어나지않고 소스 및 내용 메시지의 인증이 가능한 암호화 시스템이 사용될 수 있다. 본질에 있어서, 소스와 안전 소프트웨어의 내용을 검증하고 대량 암호화에서 사용되는 키를 보호하기위해 공용키 암호화는 안전시스템에서 사용된다.
해싱이라는 다른 기술에 대해서도 참조될 수 있다. 이것은 검사합계 동작과 유사하지만, 수학적으로 보다 정밀하며, 2개의 상이한 블록의 데이터에 대해 동일한 검사합계의 가능성을 무시할만큼 감소시킨다. 해싱은 키, 검증, 및 서명에 있는 요소이다. 해시값은 정보 블록에 대해 유일한 수일 것이며, 정보 블록에서 정보의 일부가 수정되면, 이에따라 생성된 해시값은 상이할 것이다. 실제로 해시 알고리즘은 사용되며, 검사합계 또는 해시 동작이 사용되는지 여부는 본 발명과 관련이 없다. 어떠한 안전한 소프트웨어 시스템이 안전한 플랫폼에 동작하는가에 관한 결정은 차후 수행자의 몫으로 남겨진다.
정보 블록에 있는 데이터를 사용하여 해시값을 생성하는 전송자에 의해 정보의 블록에 대한 서명이 생성되고 이후 생성된 해시값을 전송자의 개인키로 암호화한다. 따라서, 암호화된 해시값은 상기 정보 블록에 대한 판매원의 서명이다.
판매원으로부터 발생된 정보 블록의 타당성을 검사하기위해 그리고 정보 블록에 어떠한 변화도 생기지 않았음을 결정하기위해, 수신인은 먼저 정보 블록에 대해 해시값을 생성하고, 이후 최초로 생성된 해시를 얻기위해 판매원의 공용키를 사용하여 서명을 해독한다. 수신인에 의해 생성된 해시값이 정보 블록에 있는 서명으로부터 추출된 해독화된 해시값과 정합하면, 수신된 정보 블록은 판매원으로부터 발생한 것이고 변화가 발생하지 않은 것이라 할 수 있다.
도 2는 본 발명의 바람직한 실시예에 맞춰 구성된 시스템을 도시하며, 프로세서(102), 메모리 제어기(104), 시스템 메모리(106), 플래시 메모리(108), 메모리어드레스/윈도우 검출기(110), 시스템 메모리 액세스 인에이블 레지스터(112), 메모리 윈도우 제어(114), 플래시 메모리 프로그래밍 로직(116), 플래시 메모리 프로그래밍 인에이블 레지스터(118), 제 1 AND 게이트(120), OR 게이트(122), 제 2 AND 게이트(124), 및 NOT 게이트(126)를 포함한다.
도 2에 도시된 바와같이, 데이터 신호 라인(202)과 어드레스 신호 라인(204)을 통해 프로세서(102)는 메모리 제어기(104)에 연결된다. 메모리 데이터 신호 라인(206)과 메모리 어드레스 신호 라인(208)을 사용하여 메모리 제어기(104)는 시스템 메모리 제어기(106)에 연결된다. 메모리 제어기(104)는 또한 메모리 데이터 신호 라인(206)과 메모리 어드레스 신호 라인(208)을 사용하여 플래시 메모리(108)에 연결된다. 메모리 윈도우 제어(114)는 또한 메모리 데이터 신호 라인(206)에 연결된다. 메모리 윈도우 제어(114)는 범위 신호 라인(214)으로 출력을 메모리 어드레스/윈도우 검출기(110)로 또한 제공한다.
메모리 제어기(104) 및 프로세서(102)는 캐시 인에이블 신호 라인(210)과 어드레스 신호 라인(204)을 사용하여 메모리 어드레스/윈도우 검출기(110)에 연결된다. 메모리 어드레스/윈도우 검출기(110)는 제 1 AND게이트(120)에 또한 연결되고, 시스템 메모리 액세스 인에이블 레지스터(112)에 값을 기록하는 것을 제어하기위해 제 1 AND게이트(120)의 출력은 시스템 메모리 액세스 인에이블 레지스터(112)에 연결된다. 시스템 메모리 액세스 인에이블 레지스터(112)의 출력과 메모리 어드레스/윈도우 검출기(110)로부터의 액세스 인에이블 출력은 OR게이트(122)를 통해 제공되며 액세스 인에이블 신호 라인(212)을 사용하여 메모리 제어기(104)에 의해 수신된다. 시스템 메모리 액세스 인에이블 레지스터의 출력은 NOT게이트(126)로 또한 제공된다.
NOT게이트(126)의 출력은 메모리 윈도우 제어기(114) 및 제 2 AND게이트(124)로 각각 제공된다. 제 2 AND게이트(124)의 출력은 플래시 메모리 프로그래밍 인에이블 레지스터(118)로 제공되며, 플래시 메모리 프로그래밍 인에이블 레지스터(118)의 출력은 플래시 메모리 프로그래밍 로직(116)에 또한 연결되어있다. 플래시 메모리 프로그래밍 로직(116)은 플래시 메모리(108)에 연결된다.
메모리 제어기(104)는 프로세서(102)에 의해 사용되는 어드레스 공간에서 어드레스를 다른 시스템 성분이 필요로 하는 어떠한 어드레스로 번역한다. 따라서, 예를 들어, 프로세서(102)가 지시를 수행하거나 플래시 메모리(108) 또는 시스템 메모리(106)로부터 데이터를 액세스하든지간에, 모든 데이터 및 명령은 메모리 제어기(104)를 통과할 것이다. 시스템 메모리(106)에 액세스하는데 사용되는 어드레스 공간에 관한 요구를 번역하지 않음으로써 메모리 제어기(104)는 프로세서(102)가 시스템 메모리(106)에 액세스하는 것을 막는다. 메모리 제어기(104)는 어떠한 것도 캐시하지 않는 모드에서 동작할 수 있다. 바람직한 실시예에서, 메모리 제어기(104)는 액세스 인에이블 신호 라인(212)을 통해 액세스 인에이블 신호를 수신하는동안 시스템 메모리(106)로의 액세스를 가능하게 할 것이다. 게다가, 메모리 제어기(104)는 오프 프로세서 캐시(레벨 2 캐시)로의 액세스가 처리되지 않을 모드를 갖는다. 이 모드는 아래 설명된 바와같이 메모리 어드레스/윈도우 검출기(110)에 의해 제어된다.
시스템 메모리 액세스 인에이블 레지스터(112)는 정상적인 동작동안 액세스 인에이블 신호 라인(212)을 통해 액세스 인에이블 신호를 생성하는데 사용된다. 시스템 메모리 액세스 인에이블 레지스터(112)를 수정함으로써, 시스템 메모리(106)로의 액세스는 인에이블 또는 디스에이블되며, 즉, 액세스 시스템 메모리(106)로의 모든 요구가 시스템 메모리 액세스 인에이블 레지스터(112)에 포함된 값에 의해 제어된다. 그러나, 시스템 메모리 액세스 인에이블 레지스터(112)에 포함된 값과 상관없이, 시스템 메모리(106)로의 액세스는 아래 설명한 바와같이 메모리 어드레스/윈도우 검출기(110)에 의해 가능할 수 있다.
바람직한 실시예에서, 시스템 메모리 액세스 인에이블 레지스터(112)는 단일 비트를 포함하며 플립플롭으로서 구현될 수 있다. 시스템 메모리 액세스 인에이블 레지스터(112)가 논리값("0")을 포함할 때, 액세스 인에이블 신호 라인(212)을 거쳐 메모리 제어기(104)에 논리값("1")을 제공하기위해 메모리 어드레스/윈도우 검출기(110)가 OR게이트(122)에 논리값("1")을 생성하지 않는다면 메모리 제어기(104)에 의해 프로세서(102)는 시스템 메모리(106)에 액세스하지 못할 것이다. 따라서, 바람직한 실시예에서, 액세스 인에이블된 신호는 논리값("1")으로서 표시된다.
바람직한 실시예에서, 하드웨어 리셋과 같이 시작할 때, 시스템 메모리 액세스 인에이블 레지스터(112)는 디스에이블되며, 즉, 시스템 메모리 액세스 인에이블 레지스터(112)는 논리값("0")을 포함하고, 따라서 시스템 메모리(106)로의 액세스가 디스에이블된다. 따라서, 플래시 메모리(108)에 있는 BIOS 프로그램만이 수행되도록 액세스될 수 있다. 시스템 초기화 프로세스에서, 리셋 벡터는 BIOS로 들어가며 수행을 시작하고, 처음 수행하는 것은 시스템 메모리(106)로의 모든 액세스가 인에이블되도록 시스템 메모리 액세스 인에이블 레지스터(112)에 기록을 하는 것이다.
어드레스 신호 라인(204)을 사용하여 프로세서(102)에 의해 액세스되는 어드레스를 감시할 수 있는 메모리 어드레스/윈도우 검출기(110)는, 메모리 제어기(104)가 시스템 메모리(106)에 대해 액세스를 제공하기위해 플래시 메모리(108)내에서 실행되는 프로그램만이 시스템 메모리 액세스 인에이블 레지스터(112)를 수정할 수 있음을 제공한다. 따라서, 메모리 어드레스/윈도우 검출기(110)는 플래시 메모리(108)에 포함된 프로그램으로부터 프로세서(102)가 수행하고 있다는 것을 검출한다면 시스템 메모리 액세스 인에이블 레지스터(112)에 대해 액세스가 가능하기 때문에, 시스템 메모리(106)에서 동작하는 프로그램은 시스템 메모리 액세스 인에이블 레지스터(112)를 수정할 수 없다.
메모리 어드레스/윈도우 검출기(110)는, 선형 어드레스 맵에서, 특히 최초 PC 아키텍쳐의 제 1 메가바이트의 상위 64킬로바이트는 BIOS에 할당되며 연장된 BIOS는 BIOS에 할당된 64킬로바이트 아래의 영역에 다른 프로그램 메모리와 함께 포함된다는 사실에 기초하여 동작한다. 따라서, BIOS 인터럽트 제어기, 다른 프로그램, 및 데이터에 대한 BIOS 연장은 플래시 메모리(108)에 포함된 프로그램으로부터 상이한 메모리 범위내에 있다. 기계가 호환성있는 컴퓨터라면, 이 컴퓨터에서 BIOS가 수행될 어드레스 범위는 공지된다.
게다가, 상기 설명한 바와같이, 메모리 어드레스/윈도우 검출기(110)는 OR게이트(122)에 대해 논리값("1")을 갖는 신호를 생성하여 시스템 메모리 액세스 인에이블 레지스터(112)에 의해 시스템 메모리(106)의 액세스 디스에이블을 무효로 할 수 있다. 메모리 어드레스/윈도우 검출기(110)는, 상기 설명한 바와같이 메모리 어드레스/윈도우 검출기(110)에 포함된 어드레스에 대한 시스템 메모리(106)의 액세스 디스에이블을 무효로 할 것이다.
게다가, 메모리 어드레스/윈도우 검출기(110)는 캐시 인에이블 신호 라인(21)을 통해 프로세서(102)와 메모리 제어기(104) 각각에 대해 캐시 디스에이블 신호를 생성하여 캐시 로컬 프로세서(102)(레벨 1 캐시) 또는 오프 프로세서 캐시(레벨 2 캐시)를 사용할 수 없다.
따라서, 메모리 어드레스/윈도우 검출기(110)는 메모리 제어기(104)와 프로세서(102)에서의 캐시를 가능하게하는 제어 신호를 전송할 수 있고, 메모리 어드레스/윈도우 검출기(110)는 기록 신호가 시스템 메모리 액세스 인에이블 레지스터(112)를 통과하게하는 인에이블 신호를 또한 전송할 수 있다. CPU가 적절한 범위에서 동작하는지를 검출하기위해 메모리 어드레스/윈도우 검출기(110)는 어드레스를 감시할 수 있다.
메모리 윈도우 제어(114)는, 어떤 동작동안 시스템 메모리(106)에 액세스를 제공하기위해 메모리 제어기(104)를 다시 인에이블하는 액세스 인에이블 신호를 전송하는 메모리 어드레스/윈도우 검출기(110)에 의해, 프로세서(102)가 갱신 프로그램에 액세스할 수 있는 타당한 메모리 어드레스 범위를 갖는다. 바람직한 실시예에서, 메모리 윈도우 제어(114)는 기준 레지스터(도시되지 않음) 및 제한 레지스터(도시되지 않음)를 포함한다. 메모리 윈도우 제어(114)는 시스템 메모리 액세스 인에이블 레지스터(112)가 디스에이블 상태로 설정되어 있을 때에만 액세스가능하다.
도 3은 본 발명에 따라 플래시 메모리(108)를 재프로그래밍하는 일련의 동작을 도시한다.
블록(302)에서, (현재의 BIOS를 포함하는) 플래시 메모리(108)를 위한 새로운 플래시 메모리 이미지(즉, 새로운 BIOS 이미지)를 포함하는 플래시 메모리 갱신 프로그램은 시스템 메모리(106)로 로드되어 수행될 것이다. 플래시 메모리 갱신 프로그램은 판매원의 개인키로 서명된 디지털 서명을 통합할 것이다; 근원 해시값이 판매원의 개인키로 암호화된후 디지털 서명은 플래시 메모리 갱신 프로그램의 근원 해시값일 것이다. 이후 동작은 블록(304)으로 계속될 것이다.
블록(304)에서, 플래시 메모리 갱신 프로그램이 수행을 시작한후, 플래시 메모리 갱신 프로그램은 플래시 메모리(108)에 포함된 현재의 프로그램에 있는 특별 기능을 호출할 것이고, 새로운 플래시 메모리 이미지를 설치하도록 요구할 것이다. 이 호출은 시스템 메모리(106)에 위치한 플래시 메모리 갱신 프로그램의 어드레스 및 크기를 특정화할 것이다. 따라서, (새로운 BIOS 이미지를 포함하는) 플래시 메모리 갱신 프로그램이 수행을 시작할 때, 플래시 메모리(108)에 포함된 프로그램(현재의 BIOS)으로 제어를 전달하고, 현재의 BIOS를 갱신하도록 요구한다.
플래시 메모리 갱신 프로그램의 어드레스와 크기는 메모리 윈도우 제어(114)에 포함된 기준 레지스터 및 제한 레지스터로 각각 저장될 것이다. 상기 언급된 바와같이, 플래시 메모리 갱신 프로그램이 하나의 연속된 어드레스 공간에 포함되지 않기위해, 메모리 윈도우 제어(114)는 1쌍 이상의 기준 레지스터 및 제한 레지스터를 포함할 수 있다.
블록(306)에서, 플래시 메모리(108)에 포함된 현재의 프로그램에 따라 프로세서가 동작을 시작한후, 캐시 인에이블 신호 라인(210)을 통해 캐시 디스에이블 신호를 전송함으로써 메모리 어드레스/윈도우 검출기(110)는 우선 프로세서 및 메모리 제어기(104)에 의한 캐싱을 못하게한다. 갱신의 모든 단계동안 캐시는 반드시 디스에이블될 필요가 없음을 주의해야한다. 플래시 메모리 갱신 프로그램( 및 새로운 플래시 메모리 이미지)이 검증될때까지 캐시는 플러시되어야한다(즉, 모든 데이터 및 명령이 소거되어야한다).
프로세서(102)는 플래시 메모리(108)에 있는 프로그램(즉, BIOS)으로부터 명령을 받고, 이 명령은 레지스터 I/O 기록 지시이다. BIOS는 시스템 메모리(106)에 대해 액세스가 안되도록 시스템 메모리 액세스 인에이블 레지스터(112)에 기록하려한다. 기록 지시사 버스 기록 사이클로 전송될 때, 메모리 어드레스/윈도우 검출기(110)는 레지스터 I/O 기록 지시를 가속시키는 이전 지시가 (플래시 메모리의) BIOS로부터 전송된 것인지를 결정하고, 메모리 어드레스/윈도우 검출기(110)로 인해 레지스터 I/O 기록 지시가 BIOS로부터 전송되었을 때 레지스터 I/O 기록 지시는 완료될 수 있다.
시스템 메모리(106)에 포함되고 시스템 메모리 액세스 인에이블 레지스터(112)를 수정하는 레지스터 I/O 기록 지시를 발생한 프로그램을프로세서(106)가 수행할 때, 프로세서(102)로부터 가속된 레지스터 I/O 기록 지시가 시스템 메모리(106)에 포함된 프로그램으로부터 수행한다고 메모리 어드레스/윈도우 검출기(110)가 결정함에 따라 레지스터 I/O 기록 지시에 대한 버스 기록 사이클은 금지될 것이다. 따라서, 플래시 메모리(108)에 포함된 프로그램만이 시스템 메모리 액세스 인에이블 레지스터(112)의 상태를 수정할 수 있다.
또한, 프로세서(102)가 플래시 메모리(108)에 있는 실제 어드레스 공간으로부터 수행하는, 즉, 프로세서(102)가 현재의 BIOS로부터 코드를 수행하는 것을 메모리 어드레스/윈도우 검출기(110)가 감지할 때, 시스템 메모리 액세스 인에이블 레지스터(112)에 대해 논리값("0")으로 신호를 기록함으로써, 시스템 메모리 액세스 인에이블 레지스터(112)가 사용되지 못하도록 메모리 어드레스/윈도우 검출기(110)는 제 1 AND게이트(120)에 대해 논리값("0")을 나타내는 신호를 생성한다. 시스템 메모리 액세스 인에이블 레지스터(112)는 논리값("0")을 포함하기에, 메모리 어드레스/윈도우 검출기(110)가 논리값("1")을 갖는 신호를 출력하지 않는다면, OR게이트(122)의 출력은 논리값("0")일 것이고, 즉, 시스템 메모리(106)에 대한 액세스는 메모리 어드레스/윈도우 검출기(110)가 OR게이트(122)에 대해 논리값("1")을 출력한다면 가능할 것이다.
상기 언급된 바와같이, 메모리 윈도우 제어(114)는 시스템 메모리(106)가 잠궈진 후 시스템 메모리(106)에있는 한 세트의 액세스가능한 어드레스 공간을 나타내는 레지스터를 포함한다. 메모리 어드레스/윈도우 검출기(110)는 메모리 윈도우 제어(114)에 의해 한정된 시스템 메모리(106)의 일부로 액세스를 가능하게 할 것이며, 메모리 윈도우 제어(114)에 포함된 레지스터를 판독함으로써 시스템 메모리 액세스 인에이블 레지스터(112)의 설정으로 인해 발생된 시스템 메모리(106) 전체에 액세스를 막는 것을 무효로 만든다. 상기 세트의 액세스가능한 어드레스 공간으로부터 지시를 가져오는 것을 프로세서(102)가 요구할 때, 시스템 메모리 액세스 인에이블 레지스터(112)가 시스템 메모리(106)를 잠궜을지라도 액세스가능한 어드레스 공간에 대한 액세스가 가능하도록 메모리 어드레스/윈도우 검출기(110)는 액세스 인에이블 오버라이드를 전송한다. 특히, 메모리 어드레스/윈도우 검출기(110)는 메모리 제어기(104)가 시스템 메모리(106)에 대해 액세스를 제공하도록 할 것이다; 즉, 요구된 액세스가 메모리 윈도우 제어(114)내의 레지스터에 의해 한정된 어드레스 공간내에 있다면, 메모리 어드레스/윈도우 검출기(110)는 액세스 인에이블 신호 라인(212)을 통해 메모리 제어기(104)로 논리값("1")을 갖는 신호를 출력할 것이다.
따라서, 플래시 메모리(108)에 있는 현재의 프로그램은 우선 시스템 메모리(106)를 사용못하게 하는 제한 모드에서 동작하도록 메모리 제어기(104)를 배치할 것이고, 따라서 프로세서(102)는 시스템 메모리(106)에 있는 어떠한 것에도 액세스할 수 없다. 이후, 플래시 메모리(108)에 있는 현재의 프로그램은 플래시 메모리 갱신 프로그램을 포함하는 시스템 메모리의 부분으로 연장된 메모리 액세스를 가능하게 할 것이다.
블록(308)에서, 이후 플래시 메모리(108)에 있는 현재의 프로그램은, (a) 근원 해시값을 얻기위해 현재의 프로그램에 저장된 판매원의 공용키를 사용하여 디지털 서명을 해독하고, (b) 메인 시스템 메모리에 상주하는 플래시 메모리 갱신 프로그램에 대한 해시값을 독립적으로 계산하며, (c) 정합을 찾기위해 디지털 서명을 해독하여 얻어진 근원 해시값과 독립적으로 생성된 해시값을 비교함으로써, (새로운 플래시 메모리 이미지를 포함하는) 플래시 메모리 갱신 프로그램의 내용과 소스를 검증할 것이다.
허가받은 생성자(AND)로부터 발생한 메인 메모리에 포함된 플래시 메모리 갱신 프로그램이 수정되지 않았음을 나타내는 해시값이 정합되면, 동작은 블록(310)으로 진행될 것이다. 해시값이 정합되지 않으면, 갱신은 취소될 것이다. 대체 실시예에서, 또다른 단계(도시되지 않음)에서 갱신이 실패하였음을 사용자는 알게 있다.
블록(310)에서, 프로그래밍 인에이블 신호로 플래시 메모리 프로그래밍 인에이블 레지스터(118)를 설정함으로써 플래시 메모리(108)에 포함된 현재의 프로그램은 플래시 메모리(108)의 재프로그래밍을 가능하게 할 것이고, 소정의 입구점에서 시스템 메모리(106)에 포함된 플래시 메모리 갱신 프로그램으로 프로세서(102)의 제어를 전달할 것이다. 상기 설명한 바와같이, 시스템 메모리 액세스 인에이블 레지스터(112)가 인에이블 상태에 있는한, 플래시 메모리(108)의 재프로그래밍이 가능하지 않게 하는 플래시 메모리 프로그래밍 인에이블 레지스터에 대해 시스템 메모리 액세스 인에이블 레지스터(112)는 인터록을 갖는다. 플래시 메모리 프로그래밍 인에이블 레지스터에 대한 액세스를 가능하게 하는 시스템 메모리 액세스 인에이블 레지스터(112)를 디스에이블 상태로 설정하기위해, 프로세서(102)는 최초 허가받은 프로그램(즉, BIOS)을 수행하는 것이 필요하다. 이 시스템에서, 플래시 메모리(108)에 있는 최초 프로그램만이 자체 교체될 수 있다.
블록(312)에서, 플래시 메모리 프로그램 로직(116)을 사용하여, 플래시 메모리 갱신 프로그램은 플래시 메모리(108)를 소거하고 새로운 플래시 메모리 이미지를 플래시 메모리(108)로 복사한다. 새로운 프로그램 코드는 이후의 필드 갱신을 위해 판매원의 공용키의 복사본을 포함하여 현재의 프로그램로서 동일한 특별 기능을 포함할 것이다. 이후 동작은 블록(314)으로 계속된다.
블록(314)에서, 시스템 메모리(106)으로부터 여전히 수행하는 플래시 메모리 갱신 프로그램은 새로운 플래시 메모리 이미지에 포함된 프로그램으로 프로세서(102)의 제어를 전송하고, 이제 플래시 메모리(108)에서, 메모리 제어기(104)를 정상동작하게 만들며 리셋이 발생한 것처럼 정상적인 초기화 순서를 시작한다. 이후 갱신 동작은 종료된다.
정상 동작에서, 플래시 메모리(108)에 있는 프로그램(즉, BIOS)은 하드웨어 리셋후 즉시 제어를 얻는다. 이후 BIOS는 모든 하드웨어를 초기화하고 운영 시스템으로 제어를 전달하기전에 운영 시스템을 로드한다. 불안전한 모드에서 시작할 수 있음으로써 본 발명은 정상적인 상황에 따라 기능을 나타내며, BIOS를 갱신하기위해 안전한 동작 모드로 변환될 수 있고 되돌아가서 초기화를 다시 하며 시작한다. 따라서 보호 기술에는 시스템이 초기에 안전 모드로 되는 것이 필요하지 않다.
플래시 메모리 갱신 프로그램은 전체 플래시 메모리 갱신 프로그램을 시동하지만, 시스템 보안에서 중요한 것은, 프로세서(102)가 플래시 메모리(108)로부터지시를 수행할 때에만 안전 동작모드로 전환하는 것이 가능하다는 것이다; 즉, 프로세서(102)가 플래시 메모리(108)로부터 지시를 수행할때에만 시스템 메모리 액세스 인에이블 레지스터(112)를 수정하는 것이 가능하다.
게다가, 허가받은 플래시 메모리 프로그램이 차지하는 특별한 실제 범위의 메모리로부터 프로세서(102)가 수행할 수 있기 때문에, 어떠한 소프트웨어도 갱신될 수 있도록 제어하는 레지스터에 대해 액세스를 할 수 없기에, 시스템은 불량 인터럽트가 BIOS 연장부분에 가해지는 상황에 대해 저항한다.
바람직한 실시예에서, 키 확인은 소프트웨어에서 엄격히 행해진다; 즉, 서명 및 갱신 프로그램에 대한 해시값의 독립적인 생성의 해독화는 플래시 메모리(108)로부터 코드를 수행하는 프로세서(102)를 사용하여 수행되는 것이 이해될 것이고, 해시값의 해독 및 비교는 응용 주문형 집적회로를 포함하여 다른 방법을 사용하여 수행될 수 있다는 것이 이해될 것이다.
본 발명이 다양한 도를 참조하여 설명되었지만, 도는 단지 예를 든 것이고 본 발명의 범위를 제한하지 않는 것이 이해될 것이다. 본 발명의 사상과 범위를 벗어나지않고 당 기술에 숙련된 당업자에 의해 본 발명에 대해 많은 변경 및 수정이 발생할 수 있다.

Claims (14)

  1. 프로세서, 시스템 메모리, 플래시 메모리, 그리고 메모리 제어기를 갖는 컴퓨터 시스템에 있어서,
    새로운 플래시 메모리 이미지와 디지털 서명을 갖는 플래시 메모리 갱신 프로그램을 상기 시스템 메모리의 부분에 로드하는 단계;
    상기 플래시 메모리와 상기 시스템 메모리의 상기 부분에만 액세스하는 것으로 상기 프로세서를 제한하도록 상기 메모리 제어기를 구성하는 단계;
    상기 디지털 서명을 사용하여 상기 플래시 메모리 갱신 프로그램을 검증하는 단계; 및
    상기 플래시 메모리 갱신 프로그램이 인증된 것일 때에만 상기 플래시 메모리를 갱신하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 로드하는 단계는:
    시작 어드레스와 길이를 가지며 상기 시스템 메모리에 포함된 한 세트의 어드레스로 상기 플래시 메모리 갱신 프로그램을 로드하는 단계;
    기준 레지스터에 상기 시작 어드레스를 로드하는 단계; 및
    제한 레지스터에 상기 길이를 로드하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 상기 구성하는 단계는:
    메모리 액세스 디스에이블 신호를 상기 메모리 제어기에 제공하는 단계; 및
    상기 메모리 제어기에 메모리 액세스 인에이블 신호를 발생하도록 메모리 어드레스 윈도우 검출기를 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서, 상기 구성하는 단계는:
    캐시 액세스 디스에이블 신호를 상기 메모리 제어기와 상기 프로세서에 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 상기 검증하는 단계는:
    최초 해시값을 얻기위해 상기 디지털 서명을 복호화하는 단계;
    상기 플래시 메모리 갱신 프로그램에 대한 독립 해시값을 계산하는 단계; 및
    정합을 결정하기위해 상기 최초 해시값과 상기 독립 해시값을 비교하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서, 상기 갱신하는 단계는:
    상기 플래시 메모리의 프로그래밍이 사용가능하도록 플래시 메모리 프로그래밍 인에이블 레지스터를 설정하는 단계;
    상기 플래시 메모리 갱신 프로그램을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 프로세서, 시스템 메모리, 플래시 메모리, 그리고 메모리 제어기를 갖는 컴퓨터 시스템에 있어서,
    상기 프로세서, 상기 메모리 제어기, 제 1 로직 게이트의 제 1 입력, 그리고 제 2 로직 게이트의 제 1 입력에 연결되고, 상기 제 1 로직 게이트는 상기 메모리 제어기에 연결된 출력을 가지며, 상기 제 2 로직 게이트는 시스템 메모리 액세스 인에이블 신호를 수신하는 제 2 입력을 갖는 메모리 어드레스/윈도우 검출기;
    상기 시스템 메모리, 상기 메모리 제어기, 상기 플래시 메모리, 상기 메모리 어드레스/윈도우 검출기, 제 3 로직 게이트의 출력, 그리고 제 4 로직 게이트의 제 1 입력에 연결되고, 상기 제 4 로직 게이트는 플래시 메모리 프로그래밍 인에이블 신호를 수신하는 제 2 입력을 갖는 메모리 윈도우 제어부;
    상기 제 2 로직 게이트의 출력, 상기 제 1 로직 게이트의 제 2 입력, 그리고 상기 제 3 로직 게이트의 입력에 연결된 시스템 메모리 액세스 인에이블 레지스터;
    상기 제 4 로직 게이트의 출력에 연결된 플래시 메모리 프로그래밍 인에이블 레지스터; 및
    상기 플래시 메모리 프로그래밍 인에이블 레지스터와 상기 플래시 메모리에 연결된 플래시 메모리 프로그래밍 회로를 포함하는 것을 특징으로 하는 장치.
  8. 제 7 항에 있어서, 상기 제 1 로직 게이트는 OR 게이트인 것을 특징으로 하는 장치.
  9. 제 7 항에 있어서, 상기 제 2 로직 게이트는 AND 게이트인 것을 특징으로 하는 장치.
  10. 제 7 항에 있어서, 상기 제 3 로직 게이트는 NOT 게이트인 것을 특징으로 하는 장치.
  11. 제 7 항에 있어서, 상기 제 4 로직 게이트는 AND 게이트인 것을 특징으로 하는 장치.
  12. 제 7 항에 있어서, 상기 시스템 메모리는 캐시 메모리를 포함하는 것을 특징으로 하는 장치.
  13. 제 7 항에 있어서, 상기 메모리 윈도우 제어부는 한 세트의 레지스터를 포함하는 것을 특징으로 하는 장치.
  14. 제 13 항에 있어서, 상기 한 세트의 레지스터는 기준 레지스터와 제한 레지스터를 포함하는 것을 특징으로 하는 장치.
KR1019980710731A 1996-06-28 1997-06-25 플래시 메모리를 보호하는 방법 및 장치 KR100294829B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US8/673,301 1996-06-28
US08/673,301 US5778070A (en) 1996-06-28 1996-06-28 Method and apparatus for protecting flash memory
US08/673,301 1996-06-28
PCT/US1997/011301 WO1998000846A1 (en) 1996-06-28 1997-06-25 Method and apparatus for protecting flash memory

Publications (2)

Publication Number Publication Date
KR20000022308A KR20000022308A (ko) 2000-04-25
KR100294829B1 true KR100294829B1 (ko) 2001-08-07

Family

ID=24702093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980710731A KR100294829B1 (ko) 1996-06-28 1997-06-25 플래시 메모리를 보호하는 방법 및 장치

Country Status (8)

Country Link
US (3) US5778070A (ko)
KR (1) KR100294829B1 (ko)
CN (1) CN1229513B (ko)
AU (1) AU3644897A (ko)
DE (2) DE19781829T1 (ko)
GB (1) GB2330228B (ko)
TW (1) TW347515B (ko)
WO (1) WO1998000846A1 (ko)

Families Citing this family (161)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19525916A1 (de) * 1995-07-04 1997-01-09 Siemens Ag Verfahren zum Aktualisieren des Speicherinhaltes eines elektronischen Speichers eines elektronischen Gerätes
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US6275911B1 (en) * 1996-09-20 2001-08-14 Denso Corporation Memory writing device for an electronic device
GB2317722B (en) 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
DE19716015A1 (de) * 1997-04-17 1998-10-29 Ibm Einbringen von Information auf einer Chipkarte
US6119212A (en) * 1997-04-23 2000-09-12 Advanced Micro Devices, Inc. Root size decrease on a UNIX based computer system
KR100258966B1 (ko) * 1997-05-02 2000-06-15 윤종용 시리얼 통신을 이용한 바이오스 업그레이드 방법
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US7246098B1 (en) * 1997-07-15 2007-07-17 Silverbrook Research Pty Ltd Consumable authentication protocol and system
US6009524A (en) * 1997-08-29 1999-12-28 Compact Computer Corp Method for the secure remote flashing of a BIOS memory
US6611599B2 (en) * 1997-09-29 2003-08-26 Hewlett-Packard Development Company, L.P. Watermarking of digital object
US6094702A (en) * 1997-10-30 2000-07-25 Micron Technology, Inc. Method and apparatus for enabling access to computer system resources
US20020069316A1 (en) * 1998-04-15 2002-06-06 Mattison Phillip E. Method and apparatus for protecting flash memory
US6275931B1 (en) * 1998-06-22 2001-08-14 Elsag International N.V. Method and apparatus for upgrading firmware boot and main codes in a programmable memory
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
AUPP734298A0 (en) * 1998-11-26 1998-12-24 Aristocrat Leisure Industries Pty Ltd Electronic casino gaming with authentication and improved security
JP3219064B2 (ja) * 1998-12-28 2001-10-15 インターナショナル・ビジネス・マシーンズ・コーポレーション デジタルデータ認証システム
FR2788353B1 (fr) * 1999-01-11 2001-02-23 St Microelectronics Sa Microprocesseur avec circuits de protection pour securiser l'acces a ses registres
US6408387B1 (en) 1999-01-22 2002-06-18 Intel Corporation Preventing unauthorized updates to a non-volatile memory
DE19911794B4 (de) * 1999-03-17 2005-10-06 Robert Bosch Gmbh Verfahren und Vorrichtung zur Absicherung bei Veränderung des Speicherinhalts von Steuergeräten
US6643374B1 (en) 1999-03-31 2003-11-04 Intel Corporation Duty cycle corrector for a random number generator
US6795837B1 (en) 1999-03-31 2004-09-21 Intel Corporation Programmable random bit source
US6757827B1 (en) 1999-04-26 2004-06-29 Unisys Corporation Autonomously secured image data
US6981155B1 (en) * 1999-07-14 2005-12-27 Symantec Corporation System and method for computer security
US7117532B1 (en) * 1999-07-14 2006-10-03 Symantec Corporation System and method for generating fictitious content for a computer
WO2001006386A1 (en) * 1999-07-14 2001-01-25 Recourse Technologies, Inc. System and method for dynamically changing a computer port or address
US6715074B1 (en) * 1999-07-27 2004-03-30 Hewlett-Packard Development Company, L.P. Virus resistant and hardware independent method of flashing system bios
US7814337B2 (en) * 2000-01-06 2010-10-12 Super Talent Electronics, Inc. Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID
US6647400B1 (en) 1999-08-30 2003-11-11 Symantec Corporation System and method for analyzing filesystems to detect intrusions
US6826697B1 (en) 1999-08-30 2004-11-30 Symantec Corporation System and method for detecting buffer overflow attacks
US6996843B1 (en) 1999-08-30 2006-02-07 Symantec Corporation System and method for detecting computer intrusions
US7065657B1 (en) 1999-08-30 2006-06-20 Symantec Corporation Extensible intrusion detection system
US7085936B1 (en) 1999-08-30 2006-08-01 Symantec Corporation System and method for using login correlations to detect intrusions
US7203962B1 (en) * 1999-08-30 2007-04-10 Symantec Corporation System and method for using timestamps to detect attacks
DE19950118C2 (de) * 1999-10-18 2002-03-07 Texas Instruments Deutschland Verfahren zum Verhindern eines unbefugten Zugriffs auf einen Speicher
US6671407B1 (en) * 1999-10-19 2003-12-30 Microsoft Corporation System and method for hashing digital images
US6581159B1 (en) * 1999-12-23 2003-06-17 Intel Corporation Secure method of updating bios by using a simply authenticated external module to further validate new firmware code
FI111567B (fi) * 1999-12-27 2003-08-15 Nokia Corp Menetelmä ohjelmamoduulin lataamiseksi
US6757832B1 (en) * 2000-02-15 2004-06-29 Silverbrook Research Pty Ltd Unauthorized modification of values in flash memory
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
US7089595B1 (en) 2000-03-31 2006-08-08 Intel Corporation Device and method for disabling an override hardware pin assertion
US6687721B1 (en) 2000-03-31 2004-02-03 Intel Corporation Random number generator with entropy accumulation
US6792438B1 (en) * 2000-03-31 2004-09-14 Intel Corporation Secure hardware random number generator
US7073064B1 (en) * 2000-03-31 2006-07-04 Hewlett-Packard Development Company, L.P. Method and apparatus to provide enhanced computer protection
EP1281124A4 (en) * 2000-04-11 2004-07-14 Richard M Mathis METHOD AND DEVICE FOR PROTECTING AND VERIFYING COMPUTER STORAGE
TW461997B (en) * 2000-05-24 2001-11-01 Asustek Comp Inc Write protection method of programmable chipset software
JP2002014871A (ja) * 2000-06-29 2002-01-18 Fujitsu Ltd コンテンツチェック方法、コンテンツ更新方法、および処理装置
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7032114B1 (en) 2000-08-30 2006-04-18 Symantec Corporation System and method for using signatures to detect computer intrusions
US7484081B1 (en) * 2000-10-10 2009-01-27 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US6728876B1 (en) * 2000-12-27 2004-04-27 Cisco Technology, Inc. Method and apparatus to use non-volatile read/write memory for bootstrap code and processes by relocating write instructions
US7350083B2 (en) * 2000-12-29 2008-03-25 Intel Corporation Integrated circuit chip having firmware and hardware security primitive device(s)
DE10113531A1 (de) * 2001-03-20 2002-10-17 Infineon Technologies Ag Datenträger
US6996721B2 (en) * 2001-03-27 2006-02-07 Micron Technology, Inc. Flash device security method utilizing a check register
US8458689B2 (en) * 2001-03-30 2013-06-04 Roderick A. Barman Method and apparatus for reprogramming engine controllers
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7096497B2 (en) 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US20020147918A1 (en) * 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US6975743B2 (en) * 2001-04-24 2005-12-13 Microsoft Corporation Robust and stealthy video watermarking into regions of successive frames
US6996273B2 (en) * 2001-04-24 2006-02-07 Microsoft Corporation Robust recognizer of perceptually similar content
US7020775B2 (en) * 2001-04-24 2006-03-28 Microsoft Corporation Derivation and quantization of robust non-local characteristics for blind watermarking
US6973574B2 (en) * 2001-04-24 2005-12-06 Microsoft Corp. Recognizer of audio-content in digital signals
US7356188B2 (en) * 2001-04-24 2008-04-08 Microsoft Corporation Recognizer of text-based work
EP1390697B1 (en) * 2001-05-30 2011-12-28 ENDRESS + HAUSER WETZER GmbH + Co. KG Tamper-proof paperless recorder
DE10137505B4 (de) * 2001-07-16 2005-06-23 Francotyp-Postalia Ag & Co. Kg Anordnung und Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls
US7484105B2 (en) * 2001-08-16 2009-01-27 Lenovo (Singapore) Ptd. Ltd. Flash update using a trusted platform module
JP4121333B2 (ja) 2001-08-27 2008-07-23 株式会社リコー 画像形成装置,プログラム更新方法および記録媒体
US7406674B1 (en) * 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US7272832B2 (en) * 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US20030126459A1 (en) * 2001-12-28 2003-07-03 Chin-Jun Kao Method of protecting basic input/output system
US20030135744A1 (en) * 2002-01-11 2003-07-17 International Business Machines Corporation Method and system for programming a non-volatile device in a data processing system
US7017004B1 (en) * 2002-03-29 2006-03-21 Microsoft Corporation System and method for updating contents of a flash ROM
US7398554B1 (en) * 2002-04-02 2008-07-08 Winbond Electronics Corporation Secure lock mechanism based on a lock word
US20050251305A1 (en) * 2002-06-03 2005-11-10 Junkei Sato Electronic control apparatus
US20040003265A1 (en) * 2002-06-26 2004-01-01 International Business Machines Corporation Secure method for BIOS flash data update
US7006703B2 (en) * 2002-06-28 2006-02-28 Microsoft Corporation Content recognizer via probabilistic mirror distribution
US7095873B2 (en) * 2002-06-28 2006-08-22 Microsoft Corporation Watermarking via quantization of statistics of overlapping regions
US20040015709A1 (en) * 2002-07-18 2004-01-22 Bei-Chuan Chen Software delivery device and method for providing software copy protection
JP2004054834A (ja) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
EP1387238B1 (en) * 2002-07-30 2011-06-15 Fujitsu Limited Method and apparatus for reproducing information using a security module
US6948041B2 (en) * 2002-10-24 2005-09-20 Micron Technology, Inc. Permanent memory block protection in a flash memory device
KR100941104B1 (ko) * 2002-11-18 2010-02-10 에이알엠 리미티드 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체
FR2848702B1 (fr) * 2002-12-12 2005-03-18 A S K Procede securise de modification de donnees enregistrees dans une carte a memoire
US7409721B2 (en) * 2003-01-21 2008-08-05 Symantac Corporation Network risk analysis
US7284136B2 (en) * 2003-01-23 2007-10-16 Intel Corporation Methods and apparatus for implementing a secure resume
EP1447733A1 (en) * 2003-02-17 2004-08-18 Hewlett-Packard Development Company, L.P. Data processing system and method
JP2004287541A (ja) * 2003-03-19 2004-10-14 Matsushita Electric Ind Co Ltd 不揮発性メモリのアクセス制御システム
US7644288B2 (en) * 2003-03-19 2010-01-05 Ricoh Company, Ltd. Image forming apparauts that checks authenticity of an update program
US20090267747A1 (en) * 2003-03-31 2009-10-29 Rivest Ronald L Security and Data Collision Systems and Related Techniques for Use With Radio Frequency Identification Systems
TWI266240B (en) * 2003-05-20 2006-11-11 Via Tech Inc A method preventing to re-write MAC address of DMI's peripheral devices
US6842371B2 (en) * 2003-06-03 2005-01-11 Micron Technology, Inc. Permanent master block lock in a memory device
US20040268143A1 (en) * 2003-06-30 2004-12-30 Poisner David I. Trusted input for mobile platform transactions
US7240201B2 (en) * 2003-08-01 2007-07-03 Hewlett-Packard Development Company, L.P. Method and apparatus to provide secure communication between systems
US7177888B2 (en) 2003-08-01 2007-02-13 Intel Corporation Programmable random bit source
US7228432B2 (en) * 2003-09-11 2007-06-05 Angelo Michael F Method and apparatus for providing security for a computer system
US8332652B2 (en) * 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
US7225318B2 (en) * 2003-10-08 2007-05-29 Intel Corporation Dynamic prefetch in continuous burst read operation
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
US7831832B2 (en) * 2004-01-06 2010-11-09 Microsoft Corporation Digital goods representation based upon matrix invariances
US20050165690A1 (en) * 2004-01-23 2005-07-28 Microsoft Corporation Watermarking via quantization of rational statistics of regions
US7382880B2 (en) * 2004-01-26 2008-06-03 Hewlett-Packard Development Company, L.P. Method and apparatus for initializing multiple security modules
US7930503B2 (en) * 2004-01-26 2011-04-19 Hewlett-Packard Development Company, L.P. Method and apparatus for operating multiple security modules
WO2005088473A1 (en) * 2004-03-17 2005-09-22 Abb Research Ltd Apparatus and method for data consistency validation
US7770014B2 (en) * 2004-04-30 2010-08-03 Microsoft Corporation Randomized signal transforms and their applications
JP2006067488A (ja) * 2004-08-30 2006-03-09 Mitsubishi Electric Corp 携帯通信端末
US8612772B1 (en) 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US8566616B1 (en) 2004-09-10 2013-10-22 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
US20060080540A1 (en) * 2004-10-08 2006-04-13 Robert Arnon Removable/detachable operating system
US7130209B2 (en) 2004-10-15 2006-10-31 Atmel Corporation Flexible OTP sector protection architecture for flash memories
US9489496B2 (en) 2004-11-12 2016-11-08 Apple Inc. Secure software updates
US7809949B2 (en) * 2005-07-26 2010-10-05 Apple Inc. Configuration of a computing device in a secure manner
US7711989B2 (en) * 2005-04-01 2010-05-04 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
WO2007004219A2 (en) * 2005-07-04 2007-01-11 Discretix Technologies Ltd. System, device and method of verifying that a code is executed by a processor
ATE499658T1 (de) * 2005-08-03 2011-03-15 St Ericsson Sa Sicheres endgerät, routine und verfahren zum schützen eines geheimen schlüssels
US8135958B2 (en) * 2005-11-22 2012-03-13 International Business Machines Corporation Method, system, and apparatus for dynamically validating a data encryption operation
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7500095B2 (en) * 2006-03-15 2009-03-03 Dell Products L.P. Chipset-independent method for locally and remotely updating and configuring system BIOS
US8019994B2 (en) * 2006-04-13 2011-09-13 Hewlett-Packard Development Company, L.P. Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
US7613891B2 (en) * 2006-05-04 2009-11-03 Intel Corporation Methods and apparatus for providing a read access control system associated with a flash device
US7603587B2 (en) * 2006-05-26 2009-10-13 Intel Corporation Updating a memory block without status logging
US8863230B1 (en) * 2006-06-09 2014-10-14 Xilinx, Inc. Methods of authenticating a programmable integrated circuit in combination with a non-volatile memory device
US7987358B1 (en) * 2006-06-09 2011-07-26 Xilinx, Inc. Methods of authenticating a user design in a programmable integrated circuit
US8001385B2 (en) * 2006-06-21 2011-08-16 Intel Corporation Method and apparatus for flash updates with secure flash
US8190919B2 (en) * 2006-11-07 2012-05-29 Spansion Llc Multiple stakeholder secure memory partitioning and access control
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US20100077230A1 (en) * 2006-12-15 2010-03-25 Michael Chambers Protecting a programmable memory against unauthorized modification
US7802069B2 (en) 2007-03-07 2010-09-21 Harris Corporation Method and apparatus for protecting flash memory
US9053323B2 (en) * 2007-04-13 2015-06-09 Hewlett-Packard Development Company, L.P. Trusted component update system and method
US9354890B1 (en) 2007-10-23 2016-05-31 Marvell International Ltd. Call stack structure for enabling execution of code outside of a subroutine and between call stack frames
US8095775B1 (en) * 2007-11-21 2012-01-10 Marvell International Ltd. Instruction pointers in very long instruction words
US9442758B1 (en) 2008-01-21 2016-09-13 Marvell International Ltd. Dynamic processor core switching
US8132253B2 (en) * 2008-04-21 2012-03-06 Dell Products L.P. Memory security override protection for manufacturability of information handling systems
US9032151B2 (en) * 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
CN101839928B (zh) * 2009-03-19 2013-04-24 北京普源精电科技有限公司 数字示波器和数据存取方法
US20110099423A1 (en) * 2009-10-27 2011-04-28 Chih-Ang Chen Unified Boot Code with Signature
US8621169B2 (en) * 2009-12-10 2013-12-31 Blackberry Limited Method for address space layout randomization in execute-in-place code
US9582443B1 (en) 2010-02-12 2017-02-28 Marvell International Ltd. Serial control channel processor for executing time-based instructions
US8884920B1 (en) 2011-05-25 2014-11-11 Marvell International Ltd. Programmatic sensing of capacitive sensors
US9098694B1 (en) 2011-07-06 2015-08-04 Marvell International Ltd. Clone-resistant logic
US9069553B2 (en) 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores
US8842840B2 (en) 2011-11-03 2014-09-23 Arvind Gidwani Demand based encryption and key generation and distribution systems and methods
WO2014175861A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9275697B2 (en) 2013-10-03 2016-03-01 Western Digital Technologies, Inc. Utilizing destructive features as RAM code for a storage device
KR102429906B1 (ko) 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
US10185633B2 (en) * 2015-12-15 2019-01-22 Intel Corporation Processor state integrity protection using hash verification
US10768819B2 (en) * 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
FR3057086B1 (fr) * 2016-10-04 2018-11-23 Stmicroelectronics (Rousset) Sas Procede de gestion d'une mise a jour d'au moins un microcode au sein d'une unite de traitement, par exemple un microcontroleur, et unite de traitement correspondante
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
JP7263101B2 (ja) * 2019-04-26 2023-04-24 キヤノン株式会社 情報処理装置、データ検証方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US6009495A (en) * 1989-12-29 1999-12-28 Packard Bell Nec Protected address range in an electrically erasable programmable read only memory
FR2675602B1 (fr) * 1991-04-16 1995-04-14 Hewlett Packard Co Procede et dispositif de protection d'un systeme informatique.
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US5465299A (en) * 1992-12-03 1995-11-07 Hitachi, Ltd. Electronic document processing system and method of forming digital signature
US5592641A (en) * 1993-06-30 1997-01-07 Intel Corporation Method and device for selectively locking write access to blocks in a memory array using write protect inputs and block enabled status
JP3310060B2 (ja) * 1993-09-13 2002-07-29 株式会社東芝 記憶装置および同装置の制御プログラム書換え方法
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
GB2290890B (en) * 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
US5568641A (en) * 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
US5727061A (en) * 1995-02-13 1998-03-10 Eta Technologies Corporation Personal access management systems
US5675645A (en) * 1995-04-18 1997-10-07 Ricoh Company, Ltd. Method and apparatus for securing executable programs against copying
US5721877A (en) * 1995-05-31 1998-02-24 Ast Research, Inc. Method and apparatus for limiting access to nonvolatile memory device
US5748940A (en) * 1995-08-17 1998-05-05 Compaq Computer Corporation Secure updating of non-volatile memory
US5757915A (en) * 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
US5781635A (en) * 1995-12-29 1998-07-14 Intel Corporation Method and apparatus for improved digital message transaction model
AU1690597A (en) * 1996-01-11 1997-08-01 Mitre Corporation, The System for controlling access and distribution of digital property
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory

Also Published As

Publication number Publication date
GB2330228B (en) 2001-02-28
WO1998000846A1 (en) 1998-01-08
KR20000022308A (ko) 2000-04-25
US20020065978A1 (en) 2002-05-30
TW347515B (en) 1998-12-11
US6363463B1 (en) 2002-03-26
GB9828576D0 (en) 1999-02-17
US6615355B2 (en) 2003-09-02
CN1229513B (zh) 2010-06-02
GB2330228A (en) 1999-04-14
US5778070A (en) 1998-07-07
DE19781829T1 (de) 1999-06-17
DE19781829C2 (de) 2001-02-22
CN1229513A (zh) 1999-09-22
AU3644897A (en) 1998-01-21

Similar Documents

Publication Publication Date Title
KR100294829B1 (ko) 플래시 메모리를 보호하는 방법 및 장치
US11550962B2 (en) Secure processor and a program for a secure processor
US8332653B2 (en) Secure processing environment
JP4288209B2 (ja) システム・オン・チップのためのセキュリティ・アーキテクチャ
KR100309535B1 (ko) 보안저장영역에서애플리케이션데이터의보호방법및장치
US7313705B2 (en) Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US8719595B2 (en) Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method
US20020069316A1 (en) Method and apparatus for protecting flash memory
US20110289294A1 (en) Information processing apparatus
WO2009107330A1 (ja) 情報処理装置及びその制御方法
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
KR20090095843A (ko) 보안 기능을 갖는 프로세서 장치
CN112384922A (zh) 加密密钥分布
US10169251B1 (en) Limted execution of software on a processor
GB2353120A (en) Protecting flash memory
CN118733505A (zh) 用于与外围电路接口连接的电路和方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee