[go: up one dir, main page]

KR100861104B1 - 유에스비 키보드의 보안장치 및 그 방법 - Google Patents

유에스비 키보드의 보안장치 및 그 방법 Download PDF

Info

Publication number
KR100861104B1
KR100861104B1 KR1020060100366A KR20060100366A KR100861104B1 KR 100861104 B1 KR100861104 B1 KR 100861104B1 KR 1020060100366 A KR1020060100366 A KR 1020060100366A KR 20060100366 A KR20060100366 A KR 20060100366A KR 100861104 B1 KR100861104 B1 KR 100861104B1
Authority
KR
South Korea
Prior art keywords
data
driver
usb
keyboard
usb keyboard
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020060100366A
Other languages
English (en)
Other versions
KR20080034304A (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 킹스정보통신(주)
Priority to KR1020060100366A priority Critical patent/KR100861104B1/ko
Priority to PCT/KR2007/005062 priority patent/WO2008048035A1/en
Priority to US12/159,006 priority patent/US20090172705A1/en
Publication of KR20080034304A publication Critical patent/KR20080034304A/ko
Application granted granted Critical
Publication of KR100861104B1 publication Critical patent/KR100861104B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

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

Abstract

본 발명은 유에스비(USB) 키보드의 보안장치 및 그 방법에 관한 것으로, 개인용 컴퓨터(PC)에 연결된 USB 장치 중에서 USB 키보드를 위한 드라이버를 선별하고, 상기 USB 키보드를 통해 입력되는 입력데이터를 획득하기 위해 USB 허브 드라이버에 있는 데이터 처리함수 주소를 선별된 상기 USB 키보드 드라이버의 함수 주소로 교체하는 USB 키보드 보안드라이버와, 상기 USB 키보드 보안드라이버로부터 획득된 입력데이터를 우선적으로 수신하여 분석, 암호화 및 삭제 과정을 통해 처리하는 USB 키보드 데이터처리모듈과, 상기 USB 키보드 데이터처리모듈을 통해 처리된 입력데이터를 복호화하여 사용자가 입력하고자 하는 위치에 출력하는 USB 키보드 데이터전달모듈을 포함함으로써, 유에스비(USB)를 통해 본체와 통신되어 데이터를 전송하는 키보드로부터 악의적인 프로그램에 의해 입력되는 정보가 외부로 유출되는 것을 효과적으로 방지할 수 있다.
유에스비 키보드, 보안, 드라이버, 암호화, 복호화

Description

유에스비 키보드의 보안장치 및 그 방법{APPARATUS AND METHOD FOR PRESERVATION OF USB KEYBOARD}
도 1은 본 발명의 일 실시예에 따른 USB 키보드의 보안장치를 포함한 USB 드라이버 구조를 설명하기 위한 전체적인 블록 구성도.
도 2는 도 1의 USB 허브 드라이버와 HID 클래스 드라이버간에 연결되는 구조를 설명하기 위한 도면.
도 3은 본 발명의 일 실시예에 따른 USB 키보드의 보안방법을 설명하기 위한 전체적인 흐름도.
도 4는 USB 허브 드라이버 내에 속한 디바이스 객체들의 리스트를 획득하는 과정을 설명하기 위한 도면.
*** 도면의 주요 부분에 대한 부호 설명 ***
100 : 커널영역, 110 : 키보드 클래스 드라이버,
115 : 포트 드라이버, 120 : HID 키보드 클래스 드라이버,
125 : HID 마우스 클래스 드라이버,
130 : HID 클래스 드라이버, 135 : USB 저장 드라이버,
140 : USBCCGP 드라이버, 145 : USB 허브 드라이버,
150 : 호스트 제어 드라이버, 155 : USB 키보드,
160 : USB 메모리, 200 : 유저영역,
300 : USB 키보드 보안장치, 310 : USB 키보드 보안드라이버,
330 : USB 키보드 데이터처리모듈, 331 : 데이터수신부,
332 : 데이터분석부, 333 : 데이터암호화부,
334 : 데이터삭제부, 350 : USB 키보드 데이터전달모듈,
351 : 데이터복호화부, 353 : 데이터입력부
본 발명은 유에스비(USB)를 통해 개인용 컴퓨터(PC)의 본체와 통신되어 데이터를 전송하는 키보드로부터 악의적인 프로그램에 의해 입력되는 정보가 외부로 유출되는 것을 효과적으로 방지할 수 있도록 한 USB 키보드의 보안장치 및 그 방법에 관한 것이다.
최근에 인터넷의 발달로 인해 개인용 컴퓨터(PC)의 정보 유출이 빈번해지고 있다. 이러한 정보 유출은 정보수집, 유출단계로 이루어지며, 이러한 해킹 툴을 막기 위하여 안티 스파이웨어 또는 안티 바이러스, 방화벽 등으로 방지한다. 그러나, 새로운 해킹 툴을 막기 위해서는 그 해킹 툴의 수집, 분석 및 패치 등의 과정이 필요하기 때문에 패치가 이루어지기 전까지는 무방비로 노출되어 있다고 볼 수 있다.
그러기 때문에 개인 정보의 유출을 막기 위해서 사용자가 키보드를 이용하여 데이터를 입력할 때부터 막는 기술이 필요하다. 키보드는 PS/2를 이용하여 많이 개발되었지만, 최근에는 설치가 용의하고 재부팅이 필요하지 않아 사용하기에 편리한 USB 키보드의 보급이 많이 되고 있는 실정이다.
이러한 USB 키보드는, 컴퓨터의 본체와 주변장치들 간의 통신이 단순한 전기적인 신호흐름이 아닌 다수 데이터를 담은 패킷의 흐름으로 이루어지면서 운영체제와 메시지를 교환하는 개념으로 연결되는 것이다.
그러나, 이와 같은 USB 키보드 보안의 필요성은 사무실에서뿐만 아니라 일반 가정에서도 인터넷을 많이 사용하게 되면서 인터넷 보안의 취약점을 이용한 개인의 정보유출의 사례가 늘고 있다. 사이트의 가입 시의 개인 정보, 인터넷 뱅킹에 사용되는 비밀 번호 등의 노출이 빈번히 발생하고 있다.
본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 유에스비(USB)를 통해 본체와 통신되어 데이터를 전송하는 키보드로부터 악의적인 프로그램에 의해 입력되는 정보가 외부로 유출되는 것을 효과적으로 방지할 수 있도록 한 USB 키보드의 보안장치 및 그 방법을 제공하는데 있다.
전술한 목적을 달성하기 위하여 본 발명의 제1 측면은, 개인용 컴퓨터(PC)에 연결된 USB 장치 중에서 USB 키보드를 위한 드라이버를 선별하고, 상기 USB 키보드를 통해 입력되는 입력데이터를 획득하기 위해 USB 허브 드라이버에 있는 데이터 처리함수 주소를 선별된 상기 USB 키보드 드라이버의 함수 주소로 교체하는 USB 키보드 보안드라이버; 상기 USB 키보드 보안드라이버로부터 획득된 입력데이터를 우선적으로 수신하여 분석, 암호화 및 삭제 과정을 통해 처리하는 USB 키보드 데이터처리모듈; 및 상기 USB 키보드 데이터처리모듈을 통해 처리된 입력데이터를 복호화하여 사용자가 입력하고자 하는 위치에 출력하는 USB 키보드 데이터전달모듈을 포함하는 USB 키보드의 데이터 보안장치를 제공하는 것이다.
여기서, 상기 USB 키보드 데이터처리모듈은, 상기 USB 키보드 보안드라이버로부터 획득된 입력데이터를 우선적으로 수신하는 데이터수신부; 상기 데이터수신부로부터 수신된 입력데이터들 중에서 보호 대상 입력데이터를 분석하는 데이터분석부; 상기 데이터분석부로부터 분석된 보호 대상 입력데이터를 암호화하는 데이터 암호화부; 및 상기 데이터수신부로부터 수신된 입력데이터들 중에서 보호 대상 입력데이터를 운영체제가 인식하지 못하도록 삭제하는 데이터삭제부를 포함함이 바람직하다.
바람직하게는, 상기 USB 키보드 데이터전달모듈은, 상기 USB 키보드 데이터처리모듈로부터 암호화된 입력데이터를 운영체제가 처리할 수 있도록 복호화하는 데이터복호화부; 및 상기 데이터복호화부로부터 복호화된 입력데이터를 사용자가 입력하고자 하는 위치에 출력하는 데이터입력부를 포함한다.
본 발명의 제2 측면은, USB 키보드의 데이터 보안방법에 있어서, (a) 상기 USB 키보드를 위한 드라이버를 선별하는 단계; (b) 커널영역에 구비된 USB 허브 드라이버에 있는 데이터 처리함수 주소를 USB 키보드 드라이버의 함수 주소로 교체하는 단계; (c) 사용자가 상기 USB 키보드를 키 조작하여 입력한 입력데이터를 우선적으로 수신하여 분석, 암호화 및 삭제 과정을 거쳐 보호 대상 입력데이터를 처리하는 단계; 및 (d) 암호화된 상기 보호대상 입력데이터를 복호화하여 사용자가 입력하고자 하는 위치에 출력하는 단계를 포함하는 것을 특징으로 하는 USB 키보드의 데이터 보안방법을 제공하는 것이다.
여기서, 상기 단계(a)는, (a-1) 상기 USB 허브 드라이버의 디바이스 객체들의 리스트를 획득하는 단계; (a-2) 상기 단계(a-1)에서 획득된 디바이스 객체들 중에서 디바이스 객체의 맴버 변수가 널(NULL)이 아닌 디바이스 객체를 선별하는 단계; (a-3) 상기 단계(a-2)에서 선별된 디바이스 객체들 중에서 HID 클래스 드라이버(HIDUSB)와 연결되어 있는 디바이스 객체들의 리스트를 획득하는 단계; 및 (a-4) 상기 단계(a-3)에서 획득된 디바이스 객체들 중에서 HID 키보드에 관련된 디바이스 객체들의 리스트를 획득하는 단계를 포함함이 바람직하다.
바람직하게는, 상기 단계(a-1)는, 상기 USB 허브 드라이버의 드라이버 객체를 구하는 제1 과정과, 상기 드라이버 객체가 가지고 있는 맴버 변수로부터 첫 번째 디바이스 객체의 포인터를 구하는 제2 과정과, 상기 디바이스 객체의 맴버 변수로부터 다음 디바이스 객체의 포인터를 구하는 제3 과정을 계속적으로 수행하여 드라이버 객체들의 리스트를 구한다.
바람직하게는, 상기 단계(a-3)는, 상기 단계(a-2)에서 선별된 디바이스 객체들 중에서 디바이스 객체의 맴버 변수가 가리키는 디바이스 객체의 맴버 변수가 HID 클래스 드라이버(HIDUSB)의 드라이버 객체의 포인터와 동일할 경우, 상기 HID 클래스 드라이버(HIDUSB)와 연결되어 있는 디바이스 객체로 판단한다.
바람직하게는, 상기 단계(a-4)는, 상기 단계(a-3)에서 획득된 디바이스 객체들의 설명자를 이용하여 HID 키보드인지를 확인한다.
바람직하게는, 상기 단계(c)는, (c-1) 사용자가 상기 USB 키보드를 키 조작하여 입력한 입력데이터를 우선적으로 수신하는 단계; (c-2) 상기 단계(c-1)에서 수신된 입력데이터들 중에서 보호 대상 입력데이터를 분석하는 단계; (c-3) 상기 단계(c-2)에서 분석된 보호 대상 입력데이터를 암호화하는 단계; 및 (c-4) 상기 단계(c-1)에서 수신된 입력데이터들 중에서 보호 대상 입력데이터를 운영체제가 인식하지 못하도록 삭제하는 단계를 포함한다.
본 발명의 제3 측면은, 상술한 USB 키보드의 보안방법을 실행시키기 위한 프로그램을 기록한 기록매체를 제공한다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. 그러나, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 본 발명 의 실시예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되어지는 것이다.
도 1은 본 발명의 일 실시예에 따른 USB 키보드의 보안장치를 포함한 USB 드라이버 구조를 설명하기 위한 전체적인 블록 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 USB 키보드의 보안장치를 포함한 USB 드라이버 구조는, 크게 커널영역(100)과 유저영역(200)으로 구분되어 있다.
여기서, 커널영역(100)이라 함은, 컴퓨터 운영체계의 가장 중요한 핵심으로서, 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다. 비슷한말로는 '뉴클리어스'라는 용어가 있다.
이러한 커널영역(100)에는 기본적으로 키보드 클래스 드라이버(110), 포트 드라이버(115), HID 키보드 클래스 드라이버(120), HID 마우스 클래스 드라이버(125), HID 클래스 드라이버(130), USB 저장 드라이버(135), USBCCGP 드라이버(140), USB 허브 드라이버(145), 호스트 제어 드라이버(150), USB 키보드(155) 및 USB 메모리(160) 등을 포함한다.
한편, 유저영역(200)이라 함은, 운영체계의 가장 바깥부분에 위치하고 있으면서, 사용자 명령에 대한 처리를 담당한다. 일명 셀이라고도 불리 운다.
특히, USB 키보드(155)로부터 입력되는 데이터를 보호하기 위하여 커널영역(100)의 USB 허브 드라이버(145)에 본 발명의 일 실시예에 따른 USB 키보드 보안장치(300)가 설치되어 있다.
본 발명에 따른 USB 키보드 보안장치(300)가 설치되어 있지 않거나 활성화되지 않은 상태에서 USB 키보드(155)로부터 입력되는 데이터에 대한 운영체제의 처리과정은 다음과 같다.
우선, USB 키보드(155)를 개인용 컴퓨터(PC)에 연결하면, 해당 장치에 맞는 드라이버(driver)가 로딩(loading)되고 실행되고 있는 어플리케이션(Application)에 WM_DEVICECHANGE 메시지를 보내서 새로운 장치에 대한 필요한 작업을 하도록 한다.
이후에, 설치가 완료된 USB 키보드(155)는 호스트 제어 드라이버(150), USB 허브 드라이버(145), USBCCGP 드라이버(140), HID 클래스 드라이버(130)와 같은 순서의 드라이버 장치들이 연결된다.
여기서, 호스트 제어 드라이버(Host Control Driver)(150)는 물리적 USB 장치와 연결되어 있는 장치로서, 예컨대, Windows 2000의 경우 Host Controller Class Driver(usbd.sys)와 2개의 Miniclass Driver(uhcd.sys, openhci.sys)로 구성되어 있으며, Windows XP에서는 USB 2.x를 지원하면서 Host Controller Driver(usbport.sys)와 3개의 Miniport Driver(usbuhci.sys, usbohci.sys, usbehci.sys)로 구성되어 있다.
USB 허브 드라이버(USB Hub(BUS) Driver : USBHub.sys)(145)는 물리적 USB 장치로부터 오는 데이터를 그에 맞는 클라이언트 디바이스 드라이버(Client Device Driver)로 분배하는 기능을 수행한다.
이때, 주요 클라이언트 디바이스 드라이버로는 예컨대, 오디오(Audio)(스피 커), 통신(Communication)(모뎀), HID(Human Input Device : 사용자가 직접 컴퓨터로 데이터를 입력하는 장치로서 대표적으로 키보드, 마우스, 조이스틱 등이 있다.), 디스플레이(Display)(모니터), 물리적인 피드백 장치(Physical feedback devices)(포스 피드백 조이스틱), 전원(Power)(무정전 전원장치), 프린터(Printer), 대용량 저장장치(Mass storage)(하드 드라이브), 허브(Hub) 등이 있다.
USBCCGP(USB Common Class Generic Parent : USBccgp.sys) 드라이버(140)는 예컨대, Windows XP에서 복합적인 USB 장치(하나의 USB 연결로 두개 이상의 기능을 하는 장치)를 효율적으로 처리하기 위한 드라이버이다.
HID 클래스 드라이버(HID class/miniclass driver, HIDUSB)(HIDUSB.sys & HIDClass.sys)(130)는 HID 장치로부터 들어오는 USB 데이터를 그에 맞는 클래스 드라이버(Class Driver)로 보내주고 그 클래스 드라이버가 가공을 하여 운영체제에 전달하게 된다.
여기서, 키보드 데이터는 HID 키보드 클래스 드라이버(HID Keyboard Class Driver, HIDKBD)(kbdhid.sys)(120)를 통하여 운영체제의 키보드 처리 장치인 키보드 클래스 드라이버(Keyboard Class Driver, KBDCLASS)(kbdclass.sys)(110)로 전달된다.
이를 좀더 구체적으로 설명하면, USB 장치의 모든 데이터는 USB 허브 드라이버(145)를 통하여 올라가게 된다. 이때 연결된 USB 장치가 HID 장치라면 HID 클래스 드라이버(130)로 연결되고, 저장 장치라면 USB 저장 드라이버(USB Storage Driver : usbstor.sys)(135)로 연결된다.
예컨대, 운영체제가 Windows XP인 경우에 연결된 HID USB 장치가 복합 장치(Composite USB devices)라면, USB 허브 드라이버(145)에서 USBCCGP 드라이버(140)로 연결되고 USBCCGP 드라이버(140)에서 다시 HID 클래스 드라이버(130)로 연결이 이루어진다.
그리고, HID 클래스 드라이버(130)는 장치가 키보드, 마우스, 조이스틱이냐에 따라 HID 키보드 클래스 드라이버(120) 또는 HID 마우스 클래스 드라이버(HID MOUSE Class Driver, MOUHID)(125)로 연결된다.
HID 키보드 클래스 드라이버(120)는 키보드 클래스 드라이버(KBDCLASS)(110)와 연결되는데, 키보드 클래스 드라이버(KBDCLASS)(110)는 PS/2 키보드를 위한 포트 드라이버(115)와도 연결되어 있다.
이때, 포트 드라이버(115)는 널리 활용되고 있는 i8042 포트 드라이버이며, 인터럽트핸들러(미도시)에 의해 입력데이터의 경로가 설정되어서 상기 입력데이터를 처리하게 된다.
도 2는 도 1의 USB 허브 드라이버와 HID 클래스 드라이버간에 연결되는 구조를 설명하기 위한 도면이다.
도 2를 참조하면, 일반적으로 입/출력(I/O)에 사용되는 드라이버 객체(Driver Object) 예컨대, USB 허브 드라이버(145), HID 클래스 드라이버(130)는 물리적인 디바이스 객체(Physical Device Object, PDO)와 기능적인 디바이스 객 체(Functional Device Object, FDO)를 가지는 구조로 되어 있다.
여기서, 물리적인 디바이스 객체(PDO)란 그 드라이버의 주요 기능을 구현하기 위한 디바이스 객체(Device Object)이고, 기능적인 디바이스 객체(FDO)는 그 아래 계층의 드라이버에게 IRP(I/O Request Packet) 형태로 전달하기 위한 디바이스 객체(Device Object)이다.
각각의 드라이버 객체(Driver Object)들은 물리적인 디바이스 객체(PDO)와 기능적인 디바이스 객체(FDO)를 가짐으로써, 다음 레벨의 드라이버 객체(Driver Object)와 연결된다.
즉, USB 키보드(155)가 개인용 컴퓨터(PC)에 연결되면, 운영체제는 키보드 데이터를 받기 위한 구조체인 URB(USB Request Blocks)를 IRP(I/O Request Packet)에 파라미터(Parameter)로 호스트 제어 드라이버(150)까지 전달한다.
그리고, USB 키보드(155)를 눌러서 키보드 입력데이터가 발생되면, 그 키보드 입력데이터를 URB(USB Request Blocks)에 기록하고, IRP(I/O Request Packet)를 완료(IRP Completion)시켜서 운영체제로 전달한다.
이후에, 상기 키보드 입력데이터를 처리한 운영체제는 다음 키보드 입력데이터를 받기 위한 URB(USB Request Blocks)를 다시 내려보내서 USB 키보드(155)가 눌려지기를 기다리게 된다. 즉, 운영체제에서 생성된 IRP(I/O Request Packet)가 호스트 제어 드라이버(150)까지 전달되는 것은 아니다.
한편, 운영체제에서 생성된 IRP(I/O Request Packet)는 바로 아래 계층에 있는 드라이버의 물리적인 디바이스 객체(PDO)까지 전달되고, 물리적인 디바이스 객체(PDO)는 운영체제가 요청한 IRP(I/O Request Packet)의 작업을 하기 위한 새로운 IRP(I/O Request Packet)를 생성하여 기능적인 디바이스 객체(FDO)를 통해 그 아래계층에 있는 드라이버의 물리적인 디바이스 객체(PDO)로 전달한다. 물론 각 드라이버의 기능에 따라서 물리적인 디바이스 객체(PDO) 또는 기능적인 디바이스 객체(FDO)만 있는 경우도 있다.
이하에는 USB 키보드(155)로부터 입력되는 데이터를 보호하기 위하여 커널영역(100)의 USB 허브 드라이버(145)에 설치된 본 발명의 일 실시예에 따른 USB 키보드 보안장치(300)에 대하여 상세하게 설명한다.
즉, 본 발명의 일 실시예에 따른 USB 키보드 보안장치(300)는, USB 키보드 보안드라이버(310), USB 키보드 데이터처리모듈(330) 및 USB 키보드 데이터전달모듈(350)을 포함하여 이루어진다.
여기서, USB 키보드 보안드라이버(310)는 개인용 컴퓨터(PC)에 연결된 USB 장치 중에서 USB 키보드(155)를 위한 드라이버를 선별하고, USB 키보드(155)를 통해 입력되는 입력데이터를 획득하기 위해 USB 허브 드라이버(145)에 있는 데이터 처리함수 주소를 선별된 USB 키보드(145) 드라이버의 함수 주소로 교체하는 기능을 수행한다.
USB 키보드 데이터처리모듈(330)은 USB 키보드 보안드라이버(310)로부터 획득된 입력데이터를 우선적으로 수신하여 분석, 암호화 및 삭제 과정을 통해 입력데이터를 처리하는 기능을 수행한다.
이러한 USB 키보드 데이터처리모듈(330)은 USB 키보드 보안드라이버(310)로부터 획득된 입력데이터를 우선적으로 수신하는 데이터수신부(331)와, 데이터수신부(331)로부터 수신된 입력데이터들 중에서 보호 대상 입력데이터를 분석하는 데이터분석부(332)와, 데이터분석부(332)로부터 분석된 보호 대상 입력데이터를 암호화하는 데이터암호화부(333)와, 데이터수신부(331)로부터 수신된 입력데이터들 중에서 보호 대상 입력데이터를 운영체제가 인식하지 못하도록 삭제하는 데이터삭제부(334)로 이루어진다.
USB 키보드 데이터전달모듈(350)은 USB 키보드 데이터처리모듈(330)을 통해 처리된 입력데이터를 복호화하여 사용자가 입력하고자 하는 위치에 출력하는 기능을 수행한다.
이러한 USB 키보드 데이터전달모듈(350)은, USB 키보드 데이터처리모듈(330)로부터 암호화된 입력데이터를 운영체제가 처리할 수 있도록 복호화하는 데이터복호화부(351)와, 데이터복호화부(351)로부터 복호화된 입력데이터를 사용자가 입력하고자 하는 위치에 출력하는 데이터입력부(353)로 이루어진다.
도 3은 본 발명의 일 실시예에 따른 USB 키보드의 보안방법을 설명하기 위한 전체적인 흐름도이고, 도 4는 USB 허브 드라이버 내에 속한 디바이스 객체들의 리스트를 획득하는 과정을 설명하기 위한 도면이다.
도 3 및 도 4를 참조하면, 먼저, USB 키보드 보안드라이버(310, 도 2 참조)를 통해 USB 키보드(155, 도 1 참조)를 위한 드라이버를 선별한다(S100).
즉, 상기 단계S100은 첫째, USB 허브 드라이버(USBHUB)(145)내에 속한 디바이스 객체들의 리스트를 획득한다. 이를 구체적으로 설명하면, USB 허브 드라이버(USBHUB)(145)의 드라이버 객체를 구한 후, 상기 드라이버 객체가 가지고 있는 맴버 변수로부터 첫 번째 디바이스 객체의 포인터를 구한 다음, 상기 디바이스 객체의 맴버 변수로부터 다음 디바이스 객체의 포인터를 구할 수 있다. 이런 식으로 계속 따라 가면 USB 허브 드라이버(USBHUB)(145)에 속한 모든 디바이스 객체들(PDO 2-1, FDO 2-1, PDO 2-2, FDO 2-2, PDO 2-3)의 리스트를 구할 수 있다.
둘째, USB 허브 드라이버(USBHUB)(145)에 속한 디바이스 객체들 중에서 디바이스 객체의 맴버 변수가 널(NULL)이 아닌 디바이스 객체(PDO 2-1, PDO 2-2, PDO 2-3)를 선별한다.
셋째, 상기 선별된 디바이스 객체들 중에서 HID 클래스 드라이버(HIDUSB)(130)와 연결되어 있는 디바이스 객체들(PDO 2-1, PDO 2-2)의 리스트를 획득한다. 즉, 상기 선별된 디바이스 객체들 중에서 디바이스 객체의 맴버 변수가 가리키는 디바이스 객체의 맴버 변수가 HID 클래스 드라이버(HIDUSB)(130)의 드라이버 객체의 포인터와 동일할 경우, HID 클래스 드라이버(HIDUSB)(130)와 연결되어 있는 디바이스 객체로 판단한다.
넷째, 상기 획득된 디바이스 객체들 중에서 HID 키보드에 관련된 디바이스 객체들(PDO 2-1)의 리스트를 획득한다. 즉, 상기 획득된 디바이스 객체들의 설명자를 구하여 HID 키보드인지를 확인한다.
이러한 흐름을 좀더 기술적으로 설명하면, USB 키보드(155)의 입력데이터를 보호하기 위해서는 가능한 물리적 장치와 가까워야 한다. 예컨대, Windows 2000의 USB 허브 드라이버(USBHUB)(145)의 경우 다수의 물리적인 디바이스 객체(PDO)와 기능적인 디바이스 객체(FDO)가 존재한다.
USB 허브 드라이버(USBHUB)(145)의 기능적인 디바이스 객체(FDO)를 통하여 오는 데이터들은 키보드, 마우스, 조이스틱 저장장치와 같은 모든 USB 장치로부터 데이터가 올라오게 된다. 그 많은 데이터들 중에서 키보드 데이터만을 선별하여 보호하기란 쉬운 일이 아니다.
USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)는 HID 클래스 드라이버(HIDUSB)(130)와 USB 저장 드라이버(USBSTOR)(135, 도 1 참조)중에 어떤 드라이버 객체(Driver Object)와 연결되었는지에 따라서 HID 장치와 저장(Storage) 장치로 구별된다.
상기 HID 장치는 그 수에 맞게 HID 클래스 드라이버(HIDUSB)(130)의 기능적인 디바이스 객체(FDO)와 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)가 연결되기 때문에, USB 키보드(155)에 관련된 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)를 찾아서 키보드 데이터를 수신하도록 하면 된다.
예컨대, Windows XP의 경우에 USB 장치가 복합장치인 경우 USB 허브 드라이버(USBHUB)(145)와 HID 클래스 드라이버(HIDUSB)(130) 사이에 USBCCGP 드라이버(140, 도 1 참조)가 존재하게 된다. 예를 들어 하나의 USB 수신기에 무선 키보드와 무선 마우스가 같이 쓰는 경우에 USBCCGP 드라이버(140)의 기능적인 디바이 스 객체(FDO) 하나로 USB 무선 키보드와 마우스 데이터가 함께 전달되고, USBCCGP 드라이버(140)의 물리적인 디바이스 객체(PDO)는 키보드와 마우스 각각 따로 물리적인 디바이스 객체(PDO)가 할당되고, 이 물리적인 디바이스 객체(PDO)들은 HID 클래스 드라이버(HIDUSB)(130) 각각의 기능적인 디바이스 객체(FDO)와 연결되어 키보드 데이터와 마우스 데이터가 분류되어 HID 클래스 드라이버(HIDUSB)(130)로 전달된다.
그렇기 때문에 Windows 2000의 경우에는 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)중에 키보드 데이터를 전송하기 위한 물리적인 디바이스 객체(PDO)를 찾으면 되고, Windows XP의 경우에는 USB 허브 드라이버(USBHUB)(145)와 USBCCGP 드라이버(140)의 물리적인 디바이스 객체(PDO)들 중에서 키보드 데이터를 전송하기 위한 물리적인 디바이스 객체(PDO)를 찾아야 한다.
이후의 설명은 USB 허브 드라이버(USBHUB)(145) 위주로 설명을 하겠지만, USBCCGP 드라이버(140)도 USB 허브 드라이버(USBHUB)(145)에 처리하는 방법과 동일한 방법으로 처리한다는 것을 미리 밝혀 둔다.
USB 키보드(155) 데이터를 전달하는 물리적인 디바이스 객체(PDO)를 찾기 위하여 다음과 같은 절차를 방법을 이용한다.
첫째, USB 허브 드라이버(USBHUB)(145)의 DEVICE_OBJECT(Device Object의 정보를 가지고 있는 구조체)리스트를 구한다. 즉, USB 허브 드라이버(USBHUB)(145)를 구하기 위하여 "\\Driver\\usbhub"의 이름을 가지고 ObReferenceObjectByName()함수를 이용하여 DRIVER_OBJECT의 포인터를 얻는다. DRIVER_OBJECT의 DeviceObject 항목이 첫번째 디바이스 객체(Device Object)의 DEVICE_OBJECT의 포인터이다.
그리고, 디바이스 객체(Device Object)들은 체인으로 연결되어 있는데 DEVICE_OBJECT.NextDevice 항목은 다음 디바이스 객체(Device Object)의 DEVICE_OBJECT의 포인터이다. 이러한 방법으로 USB 허브 드라이버(USBHUB)(145)에 있는 디바이스 객체(Device Object)들의 DEVICE_OBJECT를 모두 구할 수 있다.
둘째, DEVICE_OBJECT 중에서 물리적인 디바이스 객체(PDO)를 선별한다. 즉, 전술한 바와 같이 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)와 HID 클래스 드라이버(HIDUSB)(130)의 기능적인 디바이스 객체(FDO)가 연결되어 있어서 데이터를 주고받을 수 있다고 했다. 정확한 관계로 표현을 하자면 "HID 클래스 드라이버(HIDUSB)(130)의 기능적인 디바이스 객체(FDO)가 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)에 연결(attach)되어 있는 관계에 있다."라고 할 수 있다.
상기에서 구한 USB 허브 드라이버(USBHUB)(145)의 DEVICE_OBJECT들 중에서 DEVICE_OBJECT.AttachedDevice가 널이 아닌 디바이스 객체(Device Object)가 물리적인 디바이스 객체(PDO)가 되는 것이다. 여기서, DEVICE_OBJECT.AttachedDevice는 해당 디바이스 객체(Device Object)에 연결(attach)된 디바이스 객체(Device Object)의 DEVICE_OBJECT의 포인터를 나타낸다.
셋째, HID 장치와 연결되어 있는 USB 허브 드라이버(USBHUB)(145)의 디바이스 객체(Device Object)를 찾는다. 즉, DEVICE_OBJECT.AttachedDevice에서 구한 디바이스 객체(Device Object)의 DEVICE_OBJECT.DriverObject는 그 디바이스 객체(Device Object)를 가진 드라이버 객체(Driver Object)의 DRIVER_OBJECT 포인터를 가르킨다. 이 값이 HID 클래스 드라이버(HIDUSB)(130)의 DRIVER_OBJECT의 포인터와 같은지를 비교하여 USB 허브 드라이버(USBHUB)(145)의 디바이스 객체(Device Object)가 HID 장치에 연결되어 있는지를 알 수가 있다.
여기서 주위 해야 할 점은 HID 클래스 드라이버(HIDUSB)(130)의 DRIVER_OBJECT를 구할 때 그 HID 클래스 드라이버(HIDUSB)(130)의 이름을 이용하여 구하게 된다. 그러나, 그 이름이 항상 같은 것은 아니다. USB 키보드(155)를 단순히 개인용 컴퓨터(PC)에 연결해서 사용한다면 드라이버 이름은 같지만, USB 키보드(155)에서 제공하는 기능을 쓰기 위하여 그 USB 키보드(155)에서 제공하는 키보드 드라이버를 설치한다면 HID 클래스 드라이버(HIDUSB)(130)의 이름이 다를 수 있다. 그렇기 때문에 개인용 컴퓨터(PC)에 설치된 드라이버 객체(Driver Object)를 조회하여 HID 키보드 클래스 드라이버(HIDKBD)(120)에 연결된 드라이버 객체(Driver Object)를 찾아서 HID 클래스 드라이버(HIDUSB)(130)와 동일하게 봐야 한다.
넷째, HID 장치와 연결되어 있는 키보드에 관련된 USB 허브 드라이버(USBHUB)(145)의 디바이스 객체(Device Object)를 찾는다. 즉, USB 장치는 그 장치가 무엇인지 인식하도록 설명자(Descriptor)라는 구조체를 가지고 있다. USB_CONFIGURATION_DESCRIPTOR_TYPE의 설명자를 얻기 위한 URB(USB Request Blocks)를 UsbBuildGetDescriptorRequest 함수를 이용해서 생성한다.
이렇게 해서 만들어진 URB(USB Request Blocks)를 IRP(I/O Code : IOCTL_INTERNAL_USB_SUBMIT_URB)의 스택 위치(Stack Location)의 파라미터(Parameter)로 첨부하여 위에서 선별된 USB 허브 드라이버(USBHUB)(145)의 드라이버 객체(Driver Object)의 물리적인 디바이스 객체(PDO)에게 보내어(IoCallDriver) 물리적인 디바이스 객체(PDO)에 연결되어 있는 장치의 설명자를 구한다. 이렇게 하여 구한 설명자를 USBD_ParseConfigurationDescriptorEx 함수를 통하여 USB 키보드(155)인지 확인한다. USB 키보드(155) 라면 USBD_ParseConfigurationDescriptorEx 함수의 결과는 USB 키보드(155)의 기능을 제공하기 위한 인터페이스(Interface)를 나타내는 USB_INTERFACE_DESCRIPTOR 구조체의 포인터를 반환할 것이다.
다음으로, USB 키보드 보안드라이버(310)를 통해 USB 키보드(155) 데이터의 처리 루틴을 변경한다(S200). 즉, 커널영역(100)에 구비된 USB 허브 드라이버(USBHUB)(145)에 있는 데이터 처리함수 주소를 USB 키보드(155) 드라이버의 함수 주소로 교체한다.
이를 좀더 기술적으로 설명하면, USB 키보드(155) 데이터는 HID 클래스 드라이버(HIDUSB)(130)로부터 내려온 IRP(I/O Request Packet)의 파라미터(Parameter)로 첨부되어서 오는 URB(USB Request Blocks)에 채워져서 다시 HID 클래스 드라이버(HIDUSB)(130)로 올라간다.
여기서, HID 클래스 드라이버(HIDUSB)(130)로 오는 IRP(I/O Request Packet)의 I/O Code에 따라 처리하는 루틴이 정의된 테이블이 Major Function Table이다. HID 클래스 드라이버(HIDUSB)(130)가 USB 키보드(155) 데이터를 가져가기 위하여 I/O Code IRP_MJ_INTERNAL_DEVICE_CONTROL을 사용하는데, USB 허브 드라이버(USBHUB)(145)의 IRP_MJ_INTERNAL_DEVICE_CONTROL를 처리하는 Major Function의 주소를 보안 키보드 서비스 루틴 주소로 교체한다.
이후에, USB 키보드 데이터처리모듈(330)을 통해 사용자가 USB 키보드(155)를 키 조작하여 입력한 입력데이터를 우선적으로 수신하여 분석, 암호화 및 삭제 과정을 거쳐 보호 대상 입력데이터를 처리한다(S300∼S500).
즉, 사용자가 USB 키보드를 키 조작하여 입력한 입력데이터를 우선적으로 수신한다(S300). 이를 좀더 기술적으로 설명하면, 보안 키보드 서비스 루틴은 USB 허브 드라이버(USBHUB)(145)로 오는 모든 IRP_MJ_INTERNAL_DEVICE_CONTROL IRP를 받게 되는데 USB 키보드(155) 데이터를 위한 IRP(I/O Request Packet)라면 보안 키보드 서비스 루틴의 파라미터(Parameter)로 전달되는 DEVICE_OBJECT의 포인터가 위에서 선별된 USB 키보드(155)를 위한 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)의 DEVICE_OBJECT와 같다.
USB 키보드(155) 데이터는 URB(USB Request Blocks)를 가진 IRP(I/O Request Packet)가 내려오고 펜딩(PENDING)상태로 있다가 USB 키보드(155) 데이터가 발생되면, URB(USB Request Blocks)에 채워져서 IRP(I/O Request Packet)에 설정된 완료 루틴(Completion Routine)을 호출하게 되는데 USB 키보드(155) 데이터 를 가져가기 위한 IRP(I/O Request Packet)에 설정된 완료 루틴(Completion Routine)을 보안 키보드 완료 루틴(Completion Routine)으로 교체하여 가장 먼저 USB 키보드(155) 데이터를 처리할 수 있도록 한다.
다음으로, 상기 단계S300에서 수신된 입력데이터들 중에서 보호 대상 입력데이터를 분석한다(S400). 즉, USB 키보드(155) 데이터는 한번에 8byte의 데이터가 올라가게 된다. 이러한 데이터 중에 보호해야 하는 키보드 데이터를 골라내고 PS/2와는 다른 데이터가 오기 때문에 키보드 데이터를 분석하는 작업이 필요하다.
예컨대, 키보드의 DOWN & UP 키의 경우, USB 키보드(155) 데이터는 키보드의 상태가 변할 때마다 그 상태를 URB(USB Request Blocks)에 저장하여 전달하게 된다. 키보드 'A' 키를 누르면 'A'가 눌려졌다는 데이터가 올라가고, 'A'를 띄면 지금 눌려진 키가 없다는 데이터가 올라가게 된다. PS/2 키보드의 경우 'A'키가 눌려지면 'A' Down 데이터가 'A'키를 띌 때까지 나오고 'A' Up 데이터가 발생되는 반면, USB 키보드(155)는 눌려졌을 때 한번 땔 때 한번 발생하게 된다.
한편, 두 개의 키보드 입력의 경우, 'A' Down, 'B' Down, 'A' Up, 'B' Up의 순서대로 키를 입력하면 'A'가 눌려져 있다는 신호, 'A', 'B'가 눌려져 있다는 신호, 'B'가 눌려져 있다는 신호, 눌려진 키가 없다는 신호 순서대로 발생한다.
이후에, 상기 단계S400에서 분석된 보호 대상 입력데이터를 암호화한 후(S500), 상기 단계S300에서 수신된 입력데이터들 중에서 보호 대상 입력데이터를 운영체제가 인식하지 못하도록 삭제한다(S600).
즉, 상기 단계S500은 USB 키보드(155) 데이터를 안전하게 어플리케이 션(Application) 모듈로 전달하기 위해서 128bit 암호화를 하게 된다. 상기 단계S600은 보안 키보드 서비스 루틴으로부터 수신된 키보드 데이터를 운영체제가 받지 못하도록 키보드 데이터 중에서 보호 대상 데이터만 선별하여 삭제하여야 한다.
마지막으로, USB 키보드 데이터전달모듈(350)을 통해 상기 단계S500에서 암호화된 상기 보호대상 입력데이터를 복호화한 후(S700), 사용자가 입력하고자 하는 위치에 출력한다(S800).
추가적으로, USB 키보드(155)를 여러 개 연결할 경우에 각각의 USB 키보드(155)에 대응하는 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)가 생성되어서 연결된다. 그렇기 때문에 USB 허브 드라이버(USBHUB)(145)의 물리적인 디바이스 객체(PDO)들 중에서 USB 키보드(155)에 관련된 물리적인 디바이스 객체(PDO)의 DEVICE_OBJECT 포인터 리스트를 가지고 있다가 보안 키보드 서비스 루틴이 호출될 때 파라미터(Parameter)로 전달되는 DEVICE_OBJECT 포인터와 비교하면 간단하게 여러 개의 USB 키보드(155) 보안을 지원할 수 있다.
또한, USB 허브 드라이버(USBHUB)(145)의 Major Function Table의 서비스 루틴 주소들을 주기적으로 감시하여 변경된 사항이 있으면, 원상태로 복구하고 해킹에 사용된 서비스 루틴의 주소를 이용하여 해킹 드라이버 이름을 알아내어 사용자에게 통보할 수도 있다.
한편, 본 발명의 일 실시예에 따른 USB 키보드의 보안방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
예컨대, 컴퓨터가 읽을 수 있는 기록매체로는 롬(ROM), 램(RAM), 시디-롬(CD-ROM), 자기 테이프, 하드디스크, 플로피디스크, 이동식 저장장치, 비휘발성 메모리(Flash Memory), 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다.
또한, 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
전술한 본 발명에 따른 유에스비(USB) 키보드의 보안장치 및 그 방법에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.
이상에서 설명한 바와 같은 본 발명의 유에스비(USB) 키보드의 보안장치 및 그 방법에 따르면, 유에스비(USB)를 통해 본체와 통신되어 데이터를 전송하는 키 보드로부터 악의적인 프로그램에 의해 입력되는 정보가 외부로 유출되는 것을 효과적으로 방지할 수 있는 이점이 있다.

Claims (10)

  1. 개인용 컴퓨터(PC)에 연결된 USB 장치 중에서 USB 키보드를 위한 드라이버를 선별하고, 상기 USB 키보드를 통해 입력되는 입력데이터를 획득하기 위해 USB 허브 드라이버에 있는 데이터 처리함수 주소를 선별된 상기 USB 키보드 드라이버의 함수 주소로 교체하는 USB 키보드 보안드라이버;
    상기 USB 키보드 보안드라이버로부터 획득된 입력데이터를 우선적으로 수신하여 분석, 암호화 및 삭제 과정을 통해 처리하는 USB 키보드 데이터처리모듈; 및
    상기 USB 키보드 데이터처리모듈을 통해 처리된 입력데이터를 복호화하여 사용자가 입력하고자 하는 위치에 출력하는 USB 키보드 데이터전달모듈을 포함하는 USB 키보드의 데이터 보안장치.
  2. 제 1 항에 있어서, 상기 USB 키보드 데이터처리모듈은,
    상기 USB 키보드 보안드라이버로부터 획득된 입력데이터를 우선적으로 수신하는 데이터수신부;
    상기 데이터수신부로부터 수신된 입력데이터들 중에서 보호 대상 입력데이터를 분석하는 데이터분석부;
    상기 데이터분석부로부터 분석된 보호 대상 입력데이터를 암호화하는 데이터암호화부; 및
    상기 데이터수신부로부터 수신된 입력데이터들 중에서 보호 대상 입력데이터를 운영체제가 인식하지 못하도록 삭제하는 데이터삭제부를 포함하는 것을 특징으로 하는 USB 키보드의 데이터 보안장치.
  3. 제 1 항에 있어서, 상기 USB 키보드 데이터전달모듈은,
    상기 USB 키보드 데이터처리모듈로부터 암호화된 입력데이터를 운영체제가 처리할 수 있도록 복호화하는 데이터복호화부; 및
    상기 데이터복호화부로부터 복호화된 입력데이터를 사용자가 입력하고자 하는 위치에 출력하는 데이터입력부를 포함하는 것을 특징으로 하는 USB 키보드의 데이터 보안장치.
  4. USB 키보드의 데이터 보안방법에 있어서,
    (a) 상기 USB 키보드를 위한 드라이버를 선별하는 단계;
    (b) 커널영역에 구비된 USB 허브 드라이버에 있는 데이터 처리함수 주소를 USB 키보드 드라이버의 함수 주소로 교체하는 단계;
    (c) 사용자가 상기 USB 키보드를 키 조작하여 입력한 입력데이터를 우선적으로 수신하여 분석, 암호화 및 삭제 과정을 거쳐 보호 대상 입력데이터를 처리하는 단계; 및
    (d) 암호화된 상기 보호대상 입력데이터를 복호화하여 사용자가 입력하고자 하는 위치에 출력하는 단계를 포함하는 것을 특징으로 하는 USB 키보드의 데이터 보안방법.
  5. 제 4 항에 있어서, 상기 단계(a)는,
    (a-1) 상기 USB 허브 드라이버의 디바이스 객체들의 리스트를 획득하는 단계;
    (a-2) 상기 단계(a-1)에서 획득된 디바이스 객체들 중에서 디바이스 객체의 맴버 변수가 널(NULL)이 아닌 디바이스 객체를 선별하는 단계;
    (a-3) 상기 단계(a-2)에서 선별된 디바이스 객체들 중에서 HID 클래스 드라이버(HIDUSB)와 연결되어 있는 디바이스 객체들의 리스트를 획득하는 단계; 및
    (a-4) 상기 단계(a-3)에서 획득된 디바이스 객체들 중에서 HID 키보드에 관련된 디바이스 객체들의 리스트를 획득하는 단계를 포함하는 것을 특징으로 하는 USB 키보드의 데이터 보안방법.
  6. 제 5 항에 있어서, 상기 단계(a-1)는,
    상기 USB 허브 드라이버의 드라이버 객체를 구하는 제1 과정과, 상기 드라이버 객체가 가지고 있는 맴버 변수로부터 첫 번째 디바이스 객체의 포인터를 구 하는 제2 과정과, 상기 디바이스 객체의 맴버 변수로부터 다음 디바이스 객체의 포인터를 구하는 제3 과정을 계속적으로 수행하여 드라이버 객체들의 리스트를 구하는 것을 특징으로 하는 USB 키보드의 데이터 보안방법.
  7. 제 5 항에 있어서, 상기 단계(a-3)는,
    상기 단계(a-2)에서 선별된 디바이스 객체들 중에서 디바이스 객체의 맴버 변수가 가리키는 디바이스 객체의 맴버 변수가 HID 클래스 드라이버(HIDUSB)의 드라이버 객체의 포인터와 동일할 경우, 상기 HID 클래스 드라이버(HIDUSB)와 연결되어 있는 디바이스 객체로 판단하는 것을 특징으로 하는 USB 키보드의 데이터 보안방법.
  8. 제 5 항에 있어서, 상기 단계(a-4)는,
    상기 단계(a-3)에서 획득된 디바이스 객체들의 설명자를 이용하여 HID 키보드인지를 확인하는 것을 특징으로 하는 USB 키보드의 데이터 보안방법.
  9. 제 4 항에 있어서, 상기 단계(c)는,
    (c-1) 사용자가 상기 USB 키보드를 키 조작하여 입력한 입력데이터를 우선 적으로 수신하는 단계;
    (c-2) 상기 단계(c-1)에서 수신된 입력데이터들 중에서 보호 대상 입력데이터를 분석하는 단계;
    (c-3) 상기 단계(c-2)에서 분석된 보호 대상 입력데이터를 암호화하는 단계; 및
    (c-4) 상기 단계(c-1)에서 수신된 입력데이터들 중에서 보호 대상 입력데이터를 운영체제가 인식하지 못하도록 삭제하는 단계를 포함하는 것을 특징으로 하는 USB 키보드의 데이터 보안방법.
  10. 제 4 항 내지 제 9 항 중 어느 한 항의 방법을 컴퓨터로 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060100366A 2006-10-16 2006-10-16 유에스비 키보드의 보안장치 및 그 방법 Active KR100861104B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060100366A KR100861104B1 (ko) 2006-10-16 2006-10-16 유에스비 키보드의 보안장치 및 그 방법
PCT/KR2007/005062 WO2008048035A1 (en) 2006-10-16 2007-10-16 Apparatus and method for preservation of usb keyboard
US12/159,006 US20090172705A1 (en) 2006-10-16 2007-10-16 Apparatus and Method for Preservation of USB Keyboard

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060100366A KR100861104B1 (ko) 2006-10-16 2006-10-16 유에스비 키보드의 보안장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20080034304A KR20080034304A (ko) 2008-04-21
KR100861104B1 true KR100861104B1 (ko) 2008-09-30

Family

ID=39314212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060100366A Active KR100861104B1 (ko) 2006-10-16 2006-10-16 유에스비 키보드의 보안장치 및 그 방법

Country Status (3)

Country Link
US (1) US20090172705A1 (ko)
KR (1) KR100861104B1 (ko)
WO (1) WO2008048035A1 (ko)

Families Citing this family (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8893013B1 (en) * 2007-10-11 2014-11-18 Teradici Corporation Method and apparatus for providing a hybrid computing environment
KR100986123B1 (ko) * 2008-06-16 2010-10-07 킹스정보통신(주) 유에스비 키보드의 보안방법
CN104424469A (zh) * 2013-08-23 2015-03-18 上海方立数码科技有限公司 模拟usb键盘输出的指纹识别设备
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
CN105045402A (zh) * 2015-07-09 2015-11-11 苏州硅果电子有限公司 一种多功能键盘
US12288233B2 (en) 2016-04-01 2025-04-29 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US12136055B2 (en) 2016-06-10 2024-11-05 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US12045266B2 (en) 2016-06-10 2024-07-23 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10839102B2 (en) * 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US12052289B2 (en) 2016-06-10 2024-07-30 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US12118121B2 (en) 2016-06-10 2024-10-15 OneTrust, LLC Data subject access request processing systems and related methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US12299065B2 (en) 2016-06-10 2025-05-13 OneTrust, LLC Data processing systems and methods for dynamically determining data processing consent configurations
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
WO2022011142A1 (en) 2020-07-08 2022-01-13 OneTrust, LLC Systems and methods for targeted data discovery
US11444976B2 (en) 2020-07-28 2022-09-13 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
WO2022076373A1 (en) 2020-10-05 2022-04-14 OneTrust, LLC Systems and methods for detecting prejudice bias in machine-learning models
US11397819B2 (en) 2020-11-06 2022-07-26 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US20240111899A1 (en) 2021-02-08 2024-04-04 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US20240098109A1 (en) 2021-02-10 2024-03-21 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
US20240311497A1 (en) 2021-03-08 2024-09-19 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US12153704B2 (en) 2021-08-05 2024-11-26 OneTrust, LLC Computing platform for facilitating data exchange among computing environments
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments
CN118761065A (zh) * 2024-06-20 2024-10-11 上海贝锐信息科技股份有限公司 安全审计方法、装置、系统及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100537930B1 (ko) * 2004-10-26 2005-12-20 소프트캠프(주) 유에스비 키보드를 통한 입력데이터의 보안방법과 이를구현하는 보안시스템
KR100549645B1 (ko) * 2004-11-05 2006-02-06 소프트캠프(주) 키보드로 입력되는 데이터의 보안방법과 이를 구현하는보안시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3310828A1 (de) * 1983-03-24 1984-09-27 Bayer Ag, 5090 Leverkusen Verfahren zur herstellung von silicium
US4919912A (en) * 1985-10-18 1990-04-24 Ford, Bacon & Davis Incorporated Process for the treatment of sulfur containing gases
US5815689A (en) * 1997-04-04 1998-09-29 Microsoft Corporation Method and computer program product for synchronizing the processing of multiple data streams and matching disparate processing rates using a standardized clock mechanism
US7478235B2 (en) * 2002-06-28 2009-01-13 Microsoft Corporation Methods and systems for protecting data in USB systems
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US20040103235A1 (en) * 2002-11-27 2004-05-27 Pei-Chung Liu USB based terminal device
US7243237B2 (en) * 2003-05-02 2007-07-10 Microsoft Corporation Secure communication with a keyboard or related device
US7996368B1 (en) * 2004-09-21 2011-08-09 Cyress Semiconductor Corporation Attribute-based indexers for device object lists
KR100710032B1 (ko) * 2005-02-23 2007-04-25 제이알소프트 주식회사 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100537930B1 (ko) * 2004-10-26 2005-12-20 소프트캠프(주) 유에스비 키보드를 통한 입력데이터의 보안방법과 이를구현하는 보안시스템
KR100549645B1 (ko) * 2004-11-05 2006-02-06 소프트캠프(주) 키보드로 입력되는 데이터의 보안방법과 이를 구현하는보안시스템

Also Published As

Publication number Publication date
KR20080034304A (ko) 2008-04-21
WO2008048035A1 (en) 2008-04-24
US20090172705A1 (en) 2009-07-02

Similar Documents

Publication Publication Date Title
KR100861104B1 (ko) 유에스비 키보드의 보안장치 및 그 방법
CN103150514B (zh) 一种基于移动设备的可信模块及其可信服务方法
US7366916B2 (en) Method and apparatus for an encrypting keyboard
CN100437618C (zh) 一种便携式信息安全设备
US11126753B2 (en) Secure processor chip and terminal device
US8090946B2 (en) Inter-system binding method and application based on hardware security unit
CN101071463A (zh) 虚拟个人办公环境的方法和设备
CN101593252B (zh) 一种计算机对usb设备进行访问的控制方法和系统
US20130061031A1 (en) System and method for bios and controller communication
US20150341371A1 (en) Systems and methods to provide secure storage
CN111158857A (zh) 数据加密方法、装置、设备及存储介质
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
KR100985076B1 (ko) Usb 디바이스 보안 장치 및 방법
KR102542213B1 (ko) 네트워크 기반 스토리지의 데이터 실시간 암복호화 보안 시스템 및 방법
CN101420299B (zh) 提高智能密钥设备稳定性的方法和智能密钥设备
JP2004362516A (ja) Usb暗号化装置及びプログラム
JP5959070B2 (ja) 情報処理装置、端末、プログラム及び方法
US11941264B2 (en) Data storage apparatus with variable computer file system
US20080091943A1 (en) Data security device and the method thereof
JP2009517732A (ja) Usbキーボードによる入力データの保安方法及び保安システム
KR100986123B1 (ko) 유에스비 키보드의 보안방법
CN101079090B (zh) 再现个人应用环境的设备
KR100537930B1 (ko) 유에스비 키보드를 통한 입력데이터의 보안방법과 이를구현하는 보안시스템
CN117034330B (zh) 基于macOS的安全防护方法、设备及存储介质
CN103065105B (zh) 用于加密硬盘的设备和方法

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20061016

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20071121

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080624

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080924

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080924

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110708

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20120705

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20120705

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130731

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130731

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20150707

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20150707

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20160704

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20160704

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20170704

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20180703

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20180703

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20190924

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20230802

Start annual number: 16

End annual number: 16