KR20040054493A - Secure mode indicator for smart phone or pda - Google Patents

Secure mode indicator for smart phone or pda Download PDF

Info

Publication number
KR20040054493A
KR20040054493A KR1020030084087A KR20030084087A KR20040054493A KR 20040054493 A KR20040054493 A KR 20040054493A KR 1020030084087 A KR1020030084087 A KR 1020030084087A KR 20030084087 A KR20030084087 A KR 20030084087A KR 20040054493 A KR20040054493 A KR 20040054493A
Authority
KR
South Korea
Prior art keywords
security
secure
mode
secure mode
signal
Prior art date
Application number
KR1020030084087A
Other languages
Korean (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
Priority claimed from US10/322,893 external-priority patent/US8479022B2/en
Application filed by 텍사스 인스트루먼츠 인코포레이티드 filed Critical 텍사스 인스트루먼츠 인코포레이티드
Publication of KR20040054493A publication Critical patent/KR20040054493A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/82Protecting input, output or interconnection devices
    • 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/86Secure or tamper-resistant housings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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/2147Locking files
    • 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)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: A secure mode indicator for a smart phone or a PDA(Personal Digital Assistant) executing security applications is provided to inform a user that a smart device is in a secure mode by installing the secure mode indicator to the smart device executing the security applications. CONSTITUTION: The indicator(155) such as an LED(Light Emitting Diode) is connected to the GPIO(General Purpose Input/Output) latch(154) and is lighten by responding to the GPIO. The GPIO latch is recorded by one logical value and is accessed by a core(103) through a peripheral device bus(156). Operations of the GPIO are controlled by a security signal(152) under control of an SSM(Security State Machine)(150). The GPIO latch is recorded when the security signal is in a security state that a processor(102) indicates the operation of a security software routine.

Description

스마트 폰 또는 PDA용 보안 모드 지시기{SECURE MODE INDICATOR FOR SMART PHONE OR PDA}SECURE MODE INDICATOR FOR SMART PHONE OR PDA}

본원 발명은 일반적으로 마이크로프로세서들에 관련되고, 더 구체적으로는 보안 소프트웨어 서비스들을 지원하기 위한 보안 메카니즘의 향상에 관한 것이다.The present invention relates generally to microprocessors and, more particularly, to an enhancement of a security mechanism for supporting secure software services.

마이크로프로세서들은 그들상에서 소프트웨어를 실행하기 위해 높은 명령 처리량을 제공하는 범용 프로세서들이고, 관련된 특별한 소프트웨어 에프리케이션들에 의존하는 광범위한 처리 요건들을 가질 수 있다. 많은 상이한 타입들의 마이크로프로세서들이 알려져 있는데, 그러한 마이크로프로세서들은 한 예일 뿐이다. 예를 들어, 디지털 시그널 프로세서들(DSPs)은 특히 모바일 프로세싱 에플리케이션들과 같은 특정 에플리케이션들에 널리 사용된다. DSPs는 관계된 에플리케이션들의 성능을 최적화하기 위해, 그리고 더 특수화된 실행 유닛들과 명령 세트들을 채용하기 위해 전형적으로 구성된다. 모바일 전화통신들과 같은 에플리케이션들에서는 특히, 그렇다고 오로지 이들에만 한정되는 것은 아니지만, 전력 소비를 가능한한 낮게 유지하면서 보다 향상된 DSP 성능을 제공하는 것이 바람직하다.Microprocessors are general purpose processors that provide high instruction throughput to execute software thereon and may have a wide range of processing requirements depending on the particular software applications involved. Many different types of microprocessors are known, such microprocessors being just one example. For example, digital signal processors (DSPs) are widely used in particular applications, especially mobile processing applications. DSPs are typically configured to optimize the performance of related applications and to employ more specialized execution units and instruction sets. In applications such as mobile telephony, it is particularly desirable, but not exclusively, to provide improved DSP performance while keeping power consumption as low as possible.

디지털 시스템의 성능을 보다 향상시키기 위해, 둘 이상의 프로세서들이 상호접속될 수 있다. 예를 들어, DSP는 디지털 시스템 내에서 범용 프로세서와 상호 접속될 수 있다. DSP는, 범용 프로세서가 전체 제어 플로우를 관리하는 동안, 수치 집약적인 신호 처리 알고리즘들을 수행한다. 이 두개의 프로세서들은 공유 메모리를 통해 신호처리를 하기 위해 통신하고 데이터를 전송한다. 직접 메모리 액세스(DMA) 제어기는 하나의 메모리 혹은 주변 리소스로부터 다른 개체로 데이터 블럭들을 전송하는 부담을 인수하기 위해 프로세서와 종종 연관되고, 이에 의해 프로세서의 성능을 향상시킨다.To further improve the performance of the digital system, two or more processors may be interconnected. For example, a DSP may be interconnected with a general purpose processor within a digital system. The DSP performs numerically intensive signal processing algorithms while the general purpose processor manages the entire control flow. The two processors communicate and transmit data through the shared memory for signal processing. Direct memory access (DMA) controllers are often associated with a processor to take the burden of transferring data blocks from one memory or peripheral resource to another, thereby improving the performance of the processor.

운영 시스템은, 일반적으로, 리소스들을 제어하고, 다양한 프로그램 모듈들이나 태스크들의 실행을 스케쥴링함에 의해, 디지털 시스템을 관리하도록 제공된다. 몇개의 프로세서들을 구비한 시스템에서, 각각의 프로세서에 대해 별도의 OS를 갖는 것이 편리할 수 있다. 일반적으로, OS는 모든 시스템 리소스들을 통제한다고 가정한다. 많은 OS들은 다른 OS와는 메모리 및 리소스들을 공유하는 방식으로 설계되어 있지 않다. 그러므로, 두개 이상의 OS들이 싱글 시스템으로 결합될 때, 리소스 할당 문제들이 발생할 수 있다. 메모리 또는 주변 디바이스들에 걸친 충돌들(conflicts)은 시스템 운영에 극도의 결과를 초래할 수 있다.An operating system is generally provided to manage a digital system by controlling resources and scheduling the execution of various program modules or tasks. In a system with several processors, it may be convenient to have a separate OS for each processor. In general, it is assumed that the OS controls all system resources. Many operating systems are not designed to share memory and resources with other operating systems. Therefore, resource allocation problems may arise when two or more OSes are combined into a single system. Conflicts across memory or peripheral devices can have extreme consequences for system operation.

대부분의 프로세서들은 2개의 특권 레벨들로 구성되는데, 그 하나는 OS에 대한 것이고, 다른 하나는 유저 태스크들에 관한 것이다. 세번째 특권 레벨에 대한 제안들도 있었으나, 이것은 현재의 CPU들에 거의 구현되고 있지 않다.Most processors consist of two privilege levels, one for the OS and the other for user tasks. There were also proposals for a third privilege level, but this is rarely implemented on current CPUs.

몇몇 운영 시스템들은, 특수한 재정적인 혹은 보안이 중요한 에플리케이션들에 대한 보안으로서 공인되어 있다. 일부 범용 운영 시스템들은 보안성을 내장한다고 주장하지만, 그들의 취약함은 잘 알려져 있다.Some operating systems are certified as security for special financial or security-critical applications. Some general-purpose operating systems claim to have built-in security, but their vulnerability is well known.

보안성을 향상시키기 위해 하드웨어 메카니즘들이 채택될 수 있다. 예를 들면, 제목이 Security Bit For Designating The Security Status Of Information Stored In A Nonvolatile Memory인 US 특허 제4,590,552호는, 오프-칩 리소스들이 온-칩 메모리를 액세스하는 것을 금지하도록 영구적으로 설정될 수 있는 하나 이상의 보안 비트들을 제공함에 의해, 온-칩 메모리에 저장된 코드 또는 데이터를 보호함으로써, 데이터 스토리지를 보안하기 위한 메카니즘을 개시한다. 그러나, 운영 시스템의 편력 운영은 그러한 보안 조치들을 극복할 수 있다.Hardware mechanisms can be adopted to improve security. For example, US Pat. No. 4,590,552, entitled Security Bit For Designating The Security Status Of Information Stored In A Nonvolatile Memory, can be set permanently to prohibit off-chip resources from accessing the on-chip memory. By providing the above security bits, a mechanism for securing data storage by protecting code or data stored in on-chip memory is disclosed. However, the biased operation of the operating system can overcome such security measures.

m-코머스(mobile commerce:모바일 코머스) 또는 e-뱅킹(electronic banking)과 같은 에플리케이션들의 보안 등급을 제공할 수 있는 스마트 디바이스 상에서, 유저는 패스워드 등의 비밀 정보를 키보드상에 입력하도록 혹은 스크린상에 표시된 메시지들을 서명하도록 요청된다. 그렇게 할때, 유저는 그의 디바이스의 완전성을 전적으로 믿는 것 외에는 다른 초이스가 없다. 그러나, 유저에게는, 해커나 바이러스가 그의 디바이스의 보안 프레임워크를 격파했음을 검출할 방법이 없다.On smart devices that can provide security levels for applications such as mobile commerce (mobile commerce) or electronic banking, users can enter secret information such as passwords on the keyboard or on the screen. It is requested to sign the displayed messages. In doing so, the user has no choice but to fully believe in the integrity of his device. However, the user has no way of detecting that a hacker or a virus has defeated the security framework of his device.

따라서, 시스템 보안상에 개선이 필요하다. 개략적으로, 본 발명의 형태에따르면, 디지털 시스템에는 프로세서 시스템상에 비침입적인 방식으로 내장된 보안 모드 (세번째 특권)가 구비된다. 따라서, 보안 실행 모드는, 오직 신뢰되는 소프트웨어가 온-칩 ROM 내에 저장되어 있는 코드인 플랫폼상에 제공된다. 디지털 시스템의 유저에 의해 관찰가능한 지시기 수단이 제공되는데, 지시기 수단은 오퍼레이션의 보안 모드 동안 신뢰되는 프로그램 코드에 의해서만 활성화될 수 있다.Therefore, there is a need for improvement in system security. In general terms, in accordance with aspects of the present invention, a digital system is provided with a security mode (third privilege) embedded in a non-intrusive manner on the processor system. Thus, a secure execution mode is provided on a platform where only trusted software is code stored in on-chip ROM. An indicator means that is observable by a user of the digital system is provided, which can only be activated by program code that is trusted during the secure mode of operation.

일 실시예에 있어서, 보안 모드는 유일한 엔트리 포인트를 통해 진입된다. 보안 실행 모드는 엔트리/엑시트 컨디션들의 전적으로 하드웨어적인 평가에 의해 동적으로 진입되거나 퇴출될 수 있다.In one embodiment, the secure mode is entered through a unique entry point. The secure execution mode can be dynamically entered or exited by entirely hardware evaluation of entry / exit conditions.

도 1은 다수의 프로세서 코어들을 갖는 메가셀 내의 본 발명의 일 실시예를 포함한 디지털 시스템의 블럭도이다.1 is a block diagram of a digital system including one embodiment of the present invention in a megacell having multiple processor cores.

도 2는 보안 상태 머신(Security State Machine: SSM)에 의해 실시된 보호된 소프트웨어의 실행 환경과 선택된 하드웨어 블럭들과의 결합을 이용한 분산된 보안 구성을 예시하는 도 1의 시스템 내의 MPU 블럭의 블럭도이다.FIG. 2 is a block diagram of an MPU block in the system of FIG. 1 illustrating a distributed security configuration using a combination of selected hardware blocks with an execution environment of protected software implemented by a Security State Machine (SSM). to be.

도 3은 도 2의 ROM의 콘텐츠, 및 ROM을 공용부와 보안부로 분리하기 위한 회로를 예시한 블럭도이다.FIG. 3 is a block diagram illustrating the contents of the ROM of FIG. 2 and a circuit for separating the ROM into a common part and a security part.

도 4는 도 2의 시스템상의 오퍼레이션의 보안 모드에 대한 액세스를 예시하는 플로우챠트이다.4 is a flowchart illustrating access to a secure mode of operation on the system of FIG. 2.

도 5는 도 2의 시스템 내의 보안 상태 머신의 오퍼레이션을 예시하는 상태도이다.5 is a state diagram illustrating the operation of a secure state machine in the system of FIG.

도 6은 본 발명의 일 실시예를 포함하는 무선 개인 휴대 정보 단말기를 예시한다.6 illustrates a wireless personal digital assistant comprising an embodiment of the present invention.

〈도면의 주요 부분에 대한 부호의 설명〉<Explanation of symbols for main parts of drawing>

100: 메가셀100: megacell

102: 마이크로프로세서102: microprocessor

103: 하드웨어 액셀러레이터들103: hardware accelerators

104: 디지털 신호 프로세서104: digital signal processor

105: DSP 코어105: DSP core

106: 직접 메모리 액세스 콘트롤러106: direct memory access controller

136: 프레임 버퍼136: frame buffer

138: 디스플레이 장치138: display device

150: 보안 상태 머신(SSM)150: Security State Machine (SSM)

152: 보안 신호152: security signal

154: GPIO 래치154: GPIO latch

155: 보안 지시기 LED155: security indicator LED

200: CPU200: CPU

310: 보안 ROM310: security ROM

312: 보안 SRAM312: secure SRAM

316a,b:보안 주변 디바이스들316a, b: secure peripherals

10: 개인 휴대 정보 단말기(PDA)10: personal digital assistant (PDA)

14: 디스플레이14: display

12a, 12b: 입력 센서들12a, 12b: input sensors

이제 본 발명에 따른 특별한 실시예들이, 예시적인 방식으로, 첨부 도면들을참조하여 설명될 것인데, 도면들에는 유사한 참조 부호들이 유사한 부품들을 지적하기 위해 사용되었고, 특별히 다른 언급이 없으면, 도면들은 도 1의 디지털 시스템에 관련된다.Specific embodiments according to the present invention will now be described, by way of example, with reference to the accompanying drawings, in which like reference numerals are used to indicate like parts, and unless otherwise indicated, the drawings are shown in FIG. 1. Related to the digital system.

스크린상에 표시되는 패스워드나 메시지들과 같은 유저에게 요주의 정보의 교환들은 처리 디바이스가 보안 모드에 있을 때에만 수행되어야 한다. 보안 모드를 제공하기 위한 장치 및 방법은 2002년 6월 30일에 출원되어 계류중인, 제목이 "Secure Mode For Processors Supporting MMU and Interrupts"인 유럽특허출원 제02100727.3호에 설명되어 있다. 보안 모드의 충분한 설명은 당업자가 그 오퍼레이션을 이해할 수 있도록 본 명세서에 기재된다.The exchange of information of interest to the user, such as passwords or messages displayed on the screen, should only be performed when the processing device is in a secure mode. An apparatus and method for providing a secure mode is described in European Patent Application No. 02100727.3, filed on June 30, 2002, pending the title "Secure Mode For Processors Supporting MMU and Interrupts." A full description of the security mode is described herein to enable those skilled in the art to understand the operation.

보안 모드에서, 키보드 혹은 디스플레이와 같은 물리적인 유저 인터페이스에 대한 액세스는, 신뢰되는 드라이버들을 통한 안전한 에플리케이션들에게 한정된다. 키보드 및 디스플레이에 대한 액세스가 보안 모드에 의해 잠겨진다는 사실은, 유저와의 교환을 모두 보안하기에는 충분하지 않다. 본 발명의 발명자들은, OS가 적당한 신뢰되는 키보드나 디스플레이 드라이버를, 즉, 보안 모드 메모리에 저장되고 실행을 위해 보안 모드로 진입하는 드라이버를 호출하였는지를 유저에게 지시하기 위한 수단이 필요하다는 것을 발견하였다. 그렇지 않고, 바이러스/해커가 위조 드라이버를 스마트 디바이스상에 다운로드하려고 한다면, 유저는 그의 디바이스를 믿을 수 없음을 알 방법이 없다.In secure mode, access to a physical user interface, such as a keyboard or display, is restricted to secure applications through trusted drivers. The fact that access to the keyboard and display are locked by the secure mode is not enough to secure all exchanges with the user. The inventors of the present invention have found that there is a need for means to instruct the user whether the OS has invoked a suitable trusted keyboard or display driver, i.e., a driver stored in secure mode memory and entering a secure mode for execution. Otherwise, if a virus / hacker tries to download a fake driver onto a smart device, there is no way for the user to know that he or she cannot trust his device.

본 발명의 특징에 따르면, 보안 에플리케이션들을 실행하는 스마트 디바이스는 디스플레이와 키보드 외에 보안 모드 지시기도 가질 것이다. 이 지시기는 유저에게 디바이스가 보안 모드에 있음을 알려줄 것이다. 지시기는, 예를 들어, 작은 LED일 수 있다. 보안 모드 지시기가 활성화되지 않았다면, 유저는 임의의 비밀 정보 (패스워드)를 입력하지 말아야 하며, 혹은 스크린상에 표시된 어떠한 것에도 서명해서는 않된다. 지시기가 불활성인 동안 그의 핀 코드(pin code)를 입력하라고 프롬프트되면, 유저는 그의 디바이스가 침입당했고, 디바이스가 보안 오퍼레이션을 제공할 수 없음을 이해할 것이다.According to a feature of the present invention, a smart device executing secure applications will have a security mode indicator in addition to the display and keyboard. This indicator will inform the user that the device is in secure mode. The indicator may, for example, be a small LED. If the security mode indicator is not activated, the user must not enter any secret information (password) or sign anything on the screen. If you are prompted to enter his pin code while the indicator is inactive, the user will understand that his device has been compromised and the device cannot provide security operations.

이러한 기능을 구현하기 위해, 보안 모드에서만 액세스될 수 있는 범용 입력/출력(GPIO) 래치 비트(154)가 도 1의 디지털 시스템상에 제공된다. 이 보안 GPIO 래치는 보안 지시기 LED(155)를 구동하기 위해 사용된다. 보안 ROM/SRAM(Read Only Memory/Static Random Access Memory)으로부터 보안 모드에서 실행하는 신뢰되는 키보드 및 디스플레이 드라이버는 보안 GPIO 래치를 관리할 책임이 있다.To implement this functionality, a general purpose input / output (GPIO) latch bit 154 is provided on the digital system of FIG. 1 that can only be accessed in secure mode. This secure GPIO latch is used to drive the security indicator LED 155. Trusted keyboard and display drivers running in secure mode from secure read only memory / static random access memory (ROM / SRAM) are responsible for managing secure GPIO latches.

보안 모드 지시기는 키보드 및 디스플레이에 독립적이어야 하는데, 그 이유는 비-보안 에플리케이션 소프트웨어가 비-보안 모드에서 이 디바이스들을 액세스할 수 있어야 하기 때문이다. 특히, 스크린상에 표시된 "패스워드를 입력하시오"와 같은 메시지는 일반적으로 신뢰할 수 없다. 또한, 보안 오퍼레이션을 지시하기 위한 잠금 부호 등의, 스크린상에 표시된 부호나 메시지는, 해킹된 코드에 의해 스크린이 액세스될 수 있기 때문에, 믿을만하지 못하다. 보안 모드 지시기는 디바이스가 보안 모드에서 동작하고 있을 때 오직 그 때에만 신뢰할 수 있도록 지시해야 한다. 보안 모드 지시기가 활성화되지 않으면, 유저는 패스워드 등의 비밀 정보를입력하라거나 혹은 스크린상의 어떠한 것에 서명을 하라고 통지되어서는 않된다.The secure mode indicator should be independent of the keyboard and display because non-secure application software must be able to access these devices in non-secure mode. In particular, messages such as "Please enter your password" displayed on the screen are generally unreliable. In addition, a code or a message displayed on the screen, such as a lock code for indicating a security operation, is not reliable because the screen can be accessed by the hacked code. The secure mode indicator shall only reliably indicate when the device is operating in secure mode. If the security mode indicator is not activated, the user should not be prompted to enter confidential information such as a password or to sign anything on the screen.

도 1은 복수의 프로세서들(102, 104)을 갖는 메가셀(100)에서 본 발명의 실시예를 포함하는 디지털 시스템의 블럭도이다. 설명을 명료하게 하기 위해, 도 1은 본 발명의 실시예를 이해하는 것과 관련되는 메가셀(100) 부분들만을 도시한다. 디지털 신호 프로세서들(DSPs)에 관한 일반적인 구성의 상세한 내용들은 잘 알려져 있고, 다른 소스로부터 용이하게 찾을 수 있을 것이다. 예를 들어, Frederick Boutaud, et al.에게 허여된 미국특허 제5,072,418호는 DSP에 대해 자세히 설명한다. Gary Swoboda, et al에게 허여된 미국특허 제5,329,471호는 DSP를 어떻게 테스트하고 에뮬레이트할 것인가에 대해 상세히 설명한다. 본 발명의 실시예에 관련된 메가셀(100)의 부분들의 상세한 내용들은, 마이크로프로세서 분야의 당업자가 본 발명을 실시하고 이용할 수 있도록, 하기에서 충분히 자세히 설명된다.1 is a block diagram of a digital system including an embodiment of the present invention in a megacell 100 having a plurality of processors 102, 104. For clarity of explanation, FIG. 1 illustrates only the megacell 100 portions that relate to understanding embodiments of the present invention. Details of the general configuration of digital signal processors (DSPs) are well known and will be readily available from other sources. For example, US Pat. No. 5,072,418 to Frederick Boutaud, et al. Details DSP. U. S. Patent No. 5,329, 471 to Gary Swoboda, et al describes in detail how to test and emulate a DSP. Details of portions of megacell 100 related to embodiments of the present invention are described in sufficient detail below to enable those skilled in the microprocessor art to practice and use the present invention.

비록 본 발명은, 예를 들면, 에플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC)에 구현된 디지털 시스템들에 대한 특별한 에플리케이션을 찾았지만, 다른 형태의 시스템들에 대한 에플리케이션도 물론 찾을 수 있다. ASIC은 디자인 라이브러리에 의해 제공되는 사전-설계된 기능성 회로들과 결합된 고객 디자인 기능성 회로들을 제각기 갖는 하나 이상의 메가셀들을 포함할 수 있다.Although the present invention has found special applications for digital systems implemented in, for example, Application Specific Integrated Circuits (ASICs), applications for other types of systems can of course also be found. The ASIC may include one or more megacells, each having customer design functional circuits combined with pre-designed functional circuits provided by the design library.

선택된 하드웨어 블럭들과 보호된 소프트웨어 실행 환경과의 결합을 이용하는 분산 보안 시스템이 메가셀(100) 내에 제공된다. 분산된 보안 시스템은 일렉트로닉 코머스(e-코머스) 및 모바일 코머스(m-코머스) 보안 문제들을 모바일 폰 환경내에서 해결하기 위한 솔루션이다. 보안 문제들로는 하기와 같은 사항들을 포함한다.A distributed security system is provided within megacell 100 that utilizes a combination of selected hardware blocks and a protected software execution environment. A distributed security system is a solution for solving electronic commerce (e-commerce) and mobile commerce (m-commerce) security problems within a mobile phone environment. Security issues include the following:

- 기밀성: 오직 통신하는 측들만이 전송된 정보의 내용을 알 수 있게 보장한다.Confidentiality: ensures that only communicating parties know the content of the transmitted information.

- 완전성: 정보가 전송 동안 변경되지 않았음을 보장한다.Integrity: ensures that the information has not changed during transmission.

- 인증: 통신하는 상대가 그가 주장하는 사람임을 보장한다.Authentication: Ensures that the person with whom you communicate is the person he claims to be.

- 부인 방지: 송신자가 메시지를 송신한 것을 부인할 수 없게 보장한다.Non repudiation: This ensures that the sender cannot deny sending a message.

- 소비자 보호: 필명 및 익명Consumer protection: pseudonym and anonymous

- 복제 방지-Copy protection

현재의 운영 시스템(OS)은 안전하다고 여겨질 수 없다. 일부 OS들은 안전하다고 주장하나, 그들의 복잡성은 이러한 보안성을 달성하거나 보증하는 것을 곤란하게 만든다. 일렉트로닉-코머스 및 다른 보안 트랜잭션들에 대해, 안전한 소프트웨어 레이어가 필요하다. 이것은 기존의 OS들에게 투명해야 하며, 실시간으로 인터럽트들을 지원하고 OS가 지원하는 동안, 메모리 관리 유닛(MMU) 및 캐시 사용을 지원해야 한다.Current operating systems (OSs) cannot be considered safe. Some OSs claim to be secure, but their complexity makes it difficult to achieve or guarantee this security. For electronic-commerce and other secure transactions, a secure software layer is needed. It should be transparent to existing OSs, support interrupts in real time, and support memory management unit (MMU) and cache usage while the OS supports it.

많은 에플리케이션에서 소프트웨어 온리 솔루션은 충분히 강력하지 않고 이 문제들은 잘 결합된 하드웨어와 소프트웨어 아키텍쳐를 통해서만 해결될 수 있다. 본 실시예에서 사용된 보안 모드는 전체 보안 스킴에 강건함을 주도록 개발되었고, 하기의 가정을 기초로 하고 있다.In many applications, software only solutions are not powerful enough, and these problems can only be solved through a well-coupled hardware and software architecture. The security mode used in this embodiment was developed to give robustness to the overall security scheme and is based on the following assumptions.

- 운영 시스템(OS)은 신뢰적이지 않다.The operating system is not reliable.

- 플랫폼상에서 실행하고 있는 원시 소프트웨어는 신뢰적이지 않다.The native software running on the platform is not reliable.

- 오직 신뢰되는 소프트웨어는 보안 프로그램 ROM/SRAM 내에 저장된 코드이다.Only trusted software is code stored in the security program ROM / SRAM.

- 캐시들은 성능 이유 때문에 활성화될 수 있다.Caches may be activated for performance reasons.

- 인터럽트들은 실시간 이유 때문에 활성화될 수 있다.Interrupts can be activated for real time reasons.

- MMU는 유연성을 위해 활성화될 수 있다.MMU can be activated for flexibility.

상기 가정들은 다음의 결과를 가져온다. 첫째, OS 메모리 관리는 신뢰적이지 않다. 즉, MMU 오퍼레이션 및 OS 정의 변환 테이블은 믿을 수 없다. 보안 모드는 MMU의 임의의 오용에 저항성이 있어야 하고, OS 정의 변환 테이블들이 변조될 수 있다는 사실에 대해 내성이 있어야 한다. 둘째, OS 정의 인터럽트 벡터 테이블 및 인터럽트 서비스 루틴들은 신뢰적이지 않다. 보안 모드가 인터럽트의 임의의 오용에 저항성을 갖고 인터럽트 벡터 테이블 및 ISR이 변조될 수 있다는 사실에 내성을 갖도록, 보안 모드에서 인터럽트의 특수한 관리를 구현할 필요가 있다. 세째, 콘택스트 저장, 캐시 플러시(caches flush), TLB 플러시, 기록 버퍼 드레이닝(Write buffer draining), 등은 안전하지 않으며, 보안 모드는 이들에 의존해서는 않된다. 마지막으로 중요한 것을 말하자면, 모든 테스트, 디버그 및 에뮬레이션 능력은 보안 모드에서 무력화되어야 한다.The above assumptions result in: First, OS memory management is not reliable. In other words, MMU operations and OS-defined translation tables are unreliable. The secure mode must be resistant to any misuse of the MMU and must be resistant to the fact that OS defined translation tables can be tampered with. Second, OS-defined interrupt vector tables and interrupt service routines are not reliable. There is a need to implement special management of interrupts in secure mode so that the secure mode is resistant to any misuse of interrupts and tolerates the fact that the interrupt vector table and ISR can be tampered with. Third, context storage, cache flush, TLB flush, write buffer draining, etc. are not secure and the security mode should not depend on them. Last but not least, all test, debug, and emulation capabilities must be disabled in secure mode.

본 실시예에서, 파티션된 "보안 모드"가 프로세서(102)에 대해 생성되어, 프로세서(102)가 보안 오퍼레이션들을 실행하면서 단독의 "가상 보안 프로세서"로서 작동할 수 있다. 보안 모드는 프로세서(102)에 대해 세번째 특권 레벨로서 생각될수 있다. 그의 활성화는 요주의 정보를 비신뢰적인 소프트웨어에 의한 액세스로부터 보호하기 위한 환경을 생성하는 특수한 목적의 하드웨어의 존재에 의존한다. 보안 모드는, 시스템을 가로질러 전파하고, 신뢰되는 소프트웨어가 액세스할 수 있는 리소스들과 임의의 소프트웨어에게도 가용인 리소스들 사이의 바운더리를 생성하는 전용 보안 신호(152)의 어써션에 의해 설정된다.In this embodiment, a partitioned "secure mode" is created for the processor 102 so that the processor 102 can act as the sole "virtual secure processor" while executing security operations. The secure mode can be thought of as the third privilege level for the processor 102. Its activation relies on the presence of special purpose hardware that creates an environment for protecting critical information from access by untrusted software. The security mode is established by the assertion of a dedicated security signal 152 that propagates across the system and creates a boundary between resources that can be accessed by trusted software and resources that are also available to any software.

보안 모드의 활성화는 또한 보안 소프트웨어에 의한 적당한 제어에 의존한다. 보안 소프트웨어는 보안 프로그램 ROM/SRAM에 저장되고 거기에서부터 실행된다. 신뢰되지 않는 코드가 하드웨어를 속여서 보안 모드로 들어갈 수 있다거나, 혹은 신뢰되는 코드가 그가 하지 말아야 할 태스크를 수행하게 될 수 있는 가능한 플로우들은 존재할 수 없다. 바운더리가 적절하게 생성되면, 통제된 오퍼레이션들을 통한 것을 제외하고는, 바운더리 내부로부터 외부로 정보를 이동하기 위해 프로세서의 노멀 오퍼레이션을 이용할 방법은 없어야 한다. 프로세서의 노멀 오퍼레이션은 잠재적인 결함이 있는 "유저-코드"를 실행하는 것을 포함함을 주목한다.Activation of the security mode also depends on proper control by the security software. The security software is stored in and executed from the security program ROM / SRAM. There are no possible flows where untrusted code can trick the hardware into secure mode, or cause trusted code to perform tasks that it should not do. Once the boundary is properly created, there should be no way to use the normal operations of the processor to move information from inside to outside, except through controlled operations. Note that the normal operation of a processor involves executing a potentially defective "user-code".

보안 소프트웨어 레이어는 신뢰되고 보안 메모리 내에 저장된다. 이것은, MMU 변조를 방지하면서 싱글, 보안 게이트를 통해 보안 모드로 패싱함으로써, 진정 보안 코드를 실행하고 있음을 하드웨어 보안 상태 머신(SSM)(150)에게 나타내는 소프트웨어 시퀀스를 통해 진입된다. 보안 소프트웨어가 보안 모드에서 작동하는 동안, 인터럽트 벡터들은, 필요하다면, 보안 제어 소프트웨어가 보안 모드로부터 적절한 퇴출을 시작할 수 있도록, 재조정된다. 재조정 프로세스는 OS에게 투명하게수행되고 어떠한 보안 데이터도 전이 이후에 가시적으로 되는 것을 방지한다.The security software layer is trusted and stored in secure memory. This is entered through a software sequence indicating to the hardware security state machine (SSM) 150 that it is indeed executing the secure code, by passing in a secure mode through a single, secure gate while preventing MMU tampering. While the security software is operating in secure mode, the interrupt vectors are readjusted, if necessary, to allow the security control software to begin proper exit from the secure mode. The remediation process is transparent to the OS and prevents any secure data from becoming visible after the transition.

GPIO 래치(154)는, 보안 소프트웨어에 의해서만 액세스되고 활성화될 수 있다는 것을 제외하고는 통상적인 방식으로 작동하는 메모리-맵핑된 래치(memory-mapped latch)이다. 지시기(155)는 GPIO(154)에 연결되고, GPIO에 응답하여 조명된다. 지시기(155)는 래치(154)에 하나의 논리값, 예를 들면 논리 1을 기록함에 의해 턴온하고, 보수 논리값, 예를 들면 논리 0을 래치(154)에 기록함에 의해 턴오프된다. 래치(154)는 주변 장치 버스 신호(156)를 통해 코어(103)에 의해 액세스된다. 그러나, GPIO 래치(154)의 오퍼레이션은 SSM(150)에 의해 제어되는 보안 신호(152)에 의해 통제된다. 그러므로, GPIO 래치(154)는, 보안 신호(152)가, 프로세서(102)가 보안 소프트웨어 루틴을 실행하고 있음을 지시하는, 보안 상태에 있을 때에만 기록될 수 있다. 본 실시예에서, 지시기(155)는 발광 다이오드(LED)이지만, 다른 실시예에서는 온과 오프인 두개의 상이한 상태들을 나타내는 임의의 타입의 지시기가 사용될 수 있다. 예를 들면, 네온, 플라즈마 등의 다양한 타입의 램프들이 사용될 수 있다. 온/오프 상태를 지시하도록 상이한 컬러를 표시하기 위해 회전하는 디스크, 혹은 온/오프 상태를 나타내도록 지시기를 이동하는 액츄에이터 등의 다양한 기계적 장치들이 사용될 수도 있다. 다른 실시예들에 있어서, 두개의 상태들은, 시각 장애자 혹은 달리 신체적으로 장애가 있는 사람도 그 두 상태들을 검출할 수 있도록, 텍스쳐의 표면 변화, 높이, 온도, 등에 의해서도 지시될 수 있다. 예를 들어, 촉각 지시기가 점자 디스플레이 장치에 관련하여 제공될 수 있다. 다른 실시예에 있어서, 지시기는 오디오 지시기를 제공할수 있는데, 예를 들어, 보안 모드 상태가 온됨을 지시하기 위한 톤이 재생될 수 있으나, 톤은 비-보안 오디오 소스에 의해 모방될 수 있기 때문에 적절한 주의가 요구된다.GPIO latch 154 is a memory-mapped latch that operates in a conventional manner except that it can only be accessed and activated by security software. Indicator 155 is coupled to GPIO 154 and illuminated in response to GPIO. Indicator 155 is turned on by writing one logic value, for example logic 1, to latch 154, and turned off by writing a complementary logic value, logic 0, for example, to latch 154. The latch 154 is accessed by the core 103 via the peripheral bus signal 156. However, the operation of GPIO latch 154 is controlled by security signal 152 controlled by SSM 150. Therefore, the GPIO latch 154 can be written only when the security signal 152 is in a secure state, indicating that the processor 102 is executing a security software routine. In this embodiment, the indicator 155 is a light emitting diode (LED), but in other embodiments any type of indicator may be used indicating two different states, on and off. For example, various types of lamps may be used, such as neon, plasma, and the like. Various mechanical devices may be used, such as rotating disks to indicate different colors to indicate on / off states, or actuators to move indicators to indicate on / off states. In other embodiments, the two states may also be dictated by the surface change of the texture, the height, the temperature, and so on, so that even the visually impaired or otherwise physically impaired person can detect the two states. For example, a tactile indicator may be provided in connection with the braille display device. In another embodiment, the indicator may provide an audio indicator, for example, a tone may be played to indicate that the secure mode state is on, but the tone may be imitated by a non-secure audio source, which may be appropriate. Attention is required.

도 1을 다시 참조하면, 메가셀(100)은 32 비트 코어(103)를 갖는 마이크로프로세서(MPU)(102)와, 레벨 2(L2) 메모리 서브시스템으로 일컬어지는 메모리 블럭(113)을 공유하는 DSP 코어(105)를 갖는 디지털 신호 프로세서(104)를 포함한다. 트래픽 제어 블럭(110)은 호스트 인터페이스(120b)에 연결된 호스트 프로세서로부터의 전송 요청, 제어 프로세서(102)로부터의 요청, 및 DSP(10) 내의 메모리 액세스 노드로부터의 전송 요청을 수신한다. 트래픽 제어 블럭(110)은 이 요청들을 인터리브하고, 이들을 공유 메모리 및 캐시에 보낸다. 공유 주변 장치들(116)은 또한 트래픽 제어 블럭을 통해 액세스된다. 직접 메모리 액세스 콘트롤러(106)는 오프-칩 메모리(132) 또는 온-칩 메모리(134)와 공유 메모리 사이에 데이터를 전송할 수 있다. 다양한 에플리케이션 특정 프로세서들 혹은 하드웨어 액셀러레이터들(108)이 또한 다양한 에플리케이션들 및 트래픽 제어 블럭을 통한 DSP 및 MPU와의 상호 작용을 위해 필요하게 되어 메가셀 내에 포함될 수 있다.Referring back to FIG. 1, megacell 100 shares a microprocessor (MPU) 102 with a 32 bit core 103 and a memory block 113, referred to as a level 2 (L2) memory subsystem. A digital signal processor 104 having a DSP core 105. Traffic control block 110 receives a transfer request from a host processor coupled to host interface 120b, a request from control processor 102, and a transfer request from a memory access node within DSP 10. Traffic control block 110 interleaves these requests and sends them to shared memory and cache. Shared peripherals 116 are also accessed through a traffic control block. The direct memory access controller 106 can transfer data between the off-chip memory 132 or the on-chip memory 134 and the shared memory. Various application specific processors or hardware accelerators 108 may also be included in the megacell as needed for interaction with the DSP and the MPU through the various applications and traffic control block.

메가셀 외부에, DSP 또는 MPU로부터의 명백한 요청에 응답하여 내부 트래픽 제어 블럭(110)으로부터 메모리 요청들을 수신하기 위해 레벨 3(L3) 제어 블럭(130)이 접속된다. 오프-칩 외부 메모리(132) 및/또는 온-칩 메모리(134)는 시스템 트래픽 제어기(130)에 접속되는데, 이들은 L3 메모리 서브시스템들로서 일컬어진다. 프레임 버퍼(136)와 디스플레이 장치(138)는 시스템 트래픽 제어기에접속되어 그래픽 이미지를 표시하기 위한 데이터를 수신한다. 호스트 프로세서(120a)는 시스템 트래픽 제어기(130)를 통해 외부 리소스들과 상호작용한다. 시스템 트래픽 제어기(130)에 접속된 호스트 인터페이스(120)는 외부 메모리들 및 트래픽 제어기(130)에 접속된 다른 장치들에 대한 호스트(120a)에 의한 액세스를 가능하게 해준다. 따라서, 호스트 프로세서는 다양한 실시예들에서 레벨 3 또는 레벨 2로 접속될 수 있다. 사설 주변 장치들(140)의 세트는 DSP에 접속되고, 한편 사설 주변 장치들(142)의 다른 세트는 MPU에 접속된다.Outside the megacell, a level 3 (L3) control block 130 is connected to receive memory requests from the internal traffic control block 110 in response to an explicit request from the DSP or MPU. Off-chip external memory 132 and / or on-chip memory 134 are connected to system traffic controller 130, which are referred to as L3 memory subsystems. Frame buffer 136 and display device 138 are connected to a system traffic controller to receive data for displaying a graphical image. The host processor 120a interacts with external resources through the system traffic controller 130. The host interface 120 connected to the system traffic controller 130 enables access by the host 120a to external memories and other devices connected to the traffic controller 130. Thus, the host processor may be connected at level 3 or level 2 in various embodiments. The set of private peripherals 140 is connected to the DSP, while the other set of private peripherals 142 is connected to the MPU.

도 2는 보안 상태 머신(300)에 의해 실시된 선택된 하드웨어와 보호된 소프트웨어 실행 환경과의 결합을 사용하는 분산된 보안을 예시하는 도 1의 시스템 내의 MPU(102)의 블럭도이다. 디지털 시스템의 다른 실시예에서, 프로세서(102)는 싱글 프로세서로서 존재할 수 있으며, 또는 예를 들면, 협동을 위해 하나 이상의 다른 디지털 시스템과 접속될 수 있다.2 is a block diagram of an MPU 102 in the system of FIG. 1 illustrating distributed security using a combination of selected hardware implemented by the secure state machine 300 and a protected software execution environment. In other embodiments of the digital system, the processor 102 may exist as a single processor or may be connected with one or more other digital systems, for example, for collaboration.

보안 모드는 프로세서(102)를 위한 "특권의 세번째 레벨"이다. 보안 모드는 적당한 실행 환경이 설정되었다면 프로세서 서브시스템(CPU)(200)의 보안 리소스들에 대한 액세스를 제한하기 위한 하드웨어 수단을 제공한다. 보안 모드는, 프로세서 코어, 데이터 및 명령 코드 캐시들(204, 206), 및 MMU(210)를 포함하는 CPU(200) 주위에 설치된다. 바람직하게, 본 실시예의 보안 특징들은 CPU(200)에 비-침입적이며, 다른 실시예에서는 다른 프로세서가 이 프로세서 대신에 사용될 수 있다.The security mode is the "third level of privilege" for the processor 102. The secure mode provides hardware means for restricting access to secure resources of the processor subsystem (CPU) 200 if a suitable execution environment has been established. The secure mode is installed around the CPU 200, which includes a processor core, data and instruction code caches 204 and 206, and an MMU 210. Preferably, the security features of this embodiment are non-intrusive to CPU 200, and in other embodiments other processors may be used instead of this processor.

보안 하드웨어에는 두가지 종류가 있는데, 그중 하나는 보안 신호를 제어하는 로직이고, 다른 하나는 보안 모드에 한정된 하드웨어 리소스들이다. 전자는 주로 보안 상태 머신(SSM)(300)으로 구성된다. SSM(300)은 보안 모드로 진입하기 위한 컨디션들을 모니터하고, 보안 신호(302)를 어써트/디어써트(assert/de-assert)하고, 보안 모드 위반을 검출하는 기능을 한다. 보안 위반이 검출될 때 시스템 리셋을 유발하기 위해 리셋 회로(306)에 접속되는 위반 신호(304)를 어써팅함에 의해, 위반이 표시된다. 보안 상태 머신은 프로세서(200)의 외부 인터페이스로부터의 다양한 신호들(330)과, 특히 명령 버스상의 프로세서에 의해 페치되는 어드레스들을 감시한다. 보안 상태 머신은 엔트리 시퀀스로부터의 로우-레벨 어셈블리 코드에 밀접하게 커플링된다. 이것은 모니터된 신호들상의 엔트리 시퀀스에 의해 생성된 이벤트들에 대해 반응한다.There are two types of security hardware, one of which is the logic that controls the security signal, and the other is the hardware resources specific to the security mode. The former mainly consists of a secure state machine (SSM) 300. SSM 300 functions to monitor conditions for entering a secure mode, assert / de-assert security signal 302, and detect security mode violations. The violation is indicated by asserting a violation signal 304 connected to the reset circuit 306 to cause a system reset when a security breach is detected. The secure state machine monitors the various signals 330 from the external interface of the processor 200 and in particular addresses fetched by the processor on the command bus. The secure state machine is tightly coupled to the low-level assembly code from the entry sequence. This responds to events generated by the entry sequence on the monitored signals.

보안 모드는 보안 신호(302)가 어써트될 때 진입된다. 보안 신호가 어써트될 때, 이 신호는 보안 리소스들의 액세스에 대한 제한을 풀기 위해 시스템을 통해 전파한다. 오직 프로세서(200)만이 보안 모드에서 보안 리소스들을 액세스할 수 있다. DSP(104) 및 DMA(106)는 본 실시예에서의 디자인 제약에 의해 보안 리소스들에 대한 액세스를 허여받지 못한다. 본 실시예의 보안 리소스들로는, 보안 ROM(310)(전체 ROM의 일부), 보안 SRAM(312), 및 다양한 보안 주변 디바이스들(316a, 316b)이 포함된다. 유사하게 GPIO 래치(318)에 대한 액세스도 보안 신호(302)에 의해 통제되어, GPIO(318)는, 보안 신호(302)가, CPU(200)가 보안 소프트웨어 루틴을 실행하고 있음을 나타내는, 활성 상태에 있을 때에만, 기록될 수 있다. 보안 신호(302)는 특정한 컨디션하에서 보안 상태 머신(SSM)(30)에의해 어써트된다. 보안 모드에서, CPU(200)는 보안 ROM(310) 또는 보안 SRAM(312) 내에 저장되어 있는 코드만을 실행할 수 있다. 이 신뢰되는 장소들의 외부에 저장되어 있는 코드를 실행하려는 임의의 시도는, 리셋 회로(306)가 시스템의 글로벌 리셋을 수행하도록 야기할 신호(304)를 어써트함에 의해 "보안 위반"을 생성할 것이다.The security mode is entered when the security signal 302 is asserted. When a security signal is asserted, it propagates through the system to remove restrictions on access of security resources. Only processor 200 can access secure resources in secure mode. DSP 104 and DMA 106 are not allowed access to secure resources by the design constraints in this embodiment. Secure resources of this embodiment include secure ROM 310 (part of the entire ROM), secure SRAM 312, and various secure peripheral devices 316a, 316b. Similarly, access to GPIO latch 318 is also controlled by security signal 302 such that GPIO 318 is active, indicating that security signal 302 indicates that CPU 200 is executing a security software routine. Only when in a state can it be recorded. Security signal 302 is asserted by secure state machine (SSM) 30 under certain conditions. In the secure mode, the CPU 200 may execute only code stored in the secure ROM 310 or secure SRAM 312. Any attempt to execute code stored outside of these trusted places will generate a "security breach" by asserting a signal 304 that will cause the reset circuit 306 to perform a global reset of the system. will be.

이 ROM은 두 부분으로 파티션되는데, 그중 한 부분은 보안 비트에 의해 보호되는 ROM의 보안 부분이고, 다른 한 부분은 항상 액세스 가능하고 부트 영역을 포함하는 ROM의 공용 부분이다. 공용 ROM(311)은 또한 다양한 보안 프로시져들을 포함하고, 전체 보안 스킴에 참여한다.This ROM is partitioned into two parts, one of which is the secure part of the ROM protected by the security bits, and the other is the public part of the ROM that is always accessible and contains the boot area. The common ROM 311 also includes various security procedures and participates in the overall security scheme.

보안 스토리지 RAM(112)은 보안 작업 데이터 (보안 스택, 보안 글로벌 데이터, 보안 힙(secure heap))가 저장되는 장소이다. 보안 프로그램 RAM(312)(옵션)은 비-거주 보안 코드의 실행 전용이다. 비-거주 보안 코드는 먼저 외부 메모리 장치로부터 보안 프로그램 RAM 내로 다운로드된 다음, 실행되기 전에 인증된다.Secure storage RAM 112 is where secure work data (secure stack, secure global data, secure heap) is stored. Secure program RAM 312 (optional) is dedicated to the execution of non-resident secure code. The non-resident security code is first downloaded from the external memory device into the secure program RAM and then authenticated before being executed.

보안 스토리지 SRAM 내의 몇 바이트 어드레스들은 글로벌 리셋 신호에 의해 리셋되는 레지스터들(306)에 의해 구현된다. 이 레지스터들은 몇몇의 노멀 SRAM 장소들을 섀도우하고, 일반 SRAM 어드레스들로서 사용될 수 있다. 단지 차이점은 이 레지스터들/SRAM 장소들이 모두 1 값으로 리셋될 것이라는 점이다. 보안 모드에서는 리셋될 수 있고, 따라서 공지된 초기값을 갖고, 보안 모드에서만 변화될 수 있는 몇 않되는 변수들을 갖는 것이 바람직하다. 예를 들면, 이 특징은, 보안 모드에서 첫번째 엔트리 검출, 적당한 엑시트_모드 값(노멀, 예외, 위반) 설정, 전원켜짐 검출, 등을 위해 사용될 수 있다. 다른 실시예에서, 이 리셋 가능한 값들은 다른 방식으로, 예를 들면, SRAM을 오버레이하지 않는 어드레스 공간 내에 레지스터들을 배치함으로써, 혹은 리셋 신호를 SRAM 내의 선택된 메모리 셀들에 접속함으로써, 구현될 수도 있다.Several byte addresses in the secure storage SRAM are implemented by registers 306 that are reset by a global reset signal. These registers shadow some normal SRAM locations and can be used as generic SRAM addresses. The only difference is that these registers / SRAM locations will all be reset to the value 1. It is desirable to have a few variables that can be reset in the secure mode and therefore have a known initial value and can only be changed in the secure mode. For example, this feature can be used for first entry detection in secure mode, setting appropriate exit_mode values (normal, exception, violation), power on detection, and the like. In other embodiments, these resettable values may be implemented in other ways, for example, by placing registers in an address space that does not overlay the SRAM, or by connecting a reset signal to selected memory cells in the SRAM.

보안 신호(302)가 어써트되도록 야기하거나, 혹은 상태 머신의 행동을 변경하기 위한 소프트웨어적인 방법은 없다. SSM은 도 5를 참조하여 보다 상세히 설명될 활성화 시퀀스에 밀접하게 커플링된다. SSM은 프로세서(200)로부터의 물리적 명령 어드레스 버스(330)와 다양한 리소스들로부터 수신된 다양한 엔트리 컨디션 신호들(321-327)을 모니터한다. 프로세서(200)로부터의 명령 인터페이스 신호들(331) 및 데이터 인터페이스 신호들(333)도 역시 모니터되고, 명령 버스(330)와 데이터 버스(332) 상에서 어떤 타입의 트랜잭션들이 각각 수행될 것인지가 정의된다.There is no software way to cause the security signal 302 to be asserted or to change the behavior of the state machine. The SSM is closely coupled to the activation sequence, which will be described in more detail with reference to FIG. The SSM monitors the physical instruction address bus 330 from the processor 200 and various entry condition signals 321-327 received from various resources. Command interface signals 331 and data interface signals 333 from the processor 200 are also monitored, and what types of transactions are to be performed on the command bus 330 and the data bus 332 respectively. .

보안 모드는, 싱글 엔트리 포인트로서 일컬어지는, 즉 SSM 내의 하드 코드인, 공용 ROM 내의 특수한 어드레스로 브랜칭함으로써 진입된다. 엔트리 포인트는 "활성화 시퀀스"의 시작 어드레스이다. 활성화 시퀀스는 보안 상태 머신에 커플링된 공용 ROM 내에 저장된 코드이고, 보안 모드에 대한 엔트리 컨디션들이 충족되는 것을 보장한다. 다른 엔트리 컨디션들은 특수한 엔트리 컨디션 신호들을 모니터함으로써 직접 평가된다.The secure mode is entered by branching to a special address in the common ROM, which is referred to as a single entry point, that is, hard code in the SSM. The entry point is the start address of the "activation sequence". The activation sequence is code stored in a common ROM coupled to the secure state machine and ensures that entry conditions for the secure mode are met. Other entry conditions are evaluated directly by monitoring special entry condition signals.

활성화 시퀀스는 보안 상태 머신에 의해 모니터되는 신호들 일부에 대해 이벤트들의 정의된 시퀀스를 생성한다. 이 이벤트들은, 보안 모드에 진입하기 위해필요한 컨디션들이 충족되도록 보장한다. 보안 상태 머신은 이러한 패턴을 인식하고 보안 신호를 어써트한다. 보안 모드에서, 보안 상태 머신은 보안 모드 위반을 검출하고, 보안 모드 엑시트 프로시져를 준수하도록 보장한다. 위반이 발생할 때, SSM은 보안 신호를 해제하고 보안 위반 신호(304)를 어써트한다. 전형적인 위반은 ROM/SRAM의 어드레스 범위 밖의 명령들을 페치하려고 한다.The activation sequence generates a defined sequence of events for some of the signals monitored by the security state machine. These events ensure that the conditions needed to enter the secure mode are met. The security state machine recognizes this pattern and asserts a security signal. In secure mode, the security state machine detects security mode violations and ensures that security mode exit procedures are followed. When a violation occurs, the SSM releases the security signal and asserts the security violation signal 304. A typical violation is to fetch instructions outside the address range of ROM / SRAM.

활성화 시퀀스는 공용 ROM 내에 저장된다. 이것은 보안 모드 엔트리 컨디션들이 충족되도록 보장한다. 환경 설정 시퀀스는 보안 ROM 내에 저장된다. 이것은 캐시들, 인터럽션, 및 MMU가 활성화될 수 있는 보안 모드를 위한 적당한 실행 환경을 설정한다. 엑시트 시퀀스는 보안 ROM 내에 저장된다. 그것은 보안 모드 엑시트 프로시져를 준수하도록 강제한다. 그것은 BRANCH에 의해 혹은 인터럽트 하에서 보안 모드를 퇴출할 안전한 방법을 제공한다. 이것은 또한 퇴출시의 보안 ROM 및 RAM의 "보안" 콘텐츠를 보호한다.The activation sequence is stored in the common ROM. This ensures that secure mode entry conditions are met. The configuration sequence is stored in the secure ROM. This establishes a suitable execution environment for caches, interruption, and a secure mode in which the MMU can be activated. Exit sequences are stored in secure ROM. It enforces compliance with the security mode exit procedure. It provides a secure way to exit secure mode by BRANCH or under an interrupt. It also protects the "secure" content of the secure ROM and RAM upon exit.

도 2를 더 참조하면, 보안 제어 레지스터(319)는 보안 모드에서만 메모리 맵핑된 레지스터로서 액세스 가능하며, 헤커에 의해 보안을 깨기 위해 사용될 수 있으나 시스템 하드웨어 및 소프트웨어를 통제하고 디버그하기 위해 필수적인 테스트, 디버그, 및 에뮬레이션 설비들을 인에이블/디스에이블하기 위해 사용된다. 예를 들어, 신호(321)에 의해 표시되는 한 비트는 프로그램 개발을 위해 사용되는 내장된 트레이스 매크로셀(ETM)(350)의 오퍼레이션을 인에이블/디스에이블한다. 신호(322)는 프로세서(200)상의 JTAG 인터페이스의 오퍼레이션을 인에이블/디스에이블한다. 신호(323)는 프로세서(200)상의 디버그 인터페이스(dbg I/F)의 오퍼레이션을 인에이블/디스에이블한다.Further referring to FIG. 2, the security control register 319 is accessible as a memory mapped register only in secure mode and can be used to break security by a hecker, but it is necessary to test, debug, to control and debug system hardware and software. , And to enable / disable emulation facilities. For example, one bit indicated by signal 321 enables / disables operation of embedded trace macrocell (ETM) 350 used for program development. Signal 322 enables / disables operation of the JTAG interface on processor 200. Signal 323 enables / disables operation of debug interface (dbg I / F) on processor (200).

보안 컨디션 레지스터(320)는 비-보안 모드에서 메모리 맵핑된 레지스터로서 액세스 가능하고, 해커에 의해 보안을 깨기 위해 사용될 수 있는 다양한 리소스들의 오퍼레이션 모드를 제어함에 의해 보안 모드 내의 엔트리 컨디션의 일부를 설정하기 위해 사용된다. 보안 컨디션 레지스터로부터 발행된 신호들은 또한 상태 머신에 의해 모니터된다. 예를 들어, 직접 메모리 액세스(DMA) 인에이블 신호(324)는 보안 메모리(312)를 액세스할 수 있는 DMA 제어기(도시되지 않음)를 인에이블하기 위해 사용된다.The secure condition register 320 is accessible as a memory mapped register in the non-secure mode and establishes a portion of the entry condition in the secure mode by controlling the operation mode of the various resources that can be used to break security by hackers. Used for. Signals issued from the secure condition register are also monitored by the state machine. For example, direct memory access (DMA) enable signal 324 is used to enable a DMA controller (not shown) that can access secure memory 312.

본 실시예에서, 스캔 체인 인터페이스(Scan I/F)는 테스팅을 위해 제공되고, 보안 위반 포인트를 제공할 수 있다. 그러나, 프로세서(200)는 스캔 체인 출력을 디스에이블하기 위한 수단을 제공하지 않는다. 프로세서(200)의 내부 신호들의 변경을 피하기 위해, 스캔 게이트(342)가 외부에 제공되어, 프로세서(200) 내의 최장 스캔 체인과 같은 클럭 사이클 수 동안, 프로세서(200)의 스캔 출력을 마스크하기 위해 사용된다. 이 마스킹 스킴은, 리셋시에 (카운터 리셋) 그리고, 디바이스가 외부 테스트 장치(도시되지 않음)의 제어 하에 인에이블된 스캔으로, 기능 모드로부터 테스트 모드로 스위치될 때마다 초기화된다.In this embodiment, the scan chain interface Scan I / F is provided for testing and may provide a security breach point. However, processor 200 does not provide a means for disabling scan chain output. In order to avoid altering the internal signals of the processor 200, a scan gate 342 is provided externally to mask the scan output of the processor 200 for a number of clock cycles, such as the longest scan chain in the processor 200. Used. This masking scheme is initiated at reset (counter reset) and every time the device is switched from the functional mode to the test mode with the scan enabled under the control of an external test apparatus (not shown).

외부 인터럽트 핸들러(360)가 제공되어 인터럽트 신호들의 세트를 수신하고, 이들을 두개의 인터럽트 신호들(362, 363)로 다중화하는데, 이들은 그 다음에 프로세서(200)에 의해 수신된다. 인터럽트 핸들러(360)는 소프트웨어에 의해 설정될 수 있는 글로벌 마스크 비트(364)를 갖고, 소프트웨어가 프로세서로의 모든 인터럽트들을 전역적으로 디스에이블하도록 해준다. 인터럽트 제어기는 글로벌 마스크 비트가 설정되고 인터럽트 신호들(362, 363)이 비활성화될 때마다 마스크 신호(325)를 어써트한다. 마스크 신호(325)가 어써트된 후, 인터럽트 제어기에 의해 출력된 인터럽트 신호들(362, 363)은, 글로벌 마스크 비트가 소프트웨어에 의해 클리어된 후까지 더 이상 어써트될 수 없다. SSM(300)은 인터럽트들이 인에이블되었는지 혹은 마스크되었는지를 판단하기 위해 마스크 신호(325)를 모니터한다.An external interrupt handler 360 is provided to receive the set of interrupt signals and multiplex them into two interrupt signals 362 and 363, which are then received by the processor 200. Interrupt handler 360 has a global mask bit 364 that can be set by software and allows the software to globally disable all interrupts to the processor. The interrupt controller asserts the mask signal 325 whenever the global mask bit is set and the interrupt signals 362 and 363 are deactivated. After the mask signal 325 is asserted, the interrupt signals 362, 363 output by the interrupt controller can no longer be asserted until after the global mask bit is cleared by software. SSM 300 monitors mask signal 325 to determine whether interrupts are enabled or masked.

외부 메모리로부터의 부팅은 시스템 내의 보안을 훼방하기 위한 헤커들에게 통상적인 수단이다. 본 실시예에서, 외부 부팅은 금지된다. 또한, SSM(300)은 외부 부팅이 시도될 때 어써트되는 부트 신호(327)를 모니터한다. 그러나, 프로그램 개발 동안 소프트웨어를 더 잘 디버그하기 위해 외부 부팅을 허용하는 것이 이로울 수 있다. 퓨즈 회로(328)가 제공되어 개발 디바이스를 제조 디바이스로부터 식별한다. 이완된 보안 모드가 개발 디바이스들 상에 제공될 수 있도록 하기 위해 디바이스-타입 신호(326)가 SSM(300)에 의해 모니터된다. 개발 디바이스들을 위해, SSM(300)은 부트 신호(327)를 무시한다.Booting from external memory is a common means for heckers to compromise security in the system. In this embodiment, external booting is prohibited. The SSM 300 also monitors the boot signal 327 asserted when an external boot is attempted. However, it may be beneficial to allow external boot to better debug the software during program development. A fuse circuit 328 is provided to identify the development device from the manufacturing device. The device-type signal 326 is monitored by the SSM 300 to allow a relaxed security mode to be provided on the development devices. For development devices, SSM 300 ignores boot signal 327.

도 3은 도 2의 ROM의 내용들 및 ROM을 공용 부분과 보안 부분으로 분리하기 위한 회로를 예시하는 블럭도이다. 공용 ROM(311)과 보안 ROM(310)은 본 실시예에서 싱글 ROM으로서 실시된다. 다른 실시예에서, 이들은 본 발명의 특징에 영향을 주지 않으면서 분리될 수 있다. 어드레스 디코더 회로(370a)는 ROM에 대한 어드레스들을 디코드하는 디코드 회로(370)의 일부이다. 유사한 회로들이 SRAM 및 다른 명령 또는 데이터 버스와 접속된 디바이스들에 제공된다.3 is a block diagram illustrating the contents of the ROM of FIG. 2 and a circuit for separating the ROM into a shared portion and a secure portion. The common ROM 311 and the secure ROM 310 are implemented as a single ROM in this embodiment. In other embodiments, they may be separated without affecting the character of the invention. The address decoder circuit 370a is part of the decode circuit 370 that decodes the addresses for the ROM. Similar circuits are provided for devices connected with SRAM and other command or data buses.

드라이버 회로(400)는, 공용 ROM 어드레스 혹은 보안 ROM 어드레스 각각에 대응하는 어드레스 디코드 신호(406 혹은 407)에 응답하여, ROM(310, 311)에 대응하는 어드레스가 명령 어드레스 버스(330a)상에 어써트될 때마다, 요청된 명령 데이터를 명령 버스(330b)상에 제공하기 위해 인에이블된다.The driver circuit 400 responds to the address decode signal 406 or 407 corresponding to each of the common ROM address or the secure ROM address, so that an address corresponding to the ROM 310, 311 is stored on the command address bus 330a. Each time it is written, it is enabled to provide the requested command data on the command bus 330b.

앞서 언급한 바와 같이, 보안 리소스가 보안 모드가 아닌 때에 액세스되면, 더미 데이터가 제공된다. 게이트 회로(404)는 보안 신호(302)와 보안 ROM 디코드 신호(407)를 모니터하고, 보안 ROM이 액세스되고 있고 보안 신호가 어써트되지 않았으면, 드라이버 회로(400)가 널(null) 데이터를 전달하도록 야기한다.As mentioned above, dummy data is provided when a secure resource is accessed when it is not in secure mode. The gate circuit 404 monitors the security signal 302 and the security ROM decode signal 407, and if the security ROM is being accessed and the security signal has not been asserted, the driver circuit 400 returns null data. Cause delivery.

도 4는 도 2의 시스템 상의 오퍼레이션의 보안 모드에 대한 액세스를 예시하는 플로우차트이고, 하기에서 보다 상세히 설명될 것이다. 단계들 500, 502, 504는 노멀, 비-특권 레벨의 실행에서 프로세서(200)상에 실행되는 에플리케이션 프로그램을 나타낸다. 가끔씩, 단계들 510, 512, 514, 516에 표시된 바와 같이, 오퍼레이션의 특권 레벨에서의 서비스를 위해 운영 시스템(OS)이 호출(502)된다. 호출되면, OS는 단계 510에서 상태를 저장하고, 특권 모드로 스위치하고, 단계 514에서 특권 오퍼레이션을 수행하고, 단계 516에서 상태를 복원하고, 단계 504의 비-특권 에플리케이션으로 리턴한다. 이 두 레벨들의 오퍼레이션들은 잘 알려져 있다.4 is a flowchart illustrating access to a secure mode of operation on the system of FIG. 2 and will be described in more detail below. Steps 500, 502, and 504 represent an application program running on processor 200 in execution of normal, non-privileged levels. Occasionally, as indicated in steps 510, 512, 514, 516, an operating system (OS) is invoked 502 for service at the privilege level of the operation. When invoked, the OS saves the state in step 510, switches to privileged mode, performs the privilege operation in step 514, restores the state in step 516, and returns to the non-privileged application of step 504. These two levels of operation are well known.

단계 512에서, 요청된 서비스가 보안 오퍼레이션에 대한 것인지가 판정되고, 그렇다면, 시스템은 보안 모드로 불리는 제3 보안 레벨로 진입할 것이다. 단계 520에서, OS 드라이버는 시스템을 보안 모드로 진입하기 위한 적당한 상태로 배치하기 위해 정리 작업 태스크를 수행한다. 이것은 인터럽트들을 마스킹하고, 보안위험을 줄 수 있는 다양한 리소스들을 디스에이블하기 위해 보안 컨디션 레지스터(320)를 세팅하고, 만일 메모리 관리 유닛(210)이 인에이블되었다면 활성 시퀀스에 대응하는 페이지 테이블 엔트리가 "캐시 불능"으로 마크되었는지 검증하는 것을 포함한다. 이것은 나중에 더 상세히 설명될 것이다.In step 512, it is determined whether the requested service is for a security operation, and if so, the system will enter a third security level called security mode. In step 520, the OS driver performs a cleanup task task to place the system in the proper state for entering the secure mode. This sets the security condition register 320 to mask interrupts, disable various resources that may pose a security risk, and if the memory management unit 210 is enabled, the page table entry corresponding to the active sequence is " Verifying that it is marked "not cacheable". This will be explained in more detail later.

단계 522에서, 도 3을 다시 참조하면, 공용 ROM(311) 내에 위치한 엔트리 시퀀스(412) 내의 엔트리 포인트(410)로 점프가 일어난다. 엔트리 시퀀스는, 임의의 타입의 보안 코드를 플랫폼상에서 실행하기 전에 "보안 서비스"가 에플리케이션에 의해 호출될 때마다, 실행되는 코드들이다. 이 시퀀스는 또한 보안 코드 실행을 인터럽트했던 예외로부터 리턴할 때 실행된다. 엔트리 시퀀스는 ROM 내의 하드-코드인 그리고 "엔트리 포인트"라고 불리는 정의된 어드레스에서 시작한다. 엔트리 시퀀스를 두개 부분으로 구성되는데, 그중 하나는 보안 신호 활성 시퀀스(413)이고 나머지 하나는 보안 모드 환경 설정 시퀀스(414)이다.In step 522, referring back to FIG. 3, a jump occurs to entry point 410 in entry sequence 412 located in common ROM 311. An entry sequence is codes that are executed each time a "security service" is called by the application before executing any type of security code on the platform. This sequence is also executed when returning from the exception that interrupted the execution of the security code. The entry sequence starts at a defined address that is hard-coded in the ROM and called an “entry point”. The entry sequence consists of two parts, one of which is a secure signal activation sequence 413 and the other is a secure mode configuration sequence 414.

활성 시퀀스의 목적은, 프로세서(200)의 실행 플로우를 인수하고, 임의의 다른 신뢰되지 않는 코드에 의해 선제 공격 당하지 않도록 보장하는 것이다. 엔트리 시퀀스의 이 부분 동안, 어떤 포인트에서, 보안 모드로 진입하고, 보안 리소스들(ROM, SRAM, 주변 장치, 등)의 액세스에 대한 제한을 풀기 위해, 보안 신호(302)가 어써트된다.The purpose of the active sequence is to take over the flow of execution of the processor 200 and to ensure that it is not preempted by any other untrusted code. During this portion of the entry sequence, at some point, a security signal 302 is asserted to enter a secure mode and to remove restrictions on access of secure resources (ROM, SRAM, peripherals, etc.).

환경 시퀀스(414)의 목적은 보안 코드 실행을 위한 환경을 설정하는 것이다. 바람직하게, 보안 환경을 설정함에 의해, 안전하게 프로그램 및 데이터 캐시를 가능하게 하고, 인터럽트 예외들을 처리할 수 있다.The purpose of the environment sequence 414 is to set up an environment for secure code execution. Preferably, by setting up a secure environment, it is possible to securely enable program and data caching and to handle interrupt exceptions.

보안 신호 활성 시퀀스(413)는 공용 ROM에 배치되는 반면에, 보안 모드 환경 설정 시퀀스(414)는 보안 ROM 내에 배치된다. 엔트리 시퀀스 (첫번째 부분 + 두번째 부분)의 전체 코드 사이즈는 1Kbyte 이하일 것이 요구되어, 본 실시예의 MMU 트랜잭션 테이블들 내의 최소 메모리 섹션 1KB 페이지 내에 맵핑될 수 있다. 이러한 방식에서, 엔트리 시퀀스 가상 어드레스들은, 엔트리 시퀀스의 실행 동안 어떤 적절한 포인트에서 프로세서를 선제 공격하기 위해 두개의 섹션들에 걸쳐 맵핑될 수 없다. 또한, 엔트리 시퀀스의 메모리 페이지가 캐시 부능이거나 명령 캐시가 엔트리 시퀀스 실행 동안 디스에이블되는 것도 중요하다.The secure signal activation sequence 413 is placed in the public ROM, while the secure mode configuration sequence 414 is placed in the secure ROM. The total code size of the entry sequence (first part + second part) is required to be 1 Kbyte or less, so that it can be mapped in a minimum memory section 1 KB page in the MMU transaction tables of this embodiment. In this manner, entry sequence virtual addresses cannot be mapped across two sections to preemptively attack the processor at any suitable point during the execution of the entry sequence. It is also important that the memory page of the entry sequence is cache-capable or the instruction cache is disabled during entry sequence execution.

보안 이동 테이블(Security Translation Table:STT)(420)과 보안 인터럽트 벡터 테이블(SIVT)(430)이 나중에 더 상세히 설명될 것이다.Security translation table (STT) 420 and security interrupt vector table (SIVT) 430 will be described in more detail later.

1 KByte 코드 사이즈가 주어진 실시예에 대해 너무 제한적이라고 보인다면, MMU는 활성 시퀀스(413)의 끝에서 디스에이블될 수 있고, 환경 시퀀스(414)의 끝에서 다시 인에이블된다. 이 경우에, 1 KByte 제약은 활성 시퀀스에만 적용될 것이다.If the 1 KByte code size seems too limited for a given embodiment, then the MMU may be disabled at the end of the active sequence 413 and re-enabled at the end of the environment sequence 414. In this case, the 1 KByte constraint would apply only to the active sequence.

도 4를 다시 참조하면, 도 5와 관련하여 보다 상세히 설명되겠지만, 단계 524에서 활성 시퀀스는 SSM(300)에 의해 그 정확성이 체크된다. 활성 시퀀스가 정확하게 수행되지 않으면, SSM(300)은 단계 540에서 위반 신호를 어써트하고 시스템은 리셋된다. 보안 환경은, 나중에 보다 상세히 설명되겠지만, 단계 526에서, 환경 설정 시퀀스(414)를 실행함에 의해 셋업된다.Referring again to FIG. 4, as will be described in more detail with respect to FIG. 5, at step 524 the active sequence is checked for accuracy by the SSM 300. If the activation sequence is not performed correctly, the SSM 300 asserts a violation signal at step 540 and the system is reset. The secure environment, as will be described in more detail later, is set up in step 526 by executing the configuration sequence 414.

일단 보안 환경이 설정되면, 단계 528에서 요청된 보안 오퍼레이션이, 비-특권 에플리케이션에 의해 처음 요청된 바와 같이, 보안 코드(416)로부터 실행된다. 본 발명의 일 특징에 따르면, 보안 코드(416)는 보안 모드 동안에만 보안 모드 지시기(319)를 턴온하기 위해, 단계 528.1에서 GPIO 래치(318)에 기록을 행하는 명령을 포함한다. 그런 다음 보안 코드(416)는 단계 528.2에서 유저에게 비밀 정보를 제공할 것을 요청할 수 있고, 그런 다음, GPIO 래치에 다시 기록을 행함에 의해 단계 528.3에서 보안 모드 지시기를 턴오프할 수 있다. 추가의 보안 프로세싱이 단계 528.4에서 수행된다. 이 특별한 시퀀스는 예시만을 위한 것임을 이해해야 한다. 예를 들어, 보안 모드 지시기를 턴온하기 전에 다른 보안 프로세싱이 수행될 수 있다. 보안 모드 지시기는, 예를 들면, 잠시 턴온되었다가, 잠시 턴오프된 다음에, 다시 턴온될 수 있다. 에플리케이션 프로그램에 의해 요청되면, 수많은 다른 시퀀스들이 수행될 수 있다.Once the secure environment is established, the security operation requested in step 528 is executed from the security code 416, as originally requested by the non-privileged application. According to one aspect of the present invention, security code 416 includes instructions to write to GPIO latch 318 in step 528.1 to turn on security mode indicator 319 only during the secure mode. Security code 416 may then request the user to provide the secret information at step 528.2, and then turn off the security mode indicator at step 528.3 by writing back to the GPIO latch. Additional security processing is performed in step 528.4. It should be understood that this particular sequence is for illustration only. For example, other security processing may be performed before turning on the security mode indicator. The security mode indicator may be turned on for a moment, then turned off for a while, and then turned on again. If requested by the application program, numerous other sequences can be performed.

보안 오퍼레이션들의 완료 후, 단계 530에서 보안 모드를 퇴출하는 노멀 방법은, 보안 ROM 엑시트 시퀀스(418) 내의 "노멀 엑시트 시퀀스"로 점프하는 것이다. 노멀 엑시트 시퀀스의 목적은 보안 모드 엑시트 프로시져에 순응하고, 엑시트 때에 "비밀" 콘텐츠의 보호를 보장하는 것이다. 노멀 엑시트 프로시져는 보안 ROM 내의 임의의 장소에 위치될 수 있으며, 보안 상태 머신에서 하드-코드된 어드레스 체크는 없다.After completion of the security operations, the normal way to exit the security mode in step 530 is to jump to the "normal exit sequence" in the secure ROM exit sequence 418. The purpose of a normal exit sequence is to conform to a secure mode exit procedure and to ensure protection of "secret" content at the exit. The normal exit procedure can be located anywhere in the secure ROM, and there is no hard-coded address check in the secure state machine.

보안 모드인 동안, SSM(300)은 신호들(321-327 및 331)을 계속 모니터한다. 이 신호들을 기초로, SSM은 보안 위반을 검출할 수 있다. 보안 모드의 위반이 발생할 때마다, SSM은 그것을 검출하고, 보안 신호를 해제하고, 아크 542에서 표시된바와 같이, 보안 위반을 생성한다. 위반은 디바이스의 글로벌 리셋을 일으킨다. 보안 위반은 SSM을, 리셋에 의해서만 여기될 수 있는, 블로킹 상태로 몬다. 다음의 위반들이 검출될 수 있다: 즉, 위반 1 - 전체 ROM 및 RAM 어드레스 범위 밖의 어드레스에서 명령이 페치됨, 위반 2 - 프로세서(200)가 리셋됨, 위반 3 - 테스트, 에뮬레이션, 혹은 디버그 기능들이 활성화됨.While in secure mode, SSM 300 continues to monitor signals 321-327 and 331. Based on these signals, the SSM can detect a security breach. Whenever a violation of the security mode occurs, the SSM detects it, releases the security signal, and generates a security violation, as indicated at arc 542. The violation causes a global reset of the device. A security breach drives the SSM into a blocking state, which can only be excited by a reset. The following violations may be detected: violation 1-instruction is fetched at an address outside the full ROM and RAM address range, violation 2-processor 200 is reset, violation 3-test, emulation, or debug functions Activated.

예외가 발생할 때, 프로세서(200)는 인터럽트 벡터 테이블(IVT) 내의 대응하는 예외 벡터로 점프하고 그로부터 특정한 인터럽트 루틴으로 다시 보내진다. IVT는 일반적으로 OS에 의해 관리되며, 보안 SRAM 내에 배치되지 않는다. 따라서, 그의 콘텐트는 보호되지 않고, 신뢰될 수 없다. 더구나, 보안의 관점에서, 다음과 같은 두가지 이유 때문에, 프로세서가 예외 벡터로 직접 점프하는 것을 수용할 수 없다: 즉, (1) 전체 보안 스킴과 양립될 수 없는 것으로, 보안 메모리 어드레스 범위 외부로 "점프"하는 것은 보안 위반으로 여겨지고, (2) 캐시들과 프로세서 레지스터들이 "비밀" 콘텐츠로 채워져 있어서, 보안 비트를 해제하고 비-보안 코드를 실행하기 전에 클리어될 필요가 있기 때문이다. 보안 모드인 동안 인터럽트들을 허용하기 위해, 보안 IVT가 제공된다.When an exception occurs, the processor 200 jumps to the corresponding exception vector in the interrupt vector table ITV and sends it back to the specific interrupt routine. IVTs are generally managed by the OS and are not placed in secure SRAM. Thus, its content is not protected and cannot be trusted. Furthermore, from a security point of view, the processor cannot accept a jump directly to the exception vector for two reasons: (1) out of the secure memory address range, incompatible with the entire security scheme. "Jump" is considered a security breach, and (2) caches and processor registers are filled with "secret" content, which needs to be cleared before the security bit is cleared and the non-secure code is executed. In order to allow interrupts while in secure mode, a secure IVT is provided.

도 5는 보안 상태 머신(300)의 오퍼레이션을 보다 상세히 예시하는 상태도이다. 보안 상태 머신은 보안 모드를 진입하기 위해 ROM 내의 활성 시퀀스의 실행 동안 어떤 포인트에서 보안 신호를 어써트한다. 엔트리 시퀀스의 이 부분의 목적은, 보안 상태 머신에 의해 프로브되는 신호들에 대해 이벤트들의 정의된 시퀀스를 생성하는 것이다. 이 이벤트들은 보안 신호를 설정하기 위해 요구되는 컨디션들이충족되는 것을 책임지고, 이들은 SSM에 의해 추적된다. "컨디션" 신호들은 활성 시퀀스 동안 쭉 모니터된다. 에트리 컨디션들중 임의의 것이 충족되지 않았다거나 혹은 활성 시퀀스의 끝 이전에 유효가 중단되면, 보안 상태 머신은 위반 상태(630)로 전이하고, 보안 위반 신호(304)를 어써트할 것이다. SSM에 의해 모니터되는 엔트리 컨디션들 뒤에는 두개의 중요한 목적이 있다. 즉, (1) 프로세서(200)가 활성 시퀀스 코드를 페치하여 무엇보다도 이를 실행하고, (2) 신뢰되는 코드가 CPU 실행 플로우를 완전히 인수하도록 하고, 통제된 제어 오퍼레이션을 통한 것을 제외하고는, 그 어떤 것도, 보안 신호가 설정되기 전 혹은 후에, 검출되지 않고서, 그것을 선제 공격할 수 없도록 하기 위함이다.5 is a state diagram illustrating the operation of the secure state machine 300 in more detail. The secure state machine asserts a security signal at some point during the execution of an active sequence in the ROM to enter the secure mode. The purpose of this part of the entry sequence is to generate a defined sequence of events for the signals probed by the secure state machine. These events are responsible for satisfying the conditions required to establish a security signal, which are tracked by the SSM. The "condition" signals are continuously monitored during the active sequence. If any of the etry conditions have not been met or have ceased validity before the end of the active sequence, the security state machine will transition to violation state 630 and assert a security violation signal 304. There are two important objectives behind the entry conditions monitored by the SSM. That is, except that (1) the processor 200 fetches the active sequence code and executes it above all, and (2) allows the trusted code to fully take over the CPU execution flow, and through controlled control operations, Nothing is intended to prevent preemptive attack before or after the security signal is set, without being detected.

활성 시퀀스는 명령 어드레스 버스상에 고유의 패턴을 생성하는 방식으로 구성된다. 그 패턴은 활성 시퀀스 코드의 (물리적) 어드레스 값과 이들 어드레스가 버스 상에 나타내야 할 상대적인 시각에 의해 구성된다. 그럼에도 불구하고, 패턴은 메모리 시스템 액세스 지연과 무관하게 만들어진다. 정확한 활성 시퀀스 버스 패턴은 시뮬레이션으로부터 구해지고 SSM 내에 하드-코드된다. 따라서, SSM은 활성 시퀀스 버스 패턴에 대한 전적인 순응을 보장한다. 전형적으로, 활성 시퀀스의 마지막 명령은 브랜치 명령이고, 그리고 캐시 플러시 명령 혹은 캐시 디스에이블 명령 말고는 활성 시퀀스 내의 다른 모든 명령들은 NOP 명령들이다.The active sequence is constructed in such a way as to generate a unique pattern on the command address bus. The pattern consists of the (physical) address values of the active sequence codes and the relative time these addresses should appear on the bus. Nevertheless, the pattern is made independent of the memory system access delay. The exact active sequence bus pattern is obtained from the simulation and hard-coded in the SSM. Thus, the SSM guarantees full compliance with the active sequence bus pattern. Typically, the last instruction in the active sequence is a branch instruction, and all other instructions in the active sequence other than the cache flush instruction or the cache disable instruction are NOP instructions.

보안 모드에 들어가서 보안 신호가 어써트된 후에, 엔트리 컨디션들은 유효일 것이 필요로 되지 않고 SSM은 이들을 계속해서 테스트하지 않는다. 그러나, SSM은, 나중에 설명되는 바와 같이, 보안 모드 위반을 검출하기 위해 여러 신호들을 계속해서 프로브한다. 보안 메모리가 유효하게 진입된 후까지는 보안 모드 엑시트 컨디션들은 테스트되지 않는다.After entering the secure mode and the security signals are asserted, the entry conditions do not need to be valid and the SSM does not continue to test them. However, the SSM continues to probe several signals to detect security mode violations, as described later. Secure mode exit conditions are not tested until secure memory is entered.

도 5를 다시 참조하면, 상태 600은, SSM이 엔트리 시퀀스의 엔트리 포인트 어드레스(ESA[EP])를 찾기 위해 어드레스 버스(330)를 모니터하는 동안의 아이들 상태이다. 일단 엔트리 포인트 어드레스가 검출되면, SSM은, 모든 엔트리 컨디션들이 충족되었으면 상태 601로 전이하고, 그렇지 않으면, 위반 상태 630으로 전이하여 위반 신호(304)를 어써트한다.Referring again to FIG. 5, state 600 is an idle state while the SSM monitors the address bus 330 to find the entry point address (ESA [EP]) of the entry sequence. Once the entry point address is detected, the SSM transitions to state 601 if all entry conditions have been met, otherwise transitions to violation state 630 to assert the violation signal 304.

상태들 601-615 각각은 정확한 엔트리 시퀀스 어드레스 및 대응하는 엔트리 컨디션 신호들을 검출함에 의해 순차적으로 횡단되어야 하고, 그렇지 않다면, SSM은 위반 상태 630으로 전이한다. 시퀀스가 정확하게 횡단되었다면, 보안 모드 상태 620에 진입되고 보안 신호(302)가 어써트된다.Each of states 601-615 must be traversed sequentially by detecting the correct entry sequence address and corresponding entry condition signals, otherwise the SSM transitions to violation state 630. If the sequence has been traversed correctly, security mode state 620 is entered and security signal 302 is asserted.

예를 들면, 상태 600으로부터 상태 601로 전이하기 위해, 엔트리 포인트 명령의 어드레스는 모든 정확한 컨디션 신호들과 함께 나타나야 한다. 나타나는 그 다음 어드레스는 상태 602로 전이하기 위해 그 다음 시퀀스 명령의 어드레스이어야 하고, 그렇지 않다면 SSM은 위반 상태 630으로 전이한다. 유사한 방식으로, 활성 시퀀스의 각 어드레스는, 상태들 602-615로, 그리고 최종적으로 보안 모드 상태 620로 전이하기 위해 나타나야 한다. 부정확한 어드레스, 어드레스 타이밍, 혹은 부정확한 컨디션 신호의 변화는, 아크 601a에 표시된 바와 같이, 위반 상태 630으로의 전이를 초래할 것이다. 유사하게, 활성 시퀀스는, 상태 신호들이 활성 시퀀스 액세스들중의 임의의 한 액세스가 캐시가능함을 나타내면, 실행중지된다.For example, to transition from state 600 to state 601, the address of the entry point command must appear with all correct condition signals. The next address that appears should be the address of the next sequence command to transition to state 602, or the SSM transitions to violation state 630. In a similar manner, each address in the active sequence must appear to transition to states 602-615 and finally to secure mode state 620. Changes in incorrect address, address timing, or inaccurate condition signals will result in a transition to violation state 630, as indicated by arc 601a. Similarly, the active sequence is disabled if the status signals indicate that any one of the active sequence accesses is cacheable.

보안 모드 상태 620인 동안 그리고 보안 루틴의 어드레스(ESA[SR])가 보안 메모리에 들어있음을 나타내는 것으로 유효하게 검출된 후, 어드레스가 공용 ROM 내에 있는 것이 SSM에 의해 검출되면, 아크 621에 표시된 바와 같이, SSM은 아이들 모드 600으로 다시 전이한다. 어드레스가 ROM 혹은 SRAM의 외부에 있다고 SSM에 의해 검출되거나, 혹은 모니터되는 신호의 부정확한 변화에 의해 보안 위반이 지시되면, SSM은 아크 622에 의해 표시된 바와 같이 위반 상태 630으로 전이한다.If it is detected by the SSM while in secure mode state 620 and validly detected that the address (ESA [SR]) of the security routine is in secure memory, then it is indicated by arc 621, as indicated by SSM. Likewise, the SSM transitions back to idle mode 600. If a security violation is indicated by the SSM that an address is outside of the ROM or SRAM, or is indicated by an incorrect change in the monitored signal, the SSM transitions to a violation state 630 as indicated by arc 622.

명령 캐시는 활성 시퀀스 동안 디스에이블될 필요가 없으며, 명령의 캐시-불능으로 엔트리 시퀀스의 강건함을 보장하기에 충분하다. 그럼에도 불구하고, 캐시를 디스에이블되도록 하는 것은 캐시 플러시 메카니즘들의 악용을 기반으로 하는 해킹 시도들을 제거할 것이다.The instruction cache does not need to be disabled during the active sequence, and is sufficient to ensure the robustness of the entry sequence due to cache-inability of the instruction. Nevertheless, having the cache disabled will eliminate hacking attempts based on exploitation of cache flush mechanisms.

보안 모드 환경 설정 시퀀스Secure Mode Preference Sequence

도 4를 다시 참조하면, 단계 526에서, 보안 ROM으로부터 환경 설정 시퀀스(414)를 실행함에 의해 보안 환경이 셋-업된다. 이 시퀀스의 목적은 보안 코드 실행을 위한 적합한 환경을 설정하는 것이다. 보안 환경은 프로그램 및 데이터 캐시, 실시간 인터럽트, 및 잠재적으로 MMU를 가능하게 해준다. 이 단계들의 일부는 보안 모드 오퍼레이션들에 특정적이고, 또한 일부는 활성 시퀀스를 호출하기 전에 OS에 의해 노멀하게 수행되었어야 하는 오퍼레이션들이다. 앞서 논의한 바와 같이, 보안 모드는 기본적인 OS 오퍼레이션들을 신뢰할 수 없다. 그러므로, 환경 설정 시퀀스는 보안 모드 완전성에 필수적인 캐시 플러시, TLB 플러시, 등의콘텍스트 스위치 오퍼레이션들의 일부를 수행할 필요가 있다.Referring again to FIG. 4, at step 526, the secure environment is set up by executing a configuration sequence 414 from the secure ROM. The purpose of this sequence is to set up a suitable environment for secure code execution. The secure environment enables program and data caches, real-time interrupts, and potentially MMUs. Some of these steps are specific to secure mode operations, and some are operations that should have been performed normally by the OS before invoking the active sequence. As discussed above, the secure mode cannot trust basic OS operations. Therefore, the configuration sequence needs to perform some of the context switch operations, such as cache flush, TLB flush, etc., which are essential for secure mode integrity.

시스템 실시예들System embodiments

도 6은 예를 들어 디스플레이(14), 및 디스플레이(14) 주위에 배치된 집적된 입력 센서들(12a, 12b)을 구비한 개인 휴대 정보 단말기(PDA)(10) 등의, 모바일 전화 통신 디바이스 내에 본 발명을 실시한 집적 회로의 바람직한 실시예를 도시한다. 디지털 시스템(10)은 MPU 사설 주변 장치(142)인 어댑터(도시되지 않음)를 통해 입력 센서들(12a)에 접속되는 도 1에 따른 메가셀(100)을 포함한다. 스타일러스 혹은 핑거는 입력 센서들(12a, 12b)을 통해 PDA에 정보를 입력하기 위해 사용될 수 있다. 디스플레이(14)는 프레임 버퍼(136)와 유사한 로컬 프레임 버퍼를 통해 메가셀(100)에 접속된다. 디스플레이(14)는 예를 들면 MPEG 비디오 윈도우(14a), 공유된 텍스트 문서 윈도우(14b), 및 3차원 게임 윈도우(14c) 등의 중첩하는 윈도우들 내에 그래픽 및 비디오 출력을 제공한다.FIG. 6 illustrates a mobile telephony device, such as, for example, a display 14, and a personal digital assistant (PDA) 10 having integrated input sensors 12a, 12b disposed around the display 14. The preferred embodiment of the integrated circuit in which the present invention is implemented is shown. The digital system 10 includes a megacell 100 according to FIG. 1 connected to input sensors 12a via an adapter (not shown) which is an MPU private peripheral 142. A stylus or finger can be used to enter information into the PDA through input sensors 12a and 12b. Display 14 is connected to megacell 100 through a local frame buffer similar to frame buffer 136. Display 14 provides graphical and video output within overlapping windows, such as, for example, MPEG video window 14a, shared text document window 14b, and three-dimensional game window 14c.

무선 주파수(RF) 회로(도시되지 않음)는 안테나(18)에 접속되고 메가셀(100)에 의해 DSP 사설 주변 장치(140)로서 구동되어 무선 네트워크 링크를 제공한다. 커넥터(20)는 케이블 어댑터 모뎀(도시되지 않음)에 접속되고, 결국 메가셀(100)에 DSP 사설 주변 장치(140)로서 접속되어, 예를 들어 오피스 환경에서의 정적인 용도 동안의 사용을 위해 유선 네트워크 링크를 제공한다. 단거리 무선 링크(23)는 또한 수화기(22)에 접속되고 DSP 사설 주변 장치(140)로서 메가셀(100)에 접속된 저전력 송신기(도시되지 않음)에 의해 구동된다. 마이크로폰(24)도 유사하게메가셀(100)에 접속되어, 마이크로폰(24)과 무선 수화기(22)를 사용하여 양방향 오디오 정보가 무선 혹은 유선 네트워크 상에서 다른 유저들과 교환될 수 있다.A radio frequency (RF) circuit (not shown) is connected to the antenna 18 and driven by the megacell 100 as the DSP private peripheral 140 to provide a wireless network link. The connector 20 is connected to a cable adapter modem (not shown), which in turn is connected to the megacell 100 as a DSP private peripheral 140, for use during static use, for example in an office environment. Provide a wired network link. The short range wireless link 23 is also driven by a low power transmitter (not shown) connected to the handset 22 and connected to the megacell 100 as a DSP private peripheral 140. Microphone 24 is similarly connected to megacell 100 so that bi-directional audio information can be exchanged with other users over a wireless or wired network using microphone 24 and wireless handset 22.

메가셀(100)은 무선 네트워크 링크 및/또는 유선계 네트워크 링크를 통해 송신 및 수신되는 오디오 및 비디오/그래픽 정보를 위한 모든 인코딩 및 디코딩을 제공한다. 바람직하게, 메가셀(100) 역시 보안 모드 오퍼레이션을 제공한다. 본 명세서에서 설명된 바와 같이, 보안 모드 지시기 램프(30)는, 메가셀(100)이 보안 모드에서 실행중인 동안 실행된 코드에 의해서만 턴온될 수 있다. 이에 의해 보안 모드 지시기 램프(30)는, PDA(10)의 유저에게, 언제가 PDA상에서 실행하는 에플리케이션에 요주의 데이터를 제공하기에 안전한지를 지시한다. 이러한 방식으로, PDA(10)는 모바일 폰 환경에서 전자 코머스(e-코머스) 및 모바일 코머스(m-코머스) 보안 문제들을 해결하기 위한 솔루션을 제공한다.Megacell 100 provides all encoding and decoding for audio and video / graphic information transmitted and received over a wireless network link and / or a wired network link. Preferably, megacell 100 also provides a secure mode operation. As described herein, the secure mode indicator lamp 30 can only be turned on by code executed while the megacell 100 is running in secure mode. As a result, the security mode indicator lamp 30 instructs the user of the PDA 10 when it is safe to provide the data of interest to an application running on the PDA. In this way, PDA 10 provides a solution for solving electronic commerce (e-commerce) and mobile commerce (m-commerce) security problems in a mobile phone environment.

물론 많은 다른 타입의 통신 시스템들 및 컴퓨터 시스템들도 본 발명으로부터 효과를 얻을 수 있다고 생각된다. 이러한 다른 컴퓨터 시스템들의 예들로는 휴대용 컴퓨터들, 스마트 폰들, 웹 폰들, 등이 포함된다. 보안은 데스크톱, 유선-전력 공급형 컴퓨터 시스템, 및 마이크로-콘트롤러 에플리케이션들에서도 우려가 되므로, 특히 신뢰성의 견지로부터, 본 발명은 그러한 유선-전력 공급형 시스템들에도 효과를 제공할 수 있다고 생각된다.Of course, many other types of communication systems and computer systems are also contemplated to benefit from the present invention. Examples of such other computer systems include portable computers, smart phones, web phones, and the like. Since security is also a concern in desktops, wired-powered computer systems, and micro-controller applications, in particular in view of reliability, it is contemplated that the present invention may also benefit such wired-powered systems.

디지털 시스템(100)의 제조는, 트랜지스터 디바이스들을 형성하기 위해 다양한 양의 불순물들을 반도체 기판 내에 주입하고 불순물들을 기판 내의 선택된 깊이로 확산하는 다수의 단계들이 수반된다. 불순물들의 배치를 제어하기 위해 마스크들이 형성된다. 도전성 물질 및 절연성 물질로 된 다수의 층들이 피착되고 에칭되어 여러 디바이스들을 상호 접속한다. 이 단계들은 클린 룸 환경에서 수행된다.Fabrication of the digital system 100 involves a number of steps of injecting various amounts of impurities into a semiconductor substrate and diffusing the impurities to a selected depth within the substrate to form transistor devices. Masks are formed to control the placement of the impurities. Multiple layers of conductive and insulating materials are deposited and etched to interconnect the various devices. These steps are performed in a clean room environment.

데이터 처리 장치를 제조하는 비용의 상당 부분은 테스팅과 관련된다. 웨이퍼 형태인 동안, 개개의 디바이스들은 오퍼레이션 상태로 바이어스되고 기본적인 오퍼레이션 기능들이 프로브 테스트된다. 그런 다음, 웨이퍼는 베어 다이(bare die) 혹은 패키징된 형태로 판매될 수 있는 개개의 다이스(dice)로 분리된다. 패키징 후, 완성된 부품들은 오퍼레이션 상태로 바이어스되어 오퍼레이션 기능이 테스트된다.A significant portion of the cost of manufacturing data processing devices is related to testing. While in wafer form, the individual devices are biased into the operational state and the basic operation functions are probe tested. The wafer is then separated into individual dice that can be sold in bare die or packaged form. After packaging, the finished parts are biased into the operational state to test the operation function.

본 명세서에 사용되는 용어들 "인가된", "접속된" 및 "접속"은 전기적으로 접속되는 것을 의미하고, 추가적인 소자들이 전기적 접속 경로 내에 있을 수도 있다. 용어 "연관된"은 연관된 포트에 의해 제어되는 메모리 리소스에서와 같이, 제어하는 관계를 의미한다. 어써트, 어써션, 디어써트, 디어써션, 부인하다, 부인이란 용어들은, 활성 하이 및 활성 로우 신호의 혼성을 다룰 때와 혼동을 피하기 위해 사용된다. 어써트 및 어써션은 신호가 활성, 또는 논리적 참으로 주어짐을 나타내기 위해 사용된다. 디-어써트, 디-어써션, 부인하다 및 부인은 신호가 비활성, 혹은 논리적 거짓으로 주어짐을 지시하기 위해 사용된다.As used herein, the terms “applied”, “connected” and “connected” mean electrically connected, and additional elements may be in the electrical connection path. The term "associated" means a controlling relationship, such as in a memory resource controlled by an associated port. The terms assert, assert, deassert, deny, deny, deny are used to avoid confusion when dealing with the hybrid of active high and active low signals. Assertions and assertions are used to indicate that a signal is active, or given logically true. De-asserts, de-asserts, denies, and denies are used to indicate that a signal is given as inactive or logically false.

따라서, 디지털 시스템은, 프로세서 코어, 명령 및 데이터 캐시들, 기록 버퍼 및 메모리 관리 유닛을 포함하는 프로세서 시스템상에 비-침입 방식으로 내장된 보안 모드(세번째 레벨의 특권)가 구비된다. 보안 실행 모드는, 오로지 신뢰되는 소프트웨어가 ROM 내에 저장된 코드인, 플랫폼상에 제공된다. 특히, OS는 신뢰되지 않고, 모든 원시 에플리케이션들도 신뢰되지 않는다. 보안 모드 지시기는 유저에게 디바이스가 보안 모드임을 알리기 위해 제공된다.Thus, the digital system is equipped with a secure mode (third level of privilege) embedded in a non-intrusive manner on the processor system including the processor core, instruction and data caches, write buffer and memory management unit. Secure execution mode is provided on the platform where only trusted software is code stored in ROM. In particular, the OS is not trusted, and not all native applications are trusted. The secure mode indicator is provided to inform the user that the device is in secure mode.

본 발명은 예시적인 실시예들을 참조하여 설명되었으나, 이 설명은 제한적으로 여겨지지 말하야 할 것이다. 본 명세서의 설명을 참조하면 본 발명의 다양한 다른 실시예들도 가능함을 당업자들은 명백히 알 것이다. 예를 들어, 모든 방식의 프로세서 타입들, 예를 들면 RISC, ISC, 와이드 워드(wide word), DSP 등이, 본 명세서에서 설명된 보안 모드 기능을 사용함에 의해 향상될 수 있다.Although the present invention has been described with reference to exemplary embodiments, this description should not be considered as limiting. It will be apparent to those skilled in the art that various other embodiments of the invention are possible with reference to the description herein. For example, all types of processor types, such as RISC, ISC, wide word, DSP, etc., can be enhanced by using the security mode functionality described herein.

다른 실시예에서는, 보안 환경이 몇몇의 개시자 리소스(initiator resources)들, 예를 들면 DSP들 간의 보안 리소스들의 공유를 허락하기 위한 것으로 확장될 수 있다. 그러한 실시예에서, 각 개시자 리소스는 보안 상태 머신에 의해 모니터되어 상술한 보안 원리를 구현할 수 있다.In another embodiment, the security environment may be extended to allow sharing of some initiator resources, for example security resources between DSPs. In such embodiments, each initiator resource may be monitored by a secure state machine to implement the security principles described above.

상이한 실시예들에서, 상이한 보안 하드웨어 보충물들이 제공될 수 있는데, 이들에는 워치도그 타이머들, 암호화/복호화 하드웨어 액셀러레이터, 랜덤 넘버 발생기(RNG), 등의 다양한 주변 장치들, 및 키패드, LCD, 터치 스크린, 등의 다양한 I/O 디바이스들이 포함된다.In different embodiments, different security hardware supplements may be provided, including various peripherals such as watchdog timers, encryption / decryption hardware accelerators, random number generators (RNGs), and keypads, LCDs, touches, etc. Various I / O devices, such as screens, are included.

도 1을 다시 참조하면, 다른 실시예에서, 제2 SSM이 DSP(104) 내에 구현되어 DSP(104)상에서 실행하는 보안 소프트웨어 레이어에 대해 프로세서(102)상에서와 유사한 방식으로 보안 신호를 생성할 수 있다. 이 실시예에서, 보안 신호의 버스형 버젼이 트래픽 제어 버스(110) 내에 포함되어, 프로세서(102) 혹은 DSP(104)에 의해 개시된 개개의 트랜잭션들은, 각각의 SSMs에 의해 생성된 보안 신호에 따라,공유된 주변 장치들(116)중의 특정 장치들 등의 보안 리소스들에 대한 액세스를 허여받을 수 있다.Referring again to FIG. 1, in another embodiment, a second SSM may be implemented in the DSP 104 to generate a security signal in a similar manner as on the processor 102 for the security software layer executing on the DSP 104. have. In this embodiment, a bused version of the security signal is included in the traffic control bus 110 such that individual transactions initiated by the processor 102 or the DSP 104 depend on the security signal generated by each SSMs. Access to secure resources, such as specific ones of the shared peripherals 116, may be granted.

도 1을 다시 참조하면, 다른 실시예에 있어서, 보안 신호는 메가셀(100)로부터 확장될 수 있어서 레벨 3 리소스들이 보안 방식으로 작동될 수 있다.Referring again to FIG. 1, in another embodiment, the security signal may be extended from the megacell 100 such that level 3 resources may be operated in a secure manner.

활성 시퀀스, 환경 셋-업 시퀀스, 및 엑시트 시퀀스들은 다양한 실시예들의 요건들에 따라 변화될 수 있다. 예를 들어, 상이한 명령 파이프라인 길이들과 상이한 캐시 라인 길이들이, 활성 시퀀스에서의 변화들을 요구한다. 다른 실시예에 있어서, 단계 520에서 수행된 정리 작업 태스크들은 활성 시퀀스 내에 포함될 수 있다.Active sequences, environment set-up sequences, and exit sequences may vary depending on the requirements of various embodiments. For example, different instruction pipeline lengths and different cache line lengths require changes in the active sequence. In another embodiment, the cleanup task tasks performed in step 520 may be included in the active sequence.

다른 실시예에 있어서, 보안 모드 내로 진입하기 위한 수단은 본 명세서에 설명된 SSM과 다를 수 있다. 오퍼레이션의 보안 모드가 임의의 수단에 의해 얻어지게 되면, 보안 모드인 동안에만 가용적인 보안 모드 지시기에 대한 액세스가, 유저에게, 시스템이 보안 모드에서 운영되고 있음을 지시하기 위해, 사용된다.In another embodiment, the means for entering into the secure mode may be different than the SSM described herein. Once the security mode of the operation is obtained by any means, access to the available security mode indicators is only used to indicate to the user that the system is operating in the secure mode while in the secure mode.

다른 실시예에 있어서, GPIO 래치 이외의 다른 수단이 보안 모드 지시기를 활성화하기 위해 제공될 수 있다. 예를 들어, 보안 모드 레지스터(319)로부터의 비트가 사용될 수 있다. 유사하게, 보안 디바이스들(316a 혹은 316b)로부터의 비트가 사용될 수 있다. 주요한 요건은, 그 수단은 보안 모드인 동안에만 액세스 가능하다는 것이다.In other embodiments, other means than the GPIO latch may be provided to activate the secure mode indicator. For example, bits from the secure mode register 319 may be used. Similarly, a bit from secure devices 316a or 316b may be used. The main requirement is that the means are only accessible while in secure mode.

다른 실시예에 있어서, 보안 모드 지시기는 보안 신호에 직접 반응할 수 있어서, 보안 모드 지시기는 프로세서가 보안 모드인 전체 시간 동안 활성 상태일 수있다. 그러나, 이러한 실시예에서, 유저는, 지시기가 더 많이 온되므로 그것을 간과하게 되는 경향이 있음을 알게 될 수 있어서, 이것은 바람직한 실시예가 아니다.In another embodiment, the security mode indicator may respond directly to the security signal such that the security mode indicator may be active for the entire time the processor is in the security mode. However, in this embodiment, the user may find that the indicator is on more and tends to overlook it, so this is not a preferred embodiment.

도 2를 다시 참조하면, 보안 디바이스(316a)는 유저로부터 요주의 정보를 수신하기 위해 사용되는 입력 장치일 수 있다. 그리하여, 이 입력 장치는, 시스템이 보안 모드에서 작동하는 때에만 요주의 정보를 수신하도록 인에이블된다. 도 2는 보안 장치가 온-칩인 것을 나타내는 경향이 있다. 이것은 모든 실시예들에 대해 필수적인 경우는 아니다. 별개의 지문 인식 장치 등의 오프-칩 장치일 수도 있다. 이러한 외부 장치에 대한 액세스는 보안 모드로만 한정될 수 있다. 전형적으로, 보안 외부 디바이스와 교환된 데이터는, 그것이 암호화되지 않았다면, 비밀 데이터일 필요는 없다. 외부 보안 디바이스는 그 디바이스가 작동중인 때 유저에게 가시적으로 될 수 있다. 디바이스가 보안 모드 밖에서 작동될 수 없으면, 해커가 유저를 속이는 것을 보다 더 어렵게 만든다.Referring again to FIG. 2, secure device 316a may be an input device used to receive critical information from a user. Thus, this input device is enabled to receive critical information only when the system is operating in secure mode. 2 tends to indicate that the security device is on-chip. This is not necessary for all embodiments. It may also be an off-chip device such as a separate fingerprint recognition device. Access to this external device can be limited to only the secure mode. Typically, data exchanged with a secure external device need not be secret data unless it is encrypted. The external security device can be made visible to the user when the device is in operation. If the device cannot operate outside of secure mode, it makes it more difficult for hackers to trick users.

도 2를 다시 참조하면, 부정 조작 검출 장치(380)가 옵션으로 제공될 수 있다. 부정 조작 검출 장치(380)의 출력(380.1)은 CPU(200)를 포함하는 봉입체 상의 액세스 커버가 부정 조작되었음을 나타낸다. 그리고, 신호(380.1)는 SSM(300)에 의해 모니터되어, 부정 조작이 검출되면 보안 모드에 진입되지 않을 것이다. 유사하게, 조작이 일어나는 동안 보안 모드이라면, SSM(300)은 신호(380.1)를 통해 이를 검출하고, 앞서 논의된 바와 같이, 보안 모드가 여기되어 위반이 지시된다. 부정 조작 검출 장치는 외부 오프 칩 장치일 수도 있다. 부정 조작 검출 장치의 출력은 SSM에 의해 모니터되거나 혹은 보안 GPIO에 의해 로그인될 수 있다. GPIO에대한 액세스가 보안 모드에 한정된다는 사실은 헤커가 그것을 푸는 것을 불가능하게 만든다. 이 방식으로, 보안 소프트웨어는 그 다음번 보안 모드에 진입되는 것을 알게 될 것이다.Referring back to FIG. 2, a tamper detection device 380 may be provided as an option. The output 380.1 of the tamper detection device 380 indicates that the access cover on the enclosure including the CPU 200 has been tampered with. And, the signal 380.1 is monitored by the SSM 300, so that if tampering is detected, it will not enter the secure mode. Similarly, if the security mode is during operation, the SSM 300 detects this via signal 380.1, and as discussed above, the security mode is excited to indicate a violation. The tamper detection device may be an external off-chip device. The output of the tamper detection device can be monitored by the SSM or logged in by a secure GPIO. The fact that access to the GPIO is restricted to the secure mode makes it impossible for the Hacker to solve it. In this way, the security software will know to enter the next secure mode.

그러므로, 첨부된 특허청구의 범위는 본 발명의 범위와 사상 내에 들어오는 실시예들의 임의의 이러한 변경들을 커버함을 이해해야 한다.Therefore, it is to be understood that the appended claims cover any such modifications of embodiments falling within the scope and spirit of the invention.

본 발명에 따르면, 보안 에플리케이션들을 실행하는 스마트 디바이스는 디스플레이와 키보드 외에 보안 모드 지시기도 구비된다. 이 지시기는 유저에게 디바이스가 보안 모드에 있음을 알려준다. 보안 모드 지시기가 활성화되지 않았다면, 유저는 임의의 비밀 정보 (패스워드)를 입력하지 말아야 하며, 혹은 스크린상에 표시된 어떠한 것에도 서명해서는 않된다. 지시기가 불활성인 동안 그의 핀 코드(pin code)를 입력하라고 프롬프트되면, 유저는 그의 디바이스가 침입당했고, 디바이스가 보안 오퍼레이션을 제공할 수 없음을 알 수 있을 것이다.According to the present invention, a smart device executing security applications is provided with a security mode indicator in addition to a display and a keyboard. This indicator informs the user that the device is in secure mode. If the security mode indicator is not activated, the user must not enter any secret information (password) or sign anything on the screen. If you are prompted to enter his pin code while the indicator is inactive, the user may know that his device has been compromised and that the device cannot provide security operations.

Claims (10)

디지털 시스템을 운영하는 방법에 있어서,In operating a digital system, 신뢰되는 프로그램 코드만이 실행될 수 있는 보안 모드의 오퍼레이션을 제공하는 단계; 및Providing an operation in a secure mode in which only trusted program code can be executed; And 상기 디지털 시스템의 유저에 의해 관측가능한 보안 모드 지시기 수단을 제공하는 단계Providing a security mode indicator means observable by a user of the digital system 를 포함하고, 상기 지시기 수단은 상기 보안 모드의 오퍼레이션인 동안 상기 신뢰되는 프로그램 코드에 의해서만 활성화될 수 있는 디지털 시스템 운영 방법.And wherein the indicator means can only be activated by the trusted program code while in the secure mode of operation. 제1항에 있어서,The method of claim 1, 에플리케이션 프로그램을 실행하는 단계;Executing an application program; 상기 에플리케이션 프로그램의 보안 부분을 실행하기 위해 상기 보안 모드 오퍼레이션으로 진입하는 단계;Entering the secure mode operation to execute a secure portion of the application program; 상기 에플리케이션 프로그램의 보안 부분을 실행하는 것에 응답하여 상기 보안 모드 지시기 수단을 활성화하는 단계; 및Activating the secure mode indicator means in response to executing the secure portion of the application program; And 상기 지시기 수단이 활성 상태인 동안 유저에게 상기 에플리케이션 프로그램의 보안 부분으로 요주의 정보를 제공하라고 요청하는 단계Requesting a user to provide critical information to the secure portion of the application program while the indicator means is active 를 더 포함하는 디지털 시스템 운영 방법.Digital system operating method further comprising. 제2항에 있어서,The method of claim 2, 상기 에플리케이션 프로그램의 보안 부분이 보안 모드에서 실행을 계속하는 동안 상기 요주의 정보를 수신한 후에 상기 보안 모드 지시기 수단을 비-활성화하는 단계를 더 포함하는 디지털 시스템 운영 방법.De-activating the secure mode indicator means after receiving the critical information while the secure portion of the application program continues to run in a secure mode. 제2항 또는 제3항에 있어서,The method according to claim 2 or 3, 상기 보안 모드 지시기 수단을 활성화하는 상기 단계는, 메모리 맵핑된 래치에 기록을 행하는 명령을 실행하는 단계를 포함하고, 상기 메모리 맵핑된 래치는 상기 보안 모드 오퍼레이션 동안 상기 명령이 실행된 때에만 기록될 수 있는 디지털 시스템 운영 방법.The step of activating the secure mode indicator means includes executing an instruction to write to a memory mapped latch, wherein the memory mapped latch can be written only when the instruction is executed during the secure mode operation. How to operate a digital system. 제1항 내지 제4항 중 어느 한 항에 있어서, 보안 모드의 오퍼레이션을 제공하는 상기 단계는,The method of claim 1, wherein the step of providing an operation in a secure mode comprises: 명령 메모리 내의 특수한 어드레스에 있는 엔트리 어드레스로 점프하는 단계;Jumping to an entry address at a special address in the instruction memory; 상기 엔트리 어드레스에서 시작하는 명령들의 활성 시퀀스를 실행하는 단계; 및Executing an active sequence of instructions starting at the entry address; And 상기 명령들의 활성 시퀀스가 CPU에 의해 선정된 순서대로 모두 실행되는 경우에만 상기 보안 모드 오퍼레이션으로 진입하는 단계Entering the secure mode operation only if the active sequence of instructions is all executed in the order selected by the CPU 를 포함하는 디지털 시스템 운영 방법.Digital system operating method comprising a. 제1항 내지 제5항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 5, 상기 디지털 시스템이 부정 조작되었는지를 검출하기 위한 부정 조작 검출 수단을 제공하는 단계를 더 포함하고,Providing tamper detection means for detecting whether the digital system has been tampered with, 보안 모드의 오퍼레이션을 제공하는 상기 단계는, 상기 부정 조작 검출 수단이 상기 디지털 시스템이 부정 조작되었음을 지시하면, 금지되는 디지털 시스템 운영 방법.The step of providing an operation in a secure mode is prohibited if the tamper detection means indicates that the digital system has been tampered with. 디지털 시스템에 있어서,In a digital system, 명령을 실행하기 위한 중앙 처리 장치(CPU);A central processing unit (CPU) for executing instructions; 상기 CPU의 명령 버스에 접속되어 비-보안 명령들을 보유하기 위한 공용 메모리 - 상기 공용 메모리는 상기 CPU에 의해 항상 액세스 가능함 -;A shared memory connected to the command bus of the CPU for holding non-secure instructions, wherein the shared memory is always accessible by the CPU; 상기 CPU의 명령 버스에 접속되어 보안 명령들을 보유하기 위한 보안 메모리 - 상기 보안 메모리는 보안 신호가 어써트된 때에만 액세스 가능함 -;A secure memory connected to the command bus of the CPU for holding secure instructions, the secure memory being accessible only when a secure signal is asserted; 오퍼레이션의 보안 모드가 설정된 때 상기 보안 신호를 어써트하기 위한 출력을 갖는 보안 회로; 및A security circuit having an output for asserting the security signal when a security mode of operation is set; And 상기 보안 신호에 응답하는 보안 모드 지시기A security mode indicator responsive to the security signal 를 포함하고, 상기 보안 모드 지시기는 상기 디지털 시스템의 유저에 의해 관측 가능하고, 상기 보안 모드 지시기는, 상기 보안 신호가 어써트되어 있는 동안 명령을 실행함에 의해서만, 활성 모드에 놓일 수 있는 디지털 시스템.Wherein the security mode indicator is viewable by a user of the digital system and the security mode indicator can be placed in an active mode only by executing a command while the security signal is asserted. 제7항에 있어서,The method of claim 7, wherein 상기 보안 모드 지시기는,The security mode indicator, 기록 명령에 응답하여 상기 CPU로부터 데이터 비트 신호를 수신하도록 접속된 메모리 맵핑된 래치 - 상기 메모리 맵핑된 래치의 오퍼레이션은 보안 신호에 의해 제어되어 상기 래치는 상기 보안 신호가 어써트된 때에만 기록되어질 수 있고, 상기 메모리 맵핑된 래치는 상기 래치의 상태를 나타내기 위한 출력 신호를 가짐 -; 및A memory mapped latch connected to receive a data bit signal from the CPU in response to a write command, the operation of the memory mapped latch being controlled by a security signal such that the latch can only be written when the security signal is asserted The memory mapped latch has an output signal for indicating a state of the latch; And 상기 메모리 맵핑된 래치의 상기 출력 신호에 접속된 보안 모드 지시기 장치 - 상기 보안 모드 지시기 장치는 상기 래치의 상태에 응답하고, 상기 보안 모드 지시기 장치는 온 상태와 오프 상태를 지시할 수 있는 램프 또는 기계 장치이거나, 온 상태와 오프 상태를 지시할 수 있는 오디오 장치인 디지털 시스템.A security mode indicator device connected to said output signal of said memory mapped latch, said security mode indicator device responding to a state of said latch, said security mode indicator device being capable of indicating an on state and an off state; Digital system that is a device or an audio device capable of indicating an on state and an off state. 제7항 또는 제8항에 있어서,The method according to claim 7 or 8, 상기 디지털 시스템이 부정 조작되었는지를 지시할 수 있는 부정 조작 검출 수단을 더 포함하고,Further comprising tamper detection means capable of indicating whether the digital system has been tampered with, 상기 보안 회로는 상기 부정 조작 검출 수단을 모니터하고, 상기 부정 조작 검출 수단에 응답하여 오퍼레이션의 보안 모드의 설정을 방지하는 디지털 시스템.And said security circuit monitors said tamper detection means and prevents setting of a security mode of an operation in response to said tamper detection means. 제7항 내지 제9항 중 어느 한 항에 있어서,The method according to any one of claims 7 to 9, 상기 디지털 시스템은 무선 장치로서,The digital system is a wireless device, 키보드 어댑터를 통해 상기 CPU에 접속된 통합된 키보드;An integrated keyboard connected to the CPU via a keyboard adapter; 디스플레이 어댑터를 통해 상기 CPU에 접속된 디스플레이;A display connected to the CPU via a display adapter; 상기 CPU에 접속된 무선 주파수(RF) 회로; 및A radio frequency (RF) circuit connected to the CPU; And 상기 RF 회로에 접속된 안테나An antenna connected to the RF circuit 를 더 포함하고,More, 상기 보안 모드 지시기는 상기 디스플레이의 가시적인 근방에 배열된 발광 다이오드(LED)를 포함하는 디지털 시스템.The security mode indicator comprises a light emitting diode (LED) arranged in the visible vicinity of the display.
KR1020030084087A 2002-12-18 2003-11-25 Secure mode indicator for smart phone or pda KR20040054493A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/322,893 US8479022B2 (en) 2002-01-16 2002-12-18 Secure mode indicator for smart phone or PDA
US10/322,893 2002-12-18

Publications (1)

Publication Number Publication Date
KR20040054493A true KR20040054493A (en) 2004-06-25

Family

ID=34272233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030084087A KR20040054493A (en) 2002-12-18 2003-11-25 Secure mode indicator for smart phone or pda

Country Status (3)

Country Link
KR (1) KR20040054493A (en)
CN (1) CN100363854C (en)
TW (1) TWI313433B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010098910A2 (en) * 2009-02-27 2010-09-02 Microsoft Corporation Trusted entity based anti-cheating mechanism

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100420323C (en) * 2005-03-11 2008-09-17 佛山市顺德区顺达电脑厂有限公司 Method for protecting private file in intelligent mobile phone
GB0615015D0 (en) * 2006-07-28 2006-09-06 Hewlett Packard Development Co Secure use of user secrets on a computing platform
US8793786B2 (en) * 2008-02-08 2014-07-29 Microsoft Corporation User indicator signifying a secure mode
WO2013180729A1 (en) * 2012-05-31 2013-12-05 Intel Corporation Rendering multiple remote graphics applications
US9705964B2 (en) 2012-05-31 2017-07-11 Intel Corporation Rendering multiple remote graphics applications
CN104463028B (en) * 2013-09-25 2018-06-22 中国银联股份有限公司 Safe mode reminding method and the mobile equipment for realizing this method
CN107608700A (en) * 2017-10-16 2018-01-19 浪潮(北京)电子信息产业有限公司 A kind of update method, device and the medium of FPGA firmwares

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388156A (en) * 1992-02-26 1995-02-07 International Business Machines Corp. Personal computer system with security features and method
US5596718A (en) * 1992-07-10 1997-01-21 Secure Computing Corporation Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
US6938163B1 (en) * 1999-06-17 2005-08-30 Telefonaktiebolaget Lm Ericsson (Publ) Technique for securely storing data within a memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010098910A2 (en) * 2009-02-27 2010-09-02 Microsoft Corporation Trusted entity based anti-cheating mechanism
WO2010098910A3 (en) * 2009-02-27 2010-11-04 Microsoft Corporation Trusted entity based anti-cheating mechanism
US9805196B2 (en) 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism

Also Published As

Publication number Publication date
CN100363854C (en) 2008-01-23
CN1510540A (en) 2004-07-07
TW200424930A (en) 2004-11-16
TWI313433B (en) 2009-08-11

Similar Documents

Publication Publication Date Title
EP1329787B1 (en) Secure mode indicator for smart phone or PDA
US11675934B2 (en) Method and system for preventing unauthorized processor mode switches
US7890753B2 (en) Secure mode for processors supporting MMU and interrupts
US8978132B2 (en) Apparatus and method for managing a microprocessor providing for a secure execution mode
US10095862B2 (en) System for executing code with blind hypervision mechanism
US20070226795A1 (en) Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US20070067826A1 (en) Method and system for preventing unsecure memory accesses
Muñoz et al. A survey on the (in) security of trusted execution environments
KR20040054493A (en) Secure mode indicator for smart phone or pda
Zhang et al. iFlask: Isolate flask security system from dangerous execution environment by using ARM TrustZone
Zhu et al. Investigating TrustZone: A Comprehensive Analysis
Koutroumpouchos A security evaluation of TrustZone based trusted execution environments
Muñoz-Gallego et al. A survey on the (in) security of trusted execution environments

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination