KR100996737B1 - 키보드, 이 키보드로 통신하는 방법 및 이 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체 - Google Patents

키보드, 이 키보드로 통신하는 방법 및 이 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체 Download PDF

Info

Publication number
KR100996737B1
KR100996737B1 KR1020040030696A KR20040030696A KR100996737B1 KR 100996737 B1 KR100996737 B1 KR 100996737B1 KR 1020040030696 A KR1020040030696 A KR 1020040030696A KR 20040030696 A KR20040030696 A KR 20040030696A KR 100996737 B1 KR100996737 B1 KR 100996737B1
Authority
KR
South Korea
Prior art keywords
keyboard
initial value
component
nonce
key
Prior art date
Application number
KR1020040030696A
Other languages
English (en)
Other versions
KR20040094379A (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 KR20040094379A publication Critical patent/KR20040094379A/ko
Application granted granted Critical
Publication of KR100996737B1 publication Critical patent/KR100996737B1/ko

Links

Images

Classifications

    • 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/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • 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
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61PSPECIFIC THERAPEUTIC ACTIVITY OF CHEMICAL COMPOUNDS OR MEDICINAL PREPARATIONS
    • A61P31/00Antiinfectives, i.e. antibiotics, antiseptics, chemotherapeutics
    • A61P31/04Antibacterial agents
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B21/00Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
    • G08B21/02Alarms for ensuring the safety of persons
    • G08B21/04Alarms for ensuring the safety of persons responsive to non-activity, e.g. of elderly persons
    • G08B21/0407Alarms for ensuring the safety of persons responsive to non-activity, e.g. of elderly persons based on behaviour analysis
    • 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/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72457User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location
    • 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/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/34Microprocessors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/36Memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/10Details of telephonic subscriber devices including a GPS signal receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Animal Behavior & Ethology (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Psychology (AREA)
  • Social Psychology (AREA)
  • Gerontology & Geriatric Medicine (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Veterinary Medicine (AREA)
  • Public Health (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Pharmacology & Pharmacy (AREA)
  • Organic Chemistry (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Medicinal Chemistry (AREA)
  • General Chemical & Material Sciences (AREA)
  • Psychiatry (AREA)
  • Chemical & Material Sciences (AREA)
  • Oncology (AREA)
  • Communicable Diseases (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Document Processing Apparatus (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Telephone Set Structure (AREA)
  • Transceivers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

키보드와 컴퓨터 상에서 실행중인 소프트웨어 같은 컴포넌트 간의 보안 통신을 제공한다. 제1 초기값은 키보드와 컴포넌트 모두에 공지되어 있다. 키보드와 컴포넌트는 난스를 서로 교환한다. 키보드와 컴포넌트 각각은 난스 및 제1 초기값을 기반으로 제3 초기값과 제2 초기값을 계산한다. 키보드 및 컴포넌트 모두 동일한 계산을 수행함으로써, 키보드 및 컴포넌트 각각은 동일한 제2 및 제3 초기값을 갖는다. 키보드는 키 및 제2 초기값을 기반으로 CBC-3DES를 사용하여 컴포넌트용으로 예정된 키스트로크를 암호화하고, 또한 키 및 제3 초기값을 기반으로 CBC-3DESMAC을 사용하여 각 스트로크에 대하여 메시지 인증 코드를 생성한다. 컴포넌트는 키와 제2 및 제3 초기값을 사용하여 키스트로크를 암호해독하고 검증한다.
키보드, 보안, CBC, 3DES, MAC, 암호, 인증, 난스

Description

키보드, 이 키보드로 통신하는 방법 및 이 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체{KEYBOARD, METHOD OF COMMUNICATING WITH THE KEYBOARD AND COMPUTER READABLE RECORDING MEDIUM ENCODED WITH COMPUTER EXECUTABLE INSTRUCTIONS TO PERFORM THE METHOD}
도 1은 본 발명의 양상이 구현될 수 있는 예시적인 컴퓨팅 환경의 블록도.
도 2는 키보드와 컴포넌트 간 통신이 보안성 없는 채널을 통해 이루어지는 예시적인 제1 환경의 블록도.
도 3은 키보드와 컴포넌트 간 통신이 보안성 없는 채널을 통해 이루어지는 예시적인 제2 환경의 블록도.
도 4는 본 발명의 양상에 따라 보안 통신용으로 구성되고 난스를 서로 교환하는 키보드와 컴포넌트의 블록도.
도 5는 키보드와 컴포넌트 간 보안 통신 세션에 사용하기 위한 프로세서의 흐름도.
도 6은 키보드 및 컴포넌트를 분배하여 본 발명의 양상에 따른 보안 통신에 사용하는 예시적인 제1 환경의 블록도.
< 도면의 주요 부분에 대한 부호 설명 >
100: 컴퓨팅 환경
120: 프로세싱 유닛
131: ROM
132: RAM
134: 오퍼레이팅 시스템
135: 애플리케이션 프로그램
137: 프로그램 데이터
160: 사용자 입력 인터페이스
162: 키보드
본 발명은 일반적으로 컴퓨터 보안 분야에 관한 것이다. 더 상세하게, 본 발명은 인터셉트되거나 또는 다른 유형의 탬퍼링(tampering)될 수 있는 통신 채널에 걸쳐 키보드를 보안적으로 사용하는 것에 관한 것이다.
키보드는 사용자가 입력한 데이터를 컴퓨터와 같은 전자 디바이스에 전달한다. 사용자가 키보드 상의 키를 누르면, 키보드는 눌러진 특정 키를 나타내는 데이터(예를 들면, 문자 "e"에 해당하는 ASCII 코드)를 생성한다. 장치 드라이버는 컴퓨터 상에서 실행중인 프로그램이 어떤 입력을 수신할지라도 (예를 들면, 동작중인 애플리케이션 프로그램이 어떤것이든지 그에 대해 데이터를 입력 버퍼에 위치시킴으로써) 그에게 데이터를 전달한다.
키보드를 사용하여 데이터를 수신하는 경우에 데이터가 민감하거나 또는 비밀 유지가 필요할 때 문제가 발생한다. 예를 들면, 보안 애플리케이션(또는 오퍼 레이팅 시스템의 보안 서비스)은 사용자에게 비밀번호를 입력할 것을 요구하는데, 이 비밀번호는 일반적으로 공중에게 널리 누설되어서는 안된다. 그러나, 키보드로부터 데이터를 수신할 소프트웨어 컴포넌트에 이르는 경로에는 데이터를 인터셉트할 수 있는 몇몇 기회가 있기 때문에 안전하지 않다. 예를 들어, 데이터는 스누핑(snooping)될 수 있는 버스 상을 이동하거나 탬퍼링될 수 있는 (또는 오퍼레이팅 시스템은 드라이버가 조작하는 정보를 저장하고 누설하는 보안성 없는 장치 드라이버로 대체되는) 장치 드라이버에 의해 조작될 것이다. 다시 말하면, 키보드로부터 최종 목적지까지의 경로 상에서 비밀 데이터를 관찰하거나 탬퍼링할 수 있는 몇몇 기회가 있다.
일반적으로 보안성 없는 채널로 접속된 두개의 컴포넌트들 간의 전송을 위해 데이터를 암호화하는 것이 가능하다. 그러나, 키 관리 문제, 재시도 공격 가능성, 및, 적당 크기의 암호문 샘플이 인터셉트될 수 있다면, 키보드에 의해 생성될 수 있는 상대적으로 작은 범위의 데이터가 키보드 통신상의 일반 암호를 상대적으로 쉽게 파괴할 수 있다는 사실 등과 같은 다양한 요인들에 기인하여, 다수의 암호화 기술이 키보드와 관련하여서는 쉽게 적용될 수 없다.
전술한 관점에서, 키보드로 보안 통신을 용이하게 하는 기술이 필요하다.
본 발명은 보안성 없는 통신 채널을 통과하는 두개의 컴포넌트들 간에 보안 통신하는 기술을 제공한다. 이러한 기술은, 키보드용으로 특히 잘 적응되고 표준 암호화 기법을 키보드에 적용할 때 존재할 수 있는 문제를 처리하는 암호화 기법을 사용한다.
본 발명에 따른 키보드는 암호화 기법의 초기화용으로 사용되는 키 및 상수 값을 저장한다. 컴포넌트(예를 들어, 컴퓨터 상에서 실행중인 애플리케이션)는 키보드에 저장된 동일 키 및 동일 상수 값을 저장한다. 컴포넌트와 키보드 간의 보안 세션을 초기화하기 위하여, 컴포넌트와 키보드 각각은 난스(nonce)를 생성한 다음 난스를 서로 교환함으로써, 키보드와 컴포넌트 각각은 양쪽 난스 모두를 갖게 된다. 다음에, 키보드와 컴포넌트는 두개의 초기 값을 계산하는데, 각각의 이 값은 두개의 난스, 키 및 상수 값을 기반으로 하고 있다. 예를 들어, 제1 초기값은 CBC-3DESMAC 알고리즘을 사용하여 생성될 수 있는데, 이 CBC-3DESMAC는 저장된 상수 값을 초기 연쇄화(chaining) 값으로 사용하고 두개의 난스를 기반으로 생성된 메시지에 키를 적용한다. (CBC-3DESMAC이란 데이터 암호화 표준(DES) 알고리즘에 따라 CBC(cipher block chaining) 모드에 3중 암호화를 적용하고, 최종 암호문 블록을 사용하여 메시지 인증 코드(MAC)를 생성하는 것을 말한다). 제2 초기값은 제1 초기값의 비트들을 인버팅(즉, 제1 초기값과 숫자 0xffffffffffffffff 간에 배타적 논리합 연산 수행)함으로써 생성된다. 키보드 및 컴포넌트는 바람직하게 동일한 방식으로 제1 및 제2 초기값을 계산하기 때문에, 그들 모두 동일한 두개의 초기값을 갖게 된다.
바람직한 대체 실시예에서, 키보드와 컴포넌트에는 두개의 상수값이 갖추어져 있고, 두개의 난스를 기반으로 하는 메시지에 CBC-3DESMAC을 적용함으로써 제1 및 제2 초기값을 생성할 수 있는데, 여기에서 제1 상수는 제1 초기값을 생성하는데 사용되고 제2 상수는 제2 초기값을 생성하는데 사용된다.
제1 및 제2 초기값을 생성한 후에, 키보드는 암호화된 데이터를 통신할 준비가 되어 있고, 데이터를 수신할 컴포넌트는 그 데이터를 해독하고 검증할 준비가 되어 있다. 데이터가 키보드로 입력될 때, 키보드는 제1 초기값과 키를 기반으로 데이터를 암호화한다. 바람직하게, 키보드는, CBC 모드를 준비하는데 제1 초기값을 사용하면서, CBC-3DES(CBC 모드를 갖는 3중 DES)를 사용하여 전술한 키로 데이터를 암호화한다. 키보드는 또한 바람직하게 CBC-3DESMAC를 사용하여 데이터의 각 유닛에 대하여 MAC을 생성하는데, CBC-3DESMAC는 전술한 키를 적용하고 제2 초기값을 사용하여 CBC 모드를 준비한다. 바람직하게, 각 키스트로크는 개별 암호화 블록에서 암호화되고, 세션동안 키보드에서 발생된 데이터의 모든 스트림은 암호 블록의 체인을 구성하게 되는데, 왜냐하면, 이러한 기술을 사용함으로써 동일한 키스트로크(예를 들어, 문자 "e")가 그 이전의 키스트로크에 따라 서로 다른 암호문으로써 나타낼 수 있기 때문이다.
암호화된 데이터 및 MAC(들)이 수신 컴포넌트에 일단 수신되었다면, 수신 컴포넌트는 전술한 키와 제1 및 제2 초기값을 사용하여 수신된 데이터를 해독하고 검증한다.
본 발명의 다른 특징은 하기에 설명된다.
후술하는 바람직한 실시예의 상세한 설명 뿐만 아니라 전술한 요약은 첨부된 도면을 참조하면 보다 이해가 잘 될 것이다. 본 발명을 설명할 목적으로, 본 발명 의 예시적 구성의 도면이 도시되었지만, 본 발명이 개시된 특정 방법 및 수단에 한정되는 것은 아니다.
예시적인 컴퓨팅 환경
도 1은 본 발명의 양상이 구현될 수 있는 컴퓨팅 시스템 환경의 예를 나타낸다. 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
본 발명은 많은 다른 범용 또는 특수목적 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋 탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령과 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝 트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크 또는 다른 데이터 전송 매체를 통해 링크된 원격 프로세싱 장치에 의해 태스크를 수행하는 분산형 컴퓨팅 환경에서 실행될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈 및 그외 데이터는 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 (메자닌(Mezzanine) 버스로도 알려진) 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 또한 통신 장치들 간에 점 대 점 접속, 스위칭 구조등으로써 구현될 수 있다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체 일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(140), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 컴포넌트는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 버스(USB) 와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터외에도, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 1은 메모리 장치(181)에 상주하는 원격 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
키보드와 컴포넌트 간 통신의 보안
본 발명은 키보드로부터 입력을 요구하는 컴포넌트와 보안적으로 통신하기 위하여 키보드가 어떻게 사용될 수 있는가에 관한 문제를 처리한다. 도 2는 그러한 통신의 예시적인 시나리오를 도시한다. 도 2에서, 키보드(162)는 컴포넌트(204)와 통신한다. 컴포넌트(204)는 임의의 유형의 컴포넌트, 예를 들어, 하드웨어 일부, 컴퓨터 상에서 실행중인 프로그램일 수 있다. 키보드(162)로부터 컴포넌트(202)로의 통신은, 적어도 몇개의 보안성 없는 부분(204)을 포함하는 통신채널을 통과한다. 즉, 키스트로크를 나타내는 데이터가 키보드(162)로부터 컴포넌트(202)까지의 경로 상 몇개의 채널을 통과함에 따라, 제3 기관이 데이터를 인터셉트하거나 탬퍼링할 수 있는 몇몇 기회가 존재하게 된다. 예를 들면, 키보드(162)에서 타이핑되는 정보가 공중에게 노출되어서는 안되는 보안 패스워드라면 이러한 인터셉트나 탬퍼링은 문제가 될 수 있다.
도 3은 키보드와 컴포넌트 간 보안 통신이 요구되는 특정 시나리오를 도시한다. 도 3에서, 키보드(162)를 사용하여 컴퓨터(110) 상에서 실행중인 소프트웨어에 입력을 제공한다. 도 3의 예에서, 키보드(162)는 유니버설 시리얼 버스(USB)(302)와 사용하도록 적용된 키보드이다. (간결하게, 그러한 키보드를 USB 키보드로 부르기로 한다.) 키보드(162)가 키스트로크를 수신하고 그 키스트로크를 나타내는 바이트를 USB(302) 상으로 전송하면, USB 드라이버(304)는 그 바이트를 픽업한다. 다음에, 드라이버(304)는 그 바이트를 그의 최종 목적지, 도 3의 예에서는 소프트웨어(306)로 전달한다. 소프트웨어(306)는 (도 2에 도시된) 컴포넌트(202)의 예이다.
도 3의 예에는 컴퓨터(110) 상에서 동작하는 두개의 오퍼레이팅 시스템(134(1) 및 134(2))이 있다. 오퍼레이팅 시스템(134(1))은 MICROSOFT WINDOWS XP, Unix, Linux, Solaris등과 같은 전형적인 오퍼레이팅 시스템이다. 오퍼레이팅 시스템(134(2))은 신뢰성 애플리케이션용으로 사용되는 "고 보증(high-assurance)" 오퍼레이팅 시스템이다. 예를 들면, 오퍼레이팅 시스템(134(2))은 그 오퍼레이팅 시스템(134(2))의 외부와 액세스할 수 없는 "커튼성(curtained)" 메모리와 관련이 있을 수 있으며, 이 오퍼레이팅 시스템(134(2))은 커튼성 메모리에 비밀 정보(예를 들어, 암호키, 패스워드 등)를 저장할 수 있어, 오퍼레이팅 시스템(134(2)) 하에서 실행되도록 허가된 단지 임의의 특정 신뢰성 애플리케이션만이 그 비밀 정보를 판독할 수 있다. 오퍼레이팅 시스템(134(2))은 기능을 올바르게 수행할 것이다라는 매우 고 레벨의 보증 권한이 공중에게 부여된다는 견지에서 "고 보증"인데, 즉, 비밀 정보를 보호하는 것이 오퍼레이팅 시스템(134(2))의 의도된 기능 중의 하나라면, 공중은 오퍼레이팅 시스템(134(2))이 그 비밀 정보를 누설하지 않을 것이라는 매우 고 레벨의 보증이 부여된다는 것이다. 비밀 정보를 보호할 수 있는 부분은 타이핑된 비밀정보를 외부 세계에 누설하지 않고 이 비밀정보를 수신할 수 있는 것을 포함할 수 있다. 오퍼레이팅 시스템(134(2))은 드라이버(304)가 오퍼레이팅 시스템(134(1))의 제어하에 있기 때문에 그러한 비밀정보를 다루는데 있어서 이 드라이버(304)를 신뢰하지 않는다(그리고 오퍼레이팅 시스템(134(1))은 해커가 USB(302)로부터 직접 정보를 판독할 수 있고, 또는 비밀정보를 저장하고 누설할 수 있는 사악한 드라이버를 대신한다). 따라서, 오퍼레이 팅 시스템(134(2))은, 비밀정보가 오퍼레이팅 시스템(134(1))에서 발생하는 행위에 의해서 누설될 수 있다는 걱정없이 키보드(162)로부터 오퍼레이팅 시스템(134(1))을 통과하는 정보를 수신하는 방법을 필요로 한다.
도 3의 예가 유니버설 시리얼 버스(302)를 통하여 컴퓨터(110)와 통신하는 것으로 도시되어 있지만, 전술한 시나리오는 키보드(162)를 컴퓨터(110)와 통신하는 특정 수단에 관계없이 적용할 수 있기 때문에, 본 발명이 USB 키보드에 제한되는 것은 아니라는 것을 이해해야 한다.
도 4는 키보드(162)와 컴포넌트(202)가 보안성 없는 채널을 통하여 보안 통신을 하도록 구성되는 방법을 도시한다. 키보드(162) 및 컴포넌트(202) 각각은 암호키(402)의 사본을 저장한다. 키보드(162) 및 컴포넌트(202)는 하기에 더 상세하게 설명되는 바와 같이 바람직한 특정 암호 기술용의 초기값으로 사용되는 상수값(404)를 또한 바람직하게 저장한다. 추가의 바람직한 실시예에서, 키보드(162) 및 컴포넌트(202)는 하나 대신에 두개의 상수값(키와 더불어)을 저장할 수 있다; 이 두개의 상수값은 하기에 설명되는 바와 같이 암호 기술에 사용될 수 있다. 키보드(162)는, 예를 들면, 키(402)와 상수값(404)을 저장하는 내장 비휘발성 반도체를 포함할 수 있으며, 키(402)와 상수값(404)이 저장된 분리형 저장 매체를 수신하는 포트를 구비할 수 있다. 컴포넌트(202)가 소프트웨어 컴포넌트인 경우에 키(402)와 상수값(404)은 컴포넌트(202)의 데이터 공간에 저장될 수 있다. 그러나, 본 발명은 키(402) 및 상수값(404)을 저장하는 임의의 특정 방식에 제한되지는 않는다는 것이 이해될 것이다.
키보드(162)와 컴포넌트(202) 간의 보안 통신 초기에서, 키보드(162) 및 컴포넌트(202)는 난스를 생성하여 서로 교환할 수 있다. 즉, 키보드(162)는 난스(412)를 생성하고 그 난스(412)를 컴포넌트(202)로 전송한다. 컴포넌트(202)는 난스(414)를 생성하고 그 난스(414)를 키보드(162)로 전송한다. 당 분야에서 공지된 바와 같이, 난스는 암호 애플리케이션에서 사용되는 데이터의 일부로, 그 실체를 암호적으로 인증하거나 또는 종속적으로 암호화되는 재생이 쉽지 않은 구성요소로 암호화 세션을 준비하는데 종종 사용된다. 하기에 보다 상세히 설명되는 바와 같이, 난스(412 및 414)를 사용하여 키보드(162)와 컴포넌트(202) 간에 전송되는 데이터를 암호화하고 인증하기 위한 초기값을 생성할 수 있다.
키보드에서 컴포넌트로 보안적으로 데이터를 전송하는 프로세스
도 5는 컴포넌트(202)가 키보드(162)로부터의 데이터를 보안적으로 수신하는 세션에 키보드(162) 및 컴포넌트(202)를 사용하는 프로세스를 도시한다. 도 5의 프로세스에서는 (전송된 데이터의 인터셉트를 방지하는) 암호화 및 (전송된 데이터의 변경을 방지하는) 인증 모두를 제공한다. 그러나, 전송의 보안 요구사항에 따라, 암호화 또는 인증 하나만 사용될 수 있다는 것이 이해될 것이다. 예를 들면, 데이터를 변경하는 것은 허용될 수 있지만 인터셉트는 허용될 수 없다면, 암호화 하나만 사용될 수 있다. 역으로, 데이터의 인터셉트는 허용될 수 있지만, 데이터의 변경은 허용될 수 없다면, 인증 하나만 사용될 수 있다.
초기에, 키보드(162)와 컴포넌트(202)는 난스를 교환한다(단계 502). 예를 들면, 도 4를 참조하여 전술한 바와 같이, 키보드(162)는 난스(412)를 생성하고 그 난스를 컴포넌트(202)로 전송하고, 컴포넌트(202)는 난스(414)를 생성하고 그 난스를 키보드(162)로 전송한다. 난스를 생성하는 기술은 당 분야에 공지되어 있기 때문에, 여기에서는 상세히 설명하지는 않는다. 일부 예로써, 난스(412 및 414)는 난수, 메모리의 일부 영역의 내용, 시간, 온도, 달의 위상과 같이 종종 변할 수 있고 키보드(162) 또는 컴포넌트(202)가 동일한 난스를 두번 생성할 것 같지 않은 임의의 인자를 기반으로 생성될 수 있다.
난스(412 및 414)가 서로 교환된 뒤에는 키보드(162) 및 컴포넌트(202) 각각 두개의 난스를 갖게된다. 다음에, 키보드(162) 및 컴포넌트(202)는 일반적으로 협의된 공식을 사용하여 두개의 난스 및 키(402)의 함수로써 두개의 초기값(Ⅳ_c 및 Ⅳ_m)을 계산한다. 즉, K=키(402), N1=난스(412) 및 N2=난스(414) 라면,
Ⅳ_c = f(K, N1, N2)이고
Ⅳ_m = g(K, N1, N2)이다.
함수 f와 g는 임의의 함수일 수 있다. 바람직한 실시예에서,
f(K, N1, N2) = CBC-3DESMACK(const_Ⅳ, N1|N2) 이고,
g(K, N1, N2) = f(K, N1, N2) xor 0xffffffffffffffff 이며,
여기에서, const_Ⅳ는 (도 4에 도시된) 상수값(404)과 동일하다. 바람직한 다른 실시예에서,
f(K, N1, N2) = CBC-3DESMACK(const_Ⅳ_1, N1|N2) 이고,
g(K, N1, N2) = CBC-3DESMACK(const_Ⅳ_2, N1|N2) 이며,
(여기에서, 연산자 "|"는 연결(concatenation)을 의미하므로, N1|N2 는 N1을 N2로 연결한 값이다. "xor"는 비트단위의 "배타적 논리합" 연산이므로, A xor B는 A 또는 B에 "1"이 있지만 모두 "1"이 아닌 임의의 비트를 "1"로 설정하고 다른 모든 비트는 0으로 설정하는 값이다.) CBC-3DESMACK(const_Ⅳ, N1|N2)는 암호 함수이고, 그 의미는 당 분야에 공지되어 있으며 하기에 더 상세하게 설명된다.
Ⅳ_c 및 Ⅳ_m이 계산된 후에, 키보드(162)와 컴포넌트(202) 간의 통신을 시작할 수 있다. 키보드(162)는 키스트로크(즉, 동작자가 키들 중 어느 하나(또는 <SHIFT>와 "A", 또는 <CTRL>과 "A"와 같이 키들의 임의의 조합)를 누르는 것을 수신한다(단계 506). 다음에, 키보드는 키스트로크를 암호화한다(단계 508); 암호화는 바람직하게 키(402)와 Ⅳ_c를 기반으로 한다. 바람직한 실시예에서, 키스트로크는 키로써 키(402)를 초기값으로써 Ⅳ_c를 사용하여 CBC-3DES를 사용하여 암호화된다. CBC-3DES는 당분야에서 공지된 암호화 알고리즘으로 하기에 보다 상세하게 설명된다. 부가적으로, 키보드(162)는 바람직하게 키(402)와 Ⅳ_m을 기반으로 하여 키스트로크용 메시지 인증 코드(MAC)을 계산한다(단계 510). 바람직한 실시예에서, 메시지 인증 코드는 키로써 키(402)를 초기값으로써 Ⅳ_m을 사용하고 CBC-3DESMAC를 사용하여 생성된다. 전술한 바와 같이, CBC-3DESMAC는 당분야에서 공지되어 있고 하기에 더 상세히 설명된다.
키보드가 암호화된 키스트로크 데이터 및 MAC 모두를 생성한 후에, 컴포넌트(202)는 키보드(162)로부터 암호화된 키스트로크 데이터 및 MAC을 수신한다(단계 512). 다음에, 컴포넌트(202)는 키(402) 및 Ⅳ_c를 사용하여 데이터를 암호해독하고, 또한 키(402) 및 Ⅳ_m을 사용하여 데이터를 검증한다(단계 514). 다음에, 프로세스는 단계 506으로 돌아가 키보드에서의 다음 입력을 수신한다.
암호화 함수 CBC-3DES 및 CBC-3DESMAC
CBC-3DES는 데이터 암호화 표준(DES)을 CBC 모드와 결합하는 암호화 함수이다. "3DES"는 주어진 데이터 블록에 3중으로 DES 암호화 알고리즘을 적용하는 것을 의미한다(3중 DES). DES는 키를 데이터에 공지된 방법으로 적용하여 데이터를 암호화한다. DES는 긴 메시지를 작은 블록으로 분할하고, 분할된 각각의 블록을 암호화함으로써 긴 메시지를 암호화한다. ("3중 DES"가 사용될 때, DES 알고리즘을 각각의 블록에 3중으로 적용하여 그 블록에 대한 암호문을 생성하게 된다.) DES(및 3중 DES)는 단지 키만을 사용하여 데이터의 각 블록을 암호화할 수 있다; 그러나, CBC 모드를 사용하는 경우에는 한개의 블록을 암호화하기 위해서는 키 뿐만 아니라 마지막 블록을 암호화함으로써 생성된 암호문 또한 기반으로 한다. 따라서, 주어진 블록을 암호화하기 위해서는 두개의 입력, 즉, 키, 및 이전 블록을 암호화하여 얻어지는 암호문을 기반으로 한다. 데이터의 제1 블록은 "이전" 블록을 갖고 있지 않기 때문에, CBC 모드 프로세스는 "초기값"을 준비해야 하는데, 즉, 데이터의 제1 블록은 키와 몇몇의 초기값을 기반으로 암호화된다. 초기값은 일련의 블록들을 암호화할 때는 사용되진 않지만, 이 블록들이 암호화되는 것에는 (제1 블록의 암호문이 초기값을 기반으로 하고 있고 제2 블록의 암호문이 제1 블록의 암 호문을 기반으로 하고 있기 때문에) 간접적으로 영향을 미칠 수 있다.
전술한 관점에서, 구(phrase) "CBC-3DESK(Ⅳ, message)"는 3중 DES 및 CBC 모드를 사용하여 키 K로 "message"를 암호화하는 것을 의미하며, 여기서 Ⅳ는 CBC 모드용 초기값이다.
CBC-3DESMAC은 CBC-3DES를 사용하여 메시지 인증 코드(MAC)을 생성하는 방법이다. 특히, 구 "CBC-3DESMACK(Ⅳ, message)"는 CBC 모드용 초기값으로 Ⅳ를 사용하고 3중 DES 및 CBC 모드를 사용하여 키 K로 "message"를 암호화한다는 것을 의미한다. 그러나, CBC-3DESMAC는 메시지용의 복잡한 암호문 대신 메시지용 MAC을 생성하는 것을 단지 목적으로 하고 있기 때문에, 단지 마지막 블록의 암호문만이 저장되고 나머지 블록의 암호문은 소거될 수 있다. (심지어 상수 키 및 상수 Ⅳ가 주어지더라도) 서로 다른 메시지가 동일한 최종 블록을 생성할 것 같지 않기 때문에 (즉, 더 상세하게는. 각 블록이 2n개의 서로 다른 값을 나타낼 수 있다면, 임의의 두개의 메시지가 동일한 최종 블록을 가질 기회는 2n개 중 1개이기 때문에), 마지막 블록의 암호문이 MAC으로 사용될 수 있다.
사용되는 방법 뿐만 아니라 CBC-3DES를 특별히 선택하는 것은 암호화된 키보드 통신에 있어서 특히 잇점이 있다. 암호화될 메시지의 도메인이 작기 때문에(예를 들어, 약 128개의 상이한 ASCII 문자), 암호가 깨어지는 것을 방지할 때에 CBC 모드가 특히 유효하다. (연쇄화하지 않고) 직접 암호가 사용된다면, 주어진 세션 내에서, 각각의 문자는 타이핑될 때마다 동일한 암호문으로 암호화될 것이다(예를 들면, "e"를 타이핑하면 항상 동일한 암호문이 생성될 것이다). 유식한 추측을 함으로써(예를 들면, "e"가 영어에서 가장 일반적으로 발생하는 문자라는 사실을 이용함으로써), 그러한 암호를 보다 쉽게 파괴할 수 있다. 세션의 모든 입력을 연쇄화하게 되면, 입력 스트림에 나타나는 것에 따라 동일한 데이터가 상이한 암호문(예를 들어, "e"가 항상 동일한 암호문으로 생성되지 않을 수 있다)으로 나타날 수 있도록 하여 암호를 파괴하는데 더 어렵게 할 수 있다. 부가적으로, 난스를 기반으로 새로운 초기값을 생성하여 각 세션에 대하여 암호화를 변경함으로써 관찰자가 보안을 손상시키기에 사용될 수 있는 사용 패턴을 검출하는 것(예를 들어, 매 세션마다 타이핑된 제1 텍스트가 패스워드라면, 관찰자는 패스워드에 대한 암호문을 캡쳐하여 재시도 공격을 시작하는 것)을 방지할 수 있게 된다. 더우기, DES가 8 바이트 블록상에서 동작하고 최근 키보드 프로토콜은 그 크기에 적합할 수 있는 블록에 데이터를 송신하기 때문에, DES에 의해 사용되는 암호 블록의 크기가 특히 적합하다(예를 들어, USB 표준 또한 8 바이트 블록을 다루어, 각 USB 블록이 낭비되는 공간없이 하나의 DES 블록에 적합할 수 있다.). 그러나, 기타 임의의 블록 암호가 사용될 수 있고, CBC 모드와 유사한 연쇄화 개념이 그러한 블록 암호에 적용될 수 있다는 것을 이해해야 한다.
여기에 설명된 암호화 기법이 특히 키보드에 적합한 것과 같은 이유로, 암호화 기법이 기타 임의의 유형의 입력 장치, 예를 들어, 마우스(또는 기타 포인팅 장치)에 또한 적합하다는 것을 이해해야 한다. 이러한 입력 장치들은 키보드와 공통 적으로 작은 부호표(vocabulary)와 같은 다양한 특징들 및 복잡한 암호화 알고리즘을 실행하기에는 제한된 능력을 공유한다.
데이터를 암호화하는 키보드의 예시적 사용
도 6은 암호화를 수행하는 키보드가 보안 통신을 요구하는 컴포넌트들과 사용될 수 있는 예시적 환경을 도시한다. 도 6의 예에서, 제조자(602)는 복수의 키보드(162(1), 162(2), ..., 162(n))를 제조하고 이 키보드를 대중이 사용하도록 분배한다. 각각의 키보드(162(1), 162(2), ..., 162(n))는 (도 4에 도시된) 키(402) 및 상수값(404)을 짜넣는다(또는 키(402) 및 상수값(404)을 분리형 반도체 메모리용 포트 수단과 같은 외부적으로 액세스할 수 있는 몇몇 수단을 내장한다). 제조자(604)는 키보드와 보안적으로 통신하기에 적합한 컴포넌트(202(1), 202(2), ..., 202(m))를 생산한다. 각각의 컴포넌트(202(1), 202(2), ..., 202(m))는 키(402) 및 상수값(404)을 내장한다(또는, 키 및 상수값을 수신할 수 있는 것이다). 컴포넌트(202(1), 202(2), ..., 202(m))는 전술한 기술을 통해 키보드(162(1), 162(2), ..., 162(n))로부터의 입력을 이제 수신할 수 있다.
제조자(602)는 제조자(604)와 미리 관계를 가질 수 있기 때문에 두 제조자 모두 보안 통신용으로 키(402)와 상수값(404)을 삽입하는 것에 동의할 수 있다. 일 실시예에서, 제조자(602 및 604)는 동일한 실체이다. 다른 실시예에서, 제조자(604)는 보안 키보드로부터의 데이터를 수신할 수 있는 컴포넌트(202(1), 202(2), ..., 202(m))의 제조자이고, 제조자(602)는 키보드의 제조자로, 제조자(602)는 제조자(604)가 컴포넌트(202(1), 202(2), ..., 202(m))와 보안 통신 을 위한 키보드를 제조하기에 그리고 키(402) 및/또는 상수값(404)를 유지하기에 충분히 신뢰할만하다.
전술한 예는 단지 설명을 목적으로 되었고 결코 본 발명을 제한하는 것으로 해석되어서는 안된다. 본 발명이 다양한 실시예를 참조하여 설명되었지만, 여기에 사용된 용어는 제한하기 위한 용어라기 보다는 설명 및 예시하기 위한 용어라는 것을 이해해야 한다. 더우기, 본 발명이 여기에서는 특정 수단, 재료 및 실시예를 참조하여 설명되었지만, 본 발명이 여기에 개시된 특징에 제한되도록 의도된 것은 아니다; 오히려, 본 발명은 첨부된 청구범위 내에 있는 것과 같은 모든 기능적 등가 구조물, 방법 및 용도로 확장된다. 본 명세서의 교시의 잇점을 갖는 당업자는 본 발명의 사상과 범위에서 벗어나지 않고 본 명세서에 많은 수정을 할 수 있고 변경할 수 있다.
따라서, 본 발명에 따르면, 보안성이 없어 인터셉트되거나 또는 다른 유형의 탬퍼링될 수 있는 통신 채널에 걸쳐 키보드를 보안적으로 사용할 수 있게된다.

Claims (30)

  1. 키보드로 통신하는 방법으로서,
    상기 키보드로부터 컴포넌트에서 제1 난스(nonce)를 수신하는 단계;
    상기 컴포넌트로부터 상기 키보드로 제2 난스를 전송하는 단계;
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC(cipher block chaining)를 적용함으로써 제1 초기값과 제2 초기값을 생성하는 단계;
    상기 키 및 상기 제1 초기값을 사용하여 3중 DES 및 CBC로 암호화된 복수의 데이터를 키보드로부터 컴포넌트에서 수신하는 단계 - 상기 키보드로부터 수신되는 각각의 개별(separate) 키스트로크는 복수의 데이터 중의 개별 하나 내에 포함되며, 상기 복수의 데이터 중 각각의 하나는 3중 DES 및 CBC의 개별 블럭을 사용하여 암호화되며, 상기 키 및 상기 제1 초기값은 상기 컴포넌트 및 상기 키보드 모두에게 공지됨 -; 및
    상기 제1 초기값 및 상기 키를 기초로 하여 상기 복수의 데이터를 암호해독하는 단계
    를 포함하는, 키보드로 통신하는 방법.
  2. 제1항에 있어서,
    상기 복수의 데이터에 대응하는 복수의 메시지 인증 코드를 상기 키보드로부터 상기 컴포넌트에서 수신하는 단계 - 상기 메시지 인증 코드는 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 3중 DES 및 CBC로 생성되고, 상기 제2 초기값은 상기 컴포넌트 및 상기 키보드 모두에 공지되어 있음 -; 및
    복수의 메시지 인증 코드를 사용하여 복수의 데이터를 검증하는 단계
    를 더 포함하는, 키보드로 통신하는 방법.
  3. 제2항에 있어서,
    상기 키보드로부터 제1 난스를 수신하는 단계;
    상기 키보드로 제2 난스를 전송하는 단계;
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제1 초기값을 생성하는 단계; 및
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제4 초기값과 상기 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제2 초기값을 생성하는 단계
    를 더 포함하는, 키보드로 통신하는 방법.
  4. 제1항에 있어서,
    상기 복수의 데이터는 행동 무결성(behavioral integrity)이 상기 컴포넌트에 의해 신뢰되지 않는 채널을 통하여 수신되는, 키보드로 통신하는 방법.
  5. 제4항에 있어서,
    상기 컴포넌트는 제2 오퍼레이팅 시스템과 함께 컴퓨팅 장치 상에서 실행되는 제1 오퍼레이팅 시스템을 포함하고, 상기 제1 오퍼레이팅 시스템은 적어도 어떤면에서는 상기 제2 오퍼레이팅 시스템의 행동(behavior)을 신뢰하지 않고, 상기 키보드는 상기 제2 오퍼레이팅 시스템에 의해 제어되는 드라이버를 통하여 상기 제1 오퍼레이팅 시스템과 통신하는, 키보드로 통신하는 방법.
  6. 제1항에 있어서,
    상기 키보드는 USB 키보드를 포함하는, 키보드로 통신하는 방법.
  7. 제6항에 있어서,
    상기 3중 DES와 CBC는 소정 크기의 블록으로 데이터를 암호화하고, 상기 키보드는 상기 소정 크키의 블록으로 데이터를 통신하는, 키보드로 통신하는 방법.
  8. 제1항에 있어서,
    상기 키보드로부터 제1 난스를 수신하는 단계,
    상기 키보드로 제2 난스를 전송하는 단계,
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제2 초기값과 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제1 초기값을 생성하는 단계를 더 포함하는, 키보드로 통신하는 방법.
  9. 컴포넌트에서 키보드로부터의 입력을 보안적으로 수신하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체로서,
    상기 방법은
    상기 키보드로부터 상기 컴포넌트에서 제1 난스를 수신하는 단계;
    상기 컴포넌트로부터 상기 키보드로 제2 난스를 전송하는 단계;
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제1 초기값과 제2 초기값을 생성하는 단계;
    상기 키보드로부터의 복수의 암호화된 키스트로크를 상기 컴포넌트에서 수신하는 단계 - 암호화된 상기 키스트로크는 키보드에서 수신된 입력 키스트로크를 키 및 제1 초기값을 사용하여 3중 DES 및 CBC로 암호화함으로써 키보드에서 생성되고, 상기 복수의 키스트로크 중의 각각의 개별 하나는 3중 DES 및 CBC의 개별 블럭을 사용하여 암호화되며, 상기 키 및 상기 제1 초기값은 상기 키보드 및 상기 컴포넌트 모두에서 이용가능함 -; 및
    상기 컴포넌트에서, 상기 키 및 상기 제1 초기값을 사용하여 복수의 암호화된 키스트로크를 암호해독하는 단계
    를 포함하는, 컴포넌트에서 키보드로부터의 입력을 보안적으로 수신하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  10. 제9항에 있어서,
    상기 컴포넌트는 제2 오퍼레이팅 시스템과 더불어 컴퓨팅 장치 상에서 실행되는 제1 오퍼레이팅 시스템을 포함하고, 상기 제1 오퍼레이팅 시스템은 적어도 어떤 면에서는 상기 제2 오퍼레이팅 시스템의 행동을 신뢰하지 않으며, 상기 키보드는 상기 제2 오퍼레이팅 시스템에 의해 제어되는 드라이버를 통하여 상기 제1 오퍼레이팅 시스템과 통신하는, 컴포넌트에서 키보드로부터의 입력을 보안적으로 수신하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  11. 제9항에 있어서,
    상기 방법은,
    상기 복수의 암호화된 키스트로크에 대응하는 복수의 메시지 인증 코드를 상기 키보드로부터 컴포넌트에서 수신하는 단계 - 상기 메시지 인증 코드는 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 3중 DES 및 CBC로 생성되고, 상기 제2 초기값은 상기 컴포넌트 및 상기 키보드 모두에 공지되어 있음 -; 및
    복수의 메시지 인증 코드를 사용하여 복수의 암호화된 키스트로크를 검증하는 단계
    를 더 포함하는, 컴포넌트에서 키보드로부터의 입력을 보안적으로 수신하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  12. 제11항에 있어서,
    상기 방법은
    키보드로부터 제1 난스를 수신하는 단계;
    키보드로 제2 난스를 전송하는 단계;
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제1 초기값을 생성하는 단계; 및
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제4 초기값과 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제2 초기값을 생성하는 단계
    를 더 포함하는, 컴포넌트에서 키보드로부터의 입력을 보안적으로 수신하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  13. 제9항에 있어서,
    상기 3중 DES와 CBC는 소정 크기의 블록으로 데이터를 암호화하고, 상기 키보드는 상기 소정 크키의 블록으로 데이터를 통신하는, 컴포넌트에서 키보드로부터의 입력을 보안적으로 수신하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  14. 제1 초기값 및 키를 저장하는 하나 또는 그 이상의 저장 위치;
    통신 인터페이스를 통하여 수신자로부터 제1 난스를 수신하고, 상기 통신 인터페이스를 통하여 상기 수신자로 제2 난스를 전송하고, 키보드 및 컴포넌트 모두에 공지된 제2 초기값과 키를 사용하여 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제1 초기값을 생성하도록 적응되는 암호화 컴포넌트 - 상기 암호화 컴포넌트는 키보드에서 수신되는 입력 데이터를 상기 제1 초기값 및 상기 키를 사용하여 3중 DES 및 CBC로 암호화하여, 상기 입력 데이터에 기초하여 암호화된 데이터를 생성하며, 상기 입력 데이터 중의 각각의 개별 하나는 상기 키보드에서 수신되는 개별 키스트로크를 대표하며, 상기 입력 데이터 중 각각의 상기 개별 하나는 3중 DES 및 CBC를 사용하여 암호화됨 -; 및
    상기 제1 초기값과 상기 키를 알고있는 수신자용으로 예정된 암호화된 데이터를 키보드 외부의 장치로 통신하는 통신 인터페이스
    를 포함하는 키보드.
  15. 제14항에 있어서,
    상기 암호화 컴포넌트는 상기 암호화된 데이터 또는 상기 입력 데이터에 대응하는 복수의 메시지 인증 코드를 더 생성하고, 상기 메시지 인증 코드는 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 3중 DES 및 CBC로 생성되는 키보드.
  16. 제14항에 있어서,
    상기 키보드는 USB 키보드를 포함하는 키보드.
  17. 제14항에 있어서,
    상기 통신 인터페이스는, 상기 암호화된 데이터가 상기 수신자에게 통신될 때 상기 장치상에서 실행되는 제1 오퍼레이팅 시스템에 의해 제어되는 드라이버로 상기 암호화된 데이터를 통신하고, 상기 수신자는 상기 제2 오퍼레이팅 시스템하에서 실행되는 프로그램 또는 상기 장치상에서 실행되는 제2 오퍼레이팅 시스템이고, 상기 제2 오퍼레이팅 시스템은 적어도 어떤 면에서는 상기 제1 오퍼레이팅 시스템의 행동을 신뢰하지 않는 키보드.
  18. 키보드가 키보드 외부의 컴포넌트와 보안 통신하도록 하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체로서,
    상기 방법은
    상기 컴포넌트로 제1 난스를 전송하는 단계;
    상기 컴포넌트로 제2 난스를 전송하는 단계;
    상기 키보드 및 상기 컴포넌트 모두에 공지된 제2 초기값과 키를 사용하여, 상기 제1 난스와 상기 제2 난스의 조합에 3중 DES 및 CBC를 적용함으로써 제1 초기값을 생성하는 단계;
    복수의 키스트로크를 수신하는 단계;
    상기 키 및 상기 제1 초기값을 사용하여 3중 DES 및 CBC로 입력 키스트로크들의 각각을 암호화하는 단계 - 상기 입력 키스트로크들의 각각의 하나는 3중 DES 및 CBC의 개별 블럭을 사용하여 암호화되며, 상기 키 및 상기 제1 초기값은 상기 키보드 및 상기 컴포넌트 모두에게 공지됨 -; 및
    암호화된 상기 키스트로크를 상기 컴포넌트로 송신하는 단계
    를 포함하는, 키보드가 키보드 외부의 컴포넌트와 보안 통신하도록 하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  19. 제18항에 있어서,
    상기 3중 DES와 CBC는 소정 크기의 블록으로 데이터를 암호화하고, 상기 키보드는 상기 소정 크키의 블록으로 데이터를 통신하는, 키보드가 키보드 외부의 컴포넌트와 보안 통신하도록 하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  20. 제18항에 있어서,
    상기 방법은,
    복수의 키스트로크에 대응하는 복수의 메시지 인증 코드를, 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 3중 DES 및 CBC로 생성하는 단계,
    상기 메시지 인증 코드를 컴포넌트로 송신하는 단계를 더 포함하는, 키보드가 키보드 외부의 컴포넌트와 보안 통신하도록 하는 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체.
  21. 소프트웨어 컴포넌트에 데이터를 보안적으로 입력되게 하는 방법으로서,
    소프트웨어 컴포넌트의 사본을 분배하는 단계; 및
    키보드를 분배하거나 분배를 가능하게 하는 단계
    를 포함하고,
    상기 소프트웨어 컴포넌트는,
    키;
    제1 초기값; 및
    컴퓨터 실행가능 명령을 포함하고, 상기 명령은,
    소프트웨어가,
    제1 난스를 키보드로 전송하고,
    키보드로부터 제2 난스를 수신하고,
    상기 제1 난스, 상기 제2 난스 및 상기 제1 초기값을 기반으로 제2 초기값을 생성하고,
    키 및 제2 초기값을 사용하여 키보드로부터 수신된 암호화된 데이터를 암호 해독하도록 하며,
    상기 키보드는,
    키의 사본을 저장하거나 액세스하기 위한 하드웨어;
    상기 제1 초기값의 사본을 저장하거나 액세스하기 위한 하드웨어; 및
    소프트웨어 또는 하드웨어를 포함하고, 상기 소프트웨어 또는 하드웨어는
    키보드가,
    상기 소프트웨어 컴포넌트로부터 제1 난스를 수신하고,
    제2 난스를 상기 소프트웨어 컴포넌트로 전송하고,
    상기 제1 난스, 상기 제2 난스 및 상기 제1 초기값을 기반으로 제2 초기값을 생성하고,
    키 및 상기 제2 초기값을 사용하여 키보드에서 수신되는 입력 데이터를 암호화함으로써 암호화된 데이터를 생성하게 하며,
    상기 입력 데이터의 각각의 개별 하나는 상기 키보드 상에서 개별 키스트로크를 대표하며, 상기 입력 데이터의 각각의 상기 개별 하나는 3중 DES 및 CBC 의 개별 블럭을 사용하여 암호화되는, 소프트웨어 컴포넌트에 데이터를 보안적으로 입력되게 하는 방법.
  22. 제21항에 있어서,
    상기 키보드는 키보드가,
    상기 제1 난스, 상기 제2 난스 및 상기 제1 초기값을 기반으로하여, 상기 제2 초기값과는 상이한 제3 초기값을 생성하고,
    키 및 상기 제3 초기값을 사용하여 메시지 인증 코드를 생성하게 하는 소프트웨어 또는 하드웨어를 더 포함하고,
    상기 소프트웨어 컴포넌트는,
    상기 제1 난스, 상기 제2 난스, 및 상기 제1 초기값을 기반으로 상기 제3 초기값을 생성하고,
    키 및 상기 제3 초기값을 사용하여 상기 메시지 인증 코드를 검증하기 위한 컴퓨터 실행 가능 명령을 더 포함하는, 소프트웨어 컴포넌트에 데이터를 보안적으로 입력되게 하는 방법.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020040030696A 2003-05-02 2004-04-30 키보드, 이 키보드로 통신하는 방법 및 이 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체 KR100996737B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/428,675 2003-05-02
US10/428,675 US7243237B2 (en) 2003-05-02 2003-05-02 Secure communication with a keyboard or related device

Publications (2)

Publication Number Publication Date
KR20040094379A KR20040094379A (ko) 2004-11-09
KR100996737B1 true KR100996737B1 (ko) 2010-11-25

Family

ID=32990487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040030696A KR100996737B1 (ko) 2003-05-02 2004-04-30 키보드, 이 키보드로 통신하는 방법 및 이 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체

Country Status (18)

Country Link
US (1) US7243237B2 (ko)
EP (1) EP1473615B1 (ko)
JP (1) JP4459703B2 (ko)
KR (1) KR100996737B1 (ko)
CN (1) CN1599311B (ko)
AT (1) ATE504885T1 (ko)
AU (1) AU2004201802B2 (ko)
BR (1) BRPI0401684B1 (ko)
CA (1) CA2465270C (ko)
DE (1) DE602004032085D1 (ko)
ES (1) ES2361074T3 (ko)
HK (1) HK1069463A1 (ko)
MX (1) MXPA04004144A (ko)
MY (1) MY137940A (ko)
PL (1) PL1473615T3 (ko)
RU (1) RU2371756C2 (ko)
TW (1) TWI319536B (ko)
ZA (1) ZA200403290B (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005140823A (ja) 2003-11-04 2005-06-02 Sony Corp 情報処理装置、制御方法、プログラム、並びに記録媒体
US7581097B2 (en) * 2003-12-23 2009-08-25 Lenovo Pte Ltd Apparatus, system, and method for secure communications from a human interface device
KR100710032B1 (ko) * 2005-02-23 2007-04-25 제이알소프트 주식회사 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템
DE102005014194B4 (de) 2005-03-29 2006-12-14 Axel Ahnert Lesegerät mit integrierter Kryptographieeinheit
SG128507A1 (en) * 2005-06-25 2007-01-30 Krypt Technologies Encryption system for confidential data transmission
WO2007006072A1 (en) * 2005-07-14 2007-01-18 Teewoon Tan System and method for controllably concealing data from spying applications
KR100734145B1 (ko) 2005-10-12 2007-07-03 주식회사 안철수연구소 키보드 데이터 인증을 이용한 키 입력 도용 방지 방법
US20080313370A1 (en) * 2005-11-24 2008-12-18 Hong Suk Kang Guarding Method For Input Data By Usb Keyboard and Guarding System
US7835521B1 (en) * 2005-12-02 2010-11-16 Google Inc. Secure keyboard
CA2571450A1 (en) * 2005-12-21 2007-06-21 Nervo Security Encrypted keyboard
US8566608B2 (en) 2006-02-02 2013-10-22 Strikeforce Technologies, Inc. Methods and apparatus for securing keystrokes from being intercepted between the keyboard and a browser
US7428306B2 (en) * 2006-04-18 2008-09-23 International Business Machines Corporation Encryption apparatus and method for providing an encrypted file system
KR100861104B1 (ko) * 2006-10-16 2008-09-30 킹스정보통신(주) 유에스비 키보드의 보안장치 및 그 방법
KR100846123B1 (ko) * 2006-10-24 2008-07-15 주식회사 하우리 키보드 보안 방법 및 상기 방법을 이용한 키보드 보안드라이버를 기록한 기록 매체
KR100838488B1 (ko) * 2007-01-24 2008-06-16 현대중공업 주식회사 사용자 컴퓨터에 키스트로크 해킹 보안 프로그램 설치가필요 없는 변조된 일회성 인증 데이터 생성 방식을 이용한정보 보안 방법 및 장치
DE102007004631A1 (de) * 2007-01-30 2008-07-31 Cherry Gmbh Verfahren, Anordnung, System und Softwaremittel zur sicheren Datenübertragung
US8615662B2 (en) * 2007-01-31 2013-12-24 Microsoft Corporation Password authentication via a one-time keyboard map
US20080263672A1 (en) 2007-04-18 2008-10-23 Hewlett-Packard Development Company L.P. Protecting sensitive data intended for a remote application
KR100909891B1 (ko) * 2007-10-02 2009-07-31 소프트캠프(주) 커널영역의 키보드 보안을 위한 입력정보 암호화 처리방법
TWI395112B (zh) * 2007-11-30 2013-05-01 Chi Pei Wang 防止鍵盤按鍵被側錄的配接器
US9292715B2 (en) * 2008-01-22 2016-03-22 Hewlett-Packard Development Company, L.P. Shared secret used between keyboard and application
US8214888B2 (en) * 2008-01-30 2012-07-03 Vasco Data Security, Inc. Two-factor USB authentication token
US9596250B2 (en) * 2009-04-22 2017-03-14 Trusted Knight Corporation System and method for protecting against point of sale malware using memory scraping
JP2010039913A (ja) * 2008-08-07 2010-02-18 Sony Corp 通信装置、通信方法、及びプログラム
DE102008042180B4 (de) * 2008-09-17 2010-09-23 Zf Friedrichshafen Ag Verfahren und System zur sicheren Übertragung von Daten
US20110208974A1 (en) * 2010-02-25 2011-08-25 Alcatel-Lucent Usa Inc. Countermeasure Against Keystroke Logger Devices
US8566934B2 (en) 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
WO2012123859A1 (en) * 2011-03-16 2012-09-20 Garay Peter A Transaction security method and device
US8954747B2 (en) * 2011-07-01 2015-02-10 Intel Corporation Protecting keystrokes received from a keyboard in a platform containing embedded controllers
DE112012003293T5 (de) 2011-08-10 2014-05-08 Gita Srivastava Vorrichtung und Verfahren zur Verbesserung der Datensicherheit in einer Host-Computer-Vorrichtung und einer Peripherie-Vorrichtung
WO2013138894A1 (en) * 2012-03-21 2013-09-26 Irdeto Canada Corporation Method and system for chain transformation
GB201212878D0 (en) * 2012-07-20 2012-09-05 Pike Justin Authentication method and system
US8868927B1 (en) 2012-08-14 2014-10-21 Google Inc. Method and apparatus for secure data input and output
CN103036681B (zh) * 2012-12-13 2015-07-29 中国工商银行股份有限公司 一种密码安全键盘装置及系统
EP2973182B1 (en) * 2013-03-15 2020-11-04 Strikeforce Technologies, Inc. Methods and apparatus for securing user input in a mobile device
US20150100795A1 (en) * 2013-10-07 2015-04-09 Microsemi Corporation Secure Storage Devices, Authentication Devices, and Methods Thereof
SG11201607594XA (en) * 2014-03-13 2016-11-29 Acooo Beijing Ltd Keyboard device having operating system and computer assembly
GB201520741D0 (en) * 2015-05-27 2016-01-06 Mypinpad Ltd And Licentia Group Ltd Authentication methods and systems
US9805200B2 (en) * 2016-02-01 2017-10-31 Quanta Computer, Inc. System and method for firmware verification
US9698777B1 (en) * 2016-05-23 2017-07-04 Nuvoton Technology Corporation Secured keyboard readout using capacitance matrix
CN110060161B (zh) * 2019-03-28 2021-05-28 众安信息技术服务有限公司 用于区块链交易防重的客户端服务实现方法及服务组件
WO2023069060A1 (en) * 2021-10-18 2023-04-27 Hewlett-Packard Development Company, L.P. Input encryption

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139082A (ja) 1997-07-15 1999-02-12 Fujitsu Ltd 機密保持機能を有するキーボード装置及びその方法
WO2002044875A2 (en) 2000-11-28 2002-06-06 Xilinx, Inc. Programmable logic device with method of preventing readback
EP1286242A1 (en) 2001-08-22 2003-02-26 Sonera SmartTrust, Ltd. System and method for protected data input of security data
JP2003099332A (ja) 2002-06-27 2003-04-04 Sony Corp データ処理システム、データ記録再生器、記録デバイス、および方法、並びにプログラム提供媒体

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4386266A (en) * 1980-02-11 1983-05-31 International Business Machines Corporation Method for operating a transaction execution system having improved verification of personal identification
US5870723A (en) * 1994-11-28 1999-02-09 Pare, Jr.; David Ferrin Tokenless biometric transaction authorization method and system
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5748888A (en) * 1996-05-29 1998-05-05 Compaq Computer Corporation Method and apparatus for providing secure and private keyboard communications in computer systems
JP2000502551A (ja) * 1996-10-23 2000-02-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 移動通信サービスの料金支払方式
US6134661A (en) * 1998-02-11 2000-10-17 Topp; William C. Computer network security device and method
CN1298143A (zh) * 1999-11-30 2001-06-06 北京汇冠科技有限公司 密码键盘及其数据烧录装置和密码保密方法
DE60132962T2 (de) * 2000-01-21 2009-02-26 Sony Corp. Datenverarbeitungsvorrichtung und datenverarbeitungsverfahren
US20020196935A1 (en) * 2001-02-25 2002-12-26 Storymail, Inc. Common security protocol structure and mechanism and system and method for using
US7224801B2 (en) * 2000-12-27 2007-05-29 Logitech Europe S.A. Wireless secure device
US7302571B2 (en) * 2001-04-12 2007-11-27 The Regents Of The University Of Michigan Method and system to maintain portable computer data secure and authentication token for use therein
US7110986B1 (en) * 2001-04-23 2006-09-19 Diebold, Incorporated Automated banking machine system and method
CN1628450B (zh) * 2001-05-01 2010-05-26 Meta4hand公司 无线网络计算
JP2003087243A (ja) * 2001-06-28 2003-03-20 Hitachi Ltd データ検証方法、データ検証装置およびその処理プログラム製品
US20030159053A1 (en) * 2002-02-19 2003-08-21 Charles Fauble Secure reconfigurable input device with transaction card reader
US6912605B1 (en) * 2002-03-29 2005-06-28 Cypress Semiconductor Corp. Method and/or apparatus for implementing security in keyboard-computer communication
US7212252B2 (en) * 2002-11-27 2007-05-01 Sedna Patent Services, Llc Method and system for enabling detection of signals in the presence of noise

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139082A (ja) 1997-07-15 1999-02-12 Fujitsu Ltd 機密保持機能を有するキーボード装置及びその方法
WO2002044875A2 (en) 2000-11-28 2002-06-06 Xilinx, Inc. Programmable logic device with method of preventing readback
EP1286242A1 (en) 2001-08-22 2003-02-26 Sonera SmartTrust, Ltd. System and method for protected data input of security data
JP2003099332A (ja) 2002-06-27 2003-04-04 Sony Corp データ処理システム、データ記録再生器、記録デバイス、および方法、並びにプログラム提供媒体

Also Published As

Publication number Publication date
AU2004201802A1 (en) 2004-11-18
MY137940A (en) 2009-04-30
CA2465270C (en) 2011-06-14
ZA200403290B (en) 2005-11-08
TWI319536B (en) 2010-01-11
RU2371756C2 (ru) 2009-10-27
MXPA04004144A (es) 2005-06-08
EP1473615A3 (en) 2006-11-29
HK1069463A1 (en) 2005-05-20
ATE504885T1 (de) 2011-04-15
PL1473615T3 (pl) 2011-09-30
CN1599311B (zh) 2011-08-24
CA2465270A1 (en) 2004-11-02
US7243237B2 (en) 2007-07-10
RU2004113566A (ru) 2005-10-27
BRPI0401684A (pt) 2005-01-18
CN1599311A (zh) 2005-03-23
BRPI0401684B1 (pt) 2018-04-17
JP4459703B2 (ja) 2010-04-28
TW200508946A (en) 2005-03-01
EP1473615B1 (en) 2011-04-06
KR20040094379A (ko) 2004-11-09
US20040230805A1 (en) 2004-11-18
JP2004355615A (ja) 2004-12-16
ES2361074T3 (es) 2011-06-13
EP1473615A2 (en) 2004-11-03
AU2004201802B2 (en) 2010-01-21
DE602004032085D1 (de) 2011-05-19

Similar Documents

Publication Publication Date Title
KR100996737B1 (ko) 키보드, 이 키보드로 통신하는 방법 및 이 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체
KR100334720B1 (ko) 보안기능을 갖는 어댑터 및 이를 이용한 컴퓨터 보안시스템
US20190089527A1 (en) System and method of enforcing a computer policy
US7215771B1 (en) Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network
EP2016525B1 (en) Encryption apparatus and method for providing an encrypted file system
US10938792B2 (en) Layered encryption for end to end communication
US8281132B2 (en) Method and apparatus for security over multiple interfaces
JP2021519452A (ja) 保護されたコンテナ間のセキュア通信方法およびそのシステム
KR100447777B1 (ko) 키 스트록 데이터의 해킹 방지 방법 및 이를 기록한컴퓨터로 읽을 수 있는 기록매체
US20050010818A1 (en) Communication of information via a side-band channel, and use of same to verify positional relationship
KR100379675B1 (ko) 보안기능을 갖는 어댑터 및 이를 이용한 컴퓨터 보안 시스템
JP6830635B1 (ja) データ管理方法
WO2006114907A1 (ja) データ暗号化システム及び鍵生成サーバ
Adithya et al. Advanced Encryption Standard Crypto Block Verification Utility
Maletsky Designing in A Trusted Platform Module (TPM)
CN114520740A (zh) 一种加密方法、装置、设备及存储介质
KR20010096562A (ko) Usb 디바이스 동작 제한 방법 및 데이터 처리 시스템
Emanuel Tamper free deployment and execution of software using TPM
TRANSF et al. FIPS PUB 112

Legal Events

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

Payment date: 20131016

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141017

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 9