KR20040094379A - 키보드를 사용한 보안 통신 및 관련 장치 - Google Patents

키보드를 사용한 보안 통신 및 관련 장치 Download PDF

Info

Publication number
KR20040094379A
KR20040094379A KR1020040030696A KR20040030696A KR20040094379A KR 20040094379 A KR20040094379 A KR 20040094379A KR 1020040030696 A KR1020040030696 A KR 1020040030696A KR 20040030696 A KR20040030696 A KR 20040030696A KR 20040094379 A KR20040094379 A KR 20040094379A
Authority
KR
South Korea
Prior art keywords
keyboard
initial value
nonce
component
key
Prior art date
Application number
KR1020040030696A
Other languages
English (en)
Other versions
KR100996737B1 (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

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

Abstract

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

Description

키보드를 사용한 보안 통신 및 관련 장치{SECURE COMMUNICATION WITH A KEYBOARD OR RELATED DEVICE}
본 발명은 일반적으로 컴퓨터 보안 분야에 관한 것이다. 더 상세하게, 본 발명은 인터셉트되거나 또는 다른 유형의 탬퍼링(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은 본 발명의 양상이 구현될 수 있는 예시적인 컴퓨팅 환경의 블록도.
도 2는 키보드와 컴포넌트 간 통신이 보안성 없는 채널을 통해 이루어지는 예시적인 제1 환경의 블록도.
도 3은 키보드와 컴포넌트 간 통신이 보안성 없는 채널을 통해 이루어지는 예시적인 제2 환경의 블록도.
도 4는 본 발명의 양상에 따라 보안 통신용으로 구성되고 난스를 서로 교환하는 키보드와 컴포넌트의 블록도.
도 5는 키보드와 컴포넌트 간 보안 통신 세션에 사용하기 위한 프로세서의 흐름도.
도 6은 키보드 및 컴포넌트를 분배하여 본 발명의 양상에 따른 보안 통신에 사용하는 예시적인 제1 환경의 블록도.
< 도면의 주요 부분에 대한 부호 설명 >
100: 컴퓨팅 환경
120: 프로세싱 유닛
131: ROM
132: RAM
134: 오퍼레이팅 시스템
135: 애플리케이션 프로그램
137: 프로그램 데이터
160: 사용자 입력 인터페이스
162: 키보드
후술하는 바람직한 실시예의 상세한 설명 뿐만 아니라 전술한 요약은 첨부된 도면을 참조하면 보다 이해가 잘 될 것이다. 본 발명을 설명할 목적으로, 본 발명의 예시적 구성의 도면이 도시되었지만, 본 발명이 개시된 특정 방법 및 수단에 한정되는 것은 아니다.
예시적인 컴퓨팅 환경
도 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 초기값을 사용하여 CBC(cipher block chaining) 모드 및 3중 DES로 암호화된 복수의 데이터를 키보드로부터 컴포넌트에서 수신하는 단계,
    상기 제1 초기값 및 상기 키를 기초로 하여 복수의 데이터를 암호해독하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    복수의 데이터에 대응하는 복수의 메시지 인증 코드를 키보드로부터 컴포넌트에서 수신하는 단계 - 상기 메시지 인증 코드는 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 CBC 모드 및 3중 DES로 생성되고, 상기 제2 초기값은 컴포넌트 및 키보드에 공지되어 있음 -,
    복수의 메시지 인증 코드를 사용하여 복수의 데이터를 검증하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    키보드로부터 제1 난스를 수신하는 단계,
    키보드로 제2 난스를 전송하는 단계, 및
    키보드 및 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제1 초기값과 제2 초기값을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    키보드로부터 제1 난스를 수신하는 단계,
    키보드로 제2 난스를 전송하는 단계,
    키보드 및 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제1 초기값을 생성하는 단계,
    키보드 및 컴포넌트 모두에 공지된 제4 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제2 초기값을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 복수의 데이터는 행동 무결성(behavioral integrity)이 상기 컴포넌트에 의해 신뢰되지 않는 채널을 통하여 수신되는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 컴포넌트는 제2 오퍼레이팅 시스템과 함께 컴퓨팅 장치 상에서 실행되는 제1 오퍼레이팅 시스템을 포함하고, 상기 제1 오퍼레이팅 시스템은 적어도 어떤면에서는 제2 오퍼레이팅 시스템의 행동을 신뢰하지 않고, 상기 키보드는 제2 오퍼레이팅 시스템에 의해 제어되는 드라이버를 통하여 제1 오퍼레이팅 시스템과 통신하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 키보드는 USB 키보드를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 3중 DES와 CBC모드는 소정 크기의 블록에 있는 데이터를 암호화하고, 상기 키보드는 상기 소정 크키의 블록에 있는 데이터를 통신하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    복수의 데이터 각각은 키보드에서 수신되는 개별 키스트로크를 기반으로 생성되는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    키보드로부터 제1 난스를 수신하는 단계,
    키보드로 제2 난스를 전송하는 단계,
    키보드 및 컴포넌트 모두에 공지된 제2 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제1 초기값을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 컴퓨터 실행가능 명령으로 인코딩되어 키보드로부터의 입력을 컴포넌트에서 보안적으로 수신하는 방법을 실행하는 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    키보드로부터의 복수의 암호화된 키스트로크를 컴포넌트에서 수신하는 단계 - 상기 암호화된 키스트로크는 키보드에서 수신된 입력 키스트로크를 키 및 제1 초기값을 사용하여 CBC 모드 및 3중 DES로 암호화함으로써 키보드에서 생성되고, 상기 키 및 상기 제1 초기값은 키보드 및 컴포넌트에서 이용가능함 -,
    상기 컴포넌트에서, 상기 키 및 상기 제1 초기값을 사용하여 암호화된 복수의 상기 키스트로크를 암호해독하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  12. 제11항에 있어서,
    상기 컴포넌트는 제2 오퍼레이팅 시스템과 더불어 컴퓨팅 장치 상에서 실행되는 제1 오퍼레이팅 시스템을 포함하고, 상기 제1 오퍼레이팅 시스템은 적어도 어떤 면에서는 제2 오퍼레이팅 시스템의 행동을 신뢰하지 않으며, 상기 키보드는 제2 오퍼레이팅 시스템에 의해 제어되는 드라이버를 통하여 제1 오퍼레이팅 시스템과 통신하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  13. 제11항에 있어서,
    상기 방법은,
    복수의 암호화된 키스트로크에 대응하는 복수의 메시지 인증 코드를 키보드로부터 컴포넌트에서 수신하는 단계 - 상기 메시지 인증 코드는 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 CBC 모드 및 3중 DES로 생성되고, 상기 제2 초기값은 컴포넌트 및 키보드 모두에 공지되어 있음 -,
    복수의 메시지 인증 코드를 사용하여 복수의 암호화된 데이터를 검증하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  14. 제13항에 있어서,
    상기 방법은,
    키보드로부터 제1 난스를 수신하는 단계,
    키보드로 제2 난스를 전송하는 단계,
    키보드 및 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제1 초기값 및 제2 초기값을 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  15. 제13항에 있어서,
    상기 방법은,
    키보드로부터 제1 난스를 수신하는 단계,
    키보드로 제2 난스를 전송하는 단계,
    키보드 및 컴포넌트 모두에 공지된 제3 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제1 초기값을 생성하는 단계,
    키보드 및 컴포넌트 모두에 공지된 제4 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제2 초기값을 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  16. 제11항에 있어서,
    상기 3중 DES와 CBC모드는 소정 크기의 블록에 있는 데이터를 암호화하고, 상기 키보드는 상기 소정 크키의 블록에 있는 데이터를 통신하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  17. 제1 초기값 및 키를 저장하는 하나 또는 그 이상의 저장 위치,
    키보드에서 수신되는 입력 데이터를 상기 제1 초기값 및 상기 키를 사용하여 CBC 모드 및 3중 DES로 암호화하여, 상기 입력 데이터를에 기초하여 암호화된 데이터를 생성하는 암호화 컴포넌트,
    상기 제1 초기값과 상기 키를 알고있는 수신자용으로 예정된 암호화된 데이터를 키보드 외부의 장치에 통신하는 통신 인터페이스
    를 포함하는 것을 특징으로 하는 키보드.
  18. 제17항에 있어서,
    상기 암호화 컴포넌트는 암호화된 데이터 또는 입력 데이터에 대응하는 복수의 메시지 인증 코드를 더 생성하고, 상기 메시지 인증 코드는 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 CBC 모드 및 3중 DES로 생성되는 것을 특징으로 하는 키보드.
  19. 제17항에 있어서,
    상기 키보드는 USB 키보드를 포함하는 것을 특징으로 하는 키보드.
  20. 제17항에 있어서,
    상기 통신 인터페이스는, 상기 암호화된 데이터가 상기 수신자에게 통신될 때 상기 장치를 실행하는 제1 오퍼레이팅 시스템에 의해 제어되는 드라이버에 상기 암호화된 데이터를 통신하고, 상기 수신자는 상기 제2 오퍼레이팅 시스템하에서 실행하는 프로그램 또는 상기 장치상에서 실행하는 제2 오퍼레이팅 시스템이고, 상기 제2 오퍼레이팅 시스템은 적어도 어떤 면에서는 상기 제1 오퍼레이팅 시스템의 행동을 신뢰하지 않는 것을 특징으로 하는 키보드.
  21. 제17항에 있어서,
    상기 암호화 컴포넌트는,
    통신 인터페이스를 통하여 수신자로부터 제1 난스를 수신하고,
    통신 인터페이스를 통하여 수신자로 제2 난스를 전송하고,
    키보드 및 컴포넌트 모두에 공지된 제2 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제1 초기값을 생성하도록 적용되는 것을 특징으로 하는 키보드.
  22. 제17항에 있어서,
    키보드에서 수신된 상기 입력 데이터는 복수의 개별 키스트로크를 포함하고, 상기 암호화 컴포넌트는 각각의 개별 키스트로크를 개별적으로 암호화하는 것을 특징으로 하는 키보드.
  23. 컴퓨터 실행가능 명령으로 인코딩되어 키보드가 키보드 외부의 컴포넌트와 보안 통신하도록 하는 방법을 실행하는 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    복수의 키스트로크를 수신하는 단계,
    컴포넌트 및 키보드 모두에게 공지된 키 및 제1 초기값을 사용하여 CBC 모드및 3중 DES로 입력 키스트로크를 암호화하여 복수의 암호화된 키스트로크를 생성하는 단계,
    암호화된 키스트로크를 컴포넌트로 송신하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  24. 제23항에 있어서,
    상기 3중 DES와 CBC모드는 소정 크기의 블록에 있는 데이터를 암호화하고, 상기 키보드는 상기 소정 크키의 블록에 있는 데이터를 통신하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  25. 제23항에 있어서,
    상기 방법은,
    복수의 키스트로크에 대응하는 복수의 메시지 인증 코드를, 상기 제1 초기값과는 상이한 제2 초기값과 상기 키를 사용하여 CBC 모드 및 3중 DES로 생성하는 단계,
    메시지 인증 코드를 컴포넌트로 송신하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  26. 제23항에 있어서,
    상기 방법은,
    컴포넌트로 제1 난스를 전송하는 단계,
    컴포넌트로 제2 난스를 전송하는 단계, 및
    키보드 및 컴포넌트 모두에 공지된 제2 초기값과 키를 사용하여, 제1 난스 및 제2 난스의 조합에 CBC 모드 및 3중 DES를 적용함으로써 제1 초기값을 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  27. 소프트웨어 컴포넌트에 데이터를 보안적으로 입력되게 하는 방법에 있어서,
    소프트웨어 컴포넌트의 사본을 분배하는 단계,
    키보드를 분배하거나 분배하게 하는 단계를 포함하고,
    상기 소프트웨어 컴포넌트는,
    키,
    제1 초기값, 및
    컴퓨터 실행가능 명령을 포함하고, 상기 명령은,
    소프트웨어가,
    제1 난스를 키보드로 전송하고,
    키보드로부터 제2 난스를 수신하고,
    상기 제1 난스, 상기 제2 난스 및 상기 제1 초기값을 기반으로 제2 초기값을 생성하고,
    키 및 제2 초기값을 사용하여 키보드로부터 수신된 암호화된 데이터를 해독하도록 하며,
    상기 키보드는,
    키의 사본을 저장하거나 액세스하기 위한 하드웨어,
    제1 초기값의 사본을 저장하거나 액세스하기 위한 하드웨어,
    소프트웨어 또는 하드웨어를 포함하고, 상기 소프트웨어 또는 하드웨어는
    키보드가,
    소프트웨어 컴포넌트로부터 제1 난스를 수신하고,
    제2 난스를 소프트웨어 컴포넌트로 전송하고,
    상기 제1 난스, 상기 제2 난스 및 상기 제1 초기값을 기반으로 제2 초기값을 생성하고,
    키 및 제2 초기값을 사용하여 키보드에서 수신되는 입력 데이터를 암호화함으로써 암호화된 데이터를 생성하게 하는
    것을 특징으로 하는 방법.
  28. 제27항에 있어서,
    상기 키보드는 키보드가,
    상기 제1 난스, 상기 제2 난스 및 상기 제1 초기값을 기반으로하여, 상기 제2 초기값과는 상이한 제3 초기값을 생성하고,
    키 및 제3 초기값을 사용하여 메시지 인증 코드를 생성하게 하는 소프트웨어 또는 하드웨어를 더 포함하고,
    상기 소프트웨어 컴포넌트는,
    상기 제1 난스, 상기 제2 난스, 및 상기 제1 초기값을기반으로 상기 제3 초기값을 생성하고,
    키 및 제3 초기값을 사용하여 메시지 인증 코드를 검증하기 위한 컴퓨터 판독 가능 명령을 더 포함하는 것을 특징으로 하는 방법.
  29. 제27항에 있어서,
    상기 암호화된 데이터는 키 및 제2 초기값을 사용하여 CBC 모드를 갖는 3중 DES를 입력 데이터에 적용함으로써 생성되는 것을 특징으로 하는 방법.
  30. 제27항에 있어서,
    상기 키보드는 각각의 키스트로크를 개별적으로 암호화하도록 적용되는 것을 특징으로 하는 방법.
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 true KR20040094379A (ko) 2004-11-09
KR100996737B1 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710032B1 (ko) * 2005-02-23 2007-04-25 제이알소프트 주식회사 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템
KR100838488B1 (ko) * 2007-01-24 2008-06-16 현대중공업 주식회사 사용자 컴퓨터에 키스트로크 해킹 보안 프로그램 설치가필요 없는 변조된 일회성 인증 데이터 생성 방식을 이용한정보 보안 방법 및 장치
KR100846123B1 (ko) * 2006-10-24 2008-07-15 주식회사 하우리 키보드 보안 방법 및 상기 방법을 이용한 키보드 보안드라이버를 기록한 기록 매체

Families Citing this family (39)

* 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
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
US20100023750A1 (en) * 2005-07-14 2010-01-28 Encassa Pty Ltd System and Method for Controllably Concealing Data from Spying Application
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
US20070143593A1 (en) * 2005-12-21 2007-06-21 Cardoso David A 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 킹스정보통신(주) 유에스비 키보드의 보안장치 및 그 방법
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 防止鍵盤按鍵被側錄的配接器
WO2009094018A1 (en) * 2008-01-22 2009-07-30 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 中国工商银行股份有限公司 一种密码安全键盘装置及系统
WO2014145186A1 (en) * 2013-03-15 2014-09-18 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
MX2016011854A (es) 2014-03-13 2017-05-12 Acooo (Beijing) Ltd Dispositivo de teclado que tiene sistema operativo y ensamble de computadora.
GB201520760D0 (en) 2015-05-27 2016-01-06 Mypinpad Ltd And Licentia Group Ltd Encoding 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

Family Cites Families (21)

* 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
CN1212101A (zh) * 1996-10-23 1999-03-24 皇家菲利浦电子有限公司 移动通信业务的付费方案
JPH1139082A (ja) * 1997-07-15 1999-02-12 Fujitsu Ltd 機密保持機能を有するキーボード装置及びその方法
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 北京汇冠科技有限公司 密码键盘及其数据烧录装置和密码保密方法
ATE387775T1 (de) * 2000-01-21 2008-03-15 Sony Corp Daten-identifizierungs-system
US20020196935A1 (en) * 2001-02-25 2002-12-26 Storymail, Inc. Common security protocol structure and mechanism and system and method for using
US6981153B1 (en) * 2000-11-28 2005-12-27 Xilinx, Inc. Programmable logic device with method of preventing readback
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
US7292588B2 (en) * 2001-05-01 2007-11-06 Milley Milton E Wireless network computing
JP2003087243A (ja) * 2001-06-28 2003-03-20 Hitachi Ltd データ検証方法、データ検証装置およびその処理プログラム製品
EP1286242A1 (en) 2001-08-22 2003-02-26 Sonera SmartTrust, Ltd. System and method for protected data input of security data
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
JP2003099332A (ja) * 2002-06-27 2003-04-04 Sony Corp データ処理システム、データ記録再生器、記録デバイス、および方法、並びにプログラム提供媒体
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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710032B1 (ko) * 2005-02-23 2007-04-25 제이알소프트 주식회사 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템
KR100846123B1 (ko) * 2006-10-24 2008-07-15 주식회사 하우리 키보드 보안 방법 및 상기 방법을 이용한 키보드 보안드라이버를 기록한 기록 매체
KR100838488B1 (ko) * 2007-01-24 2008-06-16 현대중공업 주식회사 사용자 컴퓨터에 키스트로크 해킹 보안 프로그램 설치가필요 없는 변조된 일회성 인증 데이터 생성 방식을 이용한정보 보안 방법 및 장치

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100996737B1 (ko) 키보드, 이 키보드로 통신하는 방법 및 이 방법을 수행하는 컴퓨터 실행가능 명령이 인코딩되어 있는 컴퓨터 판독 가능 기록 매체
KR100334720B1 (ko) 보안기능을 갖는 어댑터 및 이를 이용한 컴퓨터 보안시스템
US20190089527A1 (en) System and method of enforcing a computer policy
EP2016525B1 (en) Encryption apparatus and method for providing an encrypted file system
KR100879907B1 (ko) 컴퓨팅 디바이스의 보안을 위한 방법 및 시스템
US10938792B2 (en) Layered encryption for end to end communication
US20130077782A1 (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) データ管理方法
EP2827276B1 (en) Secure data processing
WO2006114907A1 (ja) データ暗号化システム及び鍵生成サーバ
Adithya et al. Advanced Encryption Standard Crypto Block Verification Utility
Karacali et al. Cryptographic Enhancement of Named Pipes for Secure Process Communication
Maletsky Designing in A Trusted Platform Module (TPM)
CN114520740A (zh) 一种加密方法、装置、设备及存储介质
Emanuel Tamper free deployment and execution of software using TPM
Nelson et al. Altarus Corporation Altarus Cryptographic Module version 1.0 FIPS 140-1 Level 1 Validation Security Policy

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