KR100606196B1 - 모바일 플랫폼 트랜잭션을 위한 신뢰 입력 - Google Patents

모바일 플랫폼 트랜잭션을 위한 신뢰 입력 Download PDF

Info

Publication number
KR100606196B1
KR100606196B1 KR1020040049371A KR20040049371A KR100606196B1 KR 100606196 B1 KR100606196 B1 KR 100606196B1 KR 1020040049371 A KR1020040049371 A KR 1020040049371A KR 20040049371 A KR20040049371 A KR 20040049371A KR 100606196 B1 KR100606196 B1 KR 100606196B1
Authority
KR
South Korea
Prior art keywords
microcontroller
computer system
data
chipset
component
Prior art date
Application number
KR1020040049371A
Other languages
English (en)
Other versions
KR20050002607A (ko
Inventor
데이비드 포이스너
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20050002607A publication Critical patent/KR20050002607A/ko
Application granted granted Critical
Publication of KR100606196B1 publication Critical patent/KR100606196B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

일 실시예에 있어서, 컴퓨터 시스템이 개시된다. 상기 컴퓨터 시스템은 중앙 처리 유닛(CPU)과, 상기 CPU에 연결되고 보호 레지스터들(protected registers)을 포함하는 칩셋을 포함한다. 상기 컴퓨터 시스템은 또한 상기 칩셋에 연결되어 키 매트릭스 데이터(key-matrix data)를 수신하기 위한 스캔을 수행하는 마이크로 제어기를 포함하고, 여기서 신뢰 소프트웨어(trusted software)가 상기 보호 레지스터들을 통하여 상기 키 매트릭스 데이터를 액세스함으로써 상기 데이터의 진정성(authenticity)을 보장한다.
마이크로 제어기, 신뢰 소프트웨어, 보호 레지스터, 키 매트릭스 데이터

Description

모바일 플랫폼 트랜잭션을 위한 신뢰 입력{TRUSTED INPUT FOR MOBILE PLATFORM TRANSACTIONS}
도 1은 컴퓨터 시스템의 일 실시예를 나타낸 블록도.
도 2는 중앙 처리 유닛(CPU)의 일 실시예를 나타낸 블록도.
도 3은 메모리의 일 실시예를 나타낸 블록도.
도 4는 마이크로 제어기로부터의 신뢰 입력(trusted input)을 판독하기 위한 일 실시예를 나타낸 흐름도.
도 5는 마이크로 제어기 집적 회로의 일 실시예를 나타낸 블록도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨터 시스템
102 : CPU
105 : 버스
107 : 칩셋
110 : MCH
112 : 메모리 제어기
113 : 그래픽 인터페이스
115 : 메인 메모리
116 : 키
120, 144, 164 : 보호 레지스터들
125 : 보호 메모리 테이블
130 : 물리적 토큰
140 : ICH
160 : 마이크로 제어기
165 : 포인팅 장치
170 : 키보드
본 발명은 컴퓨터 시스템에 관한 것이다. 더욱 구체적으로, 본 발명은 신뢰 또는 보안 환경에서 동작할 수 있는 컴퓨터 시스템에 관한 것이다.
국지적인 또는 원격의 마이크로컴퓨터 상에서 수행되는 개인적인 금융 거래의 수가 증가함에 따라, "신뢰(trusted)" 또는 "보안(secured)" 마이크로프로세서 환경의 확립에 대한 필요성이 대두되었다. 이러한 환경은 프라이버시의 상실, 또는 데이터의 손상이나 오용의 문제를 해결하고자 한다. 사용자들은 그들의 사적인 데이터가 공개되기를 원하지 않는다. 이들은 또한 데이터가 개변되거나 부적절한 거래에 사용되기를 원하지 않는다. 이러한 예에는 의료 기록의 의도되지 않은 유출, 또는 온라인 은행 또는 기타 금고로부터의 전자적인 예금 절도가 포함된다. 이와 유사하게, 콘텐츠 제공자들은 디지털 콘텐츠(예컨대 음악, 기타 오디오, 비디오, 또는 일반적인 그 밖의 유형의 데이터)가 허가 없이 복제되는 것을 방지하고자 한다.
그러나, 모바일 컴퓨터 시스템 플랫폼은 신뢰 입력/출력(I/O)에 대한 중대한 도전 과제를 제시하였다. 모바일 컴퓨터 시스템을 위한 통합 키보드는 통상적으로 마이크로 제어기(micro-controller)에 의해 스캐닝된다. 마이크로 제어기는 키보드에서 어느 키들이 눌렸는지 판정하여 키스트로크(keystroke) 데이터를 컴퓨터 시스템 운영 체제에 보고한다. 마이크로 제어기는 또한 전력 관리, 배터리 재충전, LED 제어, 전력 평면 제어(power plane control) 등과 같은 그 밖의 기능들을 수행하도록 프로그래밍된다.
더욱이, 마이크로 제어기에는 큰 용량의 소프트웨어가 사용된다. 실제로, 많은 컴퓨터 시스템들이 64 kbytes가 넘는 소프트웨어 코드를 갖는다. 그러나 이러한 코드를 신뢰할만한 것으로서 인증하는 것은 실용적이지 못하다. 그러한 코드가 인증되었다 하더라도, 그 코드는 지나치게 자주 바뀌기 때문에 지속적으로 재인증받아야 할 것이며, 여기에는 상당한 시간 및 비용이 소요될 것이다.
또한, 마이크로 제어기 내에는 또 다른 취약성이 존재한다. 예컨대, 키보드에 대한 인터페이스는 비보호 I/O 주소들을 사용한다. 더욱이, 사용자가 키보드에 키를 타이핑하는 것을 모방(emulate)하도록 시스템 소프트웨어가 마이크로 제어기에게 내릴 수 있는 명령어들이 존재한다.
본 발명은 첨부된 도면에 도시되어 있는 바, 이는 예를 들기 위한 것이고 본 발명을 한정하기 위한 것이 아니며, 도면에서 동일한 참조 번호는 유사한 요소를 가리킨다.
모바일 컴퓨터 시스템에서 신뢰성 있는 키보드 입력을 보장하는 메커니즘에 관하여 설명하기로 한다. 본 발명의 이하의 상세한 설명에서는, 본 발명의 완전한 이해를 돕기 위해 다수의 특정한 세부 사항에 관하여 기술할 것이다. 그러나 본 기술 분야의 당업자에게는 본 발명이 이러한 특정 세부 사항 없이도 실시될 수 있음이 자명할 것이다. 다른 경우에는, 본 발명을 모호하게 하지 않도록 하기 위해 잘 알려진 구조 및 장치들을 상세하게 나타내는 대신 블록도의 형태로 나타내었다.
본 명세서에서 "하나의 실시예" 또는 "일 실시예"를 지칭하는 것은 그 실시예와 관련하여 기술된 특정한 기능, 구조, 또는 특징이 본 발명의 적어도 하나의 실시예에 포함되었음을 의미한다. "일 실시예에 있어서"라는 표현이 본 명세서의 여러 군데에 나타나지만, 이들 모두가 반드시 동일한 실시예를 가리키는 것은 아니다.
도 1은 컴퓨터 시스템(100)의 일 실시예의 블록도이다. 컴퓨터 시스템(100)은 버스(105)에 연결된 중앙 처리 유닛(CPU; 102)을 포함한다. 일 실시예에서, CPU(102)는 미국 캘리포니아주 산타클라라에 소재한 Intel Corporation으로부터 입수 가능한 Pentium
Figure 112004028457161-pat00001
II 프로세서 계열, Pentium
Figure 112004028457161-pat00002
III 프로세서 및 Pentium
Figure 112004028457161-pat00003
IV 프로세서를 포함하는 Pentium
Figure 112004028457161-pat00004
계열의 프로세서에 속하는 프로세서이다. 그 대 신, 다른 CPU들이 사용될 수도 있다.
도 2는 CPU(102)의 일 실시예를 도시한 블록도이다. 일 실시예에서, CPU(102)는 캐시 메모리(캐시; 220), 내장 키(embedded key; 230), 및 페이지 테이블(PT; page table) 레지스터들(240)을 포함한다. 캐시(220)의 전부 또는 일부는 사적 메모리(PM; private memory)(225)를 포함하거나 또는 이것으로 전환될 수 있다. 일 실시예에 있어서, 사적 메모리(225)는 사적 메모리로서 활성화되어 있는 동안 자신에 대한 임의의 허가되지 않은 장치{예컨대 관련 CPU(102) 이외의 임의의 장치}에 의한 액세스를 방지하기 위한 충분한 보호를 갖춘 메모리이다.
도시된 실시예에서, 캐시(220)는 사적 메모리로서 자신이 선택적으로 격리될 수 있도록 하기 위한 다양한 기능을 가질 수 있다. 도시되지 않은 다른 실시예에 있어서, 사적 메모리(225)는 캐시 메모리(220)의 외부에 존재하여 그로부터 분리되어 있으면서도, 여전히 CPU(102)와 연관되어 있을 수 있다. 키(230)는 데이터 및/또는 코드의 여러 블록들의 암호화(encryption), 복호화(decryption) 및/또는 인가(validation)에 사용되는 내장 키일 수 있다. PT 레지스터들(240)은 보호된 코드에 의해서만 액세스될 수 있는 메모리 페이지들을 식별하기 위한 레지스터들의 형태를 갖는 테이블일 수 있으며, 여기서 메모리 페이지들은 보호되지 않는 것들이다.
도 1을 참조하면, 칩셋(107)이 또한 버스(105)에 연결되어 있다. 칩셋(107)은 메모리 제어 허브(MCH; memory control hub)(110)를 포함한다. MCH(110)은 메인 시스템 메모리(115)에 연결된 메모리 제어기(112)를 포함할 수 있다. 메인 시 스템 메모리(115)는 CPU(102) 또는 시스템(100)에 포함된 임의의 다른 장치에 의해 실행되는 명령어들의 데이터 및 시퀀스(sequence)들을 저장한다. 일 실시예에서, 메인 시스템 메모리(115)는 DRAM(dynamic random access memory)을 포함하지만, 다른 메모리 유형을 이용하여 구현될 수도 있다. 복수의 CPU 및/또는 복수의 시스템 메모리와 같은 부가적인 장치들이 또한 버스(105)에 연결될 수 있다.
도 3은 메모리(115)의 일 실시예를 도시한 블록도이다. 도 3을 참조하면, 메모리(115)는 보호 메모리 테이블(protected memory table; 320) 및 신뢰 소프트웨어 모니터(trusted s/w monitor; 330)를 포함할 수 있다. 일부 실시예에서, 보호 메모리 테이블(320)은 메모리(115) 내의 어느 메모리 블록들(여기서 메모리 블록이라 함은 연속적으로 어드레싱 가능한 메모리 위치들의 범위임)이 직접 메모리 액세스(DMA; direct memory access) 전송에 대하여 액세스 불가능하게 될지를 정의하는 테이블이다.
메모리(115)에 대한 모든 액세스는 MCH(110)을 통과하므로, MCH(110)은 어떠한 DMA 전송이 일어나도록 허락하기에 앞서 보호 메모리 테이블(320)을 체크할 수 있다. 특정한 실시예에서, MCH(110)은 캐싱 기술을 사용하여 보호 메모리 테이블(320)에 대해 필요한 액세스들의 수를 감소시킬 수 있다.
일 실시예에서, 보호 메모리 테이블(320)은 비트(bit)들의 테이블로서 구현되며, 각각의 비트는 메모리(115) 내의 특정한 메모리 블록에 대응한다(예컨대, 각 비트는 단일 페이지에 대응되며, 여기서 논리적 '1'은 그 페이지가 DMA 전송으로부터 보호됨을 나타내고, 논리적 '0'은 그 페이지가 DMA 전송으로부터 보호되지 않음 을 나타냄). 특정한 동작에 있어서, 보호 메모리 테이블(320)에 의해 DMA 전송으로부터 보호된 메모리 블록들은 CPU(102) 내의 PT 레지스터들(240)에 의해 보호된 처리(protected processing)로 한정되는 동일한 메모리 블록들일 수 있다.
일 실시예에서, 신뢰 s/w 모니터(330)는 일단 보호 동작 환경(protected operating environment)이 설정되고 나면 보호 동작 환경을 모니터링 및 제어한다. 특정 실시예에서, 신뢰 s/w 모니터(330)는 보호 메모리 테이블(320)에 의해 데이터 전송(예컨대 DMA 전송)으로부터 보호되는 메모리 블록들에만 위치하며, 이에 따라 신뢰 s/w 모니터(330)는 비보호 및/또는 무허가 장치들로부터의 데이터 전송에 의해 손상될 수 없도록 보장된다. 보호 메모리 테이블(320)은 또한 보호 메모리 테이블(320)을 포함하는 메모리 블록들을 보호함으로써 데이터 트랜잭션(transaction)에 의한 개변으로부터 자신을 보호할 수 있다.
도 1을 다시 참조하면, MCH(110)은 또한 그래픽 가속기(130)에 연결된 그래픽 인터페이스(113)를 포함할 수 있다. 일 실시예에서, 그래픽 인터페이스(113)는 가속 그래픽 포트(AGP; accelerated graphics port, 미국 캘리포니아주 산타클라라에 소재한 Intel Corporation에 의해 개발된 AGP 사양 2.0판 인터페이스에 따라 동작함)를 통해 그래픽 가속기(130)에 연결된다.
일 실시예에 있어서, MCH(110)은 다양한 암호화, 복호화 및/또는 인가 프로세스들에 사용되는 키(116), 보호 레지스터들(protected registers; 120) 및 보호 메모리 테이블(125)을 포함한다. 일 실시예에서, 보호 메모리 테이블은 MCH(110) 내에 보호 메모리 테이블(125)로서 구현되며, 이 경우 보호 메모리 테이블(320)은 삭제될 수 있다.
다른 실시예에서, 보호 메모리 테이블은 앞서 설명한 바처럼 메모리(115) 내에 보호 메모리 테이블(320)로서 구현될 수 있으며, 이 경우 보호 메모리 테이블(125)은 삭제될 수 있다. 보호 메모리 테이블은 또한 도시되지 않은 다른 방식으로도 구현될 수 있다. 물리적 위치에 관계없이, 보호 메모리 테이블의 목적 및 기본 동작은 설명된 바와 실질적으로 같을 수 있다.
일 실시예에서, 보호 레지스터들(120)은 CPU(102) 내의 신뢰 코드{trusted code, 예컨대 마이크로코드(microcode) 및 매크로코드(macrocode)}에 의해서만 개시될 수 있는 명령들에 의해 기록될 수 있는 레지스터들이다. 보호 코드(protected code)는, 허가된 명령어(들) 및/또는 무허가 장치들에 의해 제어될 수 없는 하드웨어에 의해 그 실행이 개시될 수 있는 코드이다. 일 실시예에서, 보호 레지스터들(120)은 보호 메모리 테이블(320) 및 신뢰 s/w 모니터(330)의 위치를 식별하고/하거나 이들에 대한 액세스를 제어하는 데이터를 보유한다.
일 실시예에서, 보호 레지스터들(120)은 보호 메모리 테이블(320)의 이용을 인에이블 또는 디스에이블하기 위한 레지스터를 포함하며, 이에 의해 보호 동작 환경에 진입하기 전에 DMA 보호를 활성화하고 보호 동작 환경에서 빠져나온 후에 이를 비활성화할 수 있게 된다. 보호 레지스터들(120)은 또한 보호 메모리 테이블(320)의 위치를 식별하는 기록 가능한 레지스터를 포함할 수 있으며, 이에 의해 상기 위치가 MCH(110) 내로 하드와이어(hardwire)될 필요가 없게 된다.
일 실시예에서, 보호 레지스터들(120)은 신뢰 s/w 모니터(330)가 전송을 위 해 배치될 수 있도록 메모리(115)의 보호된 위치에 자리잡기 전의 임시적인 위치를 포함할 수 있다. 일 실시예에서, 보호 레지스터들(120)은 메모리(115)로의 전송 후에 신뢰 s/w 모니터(330)의 실행 시작 주소를 포함할 수 있으며, 이에 따라 보호 동작 환경의 초기화 후에는 실행이 신뢰 s/w 모니터(330)로 옮겨갈 수 있게 된다.
물리적 토큰(130)은 보호 동작 환경의 생성 및 유지에 관련된 데이터를 보호하기 위한 회로일 수 있다. 특정한 실시예에서, 물리적 토큰(130)은 키(도시되지 않음)를 포함하며, 이러한 키는 특정한 암호화, 복호화 및/또는 인가 프로세스들에 사용되는 내장 키일 수 있다. 물리적 토큰(130)은 또한 보호 동작 환경에서 사용될 다이제스트(digest) 값 및 그 밖의 정보를 보유하는 데 사용되는 저장 공간을 포함할 수 있다. 일 실시예에서, 물리적 토큰(130) 내의 저장 공간은 비휘발성 메모리(예컨대 플래시 메모리)를 포함함으로써, 물리적 토큰에 대해 전력 유실이 발생하는 경우에 자신의 콘텐츠를 유지할 수 있다.
도 1을 다시 참조하면, MCH(110)은 허브 인터페이스를 통해 입력/출력 제어 허브(ICH; input/output control hub)(140)에 연결된다. ICH(140)는 컴퓨터 시스템(100) 내의 입력/출력(I/O) 장치들에 대한 인터페이스를 제공한다. ICH(140)는 보호 레지스터들(144)을 포함하며, 보호 경로(protected path)를 연장시킨다. 일 실시예에서, ICH(140)은 마이크로 제어기(160)에 연결된다.
일 실시예에서, 마이크로 제어기(160)는 레지스터들{예컨대 보호 레지스터들 (164)}을 포함하여 보호 경로를 더욱 연장한다. 다른 실시예에서, ICH(140)은 LPC(low pin count) 인터페이스를 통해 마이크로 제어기(160)에 연결된다. 그러나 본 기술 분야의 당업자는 다른 인터페이스들도 본 발명의 진정한 범위로부터 벗어남이 없이 사용될 수 있음을 알 수 있을 것이다.
마이크로 제어기(160)는 포인팅 장치(165) 및 키보드(170)에 연결된다. 일 실시예에서, 포인팅 장치(165)(예컨대 터치패드, 트랙포인트 등) 및 키보드(170)는 컴퓨터 시스템(100) 내에 통합된다. 그러나 다른 실시예에서 포인팅 장치(165)(예컨대 마우스) 및/또는 키보드(170)는 컴퓨터 시스템(100)의 밖에서 연결될 수도 있다.
일 실시예에 있어서, 마이크로 제어기(160)는 어느 키가 키보드(170)에서 눌렸는지를 판정하는 키 매트릭스 스캔(key matrix scan)을 수행한다. 부가적으로, 마이크로 제어기(160)는 포인팅 장치(165)와 관련된 이동 데이터를 추적할 수 있다. 또 다른 실시예에서, 마이크로 제어기(160)는 키스트로크 및 이동 데이터를 컴퓨터 시스템 운영 체제에 보고한다.
앞서 논한 바처럼, 마이크로 제어기들은 통상적으로 전력 관리, 배터리 재충전, LED 제어, 전력 평면 제어 등과 같은 다른 기능들을 수행하도록 프로그래밍된다. 이러한 기능들을 구현하기 위해 마이크로 제어기에서 사용되는 소프트웨어는 컴퓨터 시스템(100)에서의 보안 우려를 야기할 수 있다. 따라서, 일 실시예에서 마이크로 제어기(160)는 키 매트릭스 데이터를 ICH(140)에 송신하기에 앞서 신뢰 모드(trusted mode)에 위치하게 된다. 일 실시예에서, 마이크로 제어기(160)는 신뢰 모드 및 비신뢰 모드에 따라 동작한다.
이러한 실시예에서, 일단 마이크로 제어기(160)가 신뢰 모드에 있게 되면, 마이크로 제어기(160) 내의 레지스터들을 액세스하는 데에 보호 레지스터들(120)이 사용된다. 일 실시예에서, 마이크로 제어기(160)의 신뢰 모드는 칩셋(107)을 통한 신뢰 기록 경로(trusted write path)를 이용한 기록을 통해 인에이블(enable)된다. 따라서, 비신뢰 소프트웨어(un-trusted software)는 이러한 유형의 사이클들을 생성할 수 없기 때문에, 마이크로 제어기의 신뢰 모드는 신뢰 소프트웨어(trusted software)에 의해서만 인에이블될 수 있다.
보호 레지스터들(120)은 CPU(102) 내의 신뢰 마이크로코드(trusted micro-code)에 의해서만 개시될 수 있는 명령어들에 의해 기록될 수 있으므로, 신뢰 소프트웨어만이 보호 레지스터들(120)을 통해 마이크로 제어기(160)의 키 매트릭스 스캔 기능을 액세스할 수 있다.
도 4는 마이크로 제어기(160)로부터의 신뢰 입력을 판독하기 위한 일 실시예의 흐름도이다. 처리 블록(410)에서, MCH(110)은 마이크로 제어기(160)로부터 키 매트릭스 데이터를 수신하기 위한 신뢰 소프트웨어의 요청을 나타내는, 보호 레지스터들(120)에 대한 액세스를 탐지한다. 처리 블록(420)에서, ICH(140)은 마이크로 제어기(160)에 대한 판독 또는 기록 요청을 LPC 인터페이스를 통해 특별한 사이클 형식을 이용하여 수행한다.
앞서 설명한 바처럼, MCH(110)은 마이크로 제어기(160) 내의 신뢰 레지스터 공간(trusted register space)에 대한 사이클을 탐지한다. 그 결과, MCH(10)은 그 사이클을 ICH(140)에 전달한다. ICH(140)이 마이크로 제어기(160) 내의 신뢰 레지스터 공간에 대한 사이클을 탐지하면, ICH(140)는 그 사이클을 LPC에 전달한다. 마이크로 제어기(160)가 레지스터들(164)에 대한 사이클을 인지하면, 마이크로 제어기(160)는 그 사이클에 대하여 응답한다. 일 실시예에서, LPC 상의 특별한 사이클은 고유의 형식을 가지며, 표준 LPC 장치들은 이러한 사이클에 대하여 응답하거나 자신의 데이터 콘텐츠를 래치(latch)하도록 허가되지 않는다.
처리 블록(430)에서, 마이크로 제어기(160)는 ICH(140)으로부터의 특별 사이클 요청을 탐지한다. 처리 블록(440)에서, 마이크로 제어기(160)는 ICH(140)으로부터 수신된 특별 사이클 요청의 승인을 구한다. 처리 블록(450)에서, 마이크로 제어기(160)는 신뢰 모드에 진입한다. 처리 블록(460)에서, 마이크로 제어기(160)는 키스트로크 및 이동 데이터를 보호 레지스터들(120)에게 송신한다. 따라서, 키스트로크 및 이동 데이터는 데이터를 잠재적으로 그 데이터를 빼내는 데 사용될 수 있는 어떠한 비신뢰 레거시(legacy) I/O 주소들에게도 제공되지 않는다.
처리 블록(470)에서, 마이크로 제어기(160)는 신뢰 모드에서 빠져나온다. 결과적으로, 다른 마이크로 제어기(160) 기능들이 수행될 수 있다. 여기서 주목할 것은, 컴퓨터 시스템(100)의 리셋 또는 신뢰 소프트웨어를 통한 보호 레지스터들(120)에 대한 액세스에 의해 마이크로 제어기(160)를 신뢰 모드로부터 빠져나오게 할 수 있다는 점이다.
일 실시예에 있어서, 마이크로 제어기(160)가 분리되어 키 매트릭스 기능이 별개의 마이크로 제어기에 포함되기도 한다. 도 5는 집적 회로(IC; 500)의 일 실시예를 도시한 블록도이다. IC(500)은 보호 마이크로 제어기(510) 및 비보호 마이크로 제어기(520)를 포함한다. 일 실시예에서, 마이크로 제어기(510)는 키 매트릭 스 기능을 위해서만 사용되는 반면, 마이크로 제어기(520)는 다른 기능들(예컨대 전력 관리, 배터리 재충전, LED 제어, 전력 평면 제어 등)을 위해 사용된다.
이러한 실시예에서, 보호 마이크로 제어기는 특별 사이클 요청을 탐지하여 신뢰 모드에 진입하게 되면 ICH(140)를 액세스한다. 그렇지 않으면, 비보호 마이크로 제어기(520)가 ICH(140)을 액세스한다. 따라서, 키 매트릭스 함수는 불량 소프트웨어에 의해 액세스될 수 없다.
다른 실시예에서, 마이크로 제어기(510) 및 마이크로 제어기(520)는 별개의 IC 다이(die) 상에 위치할 수 있다. 또 다른 실시예에서, 보호 마이크로 제어기(510)는 매트릭스 스캔을 수행하도록 하드 코딩된(hard-coded) 상태 머신을 구현할 수 있는 다른 유형의 논리 장치들로 대체될 수 있다.
이상의 설명은 모바일 컴퓨터 시스템상의 키보드들 및 포인팅 장치들로부터의 키 매트릭스 스캔에 대한 신뢰 입력 경로를 제공한다. 따라서, 컴퓨터 시스템 마이크로 제어기 상에서 동작하는 소프트웨어 코드의 각 구성 요소를 인증해야 할 필요가 존재하지 않는다.
상기 설명에 따르면 본 발명의 많은 변경 및 수정이 본 기술 분야의 당업자에게 자명해질 것이지만, 설명 및 도시한 어떤 특정한 실시예도 예시를 위한 것일 뿐 본 발명을 한정하고자 하는 것이 아니다. 따라서, 여러 실시예들의 세부 사항을 참조하는 것은 본 발명에 있어 핵심적인 것으로 간주되는 특징들에 대해서만 열거하고 있는 청구 범위를 한정하고자 하는 것이 아니다.

Claims (25)

  1. 컴퓨터 시스템에 있어서,
    중앙 처리 유닛(CPU)과,
    상기 CPU에 연결되고, 보호 레지스터들을 포함하는 칩셋과,
    상기 칩셋에 연결되어 키 매트릭스 데이터를 수신하기 위한 스캔을 수행하는 마이크로 제어기를 포함하고,
    신뢰 소프트웨어(trusted software)가 상기 보호 레지스터들을 통하여 상기 키 매트릭스 데이터를 액세스함으로써 상기 데이터의 진정성(authenticity)을 보장하는 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 마이크로 제어기에 연결되어 키스트로크 데이터를 제공하기 위한 키보드를 더 포함하는 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 마이크로 제어기에 연결되어 커서 이동 데이터를 제공하기 위한 포인팅 장치를 더 포함하는 컴퓨터 시스템.
  4. 제3항에 있어서, 상기 키보드 및 포인팅 장치는 상기 CPU, 칩셋 및 마이크로 제어기와 동일한 하우징(housing) 내에 통합되는 컴퓨터 시스템.
  5. 제1항에 있어서, 상기 칩셋은
    보호 메모리 테이블과,
    메모리 제어기
    를 더 포함하는 컴퓨터 시스템.
  6. 제5항에 있어서, 상기 메모리 제어기에 연결되는 메모리 장치를 더 포함하는 컴퓨터 시스템.
  7. 제6항에 있어서, 상기 메모리 장치는
    보호 메모리 테이블과,
    신뢰 소프트웨어 모니터
    를 포함하는 컴퓨터 시스템.
  8. 제1항에 있어서, 상기 칩셋 및 상기 마이크로 제어기는 LPC(low-pin count) 인터페이스를 통해 연결되는 컴퓨터 시스템.
  9. 제1항에 있어서, 상기 컴퓨터 시스템은 휴대용 컴퓨터 시스템인 컴퓨터 시스템.
  10. 제1항에 있어서, 상기 마이크로 제어기는
    키 매트릭스 스캔을 실행하기 위한 제1 콤포넌트(component)와,
    매트릭스 스캔 이외의 기능들을 실행하기 위한 제2 콤포넌트
    를 포함하는 컴퓨터 시스템.
  11. 제10항에 있어서, 상기 제1 콤포넌트 및 상기 제2 콤포넌트는 동일한 집적 회로상에 통합되는 컴퓨터 시스템.
  12. 제10항에 있어서, 상기 제1 콤포넌트 및 상기 제2 콤포넌트는 별개의 집적 회로상에 존재하는 컴퓨터 시스템.
  13. 키 매트릭스 스캔을 실행하기 위한 보호 레지스터들을 갖는 제1 콤포넌트 - 신뢰 소프트웨어가 상기 보호 레지스터들을 통하여 상기 키 매트릭스 데이터를 액세스함으로써 상기 데이터의 진정성을 보장함 - 와,
    매트릭스 스캔 이외의 기능들을 실행하기 위한 제2 콤포넌트
    를 포함하는 마이크로 제어기.
  14. 제13항에 있어서, 상기 제1 콤포넌트 및 상기 제2 콤포넌트는 동일한 집적 회로상에 통합되는 마이크로 제어기.
  15. 제13항에 있어서, 상기 제1 콤포넌트 및 상기 제2 콤포넌트는 별개의 집적 회로상에 존재하는 마이크로 제어기.
  16. 신뢰 소프트웨어를 이용하여 컴퓨터 시스템 내에 암호화 키를 생성하는 단계와,
    마이크로 제어기에서 키 매트릭스 스캔을 개시하도록 상기 신뢰 소프트웨어가 상기 컴퓨터 시스템 내의 신뢰 레지스터들에 기록하는 단계와,
    상기 마이크로 제어기로부터 키 매트릭스 데이터를 수신하는 단계
    를 포함하는 방법.
  17. 제16항에 있어서,
    칩셋이 상기 마이크로 제어기 내의 신뢰 레지스터들에 대한 특별 사이클을 탐지하는 단계와,
    상기 마이크로 제어기가 상기 특별 사이클을 탐지하는 단계
    를 더 포함하는 방법.
  18. 제17항에 있어서, 상기 특별 사이클의 탐지에 응답하여 상기 마이크로 제어기가 신뢰 모드에 진입하는 단계를 더 포함하는 방법.
  19. 제18항에 있어서, 상기 마이크로 제어기가 키스트로크 및 이동 데이터를 상기 칩셋 내의 보호 레지스터들로 송신하는 단계를 더 포함하는 방법.
  20. 제19항에 있어서, 상기 마이크로 제어기가 상기 신뢰 모드에서 빠져나가는 단계를 더 포함하는 방법.
  21. 컴퓨터 시스템에 있어서,
    중앙 처리 유닛(CPU)과,
    상기 CPU에 연결되고, 보호 레지스터들을 포함하는 칩셋과,
    상기 칩셋에 연결되는 메모리 장치와,
    상기 칩셋에 연결되어 키 매트릭스 데이터를 수신하기 위한 스캔을 수행하는 마이크로 제어기를 포함하고,
    신뢰 소프트웨어(trusted software)가 상기 보호 레지스터들을 통하여 상기 키 매트릭스 데이터를 액세스함으로써 상기 데이터의 진정성(authenticity)을 보장하는 컴퓨터 시스템.
  22. 제21항에 있어서, 상기 마이크로 제어기에 연결되어 키스트로크 데이터를 제공하기 위한 키보드를 더 포함하는 컴퓨터 시스템.
  23. 제22항에 있어서, 상기 마이크로 제어기에 연결되어 커서 이동 데이터를 제공하기 위한 포인팅 장치를 더 포함하는 컴퓨터 시스템.
  24. 제21항에 있어서, 상기 칩셋은
    보호 메모리 테이블과,
    상기 메모리 장치에 연결되는 메모리 제어기
    를 더 포함하는 컴퓨터 시스템.
  25. 제24항에 있어서, 상기 메모리 장치는
    보호 메모리 테이블과,
    신뢰 소프트웨어 모니터
    를 포함하는 컴퓨터 시스템.
KR1020040049371A 2003-06-30 2004-06-29 모바일 플랫폼 트랜잭션을 위한 신뢰 입력 KR100606196B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/609,828 2003-06-30
US10/609,828 US20040268143A1 (en) 2003-06-30 2003-06-30 Trusted input for mobile platform transactions

Publications (2)

Publication Number Publication Date
KR20050002607A KR20050002607A (ko) 2005-01-07
KR100606196B1 true KR100606196B1 (ko) 2006-07-31

Family

ID=33435377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040049371A KR100606196B1 (ko) 2003-06-30 2004-06-29 모바일 플랫폼 트랜잭션을 위한 신뢰 입력

Country Status (6)

Country Link
US (1) US20040268143A1 (ko)
EP (1) EP1494103A1 (ko)
KR (1) KR100606196B1 (ko)
CN (2) CN100437619C (ko)
SG (2) SG146429A1 (ko)
TW (1) TWI276971B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047343B2 (en) * 2003-11-26 2006-05-16 Dell Products L.P. System and method for communication of keyboard and touchpad inputs as HID packets embedded on a SMBus
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7698739B2 (en) * 2004-03-30 2010-04-13 Marvell International Ltd. Updating code with validation
CN101140606B (zh) * 2006-09-06 2010-08-11 太瀚科技股份有限公司 具有警讯功能及身份辨识功能的数字数据输入系统
DE102009014572A1 (de) * 2009-03-24 2010-09-30 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zur sicheren Weiterleitung von Eingabedaten
EP2722785A1 (en) * 2012-10-19 2014-04-23 Dialog Semiconductor B.V. Mobile security with associated vital function device
US10751605B2 (en) 2016-09-29 2020-08-25 Intel Corporation Toys that respond to projections

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829515A (en) * 1987-05-01 1989-05-09 Digital Equipment Corporation High performance low pin count bus interface
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US5165038A (en) * 1989-12-29 1992-11-17 Supercomputer Systems Limited Partnership Global registers for a multiprocessor system
US5265218A (en) * 1992-05-19 1993-11-23 Sun Microsystems, Inc. Bus architecture for integrated data and video memory
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
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
EP0763791A1 (en) * 1995-09-14 1997-03-19 Hewlett-Packard Company Computer keyboard unit with smartcard interface
US5748888A (en) * 1996-05-29 1998-05-05 Compaq Computer Corporation Method and apparatus for providing secure and private keyboard communications in computer systems
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US6282657B1 (en) * 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
FR2784765B1 (fr) * 1998-10-19 2001-07-27 Ela Medical Sa Dispositif medical actif, comprenant des registres proteges pour l'ajustement numerique de parametres de fonctionnement
KR20010011667A (ko) * 1999-07-29 2001-02-15 이종우 보안 기능을 갖는 키보드 및 이를 이용한 시스템
US6630926B2 (en) * 2000-12-07 2003-10-07 International Business Machines Corporation Apparatus and method for verifying keystrokes within a computing system
TW552495B (en) * 2001-10-24 2003-09-11 Via Tech Inc LPC interface chip set to adjust the data-access timing automatically
US6990549B2 (en) * 2001-11-09 2006-01-24 Texas Instruments Incorporated Low pin count (LPC) I/O bridge
US20050015611A1 (en) * 2003-06-30 2005-01-20 Poisner David I. Trusted peripheral mechanism
US7145481B2 (en) * 2003-09-30 2006-12-05 Intel Corporation Method and apparatus for trusted keyboard scanning

Also Published As

Publication number Publication date
SG182003A1 (en) 2012-07-30
TWI276971B (en) 2007-03-21
EP1494103A1 (en) 2005-01-05
CN1284068C (zh) 2006-11-08
SG146429A1 (en) 2008-10-30
KR20050002607A (ko) 2005-01-07
TW200508889A (en) 2005-03-01
US20040268143A1 (en) 2004-12-30
CN1577225A (zh) 2005-02-09
CN1841400A (zh) 2006-10-04
CN100437619C (zh) 2008-11-26

Similar Documents

Publication Publication Date Title
US8533777B2 (en) Mechanism to determine trust of out-of-band management agents
US5325430A (en) Encryption apparatus for computer device
JP3493047B2 (ja) メモリー・カード
US9317450B2 (en) Security protection for memory content of processor main memory
US7010684B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
KR100831441B1 (ko) 신뢰 주변 장치 메커니즘
US7149854B2 (en) External locking mechanism for personal computer memory locations
US7139915B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
US8978132B2 (en) Apparatus and method for managing a microprocessor providing for a secure execution mode
US6996710B1 (en) Platform and method for issuing and certifying a hardware-protected attestation key
US20070276969A1 (en) Method and device for controlling an access to peripherals
US20090063799A1 (en) Memory Protection For Embedded Controllers
KR100606196B1 (ko) 모바일 플랫폼 트랜잭션을 위한 신뢰 입력
KR101160391B1 (ko) 토큰 이용 가능한 컴퓨터 시스템을 평가하는 메카니즘
US20050044408A1 (en) Low pin count docking architecture for a trusted platform
JP4017149B2 (ja) プログラムの不正実行防止機能付きプロセッサ
JP4847827B2 (ja) アクセス制御装置
KR100232086B1 (ko) 보안성 메모리 카드

Legal Events

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

Payment date: 20130701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee