KR20090009649A - 유에스비 키보드 입력 데이터 보안 방법 및 시스템 - Google Patents

유에스비 키보드 입력 데이터 보안 방법 및 시스템 Download PDF

Info

Publication number
KR20090009649A
KR20090009649A KR1020070073108A KR20070073108A KR20090009649A KR 20090009649 A KR20090009649 A KR 20090009649A KR 1020070073108 A KR1020070073108 A KR 1020070073108A KR 20070073108 A KR20070073108 A KR 20070073108A KR 20090009649 A KR20090009649 A KR 20090009649A
Authority
KR
South Korea
Prior art keywords
input data
key input
usb
driver
data
Prior art date
Application number
KR1020070073108A
Other languages
English (en)
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 김계근
Priority to KR1020070073108A priority Critical patent/KR20090009649A/ko
Publication of KR20090009649A publication Critical patent/KR20090009649A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

본 발명은 키보드 입력 데이터 보안 방법에 관한 것으로, USB(Universal Serial Bus) 장치로부터 입력된 데이터에 USB 키보드 장치로부터 입력되는 키 입력 데이터가 포함된 경우, 운영체제에 포함된 드라이버보다 낮은 레벨에서 동작하는 필터 드라이버를 활성화하고, USB 장치로부터 입력된 데이터를 분석하여 입력된 데이터 중 키 입력 데이터를 추출하며, 추출된 키 입력 데이터가 운영체제에 전달될 경우 추출된 키 입력 데이터를 삭제 또는 변경하고, 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 운영체제에 상응하는 코드로 매핑하며, 매핑된 키 입력 데이터를 암호화하여 어플리케이션에 전달함으로써, 키보드에 입력되는 데이터가 외부로 유출되지 않으므로 안전하게 응용 프로그램을 사용할 수 있다.

Description

유에스비 키보드 입력 데이터 보안 방법 및 시스템{Method and system for securing usb keyboard input data}
본 발명은 보안 시스템에 관한 것으로, 보다 상세하게는 USB(Universal Serial Bus) 키보드 입력 데이터 보안 방법 및 보안 시스템에 관한 것이다.
사무 자동화 기술의 발달로 거의 대부분의 사무 작업은 컴퓨터를 중심으로 이뤄지고 있고, 이들 사무 작업 시에 문자를 입력하는 작업은 대부분 키보드를 통해 이뤄진다. 이러한 점을 이용하여 키보드를 통한 입력 시에 입력되는 데이터를 중간에 가로챈다면, 문서 파일을 암호화하여 저장하더라도 문서의 내용이 유출될 수 있다.
또한, 최근에는 네트워크에 연결된 컴퓨터가 점점 늘어나고 있다. 인터넷에 연결된 컴퓨터로 금융이나 상거래, 전자 메일을 쉽게 이용 할 수 있는데 대부분의 경우 개인 정보, 아이디(ID), 비밀번호, 금융 계좌번호 등이 숫자나 문자로 이루어져 있고, 이를 보통 컴퓨터에 연결된 키보드로 입력한다. 금융이나, 상거래 시에 네트워크에 방화벽을 설치하거나, 각종 데이터를 네트워크를 통해 주고받을 때에 암호화하더라도, 키보드 자체의 입력을 탈취 당한다면 그러한 암호화나 방화벽 설 치와 같은 노력은 허사가 될 수 있다.
개인용 컴퓨터(PC, Personal Computer)의 키보드에는 IBM 호환 기종에서 오랫동안 사용돼온 키보드 전용인 PS/2(Personal System 2) 방식의 키보드와 범용 시리얼 인터페이스인 USB(Universal Serial Bus) 방식의 키보드가 널리 사용된다. 이 중에서, PS/2는 키보드로부터 어떤 입력 값이 있으면 PS/2 장치 드라이버가 운영체제에 인터럽트를 발생시키고, 운영체제가 해당 인터럽트를 처리하는 방식이다. PS/2 방식은 부팅 시부터 키보드가 연결되어 있어야 하고, PC 시스템에 단 하나의 키보드용 PS/2 포트(port)만 있으며, 키보드로부터 키 입력이 있는지 알기 위해서는 PS/2 포트로부터 들어오는 전기 신호 또는 키보드 인터럽트만 모니터링하면 되므로, 해킹하기도 쉽지만 해킹을 방지하기도 쉽다.
상술한 방식의 키보드 해킹 방지 기술은 USB 방식의 키보드에서는 그대로 적용하기 어렵다. 하나의 PC 시스템은 여러 개의 USB 포트를 가질 수 있고, 한 포트에 연결된 USB 허브를 이용한다면 최대 127개의 USB 장치를 연결할 수 있어 키 입력을 탐지하고 해킹을 차단하기 어렵다. USB 드라이버에서 해킹 프로그램이 키 입력 값을 가로챌 수 있기 때문이다.
본 발명이 해결하고자 하는 과제는 키보드에 입력되는 키 입력 데이터가 USB 드라이버를 통해 외부로 유출되지 않도록 하는 키보드 입력 데이터의 보안 방법 및 이를 구현한 보안 시스템을 제공하는데 있다.
상기 과제를 해결하기 위한 본 발명에 따른 키보드 입력 데이터 보안 방법은 (a) USB(Universal Serial Bus) 장치로부터 입력된 데이터에 USB 키보드 장치로부터 입력되는 키 입력 데이터가 포함된 경우, 운영체제에 포함된 드라이버보다 낮은 레벨에서 동작하는 필터 드라이버를 활성화하는 단계; (b) 상기 USB 장치로부터 입력된 데이터를 분석하여 상기 입력된 데이터 중 상기 키 입력 데이터를 추출하고, 상기 추출된 키 입력 데이터가 상기 운영체제에 전달될 경우 상기 추출된 키 입력 데이터를 삭제 또는 변경하는 단계; (c) 상기 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 상기 운영체제에 상응하는 코드로 매핑하는 단계; 및 (d) 상기 매핑된 키 입력 데이터를 암호화하여 어플리케이션에 전달하는 단계를 포함한다.
바람직하게는, 상기 (a) 단계는 상기 운영체제가 관리하는 레지스트리와 상기 USB 장치로부터 입력된 데이터를 참조하여 상기 입력 데이터 중 상기 키 입력 데이터에 대해서만 필터링을 수행하도록 상기 필터 드라이버를 활성화한다.
바람직하게는, 키보드 입력 데이터 보안 방법은 상기 암호화된 키 입력 데이터를 복호화하는 단계를 더 포함한다.
또한, 상기 과제는 (a) USB(Universal Serial Bus) 장치로부터 입력된 데이터에 USB 키보드 장치로부터 입력되는 키 입력 데이터가 포함된 경우, 운영체제에 포함된 드라이버보다 낮은 레벨에서 동작하는 필터 드라이버를 활성화하는 단계; (b) 상기 USB 장치로부터 입력된 데이터를 분석하여 상기 입력된 데이터 중 상기 키 입력 데이터를 추출하고, 상기 추출된 키 입력 데이터가 상기 운영체제에 전달될 경우 상기 추출된 키 입력 데이터를 삭제 또는 변경하는 단계; (c) 상기 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 상기 운영체제에 상응하는 코드로 매핑하는 단계; 및 (d) 상기 매핑된 키 입력 데이터를 암호화하여 어플리케이션에 전달하는 단계를 포함하는 키보드 입력 데이터 보안 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 의해 달성된다.
또한, 상기 과제를 해결하기 위한 본 발명에 따른 키보드 입력 데이터 보안 시스템은 USB(Universal Serial Bus) 장치, 상기 USB 장치에 대한 드라이버를 갖는 운영체제 및 어플리케이션을 포함하는 컴퓨터 시스템에서, 상기 USB 장치로부터 입력되는 데이터에 USB 키보드 장치로부터 입력되는 키 입력 데이터가 포함된 경우 활성화되어 상기 드라이버 보다 낮은 레벨에서 상기 키 입력 데이터를 추출하고, 상기 추출된 키 입력 데이터를 암호화하는 필터 드라이버; 및 상기 암호화된 키 입력 데이터를 상기 어플리케이션에 전달하는 제어 모듈을 포함한다.
바람직하게는, 상기 필터 드라이버는 상기 추출된 키 입력 데이터를 삭제 또는 변경하여 상기 운영체제에 전달한다.
바람직하게는, 상기 필터 드라이버는 상기 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 상기 운영체제에 상응하는 코드로 매핑한다.
바람직하게는, 상기 제어 모듈은 상기 USB 장치가 연결된 경우 상기 USB 키보드 장치의 하드웨어 식별자(ID)를 검색하여 해당 핸들을 얻는 인식 유닛; 상기 필터 드라이버로부터 전달받은 데이터를 상기 어플리케이션에 전달하는 중개 유닛; 및 상기 필터 드라이버의 존재 여부를 판단하여 상기 필터 드라이버를 상기 드라이버 보다 낮은 레벨에 설치하고, 상기 필터 드라이버의 위조 또는 변조 여부를 판단하는 필터 드라이버 검증 유닛을 포함한다.
바람직하게는, 상기 제어 모듈은 상기 암호화된 키 입력 데이터를 복호화한다.
바람직하게는, 상기 어플리케이션은 상기 암호화된 키 입력 데이터를 복호화한다.
본 발명에 따르면, USB(Universal Serial Bus) 장치로부터 입력된 데이터에 USB 키보드 장치로부터 입력되는 키 입력 데이터가 포함된 경우, 운영체제에 포함된 드라이버보다 낮은 레벨에서 동작하는 필터 드라이버를 활성화하고, USB 장치로부터 입력된 데이터를 분석하여 입력된 데이터 중 키 입력 데이터를 추출하고, 추출된 키 입력 데이터가 운영체제에 전달될 경우 추출된 키 입력 데이터를 삭제 또는 변경하며, 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 운영체제에 상응하는 코드로 매핑하고, 매핑된 키 입력 데이터를 암호화하여 어플리케이션에 전달함으로써, 키보드에 입력되는 데이터가 외부로 유출되지 않으므로 안전하게 응용 프로그램을 이용할 수 있다.
다시 말해, 종래와 같이 키보드에 입력되는 키 입력 데이터를 USB 드라이버와 운영체제를 통해 전달하지 않고, 별도의 경로를 통해 암호화하여 특정 어플리케이션으로 전달하므로, 키보드의 키 입력 데이터는 외부로 유출되지 않는다.
또한, 본 발명에 따르면, 키보드에 입력되는 키 입력 데이터를 운영체제에 포함된 장치 드라이버에서 필터링하지 않고, 상기 장치 드라이버 보다 낮은 레벨에서 동작하는 필터에서 필터링함으로써, 보안 시스템이 동작하는 동안 운영체제에 포함된 장치 드라이버에서 키 입력 데이터가 외부로 유출되는 것을 방지할 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않 는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 보안 시스템을 포함하는 컴퓨터 시스템을 나타내는 블록도이다.
도 1을 참조하면, 컴퓨터 시스템은 USB 장치(10), PCI 버스 드라이버(20), 필터 드라이버(30), 운영 체제(Operating System, 40), 제어 모듈(50) 및 어플리케이션(Application, 60)을 포함한다. 여기서, 필터 드라이버(30) 및 제어 모듈(50)은 보안 시스템을 구성한다.
USB 장치(10)는 USB 규격을 지원하는 USB 키보드, USB 케이블, USB 포트 등의 하드웨어를 모두 포함하는 개념을 나타낸다. 실시예에 따라, USB 장치(10)는 복수 개일 수 있다. 예를 들어, USB 장치(10)는 USB 키보드, USB 메모리, USB 하드디스크 등일 수 있다.
PCI 버스 드라이버(20)는 USB 장치(10)를 통해 입력되는 데이터와 필터 드라이버(30)를 인터페이싱한다.
필터 드라이버(30)는 PCI 버스 드라이버(20)를 통해 USB 장치(10)로부터 입력되는 데이터를 입력받는다. 여기서, 필터 드라이버(30)는 운영체제(40)가 USB 장치(10)로부터 입력되는 데이터를 인식하기 전에 우선적으로 상기 데이터를 인식한다. 다시 말해, 필터 드라이버(30)는 운영체제(40)에 포함된 장치 드라이버들이 USB 장치(10)로부터 입력되는 데이터를 인식하기 전에 우선적으로 상기 데이터를 인식한다. 이로써, 필터 드라이버(30)는 USB 장치(10)로부터 운영체제(40)나 어플리케이션(60) 사이에 전달되는 데이터에 대해 보안을 제공할 수 있다. 필터 드라이버(30)의 구체적인 동작에 대해서는 이하에서 상술하기로 한다.
구체적으로, 필터 드라이버(30)는 USB 장치(10)와 운영체제(40) 사이에 위치하며, 가장 낮은 레벨의 계층으로 로딩되어 PCI 버스에 연결된 USB 장치(10)로부터 입력되는 데이터를 분석하고, 상기 입력된 데이터 중 USB 키보드 장치에서 대해서만 보안 동작을 수행하는 드라이버의 일종이라고 할 수 있다. 보다 상세하게는, 필터 드라이버(30)는 운영체제(40)에 포함된 장치 드라이버들 보다 낮은 레벨에서 동작하도록 설치된다. 예를 들어, 필터 드라이버(30)는 운영체제(40)에 포함된 USB 호스트 컨트롤러 드라이버 및 미니포트 드라이버(41) 보다 낮은 레벨에서 동작한다. 따라서, 키보드에 입력되는 키 입력 데이터를 운영체제(40)에 포함된 장치 드라이버에서 필터링하지 않고, 장치 드라이버 보다 낮은 레벨에서 동작하는 필터 드라이버(30)에서 필터링한다. 이로써, 보안 시스템이 동작하는 동안 운영체제(40)에 포함된 장치 드라이버에서 키 입력 데이터가 외부로 유출되는 것을 방지할 수 있다.
운영체제(40)는 장치 드라이버가 계층(layered) 구조를 가지며, 원하는 종류 및 원하는 기능을 하는 특화된 드라이버를 원하는 레벨의 계층에서 로딩할 수 있다. 예를 들어, 운영체제(40)는 마이크로소프트®의 windows® XP일 수 있다. 구체적으로, 운영체제(40)는 USB 호스트 컨트롤러 드라이버 및 미니포트 드라이버(41), USB 허브 드라이버(42), USB 범용부모 드라이버(43), HID(Human Interface Device) 클래스 드라이버(44), 키보드 클래스 드라이버(45), 서브 시스템(46) 및 메세지 큐(message queue, 47)를 포함한다. 운영체제(40)의 구체적인 동작에 대해서는 필터 드라이버(30)의 활성화 여부에 따라서 이하에서 상술하기로 한다.
제어 모듈(50)은 필터 드라이버(30)에서 필터링된 데이터를 어플리케이션(60)으로 바로 전달한다. 구체적으로, 제어 모듈(50)은 필터 드라이버(30)와 어플리케이션(60) 사이의 통신을 중개할 수 있다. 다시 말해, 본 발명에 따르면 운영체제(40)는 USB 키보드 장치로부터 키 입력 데이터가 입력되는 경우에는 필터 드라이버(30)를 직접적으로 제어할 수 없는바, 이 경우 제어 모듈(50)이 필터 드라이버(30)와 어플리케이션(60) 사이의 통신을 관리할 수 있다.
어플리케이션(60)은 웹 브라우저가 될 수도 있고, 워드 프로세서가 될 수도 있고, 웹 브라우저를 통해 구동되는 ActiveX나 Plug-in 모듈 등의 다양한 응용 프로그램일 수도 있다.
먼저 이하에서는, USB 장치(10)로부터 입력되는 데이터가 USB 키보드 장치로부터 입력되는 키 입력 데이터를 포함하지 않은 경우 컴퓨터 시스템의 동작에 대하여 설명하기로 한다. 이 경우에는 필터 드라이버(30)가 활성화되지 않는다.
USB 장치(10)로부터 입력되는 데이터는 PCI 버스 드라이버(20)를 거쳐 필터 드라이버(30)에 입력된다. 그러나, 필터 드라이버(30)는 입력되는 데이터를 필터링하지 않고, 운영체제(40)로 전달한다. 구체적으로, USB 장치(10)는 운영체제(40)에 자신의 정체에 대해 알리고, 운영체제(40)는 USB 장치(10)를 식별할 수 있도록 정 보를 수집한다.
USB 장치(10)로부터 입력되는 데이터는 USB 호스트 컨트롤러 드라이버(usbport.sys) 및 USB 미니포트 드라이버(41)에 인가되고, USB 호스트 컨트롤러 드라이버 및 USB 미니포트 드라이버(41)에 인가된 데이터는 USB 허브 드라이버(42)로 전달한다. 그리고, USB 허브 드라이버(42)에 인가된 데이터는 다시 상위 레벨의 HID 클래스 드라이버(44)로 전달한다. 실시예에 따라, USB 허브 드라이버(42)에 인가된 데이터는 USB 범용부모 드라이버(43)를 통해 HID 클래스 드라이버(44)에 전달될 수도 있다.
여기서, USB 미니포트 드라이버(41)는 USB 규격과 전송 방식에 따라 UHCI(Universal Host Controller Interface), OHCI(Open Host Controller Interface), EHCI(Enhanced Host Controller Interface) 방식으로 포트가 달라질 수 있으며, USB 미니포트 드라이버(41)에 연결되는 USB 기기들에 대하여 데이터의 조작 및 모니터링을 할 수 있다.
HID 클래스 드라이버(44)는 HID 장치 클래스를 총체적으로 정의한 클래스 드라이버이다. 키보드, 마우스, 조이스틱, 게임패드, 트랙볼, 터치스크린, 디지타이저, 머리 장착 디스플레이(HMD), 고글 등을 예로 들 수 있다. HID 클래스 드라이버(44)는 키보드 클래스 드라이버(45)에 초기 설정 데이터를 전달한다.
키보드 클래스 드라이버(45)는 운영체제(40)로 하여금 USB 장치(10)가 특정 종류의 키보드임을 인식하게 하고, 해당하는 키보드의 드라이버를 구동시켜 키보드가 입출력을 할 수 있게 한다. 여기서, 키보드 클래스 드라이버(45)는 키보드 HID 매퍼(mapper) 드라이버 및 키보드 클래스 드라이버를 포함할 수 있다.
서브 시스템(46)은 키보드 클래스 드라이버(45)에서 전달되는 데이터를 윈도즈 메시지(windows message)라는 형태로 변형하여 전달한다.
메세지 큐(46)는 서브 시스템(46)에서 전달되는 데이터를 큐 방식으로 어플리케이션(60)으로 전달한다. 큐(queue)란 FIFO(first in, first out)의 특징을 갖는 임시 기억 장소의 일종이다.
보다 상세하게 설명하면, USB 장치(10)로부터 입력되는 데이터는 USB 호스트 컨트롤러 드라이버 및 미니포트 드라이버(41)를 거쳐 URB(USB Request Blocks) 형태로 USB 허브 드라이버(42)를 통해 상위 계층의 드라이버로 전달된다. 이 데이터는 HID 클래스 드라이버(44)에서 IRP(I/O Request Packet)이라는 패킷 형태로 서브 시스템(46)으로 전달되고 최종적으로 적절한 어플리케이션(60)과 통신 가능한 상태로 변환된다.
다음으로 이하에서는, USB 장치(10)로부터 입력되는 데이터가 USB 키보드 장치로부터 입력되는 키 입력 데이터를 포함하는 경우 컴퓨터 시스템의 동작에 대하여 설명하기로 한다. 이 경우에는 필터 드라이버(30)가 활성화된다.
USB 장치(10)로부터 입력되는 데이터는 PCI 버스 드라이버(20)를 거쳐 필터 드라이버(30)에 입력된다. 필터 드라이버(30)는 상기 입력되는 데이터를 우선적으로 전달받고, 상기 입력 데이터 중 USB 키보드 장치에 입력되는 키 입력 데이터를 필터링하여 암호화 처리한다. 필터 드라이버(30)는 암호화된 키 입력 데이터를 운영체제(40)를 거치지 않고, 어플리케이션(60)에 전달한다.
구체적으로, 필터 드라이버(30)는 USB 장치(10)로부터 수신된 입력 데이터를 분석하여 키 입력 데이터를 추출하고, 추출한 키 입력 데이터에 대하여 삭제 또는 변경 등의 조작을 가하며, 키 입력 데이터에 포함된 키보드 스캔 코드 값을 운영체제(40)가 사용하는 방식의 코드로 매핑하고, 코드 매핑된 키 입력 데이터를 암호화한다. 필터 드라이버(30)가 암호화한 코드 매핑된 키 입력 데이터는 운영체제(40)를 거치지 않고 어플리케이션(60)으로 전달된다.
USB 장치(10)로부터 입력되는 데이터가 USB 키보드 장치로부터 입력되는 데이터를 포함하는 경우에는 필터 드라이버(30)가 활성화되는 바, 이 경우 필터 드라이버(30)는 운영체제(40)에 의해 직접 제어되지 않는 것이 바람직하다.
도 2는 도 1의 컴퓨터 시스템을 상세하게 나타내는 블록도이다.
도 2를 참조하면, 컴퓨터 시스템은 복수의 USB 장치(10, 11, 12), PCI 버스 드라이버(20), 필터 드라이버(30), 운영체제(40), 제어모듈(50) 및 어플리케이션(60)을 포함한다.
여기서, PCI 버스 드라이버(20), 운영체제(40) 및 어플리케이션(60)은 도 1의 컴퓨터 시스템에 포함된 것들과 실질적으로 동일하게 동작하므로, PCI 버스 드라이버(20), 운영체제(40) 및 어플리케이션(60)의 동작에 대한 상세한 설명은 생략하기로 한다.
복수의 USB 장치(10, 11, 12)는 USB 키보드 장치, USB 하드디스크, USB 메모리 등일 수 있다. 도 2에서 복수의 USB 장치(10, 11, 12)에 대해 3개를 도시했으나, 이는 설명의 편의를 위한 것이고, 실시예에 따라 USB 장치의 개수는 변경될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 이해할 수 있을 것이다. 여기서, 제1 USB 장치(10)를 USB 키보드 장치라고 가정한다.
필터 드라이버(30)는 입력 데이터 추출/조작 모듈(31), 코드 매핑 모듈(32) 및 암호화 모듈(33)을 포함한다.
입력 데이터 추출/조작 모듈(31)은 복수의 USB 장치(10, 11, 12)로부터 입력되는 데이터를 분석하여 USB 키보드 장치, 즉, 제1 USB 장치(10)로부터 입력되는 키 입력 데이터를 추출한다. 또한, 입력 데이터 추출/조작 모듈(31)은 추출된 키 입력 데이터를 삭제 또는 변경한다. 구체적으로, 입력 데이터 추출/조작 모듈(31)은 추출된 키 입력 데이터와 동일한 내용이 정상적인 경로로 전달되는 경우 추출된 키 입력 데이터를 무의미한 값으로 바꾸거나 삭제하는 등의 조작을 가한다.
코드 매핑 모듈(32)은 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 운영체제(40)에 상응하는 코드로 매핑한다.
암호화 모듈(33)은 코드 매핑된 키 입력 데이터를 암호화하여 제어 모듈(50)에 전달한다.
본 발명의 다른 실시예에 따르면, 코드 매핑 모듈(32)과 암호화 모듈(33)의 동작은 순서가 바뀔 수 있다. 구체적으로, 입력 데이터 추출/조작 모듈(31)에서 추출된 키 입력 데이터는 암호화 모듈(33)로 입력될 수 있다. 이 경우 암호화 모듈(33)은 추출된 키 입력 데이터를 암호화하여 코드 매핑 모듈(33)로 전달한다. 또한, 코드 매핑 모듈(33)은 암호화된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 운영체제(40)에 상응하는 코드로 매핑한다. 따라서, 이러한 경우에는 복호화 시 에도 복호화 순서가 암호화 순서에 따라 바뀔 수 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자는 이해할 수 있다.
제어 모듈(50)은 인식 유닛(51), 중개 유닛(52) 및 필터 드라이버 검증 유닛(53)을 포함한다.
인식 유닛(51)은 복수의 USB 장치(10, 11, 12)의 연결 시에 하드웨어 ID들을 검색하여 보관하고, 복수의 USB 장치(10, 11, 12) 중 USB 키보드 장치(10)의 하드웨어 ID를 검색한다. 또한, 인식 유닛(51)은 USB 키보드 장치의 핸들 값을 얻을 수 있다.
중개 유닛(52)은 필터 드라이버(30)와 어플리케이션(60) 사이에서 데이터를 전달하는 등 필터 드라이버(30)와 어플리케이션(60)의 중재 및 관리를 수행한다. 또한, 중개 유닛(52)은 암호화된 키 입력 데이터를 복호화할 수 있다. 다시 말해, 중개 유닛(52)은 필터 드라이버(30)로부터 입력받은 암호화된 키 입력 데이터를 복호화하고, 복호화된 키 입력 데이터를 어플리케이션(60)으로 전달한다.
필터 드라이버 검증 유닛(53)은 필터 드라이버(30)의 존재 여부를 확인하고, 필터 드라이버(30)를 USB 호스트 컨트롤러 드라이버 및 미니포트 드라이버(41) 보다 낮은 레벨에서 동작하도록 최하단에 위치시켜서 보안 시스템을 정상적으로 동작시킨다. 또한, 필터 드라이버 검증 유닛(53)은 필터 드라이버(30)의 위조 또는 변조 여부를 확인한다.
도 3은 본 발명의 일 실시예에 따른 키보드 입력 데이터 보안 방법을 나타내는 흐름도이다.
도 3을 참조하면, 본 실시예에 따른 키보드 입력 데이터 보안 방법은 도 2에 도시된 컴퓨터 시스템에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 2에 도시된 컴퓨터 시스템에 관하여 이상에서 기술된 내용은 본 실시예에 따른 키보드 입력 데이터 보안 방법에도 적용된다.
310 단계에서 필터 드라이버(30)가 설치된다.
311 단계에서 필터 드라이버(30)의 동작 여부를 결정한다. 구체적으로, USB 키보드 장치가 인식되었는지 여부에 따라 필터 드라이버(30)의 동작 여부를 결정한다. USB 키보드 장치가 인식된 경우에는, 즉, USB 장치(10)로부터 입력되는 데이터가 USB 키보드 장치로부터 입력되는 키 입력 데이터인 경우에는 필터 드라이버(30)가 활성화되어 312 내지 315 단계가 진행된다. 그러나, USB 키보드 장치가 인식되지 않은 경우에는, 즉, USB 장치(10)로부터 입력되는 데이터가 USB 키보드 장치로부터 입력되는 키 입력 데이터인 경우에는 필터 드라이버(30)가 활성화되지 않고 절차가 종료된다.
312 단계에서 필터 드라이버(30)는 USB 장치(10)로부터 입력되는 데이터 중 USB 키보드 장치로부터 입력되는 데이터를 추출하고 조작한다. 구체적으로, 필터 드라이버(30)에 포함된 입력 데이터 추출/조작 모듈(31)은 USB 장치(10)로부터 입력되는 데이터를 분석하여, 상기 데이터 중 USB 키보드 장치로부터 입력되는 키 입력 데이터를 추출한다. 여기서, USB 장치(10)로부터 수신된 입력 데이터 중에서 키 입력 데이터만이 실제로 보안을 필요로 하는 데이터이다. 또한, 입력 데이터 추출/조작 모듈(31)은 추출된 키 입력 데이터를 삭제하거나 무의미한 값으로 변경하는 등 조작하여 운영체제(40)로 전달한다. 이로써, 키 입력 데이터는 운영체제(40)에 포함된 드라이버에서 해킹되지 않을 수 있다.
313 단계에서 필터 드라이버(30)는 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 운영체제(40)에 상응하는 코드로 매핑한다. 구체적으로, 필터 드라이버(30)에 포함된 코드 매핑 모듈(32)은 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 키보드 자체의 스캔 코드 체계에서 운영체제(40)가 사용하는 코드 체계로 코드 매핑할 수 있다.
314 단계에서 필터 드라이버(30)는 매핑된 키 입력 데이터를 암호화한다. 구체적으로, 필터 드라이버(30)에 포함된 암호화 모듈(33)은 매핑된 키 입력 데이터를 암호화하여 제어 모듈(50)에 전달할 수 있다.
본 발명의 다른 실시예에서, 313 단계와 314 단계는 순서가 바뀔 수 있음은 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자는 이해할 수 있다.
315 단계에서 제어 모듈(50)은 전달받은 암호화된 키 입력 데이터를 복호화한다. 구체적으로, 제어 모듈(50)에 포함된 중개 유닛(52)에서 암호화된 키 입력 데이터를 복호화하여 어플리케이션(60)에 전달할 수 있다. 본 발명의 다른 실시예에서, 이와 같은 복호화 동작은 제어 모듈(50)이 아닌 어플리케이션(60)에서 이뤄질 수도 있다.
각각의 경우에 따라서, 본 발명은 하드웨어나 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 실현될 수 있다. 본 발명은 적어도 하나의 컴퓨터 시스템 안에 중앙 집중된 방식으로 구현될 수도 있고, 서로 다른 요소들이 여러 개의 상호 연결된 컴퓨터 시스템들에 걸쳐 퍼져있는 분산된 방식으로 구현될 수도 있다. 여기에 설명된 방법들을 수행할 수 있도록 설계된 어떠한 형태의 컴퓨터 시스템 또는 기타 장치도 적합하다. 통상적으로 하드웨어와 소프트웨어의 조합은 컴퓨터 프로그램이 탑재된 범용 컴퓨터 시스템이 될 수 있으며, 이때 상기 컴퓨터 프로그램은 로딩되어 실행될 경우에 상기 컴퓨터 시스템을 제어하여, 이 컴퓨터 시스템이 여기에서 설명한 방법들을 수행할 수 있게 한다.
본 발명은 또한 컴퓨터 프로그램 제품(computer program product)에 내장될 수 있다. 이때, 상기 컴퓨터 프로그램 제품은 여기서 설명한 방법들의 구현을 가능하게 하는 모든 특징들을 모두 포함하며, 컴퓨터 시스템에 탑재될 경우에는 그러한 방법들을 수행할 수 있다. 본 발명의 문맥에서 컴퓨터 프로그램이란, 어떠한 종류의 언어, 코드 또는 표기법으로 나타낸, 일단의 명령에 관한 어떠한 종류의 표현을 뜻한다. 이때, 상기 일단의 명령들이란, 정보 처리 능력을 가진 시스템이 어떤 특정한 기능을 직접적으로, 또는 다음의 (a) 다른 프로그램 언어, 코드나 표기법으로 컨버젼(conversion)되거나, (b) 상이한 물질적인 형태로 재생산을 각각 거치거나 또는 두 가지 모두를 거친 후에, 수행하도록 의도된 것들을 말한다.
본 발명이 특정한 실시예들에 관하여 설명되었지만, 본 발명의 사상에서 벗어남이 없이, 다양한 변경이 이뤄질 수 있고 또한 균등물들이 치환될 수 있다는 점은 당해 기술 분야에 숙련된 자들에게 이해될 것이다. 추가적으로, 본 발명의 사상에서 벗어남이 없이, 특정한 상황이나 물적 요건을 본 발명의 지침에 맞게 조절할 수 있도록 다양한 개조가 이뤄질 수 있다. 따라서, 본 발명은 개시된 특정한 실시 예에 한정되는 것이 아니며, 본 발명은 첨부된 청구 범위의 사상 내에 들어오는 모든 실시예들을 포함한다.
도 1은 본 발명의 일 실시예에 따른 보안 시스템을 포함하는 컴퓨터 시스템을 나타내는 블록도이다.
도 2는 도 1의 컴퓨터 시스템을 상세하게 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 키보드 입력 데이터 보안 방법을 나타내는 흐름도이다.

Claims (10)

  1. (a) USB(Universal Serial Bus) 장치로부터 입력된 데이터에 USB 키보드 장치로부터 입력되는 키 입력 데이터가 포함된 경우, 운영체제에 포함된 드라이버보다 낮은 레벨에서 동작하는 필터 드라이버를 활성화하는 단계;
    (b) 상기 USB 장치로부터 입력된 데이터를 분석하여 상기 입력된 데이터 중 상기 키 입력 데이터를 추출하고, 상기 추출된 키 입력 데이터가 상기 운영체제에 전달될 경우 상기 추출된 키 입력 데이터를 삭제 또는 변경하는 단계;
    (c) 상기 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 상기 운영체제에 상응하는 코드로 매핑하는 단계; 및
    (d) 상기 매핑된 키 입력 데이터를 암호화하여 어플리케이션에 전달하는 단계를 포함하는 것을 특징으로 하는 키보드 입력 데이터 보안 방법.
  2. 제1항에 있어서,
    상기 (a) 단계는
    상기 운영체제가 관리하는 레지스트리와 상기 USB 장치로부터 입력된 데이터를 참조하여 상기 입력 데이터 중 상기 키 입력 데이터에 대해서만 필터링을 수행하도록 상기 필터 드라이버를 활성화하는 것을 특징으로 하는 키보드 입력 데이터 보안 방법.
  3. 제1항에 있어서,
    상기 암호화된 키 입력 데이터를 복호화하는 단계를 더 포함하는 것을 특징으로 하는 키보드 입력 데이터 보안 방법.
  4. 제1항 내지 제3항 중 어느 한 항의 키보드 입력 데이터 보안 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  5. USB(Universal Serial Bus) 장치, 상기 USB 장치에 대한 드라이버를 갖는 운영체제 및 어플리케이션을 포함하는 컴퓨터 시스템에서 상기 USB 장치로부터 입력되는 데이터를 보안하는 시스템에 있어서,
    상기 USB 장치로부터 입력되는 데이터에 USB 키보드 장치로부터 입력되는 키 입력 데이터가 포함된 경우 활성화되어 상기 드라이버 보다 낮은 레벨에서 상기 키 입력 데이터를 추출하고, 상기 추출된 키 입력 데이터를 암호화하는 필터 드라이버; 및
    상기 암호화된 키 입력 데이터를 상기 어플리케이션에 전달하는 제어 모듈을 포함하는 것을 특징으로 하는 키보드 입력 데이터 보안 시스템.
  6. 제5항에 있어서,
    상기 필터 드라이버는
    상기 추출된 키 입력 데이터를 삭제 또는 변경하여 상기 운영체제에 전달하 는 것을 특징으로 하는 키보드 입력 데이터 보안 시스템.
  7. 제5항에 있어서,
    상기 필터 드라이버는
    상기 추출된 키 입력 데이터에 포함된 키보드 스캔 코드 값을 상기 운영체제에 상응하는 코드로 매핑하는 것을 특징으로 하는 키보드 입력 데이터 보안 시스템.
  8. 제5항에 있어서,
    상기 제어 모듈은
    상기 USB 장치가 연결된 경우 상기 USB 키보드 장치의 하드웨어 식별자(ID)를 검색하여 해당 핸들을 얻는 인식 유닛;
    상기 필터 드라이버로부터 전달받은 데이터를 상기 어플리케이션에 전달하는 중개 유닛; 및
    상기 필터 드라이버의 존재 여부를 판단하여 상기 필터 드라이버를 상기 드라이버 보다 낮은 레벨에 설치하고, 상기 필터 드라이버의 위조 또는 변조 여부를 판단하는 필터 드라이버 검증 유닛을 포함하는 것을 특징으로 하는 키보드 입력 데이터 보안 시스템.
  9. 제5항에 있어서,
    상기 제어 모듈은
    상기 암호화된 키 입력 데이터를 복호화하는 것을 특징으로 하는 키보드 입력 데이터 보안 시스템.
  10. 제5항에 있어서,
    상기 어플리케이션은
    상기 암호화된 키 입력 데이터를 복호화하는 것을 특징으로 하는 키보드 입력 데이터 보안 시스템.
KR1020070073108A 2007-07-20 2007-07-20 유에스비 키보드 입력 데이터 보안 방법 및 시스템 KR20090009649A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070073108A KR20090009649A (ko) 2007-07-20 2007-07-20 유에스비 키보드 입력 데이터 보안 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070073108A KR20090009649A (ko) 2007-07-20 2007-07-20 유에스비 키보드 입력 데이터 보안 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20090009649A true KR20090009649A (ko) 2009-01-23

Family

ID=40489353

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070073108A KR20090009649A (ko) 2007-07-20 2007-07-20 유에스비 키보드 입력 데이터 보안 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20090009649A (ko)

Similar Documents

Publication Publication Date Title
KR100861104B1 (ko) 유에스비 키보드의 보안장치 및 그 방법
US10061928B2 (en) Security-enhanced computer systems and methods
US9047486B2 (en) Method for virtualizing a personal working environment and device for the same
US7841000B2 (en) Authentication password storage method and generation method, user authentication method, and computer
CN103620612B (zh) 包括端口和来宾域的计算设备
JP4663572B2 (ja) ユニバーサルシリアルバスデータ伝送方法及びその方法を実施するデバイス
US8122172B2 (en) Portable information security device
TWI387883B (zh) 克服系統管理封鎖之方法、媒體及裝置
CN101593252B (zh) 一种计算机对usb设备进行访问的控制方法和系统
JP2009517732A (ja) Usbキーボードによる入力データの保安方法及び保安システム
US7747872B2 (en) Secure portable electronic reference device
KR100985076B1 (ko) Usb 디바이스 보안 장치 및 방법
KR101076048B1 (ko) 키 보호 방법 및 컴퓨팅 장치
KR100549645B1 (ko) 키보드로 입력되는 데이터의 보안방법과 이를 구현하는보안시스템
KR101115358B1 (ko) 방송장치 감시장치를 포함하는 스마트워크 컴퓨터
KR100537930B1 (ko) 유에스비 키보드를 통한 입력데이터의 보안방법과 이를구현하는 보안시스템
KR20090009649A (ko) 유에스비 키보드 입력 데이터 보안 방법 및 시스템
US8214896B2 (en) Method of securing USB keyboard
KR20100018022A (ko) 프락시 서버의 ssl 통신 기록 방법
KR20110034350A (ko) 가상머신 환경에서의 매체제어방법
JP2008250797A (ja) 生体認証機能付き記憶装置
KR100961148B1 (ko) Usb 디바이스의 입력 데이터 보안 방법 및 장치
JP2007317053A (ja) コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。
KR20110015892A (ko) 블루투스 디바이스의 보안 방법과 장치 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee