KR100831441B1 - 신뢰 주변 장치 메커니즘 - Google Patents

신뢰 주변 장치 메커니즘 Download PDF

Info

Publication number
KR100831441B1
KR100831441B1 KR1020057025310A KR20057025310A KR100831441B1 KR 100831441 B1 KR100831441 B1 KR 100831441B1 KR 1020057025310 A KR1020057025310 A KR 1020057025310A KR 20057025310 A KR20057025310 A KR 20057025310A KR 100831441 B1 KR100831441 B1 KR 100831441B1
Authority
KR
South Korea
Prior art keywords
data
encryption key
peripheral device
delete delete
host controller
Prior art date
Application number
KR1020057025310A
Other languages
English (en)
Other versions
KR20060028704A (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 KR20060028704A publication Critical patent/KR20060028704A/ko
Application granted granted Critical
Publication of KR100831441B1 publication Critical patent/KR100831441B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00

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)
  • Storage Device Security (AREA)

Abstract

일 실시예에 따라 컴퓨터 시스템이 개시된다. 컴퓨터 시스템은 중앙 처리 장치(CPU)와, 보호 레지스터 및 호스트 컨트롤러를 포함하는 상기 CPU에 연결된 칩셋을 포함한다. 컴퓨터 시스템은 호스트 컨트롤러에 연결된 버스 및 버스에 연결된 주변 장치도 포함한다. 주변 장치를 신뢰할 수 있는지 여부를 검증하기 위하여, 컴퓨터 시스템의 스타트 업에 따라, 신뢰 소프트웨어가 보호 레지스터를 액세스하여 호스트 컨트롤러 및 주변 장치 간에 암호화 데이터를 전송한다.
주변 장치, 신뢰, 호스트 컨트롤러, 암호화 데이터, 암호화 키

Description

신뢰 주변 장치 메커니즘{TRUSTED PERIPHERAL MECHANISM}
본 명세서에 포함된 내용은 저작권의 보호 대상이다. 본 저작권자는 특허청의 파일 또는 기록을 위하여 본 특허 명세서가 팩스 재생되는 것은 이의가 없으나, 그 밖의 모든 행위는 저작권에 저촉된다.
본 발명은 컴퓨터 시스템에 관한 것이며, 보다 상세하게는, 신뢰하는 또는 안전한 환경에서 동작할 수 있는 컴퓨터 시스템에 관한 것이다.
지역 또는 원격 마이크로컴퓨터상에서 수행되는 금융 및 개인 거래의 수가 증가함에 따라, "신뢰하는" 또는 "안전한" 마이크로프로세서 환경의 설립이 촉진되었다. 이러한 환경이 해결하고자 하는 문제점은 프라이버시의 손실 또는 데이터가 손상되거나 남용되는 것이다. 사용자들은 그들의 사적 데이터가 공개되는 것을 원하지 않는다. 그들은 또한 그들의 데이터가 변경되거나 부적당한 거래에 사용되는 것을 원하지 않는다. 이러한 예로서는 의료 기록의 비의도적 누설 또는 온라인 은행이나 다른 보관소로부터의 전자적 자금 절도를 포함한다. 유사하게, 콘텐츠 제공자는 디지털 콘텐츠(예컨대, 음악, 다른 오디오, 비디오 또는 일반적인 다른 데이터 유형)가 인증 없이 복사되는 것을 방지하고자 한다.
그러나 Compaq, IBM, DEC, Intel, Microsoft, NEC 및 Northern Telecom에 의 해 개발되어 2.0 표준을 고수하는 범용 직렬 버스(Universal Serial Bus: USB)는 신뢰 입출력(trusted I/O)에 커다란 문제점을 내포하고 있다. USB는 컴퓨터 시스템과 부가 장치(add-on device)(예컨대, 키보드) 사이의 플러그 앤 플레이 인터페이스(plug-and-play interface)이다. 컴퓨터 시스템은 전형적으로 USB 장치와 연관된 소프트웨어 스택을 포함한다.
USB 스택 내의 악성 코드는 USB 주변 장치로 또는 그로부터 전송되는 데이터를 변형하거나, 데이터를 완전히 다른 장치로 재전송하는데 사용될 가능성이 있다. 악성 USB 소프트웨어를 방지하는데 사용되는 한 가지 방법은 USB 주변 장치로 전송되는 또는 그로부터 수신되는 데이터를 암호화하는 것이다. 그러나 암호화 방법과 관련된 문제점은 USB 스택이 주변 장치에 대하여 전송한 암호화 키도 신뢰할 수 없다는 것이다.
한 메커니즘은 암호화 키를 키보드 주변 장치에 직접 전송함으로써 USB 스택을 우회하는 단계를 포함한다. 이러한 메커니즘에서는, 암호화 키를 입력하기 위하여 키보드 상에 키 스트로크를 타이핑하도록 사용자를 촉구한다. 이러한 메커니즘은 컴퓨터 시스템이 개시될 때마다 사용자에게 많게는 63개의 키 스트로크를 타이핑할 것을 요구하므로 비효율적이다.
대안으로, 키보드에 전원이 공급될 때마다 사용자가 키 스트로크를 입력해야하는 것을 피하기 위하여, 키보드에 비휘발성 메모리 저장소가 필요할 것이다. 이는 키보드 제조 비용을 증가시키는 결과가 될 것이다. 또한, 이러한 메커니즘은 컴퓨터 시스템과 주변 장치 사이에 인라인으로 암호화 동글(encryption dongle)이 추가되지 않는 한, 마우스와 같이 키보드가 아닌 주변 장치에서 사용하기에는 적합하지 않다. 이 또한 비용을 증가시키게 된다.
컴퓨터 시스템에서 신뢰 USB 입출력(I/O)을 보장하기 위한 메커니즘을 설명한다. 일 실시예에 따르면, USB 스택을 사용하지 않고 USB 주변 장치에 암호화 키를 전송하기 위하여 컴퓨터 시스템에 신뢰 포트(trusted port)가 구현된다.
본 발명은 첨부된 도면에 제한되는 것이 아니고 예시로서 도시된 것이며, 도면에서 동일한 참조 번호는 동일한 요소를 나타낸다.
도 1은 컴퓨터 시스템의 일 실시예를 도시하는 블록도.
도 2는 중앙 처리 장치(CPU)의 일 실시예를 도시하는 블록도.
도 3은 메모리의 일 실시예를 도시하는 블록도.
도 4는 주변 장치로 암호화 키를 전송하는 일 실시예의 흐름도.
본 발명에 관한 이하의 상세한 설명에서는, 본 발명의 완전한 이해를 제공하기 위하여, 다수의 구체적 세부 사항이 설명된다. 그러나 본 발명이 이러한 구체적 세부 사항 없이도 실시될 수 있음은 본 기술분야의 당업자에게 자명할 것이다. 본 발명을 불명료하게 하는 것을 피하기 위하여, 공지의 구조 및 장치는 블록도의 형태로서, 상세하지 않게 도시된다.
본 명세서에서 "일 실시예" 또는 "일례"라는 표현은 그 실시예와 연관되어 설명된 특정 기능, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 본 명세서의 다양한 곳에서 사용되는 "일 실시예에서"라는 표현은 반드시 모든 동일 실시예를 지칭하는 것은 아니다.
도 1은 컴퓨터 시스템(100)의 일 실시예를 도시하는 블록도이다. 컴퓨터 시스템(100)은 버스(105)에 연결된 중앙 처리 장치(CPU)(102)를 포함한다. 일 실시예에서, CPU(102)는 캘리포니아, 산타클라라의 인텔 코퍼레이션으로부터 이용 가능한 Pentium® Ⅱ 프로세서 패밀리, Pentium® Ⅲ 프로세서 및 Pentium® Ⅳ 프로세서를 포함하는 Pentium® 프로세서 패밀리 중 한 프로세서이다. 대안으로, 다른 CPU가 사용될 수도 있다.
도 2는 CPU(102)의 일 실시예를 도시하는 블록도이다. 일 실시예에서, CPU(102)는 캐시 메모리(캐시)(220), 내장된 키(230) 및 페이지 테이블(PT) 레지스터(240)를 포함한다. 캐시(220)의 전부 또는 일부는 사적 메모리(private memory: PM)(225)를 포함하거나, 이로 전환될 수 있다. 일 실시예에 따르면, 사적 메모리(225)는, 활성화되어 있는 동안, 임의의 인증되지 않은 장치(예컨대, 연관된 CPU 102 이외의 다른 장치)에 의해 액세스되는 것을 방지하도록 보호되는 메모리이다.
도시된 실시예에서, 캐시(220)는 사적 메모리로서 선택적으로 격리되는 것을 허용하기 위한 다양한 특징을 가질 수 있다. 도시되지 않은 다른 실시예에서, 사적 메모리(225)는 캐시 메모리(220)와 분리되어 외부에 존재하나, 여전히 CPU(102)와 연관되어 있을 수 있다. 키(230)는 다양한 블록의 데이터 및/또는 코드의 암호 화, 암호 해독 및/또는 확인을 위하여 사용되는 내장 키(embedded key)일 수 있다. PT 레지스터(240)는 보호되는 코드에 의해서만 액세스 가능한 메모리 페이지를 식별하고 어느 메모리 페이지가 보호되지 않는지를 식별하기 위한 레지스터 형태로 된 테이블일 수 있다.
도 1을 다시 참조하면, 칩셋(107) 또한 버스(105)에 연결된다. 칩셋(107)은 메모리 컨트롤 허브(memory control hub: MCH)(110)를 포함한다. MCH(110)는 메인 시스템 메모리(115)에 연결된 메모리 컨트롤러(112)를 포함할 수 있다. 메인 시스템 메모리(115)는 CPU(102) 또는 시스템(100)에 포함된 임의의 다른 장치에 의해 실행되는 일련의 명령어 및 데이터를 저장한다. 일 실시예에서, 메인 시스템 메모리(115)는 동적 랜덤 액세스 메모리(DRAM)를 포함하나, 메인 시스템 메모리(115)는 다른 메모리 유형을 사용하여 구현될 수도 있다. 다중 CPU 및/또는 다중 시스템 메모리와 같은 추가적 장치가 버스(105)에 연결될 수도 있다.
도 3은 메모리(115)의 일 실시예를 도시하는 블록도이다. 도 3을 참조하면, 메모리(115)는 보호 메모리 테이블(protected memory table)(320) 및 신뢰 소프트웨어 모니터(trusted software monitor)(330)를 포함할 수 있다. 일부 실시예에서, 보호 메모리 테이블(320)은 메모리(115) 내의 어떤 메모리 블록(여기서 메모리 블록은 연속적으로 주소 지정 가능한 메모리 위치의 범위임)이 직접 메모리 액세스(direct memory access: DMA) 전송에 액세스 불가능한지를 정의하는 테이블이다.
메모리(115)에 대한 모든 액세스는 MCH(110)를 통과하므로, MCH(110)는 임의의 DMA 전송 발생을 허용하기 이전에 보호 메모리 테이블(320)을 검사할 수 있다. 특정 실시예에서, MCH(110)는 보호 메모리 테이블(320)에 대한 액세스 횟수를 감소시키기 위하여 캐싱 기법을 사용할 수 있다.
일 실시예에서, 보호 메모리 테이블(320)은 비트의 테이블로서 구현되며, 각각의 비트는 메모리(115) 내의 특정 메모리 블록에 해당한다(예컨대, 각각의 비트는 단일 페이지에 해당하며, 논리 '1'은 DMA 전송으로부터 보호되는 페이지를 나타내고, 논리 '0'은 보호되지 않는 페이지를 나타낼 수 있음). 특정 동작에서, 보호 메모리 테이블(320)에 의해 DMA 전송으로부터 보호되는 메모리 블록은, CPU(102) 내의 PT 레지스터(240)에 의하여 보호 프로세싱(protected processing)으로 제한되는 메모리 블록과 동일할 수 있다.
일 실시예에서, 보호 동작 환경이 일단 설정된 후, 신뢰 소프트웨어 모니터(330)는 보호 동작 환경을 모니터링하고 제어한다. 특정 실시예에서, 신뢰 소프트웨어 모니터(330)는 보호 메모리 테이블(320)에 의해 데이터 전송(예컨대, DMA 전송)으로부터 보호되는 메모리 블록에만 위치하며, 따라서 신뢰 소프트웨어 모니터(330)가 보호되지 않는 그리고/또는 인증되지 않은 장치로부터의 데이터 전송에 의해 타협되지 않을 수 있음을 보장한다. 보호 메모리 테이블(320)은 보호 메모리 테이블(320)을 포함하는 메모리 블록을 보호함으로써, 데이터 트랜잭션에 의한 변경을 막을 수 있다.
도 1을 다시 참조하면, MCH(110)는 그래픽 가속기(graphics accelerator)(130)에 연결된 그래픽 인터페이스(113)를 포함할 수도 있다. 일 실시예에서, 그래픽 인터페이스(113)는 캘리포니아, 산타 클라라의 인텔 코퍼레이션 에 의해 개발된 AGP Specification Revision 2.0에 따라 동작하는 AGP(accelerated graphics port)를 경유하여 그래픽 가속기(130)에 연결된다.
일 실시예에 따르면, MCH(110)는 다양한 암호화, 암호 해독 및/또는 확인 프로세스에 사용되는 키(116), 보호 레지스터(protected register)(120) 및 보호 메모리 테이블(125)을 포함한다. 일 실시예에서, 보호 메모리 테이블(125)은 보호 메모리 테이블(125)로서 MCH(110) 내에 구현되며, 보호 메모리 테이블(320)은 제거될 수 있다.
다른 실시예에서, 보호 메모리 테이블(125)은 상술한 바와 같이 메모리(115) 내에 보호 메모리 테이블(320)로서 구현되며, 보호 메모리 테이블(125)은 제거될 수 있다. 보호 메모리 테이블은 도시되지 않은 다른 방식으로도 구현될 수 있다. 물리적 위치와 무관하게, 보호 메모리 테이블의 목적 및 기본 동작은 설명된 바와 실질적으로 같다.
일 실시예에서, 보호 레지스터(120)는 CPU(120) 내의 신뢰 마이크로코드(trusted microcode)에 의해서만 개시될 수 있는 명령에 의해 기록 가능한 레지스터이다. 보호 마이크로코드는 인증된 명령어(들)에 의해서, 그리고/또는 인증되지 않은 장치에 의해 제어 가능하지 않은 하드웨어에 의해서 실행이 개시될 수 있는 마이크로코드이다. 일 실시예에서, 보호 레지스터(120)는 보호 메모리 테이블(320) 및 신뢰 소프트웨어 모니터(330)의 위치를 식별하고, 그리고/또는 그에 대한 액세스를 제어하는 데이터를 보유한다.
일 실시예에서, 보호 레지스터(120)는, 보호 메모리 테이블(320)의 사용을 인에이블 또는 디스에이블시켜, 보호 동작 환경에 들어가기 전에는 DMA 보호가 활성화되고, 보호 동작 환경을 떠난 후에는 비활성화될 수 있게 하는 레지스터를 포함한다. 보호 레지스터(120)는 보호 메모리 테이블(320)의 위치를 식별하는 기록 가능 레지스터를 포함할 수도 있으므로, 보호 메모리 테이블의 위치가 MCH(110) 내에 하드와이어링될 필요가 없다.
일 실시예에서, 보호 레지스터(120)는, 신뢰 소프트웨어 모니터(330)가 메모리(115)의 보호 위치 내에 배치되기 전, 전송을 위하여 위치할 수 있는 임시 위치를 포함할 수 있다. 일 실시예에서, 보호 레지스터(120)는 메모리(115) 내로의 전송 이후 신뢰 소프트웨어 모니터(330)의 실행 시작 주소를 포함할 수 있으며, 실행은 보호 동작 환경의 초기화 이후 신뢰 소프트웨어 모니터(330)로 전송될 수 있다.
물리적 토큰(132)은 보호 동작 환경을 생성 및 유지 관리하는 것과 관련된 데이터를 보호하기 위한 회로일 수 있다. 특정 실시예에서, 물리적 토큰(132)은 구체적 암호화, 암호 해독 및/또는 확인 프로세스를 위하여 사용되는 내장 키일 수 있는 (도시되지 않은) 키를 포함한다. 물리적 토큰(132)은 보호 동작 환경에서 사용되는 다른 정보 및 다이제스트 값(digest value)을 보유하는데 사용되는 저장 공간을 포함할 수도 있다. 일 실시예에서, 물리적 토큰(132) 내의 저장 공간은 물리적 토큰으로의 전원이 차단된 경우에도 그 내용을 유지하기 위하여 비휘발성 메모리(예컨대, 플래시 메모리)를 포함할 수 있다.
도 1을 다시 참조하면, MCH(110)는 허브 인터페이스를 경유하여 입출력 컨트롤 허브(ICH)(140)에 연결된다. ICH(140)는 컴퓨터 시스템(100) 내에 입출력(I/O) 장치에 대한 인터페이스를 제공한다. ICH(140)는 호스트 컨트롤러(144)를 경유하여 USB 주변 장치(155)에 연결될 수 있다. 호스트 컨트롤러(144)는 ICH(140)와 주변 장치(155) 간의 인터페이스를 제어한다. 본 발명의 범위로부터 벗어나지 않은 채 다른 패킷 기반 버스가 구현될 수 있음을 당업자는 인식할 것이다.
일 실시예에서, 호스트 컨트롤러(144)는 주변 장치 구성 프로세스를 지원하며, 주변 장치(155)에는 주소가 할당되어 있다. 다음으로, 호스트 컨트롤러(144)는 그곳으로 주소 지정된 패킷에 대하여 버스를 모니터링하며, 주변 장치(155)로의 데이터 전송을 처리한다. 데이터는 주변 장치(155)로 전송되기에 앞서 호스트 컨트롤러(144)에서 패킷으로 패키징된다. 입력 패킷(incoming packet)은 호스트 컨트롤러(144)에서 유효성에 대해 검증된다. 일 실시예에서, 주변 장치(155)는 키보드이다. 그러나 다른 실시예에서 주변 장치(155)는 마우스, 오디오 플레이어, 조이스틱, 전화, 스캐너, 프린터 등을 사용하여 구현될 수도 있다.
디버그 포트(debug port)(146)는 하드웨어 및 소프트웨어 설계자가 제품의 기능을 디버깅(debugging)할 수 있게 한다. 일 실시예에서, 디버그 포트(146)는 호스트 컨트롤러(144)가 트랜잭션을 수행하게 하는 레지스터 기반 메커니즘을 구현한다. 따라서, USB 상의 주변 장치(155)와 연관된 소프트웨어 스택 및 메모리(115)는 우회(bypass)될 수 있다.
또 다른 실시예에 따르면, 주변 장치(155)와의 USB 접속이 신뢰할 수 있음을 검증하기 위하여, 컴퓨터 시스템(100)의 스타트 업에 따라 주변 장치(155)로 암호화 키가 전송되도록 유사한 우회가 구현된다. 이러한 실시예에서, 호스트 컨트롤 러(144) 또한 MCH(110) 내의 레지스터와 유사한 보호 레지스터를 포함한다. 따라서, 신뢰 소프트웨어는 호스트 컨트롤로(144) 내의 보호 레지스터를 액세스한다.
소프트웨어는, 어느 암호화된 메시지가 주변 장치(155)로 전송되고, 어느 데이터가 주변 장치(155)로부터 수신되는지를 호스트 컨트롤러(144)에게 나타내도록, 레지스터(120)에 기록한다. 다른 실시예에서, 주변 장치(155)는 암호화 키를 생성하고 그 키를 호스트 컨트롤러(144)에 전송한다. 다른 실시예에서, 호스트 컨트롤러(144) 및 주변 장치(155)는 외부 스누핑에 대한 면역성을 제공하기 위하여 디피 헬먼 교환(Diffie-Hellman exchange)을 구현한다. 또 다른 실시예에서, 호스트 컨트롤러(144) 및 주변 장치(155)는 Man-In-The-Middle 타입 공격을 검사하기 위한 검증 상태에 더하여 디피 헬먼 교환을 구현한다.
호스트 컨트롤러(144)는 신뢰 포트를 통하여 키를 판독한다. 또 다른 실시예에서, 일단 주변 장치(155)가 암호화 키를 사용한 후에는, 표준 USB 소프트웨어 스택 및 USB 호스트 컨트롤러(144) 메커니즘을 사용하여 I/O 트래픽이 전송된다. 다음으로, 메모리(115) 내의 데이터 구조에 의해 정상 USB 트랜잭션이 제어되며, 호스트 컨트롤러(144)는 이 구조를 판독하여 적절한 판독/기록 동작을 수행한다.
도 4는 암호화 키를 주변 장치(155)에 전송하는 일 실시예의 흐름도이다. 프로세싱 블록(410)에서, 컴퓨터 시스템(100)은 스타트 업(부팅) 프로세스를 시작한다. 프로세싱 블록(420)에서, 신뢰 소프트웨어는 암호화 키를 생성한다. 그러나 상술한 바와 같이 암호화 키는 주변 장치(155)에서 생성될 수도 있다.
프로세싱 블록(430)에서, 키는 USB 스택을 우회하여 주변 장치(155)로 전송 된다. 상술한 바와 같이, 신뢰 소프트웨어는 주변 장치(155)로의 암호화 키 전송을 개시하고 어느 데이터가 주변 장치(155)로부터 수신되는지를 레지스터(120)에 기록한다. 암호화 키가 주변 장치(155)에서 생성되는 실시예에서, 키는 주변 장치(155)로부터 호스트 컨트롤러(144)로 전송된다.
프로세싱 블록(440)에서, 암호화 키에 기반하여 주변 장치(155)가 동작하는지 여부를 판정하는 검증 프로세스가 이루어진다. 일 실시예에 따르면, 사용자에게 키보드 상의 문자를 타이핑하도록 촉구하는 메시지를 디스플레이 상에 나타냄으로써 키가 검증된다. 문자는 호스트 소프트웨어에 의해 임의적으로 선택될 수 있다.
사용자가 키를 타이핑하면, 키보드는 그 키를 암호화하여 암호화 키를 만든다. 신뢰 OS 소프트웨어는 암호화 및 타이핑되어야 하는 키 스트로크를 알고 있으므로, OS 소프트웨어는 메시지를 암호 해독하여 그것이 올바른지 여부를 검증할 수 있다. 프로세싱 블록(450)에서, 호스트 컨트롤러(144)가 셋 업(set up)되어, 스택을 통하여 표준 USB 트랜잭션이 발생할 수 있다.
상술한 내용은 신뢰 소프트웨어 및 신뢰 레지스터를 구현하여 USB 스택을 우회함으로써, 악성 USB 소프트웨어가 표준 USB 스택을 사용하여 USB 주변 장치에 사기 메시지(imposter message)를 전송하는 것을 막는다. 또한, 사용자가 키보드를 통하여 암호화 키를 입력할 필요도 없으며, 주변 장치에 비휘발성 저장소를 구현할 필요도 없다.
상기 설명을 읽은 당업자라면 본 발명에 대한 많은 변경 및 변형이 명백할 것임이 분명하지만, 도시되고 설명된 특정 실시예는 한정이 아닌 예로서 제시된 것임을 이해하여야 할 것이다. 따라서, 다양한 실시예에 대한 세부 사항들은 특허청구범위를 제한하고자 한 것이 아니며, 단지 본 발명의 본질적인 기능으로서 설명한 것이다.

Claims (31)

  1. 컴퓨터 시스템으로서,
    칩셋 내의 보호 레지스터들(protected registers)에 암호화 키를 기록하기 위한 신뢰 소프트웨어(trusted software)를 저장하기 위한 SRAM(synchronous random access memory); 및
    주변 장치에 상기 암호화 키를 전송하고, 상기 주변 장치로부터 데이터를 수신하기 위한 호스트 컨트롤러를 더 포함하는 칩셋;
    를 포함하고,
    상기 수신된 데이터가 상기 암호화 키에 적어도 일부 기초하여 암호화된 데이터인 경우, 상기 호스트 컨트롤러는 상기 주변 장치와 연관된 주변 소프트웨어 스택(peripheral software stack)을 이용할 수 있도록 하여 상기 주변 장치로부터 전송되는 데이터를 처리하는 컴퓨터 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 신뢰 소프트웨어는 전송되어야 하는 암호화 키 및 상기 주변 장치로부터 수신되어야 하는 응답 데이터를 상기 호스트 컨트롤러에게 나타내도록 상기 보호 레지스터들에 기록하는 컴퓨터 시스템.
  5. 제1항에 있어서,
    운영 체제(operating system)는 상기 수신된 데이터가 상기 암호화 키에 적어도 일부 기초하여 암호화된 데이터인지 여부를 판정하기 위하여,
    상기 데이터를 복호화하고,
    상기 복호화된 데이터를 예상 응답 데이터와 비교하며,
    상기 복호화된 데이터가 상기 예상 응답 데이터와 일치하는 경우, 상기 수신된 데이터가 상기 암호화 키에 적어도 일부 기초하여 암호화되었다고 판정하는 컴퓨터 시스템.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 주변 장치에 암호화 키를 전송하고, 상기 주변 장치로부터 데이터를 수신하기 위한 호스트 컨트롤러
    를 포함하고,
    상기 수신된 데이터가 상기 암호화 키에 적어도 일부 기초하여 암호화된 데이터인 경우, 상기 호스트 컨트롤러는 상기 주변 장치와 연관된 주변 소프트웨어 스택을 이용할 수 있도록 하여 상기 주변 장치로부터 전송되는 데이터를 처리하는 장치.
  14. 삭제
  15. 제13항에 있어서,
    상기 암호화 키는 상기 장치에 연결된 중앙 처리 장치(central processing unit: CPU)로부터 수신되는 장치.
  16. 제13항에 있어서,
    신뢰 소프트웨어는 전송되어야 하는 암호화 키 및 상기 주변 장치로부터 수신되어야 하는 응답 데이터를 상기 호스트 컨트롤러에게 나타내도록 보호 레지스터들에 기록하는 장치.
  17. 제16항에 있어서,
    운영 체제는 상기 수신된 데이터가 상기 암호화 키에 적어도 일부 기초하여 암호화된 데이터인지 여부를 판정하기 위하여,
    상기 데이터를 복호화하고,
    상기 복호화된 데이터를 상기 응답 데이터와 비교하며,
    상기 복호화된 데이터가 상기 응답 데이터와 일치하는 경우, 상기 수신된 데이터가 상기 암호화 키에 적어도 일부 기초하여 암호화되었다고 판정하는 장치.
  18. 신뢰 소프트웨어를 사용하여 컴퓨터 시스템 내에서 암호화 키를 생성하는 단계;
    주변 장치로 상기 암호화 키의 전송을 개시하도록, 상기 신뢰 소프트웨어가 상기 컴퓨터 시스템 내의 신뢰 레지스터에 기록하는 단계; 및
    상기 주변 장치에 상기 암호화 키를 전송하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    상기 암호화 키는 상기 주변 장치와 연관된 메모리 스택을 우회(bypass)하면서 상기 주변 장치로 전송되는 방법.
  20. 제18항에 있어서,
    상기 암호화 키에 기반하여 상기 주변 장치가 동작하는지 여부를 검증하는 단계를 더 포함하는 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020057025310A 2003-06-30 2004-06-16 신뢰 주변 장치 메커니즘 KR100831441B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/609,508 US20050015611A1 (en) 2003-06-30 2003-06-30 Trusted peripheral mechanism
US10/609,508 2003-06-30

Publications (2)

Publication Number Publication Date
KR20060028704A KR20060028704A (ko) 2006-03-31
KR100831441B1 true KR100831441B1 (ko) 2008-05-21

Family

ID=34062308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057025310A KR100831441B1 (ko) 2003-06-30 2004-06-16 신뢰 주변 장치 메커니즘

Country Status (7)

Country Link
US (1) US20050015611A1 (ko)
EP (1) EP1639425A1 (ko)
JP (1) JP2007526661A (ko)
KR (1) KR100831441B1 (ko)
CN (1) CN1816786A (ko)
TW (1) TW200504522A (ko)
WO (1) WO2005006159A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268143A1 (en) * 2003-06-30 2004-12-30 Poisner David I. Trusted input for mobile platform transactions
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US7480931B2 (en) * 2004-07-24 2009-01-20 Bbs Technologies, Inc. Volume mount authentication
US20060026417A1 (en) * 2004-07-30 2006-02-02 Information Assurance Systems L.L.C. High-assurance secure boot content protection
US7565464B2 (en) * 2004-12-14 2009-07-21 Intel Corporation Programmable transaction initiator architecture for systems with secure and non-secure modes
JP2006235994A (ja) * 2005-02-24 2006-09-07 Nec Electronics Corp ブリッジシステム、ブリッジシステム制御方法、情報処理機器、周辺機器及びプログラム
US7988633B2 (en) * 2005-10-12 2011-08-02 Volcano Corporation Apparatus and method for use of RFID catheter intelligence
US20080083037A1 (en) * 2006-10-03 2008-04-03 Rmcl, Inc. Data loss and theft protection method
US8108905B2 (en) * 2006-10-26 2012-01-31 International Business Machines Corporation System and method for an isolated process to control address translation
US8588421B2 (en) * 2007-01-26 2013-11-19 Microsoft Corporation Cryptographic key containers on a USB token
US8209509B2 (en) * 2008-05-13 2012-06-26 Atmel Corporation Accessing memory in a system with memory protection
EP2202662A1 (en) * 2008-12-24 2010-06-30 Gemalto SA Portable security device protecting against keystroke loggers
US20110035808A1 (en) * 2009-08-05 2011-02-10 The Penn State Research Foundation Rootkit-resistant storage disks
FR2969788B1 (fr) * 2010-12-27 2013-02-08 Electricite De France Procede et dispositif de controle d'acces a un systeme informatique
IL215263A (en) 2011-09-20 2014-01-30 Photax Molds Ltd Security plug prevent usb socket access
CN103984652B (zh) * 2014-05-28 2017-12-19 山东超越数控电子有限公司 一种基于龙芯平台的北斗通信方法
US10140457B2 (en) * 2015-07-31 2018-11-27 Intel Corporation Secure input/output device management
WO2018000164A1 (en) * 2016-06-28 2018-01-04 Intel Corporation Accessing input/output devices of detachable peripheral by main computer
US10751605B2 (en) 2016-09-29 2020-08-25 Intel Corporation Toys that respond to projections
US10372947B2 (en) 2016-12-02 2019-08-06 Microsoft Technology Licensing, Llc Parsing, processing, and/or securing stream buffers
CN106997438B (zh) * 2017-03-29 2019-11-12 山东英特力数据技术有限公司 一种可信服务器cpu设计方法
CN108171043A (zh) * 2017-12-28 2018-06-15 山东超越数控电子股份有限公司 一种计算机接口通信保护和异常告警方法与装置
US11205003B2 (en) 2020-03-27 2021-12-21 Intel Corporation Platform security mechanism

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748888A (en) * 1996-05-29 1998-05-05 Compaq Computer Corporation Method and apparatus for providing secure and private keyboard communications in computer systems
KR20010075411A (ko) * 1999-07-29 2001-08-09 이종우 보안기능을 갖는 어댑터 및 이를 이용한 컴퓨터 보안시스템
US20020073342A1 (en) * 2000-12-11 2002-06-13 International Business Machines Corporation Verifying physical universal serial bus keystrokes

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888802A (en) * 1988-06-17 1989-12-19 Ncr Corporation System and method for providing for secure encryptor key management
JPH08223151A (ja) * 1995-02-13 1996-08-30 Nippon Telegr & Teleph Corp <Ntt> 暗号化通信システム及び暗号化通信方法
DE69527773T2 (de) * 1995-05-18 2002-11-28 Hewlett Packard Co Schaltungsanordnung zur Überwachung der Benutzung von Funktionen in einem integrierten Schaltungkreis
US5802318A (en) * 1995-07-25 1998-09-01 Compaq Computer Corporation Universal serial bus keyboard system
US5926550A (en) * 1997-03-31 1999-07-20 Intel Corporation Peripheral device preventing post-scan modification
JPH11306088A (ja) * 1998-04-27 1999-11-05 Toppan Printing Co Ltd Icカードおよびicカードシステム
GB9818184D0 (en) * 1998-08-20 1998-10-14 Undershaw Global Limited Improvements in and relating to data processing apparatus and verification methods
US6813650B1 (en) * 1999-10-26 2004-11-02 International Business Machines Corporation Multimode non-standard universal serial bus computer input device
JP2001318875A (ja) * 2000-05-08 2001-11-16 Komuzu:Kk コンピュータのデータ盗難防止システム
CN1316315C (zh) * 2000-09-19 2007-05-16 希普利公司 抗反射组合物
JP2002297030A (ja) * 2001-03-29 2002-10-09 Toshiba Corp 暗号処理装置及び暗号処理方法並びにプログラム
US6931552B2 (en) * 2001-05-02 2005-08-16 James B. Pritchard Apparatus and method for protecting a computer system against computer viruses and unauthorized access
US7165180B1 (en) * 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US7478235B2 (en) * 2002-06-28 2009-01-13 Microsoft Corporation Methods and systems for protecting data in USB systems
US8467534B2 (en) * 2003-04-16 2013-06-18 Broadcom Corporation Method and system for secure access and processing of an encryption/decryption key
US6941397B2 (en) * 2003-05-30 2005-09-06 Tom Learmonth Quick save system and protocol, monitor program and smart button firmware of the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748888A (en) * 1996-05-29 1998-05-05 Compaq Computer Corporation Method and apparatus for providing secure and private keyboard communications in computer systems
KR20010075411A (ko) * 1999-07-29 2001-08-09 이종우 보안기능을 갖는 어댑터 및 이를 이용한 컴퓨터 보안시스템
US20020073342A1 (en) * 2000-12-11 2002-06-13 International Business Machines Corporation Verifying physical universal serial bus keystrokes

Also Published As

Publication number Publication date
JP2007526661A (ja) 2007-09-13
EP1639425A1 (en) 2006-03-29
CN1816786A (zh) 2006-08-09
TW200504522A (en) 2005-02-01
US20050015611A1 (en) 2005-01-20
KR20060028704A (ko) 2006-03-31
WO2005006159A1 (en) 2005-01-20

Similar Documents

Publication Publication Date Title
KR100831441B1 (ko) 신뢰 주변 장치 메커니즘
US7392415B2 (en) Sleep protection
US6581162B1 (en) Method for securely creating, storing and using encryption keys in a computer system
US7028149B2 (en) System and method for resetting a platform configuration register
US5835594A (en) Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US8670568B2 (en) Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
KR100294829B1 (ko) 플래시 메모리를 보호하는 방법 및 장치
US9397834B2 (en) Scrambling an address and encrypting write data for storing in a storage device
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
JP3363379B2 (ja) 安全な記憶領域内のアプリケーション・データを保護する方法及び装置
US8156331B2 (en) Information transfer
US8799673B2 (en) Seamlessly encrypting memory regions to protect against hardware-based attacks
WO2006099785A1 (fr) Puce de sécurité
US20030061494A1 (en) Method and system for protecting data on a pc platform using bulk non-volatile storage
KR20060090262A (ko) Sim 장치용 컴퓨터 시스템 내에 신뢰 채널을 제공하는방법 및 시스템
TW201349007A (zh) 提供儲存裝置上防有毒軟體保護之系統與方法
EP2619707B1 (en) Verification and protection of genuine software installationv using hardware super key
KR100606196B1 (ko) 모바일 플랫폼 트랜잭션을 위한 신뢰 입력
US20050044408A1 (en) Low pin count docking architecture for a trusted platform
WO2005066736A1 (en) Data authentication and tamper detection
KR101236991B1 (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: 20120502

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee