KR100998214B1 - Apparatus for and method of securing keyboard to evade stealth sniffing - Google Patents
Apparatus for and method of securing keyboard to evade stealth sniffing Download PDFInfo
- Publication number
- KR100998214B1 KR100998214B1 KR1020080107421A KR20080107421A KR100998214B1 KR 100998214 B1 KR100998214 B1 KR 100998214B1 KR 1020080107421 A KR1020080107421 A KR 1020080107421A KR 20080107421 A KR20080107421 A KR 20080107421A KR 100998214 B1 KR100998214 B1 KR 100998214B1
- Authority
- KR
- South Korea
- Prior art keywords
- keyboard
- secret key
- security
- encryption module
- scan code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
본 발명은 하드웨어를 기반으로 스니핑을 완벽하게 방지하기 위한 키보드 보안 장치 및 방법에 관한 것으로, 본 발명의 장치는 키보드로부터 전달받은 스캔코드를 비밀키로 암호화하는 키보드 암호화 모듈과, 컴퓨터 플랫폼에서 실행되어 비밀키를 생성하여 분배하고 상기 비밀키로 암호화된 데이터를 복호하는 보안 응용프로그램으로부터 상기 비밀키를 전달받아 상기 키보드암호화모듈에 전달하고, 상기 키보드암호화모듈로부터 암호화된 스캔코드를 전달받아 상기 보안 응용프로그램에 전달하는 키보드컨트롤러로 구성된다. 따라서 본 발명에 따르면 키보드 암호화 모듈이 입력정보를 비밀키를 이용하여 암호화한 후 보안 응용프로그램에 전송함으로써 키보드컨트롤러의 구조적인 취약점에 따른 보안 문제를 완벽하게 해결할 수 있다.The present invention relates to a keyboard security device and method for completely preventing sniffing based on hardware, the device of the present invention is a keyboard encryption module for encrypting the scan code received from the keyboard with a secret key, and executed on a computer platform secret Generates and distributes a key, receives the secret key from a security application that decrypts the data encrypted with the secret key, passes the secret key to the keyboard encryption module, and receives the encrypted scan code from the keyboard encryption module to the security application. It consists of a keyboard controller that passes. Therefore, according to the present invention, the keyboard encryption module encrypts the input information using a secret key and transmits it to a security application, thereby completely solving the security problem caused by the structural weakness of the keyboard controller.
해킹, 키보드 보안, 컴퓨터 보안, 암호화, AES, 스캔코드, 키보드컨트롤러 Hacking, Keyboard Security, Computer Security, Encryption, AES, Scancode, Keyboard Controller
Description
본 발명은 컴퓨터 보안 기술에 관한 것으로, 더욱 상세하게는 하드웨어를 기반으로 스니핑을 완벽하게 방지하기 위한 키보드 보안 장치 및 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to computer security technology, and more particularly, to a keyboard security device and method for completely preventing sniffing based on hardware.
최근 들어, 전자상거래가 빈번해지면서 전자거래의 안전성을 강화하기 위해 다양한 컴퓨터 보안기술이 사용되고 있으나 사용자 개인정보 수집을 위한 해킹시도가 빈번히 발생하고 있고, 이를 위한 수단으로 사용자 및 관리자 패스워드 수집을 위한 스니핑 공격이 널리 이용되고 있다. 따라서 패스워드 스니핑 방지를 위하여 이미지 기반 패스워드와 같은 다양한 연구가 진행되고 있고, OTP와 같은 일회용 패스워드 방식이 도입되었지만 키보드컨트롤러의 근본적인 취약점 문제와 결부되어 완벽한 해결이 쉽지않다.Recently, various computer security technologies have been used to reinforce the safety of electronic transactions as the e-commerce becomes more frequent, but hacking attempts are frequently made to collect user personal information, and sniffing attacks to collect user and administrator passwords are used as means for this. This is widely used. Therefore, various researches such as image-based passwords have been conducted to prevent password sniffing, and although one-time password schemes such as OTP have been introduced, they are not easy to solve due to the fundamental vulnerability of the keyboard controller.
도 1은 일반적인 키보드컨트롤러와 키보드의 연결을 도시한 개략도로서, 키 보드(10)와 컴퓨터의 플랫폼(20)이 도시되어 있다. 키보드(10)는 스위치들이 행렬형태로 배열되어 있는 키매트릭스(12)와, 입출력포트를 통해 키매트릭스(12)를 스캔하여 눌려진 스위치를 검출하여 대응하는 스캔코드를 생성하는 키보드프로세서(14)로 구성된다.1 is a schematic diagram illustrating a connection between a general keyboard controller and a keyboard, in which a
키보드(10)로부터의 입력을 처리하기 위한 컴퓨터의 플랫폼(20)은 키보드프로세서(14)와 연결되어 키보드의 스캔코드를 호스트프로세서(24)로 전달하는 키보드컨트롤러(22)와 키보드입력을 처리하기 위한 프로그램을 실행하는 호스트 프로세서(24)로 구성된다. 그리고 키보드(10)와 컴퓨터 본체(20)는 PS/2방식이나 USB방식으로 연결될 수 있는데, PS/2방식의 인터페이스에서는 클럭(clk)과 데이터(Data)선을 포함하고 있다.The
이와 같은 현재의 PC 플랫폼(20)에서 소프트웨어가 키보드 값 즉, 스캔코드를 수집하기 위해서는 스캔코드를 만들어 내는 키보드(10)로부터 스캔코드를 수신하여 소프트웨어에 전달하기 위해 키보드컨트롤러(22)를 거쳐야 한다. 키보드컨트롤러(22)는 키보드(10)와 호스트프로세서(24) 사이에 연결되어 있으며, 키보드 제어 및 호스트프로세서(24)와의 통신을 위하여 내부에 레지스터를 가지고 있다. In order to collect the keyboard value, that is, the scan code, in the
PC의 플랫폼(20)은 키보드컨트롤러 레지스터에의 접근뿐만 아니라 키보드컨트롤러(22)로의 제어코드나 제어인자, 키보드(10)로의 명령코드 등을 전달하거나 키보드컨트롤러(22)로부터의 제어응답, 키보드(10)로부터의 명령응답 및 스캔코드 등을 수수하기 위하여 읽기와 쓰기가 가능한 컨트롤 포트와 데이터 포트의 두 포트를 준비하여 각각 "0x64" 번지와 "0x60" 번지에 할당하고 있다.The
그리고 제어코드는 키보드컨트롤러(22)에 전달되고 해석되어 다양한 기능을 수행하며 추가적으로 인자를 요구하거나 응답을 제공하는 경우도 있다. 명령코드는 키보드컨트롤러(22)를 통과하여 키보드(10)로 전달되며 인자나 응답을 요구하기도 한다. 스캔코드는 키보드(10)로부터 전달되어 키보드컨트롤러(22)를 통과하여 키보드 문자를 생성하는 데에 활용된다. In addition, the control code is transmitted and interpreted to the
한편, 키보드(10)로부터 입력된 패스워드가 응용 프로그램으로 전달되는 일련의 과정에서 공격자에게 탈취당할 수 있는 다양한 포인트가 존재하는데, 이러한 탈취 포인트를 크게 나누면 운영체제 커널 수준과 키보드컨트롤러 수준으로 구분할 수 있다.On the other hand, there are a variety of points that can be hijacked by the attacker in the process of passing the password input from the
도 2는 종래의 키보드를 사용할 경우에 커널모드에서 구간별 취약점을 도시한 도면이고, 도 3은 유저모드에서의 구간별 취약점을 도시한 도면이다.FIG. 2 is a diagram illustrating vulnerabilities in sections in kernel mode when using a conventional keyboard, and FIG. 3 is a diagram showing vulnerabilities in sections in user mode.
도 2를 참조하면, 키보드 입력정보는 키보드 하드웨어(10)에서 키보드컨트롤러의 입출력포트(22a)를 거쳐 i8042prt.sys(34)를 통해 kbdclass.sys(36)로 전달된다. 커널모드에서 키보드 입력정보는 키보드 하드웨어(10)에서 전기적 신호에 의해 입력정보가 키보드 컨트롤러(22)에 전달되면 키보드 컨트롤러(22)는 입출력 포트(22a)에 키보드 스캔코드를 기록하고 인터럽트를 발생시킨다. 따라서 공격자는 도 2의 SP1에서와 같이 키보드 입출력 포트(22a)를 폴링하여 스캔코드를 취득할 수 있거나 SP2에서와 같이 인터럽트 벡터 테이블(32)의 주소를 통하여 인터럽트 오브젝트(33)를 거쳐 자신의 핸들로 치환하여 스캔코드를 취득할 수 있다.Referring to FIG. 2, the keyboard input information is transmitted from the
도 3을 참조하면, 커널모드의 kbdclass.sys(36)로 입력된 정보는 필터드라이 버를 거쳐 시스템 메시지 큐(42)와 쓰레드 메시지 큐(44)를 거쳐 인도우즈 프로세스(46)로 전달된다. 이때 도 3의 SP3에서와 같이, 키보드 하드웨어 장치에 추가적인 기능을 삽입할 수 있는 환경을 제공하기 위한 필터드라이버에 의해 입력정보를 취득할 수 있다. 그리고 도 3의 SP4 및 SP5에 도시된 바와 같이 윈도 메시지 형태의 키보드 입력정보를 처리하는 과정이나 응용 프로그램의 메인함수를 치환하여 키보드 입력정보를 취득할 수 있다. Referring to FIG. 3, information input to kbdclass.
그런데 이와 같은 커널 모드와 유저 모드의 각 구간 스니핑 공격은 대부분 소프트웨어적인 방법으로 해결 가능하나 가장 하위레벨에서 이루어지는 키보드 입출력 포트 폴링에 의한 스니핑은 현재 운영체제의 접근 권한 관리의 제한성, 키보드 컨트롤러의 근복적인 취약점 노출 등의 이유 때문에 소프트웨어적인 방법으로 해결할 수 없는 문제점이 있다. 즉, 운영체제 커널 수준에서의 탈취와 관련해서 사용하는 대개의 기술들은 인터럽트 및 예외처리 과정에서의 매우 상식적인 선점(preemption)을 노린 경우이며 탈취 포인트의 선택에 따라 사용자용 인터럽트 처리기를 대체하여 스캔코드를 얻는 방법, IDT 내의 키보드 인터럽트 벡터에 존재하는 게이트 디스크립터의 오프셋을 바꿔 운영체제의 인터럽트 객체를 대체하여 스캔코드를 얻는 방법, 디버그 트랩 등의 예외처리 기구를 이용하는 방법 등이 있으나 이러한 방법들에 대해서는 소프트웨어적인 보안기술로 충분히 해결할 수 있다. 그런데 현재 사용되고 있는 컴퓨터 하드웨어가 설계될 당시 정보보호에 대한 충분한 고려가 부재하였으며 이로부터 기인하는 키보드컨트롤러에서의 취약점에 대해서는 소프트웨어만으로는 효과적으로 해결할 수 있는 방법이 없다.However, such sniffing attacks in each kernel mode and user mode can be solved mostly by software methods. However, sniffing by keyboard I / O port polling at the lowest level is limited to the current operating system's access authority management and the weakness of the keyboard controller. There is a problem that cannot be solved by a software method for reasons such as exposure. In other words, most of the techniques used for operating system kernel level takeover are aimed at very common preemption in the process of interrupts and exceptions, and replace the user's interrupt handler according to the selection of the takeover point. How to obtain the scan code by changing the offset of the gate descriptor in the keyboard interrupt vector in the IDT, replacing the interrupt object of the operating system, and using exception handling mechanisms such as debug traps. It can be fully solved with the security technology. However, when the current computer hardware was designed, there was not enough information security consideration, and there is no effective way to solve the weaknesses in the keyboard controller.
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 하드웨어를 이용하여 스니핑을 완벽하게 방지할 수 있는 키보드 보안 장치 및 방법을 제공하는 것이다.The present invention has been proposed to solve the above problems, and an object of the present invention is to provide a keyboard security device and method that can completely prevent sniffing using hardware.
상기와 같은 목적을 달성하기 위하여 본 발명의 장치는 키보드로부터 전달받은 스캔코드를 비밀키로 암호화하는 키보드 암호화 모듈과, 컴퓨터 플랫폼에서 실행되어 비밀키를 생성하여 분배하고 상기 비밀키로 암호화된 데이터를 복호하는 보안 응용프로그램으로부터 상기 비밀키를 전달받아 상기 키보드암호화모듈에 전달하고, 상기 키보드암호화모듈로부터 암호화된 스캔코드를 전달받아 상기 보안 응용프로그램에 전달하는 키보드컨트롤러를 포함하여 기존의 키보드 프로토콜과의 호환성을 유지하면서 소프트웨어에서 휘발성 포트를 사용하여 비밀키를 분해하는 것을 특징으로 한다.In order to achieve the above object, the device of the present invention is a keyboard encryption module for encrypting the scan code received from the keyboard with a secret key, and executed on a computer platform to generate and distribute a secret key and decrypt the data encrypted with the secret key. It receives the secret key from the security application program and passes it to the keyboard encryption module, and receives a encrypted scan code from the keyboard encryption module and a keyboard controller for passing to the security application program for compatibility with the existing keyboard protocols While retaining, the software uses the volatile port to decrypt the secret key.
그리고 상기 키보드 암호화모듈은 키보드와 PS/2 연결단자 사이에 탈부착할 수 있는 동글 형태로 구현되거나 PS/2방식과 USB방식을 인터페이스하는 변환 동글 형태로 구현될 수 있다.The keyboard encryption module may be implemented in a dongle form that can be attached and detached between a keyboard and a PS / 2 connection terminal, or in a conversion dongle form that interfaces between a PS / 2 method and a USB method.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은 보안 응용프로그램이 비밀키를 생성하는 단계; 상기 생성된 비밀키를 키보드컨트롤러의 휘발성 입출력포 트를 통해 키보드 암호화모듈에 전달하는 단계; 상기 키보드 암호화모듈이 상기 일정크기의 데이터를 상기 전달받은 비밀키로 암호화하여 상기 키보드컨트롤러로 전달하는 단계; 상기 키보드컨트롤러가 암호화된 스캔코드를 상기 보안 응용프로그램에 전달하는 단계; 및 상기 보안 응용프로그램이 상기 비밀키를 이용하여 암호화된 스캔코드를 복호화하는 단계를 구비한 것을 특징으로 한다.In order to achieve the above object, the method of the present invention comprises the steps of: generating a secret key by a security application; Transferring the generated secret key to a keyboard encryption module through a volatile input / output port of a keyboard controller; Encrypting, by the keyboard encryption module, the predetermined size of data with the received secret key and transmitting the encrypted data to the keyboard controller; The keyboard controller passing an encrypted scan code to the secure application; And decrypting, by the security application program, the scan code encrypted using the secret key.
그리고 상기 키보드 보안 방법은, 상기 보안 응용프로그램으로부터 전달된 명령에 따라 교란코드를 발생하는 단계를 더 구비할 수 있다.The keyboard security method may further include generating a disturbing code according to a command transmitted from the security application program.
본 발명에 따른 스니핑 방지를 위한 키보드 보안 장치 및 방법은 키보드와 PC 플랫폼의 키보드컨트롤러 사이에 하드웨어적으로 구현된 키보드암호화모듈과, PC 플랫폼상에서 실행되는 보안 응용프로그램을 포함하여 보안 응용프로그램이 키보드 암호화모듈에 일회성 비밀키를 분배하고, 키보드 암호화모듈은 입력정보를 비밀키를 이용하여 암호화한 후 보안 응용프로그램에 전송함으로써 키보드컨트롤러의 구조적인 취약점에 따른 보안 문제를 완벽하게 해결할 수 있다.Keyboard security apparatus and method for preventing sniffing according to the present invention is a keyboard encryption module implemented in hardware between the keyboard and the keyboard controller of the PC platform, and a security application including a security application running on the PC platform keyboard encryption The one-time secret key is distributed to the module, and the keyboard encryption module encrypts the input information using the secret key and transmits it to the security application, thereby completely solving the security problem caused by the structural weakness of the keyboard controller.
특히, 키보드컨트롤러의 휘발성 포트를 이용함으로써 프로토콜을 은닉할 수 있고 비밀키의 안전한 분배가 보장되며, 유휴 코드를 명령코드로 사용하여 기존 키보드와 호환성을 유지할 수 있고, 교란코드를 생성하도록 명령코드를 전달하여 보안을 강화할 수 있으며, 키 분산, 휘발성 비밀키, 모듈 내부정보 갱신 방안 등을 통해 보안성을 강화할 수 있다.In particular, by using the volatile port of the keyboard controller, it is possible to conceal protocols, secure distribution of secret keys, use idle codes as command codes, maintain compatibility with existing keyboards, and generate command codes to generate disturbing codes. Security can be strengthened by passing the key, and security can be strengthened through key distribution, volatile secret keys, and information updates inside the module.
본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다. The technical problems achieved by the present invention and the practice of the present invention will be more clearly understood by the preferred embodiments of the present invention described below. The following examples are merely illustrative of the present invention and are not intended to limit the scope of the present invention.
도 4는 본 발명에 따라 스니핑을 방지하기 위한 키보드 보안 장치를 도시한 개략도이고, 도 5는 본 발명에 따라 스니핑을 방지하기 위한 키보드 보안 절차의 전체 순서를 도시한 순서도이다.4 is a schematic diagram illustrating a keyboard security device for preventing sniffing according to the present invention, and FIG. 5 is a flowchart illustrating the entire sequence of a keyboard security procedure for preventing sniffing according to the present invention.
본 발명에 따른 키보드 보안 장치는 도 4에 도시된 바와 같이, 키보드(110)와 PC 플랫폼(120)의 키보드 컨트롤러(122) 사이에 하드웨어적으로 구현된 키보드 암호화모듈(130)과, PC 플랫폼상에서 실행되는 보안 드라이버(140), 및 보안 응용프로그램(150)으로 구성되어 보안 응용프로그램(150)이 키보드 암호화모듈(130)에 일회성 비밀키를 분배하고, 키보드 암호화모듈(130)은 입력정보를 비밀키를 이용하여 암호화한 후 보안 응용프로그램(150)에 전송하며, 보안 응용프로그램(150)은 암호화된 입력정보를 비밀키를 이용하여 복호화하는 것이다.As shown in FIG. 4, the keyboard security device according to the present invention includes a
도 4를 참조하면, 키보드(110)는 스위치들이 행렬형태로 배열되어 있는 키매트릭스(112b)와, 입출력포트(112a,112c)를 통해 키매트릭스(112b)를 스캔하여 눌려진 스위치를 검출하여 대응하는 스캔코드를 생성하는 키보드프로세서(114)로 구성된다.Referring to FIG. 4, the
키보드 암호화 모듈(130)은 키보드(110)와 컴퓨터 본체(120)의 PS/2 연결단자 사이에 탈부착할 수 있는 동글 형태로 구현되거나 PS/2방식과 USB방식을 인터페이스하는 변환 동글 형태로 구현될 수 있으며, 키보드(110)와 키보드 컨트롤러(122) 사이에서 접지(GND), +5V, 키보드 데이터(KBD Data), 키보드 클럭(KBD Clock), 리셋(Reset) 신호선, 내부정보 갱신을 위한 통신포트(IN/OUT, OUT)로 연결된다. 특히, 상기 통신 포트는 키보드 암호화 모듈의 내부정보 갱신을 위하여 모듈을 분해하지 않고 PS/2 연결단자를 통하여 내부정보 갱신장치(160)와 연결될 수 있다. The
키보드 암호화모듈(130)은 보안 응용프로그램(150)으로부터 전달된 비밀키로 스캔코드를 암호화하여 키보드컨트롤러(122)로 전송하고, 키보드컨트롤러(122)와 보안 드라이버(140)를 거쳐 전달된 암호화된 스캔코드는 보안 응용프로그램(150)에서 복호화된 후 해당 응용 프로그램으로 전달된다. 따라서 키보드컨트롤러(122)의 입출력포트(0x60)에서 스캔 코드가 스니핑에 의해 공격당하더라도 암호화되어 복호가 불가능하므로 키보드의 보안 문제를 완전히 해결할 수 있다. 이때 키보드 암호화모듈(130)의 암호화 알고리즘으로는 블럭암호화방식 및 스트림암호화방식을 모두 사용할 수 있다.The
도 5를 참조하면, 응용 계층(L3)에서 응용 프로그램은 키보드 암호화 모듈이 설치되는 지역 컴퓨터 또는 원격에 위치하고 있는 컴퓨터에 일부 또는 전체가 설치되어 실행되는 경우를 포함하며, 보안 키보드 드라이버를 설치하는 과정을 포함할 수 있다(S1,S2). 보안 응용 프로그램이 활성화되면, 다회성 또는 일회성 비밀키를 생성한다(S3,S4).Referring to FIG. 5, in the application layer L3, an application includes a case in which part or all of the application is installed and executed in a local computer where a keyboard encryption module is installed or a computer located at a remote location. It may include (S1, S2). When the security application is activated, generate a one-time or one-time secret key (S3, S4).
이어 커널계층(L2)을 통해 비밀키를 전송하고, 하드웨어 계층(L1)에서는 공유 세션키를 생성하며 사용자로부터 패스워드를 입력받는다(S5~S7). 사용자로부터 패스워드가 입력되면, 하드웨어계층(L1)에서 패딩을 생성한 후 암호화를 수행한다(S8,S9). 이때, 패스워드 추출 방지 등의 보안성 강화를 위하여 패스워드를 구성하는 문자마다 별도의 비밀키를 할당하여 암호화할 수 있으며, 이러한 경우 응용계층은 별도의 비밀키를 생성하여 키보드 암호화 모듈에 전달하며 키보드로부터 엔터키가 입력될 때까지 암호화 및 결과 전송 과정을 반복한다. Subsequently, the secret key is transmitted through the kernel layer L2, and the hardware layer L1 generates a shared session key and receives a password from the user (S5 to S7). If a password is input from the user, the padding is generated in the hardware layer L1 and then encrypted (S8, S9). In this case, in order to enhance security, such as password extraction prevention, a separate secret key may be assigned and encrypted for each character constituting the password. In this case, the application layer generates a separate secret key and delivers it to the keyboard encryption module. The encryption and the result transmission are repeated until the enter key is entered.
이어 커널계층(L2)을 통해 응용 계층으로 암호정보를 전송하고, 응용계층(L3)에서는 암호정보를 복호 한 후 패스워드를 추출하고, 패스워드를 비교하여 비교결과를 응용 프로그램으로 전송한다(S10~S13). Subsequently, the encryption information is transmitted to the application layer through the kernel layer (L2), and the application layer (L3) decodes the password information, extracts the password, and compares the passwords and transmits the comparison result to the application program (S10 to S13). ).
한편, 비밀키방식의 암호화에서는 비밀키를 안전하게 분배하는 것이 매우 중요한데, 본 발명에 따른 키보드 보안장치는 다음과 같은 방식으로 비밀키를 안전하게 분배한다.On the other hand, in secret key encryption, it is very important to securely distribute the secret key. The keyboard security device according to the present invention distributes the secret key safely in the following manner.
키보드 컨트롤러(122)는 소프트웨어와의 키보드 정보 송수신을 위하여 입력 버퍼와 출력 버퍼를 가지고 있으며, 소프트웨어는 이들 버퍼를 읽고 쓰기 위하여 "0x60(데이터포트)"과 "0x64(컨트롤 포트)"의 입출력 주소를 이용한다. 따라서 본 발명에서는 보안 응용프로그램(150)이 키보드 암호화모듈(130)에 비밀키를 전송하는 과정에서는 해당 비밀키가 누출되지 않도록, 비밀키를 "0x60" 번지의 키보드컨트롤러(122)의 입력 버퍼에 전달한다. "0x60" 포트를 통하여 입력 버퍼에 전달되는 정보는 정보를 전달하는 당사자인 보안 응용프로그램(150)과 키보드컨트롤러(122) 또는 키보드(110) 자체만이 알고 있는 정보이며, 기타 소프트웨어적 입장에서는 휘발성 정보로서 다른 소프트웨어에 의하여 되찾을 수 없는 값이 된다. The
따라서 본 발명에서 제안한 안전한 비밀키 분배는 보안 응용프로그램(150)에서 비밀키를 생성하고, 키보드 컨트롤러(122)의 입출력 포트 "0x60"을 통하여 키보드 암호화모듈(130)로 안전하게 전송한다. 여기서, 입력정보는 사용자로부터 입력받은 패스워드와 난수 패딩을 더하여 구성할 수 있다. 보다 안전한 정보를 만들기 위하여 추가되는 패딩의 위치도 임의 선택 가능하도록 할 수 있다. 다만, 복호시 패딩 추출을 위하여 실제 패딩의 위치정보를 상호 협의된 방법으로 전달할 수 있다.Therefore, the secure secret key distribution proposed in the present invention is secure The
또한, 상기 보안 응용프로그램(150)과 키보드 암호화 모듈(130)은 상호 협약된 방법으로 비밀키를 분산하여 공유하거나 별도의 내부정보갱신장치(160)를 통해 발급받아 관리하면서 분산된 비밀키 일부에 대하여 생성 방법을 공유하고, 상호 별도로 생성한 일부 분산 비밀키를 포함하여 암호화하고 복호화함으로써 분산된 일부 비밀키를 상호 교환하지 않고, 키보드 스캔코드를 보호할 수도 있다.In addition, the
이와 같이 본 발명에 따르면 난수 패딩을 이용하여 같은 비밀키와 패스워드가 입력되더라도 출력된 암호정보는 상이하며, 입력정보와 암호정보를 알고 있는 공격자의 선택된 평문 공격(Chosen-plaintext attack)에도 안전하다. Thus, according to the present invention, even if the same secret key and password are input using random number padding, the output cipher information is different, and it is safe even in a selected plaintext attack of an attacker who knows the input information and the cipher information.
복호화 과정은 암호화 과정과 같이 공유한 비밀키를 이용하여 이루어지며, 복호 된 데이터에서 패딩을 찾아 제외하여 입력정보를 추출한다. The decryption process is performed using the shared secret key as in the encryption process, and the input information is extracted by excluding the padding from the decrypted data.
[실험예][Experimental Example]
본 발명에 따라 제작한 키보드 보안장치를 널리 사용되고 있던 사용 제품과 비교 검증한 결과 다음 표1과 같다.As a result of comparing and verifying a keyboard security device manufactured according to the present invention with a widely used product, the following Table 1 is provided.
포트 폴링simple
Port polling
상기 표1은 비교 검증결과로서 실험결과 기존 보안방법은 대부분의 스니핑 구간에서 입력정보에 대하여 보호가 되었지만 키보드 컨트롤러의 하드웨어 취약점을 이용한 포트 폴링에서는 입력정보가 노출되었다. 그러나 본 발명에 따른 보안 키보드 프로토콜은 기존 보안방법에 비해 우수한 성능을 보임을 검증하였다. Table 1 shows the comparison verification results. As a result of the experiment, the existing security method is protected against input information in most sniffing sections, but the input information is exposed in port polling using a hardware vulnerability of the keyboard controller. However, it has been verified that the secure keyboard protocol according to the present invention shows superior performance compared to the existing security method.
이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. The present invention has been described above with reference to one embodiment shown in the drawings, but those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom.
도 1은 일반적인 키보드컨트롤러와 키보드의 연결을 도시한 개략도,1 is a schematic diagram illustrating a connection between a general keyboard controller and a keyboard;
도 2는 종래의 키보드를 사용할 경우에 커널모드에서 구간별 취약점을 도시한 도면, 2 is a diagram showing the vulnerability of each section in the kernel mode when using a conventional keyboard,
도 3은 유저모드에서의 구간별 취약점을 도시한 도면,3 is a diagram showing the vulnerability of each section in the user mode,
도 4는 본 발명에 따라 스니핑을 방지하기 위한 키보드 보안 장치를 도시한 개략도, 4 is a schematic diagram illustrating a keyboard security device for preventing sniffing according to the present invention;
도 5는 본 발명에 따라 스니핑을 방지하기 위한 키보드 보안 절차의 전체 순서를 도시한 순서도이다. 5 is a flow chart illustrating the entire sequence of a keyboard security procedure for preventing sniffing in accordance with the present invention.
*도면의 주요부분에 대한 부호의 설명DESCRIPTION OF THE REFERENCE NUMERALS
110: 키보드 114: 키보드프로세서110: keyboard 114: keyboard processor
120: PC 플랫폼 122: 키보드컨트롤러120: PC platform 122: keyboard controller
130: 키보드 암호화모듈 140: 보안 드라이버130: keyboard encryption module 140: security driver
150: 보안 응용프로그램150: security application
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080107421A KR100998214B1 (en) | 2008-10-30 | 2008-10-30 | Apparatus for and method of securing keyboard to evade stealth sniffing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080107421A KR100998214B1 (en) | 2008-10-30 | 2008-10-30 | Apparatus for and method of securing keyboard to evade stealth sniffing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100048323A KR20100048323A (en) | 2010-05-11 |
KR100998214B1 true KR100998214B1 (en) | 2010-12-17 |
Family
ID=42275098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080107421A KR100998214B1 (en) | 2008-10-30 | 2008-10-30 | Apparatus for and method of securing keyboard to evade stealth sniffing |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100998214B1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101219664B1 (en) * | 2011-03-15 | 2013-01-21 | 한국전자통신연구원 | Apparatus and method for encrypting input on keyboard |
KR101302362B1 (en) * | 2012-02-06 | 2013-09-06 | 소프트포럼 주식회사 | Key input security system and method using the same |
KR101368772B1 (en) * | 2012-05-25 | 2014-02-28 | 이성만 | Method and Device for Protecting Key Input |
KR102431182B1 (en) | 2016-12-27 | 2022-08-10 | (주)아모레퍼시픽 | Oral composition comprising fermented green tea extract having excellent antibacterial effect on oral bacteria and anti-inflammatory effect |
US20230013844A1 (en) * | 2021-07-09 | 2023-01-19 | New Millennium Technologies Llc | System and method for securing keyboard input to a computing device |
-
2008
- 2008-10-30 KR KR1020080107421A patent/KR100998214B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20100048323A (en) | 2010-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100334720B1 (en) | Adapter Having Secure Function and Computer Secure System Using It | |
US9954826B2 (en) | Scalable and secure key management for cryptographic data processing | |
EP2672673B1 (en) | Apparatus and method for secure data processing | |
CN107567630B (en) | Isolation of trusted input/output devices | |
US20060195907A1 (en) | Data processing device | |
US20100023750A1 (en) | System and Method for Controllably Concealing Data from Spying Application | |
CN103930899B (en) | Method for the management public data of input and private data at equipment | |
JP2010092485A6 (en) | Data processing apparatus, communication terminal device, and data processing method using data processing apparatus | |
CN104335549A (en) | Secure data processing | |
KR100998214B1 (en) | Apparatus for and method of securing keyboard to evade stealth sniffing | |
US20100031040A1 (en) | Information Communication System | |
Neugschwandtner et al. | A transparent defense against USB eavesdropping attacks | |
CN111868724A (en) | Virus immunization computer system and method | |
Zhang et al. | Trusttokenf: A generic security framework for mobile two-factor authentication using trustzone | |
US20230409700A1 (en) | Systems and methods for managing state | |
Whittaker | Why secure applications are difficult to write | |
CN111868723A (en) | Virus immunization computer system and method | |
CN110740036A (en) | Anti-attack data confidentiality method based on cloud computing | |
Horsch et al. | CoKey: fast token-based cooperative cryptography | |
EP2202661B1 (en) | Apparatus and method for protecting asset in computer system | |
KR101236991B1 (en) | Apparatus and method for encrypting hard disk | |
Boursalian et al. | BootBandit: A macOS bootloader attack | |
WO2023069060A1 (en) | Input encryption | |
Tanaka et al. | Secure Generation of Digital Signature on Compromised Computer | |
WO2010003284A1 (en) | Method, system and its security device for network interworking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20131129 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151117 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20161212 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20171227 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |