KR100970040B1 - 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기 - Google Patents

보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기 Download PDF

Info

Publication number
KR100970040B1
KR100970040B1 KR1020087005034A KR20087005034A KR100970040B1 KR 100970040 B1 KR100970040 B1 KR 100970040B1 KR 1020087005034 A KR1020087005034 A KR 1020087005034A KR 20087005034 A KR20087005034 A KR 20087005034A KR 100970040 B1 KR100970040 B1 KR 100970040B1
Authority
KR
South Korea
Prior art keywords
routine
software application
security key
memory
security
Prior art date
Application number
KR1020087005034A
Other languages
English (en)
Other versions
KR20080031998A (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 KR20080031998A publication Critical patent/KR20080031998A/ko
Application granted granted Critical
Publication of KR100970040B1 publication Critical patent/KR100970040B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Burglar Alarm Systems (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)

Abstract

무-보안 소프트웨어 애플리케이션에 의해 판독되는 것으로부터 보안키를 보호하는 방법은, 보안키를 실행 전용 메모리에 저장된 실행 전용 루틴으로서 기록하는 단계(94)를 포함한다. 상기 루틴은, 루틴이 보안 소프트웨어 애플리케이션에 의해 호출되는 경우 보안 및 무-보안 소프트웨어 애플리케이션에 의해 판독가능한 메모리에 보안키를 로딩하는 로드 인스트럭션과, 실행 전용 루틴을 호출하는 소프트웨어 애플리케이션이 무-보안 소프트웨어 애플리케이션인 경우 판독가능 메모리 내에 상기 보안키 대신 더미 데이터만을 남겨두도록 하는 제어 인스트럭션을 갖는다.

Description

보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기{A SECURE TERMINAL, A ROUTINE AND A METHOD OF PROTECTING A SECRET KEY}
본 발명은 보안키를 보호하는 보안 단말기, 루틴 및 방법에 관한 것이다.
전형적으로, 보안 단말기는 소프트웨어 애플리케이션 및 소프트웨어 애플리케이션에 의해 호출되는 루틴을 수행하는 프로세서와, 적어도 하나의 보안키를 포함한다.
프로세서는 보안 소프트웨어 애플리케이션뿐만 아니라 무-보안 소프트웨어 애플리케이션을 수행할 수 있다.
무-보안 소프트웨어 애플리케이션은 용이하게 업데이트 및 변경될 수 있는 소프트웨어 애플리케이션이다. 전형적으로, 무-보안 소프트웨어 애플리케이션은 예를 들어 플래시 메모리와 같이 재기록 가능 메모리에 기록된다.
그와 달리, 보안 소프트웨어 애플리케이션은 용이하게 변경될 수 없는 애플리케이션이다. 예를 들어, 보안 소프트웨어 애플리케이션은 보안 단말기의 제조 과정 동안 판독-전용 메모리에 기록된다. 판독 전용 메모리는 각 보안 소프트웨어 애플리케이션이 용이하게 변경될 수 없도록 보호된다.
무-보안 소프트웨어 애플리케이션은 보안 단말기의 취약 부분인데, 그 이유는 이들 애플케이션은 해커에 의해 변경될 수 있기 때문이다. 그러나, 보안 단말기의 설계에 있어서, 판독 전용 메모리에 임의의 소프트웨어 애플리케이션을 기록하는 것은 적절하지 못하다. 따라서, 해커가 무-보안 소프트웨어 애플리케이션을 변경함으로써 변경된 무-보안 소프트웨어 애플리케이션이 보안키를 판독하고 그것을 해커에게 노출시킬 수 있는 위협이 항상 존재한다.
따라서, 본 발명의 목적은 무-보안 애플리케이션 애플리케이션에 의해 판독되지 않도록 보안키를 보호하는 방법을 제공하는 것이다.
본 발명은 무-보안 애플리케이션 애플리케이션에 의해 판독되지 않도록 보안키를 보호하는 방법을 제공하는데, 이 방법은 실행 전용 메모리에 저장된 실행 전용 루틴에 따라 보안키를 기록하는 단계를 포함하되, 루틴은, 루틴이 보안 소프트웨어 애플리케이션에 의해 호출되는 경우 보안 및 무-보안 소프트웨어 애플리케이션에 의해 판독가능한 메모리에 보안키를 로딩하는 로드 인스트럭션과, 실행 전용 루틴을 호출하는 소프트웨어 애플리케이션이 무-보안 소프트웨어 애플리케이션인 경우 판독가능 메모리 내에 보안키 대신 더미 데이터만을 남겨두도록 하는 제어 인스트럭션을 갖는다.
보안키는 실행 전용 메모리(executable-only memory) 내에 저장된 루틴에 따라 기록된다. 이러한 이유는, 이 루틴이 "실행 전용 루틴(executable-only routine)"으로 지칭되기 때문이다. 이 실행 전용 루틴은 판독될 수 없고 단지 프로세서에 의해 실행만 가능하다. 따라서, 보안키를 획득하기 위한 유일한 수단은 실행 전용 루틴을 실행하는 것이다. 그러나, 실행되는 경우, 루틴 그 자체는 보안키에 대한 보안 정보가 무-보안 소프트웨어 애플리케이션에 누설되지 않도록 보장한다. 따라서, 키 그 자체는 무-보안 소프트웨어 애플리케이션에 의해 판독될 수 없다.
상기 방법에 대한 실시예는 다음과 같은 몇 개의 특징을 포함할 수 있다. 즉,
- 로드 인스트럭션은 상수를 로딩하는 인스트럭션이며, 각 상수의 값은 루틴 코드에 내장되어 있고 보안키의 적어도 하나의 비트를 나타낸다.
- 상기 방법은 로드 인스트럭션이 실행되기 전에 임의의 IRQ(Interrupt Request)를 디스에이블링하고 판독가능 메모리 내에 로딩된 보안키가 삭제된 이후에만 IRQ를 다시 인에이블링하는 단계를 포함한다.
- 실행 전용 루틴은 보안 소프트웨어 애플리케이션에 규칙적으로(systematically) 복귀하고 임의의 보안 소프트웨어 애플리케이션은 IRQ 재-인에이블링 단계를 실행하기 전에 로딩된 보안키를 삭제한다.
- 실행 전용 루틴이 복귀하는 보안 소프트웨어 애플리케이션은 실행 전용 전용 루틴에 의해 호출되지 않은 경우 즉각 로딩된 보안키를 삭제한다.
상기 방법의 실시예는 다음과 같은 장점을 갖는다. 즉,
- 보안키를 로딩가능 상수로서 실행 전용 루틴에 내장함으로써 상기 실시예의 보안을 강화한다.
- IRQ를 디스에이블링함으로써 임의의 무-보안 소프트웨어 애플리케이션이 판독가능 메모리에 로딩된 보안키를 판독할 수 없게 하는데, 그 이유는 IRQ가 디스에이블되어 있는 한 무-보안 소프트웨어 애플리케이션은 실행될 수 없기 때문이다.
- 실행 전용 루틴의 실행 끝단에서 보안 소프트웨어 애플리케이션으로 규칙적으로 복귀함으로써 무-보안 소프트웨어 애플리케이션이 보안 소프트웨어 애플리케이션에 대응하는 복귀 어드레스를 사용하여 실행 전용 루틴을 호출할 수 있는 공격을 방지한다.
- 실행 전용 루틴이 보안 소프트웨어 애플리케이션에 의해 호출되지 않은 경우 판독가능 메모리로부터 보안키를 삭제함으로써 다른 무-보안 소프트웨어 애플리케이션이 실행 전용 루틴을 실행할 수 없게 되어 단말기의 보안을 강화하게 된다.
본 발명은 또한 보안키가 무-보안 소프트웨어 애플리케이션에 의해 판독되지 않도록 하는 상술한 방법에 사용되는 실행 전용 루틴에 관한 것이다. 상기 실행 전용 루틴은, 이 루틴이 보안 소프트웨어 애플리케이션에 의해 호출되는 경우 보안 및 무-보안 소프트웨어 애플리케이션에 의해 판독가능한 메모리에 보안키를 로딩하는 로드 인스트럭션과, 실행 전용 루틴을 호출하는 소프트웨어 애플리케이션이 무-보안 소프트웨어 애플리케이션인 경우 판독가능 메모리 내에 보안키 대신 더미 데이터만을 남겨두도록 하는 제어 인스트럭션을 포함한다.
상기 실행 전용 루틴의 실시예는 다음과 같은 몇몇 특징을 포함할 수 있다.
- 로드 인스트럭션은 상수를 로딩하는 인스트럭션이며, 각 상수의 값은 루틴 코드에 내장되어 있고 보안키의 적어도 하나의 비트를 나타낸다.
- 실행 전용 루틴은 실행 전용 루틴의 실행 개시 시에 임의의 IRQ를 디스에이블하는 인스트럭션을 갖는다.
- 실행 전용 루틴은 실행 전용 루틴의 실행 종료 시에 보안 소프트웨어 애플리케이션에 규칙적으로 복귀하는 인스트럭션을 갖는다.
본 발명은 또한 보안 단말기에 관한 것으로, 이 보안 단말기는 소프트웨어 애플리케이션 및 이 소프트웨어 애플리케이션에 의해 호출되는 루틴을 실행하는 프로세서와, 적어도 하나의 보안키를 포함하되, 상기 보안 단말기는 또한, 루틴이 보안 소프트웨어 애플리케이션에 의해 호출되는 경우 보안 및 무-보안 소프트웨어 애플리케이션에 의해 판독가능한 메모리에 보안키를 로딩하는 로드 인스트럭션과, 실행 전용 루틴을 호출하는 소프트웨어 애플리케이션이 무-보안 소프트웨어 애플리케이션인 경우 판독가능 메모리 내에 보안키 대신 더미 데이터만을 남겨두도록 하는 제어 인스트럭션을 구비한 실행 전용 루틴을 기록하는 실행 전용 메모리를 포함한다.
보안 단말기의 실시예는 다음과 같은 몇몇 특징을 포함할 수 있다.
- 로드 인스트럭션은 상수를 로딩하는 인스트럭션이며, 각 상수의 값은 루틴 코드에 내장되어 있고 보안키의 적어도 하나의 비트를 나타낸다.
- 단말기는 보안 소프트웨어 애플리케이션의 적어도 하나의 인스트럭션 코드를 포함하는 판독 전용 메모리(ROM)를 포함하되, 상기 인스트럭션 코드는 판독가능 메모리에 로딩된 보안키를 삭제하는 인스트럭션을 갖는다.
- 상기 단말기는 단말기의 리셋 이후 한번만 판독가능하며 보안키를 기록하는 1회 판독 메모리와, 1회 판독 메모리 내에 저장된 보안키로부터 실행 전용 루틴의 인스트럭션 코드를 생성하며, 이 실행 전용 루틴의 인스트럭션 코드를 실행 전용 메모리에 로딩하는 보안 초기화 루틴을 갖는 판독 전용 메모리를 갖는다.
- 실행 전용 메모리는 인스트럭션 판독 동작만을 허가하고 데이터 판독 동작을 금지하는 트랜잭션 디코더를 갖는다.
- 상기 단말기는 이동 전화기이다.
본 발명의 이들 및 다른 측면은 후속하는 상세한 설명, 도면 및 청구항으로부터 분명해질 것이다.
도 1은 보안 단말기의 개략도,
도 2는 도 1의 보안 단말기에서 구현되는 트랜잭션 디코더의 개략도,
도 3은 도 1의 단말기 내에서 무-보안 소프트웨어 애플리케이션에 의해 판독되는 보안키를 보호하는 방법의 흐름도.
도 1은 외부 메모리(6)에 접속된 전자 프로세서(4)를 갖는 보안 단말기(2)를 나타낸다. 예를 들어, 단말기(2)는 이동 전화기이고 프로세서(4)는 베이스밴드 프 로세서이다. 또는 보다 일반적으로는 임의의 SoC(System On Chip)이다.
메모리(6)는 재기록될 수 있으며 무-보안 소프트웨어 애플리케이션의 코드를 기록한다. 각 코드는 프로세서(4)에 의해 실행가능한 인스트럭션으로 구성된다. 예를 들어, 메모리(6)는 플래시 메모리이다.
프로세서(4)는 ROM(판독 전용 메모리)(8)에 저장된 보안 소프트웨어 애플리케이션뿐만 아니라 메모리(6)에 저장된 무-보안 소프트웨어 애플리케이션을 수행할 수 있다.
간략성을 위해, 본 발명을 이해하는데 필요한 프로세서(4)의 소자만이 도 1에 도시되어 있다.
프로세서(4)는,
- 중앙 처리 장치(10)와,
- ROM(8)과,
- 적어도 하나의 보안키를 영구적으로 기록하는 판독 전용 1회 메모리(12)와,
- 장치(10)에 의해 실행되는 임의의 소프트웨어 애플리케이션이 판독 및 사용할 수 있는 데이터를 저장하는 RAM(랜덤 액세스 메모리) 또는 내부 데이터 레지스터(18)와,
- 실행 전용 루틴(21)을 저장하는 레지스터 뱅크(20)와,
- 레지 스터 뱅크(20)에 대한 액세스를 제한하는 트랜잭션 디코더(22)를 포함한다.
예를 들어, 상기 모든 소자(8 내지 22)는 적어도 하나의 다이 상에서 구축되고 동일한 집적 회로 패키지 내에 내장된다. 이것은 보안의 관점에서 볼 때 중요한 요소인데, 그 이유는 이것은 프로세서(4)의 내부 소자에 대한 물리적 액세스가 평범한 해커에게는 불가능하다는 것을 의미하기 때문이다.
장치(10)는 루틴을 호출하는 소프트웨어 애플리케이션의 복귀 어드레스를 기록하는데 사용되는 특정 레지스터(14)를 갖는다.
예를 들어, 장치(10)는 ARM라는 회사의 ARM 프로세서(웹사이트: www.arm.com를 참고) 또는 보다 일반적으로 임의의 CPU(중앙 처리 장치)이다.
예시적인 목적만을 위해, 메모리(12)는 단지 하나의 보안키를 기록한다. 메모리(12) 내의 보안키는 프로세서(4)의 제조 공정 동안 실리콘 내에서의 레이저 커팅을 통해 저장된다. 저장된 보안키는 프로세서(4)의 각 리셋 이후 단지 1회 판독될 수 있다. 이를 위해, 장치(10)와 메모리(12) 간의 링크(23)는 장치(10) 및 메모리(12)가 항상 동시에 리셋되도록 보장해야 한다.
내부 데이터 레지스터(18)는 장치(10)에 의한 소프트웨어 애플리케이션의 실행 동안 사용되어 이 실행에 필요한 데이터를 저장한다.
레지스터 뱅크(20)는 보안키를 레지스터(18)에 로딩하는 실행 전용 루틴(21)을 기록하도록 설계된다. 루틴(21)은,
- 보안키를 레지스터(18) 내에 로딩하는 로드 인스트럭션과,
- 루틴(21)을 호출하는 소프트웨어 애플리케이션이 무-보안 소프트웨어 애플리케이션인 경우 레지스터(18) 내에 보안키 대신 더미 데이터만을 남겨두도록 하는 제어 인스트럭션과,
- 루틴(21)의 개시 시 임의의 IRQ(Interrupt Request)를 디스에이블링하는 인스트럭션과,
- 루틴(21)의 실행 종료 시 보안 소프트웨어 애플리케이션으로 규칙적으로 복귀하도록 하는 인스트럭션을 포함한다.
로드 인스트럭션은 레지스터(18) 내에 상수를 로딩하는 인스트럭션이며, 각 상수는 보안키의 일 비트이다. 상수의 값은 루틴(21)의 코드에 내장되며, 보다 구체적으로 루틴(21)의 인스트럭션의 op-코드 내에 내장된다.
레지스터 뱅크(20)와 트랜잭션 디코더(22)의 결합물은 실행 전용 메모리(24)를 형성하며, 이는 도 2와 관련하여 보다 자세히 기술될 것이다.
ROM(8)은 프로세서(4)의 리셋 이후 즉각적으로 개시되는 소프트웨어 애플리케이션의 코드를 기록하는 부트 ROM이다. 각 코드는 장치(10)에 의해 실행가능한 인스트럭션으로 구성된다.
ROM(8)은 보안 커넬(kernel)(26)의 일부인 임의의 보안 소프트웨어 애플리케이션의 코드를 기록한다.
예를 들어, 보안 커넬(26)은 메모리(12)를 판독하고, 실행 전용 루틴(21)의 코드를 생성하며 이 코드를 레지스터 뱅크(20) 내에 로딩하는 초기화 루틴(28)을 갖는다.
커넬(26)은 무-보안 소프트웨어 애플리케이션의 인증(authenticity)을 체크하도록 설계된 보안 소프트웨어 애플리케이션을 갖는다. 예를 들어, 커넬(26)은 무-보안 소프트웨어 애플리케이션이 공지된 인증서에 의해 서명된 것인지 또는 그러한 공지된 인증서에 의해 인증된 것인지를 체크할 수 있는 보안 소프트웨어 애플리케이션(30)을 갖는다. 애플리케이션(30)은 그러한 작업을 수행하기 위한 보안키를 필요로 하며 따라서 보안키를 획득하는 루틴(21)을 호출하도록 설계된다.
루틴(21)을 호출하는 임의의 보안 소프트웨어 애플리케이션은,
- 내부 레지스터(18)에 저장된 보안키가 한번 사용되면 그 보안키를 삭제할 수 있고,
- 상기 보안키가 레지스터(18)로부터 삭제된 후 IRQ(Interrupt Request)를 인에이블링할 수 있다.
삭제함으로써, 보안키 상의 이용가능한 임의의 정보를 누설하지 않는 더미 데이터로 보안키를 대체할 수 있다. 이것은 상기 키를 0과 같은 상수로 덮어쓰기함으로써 이루어질 수 있다.
ROM(8), 메모리(12,24) 및 레지스터(18)는 버스(34) 및 어드레스 버스(36)를 통해 장치(10)에 접속된다. 버스(34)는 장치(10)에 의해 처리되는 데이터 및 장치(10)에 의해 수행되는 인스트럭션 모두를 전송하는데 사용된다. 오직 하나의 공통 버스(34)만이 존재하여 데이터 및 인스트럭션을 교대로 전송하기 때문에, 버스(34)는 버스를 통과하는 항목이 데이터로서 또는 그와 달리 인스트럭션으로서 처리될 것인지를 나타내는 설정가능한 데이트/인스트럭션 태그를 갖는다.
메모리(12)는 버스(34)를 통해 장치(10)에 접속되어 메모리(12)는 장치(10)의 리셋 이후 1회 판독될 수 있다.
도 2는 판독 전용 메모리(24)를 도시한다. 도 1에서 이미 기술한 메모리(24)의 소자는 동일한 참조 번호를 갖는다.
레지스터 뱅크(20)는 레지스터 뱅크(20)에 기록될 데이터를 수신하는 하나의 포트(40)와 레지스터 뱅크(20) 내에 판독되는 데이터를 출력하는 하나의 포트(42)를 구비한다. 포트(40)는 기록 데이터 버스(44)에 접속되어 기록될 데이터를 수신한다. 포트(42)는 판독 데이터 버스(46)에 접속되어 판독될 데이터를 출력한다. 예를 들어, 버스(44,46)는 32 비트형 버스이다. 데이터를 레지스터 뱅크(20)에 기록하는 것은 뱅크(20)의 입력(47)이 로직 1을 수신하는 경우에만 가능하다.
트랜잭션 디코더(22)는 버스(46)에 접속된 하나의 입력 포트(52)와 버스(34)에 접속되어 데이터/인스트럭션 태그를 수신하는 하나의 입력 포트(54)를 구비한 로직 AND 유닛(50)을 갖는다. 데이터/인스트럭션 태그는 데이터가 레지스터 뱅크(20)로부터 판독되는 경우 로직 0이고 인스트럭션이 레지스터 뱅크(20)로부터 판독되는 경우 로직 1이다.
유닛(50)은 버스(46) 상에 제공된 데이터와 데이터/인스트럭션 태그의 값 간에 로직 AND 연산을 수행하고, 그 결과를 데이터 버스(34) 상에 출력한다.
메모리(24)는 또한 1회-기록 메모리이다. 보다 구체적으로, 메모리(24)는 프로세서(4)의 각 리셋 이후에 한번만 기록될 수 있다. 이를 위해, 디코더(22)는 AND 게이트(60)를 구비하며, 이 AND 게이트(60)의 입력은 버스(34)의 기록 신호(62) 및 인버터(64)의 출력에 접속된다. 인버터(64)의 입력(66)은 잠금 래치(70)의 출력(68)에 접속된다.
게이트(60)는 기록 신호(62)와 인버터(64)의 출력 간에 로직 AND 연산을 수행하고 그 결과를 입력(47)에 전송한다.
잠금 래치(70)의 입력(72)은 OR 게이트(74)의 출력에 접속된다. 게이트(74)의 제 1 입력(76)은 출력(68)에 접속된다. 게이트(74)의 제 2 입력(78)은 기록 신호(62)에 접속된다. 게이트(74)는 그의 입력(76,78) 상에 제공된 신호 간에 로직 OR 연산을 수행하고 그 결과를 잠금 래치(70)의 입력(72)에 출력한다.
잠금 래치(70)는 프로세서(4)가 리셋된 이후 처음으로 활성화된 경우 출력(68)을 통해 로직 0을 출력하도록 설계된다. 예를 들어, 래치(70)는 링크(23)와 같은 링크를 사용하여 장치(10)에 접속되어, 장치(10) 및 래치(70)가 항상 동시에 리셋되도록 보장한다. 후속하여, 잠금 래치(70)는 그의 입력(72)에서 수신된 값과 동일한 값을 출력(68)을 통해 출력한다.
단말기(2)의 동작은 도 3을 참조하여 기술될 것이다.
초기에, 단계(90)에서, 프로세서(4)는 리셋된다. 단계(90)에서, 래치(70)는 리셋되고 그의 초기 상태로 복귀한다. 메모리(12)는 또한 리셋되고 하나의 판독 동작을 인에이블링한다.
리셋 이후, 장치(10)는 ROM(8)에 저장된 소프트웨어 애플리케이션을 즉각 개시한다.
이어서, 단계(92)에서, 초기화 루틴(28)은 메모리(12) 내에 저장된 보안키의 값을 판독하고 루틴(21)의 대응 코드를 생성한다. 메모리(12)는 리셋된 후 처음으로 루틴(28)에 의해 판독되었기 때문에, 후속하여 메모리(12)는 프로세서(4)가 리 셋되지 않는 한 더 이상 판독될 수 없다.
단계(94)에서, 루틴(28)은 루틴(21)의 코드를 레지스터 뱅크(20) 내에 기록 및 저장한다.
개시 시점에서, 기록 신호(62)는 1과 동일하고 래치(70)의 출력(68)은 0과 동일하다.
동작(96) 동안, 게이트(60)는 기록 신호 값 및 인버터(64)의 출력을 비교한다. 이들 모두가 1인 경우, 동작(98) 동안, 로직 1이 입력(47)에 설정되고 버스(44)를 통해 전송된 루틴(21)의 코드는 레지스터 뱅크(20)에 기록 및 저장된다.
이와 달리, 동작(100) 동안, 인버터(64)의 출력이 0과 동일한 경우, 로직 0이 입력(47)에 설정되고 어떠한 데이터도 레지스터 뱅크(20)에 기록될 수 없다.
단계(94)와 동시에 단계(102)에서, 레지스터 뱅크(20)로의 데이터의 제 1 기록이 이미 수행되었다는 사실이 저장됨으로써 프로세서(4)가 다시 한번 리셋되지 않는 한 레지스터 뱅크(20)에 어떠한 새로운 데이터도 기록되지 못하도록 한다.
보다 구체적으로, 동작(104)에서, 기록 신호(62)의 값은 게이트(74)에 의해 출력(68)의 값과 비교된다. 입력(76,78)이 모두 0과 동일한 경우, 게이트(74)는 로직 0을 입력(72)에 출력하고, 그렇지 않으면 게이트(74)는 로직 1을 출력한다.
따라서, 데이터가 레지스터 뱅크(20)에 기록된 것이 처음이라면, 출력(68)은 0과 동일하며, 그에 따라 인버터(64)의 출력은 1과 동일하고 루틴(21)의 코드는 레지스터 뱅크(20)에 기록 및 저장될 수 있다.
데이터가 레지스터 뱅크(20)에 기록되는 것이 두 번째 또는 임의의 후속 번 째라면, 출력(68)은 로직 1과 동일하고 그에 따라 인버터(64)의 출력은 0과 동일하고 데이터는 레지스터 뱅크(20)에 기록될 수 없다. 따라서, 레지스터 뱅크(20)에 일단 저장되면, 루틴(21)의 코드는 프로세서(4)가 리셋되지 않는 한 변경될 수 없다.
그 결과, 메모리(24)는 1회 기록 메모리이다.
단계(94)의 제 1 실행의 종료시에, 루틴(21)의 코드는 레지스터 뱅크(20)에 기록된다.
그런 다음, 전형적으로, 프로세서(4)는 무-보안 소프트웨어 애플리케이션을 수행한다. 암호화 동작이 필요한 경우, 소프트웨어 애플리케이션(30)이 호출된다. 예를 들어, DRM(Digital Right Management) 라이센스를 해독하기 위해 암호화 동작이 필요하다.
이후, 단계(110)에서, 보안 소프트웨어 애플리케이션(30)은 루틴(21)을 호출한다. 이 때, 동작(112) 동안, 장치(10)는 호출 애플리케이션의 복귀 어드레스를 레지스터(14)에 기록한다.
단계(114)에서, 장치(10)는 레지스터 뱅크(20) 내의 루틴(21)의 코드를 판독하여 그 코드를 실행한다. 따라서, 데이터/인스트럭션 태그는 1로 설정된다. 먼저, 동작(116)에서, 장치(10)는 버스(34)를 통해 레지스터 뱅크 판독 인스트럭션을 전송한다.
그에 응답하여, 단계(118)에서, 레지스터 뱅크(20)는 대응하는 인스트럭션을 버스(46) 상에 출력한다.
동작(120)에서, 유닛(50)은 포트(52)에서 수신된 인스트럭션을 포트(54)에서 수신된 데이터/인스트럭션 태그의 값과 비교한다.
동작(122)에서, 이 태그의 값이 1과 동일한 경우, 유닛(50)은 판독 인스트럭션을 버스(34) 상에 출력한다. 태그 값은 1과 동일하기 때문에, 출력 인스트럭션은 장치(10)용 인스트럭션으로서만 해석될 수 있으며 따라서 장치(10)에 의해 직접 수행된다. 소프트웨어 애플리케이션은 데이터/인스트럭션 태그가 1과 동일한 경우엔 버스(34) 상의 데이터를 액세스할 수 없다.
레지스터 뱅크(20) 내에 데이터로서 저장된 인스트럭션을 판독하려는 시도가 있었다면, 데이터/인스트럭션 태그는 0과 동일할 수 있고 유닛(50)은 동작(124) 동안 대응하는 인스트럭션 대신 0만을 출력할 수 있다.
따라서, 무-보안 소프트웨어 애플리케이션이 메모리(24)에 저장된 코드를 판독하려 시도하는 경우, 더미 데이터, 즉 0만을 획득한다.
그 결과, 메모리(24)는 실행 전용 메모리이며 루틴(21)은 실행 전용 루틴인데, 그 이유는 그의 코드는 장치(10)에 의해서만 실행될 수 있고 프로세서(4)에 의해 실행되는 소프트웨어 애플리케이션에 의해서는 판독될 수 없다.
데이터/인스트럭션 태그가 1과 동일하기 때문에, 버스(34) 상에 제공된 인스트럭션은 단계(130)에서 장치(10)에 의해서 실행된다.
단계(130)의 개시 시, 동작(132)에서, 장치(10)는 임의의 IRQ(Interrupt Request)를 디스에이블링함으로써 후속하는 인스트럭션의 실행은 임의의 소프트웨어 애플리케이션에 의해 인트럽트될 수 없다. 따라서, 어떠한 다른 소프트웨어 애 플리케이션도 레지스터(18)에 저장된 임의의 내부 데이터를 판독할 수 없다.
이후, 동작(134,136)에서, 장치(10)는 루틴(21)의 제어 인스트럭션을 실행한다.
동작(134)에서, 장치(10)는 루틴(21)이 보안 소프트웨어 애플리케이션에 의해 호출되었는지를 체크한다. 예를 들어, 동작(134) 동안, 장치(10)는 레지스터(14)에 기록된 복귀 어드레스를 ROM(8)의 메모리 어드레스에 비교한다.
레지스터(14)에 기록된 복귀 어드레스가 ROM(8)의 어드레스의 범위 내에 있지 않은 경우, 동작(136)에서, 장치(10)는 연속적인 0과 같은 더미 데이터를 레지스터(18)에 로딩한다. 동작(136)의 종료시, 프로세서(4)는 레지스터(14)에 기록된 복귀 어드레스로 복귀한다. 그 결과, 루틴(21)을 호출한 무-보안 소프트웨어 애플리케이션은 보안키에 대한 어떠한 정보도 얻지 못한다.
복귀 어드레스가 보안 소프트웨어 애플리케이션의 어드레스인 경우, 단계(138)에서, 장치(10)는 루틴(21)의 로딩 인스트럭션을 수행한다. 따라서, 레지스터(4)는 보안키의 값으로 로딩된다. 이것이 수행되면, 동작(140) 동안, 장치(10)는 루틴(21)의 인스트럭션을 수행하여 보안 소프트웨어 애플리케이션으로 규칙적으로 복귀한다. 예를 들어, 장치(10)는 보안 소프트웨어 애플리케이션(30)의 어드레스로 무조건적으로 점프한다. 이러한 점프 인스트럭션은 복귀 어드레스가 스택(14)의 상태에 놓여질 때마다 수행된다. 예를 들어, 동작(140) 동안, 장치(10)는 애플리케이션(30)을 호출한다. 보다 구체적으로, 장치(10)는 애플리케이션(30)에 대한 브랜치 및 링크 인스트럭션(branch and link instruction)을 수행한 다. 이 브랜치 및 링크 인스트럭션은 또한 호출된 애플리케이션의 어드레스, 즉 루틴(21)의 어드레스를 특정 레지스터(14) 내에 기록한다.
이후, 단계(150) 동안, 애플리케이션(30)은 레지스터(18)에 기록된 보안키 값을 사용한다.
예를 들어, 단계(150)의 개시 시, 단계(152)에서, 애플리케이션(30)은 루틴(21)에 의해 호출되었는지를 체크한다. 예를 들어, 장치(10)는 레지스터(16)에 기록된 어드레스가 루틴(21)의 어드레스에 대응하는지를 체크한다.
그러한 조건이 만족되지 않는 경우, 단계(154)에서, 장치(10)는 레지스터(18)에 기록된 보안키를 삭제한다. 예를 들어, 장치(10)는 보안키를 연속적인 0으로 교체한다. 이어서, 애플리케이션(30)은 마치 루틴(21)을 호출한 것처럼 진행한다.
단계(156)에서, 애플리케이션(30)은 레지스터(18)에 기록된 보안키를 사용하여 예를 들어 무-보안 소프트웨어 애플리케이션을 체크 또는 인증한다. 이를 위해, 보안키를 사용한 암호화 동작이 수행된다.
애플리케이션(30)이 더 이상 보안키를 필요로 하지 않는 경우, 단계(158)에서, 장치(10)는 레지스터(18)로부터 보안키를 삭제한다.
이어서, 단계(160)에서, 장치(10)는 IRQ를 다시 인에이블링한다.
방법은 단계(110)에서 애플리케이션(30)을 호출한 주요 소프트웨어 애플리케이션으로 복귀한다.
다수의 부가적인 실시예가 가능하다. 예를 들어, 루틴(21)이 무-보안 소프 트웨어 애플리케이션으로부터 호출된 경우 보안키를 삭제하기보다는, 단말기(2)가 더 이상 사용되지 않도록 차단할 수도 있다.
IRQ는 또한 루틴(21)을 호출하기 전에 애플리케이션(30)에 의해 디스에이블링될 수 있다.
따라서, 루틴(21)은 단말기(2)의 각 리셋 이후 리프레시될 필요가 있는 비-영구적 메모리에 기록된다. 그러나, 레지스터 뱅크(20)를 ROM과 같은 영구 메모리로 교체할 수도 있다. 이 실시예에서, 단말기(2)의 각 리셋 이후 루틴(21)의 코드를 더 이상 재저장할 필요가 없다.
하나의 보안키 대신, 상술한 단말기 및 방법은 다수의 보안키가 무-보안 소프트웨어 애플리케이션에 의해 판독되지 않게 구성될 수 있다.
상술한 개시물은 무-보안 소프트웨어 애플리케이션을 저장하는 메모리가 프로세서(4)의 내부 메모리인 경우에도 적용될 수 있다.
본 명세서에서 기술한 것은 이동 전화기에 국한되지 않고 임의의 보안 전자 단말기에 적용될 수 있다.

Claims (15)

  1. 무-보안 소프트웨어 애플리케이션(non-secure software application)에 의해 판독되지 않도록 보안키를 보호하는 방법에 있어서,
    실행 전용 메모리(executable-only memory)에 저장된 실행 전용 루틴(executable-only routine)에 따라 상기 보안키를 기록하는 단계(94)를 포함하되,
    상기 실행 전용 루틴은,
    상기 루틴이 보안 소프트웨어 애플리케이션에 의해 호출되는 경우 상기 보안 및 상기 무-보안 소프트웨어 애플리케이션에 의해 판독가능한 메모리에 상기 보안키를 로딩하는 로드 인스트럭션과,
    상기 실행 전용 루틴을 호출하는 소프트웨어 애플리케이션이 상기 무-보안 소프트웨어 애플리케이션인 경우 상기 판독가능 메모리 내에 상기 보안키 대신 더미 데이터(dummy data)만을 남겨두도록 하는 제어 인스트럭션을 갖는
    보안키 보호 방법.
  2. 제 1 항에 있어서,
    상기 로드 인스트럭션은 상수를 로딩하는 인스트럭션이고, 각 상수의 값은 상기 실행 전용 루틴의 코드에 내장되며 상기 보안키의 적어도 하나의 비트를 나타내는
    보안키 보호 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 방법은 상기 로드 인스트럭션이 실행되기 전에 임의의 IRQ(Interrupt Request)를 디스에이블링하고, 상기 판독가능 메모리에 로딩된 상기 보안키가 삭제된 후 상기 IRQ를 다시 인에이블링하는 단계(132,160)를 포함하는
    보안키 보호 방법.
  4. 제 3 항에 있어서,
    상기 실행 전용 루틴은 보안 소프트웨어 애플리케이션으로 규칙적으로(systematically) 복귀하고, 임의의 보안 소프트웨어 애플리케이션은 상기 IRQ를 다시 인에이블링하는 단계 이전에 로딩된 상기 보안키를 (단계 158에서) 삭제하는
    보안키 보호 방법.
  5. 제 4 항에 있어서,
    상기 실행 전용 루틴이 복귀하는 상기 보안 소프트웨어 애플리케이션은 상기 보안 소프트웨어 애플리케이션이 상기 실행 전용 루틴에 의해 호출되지 않은 경우 로딩된 상기 보안키를 (단계 154에서) 즉각 삭제하는
    보안키 보호 방법.
  6. 청구항 제 1 항 또는 제 2 항에 따른 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체에 있어서,
    상기 실행 전용 루틴은,
    상기 루틴이 보안 소프트웨어 애플리케이션에 의해 호출되는 경우 상기 보안 및 무-보안 소프트웨어 애플리케이션에 의해 판독가능한 메모리에 상기 보안키를 로딩하는 로드 인스트럭션과,
    상기 실행 전용 루틴을 호출하는 소프트웨어 애플리케이션이 상기 무-보안 소프트웨어 애플리케이션인 경우 상기 판독가능 메모리 내에 상기 보안키 대신 더미 데이터만을 남겨두도록 하는 제어 인스트럭션을 갖는
    컴퓨터 판독가능 저장 매체.
  7. 제 6 항에 있어서,
    상기 로드 인스트럭션은 상수를 로딩하는 인스트럭션이고, 각 상수의 값은 상기 실행 전용 루틴의 코드에 내장되며 상기 보안키의 적어도 하나의 비트를 나타내는
    컴퓨터 판독가능 저장 매체.
  8. 제 6 항에 있어서,
    상기 실행 전용 루틴은 상기 실행 전용 루틴의 실행 개시 시 임의의 IRQ를 디스에이블링하는 인스트럭션을 갖는
    컴퓨터 판독가능 저장 매체.
  9. 제 8 항에 있어서,
    상기 실행 전용 루틴은 상기 실행 전용 루틴의 실행의 종료 시 보안 소프트웨어 애플리케이션으로 규칙적으로 복귀하는 인스트럭션을 갖는
    컴퓨터 판독가능 저장 매체.
  10. 보안 단말기에 있어서,
    소프트웨어 애플리케이션 및 상기 소프트웨어 애플리케이션에 의해 호출되는 루틴을 실행하는 프로세서와,
    적어도 하나의 보안키와,
    실행 전용 루틴을 기록하는 실행 전용 메모리(24)를 포함하되,
    상기 실행 전용 루틴은,
    상기 루틴이 상기 보안 소프트웨어 애플리케이션에 의해 호출되는 경우 보안 및 무-보안 소프트웨어 애플리케이션에 의해 판독가능한 메모리에 보안키를 로딩하는 로드 인스트럭션과,
    상기 실행 전용 루틴을 호출하는 상기 소프트웨어 애플리케이션이 상기 무-보안 소프트웨어 애플리케이션인 경우 상기 판독가능 메모리 내에 상기 보안키 대신 더미 데이터만을 남겨두도록 하는 제어 인스트럭션을 갖는
    보안 단말기.
  11. 제 10 항에 있어서,
    상기 로드 인스트럭션은 상수를 로딩하는 인스트럭션이고, 각 상수의 값은 상기 실행 전용 루틴의 코드에 내장되며 상기 보안키의 적어도 하나의 비트를 나타내는
    보안 단말기.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 단말기는 보안 소프트웨어 애플리케이션의 적어도 하나의 인스트럭션 코드를 포함하는 판독 전용 메모리(ROM)(8)를 포함하되, 상기 인스트럭션 코드는 로딩된 상기 보안키를 상기 판독가능 메모리로부터 삭제하는 인스트럭션을 갖는
    보안 단말기.
  13. 제 11 항에 있어서,
    상기 단말기의 리셋 이후 1회만 판독가능하며, 상기 보안키를 기록하는 1회 판독 메모리(a read once memory)(12)와,
    상기 1회 판독 메모리에 기록된 상기 보안키로부터 상기 실행 전용 루틴의 상기 코드를 생성하고, 상기 실행 전용 루틴의 상기 코드를 상기 실행 전용 메모리에 로딩하는 보안 초기화 루틴(28)을 갖는 판독 전용 메모리(8)를 포함하는
    보안 단말기.
  14. 제 13 항에 있어서,
    상기 실행 전용 메모리는 인스트럭션 판독 동작만을 허가하고 데이터 판독 동작을 금지하는 트랜잭션 디코더(22)를 갖는
    보안 단말기.
  15. 제 10 항 또는 제 11 항에 있어서,
    상기 단말기는 이동 전화기인
    보안 단말기.
KR1020087005034A 2005-08-03 2006-08-01 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기 KR100970040B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05300649.0 2005-08-03
EP05300649 2005-08-03

Publications (2)

Publication Number Publication Date
KR20080031998A KR20080031998A (ko) 2008-04-11
KR100970040B1 true KR100970040B1 (ko) 2010-07-16

Family

ID=37708991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087005034A KR100970040B1 (ko) 2005-08-03 2006-08-01 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기

Country Status (8)

Country Link
US (1) US8689338B2 (ko)
EP (1) EP1913511B1 (ko)
JP (1) JP5114617B2 (ko)
KR (1) KR100970040B1 (ko)
CN (1) CN101238473B (ko)
AT (1) ATE499658T1 (ko)
DE (1) DE602006020288D1 (ko)
WO (1) WO2007015204A2 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8422674B2 (en) * 2007-05-29 2013-04-16 International Business Machines Corporation Application-specific secret generation
US8332635B2 (en) * 2007-05-29 2012-12-11 International Business Machines Corporation Updateable secure kernel extensions
US7886162B2 (en) * 2007-05-29 2011-02-08 International Business Machines Corporation Cryptographic secure program overlays
US8433927B2 (en) * 2007-05-29 2013-04-30 International Business Machines Corporation Cryptographically-enabled privileged mode execution
US8332636B2 (en) * 2007-10-02 2012-12-11 International Business Machines Corporation Secure policy differentiation by secure kernel design
US8826006B2 (en) * 2008-10-31 2014-09-02 Motorola Solutions, Inc. Method and device for enabling a trust relationship using an unexpired public key infrastructure (PKI) certificate
US8812959B2 (en) * 2009-06-30 2014-08-19 International Business Machines Corporation Method and system for delivering digital content
CN102056339B (zh) * 2009-11-02 2015-06-03 中兴通讯股份有限公司 移动终端及其系统数据防克隆方法
US9047263B2 (en) * 2013-01-24 2015-06-02 Dell Products L.P. System and method for secure SMI memory services
EP2930663B1 (en) * 2014-04-11 2020-07-01 Nxp B.V. Electronic circuit chip for an RFID tag with a read-only-once functionality
KR20160039922A (ko) * 2014-10-02 2016-04-12 삼성전자주식회사 영상처리장치 및 그 제어방법
US9753863B2 (en) 2014-12-27 2017-09-05 Intel Corporation Memory protection with non-readable pages
WO2016109558A1 (en) * 2014-12-29 2016-07-07 Rubicon Labs, Inc. System and method for secure code entry point control
GB201511385D0 (en) * 2015-06-29 2015-08-12 Nagravision Sa Secure programming of secret data
US10193872B2 (en) * 2015-08-12 2019-01-29 Cyphyx, Llc System and methods for dynamically and randomly encrypting and decrypting data
US10235303B2 (en) * 2015-09-10 2019-03-19 Qualcomm Incorporated Secure entry and exit for software modules protected by controlled encryption key management
US20180004946A1 (en) * 2016-07-01 2018-01-04 Intel Corporation Regulating control transfers for execute-only code execution
KR102432451B1 (ko) * 2018-01-10 2022-08-12 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
US10785028B2 (en) * 2018-06-29 2020-09-22 Intel Corporation Protection of keys and sensitive data from attack within microprocessor architecture
US11216366B2 (en) 2020-02-13 2022-01-04 Intel Corporation Security check systems and methods for memory allocations
US11972126B2 (en) 2021-03-26 2024-04-30 Intel Corporation Data relocation for inline metadata
US11954045B2 (en) 2021-09-24 2024-04-09 Intel Corporation Object and cacheline granularity cryptographic memory integrity

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003027815A2 (de) * 2001-09-21 2003-04-03 Infineon Technologies Ag Programmgesteuerte einheit
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US6317742B1 (en) * 1997-01-09 2001-11-13 Sun Microsystems, Inc. Method and apparatus for controlling software access to system resources
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
FR2792141B1 (fr) * 1999-04-09 2001-06-15 Bull Cp8 Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique
JP2002014871A (ja) * 2000-06-29 2002-01-18 Fujitsu Ltd コンテンツチェック方法、コンテンツ更新方法、および処理装置
JP2002082909A (ja) * 2000-09-07 2002-03-22 Fujitsu Ltd 情報管理装置および情報管理システム
JP3666400B2 (ja) * 2001-03-07 2005-06-29 オムロン株式会社 監視装置および方法、記録媒体、並びにセキュリティシステム
JP2002351563A (ja) * 2001-05-30 2002-12-06 Canon Inc 情報処理装置、情報処理方法およびプログラム
JP3773431B2 (ja) * 2001-09-20 2006-05-10 松下電器産業株式会社 鍵実装システムおよびこれを実現するためのlsi、並びに鍵実装方法
JP4145118B2 (ja) 2001-11-26 2008-09-03 松下電器産業株式会社 アプリケーション認証システム
JP3904921B2 (ja) * 2001-12-27 2007-04-11 株式会社 エヌティーアイ 情報処理装置及びアクセス制御方法
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US20030154355A1 (en) * 2002-01-24 2003-08-14 Xtec, Incorporated Methods and apparatus for providing a memory challenge and response
JP3863447B2 (ja) * 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
US7162644B1 (en) * 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
JP3950010B2 (ja) * 2002-05-17 2007-07-25 株式会社エヌ・ティ・ティ・ドコモ データ処理装置、プログラムおよび記録媒体
JP3979194B2 (ja) * 2002-06-25 2007-09-19 ソニー株式会社 情報記憶装置、およびメモリアクセス制御方法、並びにコンピュータ・プログラム
JP2004046532A (ja) * 2002-07-11 2004-02-12 Ricoh Co Ltd 情報処理装置、情報処理方法および記録媒体
US7826613B2 (en) * 2002-08-19 2010-11-02 Qualcomm Incorporated Stream cipher cryptographic system and method
FR2845493A1 (fr) * 2002-10-04 2004-04-09 Canal Plus Technologies Logiciel embarque et procede d'authentification de celui-ci
ITTO20020939A1 (it) * 2002-10-30 2004-04-30 Tecnost Sistemi S P A Sistema distribuito per l'emissione di valori e o titoli
DE10251839A1 (de) * 2002-11-07 2004-05-19 Robert Bosch Gmbh Verfahren zur sicheren Überprüfung eines Speicherbereiches eines Mikrocontrollers in einem Steuergerät und Steuergerät mit einem geschützten Mikrocontroller
FR2849311B1 (fr) * 2002-12-18 2005-04-15 France Telecom Procede de communication entre deux unites, et terminal mettant en oeuvre le procede
US7051251B2 (en) * 2002-12-20 2006-05-23 Matrix Semiconductor, Inc. Method for storing data in a write-once memory array using a write-many file system
JP4067985B2 (ja) * 2003-02-28 2008-03-26 松下電器産業株式会社 アプリケーション認証システムと装置
US7107388B2 (en) * 2003-04-25 2006-09-12 Intel Corporation Method for read once memory
US20060004829A1 (en) * 2004-05-27 2006-01-05 Silverbrook Research Pty Ltd Rolling keys

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
WO2003027815A2 (de) * 2001-09-21 2003-04-03 Infineon Technologies Ag Programmgesteuerte einheit

Also Published As

Publication number Publication date
DE602006020288D1 (de) 2011-04-07
CN101238473B (zh) 2011-10-26
US20080229425A1 (en) 2008-09-18
WO2007015204A3 (en) 2007-07-05
CN101238473A (zh) 2008-08-06
WO2007015204A2 (en) 2007-02-08
JP2009504061A (ja) 2009-01-29
US8689338B2 (en) 2014-04-01
EP1913511B1 (en) 2011-02-23
JP5114617B2 (ja) 2013-01-09
EP1913511A2 (en) 2008-04-23
KR20080031998A (ko) 2008-04-11
ATE499658T1 (de) 2011-03-15

Similar Documents

Publication Publication Date Title
KR100970040B1 (ko) 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기
CN106462708B (zh) 认证变量的管理方法和装置
US9596250B2 (en) System and method for protecting against point of sale malware using memory scraping
KR100319677B1 (ko) 메모리액세스제어회로
CN107003936B (zh) 具有非可读页的存储器保护
US8639946B2 (en) System and method of using a protected non-volatile memory
JP5415531B2 (ja) 安全なメモリ管理システム及び方法
TW201535145A (zh) 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
US20170032126A1 (en) Information processing device, controller and method of controlling information processing device
US7523279B2 (en) Information processing apparatus for accessing memory spaces including a user memory space and a secure memory space
CN110020561B (zh) 半导体装置和操作半导体装置的方法
US20060253714A1 (en) Information processor, tamper-proof method, and tamper-proof program
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
US20100077230A1 (en) Protecting a programmable memory against unauthorized modification
US20230418768A1 (en) Sensitive data reading method and apparatus, electronic device, and storage medium
EP3454216B1 (en) Method for protecting unauthorized data access from a memory
CN110909357B (zh) 一种电子本及其控制方法
EP3009952A1 (en) System and method for protecting a device against attacks on procedure calls by encrypting arguments
JP2009043036A (ja) コンパクトフラッシュディスクの情報保護方式および情報保護方法
CN110569205A (zh) 安全系统单芯片及其操作方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130701

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee